Update of /cvsroot/monetdb/sql/src/storage/bat
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv32459/src/storage/bat

Modified Files:
      Tag: GDK-2
        bat_bm.mx bat_store.mx bat_table.mx 
Log Message:
prepared sql for the split bats
m4/sql runs as well as before the split
m5/sql needs a bit more work (about 35 failing tests)


Index: bat_store.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/storage/bat/bat_store.mx,v
retrieving revision 1.144
retrieving revision 1.144.2.1
diff -u -d -r1.144 -r1.144.2.1
--- bat_store.mx        9 Jul 2007 09:58:13 -0000       1.144
+++ bat_store.mx        12 Aug 2007 17:42:30 -0000      1.144.2.1
@@ -232,7 +232,7 @@
                assert(c->bat.ibid);
                b = temp_descriptor(c->bat.ibid);
                assert(b);
-               if (BATcount(b) == 0 && !VIEWparent(i) && i->htype == 
TYPE_void){
+               if (BATcount(b) == 0 && !isVIEW(i) && i->htype == TYPE_void){
                        bat_destroy(b);
                        temp_destroy(c->bat.ibid);
                        c->bat.ibid = temp_create(i);
@@ -275,7 +275,7 @@
 
        b = temp_descriptor(c->bat.ubid);
        assert(b);
-       if (BATcount(b) == 0 && !VIEWparent(i)){ 
+       if (BATcount(b) == 0 && !isVIEW(i)){ 
                bat_destroy(b);
                temp_destroy(c->bat.ubid);
                c->bat.ubid = temp_create(i);
@@ -339,7 +339,7 @@
                assert(i->bat.ibid);
                b = temp_descriptor(i->bat.ibid);
                assert(b);
-               if (BATcount(b) == 0 && !VIEWparent(ib) && ib->htype == 
TYPE_void){ 
+               if (BATcount(b) == 0 && !isVIEW(ib) && ib->htype == TYPE_void){ 
                        bat_destroy(b);
                        temp_destroy(i->bat.ibid);
                        i->bat.ibid = temp_create(ib);
@@ -380,7 +380,7 @@
 
        b = temp_descriptor(i->bat.ubid);
        assert(b);
-       if (BATcount(b) == 0 && !VIEWparent(ib)){ 
+       if (BATcount(b) == 0 && !isVIEW(ib)){ 
                bat_destroy(b);
                temp_destroy(i->bat.ubid);
                i->bat.ubid = temp_create(ib);
@@ -400,9 +400,10 @@
 {
        size_t nr = 0;
        BUN r;
+       BATiter ii = bat_iterator(i);
 
-       for (r = i->batInserted; r < BUNlast(i); r = BUNnext(i, r)) {
-               BUNappend(b, BUNtail(i,r), TRUE);
+       for (r = i->batInserted; r < BUNlast(i); r++) {
+               BUNappend(b, BUNtail(ii,r), TRUE);
                nr++;
        }
        return nr;
@@ -413,9 +414,10 @@
 {
        size_t nr = 0;
        BUN r;
+       BATiter ii = bat_iterator(i);
 
-       for (r = i->batInserted; r < BUNlast(i); r = BUNnext(i, r)) {
-               BUNins(b, BUNhead(i,r), BUNtail(i,r), TRUE);
+       for (r = i->batInserted; r < BUNlast(i); r++) {
+               BUNins(b, BUNhead(ii,r), BUNtail(ii,r), TRUE);
                nr++;
        }
        return nr;
@@ -636,10 +638,11 @@
 static void
 load_keycolumn(sql_trans *tr, BAT *columns, BUN j, sql_key *k)
 {
+       BATiter columnsi = bat_iterator(columns);
        sql_kc *kc = NEW(sql_kc);
        BAT *kc_col = get_bat("sys_keycolumns_column");
        BAT *kc_trunc = get_bat("sys_keycolumns_trunc");
-       ptr lid = BUNhead(columns, j);
+       ptr lid = BUNhead(columnsi, j);
        char *name = bun_find(kc_col, lid);
        int trunc = *(int *) bun_find(kc_trunc, lid);
        sql_column *c = find_sql_column(k->t, name);
@@ -658,6 +661,7 @@
 static sql_key *
 load_key(sql_trans *tr, BAT *keys, BUN j, sql_table *t)
 {
+       BATiter keysi = bat_iterator(keys);
        size_t ccnt;
        BAT *cols, *rcols;
        BAT *key_id = get_bat("sys_keys_id");
@@ -668,7 +672,7 @@
        BAT *kc_id = get_bat("sys_keycolumns_id");
        BAT *kc_nr = get_bat("sys_keycolumns_nr");
        BAT *D_keycolumns = get_bat("D_sys_keycolumns");
-       ptr lid = BUNhead(keys, j);
+       ptr lid = BUNhead(keysi, j);
        key_type ktype = (key_type) *(int *) bun_find(key_tpe, lid);
        char *name = (char *) bun_find(key_name, lid);
        sql_key *nk = (ktype != fkey) ? (sql_key *) NEW(sql_ukey)
@@ -741,7 +745,7 @@
                BAT *keys = BATselect(key_rkey, (ptr) &nk->base.id, (ptr) 
&nk->base.id);
 
                BATloop(keys, p, q) {
-                       ptr fkey_lid = (sqlid *) BUNhead(keys, p);
+                       ptr fkey_lid = (sqlid *) BUNhead(keysi, p);
                        sqlid fkey = *(sqlid *) bun_find(key_id, fkey_lid);
                        node *n = list_find(t->s->keys, &fkey, (fcmp) &key_cmp);
 
@@ -771,10 +775,11 @@
 static void
 load_idxcolumn(sql_trans *tr, BAT *columns, BUN j, sql_idx * i)
 {
+       BATiter columnsi = bat_iterator(columns);
        sql_kc *kc = NEW(sql_kc);
        BAT *kc_col = get_bat("sys_keycolumns_column");
        BAT *kc_trunc = get_bat("sys_keycolumns_trunc");
-       ptr lid = BUNhead(columns, j);
+       ptr lid = BUNhead(columnsi, j);
        char *name = bun_find(kc_col, lid);
        int trunc = *(int *) bun_find(kc_trunc, lid);
        sql_column *c = find_sql_column(i->t, name);
@@ -795,6 +800,7 @@
 static sql_idx *
 load_idx(sql_trans *tr, BAT *idxs, BUN j, sql_table *t)
 {
+       BATiter idxsi = bat_iterator(idxs);
        char bname[BUFSIZ];
        size_t ccnt;
        BAT *b;
@@ -805,7 +811,7 @@
        BAT *kc_id = get_bat("sys_keycolumns_id");
        BAT *kc_nr = get_bat("sys_keycolumns_nr");
        BAT *D_keycolumns = get_bat("D_sys_keycolumns");
-       ptr lid = BUNhead(idxs, j);
+       ptr lid = BUNhead(idxsi, j);
        idx_type itype = (idx_type) * (int *) bun_find(idx_tpe, lid);
        char *name = (char *) bun_find(idx_name, lid);
        sql_idx *ni = NEW(sql_idx);
@@ -895,10 +901,11 @@
 static void
 load_triggercolumn(sql_trans *tr, BAT *columns, BUN j, sql_trigger * i)
 {
+       BATiter columnsi = bat_iterator(columns);
        sql_kc *kc = NEW(sql_kc);
        BAT *kc_col = get_bat("sys_keycolumns_column");
        BAT *kc_trunc = get_bat("sys_keycolumns_trunc");
-       ptr lid = BUNhead(columns, j);
+       ptr lid = BUNhead(columnsi, j);
        char *name = bun_find(kc_col, lid);
        int trunc = *(int *) bun_find(kc_trunc, lid);
        sql_column *c = find_sql_column(i->t, name);
@@ -917,6 +924,7 @@
 static sql_trigger *
 load_trigger(sql_trans *tr, BAT *triggers, BUN j, sql_table *t)
 {
+       BATiter triggersi = bat_iterator(triggers);
        size_t ccnt;
        BAT *cols, *rcols;
        BAT *trigger_id = get_bat("sys_triggers_id");
@@ -931,7 +939,7 @@
        BAT *kc_id = get_bat("sys_keycolumns_id");
        BAT *kc_nr = get_bat("sys_keycolumns_nr");
        BAT *D_keycolumns = get_bat("D_sys_keycolumns");
-       ptr lid = BUNhead(triggers, j);
+       ptr lid = BUNhead(triggersi, j);
        char *name = (char *) bun_find(trigger_name, lid);
        char *old_name = (char *) bun_find(trigger_old_name, lid);
        char *new_name = (char *) bun_find(trigger_new_name, lid);
@@ -989,10 +997,11 @@
 static sql_column *
 load_column(sql_trans *tr, sql_table *t, BAT *columns, BUN j)
 {
+       BATiter columnsi = bat_iterator(columns);
        char *def;
        char name[BUFSIZ], *tpe;
        sql_column *c = NEW(sql_column);
-       ptr lid = BUNhead(columns, j);
+       ptr lid = BUNhead(columnsi, j);
        int sz, d;
        BAT *b;
        BAT *column_id = get_bat("sys__columns_id");
@@ -1084,9 +1093,10 @@
 static sql_table *
 load_table(sql_trans *tr, sql_schema *s, BAT *tables, BUN j)
 {
+       BATiter tablesi = bat_iterator(tables);
        char name[BUFSIZ], *query;
        sql_table *t = NEW(sql_table);
-       ptr lid = BUNhead(tables, j);
+       ptr lid = BUNhead(tablesi, j);
        BAT *cols, *rcols, *keys, *rkeys, *idxs, *ridxs, *triggers, *rtriggers;
        BUN p, q;
        size_t ccnt;
@@ -1228,8 +1238,9 @@
 static sql_type *
 load_type(sql_trans *tr, sql_schema * s, BAT *types, BUN j)
 {
+       BATiter typesi = bat_iterator(types);
        sql_type *t = NEW(sql_type);
-       ptr lid = BUNhead(types, j);
+       ptr lid = BUNhead(typesi, j);
        BAT *type_id = get_bat("sys_types_id");
        BAT *type_systemname = get_bat("sys_types_systemname");
        BAT *type_sqlname = get_bat("sys_types_sqlname");
@@ -1277,9 +1288,10 @@
 static sql_arg *
 load_arg(sql_trans *tr, sql_func * f, BAT *args, BUN j)
 {
+       BATiter argsi = bat_iterator(args);
        char *tpe;
        sql_arg *a = NEW(sql_arg);
-       ptr lid = BUNhead(args, j);
+       ptr lid = BUNhead(argsi, j);
        int digits, scale;
        BAT *arg_name = get_bat("sys_args_name");
        BAT *arg_type = get_bat("sys_args_type");
@@ -1308,8 +1320,9 @@
 static sql_func *
 load_func(sql_trans *tr, sql_schema * s, BAT *funcs, BUN j)
 {
+       BATiter funcsi = bat_iterator(funcs);
        sql_func *t = NEW(sql_func);
-       ptr lid = BUNhead(funcs, j);
+       ptr lid = BUNhead(funcsi, j);
        BAT *args, *rargs;
        BUN p, q;
        BAT *func_id = get_bat("sys_functions_id");
@@ -1396,8 +1409,9 @@
 static sql_sequence *
 load_seq(sql_trans *tr, sql_schema * s, BAT *seqs, BUN j)
 {
+       BATiter seqsi = bat_iterator(seqs);
        sql_sequence *seq = NEW(sql_sequence);
-       ptr lid = BUNhead(seqs, j);
+       ptr lid = BUNhead(seqsi, j);
        BAT *seq_id = get_bat("sys_sequences_id");
        BAT *seq_name = get_bat("sys_sequences_name");
        BAT *seq_start = get_bat("sys_sequences_start");
@@ -1431,8 +1445,9 @@
 static sql_schema *
 load_schema(sql_trans *tr, BAT *schemas, BUN j)
 {
+       BATiter schemasi = bat_iterator(schemas);
        sql_schema *s = NEW(sql_schema);
-       ptr lid = BUNhead(schemas, j);
+       ptr lid = BUNhead(schemasi, j);
        BAT *tables, *ptables, *types, *funcs, *seqs;
        BUN p, q;
        BAT *schema_names = get_bat("sys_schemas_name");
@@ -3805,12 +3820,13 @@
                                        bat_destroy(ci);
                                }
                                if (ok == LOG_OK && ttr == gtrans && 
-                                       (nr_active != 1 || BATcount(cur)))
+                                  (nr_active != 1 || 
+                                  (BATcount(cur) && ins->ttype)))
                                        ok = log_bat(sql_logger, ins, 
oc->bat.name);
                        }
                        if (nr_active == 1) { /* flush all */
                                BAT *pi = temp_descriptor(oc->bat.ibid);
-                               if (!BATcount(cur)) {
+                               if (!BATcount(cur) && ins->ttype) {
                                        /* swap cur and ins */
                                        BAT *swpbat = ins;
                                        bat swp = cc->bat.ibid;
@@ -3920,12 +3936,13 @@
                                                bat_destroy(ci);
                                        }
                                        if (ok == LOG_OK && ttr == gtrans && 
-                                          (nr_active != 1 || BATcount(cur)))
+                                          (nr_active != 1 || 
+                                          (BATcount(cur) && ins->ttype)))
                                                ok = log_bat(sql_logger, ins, 
oi->bat.name);
                                }
                                if (nr_active == 1) { /* flush all */
                                        BAT *pi = temp_descriptor(oi->bat.ibid);
-                                       if (!BATcount(cur)) {
+                                       if (!BATcount(cur) && ins->ttype) {
                                                /* swap cur and ins */
                                                BAT *swpbat = ins;
                                                bat swp = ci->bat.ibid;

Index: bat_table.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/storage/bat/bat_table.mx,v
retrieving revision 1.27
retrieving revision 1.27.6.1
diff -u -d -r1.27 -r1.27.6.1
--- bat_table.mx        3 Jan 2007 12:39:50 -0000       1.27
+++ bat_table.mx        12 Aug 2007 17:42:31 -0000      1.27.6.1
@@ -84,7 +84,7 @@
        if (d) {
                r = BATkdiff(b,BATmirror(d)); bat_destroy(b); b = r;
        }
-       assert(r->thash == NULL);
+       assert(r->T->hash == NULL);
        return r;
 }
 
@@ -127,11 +127,12 @@
                bat_destroy(d);
        ccnt = BATcount(valB);
        if (ccnt) {
+               BATiter valBi = bat_iterator(valB);
                BATloop(valB,p,q){
-                       lid = BUNhead(valB,p);
+                       lid = BUNhead(valBi,p);
                        aux = bun_find(valB,lid);
                        sz = ATOMlen(valB->ttype,aux);
-                      value = GDKmalloc(sz);
+                       value = GDKmalloc(sz);
                        memcpy(value,aux,sz);
                        res = list_append(res,value);
                }
@@ -183,8 +184,9 @@
        ccnt = BATcount(valB);
        
        if (ccnt) {
+               BATiter valBi = bat_iterator(valB);
                BATloop(valB,p,q){
-                       lid = BUNhead(valB,p);
+                       lid = BUNhead(valBi,p);
                        aux = bun_find(valB,lid);
                        sz = ATOMlen(valB->ttype,aux);
                        value = GDKmalloc(sz);
@@ -228,8 +230,10 @@
 
        r = BATmirror(b);
        p = BUNfnd(r, value);
-       if (p)
-               rid = *(oid *) BUNtail(r, p);
+       if (p != BUN_NONE) {
+               BATiter ri = bat_iterator(r);
+               rid = *(oid *) BUNtail(ri, p);
+       }
        bat_destroy(b);
        return rid;
 }
@@ -248,11 +252,12 @@
                bat_destroy(d);
 
        p = BUNfnd(b, (ptr) &rid);
-       if (p) {
+       if (p != BUN_NONE) {
+               BATiter bi = bat_iterator(b);
                void *r;
                int sz;
 
-               res = BUNtail(b, p);
+               res = BUNtail(bi, p);
                 sz = ATOMlen(b->ttype, res);
                 r = GDKmalloc(sz);
                memcpy(r,res,sz);
@@ -272,7 +277,7 @@
 
        if (c->bat.ubid) {
                b = temp_descriptor(c->bat.ubid);
-               if (BUNfnd(b, &rid)) {
+               if (BUNfnd(b, &rid) != BUN_NONE) {
                        BUNreplace(b, (ptr) &rid, value, TRUE);
                } else {
                        bat_set_access(b, BAT_WRITE);

Index: bat_bm.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/storage/bat/bat_bm.mx,v
retrieving revision 1.30
retrieving revision 1.30.6.1
diff -u -d -r1.30 -r1.30.6.1
--- bat_bm.mx   3 Jan 2007 12:39:49 -0000       1.30
+++ bat_bm.mx   12 Aug 2007 17:42:30 -0000      1.30.6.1
@@ -114,8 +114,10 @@
 {
        BUN p = BUNfnd(b, v);
 
-       if (p)
-               return BUNtail(b, p);
+       if (p != BUN_NONE) {
+               BATiter bi = bat_iterator(b);
+               return BUNtail(bi, p);
+       }
        return NULL;
 }
 


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Monetdb-sql-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-sql-checkins

Reply via email to