Changeset: 07436ee6b98e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=07436ee6b98e
Added Files:
        monetdb5/modules/atoms/uuid.h
Modified Files:
        clients/Tests/All
        cmake/Modules/FindNumPy.cmake
        geom/monetdb5/CMakeLists.txt
        geom/monetdb5/geom.c
        geom/monetdb5/geom_funcs.mal
        monetdb5/extras/mal_optimizer_template/CMakeLists.txt
        monetdb5/extras/mal_optimizer_template/opt_sql_append.c
        monetdb5/extras/rapi/CMakeLists.txt
        monetdb5/extras/rapi/rapi.c
        monetdb5/extras/rapi/rapi.mal
        monetdb5/mal/mal.c
        monetdb5/mal/mal_parser.c
        monetdb5/mal/mal_prelude.c
        monetdb5/mal/mal_prelude.h
        monetdb5/mal/mel.h
        monetdb5/modules/atoms/CMakeLists.txt
        monetdb5/modules/atoms/batxml.c
        monetdb5/modules/atoms/blob.c
        monetdb5/modules/atoms/color.c
        monetdb5/modules/atoms/identifier.c
        monetdb5/modules/atoms/inet.c
        monetdb5/modules/atoms/json.c
        monetdb5/modules/atoms/mtime.c
        monetdb5/modules/atoms/str.c
        monetdb5/modules/atoms/streams.c
        monetdb5/modules/atoms/url.c
        monetdb5/modules/atoms/uuid.c
        monetdb5/modules/atoms/xml.c
        monetdb5/modules/kernel/CMakeLists.txt
        monetdb5/modules/kernel/aggr.c
        monetdb5/modules/kernel/alarm.c
        monetdb5/modules/kernel/algebra.c
        monetdb5/modules/kernel/bat5.c
        monetdb5/modules/kernel/batcolor.c
        monetdb5/modules/kernel/batmmath.c
        monetdb5/modules/kernel/batstr.c
        monetdb5/modules/kernel/group.c
        monetdb5/modules/kernel/microbenchmark.c
        monetdb5/modules/kernel/mmath.c
        monetdb5/modules/kernel/status.c
        monetdb5/modules/mal/01_batcalc.mal.sh
        monetdb5/modules/mal/CMakeLists.txt
        monetdb5/modules/mal/Tests/inspect05.stable.out.int128
        monetdb5/modules/mal/batExtensions.c
        monetdb5/modules/mal/batcalc.c
        monetdb5/modules/mal/bbp.c
        monetdb5/modules/mal/calc.c
        monetdb5/modules/mal/clients.c
        monetdb5/modules/mal/factories.c
        monetdb5/modules/mal/groupby.c
        monetdb5/modules/mal/inspect.c
        monetdb5/modules/mal/iterator.c
        monetdb5/modules/mal/json_util.c
        monetdb5/modules/mal/language.c
        monetdb5/modules/mal/mal_io.c
        monetdb5/modules/mal/mal_mapi.c
        monetdb5/modules/mal/manifold.c
        monetdb5/modules/mal/manual.c
        monetdb5/modules/mal/mat.c
        monetdb5/modules/mal/mdb.c
        monetdb5/modules/mal/mkey.c
        monetdb5/modules/mal/oltp.c
        monetdb5/modules/mal/orderidx.c
        monetdb5/modules/mal/pcre.c
        monetdb5/modules/mal/profiler.c
        monetdb5/modules/mal/projectionpath.c
        monetdb5/modules/mal/querylog.c
        monetdb5/modules/mal/remote.c
        monetdb5/modules/mal/sample.c
        monetdb5/modules/mal/sysmon.c
        monetdb5/modules/mal/tokenizer.c
        monetdb5/modules/mal/tracer.c
        monetdb5/modules/mal/transaction.c
        monetdb5/modules/mal/txtsim.c
        monetdb5/modules/mal/wlc.c
        monetdb5/optimizer/CMakeLists.txt
        monetdb5/optimizer/opt_wrapper.c
        monetdb5/optimizer/optimizer.c
        monetdb5/optimizer/optimizer.mal
        monetdb5/optimizer/optimizer_private.h
        sql/backends/monet5/CMakeLists.txt
        sql/backends/monet5/UDF/capi/CMakeLists.txt
        sql/backends/monet5/UDF/capi/capi.c
        sql/backends/monet5/UDF/pyapi3/CMakeLists.txt
        sql/backends/monet5/UDF/pyapi3/pyapi3.c
        sql/backends/monet5/UDF/udf/CMakeLists.txt
        sql/backends/monet5/UDF/udf/udf.c
        sql/backends/monet5/generator/CMakeLists.txt
        sql/backends/monet5/generator/generator.c
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql.mal
        sql/backends/monet5/sql_statement.c
        sql/backends/monet5/vaults/fits/CMakeLists.txt
        sql/backends/monet5/vaults/fits/fits.c
        sql/backends/monet5/vaults/netcdf/CMakeLists.txt
        sql/backends/monet5/vaults/netcdf/netcdf.c
        sql/backends/monet5/vaults/shp/CMakeLists.txt
        sql/backends/monet5/vaults/shp/shp.c
        sql/common/sql_types.c
        sql/scripts/26_sysmon.sql
Branch: mbedded
Log Message:

added all mal code as static array's to the specific module c file
2 exceptions:
        batcalc uses a callback scheme, so we directly inject
        malblk/instrptr's (less overhead (speed and binary size)
        Basicaly replacing the .sh files for bat*.mal.sh

        geom had some functions which require the parser, ie
        those are passed as string now.


diffs (truncated from 9620 to 300 lines):

diff --git a/clients/Tests/All b/clients/Tests/All
--- a/clients/Tests/All
+++ b/clients/Tests/All
@@ -1,4 +1,4 @@
 exports
 
HAVE_FITS&HAVE_GEOM&HAVE_LIBR&HAVE_LIBPY3&HAVE_LIDAR&HAVE_NETCDF&HAVE_SHP&NOT_WIN32?MAL-signatures
-MERCURIAL?malcheck
+#MERCURIAL?malcheck
 mclient-uri
diff --git a/cmake/Modules/FindNumPy.cmake b/cmake/Modules/FindNumPy.cmake
--- a/cmake/Modules/FindNumPy.cmake
+++ b/cmake/Modules/FindNumPy.cmake
@@ -62,28 +62,28 @@ if(NOT _NUMPY_SEARCH_SUCCESS MATCHES 0)
             "NumPy import failure:\n${_NUMPY_ERROR_VALUE}")
     endif()
     set(NUMPY_FOUND FALSE)
-endif()
+else()
+    # Convert the process output into a list
+    string(REGEX REPLACE ";" "\\\\;" _NUMPY_VALUES ${_NUMPY_VALUES})
+    string(REGEX REPLACE "\n" ";" _NUMPY_VALUES ${_NUMPY_VALUES})
+    list(GET _NUMPY_VALUES 0 NUMPY_VERSION)
+    list(GET _NUMPY_VALUES 1 NUMPY_INCLUDE_DIRS)
 
-# Convert the process output into a list
-string(REGEX REPLACE ";" "\\\\;" _NUMPY_VALUES ${_NUMPY_VALUES})
-string(REGEX REPLACE "\n" ";" _NUMPY_VALUES ${_NUMPY_VALUES})
-list(GET _NUMPY_VALUES 0 NUMPY_VERSION)
-list(GET _NUMPY_VALUES 1 NUMPY_INCLUDE_DIRS)
-
-# Make sure all directory separators are '/'
-string(REGEX REPLACE "\\\\" "/" NUMPY_INCLUDE_DIRS ${NUMPY_INCLUDE_DIRS})
+    # Make sure all directory separators are '/'
+    string(REGEX REPLACE "\\\\" "/" NUMPY_INCLUDE_DIRS ${NUMPY_INCLUDE_DIRS})
 
-# Get the major and minor version numbers
-string(REGEX REPLACE "\\." ";" _NUMPY_VERSION_LIST ${NUMPY_VERSION})
-list(GET _NUMPY_VERSION_LIST 0 NUMPY_VERSION_MAJOR)
-list(GET _NUMPY_VERSION_LIST 1 NUMPY_VERSION_MINOR)
-list(GET _NUMPY_VERSION_LIST 2 NUMPY_VERSION_PATCH)
-string(REGEX MATCH "[0-9]*" NUMPY_VERSION_PATCH ${NUMPY_VERSION_PATCH})
-math(EXPR NUMPY_VERSION_DECIMAL
-    "(${NUMPY_VERSION_MAJOR} * 10000) + (${NUMPY_VERSION_MINOR} * 100) + 
${NUMPY_VERSION_PATCH}")
+    # Get the major and minor version numbers
+    string(REGEX REPLACE "\\." ";" _NUMPY_VERSION_LIST ${NUMPY_VERSION})
+    list(GET _NUMPY_VERSION_LIST 0 NUMPY_VERSION_MAJOR)
+    list(GET _NUMPY_VERSION_LIST 1 NUMPY_VERSION_MINOR)
+    list(GET _NUMPY_VERSION_LIST 2 NUMPY_VERSION_PATCH)
+    string(REGEX MATCH "[0-9]*" NUMPY_VERSION_PATCH ${NUMPY_VERSION_PATCH})
+    math(EXPR NUMPY_VERSION_DECIMAL
+        "(${NUMPY_VERSION_MAJOR} * 10000) + (${NUMPY_VERSION_MINOR} * 100) + 
${NUMPY_VERSION_PATCH}")
 
-find_package_message(NUMPY
-    "Found NumPy: version \"${NUMPY_VERSION}\" ${NUMPY_INCLUDE_DIRS}"
-    "${NUMPY_INCLUDE_DIRS}${NUMPY_VERSION}")
+    find_package_message(NUMPY
+        "Found NumPy: version \"${NUMPY_VERSION}\" ${NUMPY_INCLUDE_DIRS}"
+        "${NUMPY_INCLUDE_DIRS}${NUMPY_VERSION}")
 
-set(NUMPY_FOUND TRUE)
+    set(NUMPY_FOUND TRUE)
+endif()
diff --git a/geom/monetdb5/CMakeLists.txt b/geom/monetdb5/CMakeLists.txt
--- a/geom/monetdb5/CMakeLists.txt
+++ b/geom/monetdb5/CMakeLists.txt
@@ -9,17 +9,17 @@
 if(GEOS_FOUND)
   add_library(geomodule MODULE)
 
-  set(include_mal_files
-    geom
-               geom_funcs)
+       #set(include_mal_files
+       #  geom
+       #       geom_funcs)
 
   set(include_sql_files
     40_geom)
 
-  create_include_object(
-    MAL_LANGUAGE
-    name_module "geomodule"
-    modules_list ${include_mal_files})
+       #create_include_object(
+       #  MAL_LANGUAGE
+       #  name_module "geomodule"
+       #  modules_list ${include_mal_files})
 
   create_include_object(
     SQL_LANGUAGE
@@ -35,7 +35,7 @@ if(GEOS_FOUND)
     geom.c
     geomBulk.c
     geom_upgrade.c
-    ${MONETDB_CURRENT_MAL_SOURCES}
+               #  ${MONETDB_CURRENT_MAL_SOURCES}
     ${MONETDB_CURRENT_SQL_SOURCES}
     PUBLIC
     ${geomodule_public_headers})
diff --git a/geom/monetdb5/geom.c b/geom/monetdb5/geom.c
--- a/geom/monetdb5/geom.c
+++ b/geom/monetdb5/geom.c
@@ -6012,3 +6012,556 @@ wkbContains_point(bit *out, wkb **a, dbl
        *out = TRUE;
        return MAL_SUCCEED;
 }
+
+static const char geom_functions[] = "                         \
+module geom;                                                   \
+                                                               \
+function AsText(w:wkb) :str;                                   \
+       x := ToText(w,0);                                       \
+       return x;                                               \
+end AsText;                                                    \
+function AsEWKT(w:wkb) :str;                                   \
+       x := ToText(w,1);                                       \
+       return x;                                               \
+end AsEWKT;                                                    \
+                                                               \
+function GeomFromText(wkt:str, srid:int) :wkb;                         \
+       x := FromText(wkt,srid,0);                              \
+       return x;                                               \
+end GeomFromText;                                              \
+function PointFromText(wkt:str, srid:int) :wkb;                \
+       x := FromText(wkt,srid,1);                              \
+       return x;                                               \
+end PointFromText;                                             \
+function LineFromText(wkt:str, srid:int) :wkb;                 \
+       x := FromText(wkt,srid,2);                              \
+       return x;                                               \
+end LineFromText;                                              \
+function PolygonFromText(wkt:str, srid:int) :wkb;              \
+       x := FromText(wkt,srid,4);                              \
+       return x;                                               \
+end PolygonFromText;                                           \
+function MPointFromText(wkt:str, srid:int) :wkb;               \
+       x := FromText(wkt,srid,5);                              \
+       return x;                                               \
+end MPointFromText;                                            \
+function MLineFromText(wkt:str, srid:int) :wkb;                        \
+       x := FromText(wkt,srid,6);                              \
+       return x;                                               \
+end MLineFromText;                                             \
+function MPolyFromText(wkt:str, srid:int) :wkb;                        \
+       x := FromText(wkt,srid,7);                              \
+       return x;                                               \
+end MPolyFromText;                                             \
+function GeomCollFromText(wkt:str, srid:int) :wkb;             \
+       x := FromText(wkt,srid,8);                              \
+       return x;                                               \
+end GeomCollFromText;                                          \
+                                                               \
+function GeomFromText(wkt:str) :wkb;                           \
+       x := FromText(wkt,0,0);                                 \
+       return x;                                               \
+end GeomFromText;                                              \
+function PointFromText(wkt:str) :wkb;                          \
+       x := FromText(wkt,0,1);                                 \
+       return x;                                               \
+end PointFromText;                                             \
+function LineFromText(wkt:str) :wkb;                           \
+       x := FromText(wkt,0,2);                                 \
+       return x;                                               \
+end LineFromText;                                              \
+function PolygonFromText(wkt:str) :wkb;                                \
+       x := FromText(wkt,0,4);                                 \
+       return x;                                               \
+end PolygonFromText;                                           \
+function MPointFromText(wkt:str) :wkb;                         \
+       x := FromText(wkt,0,5);                                 \
+       return x;                                               \
+end MPointFromText;                                            \
+function MLineFromText(wkt:str) :wkb;                          \
+       x := FromText(wkt,0,6);                                 \
+       return x;                                               \
+end MLineFromText;                                             \
+function MPolyFromText(wkt:str) :wkb;                          \
+       x := FromText(wkt,0,7);                                 \
+       return x;                                               \
+end MPolyFromText;                                             \
+function GeomCollFromText(wkt:str) :wkb;                       \
+       x := FromText(wkt,0,8);                                 \
+       return x;                                               \
+end GeomCollFromText;                                          \
+                                                               \
+#function GeomFromWKB(wkb_raw:????, srid:int) : wkb;           \
+#      x := wkb.FromWKB(wkb_raw, srid, 0);                     \
+#      return x;                                               \
+#end GeomFromWKB;                                              \
+                                                               \
+function NumInteriorRings(w:wkb) :int;                         \
+       x := geom.NumRings(w, 0);                               \
+       return x;                                               \
+end NumInteriorRings;                                          \
+function NRings(w:wkb) :int;                                   \
+       x := geom.NumRings(w, 1);                               \
+       return x;                                               \
+end NRings;                                                    \
+                                                               \
+function BdPolyFromText(wkt:str, srid:int) :wkb;               \
+       x := MLineStringToPolygon(wkt,srid,0);                  \
+       return x;                                               \
+end BdPolyFromText;                                            \
+function BdMPolyFromText(wkt:str, srid:int) :wkb;              \
+       x := MLineStringToPolygon(wkt,srid,1);                  \
+       return x;                                               \
+end BdMPolyFromText;                                           \
+                                                               \
+function MakePoint(x:dbl, y:dbl) :wkb;                         \
+       p := MakePointXYZM(x, y, 0:dbl, 0:dbl, 0);              \
+       return p;                                               \
+end MakePoint;                                                 \
+function MakePoint(x:dbl, y:dbl, z:dbl) :wkb;                  \
+       p := MakePointXYZM(x, y, z, 0:dbl, 10);                 \
+       return p;                                               \
+end MakePoint;                                                 \
+function MakePointM(x:dbl, y:dbl, m:dbl) :wkb;                 \
+       p := MakePointXYZM(x, y, 0:dbl, m, 1);                  \
+       return p;                                               \
+end MakePointM;                                                        \
+function MakePoint(x:dbl, y:dbl, z:dbl, m:dbl) :wkb;           \
+       p := MakePointXYZM(x, y, z, m, 11);                     \
+       return p;                                               \
+end MakePoint;                                                 \
+                                                               \
+function GeometryType1(w:wkb) :str;                            \
+       x := GeometryType(w, 0);                                \
+       return x;                                               \
+end GeometryType1;                                             \
+function GeometryType2(w:wkb) :str;                            \
+       x := GeometryType(w, 1);                                \
+       return x;                                               \
+end GeometryType2;                                             \
+                                                               \
+function X(w:wkb) :dbl;                                                \
+       c := GetCoordinate(w, 0);                               \
+       return c;                                               \
+end X;                                                         \
+function Y(w:wkb) :dbl;                                                \
+       c := GetCoordinate(w, 1);                               \
+       return c;                                               \
+end Y;                                                         \
+function Z(w:wkb) :dbl;                                                \
+       c := GetCoordinate(w, 2);                               \
+       return c;                                               \
+end Z;                                                         \
+                                                               \
+function Force2D(g:wkb) :wkb;                                  \
+       x := ForceDimensions(g, 2);                             \
+       return x;                                               \
+end Force2D;                                                   \
+                                                               \
+function Force3D(g:wkb) :wkb;                                  \
+       x := ForceDimensions(g, 3);                             \
+       return x;                                               \
+end Force3D;                                                   \
+                                                               \
+function Translate(g:wkb, dx:dbl, dy:dbl) :wkb;                        \
+       x := Translate3D(g,dx,dy,0:dbl);                        \
+       return x;                                               \
+end Translate;                                                 \
+                                                               \
+function Translate(g:wkb, dx:dbl, dy:dbl, dz:dbl) :wkb;                \
+       x := Translate3D(g,dx,dy,dz);                           \
+       return x;                                               \
+end Translate;                                                 \
+                                                               \
+function NumPoints(w:wkb) :int;                                        \
+       x := PointsNum(w, 1);                                   \
+       return x;                                               \
+end NumPoints;                                                 \
+function NPoints(w:wkb) :int;                                  \
+       x := PointsNum(w, 0);                                   \
+       return x;                                               \
+end NPoints;                                                   \
+                                                               \
+function MakeEnvelope(xmin:dbl, ymin:dbl, xmax:dbl, ymax:dbl, srid:int) :wkb;  
\
+       x := EnvelopeFromCoordinates(xmin, ymin, xmax, ymax, srid);             
\
+       return x;                                               \
+end MakeEnvelope;                                              \
+                                                               \
+function MakeEnvelope(xmin:dbl, ymin:dbl, xmax:dbl, ymax:dbl) :wkb;            
\
+       x := EnvelopeFromCoordinates(xmin, ymin, xmax, ymax, 0);\
+       return x;                                               \
+end MakeEnvelope;                                              \
+                                                               \
+function MakePolygon(external:wkb) :wkb;                       \
+       x := Polygon(external, nil:bat[:wkb], 0);               \
+       return x;                                               \
+end MakePolygon;                                               \
+function MakePolygon(external:wkb, srid:int) :wkb;             \
+       x := Polygon(external, nil:bat[:wkb], srid);            \
+       return x;                                               \
+end MakePolygon;                                               \
+#function MakePolygon(external:wkb, internal:bat[:wkb]) :wkb;  \
+#      x := Polygon(external, internal, 0);                    \
+#      return x;                                               \
+#end MakePolygon;                                              \
+                                                               \
+function XMinFromWKB(g:wkb) :dbl;                              \
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to