Changeset: 838ecbe3492c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=838ecbe3492c
Modified Files:
sql/backends/monet5/rel_bin.c
sql/test/emptydb/Tests/check.stable.out
sql/test/emptydb/Tests/check.stable.out.32bit
sql/test/emptydb/Tests/check.stable.out.int128
sql/test/subquery/Tests/subquery3.stable.out
Branch: default
Log Message:
make sure we handle select expression (within a join) properly
diffs (194 lines):
diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -1936,7 +1936,6 @@ rel2bin_join(backend *be, sql_rel *rel,
char *handled = SA_ZNEW_ARRAY(sql->sa, char,
list_length(rel->exps));
/* get equi-joins/filters first */
- /* TODO handle select expressions!! */
if (list_length(rel->exps) > 1) {
for( en = rel->exps->h, i=0; en; en = en->next, i++) {
sql_exp *e = en->data;
@@ -1973,17 +1972,25 @@ rel2bin_join(backend *be, sql_rel *rel,
/* only handle simple joins here */
if ((exp_has_func(e) && get_cmp(e) != cmp_filter) ||
- get_cmp(e) == cmp_or || (e->f && e->anti)) {
+ get_cmp(e) == cmp_or || (e->f && e->anti) ||
+ (e->type == e_cmp && e->flag == cmp_equal &&
+ ((rel_find_exp(rel->l, e->l) &&
rel_find_exp(rel->l, e->r)) ||
+ (rel_find_exp(rel->r, e->l) &&
rel_find_exp(rel->r, e->r)))) ) {
if (!join && !list_length(lje)) {
stmt *l = bin_first_column(be, left);
stmt *r = bin_first_column(be, right);
- join = stmt_join(be, l, r, 0, cmp_all);
+ join = stmt_join(be, l, r, 0, cmp_all);
}
break;
}
if (list_length(lje) && (idx || e->type != e_cmp ||
(e->flag != cmp_equal && e->flag != cmp_filter) ||
(join && e->flag == cmp_filter)))
break;
+ if (e->type == e_cmp && e->flag == cmp_equal &&
+ ((rel_find_exp(rel->l, e->l) &&
rel_find_exp(rel->l, e->r)) ||
+ (rel_find_exp(rel->r, e->l) &&
rel_find_exp(rel->r, e->r)))) {
+ break;
+ }
/* handle possible index lookups */
/* expressions are in index order ! */
diff --git a/sql/test/emptydb/Tests/check.stable.out
b/sql/test/emptydb/Tests/check.stable.out
--- a/sql/test/emptydb/Tests/check.stable.out
+++ b/sql/test/emptydb/Tests/check.stable.out
@@ -149,6 +149,7 @@ stdout of test 'check` in directory 'sql
\dSf sys."date_trunc"
\dSf sys."db_users"
\dSf sys."debug"
+\dSf sys."debugflags"
\dSf sys."degrees"
\dSf sys."deltas"
\dSf sys."droporderindex"
@@ -515,6 +516,7 @@ SYSTEM FUNCTION sys.dayofweek
SYSTEM FUNCTION sys.dayofyear
SYSTEM FUNCTION sys.db_users
SYSTEM FUNCTION sys.debug
+SYSTEM FUNCTION sys.debugflags
SYSTEM FUNCTION sys.decade
SYSTEM FUNCTION sys.degrees
SYSTEM FUNCTION sys.deltas
@@ -986,6 +988,8 @@ create function date_to_str(d date, form
create function sys.date_trunc(txt string, t timestamp) returns timestamp
external name sql.date_trunc;
CREATE FUNCTION db_users () RETURNS TABLE(name varchar(2048)) EXTERNAL NAME
sql.db_users;
create function sys.debug(debug int) returns integer external name
mdb."setDebug";
+create function sys.debug(flag string) returns integer external name
mdb."setDebug";
+create function sys.debugflags() returns table("flag" string, "val" bool)
external name "mdb"."getDebugFlags";
create function degrees(r double) returns double return r*180/pi();
create function sys.deltas ("schema" string) returns table ("id" int,
"cleared" boolean, "immutable" bigint, "inserted" bigint, "updates" bigint,
"deletes" bigint, "level" int) external name "sql"."deltas";
create function sys.deltas ("schema" string, "table" string) returns table
("id" int, "cleared" boolean, "immutable" bigint, "inserted" bigint, "updates"
bigint, "deletes" bigint, "level" int) external name "sql"."deltas";
@@ -2362,6 +2366,8 @@ drop function pcre_replace(string, strin
[ "sys", "dayofyear", "SYSTEM", "dayofyear", "mtime",
"Internal C", "Scalar function", false, false, false, "res_0",
"int", 32, 0, "out", "arg_1", "date", 0, 0, "in",
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
]
[ "sys", "db_users", "SYSTEM", "CREATE FUNCTION db_users ()
RETURNS TABLE(name varchar(2048)) EXTERNAL NAME sql.db_users;", "sql",
"SQL", "Function returning a table", false, false, false, "name",
"varchar", 2048, 0, "out", NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
]
[ "sys", "debug", "SYSTEM", "create function
sys.debug(debug int) returns integer external name mdb.\"setDebug\";", "mdb",
"MAL", "Scalar function", false, false, false, "result", "int",
32, 0, "out", "debug", "int", 32, 0, "in", NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ]
+[ "sys", "debug", "SYSTEM", "create function sys.debug(flag
string) returns integer external name mdb.\"setDebug\";", "mdb", "MAL",
"Scalar function", false, false, false, "result", "int", 32,
0, "out", "flag", "clob", 0, 0, "in", NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL ]
+[ "sys", "debugflags", "SYSTEM", "create function
sys.debugflags() returns table(\"flag\" string, \"val\" bool) external name
\"mdb\".\"getDebugFlags\";", "mdb", "MAL", "Function returning a
table", true, false, false, "flag", "clob", 0, 0, "out",
"val", "boolean", 1, 0, "out", NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL ]
[ "sys", "decade", "SYSTEM", "decade", "mtime",
"Internal C", "Scalar function", false, false, false, "res_0",
"int", 32, 0, "out", "arg_1", "date", 0, 0, "in",
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
]
[ "sys", "decade", "SYSTEM", "decade", "mtime",
"Internal C", "Scalar function", false, false, false, "res_0",
"int", 32, 0, "out", "arg_1", "timestamp", 7, 0,
"in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL ]
[ "sys", "decade", "SYSTEM", "decade", "mtime",
"Internal C", "Scalar function", false, false, false, "res_0",
"int", 32, 0, "out", "arg_1", "timestamptz", 7, 0,
"in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL ]
diff --git a/sql/test/emptydb/Tests/check.stable.out.32bit
b/sql/test/emptydb/Tests/check.stable.out.32bit
--- a/sql/test/emptydb/Tests/check.stable.out.32bit
+++ b/sql/test/emptydb/Tests/check.stable.out.32bit
@@ -149,6 +149,7 @@ stdout of test 'check` in directory 'sql
\dSf sys."date_trunc"
\dSf sys."db_users"
\dSf sys."debug"
+\dSf sys."debugflags"
\dSf sys."degrees"
\dSf sys."deltas"
\dSf sys."droporderindex"
@@ -517,6 +518,7 @@ SYSTEM FUNCTION sys.dayofweek
SYSTEM FUNCTION sys.dayofyear
SYSTEM FUNCTION sys.db_users
SYSTEM FUNCTION sys.debug
+SYSTEM FUNCTION sys.debugflags
SYSTEM FUNCTION sys.decade
SYSTEM FUNCTION sys.degrees
SYSTEM FUNCTION sys.deltas
@@ -990,6 +992,8 @@ create function date_to_str(d date, form
create function sys.date_trunc(txt string, t timestamp) returns timestamp
external name sql.date_trunc;
CREATE FUNCTION db_users () RETURNS TABLE(name varchar(2048)) EXTERNAL NAME
sql.db_users;
create function sys.debug(debug int) returns integer external name
mdb."setDebug";
+create function sys.debug(flag string) returns integer external name
mdb."setDebug";
+create function sys.debugflags() returns table("flag" string, "val" bool)
external name "mdb"."getDebugFlags";
create function degrees(r double) returns double return r*180/pi();
create function sys.deltas ("schema" string) returns table ("id" int,
"cleared" boolean, "immutable" bigint, "inserted" bigint, "updates" bigint,
"deletes" bigint, "level" int) external name "sql"."deltas";
create function sys.deltas ("schema" string, "table" string) returns table
("id" int, "cleared" boolean, "immutable" bigint, "inserted" bigint, "updates"
bigint, "deletes" bigint, "level" int) external name "sql"."deltas";
@@ -2354,6 +2358,8 @@ drop function pcre_replace(string, strin
[ "sys", "dayofyear", "SYSTEM", "dayofyear", "mtime",
"Internal C", "Scalar function", false, false, false, "res_0",
"int", 32, 0, "out", "arg_1", "date", 0, 0, "in",
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
]
[ "sys", "db_users", "SYSTEM", "CREATE FUNCTION db_users ()
RETURNS TABLE(name varchar(2048)) EXTERNAL NAME sql.db_users;", "sql",
"SQL", "Function returning a table", false, false, false, "name",
"varchar", 2048, 0, "out", NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
]
[ "sys", "debug", "SYSTEM", "create function
sys.debug(debug int) returns integer external name mdb.\"setDebug\";", "mdb",
"MAL", "Scalar function", false, false, false, "result", "int",
32, 0, "out", "debug", "int", 32, 0, "in", NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ]
+[ "sys", "debug", "SYSTEM", "create function sys.debug(flag
string) returns integer external name mdb.\"setDebug\";", "mdb", "MAL",
"Scalar function", false, false, false, "result", "int", 32,
0, "out", "flag", "clob", 0, 0, "in", NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL ]
+[ "sys", "debugflags", "SYSTEM", "create function
sys.debugflags() returns table(\"flag\" string, \"val\" bool) external name
\"mdb\".\"getDebugFlags\";", "mdb", "MAL", "Function returning a
table", true, false, false, "flag", "clob", 0, 0, "out",
"val", "boolean", 1, 0, "out", NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL ]
[ "sys", "decade", "SYSTEM", "decade", "mtime",
"Internal C", "Scalar function", false, false, false, "res_0",
"int", 32, 0, "out", "arg_1", "date", 0, 0, "in",
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
]
[ "sys", "decade", "SYSTEM", "decade", "mtime",
"Internal C", "Scalar function", false, false, false, "res_0",
"int", 32, 0, "out", "arg_1", "timestamp", 7, 0,
"in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL ]
[ "sys", "decade", "SYSTEM", "decade", "mtime",
"Internal C", "Scalar function", false, false, false, "res_0",
"int", 32, 0, "out", "arg_1", "timestamptz", 7, 0,
"in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL ]
diff --git a/sql/test/emptydb/Tests/check.stable.out.int128
b/sql/test/emptydb/Tests/check.stable.out.int128
--- a/sql/test/emptydb/Tests/check.stable.out.int128
+++ b/sql/test/emptydb/Tests/check.stable.out.int128
@@ -149,6 +149,7 @@ stdout of test 'check` in directory 'sql
\dSf sys."date_trunc"
\dSf sys."db_users"
\dSf sys."debug"
+\dSf sys."debugflags"
\dSf sys."degrees"
\dSf sys."deltas"
\dSf sys."droporderindex"
@@ -515,6 +516,7 @@ SYSTEM FUNCTION sys.dayofweek
SYSTEM FUNCTION sys.dayofyear
SYSTEM FUNCTION sys.db_users
SYSTEM FUNCTION sys.debug
+SYSTEM FUNCTION sys.debugflags
SYSTEM FUNCTION sys.decade
SYSTEM FUNCTION sys.degrees
SYSTEM FUNCTION sys.deltas
@@ -987,6 +989,8 @@ create function date_to_str(d date, form
create function sys.date_trunc(txt string, t timestamp) returns timestamp
external name sql.date_trunc;
CREATE FUNCTION db_users () RETURNS TABLE(name varchar(2048)) EXTERNAL NAME
sql.db_users;
create function sys.debug(debug int) returns integer external name
mdb."setDebug";
+create function sys.debug(flag string) returns integer external name
mdb."setDebug";
+create function sys.debugflags() returns table("flag" string, "val" bool)
external name "mdb"."getDebugFlags";
create function degrees(r double) returns double return r*180/pi();
create function sys.deltas ("schema" string) returns table ("id" int,
"cleared" boolean, "immutable" bigint, "inserted" bigint, "updates" bigint,
"deletes" bigint, "level" int) external name "sql"."deltas";
create function sys.deltas ("schema" string, "table" string) returns table
("id" int, "cleared" boolean, "immutable" bigint, "inserted" bigint, "updates"
bigint, "deletes" bigint, "level" int) external name "sql"."deltas";
@@ -2388,6 +2392,8 @@ drop function pcre_replace(string, strin
[ "sys", "dayofyear", "SYSTEM", "dayofyear", "mtime",
"Internal C", "Scalar function", false, false, false, "res_0",
"int", 32, 0, "out", "arg_1", "date", 0, 0, "in",
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
]
[ "sys", "db_users", "SYSTEM", "CREATE FUNCTION db_users ()
RETURNS TABLE(name varchar(2048)) EXTERNAL NAME sql.db_users;", "sql",
"SQL", "Function returning a table", false, false, false, "name",
"varchar", 2048, 0, "out", NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
]
[ "sys", "debug", "SYSTEM", "create function
sys.debug(debug int) returns integer external name mdb.\"setDebug\";", "mdb",
"MAL", "Scalar function", false, false, false, "result", "int",
32, 0, "out", "debug", "int", 32, 0, "in", NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ]
+[ "sys", "debug", "SYSTEM", "create function sys.debug(flag
string) returns integer external name mdb.\"setDebug\";", "mdb", "MAL",
"Scalar function", false, false, false, "result", "int", 32,
0, "out", "flag", "clob", 0, 0, "in", NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL ]
+[ "sys", "debugflags", "SYSTEM", "create function
sys.debugflags() returns table(\"flag\" string, \"val\" bool) external name
\"mdb\".\"getDebugFlags\";", "mdb", "MAL", "Function returning a
table", true, false, false, "flag", "clob", 0, 0, "out",
"val", "boolean", 1, 0, "out", NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL ]
[ "sys", "decade", "SYSTEM", "decade", "mtime",
"Internal C", "Scalar function", false, false, false, "res_0",
"int", 32, 0, "out", "arg_1", "date", 0, 0, "in",
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
]
[ "sys", "decade", "SYSTEM", "decade", "mtime",
"Internal C", "Scalar function", false, false, false, "res_0",
"int", 32, 0, "out", "arg_1", "timestamp", 7, 0,
"in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL ]
[ "sys", "decade", "SYSTEM", "decade", "mtime",
"Internal C", "Scalar function", false, false, false, "res_0",
"int", 32, 0, "out", "arg_1", "timestamptz", 7, 0,
"in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL ]
diff --git a/sql/test/subquery/Tests/subquery3.stable.out
b/sql/test/subquery/Tests/subquery3.stable.out
--- a/sql/test/subquery/Tests/subquery3.stable.out
+++ b/sql/test/subquery/Tests/subquery3.stable.out
@@ -32,8 +32,8 @@ stdout of test 'subquery3` in directory
# NOT MAX(t1.col6) IN (SELECT SUM(t1.col6) FROM tbl_ProductSales tp HAVING
MAX(t1.col1) > MIN(tp.colID))
#FROM another_T t1
#GROUP BY t1.col6, t1.col7;
-% .%30 # table_name
-% %30 # name
+% .%31 # table_name
+% %31 # name
% boolean # type
% 5 # length
[ false ]
@@ -190,14 +190,27 @@ stdout of test 'subquery3` in directory
# NOT SUM(t1.col2) * MIN(t1.col6 + t1.col6 - t1.col6 * t1.col6) NOT IN
(SELECT MAX(t2.col6) FROM another_T t2 GROUP BY t1.col6 HAVING t1.col7 +
MIN(t2.col8) < MAX(t2.col7 - t1.col6))
#FROM another_T t1
#GROUP BY t1.col7, t1.col6;
-% .%53 # table_name
-% %53 # name
+% .%21 # table_name
+% %21 # name
% boolean # type
% 5 # length
[ false ]
[ false ]
[ false ]
[ false ]
+#SELECT
+# CASE WHEN NOT t1.col2 NOT IN (SELECT (SELECT MAX(t1.col7)) UNION (SELECT
MIN(ColID) FROM tbl_ProductSales LEFT JOIN another_T t2 ON MIN(t1.col5) =
t1.col1)) THEN 1 ELSE 2 END,
+# CASE WHEN NOT t1.col2 NOT IN (SELECT (SELECT MAX(t1.col7)) UNION (SELECT
MIN(ColID) FROM tbl_ProductSales tp LEFT JOIN another_T t2 ON tp.ColID =
t1.col1 AND tp.ColID = t2.col2)) THEN 1 ELSE 2 END
+#FROM another_T t1
+#GROUP BY t1.col1, t1.col2;
+% .%203, .%204 # table_name
+% %203, %204 # name
+% tinyint, tinyint # type
+% 1, 1 # length
+[ 2, 2 ]
+[ 2, 2 ]
+[ 2, 2 ]
+[ 2, 2 ]
#DROP TABLE tbl_ProductSales;
#DROP TABLE another_T;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list