Changeset: 139a1d620151 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/139a1d620151 Modified Files: sql/backends/monet5/sql.c sql/test/BugTracker-2016/Tests/storagemodel.test Branch: Jul2021 Log Message:
cleanup sql.storage, ie don't compute the average string width. We use meta
data only in the sql.storage function.
diffs (144 lines):
diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -3993,50 +3993,6 @@ sql_storage(Client cntxt, MalBlkPtr mb,
goto bailout;
/*printf(" width %d",
bs->twidth); */
w = bs->twidth;
- if (bs->ttype ==
TYPE_str) {
- double sum = 0;
- BATiter bi;
- lng cnt1, cnt2;
- BAT *cands;
- oid hseq;
-
- BAT *bn =
store->storage_api.bind_col(tr, c, RDONLY); /* is slice */
- if (bn == NULL)
- goto
bailout;
- bi =
bat_iterator(bn);
- cnt2 = cnt1 =
(lng) BATcount(bn);
- cands =
store->storage_api.bind_cands(tr, t, 1, 0);
- hseq =
bn->hseqbase;
-
- if (cands) {
- BUN lo,
hi;
- struct
canditer ci = {0};
- /* just
take a sample */
- if
(cnt1 > 512)
-
cnt1 = cnt2 = 512;
-
canditer_init(&ci, NULL, cands);
- for(lo
= 0, hi = ci.ncand; lo < hi; lo++) {
-
oid o = canditer_next(&ci);
-
str s = BUNtail(bi, o - hseq);
-
if (!strNil(s))
-
sum += strlen(s);
-
if (--cnt1 <= 0)
-
break;
- }
-
BBPunfix(cands->batCacheid);
- }
-
bat_iterator_end(&bi);
-
BBPunfix(bn->batCacheid);
- bn = NULL;
- if (cnt2)
- w =
(int) (sum / cnt2);
- } else if
(ATOMvarsized(bs->ttype)) {
- sz =
BATcount(bs);
- if (sz > 0 &&
bs->tvheap)
- w =
(int) ((bs->tvheap->free + sz / 2) / sz);
- else
- w = 0;
- }
if (BUNappend(atom, &w,
false) != GDK_SUCCEED)
goto bailout;
@@ -4132,32 +4088,6 @@ sql_storage(Client cntxt, MalBlkPtr mb,
goto
bailout;
/*printf("
width %d", bs->twidth); */
w = bs->twidth;
- if (bs->ttype
== TYPE_str) {
- BUN p,
q;
- double
sum = 0;
- BATiter
bi;
- lng
cnt1, cnt2;
- BAT *bn
= store->storage_api.bind_idx(tr, c, RDONLY);
- if (bn
== NULL)
-
goto bailout;
- bi =
bat_iterator(bn);
- cnt2 =
cnt1 = BATcount(bn);
-
- /* just
take a sample */
- if
(cnt1 > 512)
-
cnt1 = cnt2 = 512;
-
BATloop(bn, p, q) {
-
str s = BUNtvar(bi, p);
-
if (!strNil(s))
-
sum += strlen(s);
-
if (--cnt1 <= 0)
-
break;
- }
-
bat_iterator_end(&bi);
-
BBPunfix(bn->batCacheid);
- if
(cnt2)
-
w = (int) (sum / cnt2);
- }
if
(BUNappend(atom, &w, false) != GDK_SUCCEED)
goto
bailout;
/*printf(" size
"BUNFMT, tailsize(bs,BATcount(bs)) + (bs->tvheap? bs->tvheap->size:0)); */
diff --git a/sql/test/BugTracker-2016/Tests/storagemodel.test
b/sql/test/BugTracker-2016/Tests/storagemodel.test
--- a/sql/test/BugTracker-2016/Tests/storagemodel.test
+++ b/sql/test/BugTracker-2016/Tests/storagemodel.test
@@ -2,7 +2,7 @@ statement ok
create table bug3923(i integer)
query TTTTTIII rowsort
-select "schema", "table", "column", "type", "mode", case when typewidth < 14
then typewidth else 99 end as typewidth, phash, imprints > 0 as imprints from
storage('sys','_tables')
+select "schema", "table", "column", "type", "mode", typewidth, phash, imprints
> 0 as imprints from storage('sys','_tables')
----
sys
_tables
@@ -33,7 +33,7 @@ sys
name
varchar
writable
-99
+2
0
0
sys
@@ -41,7 +41,7 @@ sys
query
varchar
writable
-99
+2
0
0
sys
@@ -108,7 +108,7 @@ statement ok
create table bug3923(i integer)
query TTTTTIII rowsort
-select "schema", "table", "column", "type", "mode", case when typewidth < 14
then typewidth else 99 end as typewidth, phash, imprints > 0 as imprints from
sys.storage('sys','_tables')
+select "schema", "table", "column", "type", "mode", typewidth, phash, imprints
> 0 as imprints from sys.storage('sys','_tables')
----
sys
_tables
@@ -139,7 +139,7 @@ sys
name
varchar
writable
-99
+2
0
0
sys
@@ -147,7 +147,7 @@ sys
query
varchar
writable
-99
+2
0
0
sys
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list
