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

Reply via email to