Changeset: e68fc4ed5ee8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/e68fc4ed5ee8
Modified Files:
sql/server/rel_dump.c
sql/server/rel_rewriter.c
sql/test/BugTracker-2017/Tests/sqlitelogictest-aggregation-having-avg.Bug-6428.test
sql/test/BugTracker-2023/Tests/misc-crashes-7390.test
sql/test/BugTracker-2024/Tests/7477-atom_cmp.test
sql/test/BugTracker-2025/Tests/7615_join_reordering_2.test
sql/test/SQLancer/Tests/sqlancer13.test
sql/test/SQLancer/Tests/sqlancer17.test
sql/test/SQLancer/Tests/sqlancer18.test
sql/test/Tests/select_window_pushdown.test
sql/test/rel-optimizers/Tests/groupjoin.test
sql/test/sys-schema/Tests/webExamplesComparisonFunctionsOperators.test
Branch: reducedstack
Log Message:
approved some tests
optimize X or X -> X and X and X -> X
output (initial steps) .OR/.AND into nested () or () like old still to be
backward compatible
diffs (truncated from 341 to 300 lines):
diff --git a/sql/server/rel_dump.c b/sql/server/rel_dump.c
--- a/sql/server/rel_dump.c
+++ b/sql/server/rel_dump.c
@@ -115,6 +115,39 @@ static void exps_print(mvc *sql, stream
static void rel_print_rel(mvc *sql, stream *fout, sql_rel *rel, int depth,
list *refs, int decorate);
+static void
+exp_or_print(mvc *sql, stream *fout, node *n, int anti, int depth, list *refs,
int decorate)
+{
+ assert(n->next);
+ sql_exp *l = n->data;
+ sql_exp *r = n->next->data;
+
+ if (l->type == e_cmp && l->flag == cmp_con) {
+ exps_print(sql, fout, l->l, depth, refs, 0, 1, decorate, 0);
+ } else {
+ mnstr_printf(fout, "(");
+ exp_print(sql, fout, l, depth+1, refs, 0, 0, decorate);
+ mnstr_printf(fout, ")");
+ }
+ if (anti)
+ mnstr_printf(fout, " !");
+ mnstr_printf(fout, " or ");
+
+ if (n->next->next) {
+ mnstr_printf(fout, "(");
+ exp_or_print(sql, fout, n->next, anti, depth, refs, decorate);
+ mnstr_printf(fout, ")");
+ } else {
+ if (r->type == e_cmp && r->flag == cmp_con) {
+ exps_print(sql, fout, r->l, depth, refs, 0, 1,
decorate, 0);
+ } else {
+ mnstr_printf(fout, "(");
+ exp_print(sql, fout, r, depth+1, refs, 0, 0, decorate);
+ mnstr_printf(fout, ")");
+ }
+ }
+}
+
void
exp_print(mvc *sql, stream *fout, sql_exp *e, int depth, list *refs, int
comma, int alias, int decorate)
{
@@ -279,6 +312,9 @@ exp_print(mvc *sql, stream *fout, sql_ex
mnstr_printf(fout, " !");
cmp_print(sql, fout, e->flag);
exps_print(sql, fout, e->r, depth, refs, 0, 1,
decorate, 0);
+ } else if (e->flag == cmp_dis && (!is_anti(e) ||
list_length(e->l) == 2)) { /* output as old cmp_or right nested tree */
+ list *l = e->l;
+ exp_or_print(sql, fout, l->h, is_anti(e), depth, refs,
decorate);
} else if (e->flag == cmp_con || e->flag == cmp_dis) {
if (is_anti(e))
mnstr_printf(fout, " !");
diff --git a/sql/server/rel_rewriter.c b/sql/server/rel_rewriter.c
--- a/sql/server/rel_rewriter.c
+++ b/sql/server/rel_rewriter.c
@@ -41,8 +41,7 @@ exps_simplify_exp(visitor *v, list *exps
for (node *n=exps->h; n; n = n->next) {
sql_exp *e = n->data;
- /* TRUE and X -> X */
- /* FALSE and X -> FALSE */
+ /* TRUE and X -> X, FALSE and X -> FALSE, X and X -> X
*/
if (is_compare(e->type) && e->flag == cmp_con) {
sql_exp *te = NULL;
list *l = e->l;
@@ -64,6 +63,10 @@ exps_simplify_exp(visitor *v, list *exps
e = ie;
nexps = NULL;
break;
+ } else if (m->next) {
+ sql_exp *ie2 = m->next->data;
+ if (exp_equal(ie, ie2) == 0)
+ continue; /* skip */
}
append(nexps, ie);
}
@@ -80,8 +83,7 @@ exps_simplify_exp(visitor *v, list *exps
}
}
} else
- /* TRUE or X -> TRUE
- * FALSE or X -> X */
+ /* TRUE or X -> TRUE, FALSE or X -> X, X OR X -> X */
if (is_compare(e->type) && e->flag == cmp_dis) {
sql_exp *fe = NULL;
list *l = e->l;
@@ -103,6 +105,10 @@ exps_simplify_exp(visitor *v, list *exps
} else if (exp_is_false(ie)) { /* x or
false -> x */
fe = ie;
continue;
+ } else if (m->next) {
+ sql_exp *ie2 = m->next->data;
+ if (exp_equal(ie, ie2) == 0)
+ continue; /* skip */
}
append(nexps, ie);
}
diff --git
a/sql/test/BugTracker-2017/Tests/sqlitelogictest-aggregation-having-avg.Bug-6428.test
b/sql/test/BugTracker-2017/Tests/sqlitelogictest-aggregation-having-avg.Bug-6428.test
---
a/sql/test/BugTracker-2017/Tests/sqlitelogictest-aggregation-having-avg.Bug-6428.test
+++
b/sql/test/BugTracker-2017/Tests/sqlitelogictest-aggregation-having-avg.Bug-6428.test
@@ -21,7 +21,7 @@ project (
| | | | table("sys"."tab0") [ "tab0"."col0" UNIQUE as "cor0"."col0",
"tab0"."col1" UNIQUE as "cor0"."col1" ]
| | | ) [ ("cor0"."col0" UNIQUE) * = (int(31) NULL) ]
| | ) [ "cor0"."col1" UNIQUE, "cor0"."col0" UNIQUE ] [ "cor0"."col1" UNIQUE,
"cor0"."col0" UNIQUE, "sys"."avg" no nil ("cor0"."col0" UNIQUE) as "%1"."%1" ]
-| ) [ ("sys"."sql_add"(double(53)["sys"."sql_neg"("cor0"."col1" UNIQUE)],
"%1"."%1")) ! * = (double(53) NULL) ]
+| ) [ ("sys"."sql_add"(double(53)["sys"."sql_neg"("cor0"."col1" UNIQUE)],
"%1"."%1")) * != (double(53) NULL) ]
) [ "sys"."sql_neg"("cor0"."col0" UNIQUE) as "col1" ]
statement ok
diff --git a/sql/test/BugTracker-2023/Tests/misc-crashes-7390.test
b/sql/test/BugTracker-2023/Tests/misc-crashes-7390.test
--- a/sql/test/BugTracker-2023/Tests/misc-crashes-7390.test
+++ b/sql/test/BugTracker-2023/Tests/misc-crashes-7390.test
@@ -259,9 +259,8 @@ query I nosort
WITH v0 (v1) AS (SELECT 127 FROM v0 WHERE (v1 < 2147483647 OR v1 > -1) AND v1
/ v1 + v1 <= 95 = v1 >= -128 + 15) SELECT 38 ^ v1 FROM v0 AS v3 WINDOW v2 AS (
), v4 AS (GROUPS BETWEEN -32768 PRECEDING AND 94 FOLLOWING) LIMIT 16 OFFSET 8
----
-statement error 42000!
+statement ok
UPDATE v0 SET v1 = (WITH v0 (v1) AS (SELECT 127 WHERE (v1 < 2147483647 OR v1 >
-1) AND v1 / v1 + v1 <= 95 = v1 >= -128 + 15) SELECT 38 FROM v0 AS v3 WINDOW v2
AS ( ), v4 AS (GROUPS BETWEEN -32768 PRECEDING AND 94 FOLLOWING) LIMIT 16
OFFSET 8) ^ v1
--- sql/server/rel_select.c:3104: rel_binop_: Assertion `t1 && t2' failed.
statement ok
DROP TABLE v0
@@ -401,7 +400,7 @@ INSERT INTO v0 VALUES (-1),(127),(4),(-1
statement error 42000!SELECT: identifier 'v1' ambiguous
WITH v0 AS (SELECT -1, * FROM v0) INSERT INTO v0 SELECT v1 * 29 FROM v0 AS v3,
v0, v0 AS v2, v0 AS v4, v0 ORDER BY v1 * 0 ^ 83
-statement error 42000!row frame bound must be non negative and non null.
+statement ok
UPDATE v0 SET v1 = -1 WHERE CASE WHEN v1 > -1 THEN (SELECT STDDEV_SAMP((18 *
v1 + (v1 IN (21 , -1)))) OVER (ROWS BETWEEN CURRENT ROW AND v1 - NULL
FOLLOWING) * 17) > v1 / (SELECT -1 WHERE (88 IN (96))) ELSE 82 END ^ -128 ^ v1
statement ok
@@ -458,8 +457,11 @@ statement ok
DROP TABLE v0
-- 31.sql
-statement error 22003!overflow ...
+query I
SELECT ALL ( SELECT - - - - - - - - - - - 1 - - - - - - 16 FROM ( SELECT NULL
- - - - - - - - - - - - - - - - 1 FROM ( SELECT - - - - 1 * - - - - - -
2147483648 * - - - 43 * 77745222.000000 ) AS v1 ( v1 ) GROUP BY GROUPING SETS (
GROUPING SETS ( CUBE ( v1 ) ) ) ORDER BY v1 , - - - 86 + - - 93 ^ v1 , v1 LIMIT
21 ) AS v1 UNION SELECT - - - - - - - - - - - - 93 WHERE - v1 < -
63226945.000000 - - - - - - - - - - 68 ) FROM ( VALUES ( - - - - - - - - - 40 /
- ( SELECT - - - - - - - - 0 WHERE - - - - - - - 40 = - - - - - 0 ) ) , ( - -
88 ) ) v1 ( v1 )
+----
+15
+15
-- 32.sql
statement ok
diff --git a/sql/test/BugTracker-2024/Tests/7477-atom_cmp.test
b/sql/test/BugTracker-2024/Tests/7477-atom_cmp.test
--- a/sql/test/BugTracker-2024/Tests/7477-atom_cmp.test
+++ b/sql/test/BugTracker-2024/Tests/7477-atom_cmp.test
@@ -1,6 +1,7 @@
-- trying first without function "abs ( x )"
-statement error 22018!conversion of string to type bte failed.
+query I nosort
SELECT - 66 x GROUP BY x HAVING ( x IN ( SELECT '' x WHERE ( x = ( x = 1 ) )
UNION SELECT 1 ) )
+----
-- changing '' into 1, so a string into int
query I nosort
diff --git a/sql/test/BugTracker-2025/Tests/7615_join_reordering_2.test
b/sql/test/BugTracker-2025/Tests/7615_join_reordering_2.test
--- a/sql/test/BugTracker-2025/Tests/7615_join_reordering_2.test
+++ b/sql/test/BugTracker-2025/Tests/7615_join_reordering_2.test
@@ -35,7 +35,7 @@ project (
| | | | | | [ "sys"."cnt"(varchar "sys", varchar "x3") NOT NULL as "%1"."%1"
],
| | | | | | [ "sys"."cnt"(varchar "sys", varchar "x4") NOT NULL as "%3"."%3" ]
| | | | | ) [ ]
-| | | | ) [ "sys"."case"("sys"."="("%1"."%1" NOT NULL, "%3"."%3" NOT NULL) NOT
NULL, tinyint(1) "1", tinyint(1) "0") as "foox3"."a1" ]
+| | | | ) [ "sys"."case"(("%1"."%1" NOT NULL) = ("%3"."%3" NOT NULL),
tinyint(1) "1", tinyint(1) "0") as "foox3"."a1" ]
| | | ) [ ("foox3"."a1") = (tinyint(1) "1") ]
| | ) [ ]
| ) [ "x1"."a1" NOT NULL as "a1", "x1"."a2" NOT NULL as "a2", "x4"."a1" NOT
NULL as "a3", "x4"."a2" NOT NULL as "a4", "x4"."a3" NOT NULL as "a5",
"sys"."sql_mul"("x1"."p" NOT NULL, "x4"."p" NOT NULL) NOT NULL as "p" ]
diff --git a/sql/test/SQLancer/Tests/sqlancer13.test
b/sql/test/SQLancer/Tests/sqlancer13.test
--- a/sql/test/SQLancer/Tests/sqlancer13.test
+++ b/sql/test/SQLancer/Tests/sqlancer13.test
@@ -27,14 +27,14 @@ COPY 1 RECORDS INTO "t2" FROM stdin USIN
<COPY_INTO_DATA>
3 0.800 ""
-statement error 21000!Cardinality violation, scalar value expected
+statement error GDK reported error: BATsubcross: more than one match
select ((((select 1.75) union all (select 4))) between ((select 3 from t1))
and 2) = true
-statement error 21000!Cardinality violation, scalar value expected
+statement error GDK reported error: BATsubcross: more than one match
select cast(sum(count) as bigint) from (select all cast(((((select all
-1.75501356E8 from t0 as l3t0 where l3t0.c1) union all (select 1699564541 from
t0 as l3t0 where l3t0.c1)))
not between symmetric ((select -1732113123 from t2 as l3t2, t1 as l3t1 where
l3t1.c5)) and (((0)%(6)))) = true as int) as count from t2) as res
-statement error 21000!Cardinality violation, scalar value expected
+statement error GDK reported error: BATsubcross: more than one match
select substr(((select 'i') union all (select 'am')),(select 3 where false),
2) = 'wrong'
statement ok
diff --git a/sql/test/SQLancer/Tests/sqlancer17.test
b/sql/test/SQLancer/Tests/sqlancer17.test
--- a/sql/test/SQLancer/Tests/sqlancer17.test
+++ b/sql/test/SQLancer/Tests/sqlancer17.test
@@ -406,7 +406,7 @@ 0.071
statement ok
ALTER TABLE t0 ADD COLUMN c2 UUID
-statement error GDK reported error: BATsubcross: more than one match
+statement ok
UPDATE t2 SET c0 = 1 FROM t0 WHERE (least(TRUE, FALSE) AND 0.63 = t2.c0) OR
(0.23 <= 0.1)
statement ok
diff --git a/sql/test/SQLancer/Tests/sqlancer18.test
b/sql/test/SQLancer/Tests/sqlancer18.test
--- a/sql/test/SQLancer/Tests/sqlancer18.test
+++ b/sql/test/SQLancer/Tests/sqlancer18.test
@@ -644,8 +644,9 @@ create or replace view v102(vc0) as (sel
statement ok
commit
-statement error 42000!COUNT: aggregate functions not allowed in WHERE clause
+query I
SELECT 1 FROM v100 AS vx WHERE vx.vc0 = ANY(SELECT 1 FROM v100 HAVING
count(vx.vc0 = vx.vc0 AND (SELECT TRUE FROM v102)))
+----
statement error 42000!COUNT: aggregate functions not allowed in WHERE clause
SELECT 1 FROM v100 WHERE (SELECT 1 HAVING count(v100.vc0 + (SELECT 1 FROM
v104)))
diff --git a/sql/test/Tests/select_window_pushdown.test
b/sql/test/Tests/select_window_pushdown.test
--- a/sql/test/Tests/select_window_pushdown.test
+++ b/sql/test/Tests/select_window_pushdown.test
@@ -26,7 +26,7 @@ project (
| | | | | select (
| | | | | | table("sys"."test") [ "test"."k" NOT NULL, "test"."v" NOT NULL
UNIQUE ]
| | | | | ) [ ("test"."k" NOT NULL) = (int(31) "10") ]
-| | | | ) [ int(31) "10" as "t1"."k", "test"."v" NOT NULL UNIQUE as "t1"."v",
"sys"."mod"("test"."v" NOT NULL UNIQUE, int(2) "2") NOT NULL as "%1"."%1",
"sys"."="("%1"."%1" NOT NULL, int(31) "0") NOT NULL as "t1"."flag" ]
+| | | | ) [ int(31) "10" as "t1"."k", "test"."v" NOT NULL UNIQUE as "t1"."v",
("sys"."mod"("test"."v" NOT NULL UNIQUE, int(2) "2") NOT NULL) = (int(31) "0")
as "t1"."flag" ]
| | | ) [ "t1"."k" NOT NULL, "t1"."v" NOT NULL UNIQUE, "t1"."flag" NOT NULL ]
[ "t1"."k" PART ASC NOT NULL, "t1"."v" NULLS LAST NOT NULL UNIQUE ]
| | ) [ "t1"."v" NOT NULL UNIQUE, "t1"."flag" NOT NULL,
"sys"."rank"(varchar["sys"."star"()], "sys"."diff"("t1"."k" PART NOT NULL),
"sys"."diff"("t1"."v" NOT NULL UNIQUE)) as "t2"."rank" ]
| ) [ ("t1"."flag" NOT NULL) = (boolean(1) "false"), ("t2"."rank") = (int(31)
"1") ]
@@ -52,7 +52,7 @@ project (
| | | | | select (
| | | | | | table("sys"."test") [ "test"."k" NOT NULL, "test"."v" NOT NULL
UNIQUE ]
| | | | | ) [ (int(31) "10") <= ("test"."k" NOT NULL) <= (int(31) "50") ]
-| | | | ) [ "test"."k" NOT NULL as "t1"."k", "test"."v" NOT NULL UNIQUE as
"t1"."v", "sys"."mod"("test"."v" NOT NULL UNIQUE, int(2) "2") NOT NULL as
"%1"."%1", "sys"."="("%1"."%1" NOT NULL, int(31) "0") NOT NULL as "t1"."flag" ]
+| | | | ) [ "test"."k" NOT NULL as "t1"."k", "test"."v" NOT NULL UNIQUE as
"t1"."v", ("sys"."mod"("test"."v" NOT NULL UNIQUE, int(2) "2") NOT NULL) =
(int(31) "0") as "t1"."flag" ]
| | | ) [ "t1"."k" NOT NULL, "t1"."v" NOT NULL UNIQUE, "t1"."flag" NOT NULL ]
[ "t1"."k" PART ASC NOT NULL, "t1"."v" NULLS LAST NOT NULL UNIQUE ]
| | ) [ "t1"."k" NOT NULL, "t1"."v" NOT NULL UNIQUE, "t1"."flag" NOT NULL,
"sys"."rank"(varchar["sys"."star"()], "sys"."diff"("t1"."k" PART NOT NULL),
"sys"."diff"("t1"."v" NOT NULL UNIQUE)) as "t2"."rank" ]
| ) [ ("t1"."flag" NOT NULL) = (boolean(1) "false"), ("t2"."rank") = (int(31)
"1") ]
@@ -78,7 +78,7 @@ project (
| | | | | select (
| | | | | | table("sys"."test") [ "test"."k" NOT NULL, "test"."v" NOT NULL
UNIQUE ]
| | | | | ) [ ("test"."k" NOT NULL) notin (int(31) "10", int(31) "20", int(31)
"30") ]
-| | | | ) [ "test"."k" NOT NULL as "t1"."k", "test"."v" NOT NULL UNIQUE as
"t1"."v", "sys"."mod"("test"."v" NOT NULL UNIQUE, int(2) "2") NOT NULL as
"%2"."%2", "sys"."="("%2"."%2" NOT NULL, int(31) "0") NOT NULL as "t1"."flag" ]
+| | | | ) [ "test"."k" NOT NULL as "t1"."k", "test"."v" NOT NULL UNIQUE as
"t1"."v", ("sys"."mod"("test"."v" NOT NULL UNIQUE, int(2) "2") NOT NULL) =
(int(31) "0") as "t1"."flag" ]
| | | ) [ "t1"."k" NOT NULL, "t1"."v" NOT NULL UNIQUE, "t1"."flag" NOT NULL ]
[ "t1"."k" PART ASC NOT NULL, "t1"."v" NULLS LAST NOT NULL UNIQUE ]
| | ) [ "t1"."k" NOT NULL, "t1"."v" NOT NULL UNIQUE, "t1"."flag" NOT NULL,
"sys"."rank"(varchar["sys"."star"()], "sys"."diff"("t1"."k" PART NOT NULL),
"sys"."diff"("t1"."v" NOT NULL UNIQUE)) as "t2"."rank" ]
| ) [ ("t1"."flag" NOT NULL) = (boolean(1) "false"), ("t2"."rank") = (int(31)
"1") ]
@@ -104,7 +104,7 @@ project (
| | | | | select (
| | | | | | table("sys"."test") [ "test"."k" NOT NULL, "test"."v" NOT NULL
UNIQUE ]
| | | | | ) [ ("test"."k" NOT NULL) = (int(31) "10") ]
-| | | | ) [ int(31) "10" as "t1"."k", "test"."v" NOT NULL UNIQUE as "t1"."v",
"sys"."mod"("test"."v" NOT NULL UNIQUE, int(2) "2") NOT NULL as "%1"."%1",
"sys"."="("%1"."%1" NOT NULL, int(31) "0") NOT NULL as "t1"."flag" ]
+| | | | ) [ int(31) "10" as "t1"."k", "test"."v" NOT NULL UNIQUE as "t1"."v",
("sys"."mod"("test"."v" NOT NULL UNIQUE, int(2) "2") NOT NULL) = (int(31) "0")
as "t1"."flag" ]
| | | ) [ "t1"."k" NOT NULL, "t1"."v" NOT NULL UNIQUE, "t1"."flag" NOT NULL ]
[ "t1"."k" PART ASC NOT NULL, "t1"."v" NULLS LAST NOT NULL UNIQUE ]
| | ) [ "t1"."v" NOT NULL UNIQUE, "t1"."flag" NOT NULL,
"sys"."rank"(varchar["sys"."star"()], "sys"."diff"("t1"."k" PART NOT NULL),
"sys"."diff"("t1"."v" NOT NULL UNIQUE)) as "t2"."rank" ]
| ) [ ("t1"."v" NOT NULL UNIQUE) = (int(31) "15"), ("t1"."flag" NOT NULL) =
(boolean(1) "false"), ("t2"."rank") = (int(31) "1") ]
@@ -131,7 +131,7 @@ project (
| | | | | select (
| | | | | | table("sys"."test") [ "test"."k" NOT NULL, "test"."v" NOT NULL
UNIQUE ]
| | | | | ) [ ("test"."v" NOT NULL UNIQUE) = (int(31) "15") ]
-| | | | ) [ "test"."k" NOT NULL as "t1"."k", int(31) "15" as "t1"."v",
"sys"."mod"("test"."v" NOT NULL UNIQUE, int(2) "2") NOT NULL as "%1"."%1",
"sys"."="("%1"."%1" NOT NULL, int(31) "0") NOT NULL as "t1"."flag" ]
+| | | | ) [ "test"."k" NOT NULL as "t1"."k", int(31) "15" as "t1"."v",
("sys"."mod"("test"."v" NOT NULL UNIQUE, int(2) "2") NOT NULL) = (int(31) "0")
as "t1"."flag" ]
| | | ) [ "t1"."k" NOT NULL, "t1"."v" NOT NULL UNIQUE, "t1"."flag" NOT NULL ]
[ "t1"."v" PART NULLS LAST NOT NULL UNIQUE ]
| | ) [ "t1"."k" NOT NULL, "t1"."flag" NOT NULL,
"sys"."rank"(varchar["sys"."star"()], "sys"."diff"("t1"."v" PART NOT NULL
UNIQUE), "sys"."diff"("t1"."v" PART NOT NULL UNIQUE)) as "t2"."rank" ]
| ) [ ("t1"."flag" NOT NULL) = (boolean(1) "false"), ("t2"."rank") = (int(31)
"1"), ("t1"."k" NOT NULL) = (int(31) "10") ]
@@ -158,7 +158,7 @@ project (
| | | | | project (
| | | | | | project (
| | | | | | | table("sys"."test") [ "test"."k" NOT NULL, "test"."v" NOT NULL
UNIQUE ]
-| | | | | | ) [ "test"."k" NOT NULL as "t1"."k", "test"."v" NOT NULL UNIQUE as
"t1"."v", "sys"."mod"("test"."v" NOT NULL UNIQUE, int(2) "2") NOT NULL as
"%1"."%1", "sys"."="("%1"."%1" NOT NULL, int(31) "0") NOT NULL as "t1"."flag" ]
+| | | | | | ) [ "test"."k" NOT NULL as "t1"."k", "test"."v" NOT NULL UNIQUE as
"t1"."v", ("sys"."mod"("test"."v" NOT NULL UNIQUE, int(2) "2") NOT NULL) =
(int(31) "0") as "t1"."flag" ]
| | | | | ) [ "t1"."k" NOT NULL, "t1"."v" NOT NULL UNIQUE, "t1"."flag" NOT
NULL ] [ "t1"."k" PART ASC NOT NULL, "t1"."v" NULLS LAST NOT NULL UNIQUE ]
| | | | ) [ "t1"."k" NOT NULL, "t1"."v" NOT NULL UNIQUE, "t1"."flag" NOT NULL,
"sys"."rank"(varchar["sys"."star"()], "sys"."diff"("t1"."k" PART NOT NULL),
"sys"."diff"("t1"."v" NOT NULL UNIQUE)) as "t2"."rank" ]
| | | ) [ ("t1"."flag" NOT NULL) = (boolean(1) "false"), ("t2"."rank") =
(int(31) "1") ]
@@ -184,7 +184,7 @@ project (
| | | project (
| | | | project (
| | | | | table("sys"."test") [ "test"."k" NOT NULL, "test"."v" NOT NULL
UNIQUE ]
-| | | | ) [ "test"."k" NOT NULL as "t1"."k", "test"."v" NOT NULL UNIQUE as
"t1"."v", "sys"."mod"("test"."v" NOT NULL UNIQUE, int(2) "2") NOT NULL as
"%1"."%1", "sys"."="("%1"."%1" NOT NULL, int(31) "0") NOT NULL as "t1"."flag" ]
+| | | | ) [ "test"."k" NOT NULL as "t1"."k", "test"."v" NOT NULL UNIQUE as
"t1"."v", ("sys"."mod"("test"."v" NOT NULL UNIQUE, int(2) "2") NOT NULL) =
(int(31) "0") as "t1"."flag" ]
| | | ) [ "t1"."k" NOT NULL, "t1"."v" NOT NULL UNIQUE, "t1"."flag" NOT NULL ]
[ "t1"."k" PART ASC NOT NULL, "t1"."v" NULLS LAST NOT NULL UNIQUE ]
| | ) [ "t1"."k" NOT NULL, "t1"."v" NOT NULL UNIQUE, "t1"."flag" NOT NULL,
"sys"."rank"(varchar["sys"."star"()], "sys"."diff"("t1"."k" PART NOT NULL),
"sys"."diff"("t1"."v" NOT NULL UNIQUE)) as "t2"."rank" ]
| ) [ ("t2"."rank") = (int(31) "1"), (("t1"."flag" NOT NULL) = (boolean(1)
"false")) or (("t1"."k" NOT NULL) = (int(31) "10")) ]
@@ -210,7 +210,7 @@ project (
| | | | | select (
| | | | | | table("sys"."test") [ "test"."k" NOT NULL, "test"."v" NOT NULL
UNIQUE ]
| | | | | ) [ ("test"."k" NOT NULL) <= (int(31) "10"), ("test"."v" NOT NULL
UNIQUE) in (int(31) "1", int(31) "2", int(31) "3") ]
-| | | | ) [ "test"."k" NOT NULL as "t1"."k", "test"."v" NOT NULL UNIQUE as
"t1"."v", "sys"."mod"("test"."v" NOT NULL UNIQUE, int(2) "2") NOT NULL as
"%2"."%2", "sys"."="("%2"."%2" NOT NULL, int(31) "0") NOT NULL as "t1"."flag" ]
+| | | | ) [ "test"."k" NOT NULL as "t1"."k", "test"."v" NOT NULL UNIQUE as
"t1"."v", ("sys"."mod"("test"."v" NOT NULL UNIQUE, int(2) "2") NOT NULL) =
(int(31) "0") as "t1"."flag" ]
| | | ) [ "t1"."k" NOT NULL, "t1"."v" NOT NULL UNIQUE, "t1"."flag" NOT NULL ]
[ "t1"."k" PART ASC NOT NULL, "t1"."v" PART NULLS LAST NOT NULL UNIQUE ]
| | ) [ "t1"."k" NOT NULL, "t1"."v" NOT NULL UNIQUE, "t1"."flag" NOT NULL,
"sys"."rank"(varchar["sys"."star"()], "sys"."diff"("sys"."diff"("t1"."k" PART
NOT NULL), "t1"."v" PART NOT NULL UNIQUE), "sys"."diff"("t1"."v" PART NOT NULL
UNIQUE)) as "t2"."rank" ]
| ) [ ("t1"."flag" NOT NULL) = (boolean(1) "false"), ("t2"."rank") = (int(31)
"1") ]
@@ -246,7 +246,7 @@ project (
| | | | | select (
| | | | | | table("sys"."test") [ "test"."k" NOT NULL, "test"."v" NOT NULL
UNIQUE ]
| | | | | ) [ ("test"."k" NOT NULL) = (varchar(100) "10") ]
-| | | | ) [ varchar(100) "10" as "t1"."k", "test"."v" NOT NULL UNIQUE as
"t1"."v", "sys"."mod"("test"."v" NOT NULL UNIQUE, int(2) "2") NOT NULL as
"%1"."%1", "sys"."="("%1"."%1" NOT NULL, int(31) "0") NOT NULL as "t1"."flag" ]
+| | | | ) [ varchar(100) "10" as "t1"."k", "test"."v" NOT NULL UNIQUE as
"t1"."v", ("sys"."mod"("test"."v" NOT NULL UNIQUE, int(2) "2") NOT NULL) =
(int(31) "0") as "t1"."flag" ]
| | | ) [ "t1"."k" NOT NULL, "t1"."v" NOT NULL UNIQUE, "t1"."flag" NOT NULL ]
[ "t1"."k" PART ASC NOT NULL, "t1"."v" NULLS LAST NOT NULL UNIQUE ]
| | ) [ "t1"."v" NOT NULL UNIQUE, "t1"."flag" NOT NULL,
"sys"."rank"(varchar["sys"."star"()], "sys"."diff"("t1"."k" PART NOT NULL),
"sys"."diff"("t1"."v" NOT NULL UNIQUE)) as "t2"."rank" ]
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]