Changeset: 48b021481a89 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/48b021481a89 Modified Files: sql/storage/bat/bat_storage.c sql/storage/store.c Branch: Sep2022 Log Message:
Merge with Jan2022 branch. diffs (truncated from 1159 to 300 lines): diff --git a/gdk/ChangeLog.Jan2022 b/gdk/ChangeLog.Jan2022 new file mode 100644 --- /dev/null +++ b/gdk/ChangeLog.Jan2022 @@ -0,0 +1,11 @@ +# ChangeLog file for GDK +# This file is updated with Maddlog + +* Mon Sep 19 2022 Sjoerd Mullender <[email protected]> +- Fixed a bug in ORDER BY with both NULLS LAST and LIMIT when the ordering + was on an interger or integer-like column and NULL values are present. + +* Wed Aug 24 2022 Sjoerd Mullender <[email protected]> +- The median_avg and quantile_avg returned bogus results in the + non-grouped case (i.e. something like SELECT sys.median_avg(i) FROM t). + diff --git a/sql/ChangeLog.Jan2022 b/sql/ChangeLog.Jan2022 new file mode 100644 --- /dev/null +++ b/sql/ChangeLog.Jan2022 @@ -0,0 +1,7 @@ +# ChangeLog file for sql +# This file is updated with Maddlog + +* Mon Sep 19 2022 Sjoerd Mullender <[email protected]> +- Fixed a bug in COPY BINARY INTO where the input wasn't checked + thoroughly enough. + diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c --- a/sql/storage/bat/bat_storage.c +++ b/sql/storage/bat/bat_storage.c @@ -383,11 +383,12 @@ merge_segments(storage *s, sql_trans *tr int merge = 1; node *n = store->active->h; for (int i = 0; i < store->active->cnt; i++, n = n->next) { - ulng active = ((sql_trans*)n->data)->ts; - if(active == seg->ts || active == cur->ts) - continue; /* pretent that a recently committed transaction has already committed and is no longer active */ + sql_trans* other = ((sql_trans*)n->data); + ulng active = other->ts; + if(other->active == 2) + continue; /* pretend that another recently committed transaction is no longer active */ if (active == tr->ts) - continue; /* pretent that committing transaction has already committed and is no longer active */ + continue; /* pretend that committing transaction has already committed and is no longer active */ if (seg->ts < active && cur->ts < active) break; if (seg->ts > active && cur->ts > active) diff --git a/sql/storage/store.c b/sql/storage/store.c --- a/sql/storage/store.c +++ b/sql/storage/store.c @@ -3998,7 +3998,7 @@ sql_trans_commit(sql_trans *tr) } n = next; } - tr->ts = commit_ts; + tr->active = 2; /* small hack enabling to signal that this transaction has committed */ store_unlock(store); /* flush the log structure */ if (log) { diff --git a/sql/test/Tests/orderby-nulls-first-last.test b/sql/test/Tests/orderby-nulls-first-last.test --- a/sql/test/Tests/orderby-nulls-first-last.test +++ b/sql/test/Tests/orderby-nulls-first-last.test @@ -10,31 +10,31 @@ statement ok -create table obn (cti tinyint, cbi bigint, crl real, cdl double, cch char(44), cvc varchar(99), cstr string, ctm time, cdt date, cts timestamp(0)); +create table obn (cti tinyint, cbi bigint, crl real, cdl double, cch char(44), cvc varchar(99), cstr string, ctm time, cdt date, cts timestamp(0)) statement ok rowcount 1 -insert into obn values(4,4,4,4,'c4c','vc4','str4','04:04:04','2004-04-04','2004-04-04 04:04:04'); +insert into obn values(4,4,4,4,'c4c','vc4','str4','04:04:04','2004-04-04','2004-04-04 04:04:04') statement ok rowcount 1 -insert into obn values(9,9,9,9,'c9c','vc9','str9','09:09:09','2009-09-09','2009-09-09 09:09:09'); +insert into obn values(9,9,9,9,'c9c','vc9','str9','09:09:09','2009-09-09','2009-09-09 09:09:09') statement ok rowcount 1 -insert into obn values(null,null,null,null,null,null,null,null,null,null); +insert into obn values(null,null,null,null,null,null,null,null,null,null) statement ok rowcount 1 -insert into obn values(12,12,12,12,'c12c','vc12','str12','12:12:12','2012-12-12','2012-12-12 12:12:12'); +insert into obn values(12,12,12,12,'c12c','vc12','str12','12:12:12','2012-12-12','2012-12-12 12:12:12') statement ok rowcount 1 -insert into obn values(3,3,3,3,'c3c','vc3','str3','03:03:03','2003-03-03','2003-03-03 03:03:03'); +insert into obn values(3,3,3,3,'c3c','vc3','str3','03:03:03','2003-03-03','2003-03-03 03:03:03') statement ok rowcount 1 -insert into obn values(null,null,null,null,null,null,null,null,null,null); +insert into obn values(null,null,null,null,null,null,null,null,null,null) statement ok rowcount 1 -insert into obn values(2,2,2,2,'c2c','vc2','str2','02:02:02','2002-02-02','2002-02-02 02:02:02'); +insert into obn values(2,2,2,2,'c2c','vc2','str2','02:02:02','2002-02-02','2002-02-02 02:02:02') query IIRRTTTTTT nosort -select * from obn; +select * from obn ---- 4 4 @@ -108,7 +108,7 @@ 2002-02-02 2002-02-02 02:02:02 query IIRRTTTTTT nosort -select * from obn order by cti; +select * from obn order by cti ---- NULL NULL @@ -182,7 +182,7 @@ 2012-12-12 2012-12-12 12:12:12 query I nosort -select cti from obn order by cti nulls first; +select cti from obn order by cti nulls first ---- NULL NULL @@ -193,7 +193,7 @@ 9 12 query I nosort -select cti from obn order by cti nulls last; +select cti from obn order by cti nulls last ---- 2 3 @@ -204,7 +204,7 @@ NULL NULL query I nosort -select cti from obn order by cti nulls last limit 6; +select cti from obn order by cti nulls last limit 6 ---- 2 3 @@ -214,7 +214,7 @@ 12 NULL query I nosort -select cti from obn order by cti nulls last limit 4 offset 2; +select cti from obn order by cti nulls last limit 4 offset 2 ---- 4 9 @@ -222,7 +222,7 @@ 12 NULL query I nosort -select cti from obn order by cti nulls last offset 3; +select cti from obn order by cti nulls last offset 3 ---- 9 12 @@ -230,7 +230,7 @@ NULL NULL query I nosort -select cti from obn order by cti desc; +select cti from obn order by cti desc ---- 12 9 @@ -241,7 +241,7 @@ NULL NULL query I nosort -select cti from obn order by cti desc nulls last; +select cti from obn order by cti desc nulls last ---- 12 9 @@ -252,7 +252,7 @@ NULL NULL query I nosort -select cti from obn order by cti desc nulls first; +select cti from obn order by cti desc nulls first ---- NULL NULL @@ -263,7 +263,7 @@ 3 2 query I nosort -select cti from obn order by cti desc nulls first limit 5; +select cti from obn order by cti desc nulls first limit 5 ---- NULL NULL @@ -272,7 +272,7 @@ 9 4 query I nosort -select cti from obn order by cti desc nulls first offset 1; +select cti from obn order by cti desc nulls first offset 1 ---- NULL 12 @@ -283,7 +283,7 @@ 2 query I nosort -select cbi from obn order by cbi; +select cbi from obn order by cbi ---- NULL NULL @@ -294,7 +294,7 @@ 9 12 query I nosort -select cbi from obn order by cbi nulls first; +select cbi from obn order by cbi nulls first ---- NULL NULL @@ -305,7 +305,7 @@ 9 12 query I nosort -select cbi from obn order by cbi nulls last; +select cbi from obn order by cbi nulls last ---- 2 3 @@ -316,7 +316,7 @@ NULL NULL query I nosort -select cbi from obn order by cbi nulls last limit 5; +select cbi from obn order by cbi nulls last limit 5 ---- 2 3 @@ -325,7 +325,7 @@ 9 12 query I nosort -select cbi from obn order by cbi nulls last limit 4 offset 2; +select cbi from obn order by cbi nulls last limit 4 offset 2 ---- 4 9 @@ -333,7 +333,7 @@ 12 NULL query I nosort -select cbi from obn order by cbi nulls last offset 2; +select cbi from obn order by cbi nulls last offset 2 ---- 4 9 @@ -342,7 +342,7 @@ NULL NULL query I nosort -select cbi from obn order by cbi desc; +select cbi from obn order by cbi desc ---- 12 9 @@ -353,7 +353,7 @@ NULL NULL query I nosort -select cbi from obn order by cbi desc nulls last; +select cbi from obn order by cbi desc nulls last ---- 12 9 @@ -364,7 +364,7 @@ NULL NULL query I nosort -select cbi from obn order by cbi desc nulls first; +select cbi from obn order by cbi desc nulls first ---- NULL NULL @@ -375,7 +375,7 @@ 3 2 query I nosort -select cbi from obn order by cbi desc nulls first limit 6; +select cbi from obn order by cbi desc nulls first limit 6 ---- NULL NULL @@ -385,7 +385,7 @@ 4 3 query I nosort -select cbi from obn order by cbi desc nulls first limit 5 offset 1; +select cbi from obn order by cbi desc nulls first limit 5 offset 1 ---- _______________________________________________ checkin-list mailing list -- [email protected] To unsubscribe send an email to [email protected]
