Changeset: fa8c4a05a9f6 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=fa8c4a05a9f6
Modified Files:
sql/storage/bat/bat_storage.c
sql/storage/bat/bat_table.c
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/select1.stable.out
sql/test/leaks/Tests/select2.stable.out
Branch: Jan2014
Log Message:
cache bat access during catalog loading, solves bug 3420
diffs (110 lines):
diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c
--- a/sql/storage/bat/bat_storage.c
+++ b/sql/storage/bat/bat_storage.c
@@ -1591,6 +1591,14 @@ tr_update_delta( sql_trans *tr, sql_delt
temp_dup(cbat->bid);
}
+ if (obat->cached) {
+ bat_destroy(obat->cached);
+ obat->cached = NULL;
+ }
+ if (cbat->cached) {
+ bat_destroy(cbat->cached);
+ cbat->cached = NULL;
+ }
if (obat->bid)
cur = temp_descriptor(obat->bid);
ins = temp_descriptor(cbat->ibid);
diff --git a/sql/storage/bat/bat_table.c b/sql/storage/bat/bat_table.c
--- a/sql/storage/bat/bat_table.c
+++ b/sql/storage/bat/bat_table.c
@@ -73,8 +73,8 @@ delta_full_bat_( sql_column *c, sql_delt
r = BATkdiff(b,BATmirror(d)); bat_destroy(b); b = r;
}
(void)c;
- //if (!bat->cached && !c->base.wtime && !c->base.allocated && !s)
- //bat->cached = temp_descriptor(b->batCacheid);
+ if (!bat->cached && !s)
+ bat->cached = temp_descriptor(b->batCacheid);
return b;
}
diff --git a/sql/test/leaks/Tests/check3.stable.out
b/sql/test/leaks/Tests/check3.stable.out
--- a/sql/test/leaks/Tests/check3.stable.out
+++ b/sql/test/leaks/Tests/check3.stable.out
@@ -190,7 +190,7 @@ Ready.
% L1, L2 # name
% char, wrd # type
% 9, 3 # length
-[ "transient", 171 ]
+[ "transient", 189 ]
#select 'persistent', count(*) from bbp() as bbp where kind like 'pers%';
% .L1, .L2 # table_name
% L1, L2 # name
diff --git a/sql/test/leaks/Tests/check4.stable.out
b/sql/test/leaks/Tests/check4.stable.out
--- a/sql/test/leaks/Tests/check4.stable.out
+++ b/sql/test/leaks/Tests/check4.stable.out
@@ -190,7 +190,7 @@ Ready.
% L1, L2 # name
% char, wrd # type
% 9, 3 # length
-[ "transient", 171 ]
+[ "transient", 189 ]
#select 'persistent', count(*) from bbp() as bbp where kind like 'pers%';
% .L1, .L2 # table_name
% L1, L2 # name
diff --git a/sql/test/leaks/Tests/check5.stable.out
b/sql/test/leaks/Tests/check5.stable.out
--- a/sql/test/leaks/Tests/check5.stable.out
+++ b/sql/test/leaks/Tests/check5.stable.out
@@ -190,7 +190,7 @@ Ready.
% L1, L2 # name
% char, wrd # type
% 9, 3 # length
-[ "transient", 171 ]
+[ "transient", 189 ]
#select 'persistent', count(*) from bbp() as bbp where kind like 'pers%';
% .L1, .L2 # table_name
% L1, L2 # name
diff --git a/sql/test/leaks/Tests/select1.stable.out
b/sql/test/leaks/Tests/select1.stable.out
--- a/sql/test/leaks/Tests/select1.stable.out
+++ b/sql/test/leaks/Tests/select1.stable.out
@@ -36,7 +36,7 @@ Ready.
% L1 # name
% wrd # type
% 3 # length
-[ 328 ]
+[ 346 ]
#select 1;
% .L # table_name
% single_value # name
@@ -48,7 +48,7 @@ Ready.
% L1 # name
% wrd # type
% 3 # length
-[ 328 ]
+[ 346 ]
# 22:03:05 >
# 22:03:05 > Done.
diff --git a/sql/test/leaks/Tests/select2.stable.out
b/sql/test/leaks/Tests/select2.stable.out
--- a/sql/test/leaks/Tests/select2.stable.out
+++ b/sql/test/leaks/Tests/select2.stable.out
@@ -36,7 +36,7 @@ Ready.
% L1 # name
% wrd # type
% 3 # length
-[ 328 ]
+[ 346 ]
#select 1;
% .L # table_name
% single_value # name
@@ -48,7 +48,7 @@ Ready.
% L1 # name
% wrd # type
% 3 # length
-[ 328 ]
+[ 346 ]
# 22:03:05 >
# 22:03:05 > Done.
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list