Changeset: 53d909fbfe90 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/53d909fbfe90
Modified Files:
        sql/backends/monet5/vaults/shp/75_shp.sql
        sql/backends/monet5/vaults/shp/shp.c
Branch: sphload-onclient
Log Message:

Adds optional onclient arg in shpload procedure WIP


diffs (64 lines):

diff --git a/sql/backends/monet5/vaults/shp/75_shp.sql 
b/sql/backends/monet5/vaults/shp/75_shp.sql
--- a/sql/backends/monet5/vaults/shp/75_shp.sql
+++ b/sql/backends/monet5/vaults/shp/75_shp.sql
@@ -4,5 +4,13 @@
 --
 -- Copyright 1997 - July 2008 CWI, August 2008 - 2022 MonetDB B.V.
 
-create procedure shpload(fname string, schemaname string, tablename string) 
external name shp.load;
-create procedure shpload(fname string, tablename string) external name 
shp.load;
+create procedure shpload(fname string, schemaname string, tablename string)
+    external name shp.load;
+create procedure shpload(fname string, schemaname string, tablename string, 
onclient bool)
+    external name shp.load;
+
+create procedure shpload(fname string, tablename string)
+    external name shp.load;
+create procedure shpload(fname string, tablename string, onclient bool)
+    external name shp.load;
+
diff --git a/sql/backends/monet5/vaults/shp/shp.c 
b/sql/backends/monet5/vaults/shp/shp.c
--- a/sql/backends/monet5/vaults/shp/shp.c
+++ b/sql/backends/monet5/vaults/shp/shp.c
@@ -386,7 +386,8 @@ unfree:
        return msg;
 }
 
-static str SHPloadInternal (Client cntxt, MalBlkPtr mb, str filename, str 
schemaname, str tablename) {
+static str SHPloadInternal (Client cntxt, MalBlkPtr mb, str filename, str 
schemaname, str tablename, bool onclient) {
+       (void) onclient;
        str msg = MAL_SUCCEED;
        mvc *m = NULL;
        sql_schema *sch = NULL;
@@ -456,20 +457,28 @@ str SHPloadSchema(Client cntxt, MalBlkPt
        str schemaname = *(str *)getArgReference(stk, pci, 2);
        /* Output table name (argument 3) */
        str tablename = *(str *)getArgReference(stk, pci, 3);
-       return SHPloadInternal(cntxt,mb,filename,schemaname,tablename);
+       /* On client flag (argument 4) */
+       bit onclient = pci->argc == 5 ? *getArgReference_bit(stk, pci, 4) : 
false;
+
+       return SHPloadInternal(cntxt, mb, filename, schemaname, tablename, 
onclient);
 }
 
 str SHPload(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) {
        /* Shapefile name (argument 1) */
        str filename = *(str *)getArgReference(stk, pci, 1);
-       /* Output table name (argument 3) */
+       /* Output table name (argument 2) */
        str tablename = *(str *)getArgReference(stk, pci, 2);
-       return SHPloadInternal(cntxt,mb,filename,"sys",tablename);
+       /* On client flag (argument 3) */
+       bit onclient = pci->argc == 4 ? *getArgReference_bit(stk, pci, 3) : 
false;
+
+       return SHPloadInternal(cntxt, mb, filename, "sys", tablename, onclient);
 }
 
 #include "mel.h"
 static mel_func shp_init_funcs[] = {
+       pattern("shp", "load", SHPloadSchema, false, "Import an ESRI Shapefile 
into a new table, on a certain schema", args(1, 5, arg("", void), 
arg("filename", str), arg("schemaname", str), arg("tablename", str), 
arg("onclientFlag", bit))),
        pattern("shp", "load", SHPloadSchema, false, "Import an ESRI Shapefile 
into a new table, on a certain schema", args(1, 4, arg("", void), 
arg("filename", str), arg("schemaname", str), arg("tablename", str))),
+       pattern("shp", "load", SHPload, false, "Import an ESRI Shapefile into a 
new table, on the sys schema", args(1, 4, arg("", void), arg("filename", str), 
arg("tablename", str), arg("onclientFlag", bit))),
        pattern("shp", "load", SHPload, false, "Import an ESRI Shapefile into a 
new table, on the sys schema", args(1, 3, arg("", void), arg("filename", str), 
arg("tablename", str))),
        {.imp = NULL}};
 #include "mal_import.h"
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to