Changeset: 24c2f2049622 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=24c2f2049622
Modified Files:
        sql/backends/monet5/vaults/lidar/75_lidar.sql
        sql/backends/monet5/vaults/lidar/lidar.c
        sql/backends/monet5/vaults/lidar/lidar.mal
Branch: data-vaults
Log Message:

[LiDAR]: Table name can now be specified during attach

SQL syntax:
CALL lidarattach('/path/to/las(z)/file', 'tablename');

MAL syntax:
lidar.attach("/path/to/las(z)/file":str, "tablename");


diffs (64 lines):

diff --git a/sql/backends/monet5/vaults/lidar/75_lidar.sql 
b/sql/backends/monet5/vaults/lidar/75_lidar.sql
--- a/sql/backends/monet5/vaults/lidar/75_lidar.sql
+++ b/sql/backends/monet5/vaults/lidar/75_lidar.sql
@@ -1,3 +1,4 @@
 create procedure lidarattach(fname string) external name lidar.attach;
+create procedure lidarattach(fname string, tname string) external name 
lidar.attach;
 create procedure lidarload(tname string) external name lidar.load;
 create procedure lidarexport(tname string, fname string, format string) 
external name lidar.export;
diff --git a/sql/backends/monet5/vaults/lidar/lidar.c 
b/sql/backends/monet5/vaults/lidar/lidar.c
--- a/sql/backends/monet5/vaults/lidar/lidar.c
+++ b/sql/backends/monet5/vaults/lidar/lidar.c
@@ -612,6 +612,7 @@ str LIDARattach(Client cntxt, MalBlkPtr 
        LASReaderH reader = NULL;
        LASHeaderH header = NULL;
        str fname = *getArgReference_str(stk, pci, 1);
+       str tname = NULL;
        oid fid, tid, cid, rid = oid_nil;
        char *tname_low = NULL, *s, bname[BUFSIZ];
        char *p;
@@ -628,6 +629,19 @@ str LIDARattach(Client cntxt, MalBlkPtr 
        double ScaleX, ScaleY, ScaleZ, OffsetX, OffsetY, OffsetZ;
        double MinX, MinY, MinZ, MaxX, MaxY, MaxZ;
 
+       if (pci->argc == 3) {
+               tname = *getArgReference_str(stk, pci, 2);
+       }
+       else if (pci->argc == 2) {
+               tname = fname;
+       }
+
+#ifndef NDEBUG
+       if (tname != NULL) {
+               fprintf(stderr, "Initial table name: %s\n", tname);
+       }
+#endif
+
        if ((msg = getSQLContext(cntxt, mb, &m, NULL)) != MAL_SUCCEED)
                return msg;
        if ((msg = checkSQLContext(cntxt)) != MAL_SUCCEED)
@@ -696,8 +710,8 @@ str LIDARattach(Client cntxt, MalBlkPtr 
        tid = store_funcs.count_col(tr, col, 1) + 1;
 
        /* extract the file name from the absolute path */
-       if ((s = strrchr(fname, DIR_SEP)) == NULL)
-               s = fname;
+       if ((s = strrchr(tname, DIR_SEP)) == NULL)
+               s = tname;
        else
                s++;
        strcpy(bname, s);
diff --git a/sql/backends/monet5/vaults/lidar/lidar.mal 
b/sql/backends/monet5/vaults/lidar/lidar.mal
--- a/sql/backends/monet5/vaults/lidar/lidar.mal
+++ b/sql/backends/monet5/vaults/lidar/lidar.mal
@@ -14,6 +14,10 @@ pattern attach(fname:str):void
 address LIDARattach
 comment "Open a LIDAR file and return catalog of the table HDUs";
 
+pattern attach(fname:str, tname:str):void
+address LIDARattach
+comment "Attach to a specific table"
+
 pattern load(tablename:str):void
 address LIDARloadTable
 comment "Load a LIDAR table from an attached file";
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to