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 checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list