Update of /cvsroot/monetdb/sql/src/storage/bpm
In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv22856/src/storage/bpm

Modified Files:
      Tag: Aug2009
        bpm_distribution.mx bpm_storage.mx bpm_table.mx 
Log Message:

In an attampt to ensure portability to, and hence correctness on,
64-bit big-endian machines with 32-bit OIDs,
we make the SQL storage interface implementation a bit "less generic",
but a bit "more MonetDB-specific",
by using type oid instead of type ssize_t
for row indices / row ids ("rid")
that are stored as type oid in BATs.

(For convenience, these changes are wrapped in CVS tags
 "rid-ssize_t" & "rid-oid".)


U bpm_storage.mx
Index: bpm_storage.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/storage/bpm/bpm_storage.mx,v
retrieving revision 1.25.2.1
retrieving revision 1.25.2.2
diff -u -d -r1.25.2.1 -r1.25.2.2
--- bpm_storage.mx      4 Aug 2009 22:15:24 -0000       1.25.2.1
+++ bpm_storage.mx      12 Aug 2009 11:25:36 -0000      1.25.2.2
@@ -269,11 +269,11 @@
 }
 
 static void
-update_val( sql_bpm *p, ssize_t rid, void *upd) 
+update_val( sql_bpm *p, oid rid, void *upd) 
 {
        sht nr = (sht) (rid?rid/BPM_SPLIT:0);
 
-       assert(rid != -1);
+       assert(rid != oid_nil);
 
        if (nr >= p->nr)
                nr = p->nr-1;
@@ -282,7 +282,7 @@
 
 /* TODO have a update_bpm */
 static void
-update_col(sql_trans *tr, sql_column *c, void *i, int tpe, ssize_t rid)
+update_col(sql_trans *tr, sql_column *c, void *i, int tpe, oid rid)
 {
        sql_bpm *p = c->data;
 
@@ -411,11 +411,11 @@
 }
 
 static void
-delete_val( sql_dbpm *p, ssize_t rid ) 
+delete_val( sql_dbpm *p, oid rid ) 
 {
        sht nr = (sht) (rid?rid/BPM_SPLIT:0);
 
-       assert(rid != -1);
+       assert(rid != oid_nil);
        if (nr >= p->nr)
                nr = p->nr-1;
        delta_delete_val( &p->parts[nr], rid);
@@ -431,7 +431,7 @@
        if (tpe == TYPE_bat)
                delete_bat(p, ib);
        else
-               delete_val(p, *(ssize_t*)ib);
+               delete_val(p, *(oid*)ib);
 }
 
 static size_t

U bpm_distribution.mx
Index: bpm_distribution.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/storage/bpm/bpm_distribution.mx,v
retrieving revision 1.6
retrieving revision 1.6.6.1
diff -u -d -r1.6 -r1.6.6.1
--- bpm_distribution.mx 7 Jan 2009 14:19:30 -0000       1.6
+++ bpm_distribution.mx 12 Aug 2009 11:25:36 -0000      1.6.6.1
@@ -255,7 +255,7 @@
 bpm_delete_host(bpmHost bpmH )
 {
        BAT *r = NULL;
-       ssize_t rid = -1;
+       oid rid = oid_nil;
        BUN p;
 
        if (!dist_id)

U bpm_table.mx
Index: bpm_table.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/storage/bpm/bpm_table.mx,v
retrieving revision 1.9
retrieving revision 1.9.6.1
diff -u -d -r1.9 -r1.9.6.1
--- bpm_table.mx        7 Jan 2009 14:19:30 -0000       1.9
+++ bpm_table.mx        12 Aug 2009 11:25:36 -0000      1.9.6.1
@@ -58,13 +58,13 @@
        return delta_full_bat( &p->parts[0], isTemp(c), d, s);
 }
 
-static ssize_t
+static oid
 column_find_row(sql_trans *tr, sql_column *c, void *value, ...)
 {
        va_list va;
        BUN q;
        BAT *b = NULL, *s = NULL, *r = NULL, *d = NULL;
-       ssize_t rid = -1;
+       oid rid = oid_nil;
        sql_column *nc;
        void *nv;
        sql_bpm *p = c->t->data;
@@ -100,7 +100,7 @@
 }
 
 static void *
-column_find_value(sql_trans *tr, sql_column *c, ssize_t rid)
+column_find_value(sql_trans *tr, sql_column *c, oid rid)
 {
        BUN q;
        BAT *b, *d = NULL;
@@ -130,10 +130,9 @@
 }
 
 static int
-column_update_value(sql_trans *tr, sql_column *c, ssize_t rid, void *value)
+column_update_value(sql_trans *tr, sql_column *c, oid rid, void *value)
 {
-       assert(rid != (ssize_t)oid_nil);
-       assert(rid != -1);
+       assert(rid != oid_nil);
 
        store_funcs.update_col(tr, c, value, c->type.type->localtype, rid);
        return 0;
@@ -163,10 +162,9 @@
 }
 
 static int
-table_delete(sql_trans *tr, sql_table *t, ssize_t rid)
+table_delete(sql_trans *tr, sql_table *t, oid rid)
 {
-       assert(rid != (ssize_t)oid_nil);
-       assert(rid != -1);
+       assert(rid != oid_nil);
 
        store_funcs.delete_tab(tr, t, &rid, TYPE_oid);
        return 0;
@@ -292,15 +290,15 @@
 }
 
 
-/* return table rids from result of rids_select, return (-1) when done */
-static ssize_t 
+/* return table rids from result of rids_select, return (oid_nil) when done */
+static oid 
 rids_next(rids *r)
 {
        if (r->cur < BATcount(r->data)) {
                BATiter bi = bat_iterator(r->data);
                return *(oid*)BUNhead(bi, r->cur++);
        }
-       return -1;
+       return oid_nil;
 }
 
 static rids *


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Monetdb-sql-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-sql-checkins

Reply via email to