[tarantool-patches] [PATCH 1/2] sql: fix collation node duplication in AST
Roman Khabibov
roman.habibov at tarantool.org
Wed May 8 14:29:15 MSK 2019
Before this patch, if SELECT was used with compound query, COLLATION
clauses and ORDER BY clause, C function resolveAlias built extra node
with collation name into OrderBy's AST.
E.g., for query:
SELECT a COLLATE "unicode_ci" FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
was appeared something like: "unicode_ci"
/ \
extra node -> "unicode_ci" NULL
/ \
"A" NULL
/ \
NULL NULL
Needed for #3804
---
src/box/sql/resolve.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/box/sql/resolve.c b/src/box/sql/resolve.c
index 504096e6d..c2c597dc0 100644
--- a/src/box/sql/resolve.c
+++ b/src/box/sql/resolve.c
@@ -109,7 +109,7 @@ resolveAlias(Parse * pParse, /* Parsing context */
return;
if (zType[0] != 'G')
incrAggFunctionDepth(pDup, nSubquery);
- if (pExpr->op == TK_COLLATE) {
+ if (pExpr->op == TK_COLLATE && pDup->op != TK_COLLATE) {
pDup =
sqlExprAddCollateString(pParse, pDup, pExpr->u.zToken);
}
--
2.20.1 (Apple Git-117)
More information about the Tarantool-patches
mailing list