Changeset: 828da67165f3 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=828da67165f3
Modified Files:
sql/backends/monet5/sql_rank.c
Branch: default
Log Message:
Take constant into consideration for sql.diff
diffs (33 lines):
diff --git a/sql/backends/monet5/sql_rank.c b/sql/backends/monet5/sql_rank.c
--- a/sql/backends/monet5/sql_rank.c
+++ b/sql/backends/monet5/sql_rank.c
@@ -66,16 +66,27 @@ SQLdiff(Client cntxt, MalBlkPtr mb, MalS
throw(SQL, "sql.diff", GDK_EXCEPTION);
} else if (pci->argc > 2 && isaBatType(getArgType(mb, pci, 2))) {
bat *res = getArgReference_bat(stk, pci, 0);
+ bit prev = *getArgReference_bit(stk, pci, 1);
bat *bid = getArgReference_bat(stk, pci, 2);
- BAT *b = BATdescriptor(*bid), *r;
+ BAT *b = BATdescriptor(*bid), *r, *c;
+ bit *restrict cb;
gdk_return gdk_code = GDK_SUCCEED;
if (!b)
throw(SQL, "sql.diff", SQLSTATE(HY005) "Cannot access
column descriptor");
voidresultBAT(r, TYPE_bit, BATcount(b), b, "sql.diff");
- gdk_code = GDKanalyticaldiff(r, b, NULL, b->ttype);
+ c = COLnew(0, TYPE_bit, BATcount(b), TRANSIENT);
+ if (!c) {
+ BBPunfix(b->batCacheid);
+ throw(SQL, "sql.diff", SQLSTATE(HY013) MAL_MALLOC_FAIL);
+ }
+ cb = (bit *) Tloc(c, 0);
+ memset(cb, prev, BATcount(b));
+
+ gdk_code = GDKanalyticaldiff(r, b, c, b->ttype);
BBPunfix(b->batCacheid);
+ BBPreclaim(c);
if (gdk_code == GDK_SUCCEED)
BBPkeepref(*res = r->batCacheid);
else
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list