Changeset: a93be1cf54bf for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a93be1cf54bf
Modified Files:
        sql/server/rel_optimizer.c
        sql/test/SQLancer/Tests/sqlancer07.sql
        sql/test/SQLancer/Tests/sqlancer07.stable.err
        sql/test/SQLancer/Tests/sqlancer07.stable.err.int128
Branch: Oct2020
Log Message:

Be carefull with parameters


diffs (55 lines):

diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c
--- a/sql/server/rel_optimizer.c
+++ b/sql/server/rel_optimizer.c
@@ -5759,7 +5759,7 @@ rel_groupby_order(visitor *v, sql_rel *r
                if (ngbe - i > 1) {
                        for (int j = i; j < ngbe; j++) {
                                sql_subtype *t = exp_subtype(exps[j]);
-                               scores[j] = t->digits;
+                               scores[j] = t ? t->digits : 0;
                        }
                        /* the less number of digits the better, order 
ascending */
                        GDKqsort(scores + i, exps + i, NULL, ngbe - i, 
sizeof(int), sizeof(void *), TYPE_int, false, true);
diff --git a/sql/test/SQLancer/Tests/sqlancer07.sql 
b/sql/test/SQLancer/Tests/sqlancer07.sql
--- a/sql/test/SQLancer/Tests/sqlancer07.sql
+++ b/sql/test/SQLancer/Tests/sqlancer07.sql
@@ -329,3 +329,7 @@ prepare select case when true then false
 ROLLBACK;
 
 prepare values (0.34, (values ((select ? from (select 1) as t1(x))))), (3, 2);
+
+prepare with cte0(c0) as (select 1), cte1(c0,c1,c2) as (select distinct 1, 2, 
false)
+select distinct least('y', (values (''), (''))), 1, (select ? from (select 1) 
as l1v0(x))
+from cte0 as l0cte0, cte1 as l0cte1 order by l0cte0.c0 desc nulls last, 
l0cte1.c2 desc nulls first; -- ? can't be defined, so error
diff --git a/sql/test/SQLancer/Tests/sqlancer07.stable.err 
b/sql/test/SQLancer/Tests/sqlancer07.stable.err
--- a/sql/test/SQLancer/Tests/sqlancer07.stable.err
+++ b/sql/test/SQLancer/Tests/sqlancer07.stable.err
@@ -56,6 +56,12 @@ MAPI  = (monetdb) /var/tmp/mtest-20193/.
 QUERY = PREPARE SELECT (1 + CAST(l0t0.c0 AS BIGINT)) * scale_up(?, 2) FROM 
(select 1) AS l0t0(c0);
 ERROR = !SELECT: no such binary operator 'sql_mul(bigint,month_interval)'
 CODE  = 42000
+MAPI  = (monetdb) /var/tmp/mtest-363257/.s.monetdb.38983
+QUERY = prepare with cte0(c0) as (select 1), cte1(c0,c1,c2) as (select 
distinct 1, 2, false)
+        select distinct least('y', (values (''), (''))), 1, (select ? from 
(select 1) as l1v0(x))
+        from cte0 as l0cte0, cte1 as l0cte1 order by l0cte0.c0 desc nulls 
last, l0cte1.c2 desc nulls first; -- ? can't be defined, so error
+ERROR = !Could not determine type for argument number 1
+CODE  = 42000
 
 # 10:16:14 >  
 # 10:16:14 >  "Done."
diff --git a/sql/test/SQLancer/Tests/sqlancer07.stable.err.int128 
b/sql/test/SQLancer/Tests/sqlancer07.stable.err.int128
--- a/sql/test/SQLancer/Tests/sqlancer07.stable.err.int128
+++ b/sql/test/SQLancer/Tests/sqlancer07.stable.err.int128
@@ -56,6 +56,12 @@ MAPI  = (monetdb) /var/tmp/mtest-14251/.
 QUERY = PREPARE SELECT DISTINCT ((((CAST(l0t0.c0 AS INT))-(CAST(? AS 
BIGINT))))*(scale_up(?, ((-438139776)*(-813129345))))) FROM (select 1) AS 
l0t0(c0);
 ERROR = !SELECT: no such binary operator 'sql_mul(hugeint,day_interval)'
 CODE  = 42000
+MAPI  = (monetdb) /var/tmp/mtest-363257/.s.monetdb.38983
+QUERY = prepare with cte0(c0) as (select 1), cte1(c0,c1,c2) as (select 
distinct 1, 2, false)
+        select distinct least('y', (values (''), (''))), 1, (select ? from 
(select 1) as l1v0(x))
+        from cte0 as l0cte0, cte1 as l0cte1 order by l0cte0.c0 desc nulls 
last, l0cte1.c2 desc nulls first; -- ? can't be defined, so error
+ERROR = !Could not determine type for argument number 1
+CODE  = 42000
 
 # 10:16:14 >  
 # 10:16:14 >  "Done."
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to