Changeset: d04d0c17f9ec for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/d04d0c17f9ec
Modified Files:
README.rst
cmake/monetdb-defines.cmake
cmake/monetdb-findpackages.cmake
cmake/monetdb-options.cmake
monetdb_config.h.in
sql/backends/monet5/vaults/CMakeLists.txt
sql/server/rel_updates.c
Branch: parquet
Log Message:
TODO: beginning of Parquet implementation
diffs (123 lines):
diff --git a/README.rst b/README.rst
--- a/README.rst
+++ b/README.rst
@@ -79,6 +79,7 @@ SANITIZER Enable support for the G
SHP Enable support for ESRI Shapefiles
STRICT Enable strict compiler flags (default=ON for development
sources, OFF for tarball installation)
TESTING Enable support for testing
+PARQUET Enable support Apache Parquet files
WITH_BZ2 Include bz2 support
WITH_CMOCKA Include cmocka support (default=OFF)
WITH_CURL Include curl support
diff --git a/cmake/monetdb-defines.cmake b/cmake/monetdb-defines.cmake
--- a/cmake/monetdb-defines.cmake
+++ b/cmake/monetdb-defines.cmake
@@ -140,6 +140,7 @@ macro(monetdb_macro_variables)
set(HAVE_PROJ ${PROJ_FOUND})
set(HAVE_SNAPPY ${SNAPPY_FOUND})
set(HAVE_FITS ${CFITSIO_FOUND})
+ set(HAVE_PARQUET ${PARQUET_FOUND})
set(HAVE_VALGRIND ${VALGRIND_FOUND})
set(HAVE_NETCDF ${NETCDF_FOUND})
set(HAVE_READLINE ${READLINE_FOUND})
diff --git a/cmake/monetdb-findpackages.cmake b/cmake/monetdb-findpackages.cmake
--- a/cmake/monetdb-findpackages.cmake
+++ b/cmake/monetdb-findpackages.cmake
@@ -80,6 +80,23 @@ if(GEOM)
find_package(Geos)
endif()
+if(PARQUET)
+ find_package(PkgConfig REQUIRED)
+ pkg_search_module(GLIB REQUIRED glib-2.0)
+
+ include_directories(${GLIB_INCLUDE_DIRS})
+ link_directories(${GLIB_LIBRARY_DIRS})
+
+ add_definitions(${GLIB_CFLAGS_OTHER})
+
+ find_package(Arrow CONFIG REQUIRED)
+ find_package(Parquet CONFIG REQUIRED
+ PATHS ${Arrow_DIR}
+ NO_DEFAULT_PATH
+ )
+endif()
+
+
if(SHP)
if(NOT GEOS_FOUND)
message(STATUS "Disable SHP, geom module required for ESRI Shapefile
vault")
diff --git a/cmake/monetdb-options.cmake b/cmake/monetdb-options.cmake
--- a/cmake/monetdb-options.cmake
+++ b/cmake/monetdb-options.cmake
@@ -136,3 +136,7 @@ option(CMAKE_SUMMARY
option(CMAKE_UNITTESTS
"Build and run the unittest for the build system"
OFF)
+
+option(PARQUET
+ "Add support for Apache Parquet files"
+ OFF)
diff --git a/monetdb_config.h.in b/monetdb_config.h.in
--- a/monetdb_config.h.in
+++ b/monetdb_config.h.in
@@ -189,6 +189,7 @@
#cmakedefine HAVE_PROJ 1
#cmakedefine HAVE_SNAPPY 1
#cmakedefine HAVE_FITS 1
+#cmakedefine HAVE_PARQUET 1
#cmakedefine HAVE_VALGRIND 1
#cmakedefine HAVE_NETCDF 1
#cmakedefine HAVE_READLINE 1
diff --git a/sql/backends/monet5/vaults/CMakeLists.txt
b/sql/backends/monet5/vaults/CMakeLists.txt
--- a/sql/backends/monet5/vaults/CMakeLists.txt
+++ b/sql/backends/monet5/vaults/CMakeLists.txt
@@ -9,4 +9,5 @@
add_subdirectory(fits)
add_subdirectory(netcdf)
add_subdirectory(shp)
+add_subdirectory(parquet)
diff --git a/sql/server/rel_updates.c b/sql/server/rel_updates.c
--- a/sql/server/rel_updates.c
+++ b/sql/server/rel_updates.c
@@ -21,6 +21,7 @@
#include "sql_symbol.h"
#include "rel_prop.h"
+
static sql_exp *
insert_value(sql_query *query, sql_column *c, sql_rel **r, symbol *s, const
char* action)
{
@@ -1658,6 +1659,15 @@ copyfrom(sql_query *query, dlist *qname,
return NULL;
}
+ // Parquet file COPY INTO.
+ char *dot = strrchr(fname, '.');
+ if (dot && !strcmp(dot, ".parquet")) {
+ char *fn = ATOMformat(TYPE_str, fname);
+ sql_error(sql, 02, SQLSTATE(42000) "COPY INTO:
parquet copy into not implemented");
+ GDKfree(fn);
+ return NULL;
+ }
+
nrel = rel_import(sql, nt, tsep, rsep, ssep, ns, fname,
nr, offset, best_effort, fwf_widths, onclient, escape);
if (!rel)
@@ -1864,6 +1874,7 @@ copyto(sql_query *query, symbol *sq, con
exp_kind ek = {type_value, card_relation, TRUE};
sql_rel *r = rel_subquery(query, sq, ek);
+
if (!r)
return NULL;
r = rel_project(sql->sa, r, rel_projections(sql, r, NULL, 1, 0));
@@ -1971,6 +1982,7 @@ bincopyto(sql_query *query, symbol *qry,
return rel;
}
+
sql_exp *
rel_parse_val(mvc *m, sql_schema *sch, char *query, sql_subtype *tpe, char
emode, sql_rel *from)
{
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]