Update of /cvsroot/monetdb/sql/src/storage/bat
In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv22856/src/storage/bat
Modified Files:
Tag: Aug2009
bat_storage.mx bat_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".)
Index: bat_table.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/storage/bat/bat_table.mx,v
retrieving revision 1.39
retrieving revision 1.39.2.1
diff -u -d -r1.39 -r1.39.2.1
--- bat_table.mx 28 Jun 2009 17:43:30 -0000 1.39
+++ bat_table.mx 12 Aug 2009 11:25:36 -0000 1.39.2.1
@@ -112,13 +112,13 @@
return delta_full_bat(c->data, 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_dbat *bat = c->t->data;
@@ -154,7 +154,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;
@@ -184,10 +184,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;
@@ -217,10 +216,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;
@@ -346,15 +344,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 *
U bat_storage.mx
Index: bat_storage.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/storage/bat/bat_storage.mx,v
retrieving revision 1.42.2.1
retrieving revision 1.42.2.2
diff -u -d -r1.42.2.1 -r1.42.2.2
--- bat_storage.mx 4 Aug 2009 22:15:24 -0000 1.42.2.1
+++ bat_storage.mx 12 Aug 2009 11:25:36 -0000 1.42.2.2
@@ -48,11 +48,11 @@
extern BAT * delta_bind_del(sql_dbat *bat, int access);
extern void delta_update_bat( sql_delta *bat, BAT *upd, int is_new);
-extern void delta_update_val( sql_delta *bat, ssize_t rid, void *upd);
+extern void delta_update_val( sql_delta *bat, oid rid, void *upd);
extern void delta_append_bat( sql_delta *bat, BAT *i );
extern void delta_append_val( sql_delta *bat, void *i );
extern void delta_delete_bat( sql_dbat *bat, BAT *i );
-extern void delta_delete_val( sql_dbat *bat, ssize_t rid );
+extern void delta_delete_val( sql_dbat *bat, oid rid );
extern int load_delta(sql_delta *bat, int bid, int type);
extern int load_dbat(sql_dbat *bat, int bid);
@@ -230,12 +230,11 @@
}
void
-delta_update_val( sql_delta *bat, ssize_t rid, void *upd)
+delta_update_val( sql_delta *bat, oid rid, void *upd)
{
BAT *b;
- assert(rid != (ssize_t)oid_nil);
- assert(rid != -1);
+ assert(rid != oid_nil);
if (bat->ubid) {
b = temp_descriptor(bat->ubid);
@@ -252,13 +251,13 @@
BUNreplace(b, (ptr) &rid, upd, TRUE);
} else {
b = temp_descriptor(bat->ibid);
- void_inplace(b, (oid) rid, upd, TRUE);
+ void_inplace(b, rid, upd, TRUE);
}
bat_destroy(b);
}
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_delta *bat = c->data;
@@ -370,7 +369,7 @@
}
void
-delta_delete_val( sql_dbat *bat, ssize_t rid )
+delta_delete_val( sql_dbat *bat, oid rid )
{
BAT *b = temp_descriptor(bat->dbid);
@@ -395,7 +394,7 @@
if (tpe == TYPE_bat)
delta_delete_bat(bat, ib);
else
- delta_delete_val(bat, *(ssize_t*)ib);
+ delta_delete_val(bat, *(oid*)ib);
}
static size_t
------------------------------------------------------------------------------
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