Changeset: cb4885e041cc for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=cb4885e041cc
Modified Files:
gdk/gdk_imprints.c
sql/backends/monet5/sql.c
sql/backends/monet5/sql.mal
sql/backends/monet5/sql_upgrades.c
sql/scripts/75_storagemodel.sql
Branch: mosaic
Log Message:
Show the sizes of the hash, imprint, orderedidx, and compressed
or null
diffs (249 lines):
diff --git a/gdk/gdk_imprints.c b/gdk/gdk_imprints.c
--- a/gdk/gdk_imprints.c
+++ b/gdk/gdk_imprints.c
@@ -623,7 +623,7 @@ IMPSgetbin(int tpe, bte bits, const char
lng
IMPSimprintsize(BAT *b)
{
- lng sz = 0;
+ lng sz = lng_nil;
if (b->timprints && b->timprints != (Imprints *) 1) {
sz = b->timprints->impcnt * b->timprints->bits / 8;
sz += b->timprints->dictcnt * sizeof(cchdc_t);
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
@@ -4649,6 +4649,7 @@ sql_storage(Client cntxt, MalBlkPtr mb,
sql_trans *tr;
node *nsch, *ntab, *ncol;
int w;
+ lng szz;
bit bitval;
bat *rsch = getArgReference_bat(stk, pci, 0);
bat *rtab = getArgReference_bat(stk, pci, 1);
@@ -4695,7 +4696,7 @@ sql_storage(Client cntxt, MalBlkPtr mb,
revsort = COLnew(0, TYPE_bit, 0, TRANSIENT);
key = COLnew(0, TYPE_bit, 0, TRANSIENT);
oidx = COLnew(0, TYPE_lng, 0, TRANSIENT);
- compressed = COLnew(0, TYPE_bit, 0, TRANSIENT);
+ compressed = COLnew(0, TYPE_lng, 0, TRANSIENT);
if (sch == NULL || tab == NULL || col == NULL || type == NULL || mode
== NULL || loc == NULL || imprints == NULL ||
sort == NULL || cnt == NULL || atom == NULL || size == NULL || heap
== NULL || indices == NULL || phash == NULL ||
@@ -4803,8 +4804,11 @@ sql_storage(Client cntxt, MalBlkPtr mb,
if
(BUNappend(heap, &sz, false) != GDK_SUCCEED)
goto
bailout;
- sz =
hashinfo(bn->thash, bn->batCacheid);
- if
(BUNappend(indices, &sz, false) != GDK_SUCCEED)
+ if( bn->thash)
+ szz =
hashinfo(bn->thash, bn->batCacheid);
+ else
+ szz =
lng_nil;
+ if
(BUNappend(indices, &szz, false) != GDK_SUCCEED)
goto
bailout;
bitval = 0; /*
HASHispersistent(bn); */
@@ -4835,11 +4839,13 @@ sql_storage(Client cntxt, MalBlkPtr mb,
if
(BUNappend(key, &bitval, false) != GDK_SUCCEED)
goto
bailout;
- sz =
bn->torderidx && bn->torderidx != (Heap *) 1 ? bn->torderidx->free : 0;
- if
(BUNappend(oidx, &sz, false) != GDK_SUCCEED)
+ szz =
bn->torderidx && bn->torderidx != (Heap *) 1 ? (lng)bn->torderidx->free :
lng_nil;
+ if
(BUNappend(oidx, &szz, false) != GDK_SUCCEED)
goto
bailout;
+
w =
BATcheckmosaic(bn);
- if(
BUNappend(compressed, &w, false) != GDK_SUCCEED)
+ szz =
bn->tmosaic && bn->tmosaic != (Heap *) 1 ? (lng) bn->tmosaic->free : lng_nil;
+ if(
BUNappend(compressed, &szz, false) != GDK_SUCCEED)
goto
bailout;
BBPunfix(bn->batCacheid);
}
@@ -4918,8 +4924,8 @@ sql_storage(Client cntxt, MalBlkPtr mb,
if
(BUNappend(heap, &sz, false) != GDK_SUCCEED)
goto bailout;
- sz =
bn->thash && bn->thash != (Hash *) 1 ? bn->thash->heaplink.size +
bn->thash->heapbckt.size : 0; /* HASHsize() */
- if
(BUNappend(indices, &sz, false) != GDK_SUCCEED)
+ szz =
bn->thash && bn->thash != (Hash *) 1 ? (lng) (bn->thash->heaplink.size +
bn->thash->heapbckt.size) : lng_nil; /* HASHsize() */
+ if
(BUNappend(indices, &szz, false) != GDK_SUCCEED)
goto bailout;
bitval
= 0; /* HASHispersistent(bn); */
if
(BUNappend(phash, &bitval, false) != GDK_SUCCEED)
@@ -4945,11 +4951,12 @@ sql_storage(Client cntxt, MalBlkPtr mb,
bitval = bit_nil;
if
(BUNappend(key, &bitval, false) != GDK_SUCCEED)
goto bailout;
- sz =
bn->torderidx && bn->torderidx != (Heap *) 1 ? bn->torderidx->free : 0;
- if
(BUNappend(oidx, &sz, false) != GDK_SUCCEED)
+ szz =
bn->torderidx && bn->torderidx != (Heap *) 1 ? (lng)bn->torderidx->free :
lng_nil;
+ if
(BUNappend(oidx, &szz, false) != GDK_SUCCEED)
goto bailout;
w =
BATcheckmosaic(bn);
- if(
BUNappend(compressed, &w, false) != GDK_SUCCEED)
+ szz =
bn->tmosaic && bn->tmosaic != (Heap *) 1 ? (lng) bn->tmosaic->free : lng_nil;
+ if(
BUNappend(compressed, &szz, false) != GDK_SUCCEED)
goto bailout;
BBPunfix(bn->batCacheid);
}
diff --git a/sql/backends/monet5/sql.mal b/sql/backends/monet5/sql.mal
--- a/sql/backends/monet5/sql.mal
+++ b/sql/backends/monet5/sql.mal
@@ -448,7 +448,7 @@ pattern storage()(
revsorted:bat[:bit],
key:bat[:bit],
orderidx:bat[:lng],
- compressed:bat[:bit])
+ compressed:bat[:lng])
address sql_storage
comment "return a table with storage information ";
@@ -470,7 +470,7 @@ pattern storage(sname:str)(
revsorted:bat[:bit],
key:bat[:bit],
orderidx:bat[:lng],
- compressed:bat[:bit])
+ compressed:bat[:lng])
address sql_storage
comment "return a table with storage information for a particular schema ";
@@ -492,7 +492,7 @@ pattern storage(sname:str, tname:str)(
revsorted:bat[:bit],
key:bat[:bit],
orderidx:bat[:lng],
- compressed:bat[:bit])
+ compressed:bat[:lng])
address sql_storage
comment "return a table with storage information for a particular table";
@@ -514,7 +514,7 @@ pattern storage(sname:str, tname:str, cn
revsorted:bat[:bit],
key:bat[:bit],
orderidx:bat[:lng],
- compressed:bat[:bit])
+ compressed:bat[:lng])
address sql_storage
comment "return a table with storage information for a particular column";
diff --git a/sql/backends/monet5/sql_upgrades.c
b/sql/backends/monet5/sql_upgrades.c
--- a/sql/backends/monet5/sql_upgrades.c
+++ b/sql/backends/monet5/sql_upgrades.c
@@ -1517,7 +1517,8 @@ sql_update_storagemodel(Client c, mvc *s
" sorted boolean,\n"
" revsorted boolean,\n"
" \"unique\" boolean,\n"
- " orderidx bigint\n"
+ " orderidx bigint,\n"
+ " compressed bigin,\n"
")\n"
"external name sql.\"storage\";\n"
"create view sys.\"storage\" as\n"
@@ -1535,7 +1536,8 @@ sql_update_storagemodel(Client c, mvc *s
" sum(heapsize) as heapsize,\n"
" sum(hashes) as hashsize,\n"
" sum(\"imprints\") as imprintsize,\n"
- " sum(orderidx) as orderidxsize\n"
+ " sum(orderidx) as orderidxsize,\n"
+ " sum(compressed) as compressedsize\n"
" from sys.\"storage\"\n"
"group by \"schema\", \"table\"\n"
"order by \"schema\", \"table\";\n"
@@ -1546,7 +1548,8 @@ sql_update_storagemodel(Client c, mvc *s
" sum(heapsize) as heapsize,\n"
" sum(hashes) as hashsize,\n"
" sum(\"imprints\") as imprintsize,\n"
- " sum(orderidx) as orderidxsize\n"
+ " sum(orderidx) as orderidxsize,\n"
+ " sum(compressed) as compressedsize\n"
" from sys.\"storage\"\n"
"group by \"schema\"\n"
"order by \"schema\";\n"
@@ -1568,7 +1571,8 @@ sql_update_storagemodel(Client c, mvc *s
" sorted boolean,\n"
" revsorted boolean,\n"
" \"unique\" boolean,\n"
- " orderidx bigint\n"
+ " orderidx bigint,\n"
+ " compressed bigint\n"
")\n"
"external name sql.\"storage\";\n"
"create function sys.\"storage\"(sname varchar(1024), tname
varchar(1024))\n"
@@ -1589,7 +1593,8 @@ sql_update_storagemodel(Client c, mvc *s
" sorted boolean,\n"
" revsorted boolean,\n"
" \"unique\" boolean,\n"
- " orderidx bigint\n"
+ " orderidx bigint,\n"
+ " compressed bigint\n"
")\n"
"external name sql.\"storage\";\n"
"create function sys.\"storage\"(sname varchar(1024), tname
varchar(1024), cname varchar(1024))\n"
@@ -1610,7 +1615,8 @@ sql_update_storagemodel(Client c, mvc *s
" sorted boolean,\n"
" revsorted boolean,\n"
" \"unique\" boolean,\n"
- " orderidx bigint\n"
+ " orderidx bigint,\n"
+ " cpmpressed bigint\n"
")\n"
"external name sql.\"storage\";\n"
"create table sys.storagemodelinput(\n"
@@ -1735,6 +1741,7 @@ sql_update_storagemodel(Client c, mvc *s
" sys.hashsize(\"reference\", \"count\") as hashsize,\n"
" case when isacolumn then sys.imprintsize(\"type\",
\"count\") else 0 end as imprintsize,\n"
" case when (isacolumn and not sorted) then cast(8 *
\"count\" as bigint) else 0 end as orderidxsize,\n"
+ " case when (isacolumn and not sorted) then cast(8 *
\"count\" as bigint) else 0 end as compressedxsize,\n"
" sorted, \"unique\", isacolumn\n"
" from sys.storagemodelinput\n"
"order by \"schema\", \"table\", \"column\";\n"
@@ -1746,7 +1753,8 @@ sql_update_storagemodel(Client c, mvc *s
" sum(sys.heapsize(\"type\", \"count\", \"distinct\",
\"atomwidth\")) as heapsize,\n"
" sum(sys.hashsize(\"reference\", \"count\")) as
hashsize,\n"
" sum(case when isacolumn then sys.imprintsize(\"type\",
\"count\") else 0 end) as imprintsize,\n"
- " sum(case when (isacolumn and not sorted) then cast(8 *
\"count\" as bigint) else 0 end) as orderidxsize\n"
+ " sum(case when (isacolumn and not sorted) then cast(8 *
\"count\" as bigint) else 0 end) as orderidxsize,\n"
+ " sum(case when (isacolumn and not sorted) then cast(8 *
\"count\" as bigint) else 0 end) as compressedsize\n"
" from sys.storagemodelinput\n"
"group by \"schema\", \"table\"\n"
"order by \"schema\", \"table\";\n"
diff --git a/sql/scripts/75_storagemodel.sql b/sql/scripts/75_storagemodel.sql
--- a/sql/scripts/75_storagemodel.sql
+++ b/sql/scripts/75_storagemodel.sql
@@ -36,7 +36,7 @@ returns table (
revsorted boolean,
"unique" boolean,
orderidx bigint,
- compressed boolean
+ compressed bigint
)
external name sql."storage";
@@ -94,7 +94,7 @@ returns table (
revsorted boolean,
"unique" boolean,
orderidx bigint,
- compressed boolean
+ compressed bigint
)
external name sql."storage";
@@ -140,7 +140,7 @@ returns table (
revsorted boolean,
"unique" boolean,
orderidx bigint,
- compressed boolean
+ compressed bigint
)
external name sql."storage";
@@ -162,7 +162,7 @@ create table sys.storagemodelinput(
sorted boolean, -- if set there is no need for an
ordered index
"unique" boolean, -- are values unique or not
isacolumn boolean NOT NULL DEFAULT TRUE,
- compressed boolean
+ compressed bigint
);
-- The model input can be derived from the current database using
intitalisation procedure:
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list