Changeset: 35bbcf3d0d7f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/35bbcf3d0d7f
Modified Files:
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql.h
        sql/backends/monet5/vaults/fits/fits.c
        sql/backends/monet5/vaults/netcdf/netcdf.c
        sql/backends/monet5/vaults/shp/shp.c
        sql/backends/monet5/wlr.c
        sql/storage/bat/bat_storage.c
        sql/storage/bat/bat_table.c
        sql/storage/sql_storage.h
        tools/monetdbe/monetdbe.c
Branch: scatter
Log Message:

changed claim api, to be used for scattered inserts


diffs (truncated from 1093 to 300 lines):

diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -9207,7 +9207,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "analyze",      "unsafe pattern sql.analyze(X_0:int, X_1:lng, 
X_2:str, X_3:str):void ", "sql_analyze;", ""      ]
 [ "sql",       "analyze",      "unsafe pattern sql.analyze(X_0:int, X_1:lng, 
X_2:str, X_3:str, X_4:str):void ",        "sql_analyze;", ""      ]
 [ "sql",       "any",  "pattern sql.any(X_0:bit, X_1:bit, X_2:bit):bit ",      
"SQLany_cmp;",  ""      ]
-[ "sql",       "append",       "pattern sql.append(X_0:int, X_1:str, X_2:str, 
X_3:str, X_4:lng, X_5:any):int ",        "mvc_append_wrap;",     ""      ]
+[ "sql",       "append",       "pattern sql.append(X_0:int, X_1:str, X_2:str, 
X_3:str, X_4:bat[:oid], X_5:any):int ",  "mvc_append_wrap;",     ""      ]
 [ "sql",       "argRecord",    "pattern sql.argRecord():str ", 
"SQLargRecord;",        ""      ]
 [ "sql",       "argRecord",    "pattern sql.argRecord(X_0:any...):str ",       
"SQLargRecord;",        ""      ]
 [ "sql",       "assert",       "pattern sql.assert(X_0:bit, X_1:str):void ",   
"SQLassert;",   ""      ]
@@ -9231,7 +9231,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "bind_idxbat",  "pattern sql.bind_idxbat(X_0:int, X_1:str, 
X_2:str, X_3:str, X_4:int):bat[:any_1] ",    "mvc_bind_idxbat_wrap;",        "" 
     ]
 [ "sql",       "bind_idxbat",  "pattern sql.bind_idxbat(X_0:int, X_1:str, 
X_2:str, X_3:str, X_4:int, X_5:int, X_6:int) (X_7:bat[:oid], X_8:bat[:any_1]) 
",     "mvc_bind_idxbat_wrap;",        ""      ]
 [ "sql",       "bind_idxbat",  "pattern sql.bind_idxbat(X_0:int, X_1:str, 
X_2:str, X_3:str, X_4:int, X_5:int, X_6:int):bat[:any_1] ",  
"mvc_bind_idxbat_wrap;",        ""      ]
-[ "sql",       "claim",        "unsafe pattern sql.claim(X_0:int, X_1:str, 
X_2:str, X_3:lng):lng ",    "mvc_claim_wrap;",      ""      ]
+[ "sql",       "claim",        "unsafe pattern sql.claim(X_0:int, X_1:str, 
X_2:str, X_3:lng):bat[:oid] ",      "mvc_claim_wrap;",      ""      ]
 [ "sql",       "clear_table",  "unsafe pattern sql.clear_table(X_0:str, 
X_1:str):lng ",        "mvc_clear_table_wrap;",        ""      ]
 [ "sql",       "commit",       "unsafe pattern sql.commit():void ",    
"SQLcommit;",   ""      ]
 [ "sql",       "copy_from",    "unsafe pattern sql.copy_from(X_0:ptr, X_1:str, 
X_2:str, X_3:str, X_4:str, X_5:str, X_6:lng, X_7:lng, X_8:int, X_9:str, 
X_10:int, X_11:int):bat[:any]... ",     "mvc_import_table_wrap;",       ""      
]
diff --git a/clients/Tests/MAL-signatures.stable.out.int128 
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -12508,7 +12508,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "analyze",      "unsafe pattern sql.analyze(X_0:int, X_1:lng, 
X_2:str, X_3:str):void ", "sql_analyze;", ""      ]
 [ "sql",       "analyze",      "unsafe pattern sql.analyze(X_0:int, X_1:lng, 
X_2:str, X_3:str, X_4:str):void ",        "sql_analyze;", ""      ]
 [ "sql",       "any",  "pattern sql.any(X_0:bit, X_1:bit, X_2:bit):bit ",      
"SQLany_cmp;",  ""      ]
-[ "sql",       "append",       "pattern sql.append(X_0:int, X_1:str, X_2:str, 
X_3:str, X_4:lng, X_5:any):int ",        "mvc_append_wrap;",     ""      ]
+[ "sql",       "append",       "pattern sql.append(X_0:int, X_1:str, X_2:str, 
X_3:str, X_4:bat[:oid], X_5:any):int ",  "mvc_append_wrap;",     ""      ]
 [ "sql",       "argRecord",    "pattern sql.argRecord():str ", 
"SQLargRecord;",        ""      ]
 [ "sql",       "argRecord",    "pattern sql.argRecord(X_0:any...):str ",       
"SQLargRecord;",        ""      ]
 [ "sql",       "assert",       "pattern sql.assert(X_0:bit, X_1:str):void ",   
"SQLassert;",   ""      ]
@@ -12534,7 +12534,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "bind_idxbat",  "pattern sql.bind_idxbat(X_0:int, X_1:str, 
X_2:str, X_3:str, X_4:int):bat[:any_1] ",    "mvc_bind_idxbat_wrap;",        "" 
     ]
 [ "sql",       "bind_idxbat",  "pattern sql.bind_idxbat(X_0:int, X_1:str, 
X_2:str, X_3:str, X_4:int, X_5:int, X_6:int) (X_7:bat[:oid], X_8:bat[:any_1]) 
",     "mvc_bind_idxbat_wrap;",        ""      ]
 [ "sql",       "bind_idxbat",  "pattern sql.bind_idxbat(X_0:int, X_1:str, 
X_2:str, X_3:str, X_4:int, X_5:int, X_6:int):bat[:any_1] ",  
"mvc_bind_idxbat_wrap;",        ""      ]
-[ "sql",       "claim",        "unsafe pattern sql.claim(X_0:int, X_1:str, 
X_2:str, X_3:lng):lng ",    "mvc_claim_wrap;",      ""      ]
+[ "sql",       "claim",        "unsafe pattern sql.claim(X_0:int, X_1:str, 
X_2:str, X_3:lng):bat[:oid] ",      "mvc_claim_wrap;",      ""      ]
 [ "sql",       "clear_table",  "unsafe pattern sql.clear_table(X_0:str, 
X_1:str):lng ",        "mvc_clear_table_wrap;",        ""      ]
 [ "sql",       "commit",       "unsafe pattern sql.commit():void ",    
"SQLcommit;",   ""      ]
 [ "sql",       "copy_from",    "unsafe pattern sql.copy_from(X_0:ptr, X_1:str, 
X_2:str, X_3:str, X_4:str, X_5:str, X_6:lng, X_7:lng, X_8:int, X_9:str, 
X_10:int, X_11:int):bat[:any]... ",     "mvc_import_table_wrap;",       ""      
]
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
@@ -491,7 +491,7 @@ create_table_or_view(mvc *sql, char* sna
        return MAL_SUCCEED;
 }
 
-static size_t
+static BAT *
 mvc_claim_slots(sql_trans *tr, sql_table *t, size_t cnt)
 {
        sqlstore *store = tr->store;
@@ -501,7 +501,7 @@ mvc_claim_slots(sql_trans *tr, sql_table
 str
 mvc_claim_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
-       lng *res = getArgReference_lng(stk, pci, 0);
+       bat *res = getArgReference_bat(stk, pci, 0);
        mvc *m = NULL;
        str msg;
        const char *sname = *getArgReference_str(stk, pci, 2);
@@ -523,14 +523,18 @@ mvc_claim_wrap(Client cntxt, MalBlkPtr m
        t = mvc_bind_table(m, s, tname);
        if (t == NULL)
                throw(SQL, "sql.claim", SQLSTATE(42S02) "Table missing %s.%s", 
sname, tname);
-       *res = mvc_claim_slots(m->session->tr, t, (size_t)cnt);
-       return MAL_SUCCEED;
+       BAT *pos = mvc_claim_slots(m->session->tr, t, (size_t)cnt);
+       if (pos) {
+               BBPkeepref(*res = pos->batCacheid);
+               return MAL_SUCCEED;
+       }
+       throw(SQL, "sql.claim", SQLSTATE(3F000) "Could not claim slots");
 }
 
 str
 create_table_from_emit(Client cntxt, char *sname, char *tname, sql_emit_col 
*columns, size_t ncols)
 {
-       size_t i, pos = 0;
+       size_t i;
        sql_table *t;
        sql_schema *s;
        mvc *sql = NULL;
@@ -574,24 +578,30 @@ create_table_from_emit(Client cntxt, cha
                return msg;
        if (!(t = mvc_bind_table(sql, s, tname)))
                return sql_error(sql, ERR_NOTFOUND, SQLSTATE(3F000) "CREATE 
TABLE: could not bind table %s", tname);
-       pos = mvc_claim_slots(sql->session->tr, t, BATcount(columns[0].b));
+       BAT *pos = mvc_claim_slots(sql->session->tr, t, BATcount(columns[0].b));
+       if (!pos)
+               return sql_error(sql, 02, SQLSTATE(3F000) "CREATE TABLE: Could 
not insert data");
        for (i = 0; i < ncols; i++) {
                BAT *b = columns[i].b;
                sql_column *col = NULL;
 
-               if (!(col = mvc_bind_column(sql, t, columns[i].name)))
+               if (!(col = mvc_bind_column(sql, t, columns[i].name))) {
+                       bat_destroy(pos);
                        return sql_error(sql, ERR_NOTFOUND, SQLSTATE(3F000) 
"CREATE TABLE: could not bind column %s", columns[i].name);
-               if ((msg = mvc_append_column(sql->session->tr, col, pos, b)) != 
MAL_SUCCEED)
+               }
+               if ((msg = mvc_append_column(sql->session->tr, col, pos, b)) != 
MAL_SUCCEED) {
+                       bat_destroy(pos);
                        return msg;
+               }
        }
-
+       bat_destroy(pos);
        return msg;
 }
 
 str
 append_to_table_from_emit(Client cntxt, char *sname, char *tname, sql_emit_col 
*columns, size_t ncols)
 {
-       size_t i, pos = 0;
+       size_t i;
        sql_table *t;
        sql_schema *s;
        mvc *sql = NULL;
@@ -608,17 +618,23 @@ append_to_table_from_emit(Client cntxt, 
                return sql_error(sql, ERR_NOTFOUND, SQLSTATE(3F000) "APPEND 
TABLE: no such schema '%s'", sname);
        if (!(t = mvc_bind_table(sql, s, tname)))
                return sql_error(sql, ERR_NOTFOUND, SQLSTATE(3F000) "APPEND 
TABLE: could not bind table %s", tname);
-       pos = mvc_claim_slots(sql->session->tr, t, BATcount(columns[0].b));
+       BAT *pos = mvc_claim_slots(sql->session->tr, t, BATcount(columns[0].b));
+       if (!pos)
+               return sql_error(sql, 02, SQLSTATE(3F000) "APPEND TABLE: Could 
not append data");
        for (i = 0; i < ncols; i++) {
                BAT *b = columns[i].b;
                sql_column *col = NULL;
 
-               if (!(col = mvc_bind_column(sql, t, columns[i].name)))
+               if (!(col = mvc_bind_column(sql, t, columns[i].name))) {
+                       bat_destroy(pos);
                        return sql_error(sql, ERR_NOTFOUND, SQLSTATE(3F000) 
"APPEND TABLE: could not bind column %s", columns[i].name);
-               if ((msg = mvc_append_column(sql->session->tr, col, pos, b)) != 
MAL_SUCCEED)
+               }
+               if ((msg = mvc_append_column(sql->session->tr, col, pos, b)) != 
MAL_SUCCEED) {
+                       bat_destroy(pos);
                        return msg;
+               }
        }
-
+       bat_destroy(pos);
        return msg;
 }
 
@@ -1723,10 +1739,10 @@ mvc_bind_idxbat_wrap(Client cntxt, MalBl
 }
 
 str
-mvc_append_column(sql_trans *t, sql_column *c, size_t pos, BAT *ins)
+mvc_append_column(sql_trans *t, sql_column *c, BAT *pos, BAT *ins)
 {
        sqlstore *store = t->store;
-       int res = store->storage_api.append_col(t, c, pos, ins, TYPE_bat, 0);
+       int res = store->storage_api.append_col(t, c, pos, ins, TYPE_bat);
        if (res != LOG_OK) /* the conflict case should never happen, but leave 
it here */
                throw(SQL, "sql.append", SQLSTATE(42000) "Append failed%s", res 
== LOG_CONFLICT ? " due to conflict with another transaction" : "");
        return MAL_SUCCEED;
@@ -1782,14 +1798,14 @@ mvc_append_wrap(Client cntxt, MalBlkPtr 
        const char *sname = *getArgReference_str(stk, pci, 2);
        const char *tname = *getArgReference_str(stk, pci, 3);
        const char *cname = *getArgReference_str(stk, pci, 4);
-       lng pos = *(lng*)getArgReference_lng(stk, pci, 5);
+       bat Pos = *getArgReference_bat(stk, pci, 5);
        ptr ins = getArgReference(stk, pci, 6);
        int tpe = getArgType(mb, pci, 6), log_res = LOG_OK;
        sql_schema *s;
        sql_table *t;
        sql_column *c;
        sql_idx *i;
-       BAT *b = 0;
+       BAT *b = NULL, *pos = NULL;
 
        *res = 0;
        if ((msg = getSQLContext(cntxt, mb, &m, NULL)) != NULL)
@@ -1798,21 +1814,28 @@ mvc_append_wrap(Client cntxt, MalBlkPtr 
                return msg;
        if (tpe > GDKatomcnt)
                tpe = TYPE_bat;
-       if (tpe == TYPE_bat && (ins = BATdescriptor(*(bat *) ins)) == NULL)
+       if ((pos = BATdescriptor(Pos)) == NULL)
                throw(SQL, "sql.append", SQLSTATE(HY005) "Cannot access column 
descriptor %s.%s.%s",
                        sname,tname,cname);
+       if (tpe == TYPE_bat && (ins = BATdescriptor(*(bat *) ins)) == NULL) {
+               bat_destroy(pos);
+               throw(SQL, "sql.append", SQLSTATE(HY005) "Cannot access column 
descriptor %s.%s.%s",
+                       sname,tname,cname);
+       }
        if (ATOMextern(tpe) && !ATOMvarsized(tpe))
                ins = *(ptr *) ins;
        if ( tpe == TYPE_bat)
                b =  (BAT*) ins;
        s = mvc_bind_schema(m, sname);
        if (s == NULL) {
+               bat_destroy(pos);
                if (b)
                        BBPunfix(b->batCacheid);
                throw(SQL, "sql.append", SQLSTATE(3F000) "Schema missing 
%s",sname);
        }
        t = mvc_bind_table(m, s, tname);
        if (t == NULL) {
+               bat_destroy(pos);
                if (b)
                        BBPunfix(b->batCacheid);
                throw(SQL, "sql.append", SQLSTATE(42S02) "Table missing 
%s",tname);
@@ -1821,10 +1844,11 @@ mvc_append_wrap(Client cntxt, MalBlkPtr 
                BATmsync(b);
        sqlstore *store = m->session->tr->store;
        if (cname[0] != '%' && (c = mvc_bind_column(m, t, cname)) != NULL) {
-               log_res = store->storage_api.append_col(m->session->tr, c, 
(size_t)pos, ins, tpe, 1);
+               log_res = store->storage_api.append_col(m->session->tr, c, pos, 
ins, tpe);
        } else if (cname[0] == '%' && (i = mvc_bind_idx(m, s, cname + 1)) != 
NULL) {
-               log_res = store->storage_api.append_idx(m->session->tr, i, 
(size_t)pos, ins, tpe, 1);
+               log_res = store->storage_api.append_idx(m->session->tr, i, pos, 
ins, tpe);
        }
+       BBPunfix(pos->batCacheid);
        if (b)
                BBPunfix(b->batCacheid);
        if (log_res != LOG_OK) /* the conflict case should never happen, but 
leave it here */
@@ -4956,8 +4980,8 @@ static mel_func sql_init_funcs[] = {
  command("sql", "project", BATleftproject, false, "Last step of a left outer 
join, ie project the inner join (l,r) over the left input side (col)", 
args(1,4, batarg("",oid),batarg("col",oid),batarg("l",oid),batarg("r",oid))),
  command("sql", "getVersion", mvc_getVersion, false, "Return the database 
version identifier for a client.", args(1,2, arg("",lng),arg("clientid",int))),
  pattern("sql", "grow", mvc_grow_wrap, false, "Resize the tid column of a 
declared table.", args(1,3, arg("",int),batarg("tid",oid),argany("",1))),
- pattern("sql", "claim", mvc_claim_wrap, true, "Claims slots for appending 
rows.", args(1,5, 
arg("",lng),arg("mvc",int),arg("sname",str),arg("tname",str),arg("cnt",lng))),
- pattern("sql", "append", mvc_append_wrap, false, "Append to the column 
tname.cname (possibly optimized to replace the insert bat of tname.cname. 
Returns sequence number for order dependence.", args(1,7, arg("",int), 
arg("mvc",int),arg("sname",str),arg("tname",str),arg("cname",str),arg("offset",lng),argany("ins",0))),
+ pattern("sql", "claim", mvc_claim_wrap, true, "Claims slots for appending 
rows.", args(1,5, 
batarg("",oid),arg("mvc",int),arg("sname",str),arg("tname",str),arg("cnt",lng))),
+ pattern("sql", "append", mvc_append_wrap, false, "Append to the column 
tname.cname (possibly optimized to replace the insert bat of tname.cname. 
Returns sequence number for order dependence.", args(1,7, arg("",int), 
arg("mvc",int),arg("sname",str),arg("tname",str),arg("cname",str),batarg("offset",oid),argany("ins",0))),
  pattern("sql", "update", mvc_update_wrap, false, "Update the values of the 
column tname.cname. Returns sequence number for order dependence)", args(1,7, 
arg("",int), 
arg("mvc",int),arg("sname",str),arg("tname",str),arg("cname",str),argany("rids",0),argany("upd",0))),
 pattern("sql", "clear_table", mvc_clear_table_wrap, true, "Clear the table 
sname.tname.", args(1,3, arg("",lng),arg("sname",str),arg("tname",str))),
  pattern("sql", "tid", SQLtid, false, "Return a column with the valid tuple 
identifiers associated with the table sname.tname.", args(1,4, 
batarg("",oid),arg("mvc",int),arg("sname",str),arg("tname",str))),
  pattern("sql", "tid", SQLtid, false, "Return the tables tid column.", 
args(1,6, 
batarg("",oid),arg("mvc",int),arg("sname",str),arg("tname",str),arg("part_nr",int),arg("nr_parts",int))),
diff --git a/sql/backends/monet5/sql.h b/sql/backends/monet5/sql.h
--- a/sql/backends/monet5/sql.h
+++ b/sql/backends/monet5/sql.h
@@ -66,7 +66,7 @@ extern str SQLcatalog(Client cntxt, MalB
 extern str mvc_grow_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
 extern str mvc_claim_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
 extern str mvc_append_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
-extern str mvc_append_column(sql_trans *t, sql_column *c, size_t pos, BAT 
*ins);
+extern str mvc_append_column(sql_trans *t, sql_column *c, BAT *pos, BAT *ins);
 
 extern str mvc_update_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
 extern str mvc_bind_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
diff --git a/sql/backends/monet5/vaults/fits/fits.c 
b/sql/backends/monet5/vaults/fits/fits.c
--- a/sql/backends/monet5/vaults/fits/fits.c
+++ b/sql/backends/monet5/vaults/fits/fits.c
@@ -725,14 +725,16 @@ str FITSattach(Client cntxt, MalBlkPtr m
        }
 
        /* add row in the fits_files catalog table */
-       size_t pos = store->storage_api.claim_tab(m->session->tr, fits_fl, 1);
+       BAT *pos = store->storage_api.claim_tab(m->session->tr, fits_fl, 1);
+       if (!pos)
+               throw(MAL, "fits.attach", SQLSTATE(HY013) MAL_MALLOC_FAIL);
        col = mvc_bind_column(m, fits_fl, "id");
        fid = store->storage_api.count_col(tr, col, 1) + 1;
        store->storage_api.append_col(m->session->tr,
-               mvc_bind_column(m, fits_fl, "id"), pos, &fid, TYPE_int, 1);
+               mvc_bind_column(m, fits_fl, "id"), pos, &fid, TYPE_int);
        store->storage_api.append_col(m->session->tr,
-               mvc_bind_column(m, fits_fl, "name"), pos, fname, TYPE_str, 1);
-
+               mvc_bind_column(m, fits_fl, "name"), pos, fname, TYPE_str);
+       bat_destroy(pos);
        col = mvc_bind_column(m, fits_tbl, "id");
        tid = store->storage_api.count_col(tr, col, 1) + 1;
 
@@ -799,35 +801,41 @@ str FITSattach(Client cntxt, MalBlkPtr m
 
                fits_get_num_cols(fptr, &cnum, &status);
 
-               size_t pos = store->storage_api.claim_tab(m->session->tr, 
fits_tbl, 1);
-               store->storage_api.append_col(m->session->tr,
-                       mvc_bind_column(m, fits_tbl, "id"), pos, &tid, 
TYPE_int, 1);
+               BAT *pos = store->storage_api.claim_tab(m->session->tr, 
fits_tbl, 1);
+               if (!pos)
+                       throw(MAL, "fits.attach", SQLSTATE(HY013) 
MAL_MALLOC_FAIL);
                store->storage_api.append_col(m->session->tr,
-                       mvc_bind_column(m, fits_tbl, "name"), pos, tname_low, 
TYPE_str, 1);
+                       mvc_bind_column(m, fits_tbl, "id"), pos, &tid, 
TYPE_int);
                store->storage_api.append_col(m->session->tr,
-                       mvc_bind_column(m, fits_tbl, "columns"), pos, &cnum, 
TYPE_int, 1);
+                       mvc_bind_column(m, fits_tbl, "name"), pos, tname_low, 
TYPE_str);
+               store->storage_api.append_col(m->session->tr,
+                       mvc_bind_column(m, fits_tbl, "columns"), pos, &cnum, 
TYPE_int);
                store->storage_api.append_col(m->session->tr,
-                       mvc_bind_column(m, fits_tbl, "file_id"), pos, &fid, 
TYPE_int, 1);
+                       mvc_bind_column(m, fits_tbl, "file_id"), pos, &fid, 
TYPE_int);
                store->storage_api.append_col(m->session->tr,
-                       mvc_bind_column(m, fits_tbl, "hdu"), pos, &i, TYPE_int, 
1);
+                       mvc_bind_column(m, fits_tbl, "hdu"), pos, &i, TYPE_int);
                store->storage_api.append_col(m->session->tr,
-                       mvc_bind_column(m, fits_tbl, "date"), pos, tdate, 
TYPE_str, 1);
+                       mvc_bind_column(m, fits_tbl, "date"), pos, tdate, 
TYPE_str);
                store->storage_api.append_col(m->session->tr,
-                       mvc_bind_column(m, fits_tbl, "origin"), pos, orig, 
TYPE_str, 1);
+                       mvc_bind_column(m, fits_tbl, "origin"), pos, orig, 
TYPE_str);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to