Changeset: be42eb07f760 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=be42eb07f760
Modified Files:
        sql/backends/monet5/sql_rank.c
Branch: default
Log Message:

Added trivial properties for some window function cases


diffs (81 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
@@ -306,8 +306,12 @@ SQLrow_number(Client cntxt, MalBlkPtr mb
                        int icnt = (int) cnt;
                        for(j=1; j<=icnt; j++, rp++)
                                *rp = j;
+                       r->tsorted = true;
+                       r->tkey = true;
                }
                BATsetcount(r, cnt);
+               r->tnonil = true;
+               r->tnil = false;
                BBPunfix(b->batCacheid);
                BBPkeepref(*res = r->batCacheid);
        } else {
@@ -393,9 +397,13 @@ SQLrank(Client cntxt, MalBlkPtr mb, MalS
                                int icnt = (int) cnt;
                                for(j=1; j<=icnt; j++, rp++)
                                        *rp = j;
+                               r->tsorted = true;
+                               r->tkey = true;
                        }
                }
                BATsetcount(r, cnt);
+               r->tnonil = true;
+               r->tnil = false;
                BBPunfix(b->batCacheid);
                BBPkeepref(*res = r->batCacheid);
        } else {
@@ -481,9 +489,13 @@ SQLdense_rank(Client cntxt, MalBlkPtr mb
                                int icnt = (int) cnt;
                                for(j=1; j<=icnt; j++, rp++)
                                        *rp = j;
+                               r->tsorted = true;
+                               r->tkey = true;
                        }
                }
                BATsetcount(r, cnt);
+               r->tnonil = true;
+               r->tnil = false;
                BBPunfix(b->batCacheid);
                BBPkeepref(*res = r->batCacheid);
        } else {
@@ -570,9 +582,13 @@ SQLpercent_rank(Client cntxt, MalBlkPtr 
                        } else { /* single value, ie no ordering - the outcome 
will always be 0 */
                                for(; rp<end; rp++)
                                        *rp = 0;
+                               r->tsorted = true;
+                               r->trevsorted = true;
                        }
                }
                BATsetcount(r, cnt);
+               r->tnonil = true;
+               r->tnil = false;
                BBPunfix(b->batCacheid);
                BBPkeepref(*res = r->batCacheid);
        } else {
@@ -651,6 +667,8 @@ SQLcume_dist(Client cntxt, MalBlkPtr mb,
                                rp = rb + BATcount(b);
                                for (; rb<rp; rb++)
                                        *rb = 1;
+                               r->tsorted = true;
+                               r->trevsorted = true;
                        }
                } else { /* single value, ie no partitions */
                        if (isaBatType(getArgType(mb, pci, 3))) {
@@ -677,9 +695,13 @@ SQLcume_dist(Client cntxt, MalBlkPtr mb,
                                rp = rb + BATcount(b);
                                for (; rb<rp; rb++)
                                        *rb = 1;
+                               r->tsorted = true;
+                               r->trevsorted = true;
                        }
                }
                BATsetcount(r, BATcount(b));
+               r->tnonil = true;
+               r->tnil = false;
                BBPunfix(b->batCacheid);
                BBPkeepref(*res = r->batCacheid);
        } else {
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to