From 3cfa197f69ba3fb52a88ab7957299df034a2b1e3 Mon Sep 17 00:00:00 2001 From: Gokhan Gulbiz Date: Wed, 15 Mar 2023 08:11:07 +0300 Subject: [PATCH] Escape/Unescape sql comment chars --- src/backend/distributed/utils/attribute.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/backend/distributed/utils/attribute.c b/src/backend/distributed/utils/attribute.c index 2f604a609..bea15618d 100644 --- a/src/backend/distributed/utils/attribute.c +++ b/src/backend/distributed/utils/attribute.c @@ -26,6 +26,7 @@ #include "utils/builtins.h" #include "utils/json.h" #include "distributed/utils/attribute.h" +#include "common/base64.h" #include @@ -214,7 +215,7 @@ AttributeQueryIfAnnotated(const char *query_string, CmdType commandType) text *tenantIdTextP = ExtractFieldTextP(jsonbDatum, "tId"); if (tenantIdTextP != NULL) { - char *tenantId = text_to_cstring(tenantIdTextP); + char *tenantId = UnescapeCommentChars(text_to_cstring(tenantIdTextP)); strcpy_s(attributeToTenant, sizeof(attributeToTenant), tenantId); } @@ -245,12 +246,15 @@ AnnotateQuery(char *queryString, char *partitionColumn, int colocationId) return queryString; } + char *commentCharsEscaped = EscapeCommentChars(partitionColumn); StringInfo escapedSourceName = makeStringInfo(); - escape_json(escapedSourceName, partitionColumn); + + escape_json(escapedSourceName, commentCharsEscaped); StringInfo newQuery = makeStringInfo(); appendStringInfo(newQuery, ATTRIBUTE_STRING_FORMAT, escapedSourceName->data, colocationId); + appendStringInfoString(newQuery, queryString); return newQuery->data;