Changeset: 3d6efd7ac670 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3d6efd7ac670
Modified Files:
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        clients/mapiclient/mclient.c
        configure.ag
        gdk/gdk.h
        gdk/gdk_bat.c
        gdk/gdk_join.c
        gdk/gdk_logger.c
        gdk/gdk_private.h
        gdk/gdk_storage.c
        monetdb5/modules/atoms/batxml.c
        monetdb5/modules/kernel/algebra.c
        monetdb5/modules/mal/mal_io.c
        monetdb5/modules/mal/mal_io.h
        monetdb5/modules/mal/pcre.c
        monetdb5/modules/mal/tablet.c
        monetdb5/optimizer/opt_costModel.c
        monetdb5/optimizer/opt_mergetable.c
        monetdb5/optimizer/opt_prelude.c
        monetdb5/optimizer/opt_prelude.h
        monetdb5/optimizer/opt_pushselect.c
        sql/backends/monet5/Makefile.ag
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql.h
        sql/backends/monet5/sql.mal
        sql/backends/monet5/sql_gencode.c
        sql/backends/monet5/sql_result.c
        sql/backends/monet5/sql_scenario.c
        sql/backends/monet5/sql_statement.c
        sql/backends/monet5/sql_statement.h
        sql/backends/monet5/vaults/bam/bam_export.c
        sql/backends/monet5/vaults/fits/fits.c
        sql/backends/monet5/vaults/fits/fits.h
        sql/backends/monet5/vaults/miniseed/71_registrar.mal
        sql/backends/monet5/vaults/miniseed/71_registrar.sql
        sql/backends/monet5/vaults/miniseed/72_miniseed.mal
        sql/backends/monet5/vaults/miniseed/72_miniseed.sql
        sql/backends/monet5/vaults/miniseed/Makefile.ag
        sql/backends/monet5/vaults/miniseed/Tests/All
        sql/backends/monet5/vaults/miniseed/Tests/file_list_example.txt
        sql/backends/monet5/vaults/miniseed/Tests/mount.mal
        sql/backends/monet5/vaults/miniseed/Tests/mount.stable.err
        sql/backends/monet5/vaults/miniseed/Tests/mount.stable.out
        sql/backends/monet5/vaults/miniseed/Tests/registrar.sql.in
        sql/backends/monet5/vaults/miniseed/Tests/registrar.stable.err
        sql/backends/monet5/vaults/miniseed/Tests/registrar.stable.out
        sql/backends/monet5/vaults/miniseed/miniseed.c
        sql/backends/monet5/vaults/miniseed/miniseed.h
        sql/backends/monet5/vaults/miniseed/miniseed.mal
        sql/backends/monet5/vaults/miniseed/mseed_clear.sql
        sql/backends/monet5/vaults/miniseed/mseed_schema.sql
        sql/backends/monet5/vaults/miniseed/registrar.c
        sql/backends/monet5/vaults/miniseed/registrar.h
        sql/backends/monet5/vaults/miniseed/registrar.mal
        sql/server/rel_optimizer.c
        sql/server/sql_mvc.c
        sql/storage/bat/bat_table.c
        sql/storage/bat/bat_utils.c
        sql/storage/bat/bat_utils.h
        sql/test/Tests/systemfunctions.stable.out
        sql/test/leaks/Tests/check0.stable.out
        sql/test/leaks/Tests/check1.stable.out
        sql/test/leaks/Tests/check2.stable.out
        sql/test/leaks/Tests/check3.stable.out
        sql/test/leaks/Tests/check4.stable.out
        sql/test/leaks/Tests/check5.stable.out
        sql/test/leaks/Tests/drop3.stable.out
        sql/test/leaks/Tests/select1.stable.out
        sql/test/leaks/Tests/select2.stable.out
        sql/test/leaks/Tests/temp1.stable.out
        sql/test/leaks/Tests/temp2.stable.out
        sql/test/leaks/Tests/temp3.stable.out
Branch: DataVaults
Log Message:

Merge with the DVframework branch
Resolve a few merge conflicts related to moving files around (mostly)


diffs (234 lines):

diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -40640,12 +40640,6 @@ pattern sql.mvc():int
 address SQLmvc;
 comment Get the multiversion catalog context. Needed for correct statement 
dependencies(ie sql.update, should be after sql.bind in concurrent execution)
 
-command sql.not_uniques(b:bat[:oid,:wrd]):bat[:oid,:oid] 
-address not_unique_oids;
-command sql.not_uniques(b:bat[:oid,:oid]):bat[:oid,:oid] 
-address not_unique_oids;
-comment return not unique oids
-
 command sql.not_unique(b:bat[:oid,:oid]):bit 
 address not_unique;
 comment check if the tail sorted bat b doesn't have unique tail values
diff --git a/clients/Tests/MAL-signatures.stable.out.int128 
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -51575,12 +51575,6 @@ pattern sql.mvc():int
 address SQLmvc;
 comment Get the multiversion catalog context. Needed for correct statement 
dependencies(ie sql.update, should be after sql.bind in concurrent execution)
 
-command sql.not_uniques(b:bat[:oid,:wrd]):bat[:oid,:oid] 
-address not_unique_oids;
-command sql.not_uniques(b:bat[:oid,:oid]):bat[:oid,:oid] 
-address not_unique_oids;
-comment return not unique oids
-
 command sql.not_unique(b:bat[:oid,:oid]):bit 
 address not_unique;
 comment check if the tail sorted bat b doesn't have unique tail values
diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -1789,7 +1789,7 @@ mvc_bind_wrap(Client cntxt, MalBlkPtr mb
        if ((msg = checkSQLContext(cntxt)) != NULL)
                return msg;
        b = mvc_bind(m, *sname, *tname, *cname, *access);
-       if (b && b->ttype != coltype)
+       if (b && coltype != TYPE_any && b->T->type != coltype)
                throw(SQL,"sql.bind","tail type mismatch");
        if (b) {
                if (pci->argc == (8 + upd) && getArgType(mb, pci, 6 + upd) == 
TYPE_int) {
@@ -1887,7 +1887,7 @@ mvc_bind_idxbat_wrap(Client cntxt, MalBl
        if ((msg = checkSQLContext(cntxt)) != NULL)
                return msg;
        b = mvc_bind_idxbat(m, *sname, *tname, *iname, *access);
-       if (b && b->ttype != coltype)
+       if (b && coltype != TYPE_any && b->T->type != coltype)
                throw(SQL,"sql.bind","tail type mismatch");
        if (b) {
                if (pci->argc == (8 + upd) && getArgType(mb, pci, 6 + upd) == 
TYPE_int) {
@@ -3594,109 +3594,6 @@ not_unique(bit *ret, const bat *bid)
        return MAL_SUCCEED;
 }
 
-/* later we could optimize this to start from current BUN 
-   And only search the from the first if second is not found.
- */
-static inline int
-HASHfndTwice(BAT *b, ptr v)
-{
-       BATiter bi = bat_iterator(b);
-       BUN i = BUN_NONE;
-       int first = 1;
-
-       HASHloop(bi, b->T->hash, i, v) {
-               if (!first)
-                       return 1;
-               first = 0;
-       }
-       return 0;
-}
-
-str
-not_unique_oids(bat *ret, const bat *bid)
-{
-       BAT *b, *bn = NULL;
-
-       if ((b = BATdescriptor(*bid)) == NULL) {
-               throw(SQL, "not_uniques", "Cannot access descriptor");
-       }
-       if (b->ttype != TYPE_oid && b->ttype != TYPE_wrd) {
-               throw(SQL, "not_uniques", "Wrong types");
-       }
-
-       assert(b->htype == TYPE_oid);
-       if (BATtkey(b) || BATtdense(b) || BATcount(b) <= 1) {
-               bn = BATnew(TYPE_void, TYPE_void, 0, TRANSIENT);
-               if (bn == NULL) {
-                       BBPunfix(b->batCacheid);
-                       throw(SQL, "sql.not_uniques", MAL_MALLOC_FAIL);
-               }
-               BATseqbase(bn, 0);
-               BATseqbase(BATmirror(bn), 0);
-       } else if (b->tsorted) {        /* ugh handle both wrd and oid types */
-               oid c = *(oid *) Tloc(b, BUNfirst(b)), *rf, *rh, *rt;
-               oid *h = (oid *) Hloc(b, 0), *vp, *ve;
-               int first = 1;
-
-               bn = BATnew(TYPE_oid, TYPE_oid, BATcount(b), TRANSIENT);
-               if (bn == NULL) {
-                       BBPunfix(b->batCacheid);
-                       throw(SQL, "sql.not_uniques", MAL_MALLOC_FAIL);
-               }
-               vp = (oid *) Tloc(b, BUNfirst(b));
-               ve = vp + BATcount(b);
-               rf = rh = (oid *) Hloc(bn, BUNfirst(bn));
-               rt = (oid *) Tloc(bn, BUNfirst(bn));
-               *rh++ = *h++;
-               *rt++ = *vp;
-               for (vp++; vp < ve; vp++, h++) {
-                       oid v = *vp;
-                       if (v == c) {
-                               first = 0;
-                               *rh++ = *h;
-                               *rt++ = v;
-                       } else if (!first) {
-                               first = 1;
-                               *rh++ = *h;
-                               *rt++ = v;
-                       } else {
-                               *rh = *h;
-                               *rt = v;
-                       }
-                       c = v;
-               }
-               if (first)
-                       rh--;
-               BATsetcount(bn, (BUN) (rh - rf));
-       } else {
-               oid *rf, *rh, *rt;
-               oid *h = (oid *) Hloc(b, 0), *vp, *ve;
-
-               if (BAThash(b, 0) != GDK_SUCCEED)
-                       throw(SQL, "not_uniques", "hash creation failed");
-               bn = BATnew(TYPE_oid, TYPE_oid, BATcount(b), TRANSIENT);
-               if (bn == NULL) {
-                       BBPunfix(b->batCacheid);
-                       throw(SQL, "sql.unique_oids", MAL_MALLOC_FAIL);
-               }
-               vp = (oid *) Tloc(b, BUNfirst(b));
-               ve = vp + BATcount(b);
-               rf = rh = (oid *) Hloc(bn, BUNfirst(bn));
-               rt = (oid *) Tloc(bn, BUNfirst(bn));
-               for (; vp < ve; vp++, h++) {
-                       /* try to find value twice */
-                       if (HASHfndTwice(b, vp)) {
-                               *rh++ = *h;
-                               *rt++ = *vp;
-                       }
-               }
-               BATsetcount(bn, (BUN) (rh - rf));
-       }
-       BBPunfix(b->batCacheid);
-       BBPkeepref(*ret = bn->batCacheid);
-       return MAL_SUCCEED;
-}
-
 /* row case */
 str
 SQLidentity(oid *ret, const void *i)
diff --git a/sql/backends/monet5/sql.h b/sql/backends/monet5/sql.h
--- a/sql/backends/monet5/sql.h
+++ b/sql/backends/monet5/sql.h
@@ -125,7 +125,6 @@ sql5_export str mvc_getVersion(lng *r, c
 sql5_export str mvc_restart_seq(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
 sql5_export str zero_or_one(ptr ret, const bat *bid);
 sql5_export str not_unique(bit *ret, const bat *bid);
-sql5_export str not_unique_oids(bat *ret, const bat *bid);
 sql5_export str SQLshrink(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
 sql5_export str SQLreuse(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
 sql5_export str SQLvacuum(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
diff --git a/sql/backends/monet5/sql.mal b/sql/backends/monet5/sql.mal
--- a/sql/backends/monet5/sql.mal
+++ b/sql/backends/monet5/sql.mal
@@ -395,13 +395,6 @@ command not_unique( b:bat[:oid,:oid]) :b
 address not_unique 
 comment "check if the tail sorted bat b doesn't have unique tail values" ;
 
-command not_uniques( b:bat[:oid,:oid]) :bat[:oid,:oid] 
-address not_unique_oids 
-comment "return not unique oids" ;
-
-command not_uniques( b:bat[:oid,:wrd]) :bat[:oid,:oid] 
-address not_unique_oids ;
-
 command optimizers()(:bat[:oid,:str],:bat[:oid,:str],:bat[:oid,:str])
 address getPipeCatalog;
 
diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c
--- a/sql/server/rel_optimizer.c
+++ b/sql/server/rel_optimizer.c
@@ -617,6 +617,19 @@ int is_table_in_list_table_pkeys(list *l
        return FALSE;
 }
 
+static int
+exps_count(list *exps) 
+{
+       node *n;
+       int cnt = 0;
+
+       if (!exps)
+               return 0;
+       for (n = exps->h; n; n=n->next)
+               exp_count(&cnt, n->data);
+       return cnt;
+}
+
 int is_column_in_list_columns(list *l, sql_column* c)
 {
        node *n = NULL;
@@ -2177,19 +2190,6 @@ has_actual_data_table(sql_rel *rel)
        return FALSE;
 }
 
-static int
-exps_count(list *exps) 
-{
-       node *n;
-       int cnt = 0;
-
-       if (!exps)
-               return 0;
-       for (n = exps->h; n; n=n->next)
-               exp_count(&cnt, n->data);
-       return cnt;
-}
-
 static list *
 order_join_expressions(mvc *sql, list *dje, list *rels)
 {
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to