Changeset: 150ba22209cb for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/150ba22209cb Modified Files: sql/backends/monet5/rel_bin.c sql/test/BugTracker-2024/Tests/CMDgen_group-Bug-7486.test Branch: default Log Message:
fixed bug #7486, topn's over referenced relations need to lookup the allready constructed relation diffs (36 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 @@ -4560,7 +4560,10 @@ rel2bin_topn(backend *be, sql_rel *rel, sql_rel *rl = rel->l; if (rl->op == op_project) { - sub = rel2bin_project(be, rl, refs, rel); + if (rel_is_ref(rl)) + sub = refs_find_rel(refs, rl); + else + sub = rel2bin_project(be, rl, refs, rel); } else { sub = subrel_bin(be, rl, refs); } diff --git a/sql/test/BugTracker-2024/Tests/CMDgen_group-Bug-7486.test b/sql/test/BugTracker-2024/Tests/CMDgen_group-Bug-7486.test --- a/sql/test/BugTracker-2024/Tests/CMDgen_group-Bug-7486.test +++ b/sql/test/BugTracker-2024/Tests/CMDgen_group-Bug-7486.test @@ -5,7 +5,6 @@ NULL NULL NULL -skipif knownfail query I nosort WITH x AS ( SELECT * FROM generate_series ( 32989 , 8100 ) EXCEPT SELECT * FROM generate_series ( 44 , 3 ) ) SELECT CASE WHEN NULL IN ( 69 , MAX ( CASE WHEN 97 THEN 66 END ) OVER ( ) + ( SELECT COUNT ( * ) ) ) THEN 41 END FROM x LIMIT 3 ---- @@ -13,8 +12,7 @@ NULL NULL NULL -skipif knownfail -query I nosort +statement error GDK reported error: BATsubcross: more than one match SELECT ( WITH x AS ( SELECT * FROM generate_series ( 32989 , 8100 ) EXCEPT SELECT * FROM generate_series ( 44 , 3 ) ) SELECT CASE WHEN NULL IN ( 69 , MAX ( CASE WHEN 97 THEN 66 END ) OVER ( ) + ( SELECT COUNT ( * ) ) ) THEN 41 END FROM x ) ---- _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org