Changeset: e24c6c3c8889 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/e24c6c3c8889
Modified Files:
        clients/Tests/MAL-signatures-hge.test
        clients/Tests/MAL-signatures.test
        clients/Tests/exports.stable.out
        sql/server/rel_optimize_proj.c
Branch: pp_hashjoin
Log Message:

approved output


diffs (94 lines):

diff --git a/clients/Tests/MAL-signatures-hge.test 
b/clients/Tests/MAL-signatures-hge.test
--- a/clients/Tests/MAL-signatures-hge.test
+++ b/clients/Tests/MAL-signatures-hge.test
@@ -269,6 +269,11 @@ command aggr.cardinality(X_0:bat[:any_2]
 ALGcard
 Return the cardinality of the BAT tail values.
 aggr
+cde
+command aggr.cde(X_0:bat[:any_1]):int
+AGGRcde
+(empty)
+aggr
 cnull
 command aggr.cnull(X_0:bat[:oid], X_1:bat[:bit], X_2:ptr, 
X_3:bat[:oid]):bat[:bit]
 LALGcnull
diff --git a/clients/Tests/MAL-signatures.test 
b/clients/Tests/MAL-signatures.test
--- a/clients/Tests/MAL-signatures.test
+++ b/clients/Tests/MAL-signatures.test
@@ -249,6 +249,11 @@ command aggr.cardinality(X_0:bat[:any_2]
 ALGcard
 Return the cardinality of the BAT tail values.
 aggr
+cde
+command aggr.cde(X_0:bat[:any_1]):int
+AGGRcde
+(empty)
+aggr
 cnull
 command aggr.cnull(X_0:bat[:oid], X_1:bat[:bit], X_2:ptr, 
X_3:bat[:oid]):bat[:bit]
 LALGcnull
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -465,6 +465,7 @@ size_t _MT_pagesize;
 const union _dbl_nil_t _dbl_nil_;
 const union _flt_nil_t _flt_nil_;
 char *asctime_r(const struct tm *restrict, char *restrict);
+double bat_guess_uniques(BAT *b, BATiter *bi, struct canditer *bci);
 ssize_t bitFromStr(allocator *ma, const char *src, size_t *len, bit **dst, 
bool external);
 ssize_t bitToStr(allocator *ma, str *dst, size_t *len, const bit *src, bool 
external);
 size_t blobsize(size_t nitems) __attribute__((__const__));
@@ -598,6 +599,8 @@ const ptr ptr_nil;
 ssize_t shtFromStr(allocator *ma, const char *src, size_t *len, sht **dst, 
bool external);
 ssize_t shtToStr(allocator *ma, str *dst, size_t *len, const sht *src, bool 
external);
 const sht sht_nil;
+double sketch_estimate(uint8_t cnt_sketch[BUCKETS][CLZ_BUCKETS]);
+void sketch_populate(BAT *n, BATiter *ni, struct canditer *nci, uint8_t 
cnting_sketch[BUCKETS][CLZ_BUCKETS]);
 ssize_t sql_daytime_fromstr(allocator *ma, const char *buf, daytime *d, long 
tz_sec, bool tzlocal);
 ssize_t sql_timestamp_fromstr(allocator *ma, const char *buf, timestamp *d, 
long tz_sec, bool tzlocal);
 ssize_t strFromStr(allocator *ma, const char *restrict src, size_t *restrict 
len, str *restrict dst, bool external);
diff --git a/sql/server/rel_optimize_proj.c b/sql/server/rel_optimize_proj.c
--- a/sql/server/rel_optimize_proj.c
+++ b/sql/server/rel_optimize_proj.c
@@ -2584,23 +2584,26 @@ rel_remove_const_aggr(visitor *v, sql_re
                                if (list_empty(se))
                                        continue;
 
-                               int sum = strcmp(j->base.name, "sum") == 0,
-                                       prd = strcmp(j->base.name, "prod") == 0,
-                                       cnt = strcmp(j->base.name, "count") == 
0;
-
-                               //for (node *m = se->h; m; m = m->next) {
+                               for (node *m = se->h; m; m = m->next) {
                                        sql_exp *w = se->h->data;
-
-                                       if (w->type == e_atom && w->card == 
CARD_ATOM) {
-                                               atom *wa = w->l;
-
-                                               if ((sum && !(wa->isnull || 
atom_is_zero(wa))) ||
+                                       if (w->type != e_atom || w->card != 
CARD_ATOM)
+                                               continue;
+                               }
+                               sql_exp *w = se->h->data;
+
+                               if (w->type == e_atom && w->card == CARD_ATOM) {
+                                       int sum = strcmp(j->base.name, "sum") 
== 0,
+                                               prd = strcmp(j->base.name, 
"prod") == 0,
+                                               cnt = strcmp(j->base.name, 
"count") == 0;
+
+                                       atom *wa = w->l;
+
+                                       if ((sum && !(wa->isnull || 
atom_is_zero(wa))) ||
                                                        (prd && !(wa->isnull || 
atom_is_one(wa))) ||
                                                        (cnt && !wa->isnull))
-                                                       continue;
-                                               needed = true;
-                                       }
-                               //}
+                                               continue;
+                                       needed = true;
+                               }
                        }
                }
                if (!needed)
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to