Update of /cvsroot/monetdb/sql/src/storage/bpm
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv22851/src/storage/bpm
Modified Files:
bpm_storage.mx
Log Message:
improved handeling of updates in partititions, ie now we keep an update
bat per partition (not just one per column).
U bpm_storage.mx
Index: bpm_storage.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/storage/bpm/bpm_storage.mx,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- bpm_storage.mx 19 Jan 2008 23:41:28 -0000 1.9
+++ bpm_storage.mx 24 Apr 2008 20:44:57 -0000 1.10
@@ -930,15 +930,13 @@
}
b = temp_descriptor(p->parts[i].bid);
p->parts[i].ubid = 0;
- if (p->ins == 0) {
- if (op->parts[i].ubid) {
- p->parts[i].ubid =
temp_copy(op->parts[i].ubid, 0);
- } else {
- BAT *U = bat_new(TYPE_oid, b->ttype, 0);
- p->parts[i].ubid = temp_create(U);
- op->parts[i].ubid =
temp_copy(p->parts[i].ubid, 0);
- bat_destroy(U);
- }
+ if (op->parts[i].ubid) {
+ p->parts[i].ubid = temp_copy(op->parts[i].ubid,
0);
+ } else {
+ BAT *U = bat_new(TYPE_oid, b->ttype, 0);
+ p->parts[i].ubid = temp_create(U);
+ op->parts[i].ubid = temp_copy(p->parts[i].ubid,
0);
+ bat_destroy(U);
}
BATseqbase(b, p->parts[i].hlow);
bat_destroy(b);
@@ -1299,13 +1297,17 @@
o = b->hseqbase + BATcount(b);
logger_add_bat(bpm_logger, b, p->name);
log_bat_persists(bpm_logger, b, p->name);
- bat_destroy(b);
- if (p->ubid) {
- b = temp_descriptor(p->ubid);
- logger_add_bat(bpm_logger, b, p->uname);
- log_bat_persists(bpm_logger, b,
p->uname);
- bat_destroy(b);
+ if (!p->ubid) {
+ BAT *U = bat_new(TYPE_oid, b->ttype, 0);
+ p->ubid = temp_create(U);
+ bat_destroy(U);
}
+ bat_destroy(b);
+
+ b = temp_descriptor(p->ubid);
+ logger_add_bat(bpm_logger, b, p->uname);
+ log_bat_persists(bpm_logger, b, p->uname);
+ bat_destroy(b);
}
}
/* merge 2 partions
@@ -1344,13 +1346,17 @@
b = temp_descriptor(p->bid);
logger_add_bat(bpm_logger, b, p->name);
log_bat_persists(bpm_logger, b, p->name);
- bat_destroy(b);
- if (p->ubid) {
- b = temp_descriptor(p->ubid);
- logger_add_bat(bpm_logger, b, p->uname);
- log_bat_persists(bpm_logger, b,
p->uname);
- bat_destroy(b);
+ if (!p->ubid) {
+ BAT *U = bat_new(TYPE_oid, b->ttype, 0);
+ p->ubid = temp_create(U);
+ bat_destroy(U);
}
+ bat_destroy(b);
+
+ b = temp_descriptor(p->ubid);
+ logger_add_bat(bpm_logger, b, p->uname);
+ log_bat_persists(bpm_logger, b, p->uname);
+ bat_destroy(b);
}
}
/* create new insert bats */
-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Monetdb-sql-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-sql-checkins