Changeset: a020e2959e0f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/a020e2959e0f
Modified Files:
monetdb5/modules/mal/remote.c
sql/test/SQLancer/Tests/sqlancer19.SQL.py
Branch: default
Log Message:
Don't make confusion between void and dense bats
diffs (67 lines):
diff --git a/monetdb5/modules/mal/remote.c b/monetdb5/modules/mal/remote.c
--- a/monetdb5/modules/mal/remote.c
+++ b/monetdb5/modules/mal/remote.c
@@ -1512,7 +1512,7 @@ static str RMTbincopyto(Client cntxt, Ma
{
bat bid = *getArgReference_bat(stk, pci, 1);
BAT *b = BBPquickdesc(bid), *v = b;
- char sendtheap = 0;
+ char sendtheap = 0, sendtvheap = 0;
(void)mb;
(void)stk;
@@ -1524,8 +1524,9 @@ static str RMTbincopyto(Client cntxt, Ma
if (BBPfix(bid) <= 0)
throw(MAL, "remote.bincopyto", MAL_MALLOC_FAIL);
- sendtheap = !BATtvoid(b) && b->tvarsized;
- if (isVIEW(b) && sendtheap && VIEWvtparent(b) && BATcount(b) <
BATcount(BBP_cache(VIEWvtparent(b)))) {
+ sendtheap = b->ttype != TYPE_void;
+ sendtvheap = sendtheap && b->tvarsized;
+ if (isVIEW(b) && sendtvheap && VIEWvtparent(b) && BATcount(b) <
BATcount(BBP_cache(VIEWvtparent(b)))) {
if ((b = BATdescriptor(bid)) == NULL) {
BBPunfix(bid);
throw(MAL, "remote.bincopyto", RUNTIME_OBJECT_MISSING);
@@ -1559,19 +1560,19 @@ static str RMTbincopyto(Client cntxt, Ma
v->tnonil,
BATtdense(v),
v->batCount,
- BATtvoid(v) ? 0 : (size_t)v->batCount << v->tshift,
- sendtheap && !BATtvoid(v) && v->batCount > 0 ?
v->tvheap->free : 0
+ sendtheap ? (size_t)v->batCount << v->tshift : 0,
+ sendtvheap && v->batCount > 0 ? v->tvheap->free : 0
);
- if (!BATtvoid(v) && v->batCount > 0) {
+ if (sendtheap && v->batCount > 0) {
BATiter vi = bat_iterator(v);
mnstr_write(cntxt->fdout, /* tail */
vi.base, vi.count * vi.width, 1);
- if (sendtheap)
+ if (sendtvheap)
mnstr_write(cntxt->fdout, /* theap */
vi.vh->base, vi.vhfree, 1);
bat_iterator_end(&vi);
- }
+ }
/* flush is done by the calling environment (MAL) */
if (b != v)
diff --git a/sql/test/SQLancer/Tests/sqlancer19.SQL.py
b/sql/test/SQLancer/Tests/sqlancer19.SQL.py
--- a/sql/test/SQLancer/Tests/sqlancer19.SQL.py
+++ b/sql/test/SQLancer/Tests/sqlancer19.SQL.py
@@ -212,6 +212,14 @@ with SQLTestCase() as cli:
.assertSucceeded().assertDataResultMatch([])
cli.execute("select 1 from (select distinct 1 from v1, t3) as v1(vc1)
where sql_min(true, true);") \
.assertSucceeded().assertDataResultMatch([])
+ cli.execute("SELECT count(*) FROM ((select 7 from rt3, (values (1)) y(y))
union (select 3)) x(x);") \
+ .assertSucceeded().assertDataResultMatch([(2,)])
+ cli.execute("SELECT count(*) FROM ((select 7 from t3, (values (1)) y(y))
union (select 3)) x(x);") \
+ .assertSucceeded().assertDataResultMatch([(2,)])
+ cli.execute("SELECT count(*) FROM ((select 7 from rt3, (values (1)) y(y))
union all (select 3)) x(x);") \
+ .assertSucceeded().assertDataResultMatch([(7,)])
+ cli.execute("SELECT count(*) FROM ((select 7 from t3, (values (1)) y(y))
union all (select 3)) x(x);") \
+ .assertSucceeded().assertDataResultMatch([(7,)])
cli.execute("ROLLBACK;")
cli.execute("""
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list