Changeset: 7de3fb6be10c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/7de3fb6be10c
Modified Files:
        sql/backends/monet5/vaults/parquet/parquet.c
        sql/backends/monet5/vaults/parquet/parquet.h
        sql/server/rel_select.c
Branch: parquet
Log Message:

improve pointer stuff


diffs (82 lines):

diff --git a/sql/backends/monet5/vaults/parquet/parquet.c 
b/sql/backends/monet5/vaults/parquet/parquet.c
--- a/sql/backends/monet5/vaults/parquet/parquet.c
+++ b/sql/backends/monet5/vaults/parquet/parquet.c
@@ -7,19 +7,26 @@
 #include <arrow-glib/arrow-glib.h>
 #include <parquet-glib/metadata.h>
 
-parquet_file open_file(char* filename) {
+
+extern void *GDKmalloc(size_t size); /* FIXME */
+
+parquet_file *open_file(char* filename) {
     GParquetArrowFileReader *reader;
-    GError *error;
+    GError *g_error;
+    char* error = NULL;
   
-    reader = gparquet_arrow_file_reader_new_path(filename, &error);
+    reader = gparquet_arrow_file_reader_new_path(filename, &g_error);
 
     if(!reader) {
-        printf("%s", error->message);
-        /* TODO: Throw a SQLState Error. */
         reader = NULL;
+        error = g_error->message;
     }
 
-    parquet_file file = { filename, reader };
+    parquet_file *file = GDKmalloc(sizeof(parquet_file));
+
+    file->filename = filename;
+    file->reader = reader;
+    file->error = error;
 
     return file;
 }
@@ -43,4 +50,4 @@ parquet_table_metadata get_table_metadat
     parquet_table_metadata metadata = {"foo", n_rows};
 
     return metadata;
-}
+}
\ No newline at end of file
diff --git a/sql/backends/monet5/vaults/parquet/parquet.h 
b/sql/backends/monet5/vaults/parquet/parquet.h
--- a/sql/backends/monet5/vaults/parquet/parquet.h
+++ b/sql/backends/monet5/vaults/parquet/parquet.h
@@ -6,6 +6,7 @@
 typedef struct parquet_file {
     char* filename;
     GParquetArrowFileReader *reader;
+    char* error;
 } parquet_file;
 
 typedef struct parquet_table_metadata {
@@ -14,7 +15,7 @@ typedef struct parquet_table_metadata {
 } parquet_table_metadata;
 
 /* Opens the file, and returns a struct containing the reader. */
-parquet_file open_file(char* filename);
+parquet_file *open_file(char* filename);
 
 parquet_table_metadata get_table_metadata(parquet_file *file);
 
diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -547,8 +547,13 @@ file_loader_add_table_column_types(sql_s
        (void)sa;
        (void)e;
 
-       parquet_file file = open_file(filename);
-       get_table_metadata(&file);
+       parquet_file *file = open_file(filename);
+
+       if(file->error) {
+               return file->error;
+       }
+
+       get_table_metadata(file);
 
        /* ext -> call back */
        /*
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to