Changeset: b18d9db66ec1 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/b18d9db66ec1 Modified Files: sql/server/rel_select.c Branch: default Log Message:
Merge with Jan2022 branch. diffs (166 lines): diff --git a/sql/benchmarks/nobench/Tests/data b/sql/benchmarks/nobench/Tests/data deleted file mode 100644 --- a/sql/benchmarks/nobench/Tests/data +++ /dev/null @@ -1,10 +0,0 @@ -{"nested_obj": {"num": 4, "str": "GBRDCMBQ"}, "dyn2": true, "dyn1": 9, "nested_arr": ["especially"], "str2": "GBRDCMBQ", "str1": "GBRDCMBQGE======", "sparse_093": "GBRDCMBQGE======", "thousandth": 9, "sparse_090": "GBRDCMBQGE======", "sparse_091": "GBRDCMBQGE======", "sparse_092": "GBRDCMBQGE======", "num": 9, "bool": true, "sparse_095": "GBRDCMBQGE======", "sparse_096": "GBRDCMBQGE======", "sparse_097": "GBRDCMBQGE======", "sparse_098": "GBRDCMBQGE======", "sparse_094": "GBRDCMBQGE======", "sparse_099": "GBRDCMBQGE======"} -{"nested_obj": {"num": 2, "str": "GBRDCMA="}, "dyn2": "GBRDCMJR", "dyn1": 7, "nested_arr": ["its", "for", "if", "he", "questions", "to", "put"], "str2": "GBRDCMA=", "str1": "GBRDCMJR", "sparse_079": "GBRDCMJR", "thousandth": 7, "sparse_078": "GBRDCMJR", "num": 7, "bool": true, "sparse_072": "GBRDCMJR", "sparse_073": "GBRDCMJR", "sparse_070": "GBRDCMJR", "sparse_071": "GBRDCMJR", "sparse_076": "GBRDCMJR", "sparse_077": "GBRDCMJR", "sparse_074": "GBRDCMJR", "sparse_075": "GBRDCMJR"} -{"nested_obj": {"num": 3, "str": "GBRDCMI="}, "dyn2": 8, "dyn1": 8, "nested_arr": [], "str2": "GBRDCMI=", "str1": "GBRDCMBQGA======", "thousandth": 8, "sparse_087": "GBRDCMBQGA======", "sparse_086": "GBRDCMBQGA======", "sparse_085": "GBRDCMBQGA======", "num": 8, "bool": false, "sparse_082": "GBRDCMBQGA======", "sparse_081": "GBRDCMBQGA======", "sparse_080": "GBRDCMBQGA======", "sparse_083": "GBRDCMBQGA======", "sparse_084": "GBRDCMBQGA======", "sparse_089": "GBRDCMBQGA======", "sparse_088": "GBRDCMBQGA======"} -{"nested_obj": {"num": 0, "str": "GBRDA==="}, "dyn2": 5, "dyn1": 5, "nested_arr": ["the", "state", "aware", "''", "the"], "str2": "GBRDA===", "str1": "GBRDCMBR", "sparse_058": "GBRDCMBR", "thousandth": 5, "num": 5, "bool": true, "sparse_059": "GBRDCMBR", "sparse_054": "GBRDCMBR", "sparse_055": "GBRDCMBR", "sparse_056": "GBRDCMBR", "sparse_057": "GBRDCMBR", "sparse_050": "GBRDCMBR", "sparse_051": "GBRDCMBR", "sparse_052": "GBRDCMBR", "sparse_053": "GBRDCMBR"} -{"nested_obj": {"num": 8, "str": "GBRDCMBQGA======"}, "sparse_035": "GBRDCMI=", "dyn2": true, "dyn1": 3, "nested_arr": ["check", "it", "the"], "str2": "GBRDCMBQGA======", "str1": "GBRDCMI=", "thousandth": 3, "sparse_036": "GBRDCMI=", "sparse_037": "GBRDCMI=", "sparse_034": "GBRDCMI=", "num": 3, "bool": true, "sparse_033": "GBRDCMI=", "sparse_030": "GBRDCMI=", "sparse_031": "GBRDCMI=", "sparse_032": "GBRDCMI=", "sparse_038": "GBRDCMI=", "sparse_039": "GBRDCMI="} -{"nested_obj": {"num": 9, "str": "GBRDCMBQGE======"}, "sparse_040": "GBRDCMBQ", "dyn2": "GBRDCMBQ", "dyn1": 4, "nested_arr": ["potatoes", "a", "to", "authentic"], "str2": "GBRDCMBQGE======", "str1": "GBRDCMBQ", "thousandth": 4, "sparse_043": "GBRDCMBQ", "sparse_042": "GBRDCMBQ", "sparse_041": "GBRDCMBQ", "num": 4, "bool": false, "sparse_046": "GBRDCMBQ", "sparse_045": "GBRDCMBQ", "sparse_044": "GBRDCMBQ", "sparse_047": "GBRDCMBQ", "sparse_049": "GBRDCMBQ", "sparse_048": "GBRDCMBQ"} -{"sparse_018": "GBRDC===", "nested_obj": {"num": 6, "str": "GBRDCMJQ"}, "dyn2": "GBRDC===", "dyn1": 1, "nested_arr": ["button-down"], "sparse_010": "GBRDC===", "str2": "GBRDCMJQ", "str1": "GBRDC===", "sparse_013": "GBRDC===", "sparse_014": "GBRDC===", "sparse_015": "GBRDC===", "sparse_016": "GBRDC===", "sparse_017": "GBRDC===", "num": 1, "bool": true, "sparse_011": "GBRDC===", "thousandth": 1, "sparse_019": "GBRDC===", "sparse_012": "GBRDC==="} -{"nested_obj": {"num": 7, "str": "GBRDCMJR"}, "dyn2": 2, "dyn1": 2, "nested_arr": ["she", "beyond"], "str2": "GBRDCMJR", "str1": "GBRDCMA=", "thousandth": 2, "sparse_025": "GBRDCMA=", "sparse_024": "GBRDCMA=", "sparse_027": "GBRDCMA=", "num": 2, "bool": false, "sparse_020": "GBRDCMA=", "sparse_023": "GBRDCMA=", "sparse_022": "GBRDCMA=", "sparse_021": "GBRDCMA=", "sparse_029": "GBRDCMA=", "sparse_028": "GBRDCMA=", "sparse_026": "GBRDCMA="} -{"nested_obj": {"num": 5, "str": "GBRDCMBR"}, "sparse_008": "GBRDA===", "sparse_009": "GBRDA===", "dyn2": false, "dyn1": "GBRDA===", "nested_arr": [], "sparse_007": "GBRDA===", "str2": "GBRDCMBR", "str1": "GBRDA===", "sparse_004": "GBRDA===", "sparse_003": "GBRDA===", "sparse_002": "GBRDA===", "sparse_001": "GBRDA===", "sparse_000": "GBRDA===", "num": 0, "bool": false, "sparse_006": "GBRDA===", "thousandth": 0, "sparse_005": "GBRDA==="} -{"nested_obj": {"num": 1, "str": "GBRDC==="}, "dyn2": false, "dyn1": 6, "nested_arr": ["to", "interrupted", "some", "daily", "has", "averages"], "str2": "GBRDC===", "str1": "GBRDCMJQ", "thousandth": 6, "sparse_069": "GBRDCMJQ", "sparse_068": "GBRDCMJQ", "num": 6, "bool": false, "sparse_061": "GBRDCMJQ", "sparse_060": "GBRDCMJQ", "sparse_063": "GBRDCMJQ", "sparse_062": "GBRDCMJQ", "sparse_065": "GBRDCMJQ", "sparse_064": "GBRDCMJQ", "sparse_067": "GBRDCMJQ", "sparse_066": "GBRDCMJQ"} diff --git a/sql/benchmarks/nobench/Tests/nobench.test.in b/sql/benchmarks/nobench/Tests/nobench.test rename from sql/benchmarks/nobench/Tests/nobench.test.in rename to sql/benchmarks/nobench/Tests/nobench.test --- a/sql/benchmarks/nobench/Tests/nobench.test.in +++ b/sql/benchmarks/nobench/Tests/nobench.test @@ -2,7 +2,18 @@ statement ok create table bench10(js json) statement ok -copy 10 records into bench10 from E'$QTSTSRCDIR/data' +copy 10 records into bench10 from STDIN +<COPY_INTO_DATA> +{"nested_obj": {"num": 4, "str": "GBRDCMBQ"}, "dyn2": true, "dyn1": 9, "nested_arr": ["especially"], "str2": "GBRDCMBQ", "str1": "GBRDCMBQGE======", "sparse_093": "GBRDCMBQGE======", "thousandth": 9, "sparse_090": "GBRDCMBQGE======", "sparse_091": "GBRDCMBQGE======", "sparse_092": "GBRDCMBQGE======", "num": 9, "bool": true, "sparse_095": "GBRDCMBQGE======", "sparse_096": "GBRDCMBQGE======", "sparse_097": "GBRDCMBQGE======", "sparse_098": "GBRDCMBQGE======", "sparse_094": "GBRDCMBQGE======", "sparse_099": "GBRDCMBQGE======"} +{"nested_obj": {"num": 2, "str": "GBRDCMA="}, "dyn2": "GBRDCMJR", "dyn1": 7, "nested_arr": ["its", "for", "if", "he", "questions", "to", "put"], "str2": "GBRDCMA=", "str1": "GBRDCMJR", "sparse_079": "GBRDCMJR", "thousandth": 7, "sparse_078": "GBRDCMJR", "num": 7, "bool": true, "sparse_072": "GBRDCMJR", "sparse_073": "GBRDCMJR", "sparse_070": "GBRDCMJR", "sparse_071": "GBRDCMJR", "sparse_076": "GBRDCMJR", "sparse_077": "GBRDCMJR", "sparse_074": "GBRDCMJR", "sparse_075": "GBRDCMJR"} +{"nested_obj": {"num": 3, "str": "GBRDCMI="}, "dyn2": 8, "dyn1": 8, "nested_arr": [], "str2": "GBRDCMI=", "str1": "GBRDCMBQGA======", "thousandth": 8, "sparse_087": "GBRDCMBQGA======", "sparse_086": "GBRDCMBQGA======", "sparse_085": "GBRDCMBQGA======", "num": 8, "bool": false, "sparse_082": "GBRDCMBQGA======", "sparse_081": "GBRDCMBQGA======", "sparse_080": "GBRDCMBQGA======", "sparse_083": "GBRDCMBQGA======", "sparse_084": "GBRDCMBQGA======", "sparse_089": "GBRDCMBQGA======", "sparse_088": "GBRDCMBQGA======"} +{"nested_obj": {"num": 0, "str": "GBRDA==="}, "dyn2": 5, "dyn1": 5, "nested_arr": ["the", "state", "aware", "''", "the"], "str2": "GBRDA===", "str1": "GBRDCMBR", "sparse_058": "GBRDCMBR", "thousandth": 5, "num": 5, "bool": true, "sparse_059": "GBRDCMBR", "sparse_054": "GBRDCMBR", "sparse_055": "GBRDCMBR", "sparse_056": "GBRDCMBR", "sparse_057": "GBRDCMBR", "sparse_050": "GBRDCMBR", "sparse_051": "GBRDCMBR", "sparse_052": "GBRDCMBR", "sparse_053": "GBRDCMBR"} +{"nested_obj": {"num": 8, "str": "GBRDCMBQGA======"}, "sparse_035": "GBRDCMI=", "dyn2": true, "dyn1": 3, "nested_arr": ["check", "it", "the"], "str2": "GBRDCMBQGA======", "str1": "GBRDCMI=", "thousandth": 3, "sparse_036": "GBRDCMI=", "sparse_037": "GBRDCMI=", "sparse_034": "GBRDCMI=", "num": 3, "bool": true, "sparse_033": "GBRDCMI=", "sparse_030": "GBRDCMI=", "sparse_031": "GBRDCMI=", "sparse_032": "GBRDCMI=", "sparse_038": "GBRDCMI=", "sparse_039": "GBRDCMI="} +{"nested_obj": {"num": 9, "str": "GBRDCMBQGE======"}, "sparse_040": "GBRDCMBQ", "dyn2": "GBRDCMBQ", "dyn1": 4, "nested_arr": ["potatoes", "a", "to", "authentic"], "str2": "GBRDCMBQGE======", "str1": "GBRDCMBQ", "thousandth": 4, "sparse_043": "GBRDCMBQ", "sparse_042": "GBRDCMBQ", "sparse_041": "GBRDCMBQ", "num": 4, "bool": false, "sparse_046": "GBRDCMBQ", "sparse_045": "GBRDCMBQ", "sparse_044": "GBRDCMBQ", "sparse_047": "GBRDCMBQ", "sparse_049": "GBRDCMBQ", "sparse_048": "GBRDCMBQ"} +{"sparse_018": "GBRDC===", "nested_obj": {"num": 6, "str": "GBRDCMJQ"}, "dyn2": "GBRDC===", "dyn1": 1, "nested_arr": ["button-down"], "sparse_010": "GBRDC===", "str2": "GBRDCMJQ", "str1": "GBRDC===", "sparse_013": "GBRDC===", "sparse_014": "GBRDC===", "sparse_015": "GBRDC===", "sparse_016": "GBRDC===", "sparse_017": "GBRDC===", "num": 1, "bool": true, "sparse_011": "GBRDC===", "thousandth": 1, "sparse_019": "GBRDC===", "sparse_012": "GBRDC==="} +{"nested_obj": {"num": 7, "str": "GBRDCMJR"}, "dyn2": 2, "dyn1": 2, "nested_arr": ["she", "beyond"], "str2": "GBRDCMJR", "str1": "GBRDCMA=", "thousandth": 2, "sparse_025": "GBRDCMA=", "sparse_024": "GBRDCMA=", "sparse_027": "GBRDCMA=", "num": 2, "bool": false, "sparse_020": "GBRDCMA=", "sparse_023": "GBRDCMA=", "sparse_022": "GBRDCMA=", "sparse_021": "GBRDCMA=", "sparse_029": "GBRDCMA=", "sparse_028": "GBRDCMA=", "sparse_026": "GBRDCMA="} +{"nested_obj": {"num": 5, "str": "GBRDCMBR"}, "sparse_008": "GBRDA===", "sparse_009": "GBRDA===", "dyn2": false, "dyn1": "GBRDA===", "nested_arr": [], "sparse_007": "GBRDA===", "str2": "GBRDCMBR", "str1": "GBRDA===", "sparse_004": "GBRDA===", "sparse_003": "GBRDA===", "sparse_002": "GBRDA===", "sparse_001": "GBRDA===", "sparse_000": "GBRDA===", "num": 0, "bool": false, "sparse_006": "GBRDA===", "thousandth": 0, "sparse_005": "GBRDA==="} +{"nested_obj": {"num": 1, "str": "GBRDC==="}, "dyn2": false, "dyn1": 6, "nested_arr": ["to", "interrupted", "some", "daily", "has", "averages"], "str2": "GBRDC===", "str1": "GBRDCMJQ", "thousandth": 6, "sparse_069": "GBRDCMJQ", "sparse_068": "GBRDCMJQ", "num": 6, "bool": false, "sparse_061": "GBRDCMJQ", "sparse_060": "GBRDCMJQ", "sparse_063": "GBRDCMJQ", "sparse_062": "GBRDCMJQ", "sparse_065": "GBRDCMJQ", "sparse_064": "GBRDCMJQ", "sparse_067": "GBRDCMJQ", "sparse_066": "GBRDCMJQ"} query I rowsort select count(*) from bench10 diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c --- a/sql/server/rel_select.c +++ b/sql/server/rel_select.c @@ -5110,7 +5110,7 @@ rel_value_exp2(sql_query *query, sql_rel if (rel && *rel && (*rel)->card == CARD_AGGR) { /* group by expression case, handle it before */ sql_exp *exp = NULL; - if (!is_sql_aggr(f)) + if (!is_sql_aggr(f) && !is_sql_window(f)) exp = frame_get_groupby_expression(sql, se); if (sql->errstr[0] != '\0') return NULL; diff --git a/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_not_in_select.Bug-6290.test b/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_not_in_select.Bug-6290.test --- a/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_not_in_select.Bug-6290.test +++ b/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_not_in_select.Bug-6290.test @@ -1,8 +1,17 @@ +statement ok +START TRANSACTION + +statement ok +CREATE TABLE "myschemas" ("id" INTEGER, "name" VARCHAR(1024), "authorization" INTEGER, "owner" INTEGER, "system" BOOLEAN) + +statement ok rowcount 7 +INSERT INTO "myschemas" VALUES (2000, 'sys', 2, 3, true),(2114, 'tmp', 2, 3, true),(7446, 'json', 3, 3, true),(7542, 'profiler', 3, 3, true),(7738, 'wlc', 3, 3, true),(7757, 'wlr', 3, 3, true),(8270, 'logging', 3, 3, true) + query TIII rowsort SELECT s.name AS schema_nm, s.system AS is_system_schema , (SELECT CAST(COUNT(*) as int) FROM sys.functions f WHERE f.schema_id = s.id AND f.type <> 2 AND f.id NOT IN (SELECT sf.id as function_id FROM sys.functions sf WHERE sf.system)) AS "user defined functions count" , (SELECT CAST(COUNT(*) as int) FROM sys.functions f WHERE f.schema_id = s.id AND f.type = 2 AND f.id NOT IN (SELECT sf.id as function_id FROM sys.functions sf WHERE sf.system)) AS "user defined procedures count" - FROM sys.schemas AS s + FROM sys.myschemas AS s WHERE s.name IN ('json', 'profiler', 'sys') ---- json @@ -22,7 +31,7 @@ query TIII rowsort SELECT s.name AS schema_nm, s.system AS is_system_schema , (SELECT CAST(COUNT(*) as int) FROM sys.functions f WHERE f.schema_id = s.id AND f.type <> 2 AND NOT f.system) AS "user defined functions count" , (SELECT CAST(COUNT(*) as int) FROM sys.functions f WHERE f.schema_id = s.id AND f.type = 2 AND NOT f.system) AS "user defined procedures count" - FROM sys.schemas AS s + FROM sys.myschemas AS s WHERE s.name IN ('json', 'profiler', 'sys') ---- json @@ -38,3 +47,27 @@ 1 0 0 +query I rowsort +SELECT (SELECT 1 FROM functions f WHERE f.schema_id = s.id AND f.id IN (SELECT -1 FROM functions x)) FROM myschemas AS s +---- +NULL +NULL +NULL +NULL +NULL +NULL +NULL + +query I rowsort +SELECT (SELECT 1 FROM functions f WHERE f.schema_id = s.id AND f.id NOT IN (SELECT x.id FROM functions x)) FROM myschemas AS s +---- +NULL +NULL +NULL +NULL +NULL +NULL +NULL + +statement ok +ROLLBACK diff --git a/sql/test/subquery/Tests/subquery3.test b/sql/test/subquery/Tests/subquery3.test --- a/sql/test/subquery/Tests/subquery3.test +++ b/sql/test/subquery/Tests/subquery3.test @@ -179,6 +179,26 @@ 2.500 2.500 2.500 +query I nosort +SELECT + (SELECT RANK() OVER (PARTITION BY 2 ORDER BY 2) FROM tbl_ProductSales GROUP BY t1.col1) +FROM another_T t1 +---- +1 +1 +1 +1 + +query I nosort +SELECT + (SELECT SUM(1) OVER (PARTITION BY 2 ORDER BY 2 ROWS UNBOUNDED PRECEDING) FROM tbl_ProductSales GROUP BY t1.col1) +FROM another_T t1 +---- +1 +1 +1 +1 + query R nosort SELECT (SELECT SUM(AVG(ColID + col1)) OVER (PARTITION BY SUM(ColID + col3) ORDER BY MAX(ColID) * col4 ROWS UNBOUNDED PRECEDING) FROM tbl_ProductSales GROUP BY t1.col1) diff --git a/sql/test/sysmon/timeout/Tests/timeout_select.maltest b/sql/test/sysmon/timeout/Tests/timeout_select.maltest --- a/sql/test/sysmon/timeout/Tests/timeout_select.maltest +++ b/sql/test/sysmon/timeout/Tests/timeout_select.maltest @@ -19,18 +19,17 @@ dbgmsk_unset := 8+8388608; dbgmsk_keep := calc.xor(INT_MAX,dbgmsk_unset); dbgmsk_set := calc.and(dbgmsk_restore,dbgmsk_keep); mdb.setDebug(dbgmsk_set); -t1:= alarm.usec(); barrier i:= 0:int; r:= user.random(100); bat.append(a, r); redo i:= iterator.next(1:int,count:int); exit i; mdb.setDebug(dbgmsk_restore); -t2:= alarm.usec(); -d:=t2-t1; -qto:= d + 1000:int; +qto:= 1000:lng; clients.setQryTimeoutMicro(qto); X:bat[:oid] := algebra.select(a, 1, count, true:bit, true:bit, false:bit, true:bit); +qto:= 0:lng; +clients.setQryTimeoutMicro(qto); statement ok factories.shutdown("user","random") _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list