Changeset: 6197ae88efa8 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6197ae88efa8
Modified Files:
        gdk/gdk_logger.c
        gdk/gdk_logger.h
        gdk/gdk_sample.c
        sql/backends/monet5/sql_scenario.c
        sql/storage/bat/bat_logger.c
        sql/storage/store.c
Branch: default
Log Message:

merger with default


diffs (truncated from 356 to 300 lines):

diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -108,7 +108,7 @@ static char *log_commands[] = {
 typedef struct logformat_t {
        char flag;
        int tid;
-       int nr;
+       lng nr;
 } logformat;
 
 #define LOGFILE "log"
@@ -138,10 +138,24 @@ logbat_new(int tt, BUN size)
 }
 
 static int
+log_read_format_old(logger *l, logformat *data)
+{
+       int nr = 0;
+       int ok =  mnstr_read(l->log, &data->flag, 1, 1) == 1 &&
+               mnstr_readInt(l->log, &nr) == 1 &&
+               mnstr_readInt(l->log, &data->tid) == 1;
+       data->nr = nr;
+       return ok;
+}
+
+static int
 log_read_format(logger *l, logformat *data)
 {
+       if (l->postfuncp) /* we need to convert from the old logformat, 
+                                    needs to be removed once we released 
Aug2014 */
+               return log_read_format_old(l, data);
        return mnstr_read(l->log, &data->flag, 1, 1) == 1 &&
-               mnstr_readInt(l->log, &data->nr) == 1 &&
+               mnstr_readLng(l->log, &data->nr) == 1 &&
                mnstr_readInt(l->log, &data->tid) == 1;
 }
 
@@ -149,7 +163,7 @@ static int
 log_write_format(logger *l, logformat *data)
 {
        if (mnstr_write(l->log, &data->flag, 1, 1) == 1 &&
-           mnstr_writeInt(l->log, data->nr) &&
+           mnstr_writeLng(l->log, data->nr) &&
            mnstr_writeInt(l->log, data->tid))
                return LOG_OK;
        fprintf(stderr, "!ERROR: log_write_format: write failed\n");
@@ -246,7 +260,7 @@ la_bat_clear(logger *lg, logaction *la)
 static int
 log_read_seq(logger *lg, logformat *l)
 {
-       int seq = l->nr;
+       lng seq = l->nr;
        lng val;
        BUN p;
 
@@ -273,7 +287,7 @@ log_read_updates(logger *lg, trans *tr, 
        int ht = -1, tt = -1, hseq = 0, tseq = 0;
 
        if (lg->debug & 1)
-               fprintf(stderr, "#logger found log_read_updates %s %s %d\n", 
name, l->flag == LOG_INSERT ? "insert" : l->flag == LOG_DELETE ? "delete" : 
"update", l->nr);
+               fprintf(stderr, "#logger found log_read_updates %s %s " LLFMT 
"\n", name, l->flag == LOG_INSERT ? "insert" : l->flag == LOG_DELETE ? "delete" 
: "update", l->nr);
 
        if (b) {
                ht = b->htype;
@@ -806,7 +820,7 @@ logger_readlog(logger *lg, char *filenam
                                fprintf(stderr, "%s", log_commands[(int) 
l.flag]);
                        else
                                fprintf(stderr, "%d", l.flag);
-                       fprintf(stderr, " %d %d", l.tid, l.nr);
+                       fprintf(stderr, " %d " LLFMT, l.tid, l.nr);
                        if (name)
                                fprintf(stderr, " %s", name);
                        fprintf(stderr, "\n");
@@ -818,7 +832,7 @@ logger_readlog(logger *lg, char *filenam
                case LOG_START:
                        if (l.nr > lg->tid)
                                lg->tid = l.nr;
-                       tr = tr_create(tr, l.nr);
+                       tr = tr_create(tr, (int)l.nr);
                        if (lg->debug & 1)
                                fprintf(stderr, "#logger tstart %d\n", tr->tid);
                        break;
@@ -1766,8 +1780,8 @@ log_delta(logger *lg, BAT *b, char *name
 
        l.tid = lg->tid;
        nr = (BUNlast(b) - BUNfirst(b));
-       assert(nr <= GDK_int_max);
-       l.nr = (int) nr;
+       assert(nr <= GDK_lng_max);
+       l.nr = nr;
        lg->changes += l.nr;
 
        if (l.nr) {
@@ -1789,7 +1803,7 @@ log_delta(logger *lg, BAT *b, char *name
                }
 
                if (lg->debug & 1)
-                       fprintf(stderr, "#Logged %s %d inserts\n", name, l.nr);
+                       fprintf(stderr, "#Logged %s " LLFMT " inserts\n", name, 
l.nr);
        }
        if (ok == GDK_FAIL)
                fprintf(stderr, "!ERROR: log_delta: write failed\n");
@@ -1809,7 +1823,7 @@ log_bat(logger *lg, BAT *b, char *name)
        }
 
        l.tid = lg->tid;
-       l.nr = (int) (BUNlast(b) - b->batInserted);
+       l.nr = (BUNlast(b) - b->batInserted);
        lg->changes += l.nr;
 
        if (l.nr) {
@@ -1840,9 +1854,9 @@ log_bat(logger *lg, BAT *b, char *name)
                }
 
                if (lg->debug & 1)
-                       fprintf(stderr, "#Logged %s %d inserts\n", name, l.nr);
+                       fprintf(stderr, "#Logged %s " LLFMT " inserts\n", name, 
l.nr);
        }
-       l.nr = (int) (b->batFirst - b->batDeleted);
+       l.nr = (b->batFirst - b->batDeleted);
        lg->changes += l.nr;
 
        if (l.nr && ok == GDK_SUCCEED) {
@@ -1864,7 +1878,7 @@ log_bat(logger *lg, BAT *b, char *name)
                }
 
                if (lg->debug & 1)
-                       fprintf(stderr, "#Logged %s %d deletes\n", name, l.nr);
+                       fprintf(stderr, "#Logged %s " LLFMT " deletes\n", name, 
l.nr);
        }
        if (ok == GDK_FAIL)
                fprintf(stderr, "!ERROR: log_bat: write failed\n");
diff --git a/gdk/gdk_logger.h b/gdk/gdk_logger.h
--- a/gdk/gdk_logger.h
+++ b/gdk/gdk_logger.h
@@ -25,7 +25,7 @@
 
 typedef struct logaction {
        int type;               /* type of change */
-       int nr;
+       lng nr;
        int ht;                 /* vid(-1),void etc */
        int tt;
        lng id;
@@ -49,7 +49,7 @@ typedef void (*postversionfix_fptr)(void
 
 typedef struct logger {
        int debug;
-       size_t changes;
+       lng changes;
        int version;
        lng id;
        int tid;
diff --git a/gdk/gdk_sample.c b/gdk/gdk_sample.c
--- a/gdk/gdk_sample.c
+++ b/gdk/gdk_sample.c
@@ -60,7 +60,7 @@ static int OIDTreeLookup(struct oidtreen
 }
 
 static struct oidtreenode* OIDTreeNew(BUN oid) {
-       struct oidtreenode *node = malloc(sizeof(struct oidtreenode));
+       struct oidtreenode *node = GDKmalloc(sizeof(struct oidtreenode));
        if (node == NULL) {
                GDKerror("#BATsample: memory allocation error");
                return NULL ;
@@ -102,7 +102,7 @@ static void OIDTreeDestroy(struct oidtre
        if (node->right != NULL) {
                OIDTreeDestroy(node->right);
        }
-       free(node);
+       GDKfree(node);
 }
 
 
@@ -149,7 +149,7 @@ BATsample(BAT *b, BUN n) {
                        struct oidtreenode* ttree;
                        do {
                                /* generate a new random OID */
-                               candoid = minoid + DRAND * (maxoid - minoid);
+                               candoid = (BUN) (minoid + DRAND * (maxoid - 
minoid));
                                /* if that candidate OID was already generated, 
try again */
                        } while (OIDTreeLookup(tree, candoid));
                        ttree = OIDTreeInsert(tree, candoid);
diff --git a/sql/backends/monet5/sql_scenario.c 
b/sql/backends/monet5/sql_scenario.c
--- a/sql/backends/monet5/sql_scenario.c
+++ b/sql/backends/monet5/sql_scenario.c
@@ -600,11 +600,7 @@ sql_update_feb2013_sp3(Client c)
 
 /*
  * TODO
- *     rewrite args table, ie add vararg and inout columns
  *     update all table functions, ie make them type F_UNION
- *     update columns view, ie change storage_type-int into storage - varchar
- *     remove table return types (#..), ie tt_generated from _tables
- *     drop declared schema.
  */
 static str
 sql_update_jan2014(Client c)
@@ -617,8 +613,13 @@ sql_update_jan2014(Client c)
        if (schvar)
                schema = strdup(schvar->val.sval);
 
+       
        pos += snprintf(buf + pos, bufsize - pos, "set schema \"sys\";\n");
 
+       /* remove table return types (#..), ie tt_generated from 
_tables/_columns */
+       pos += snprintf(buf + pos, bufsize - pos, "delete from _columns where 
table_id in (select id from _tables where name like '#%%');\n");
+       pos += snprintf(buf + pos, bufsize - pos, "delete from _tables where 
name like '#%%';\n");
+
        /* replaced 15_history.sql by 15_querylog.sql */
        pos += snprintf(buf + pos, bufsize - pos, "drop procedure 
sys.resetHistory;\n");
        pos += snprintf(buf + pos, bufsize - pos, "drop procedure 
sys.keepCall;\n");
@@ -849,10 +850,13 @@ sql_update_default(Client c)
 {
        size_t bufsize = 8192, pos = 0;
        char *buf = GDKmalloc(bufsize), *err = NULL;
-       ValRecord *schvar = stack_get_var(((backend *) c->sqlcontext)->mvc, 
"current_schema");
+       mvc *sql = ((backend*) c->sqlcontext)->mvc;
+       ValRecord *schvar = stack_get_var(sql, "current_schema");
        char *schema = NULL;
        char *fullname;
        FILE *fp;
+       sql_table *t;
+       sql_schema *s;
 
        if (schvar)
                schema = strdup(schvar->val.sval);
@@ -891,6 +895,13 @@ sql_update_default(Client c)
        }
 
        /* change to 75_storage functions */
+       s = mvc_bind_schema(sql, "sys");
+       if (s && (t = mvc_bind_table(sql, s, "storage")) != NULL)
+               t->system = 0;
+       if (s && (t = mvc_bind_table(sql, s, "storagemodel")) != NULL)
+               t->system = 0;
+       if (s && (t = mvc_bind_table(sql, s, "tablestoragemodel")) != NULL)
+               t->system = 0;
        pos += snprintf(buf + pos, bufsize - pos, "update sys._tables set 
system = false where name in ('storage','storagemodel','tablestoragemodel') and 
schema_id = (select id from sys.schemas where name = 'sys');\n");
        pos += snprintf(buf + pos, bufsize - pos, "drop view sys.storage;\n");
        pos += snprintf(buf + pos, bufsize - pos, "drop function 
sys.storage();\n");
@@ -901,6 +912,11 @@ sql_update_default(Client c)
        pos += snprintf(buf + pos, bufsize - pos, "create function 
sys.storage() returns table (\"schema\" string, \"table\" string, \"column\" 
string, \"type\" string, location string, \"count\" bigint, typewidth int, 
columnsize bigint, heapsize bigint, hashes bigint, imprints bigint, sorted 
boolean) external name sql.storage;\n");
        pos += snprintf(buf + pos, bufsize - pos, "create view sys.storage as 
select * from sys.storage();\n");
 
+
+       pos += snprintf(buf + pos, bufsize - pos, "create function 
sys.hashsize(b boolean, i bigint) returns bigint begin if  b = true then return 
8 * i; end if; return 0; end;");
+
+       pos += snprintf(buf + pos, bufsize - pos, "create function 
sys.imprintsize(i bigint, nme string) returns bigint begin if nme = 'boolean' 
or nme = 'tinyint' or nme = 'smallint' or nme = 'int'  or nme = 'bigint'       
or nme = 'decimal'      or nme = 'date' or nme = 'timestamp' or nme = 'real' or 
nme = 'double' then return cast( i * 0.12 as bigint); end if ; return 0; end;");
+
        pos += snprintf(buf + pos, bufsize - pos, "create function 
sys.storagemodel() returns table ("
 "    \"schema\" string, \"table\" string, \"column\" string, \"type\" string, 
\"count\" bigint,"
 "    columnsize bigint, heapsize bigint, hashes bigint, imprints bigint, 
sorted boolean)"
@@ -920,7 +936,7 @@ sql_update_default(Client c)
 "    sum(hashes) as hashes,"
 "    sum(imprints) as imprints,"
 "    sum(case when sorted = false then 8 * count else 0 end) as auxillary"
-"from sys.storagemodel() group by \"schema\",\"table\";\n");
+" from sys.storagemodel() group by \"schema\",\"table\";\n");
        pos += snprintf(buf + pos, bufsize - pos, "create view sys.storagemodel 
as select * from sys.storagemodel();\n");
        pos += snprintf(buf + pos, bufsize - pos, "update sys._tables set 
system = true where name in ('storage','storagemodel','tablestoragemodel') and 
schema_id = (select id from sys.schemas where name = 'sys');\n");
 
diff --git a/sql/storage/bat/bat_logger.c b/sql/storage/bat/bat_logger.c
--- a/sql/storage/bat/bat_logger.c
+++ b/sql/storage/bat/bat_logger.c
@@ -81,7 +81,7 @@ bl_postversion( void *lg)
        (void)lg;
        if (catalog_version == CATALOG_FEB2013) {
                /* we need to add the new schemas.system column */
-               BAT *b, *b1;
+               BAT *b, *b1, *b2;
                BATiter bi;
                char *s = "sys", n[64];
                BUN p,q;
@@ -106,6 +106,57 @@ bl_postversion( void *lg)
                logger_add_bat(lg, b1, N(n, NULL, s, "schemas_system"));
                bat_destroy(b);
                bat_destroy(b1);
+
+               /* add args.inout (default to ARG_IN) */
+               b = temp_descriptor(logger_find_bat(lg, N(n, NULL, s, 
"args_name")));
+               if (!b)
+                       return;
+               bi = bat_iterator(b);
+               b1 = BATnew(TYPE_void, TYPE_bit, BATcount(b));
+               BATseqbase(b1, b->hseqbase);
+               if (!b1)
+                       return;
+               /* default to ARG_IN, names starting with 'res' are ARG_OUT */
+               bi = bat_iterator(b);
+               for(p=BUNfirst(b), q=BUNlast(b); p<q; p++) {
+                       bte v = ARG_IN;
+                       char *name = BUNtail(bi, p);
+                       if (strncmp(name, "res", 3) == 0)
+                               v = ARG_OUT;
+                       BUNappend(b1, &v, TRUE);
+               }
+               b1 = BATsetaccess(b1, BAT_READ);
+               logger_add_bat(lg, b1, N(n, NULL, s, "args_inout"));
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to