Changeset: cfab286d74e7 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=cfab286d74e7 Modified Files: sql/server/rel_select.c sql/test/SQLancer/Tests/sqlancer07.sql sql/test/SQLancer/Tests/sqlancer07.stable.out Branch: octbugs Log Message:
Protect from null pointer diffs (58 lines): 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 @@ -5051,12 +5051,12 @@ rel_value_exp(sql_query *query, sql_rel e = exp_values(query->sql->sa, r->exps); } else { e = r->exps->h->data; - if (*rel && !exp_has_rel(e)) { + if (rel && *rel && !exp_has_rel(e)) { rel_bind_var(query->sql, *rel, e); if (exp_has_freevar(query->sql, e) && is_sql_aggr(f)) { sql_rel *outer = query_fetch_outer(query, exp_has_freevar(query->sql, e)-1); query_outer_pop_last_used(query, exp_has_freevar(query->sql, e)-1); - reset_outer(outer); + reset_outer(outer); } } } 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 @@ -172,6 +172,9 @@ PREPARE SELECT ?, CASE 'weHtU' WHEN (val PREPARE SELECT DISTINCT ?, CAST(CASE least(?, r'weHtU') WHEN ? THEN ? WHEN ? THEN ? WHEN (VALUES (?)) THEN r'G' ELSE ? END AS DATE) WHERE (?) IS NOT NULL LIMIT 519007555986016405; -- cannot have a parameter for IS NOT NULL operator +values (1,(select 2)); + -- 1 2 + START TRANSACTION; CREATE TABLE "t0" ("c0" INTEGER,"c1" DECIMAL(18,3)); INSERT INTO "t0" VALUES (72238796, 0.553); diff --git a/sql/test/SQLancer/Tests/sqlancer07.stable.out b/sql/test/SQLancer/Tests/sqlancer07.stable.out --- a/sql/test/SQLancer/Tests/sqlancer07.stable.out +++ b/sql/test/SQLancer/Tests/sqlancer07.stable.out @@ -211,8 +211,8 @@ stdout of test 'sqlancer07` in directory % bigint # type % 1 # length #SELECT CAST(SUM(count) AS BIGINT) FROM (SELECT ALL CAST(((((t0.c0)%((SELECT DISTINCT t0.c0 FROM t1, t0, t2 WHERE FALSE))))<=(t1.c0)) AS INT) as count FROM t2, t0 CROSS JOIN t1) as res; -% .%3 # table_name -% %3 # name +% .%4 # table_name +% %4 # name % bigint # type % 1 # length [ NULL ] @@ -232,6 +232,12 @@ stdout of test 'sqlancer07` in directory % 7, 1, 1, 0, 2, 2 # length [ "tinyint", 1, 0, "", "%2", "%2" ] [ "boolean", 1, 0, NULL, NULL, NULL ] +#values (1,(select 2)); +% .%1, .%2 # table_name +% %1, %2 # name +% tinyint, tinyint # type +% 1, 1 # length +[ 1, 2 ] #START TRANSACTION; #CREATE TABLE "t0" ("c0" INTEGER,"c1" DECIMAL(18,3)); #INSERT INTO "t0" VALUES (72238796, 0.553); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list