Changeset: 0995f26ef69a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/0995f26ef69a
Removed Files:
        sql/backends/monet5/UDF/udf/udf.h
        sql/backends/monet5/vaults/fits/fits.h
        sql/backends/monet5/vaults/netcdf/netcdf_vault.h
        sql/backends/monet5/vaults/shp/shp.h
Modified Files:
        clients/Tests/exports.stable.out
        common/utils/ripemd160.h
        geom/monetdb5/geom.c
        geom/monetdb5/geom.h
        geom/monetdb5/geom_atoms.h
        monetdb5/mal/mal_scenario.h
        monetdb5/modules/atoms/xml.h
        monetdb5/modules/kernel/group.h
        monetdb5/optimizer/opt_support.h
        sql/backends/monet5/UDF/pyapi3/conversion.h
        sql/backends/monet5/UDF/pyapi3/pyapi.h
        sql/backends/monet5/UDF/pyapi3/pyheader.h
        sql/backends/monet5/UDF/pyapi3/pytypes.h
        sql/backends/monet5/UDF/udf/CMakeLists.txt
        sql/backends/monet5/UDF/udf/udf.c
        sql/backends/monet5/UDF/udf/udf_impl.h
        sql/backends/monet5/rel_bin.h
        sql/backends/monet5/sql_execute.h
        sql/backends/monet5/sql_result.h
        sql/backends/monet5/sql_scenario.h
        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/server/rel_remote.h
        sql/server/rel_updates.h
Branch: default
Log Message:

Declare all extern functions in not installed include files as not visible.
Also do not export functions from vaults and udfs that are dynamically
loaded into the server since that is no longer (and hasn't been for some
years) the interface by which they get called.


diffs (truncated from 1975 to 300 lines):

diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -1368,50 +1368,6 @@ uint16_t *utf8toutf16(const char *src);
 int winerror(int);
 
 # sql
-char *BatType_Format(int);
-int BatType_ToPyType(int);
-str ConvertFromSQLType(allocator *, Client ctx, BAT *b, sql_subtype 
*sql_subtype, BAT **ret_bat, int *ret_type);
-str ConvertToSQLType(Client cntxt, BAT *b, sql_subtype *sql_subtype, BAT 
**ret_bat, int *ret_type);
-bit ConvertableSQLType(sql_subtype *sql_subtype);
-str FITSattach(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str FITSdir(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str FITSdirpat(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str FITSexportTable(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str FITSloadTable(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str FITStest(Client ctx, int *res, str *fname);
-bit IsStandardBATType(int type);
-str NCDFattach(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str NCDFimportVarStmt(Client ctx, str *sciqlstmt, str *fname, int *varid);
-str NCDFimportVariable(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
-str NCDFtest(Client ctx, int *vars, str *fname);
-str PYAPI3PyAPIevalAggr(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
-str PYAPI3PyAPIevalAggrMap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
-str PYAPI3PyAPIevalLoader(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
-str PYAPI3PyAPIevalStd(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
-str PYAPI3PyAPIevalStdMap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
-PyObject *PyArrayObject_FromBAT(allocator *, Client ctx, PyInput *input_bat, 
size_t start, size_t end, char **return_message, bool copy);
-PyObject *PyArrayObject_FromScalar(PyInput *input_scalar, char 
**return_message);
-PyObject *PyDict_CheckForConversion(PyObject *pResult, int expected_columns, 
char **retcol_names, char **return_message);
-char *PyError_CreateException(char *error_text, char *pycall);
-PyObject *PyMaskedArray_FromBAT(allocator *, Client ctx, PyInput *inp, size_t 
t_start, size_t t_end, char **return_message, bool copy);
-PyObject *PyNullMask_FromBAT(BAT *b, size_t start, size_t end);
-PyObject *PyObject_CheckForConversion(PyObject *pResult, int expected_columns, 
int *actual_columns, char **return_message);
-BAT *PyObject_ConvertToBAT(allocator *, Client ctx, PyReturn *ret, sql_subtype 
*type, int bat_type, int index, oid seqbase, char **return_message, bool copy);
-str PyObject_GetReturnValues(PyObject *obj, PyReturn *return_value);
-bool PyObject_PreprocessObject(PyObject *pResult, PyReturn *pyreturn_values, 
int column_count, char **return_message);
-char *PyType_Format(int);
-bool PyType_IsDouble(int);
-bool PyType_IsFloat(int);
-bool PyType_IsInteger(int);
-bool PyType_IsLazyArray(PyObject *object);
-bool PyType_IsNumpyArray(PyObject *object);
-bool PyType_IsNumpyMaskedArray(PyObject *object);
-bool PyType_IsPandasDataFrame(PyObject *object);
-bool PyType_IsPyScalar(PyObject *object);
-ssize_t PyType_Size(PyObject *obj);
-int PyType_ToBat(int);
-bool Python_ObtainGIL(void);
-bool Python_ReleaseGIL(bool);
 str RAstatement(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str RAstatement2(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str RAstatementEnd(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
@@ -1426,13 +1382,6 @@ str SQLinitClientFromMAL(Client c, const
 str SQLresetClient(Client c);
 str SQLstatementIntern(Client c, const char *expr, const char *nme, bit 
execute, bit output, res_table **result);
 str SQLtrans(mvc *m);
-char *UDFBATfuse(Client ctx, bat *ret, const bat *one, const bat *two);
-str UDFBATreverse(Client ctx, bat *ret, const bat *arg);
-char *UDFfuse_bte_sht(Client ctx, sht *ret, const bte *one, const bte *two);
-char *UDFfuse_int_lng(Client ctx, lng *ret, const int *one, const int *two);
-char *UDFfuse_lng_hge(Client ctx, hge *ret, const lng *one, const lng *two);
-char *UDFfuse_sht_int(Client ctx, int *ret, const sht *one, const sht *two);
-str UDFreverse(Client ctx, str *ret, const str *arg);
 str append_to_table_from_emit(Client cntxt, char *sname, char *tname, 
sql_emit_col *columns, size_t ncols);
 str batbte_dec2_bte(Client ctx, bat *res, const int *s1, const bat *v, const 
bat *sid);
 str batbte_dec2_dbl(Client ctx, bat *res, const int *s1, const bat *v, const 
bat *sid);
diff --git a/common/utils/ripemd160.h b/common/utils/ripemd160.h
--- a/common/utils/ripemd160.h
+++ b/common/utils/ripemd160.h
@@ -11,8 +11,6 @@
 #ifndef _SEEN_RIPEMD160_H
 #define _SEEN_RIPEMD160_H 1
 
-#include "mcrypt.h"                            /* for mutils_export */
-
 typedef struct RIPEMD160Context {
        uint32_t digest[5];
        uint8_t overflow[64];
@@ -22,10 +20,13 @@ typedef struct RIPEMD160Context {
 
 #define RIPEMD160_DIGEST_LENGTH 20
 
-void RIPEMD160Reset(RIPEMD160Context *ctxt);
+void RIPEMD160Reset(RIPEMD160Context *ctxt)
+       __attribute__((__visibility__("hidden")));
 void RIPEMD160Input(RIPEMD160Context *ctxt,
-                                       const uint8_t *bytes, unsigned 
bytecount);
+                                       const uint8_t *bytes, unsigned 
bytecount)
+       __attribute__((__visibility__("hidden")));
 void RIPEMD160Result(RIPEMD160Context *ctxt,
-                                        uint8_t 
digest[RIPEMD160_DIGEST_LENGTH]);
+                                        uint8_t 
digest[RIPEMD160_DIGEST_LENGTH])
+       __attribute__((__visibility__("hidden")));
 
 #endif
diff --git a/geom/monetdb5/geom.c b/geom/monetdb5/geom.c
--- a/geom/monetdb5/geom.c
+++ b/geom/monetdb5/geom.c
@@ -4871,9 +4871,6 @@ wkbNumGeometries(Client ctx, int *out, w
 
 /* TODO: Analyze these functions below (what's the dif from normal contain, is 
it unfinished?) */
 
-geom_export str wkbContains_point_bat(Client ctx, bat *out, wkb **a, bat 
*point_x, bat *point_y);
-geom_export str wkbContains_point(Client ctx, bit *out, wkb **a, dbl *point_x, 
dbl *point_y);
-
 static inline double
 isLeft(double P0x, double P0y, double P1x, double P1y, double P2x, double P2y)
 {
@@ -5046,7 +5043,7 @@ pnpolyWithHoles(bat *out, int nvert, dbl
 #define POLY_NUM_VERT 120
 #define POLY_NUM_HOLE 10
 
-str
+static str
 wkbContains_point_bat(Client ctx, bat *out, wkb **a, bat *point_x, bat 
*point_y)
 {
        allocator *ma = ctx->curprg->def->ma;
@@ -5165,7 +5162,7 @@ wkbContains_point_bat(Client ctx, bat *o
        return err;
 }
 
-str
+static str
 wkbContains_point(Client ctx, bit *out, wkb **a, dbl *point_x, dbl *point_y)
 {
        (void) ctx;
diff --git a/geom/monetdb5/geom.h b/geom/monetdb5/geom.h
--- a/geom/monetdb5/geom.h
+++ b/geom/monetdb5/geom.h
@@ -24,26 +24,22 @@
 #include <string.h>
 #include <time.h>
 
-#ifdef WIN32
-#ifndef LIBGEOM
-#define geom_export extern __declspec(dllimport)
-#else
-#define geom_export extern __declspec(dllexport)
-#endif
-#else
-#define geom_export extern
-#endif
-
-wkb * geos2wkb(allocator *, wkb **geomWKB, size_t *len, const GEOSGeometry 
*geosGeometry);
+extern wkb *geos2wkb(allocator *, wkb **geomWKB, size_t *len, const 
GEOSGeometry *geosGeometry)
+       __attribute__((__visibility__("hidden")));
 
 /* general functions */
-geom_export str geoHasZ(Client ctx, int* res, int* info);
-geom_export str geoHasM(Client ctx, int* res, int* info);
-geom_export str geoGetType(Client ctx, char** res, int* info, int* flag);
+extern str geoHasZ(Client ctx, int* res, int* info)
+       __attribute__((__visibility__("hidden")));
+extern str geoHasM(Client ctx, int* res, int* info)
+       __attribute__((__visibility__("hidden")));
+extern str geoGetType(Client ctx, char** res, int* info, int* flag)
+       __attribute__((__visibility__("hidden")));
 
 /* functions that are used when a column is added to an existing table */
-geom_export str mbrFromMBR(Client ctx, mbr **w, mbr **src);
-geom_export str wkbFromWKB(Client ctx, wkb **w, wkb **src);
+extern str mbrFromMBR(Client ctx, mbr **w, mbr **src)
+       __attribute__((__visibility__("hidden")));
+extern str wkbFromWKB(Client ctx, wkb **w, wkb **src)
+       __attribute__((__visibility__("hidden")));
 //Is it needed?? geom_export str wkbFromWKB_bat(bat* outBAT_id, bat* inBAT_id);
 
 /* The WKB we use is the EWKB used also in PostGIS
@@ -52,184 +48,306 @@ geom_export str wkbFromWKB(Client ctx, w
 
 /* gets a GEOSGeometry and returns the mbr of it
  * works only for 2D geometries */
-geom_export mbr* mbrFromGeos(const GEOSGeom geosGeometry);
+extern mbr* mbrFromGeos(const GEOSGeom geosGeometry)
+       __attribute__((__visibility__("hidden")));
 
 
-geom_export str wkbFromText(Client ctx, wkb **geomWKB, str *geomWKT, int* 
srid, int *tpe);
-geom_export str wkbFromText_bat(Client ctx, bat *outBAT_id, bat *inBAT_id, int 
*srid, int *tpe);
-geom_export str wkbFromText_bat_cand(Client ctx, bat *outBAT_id, bat 
*inBAT_id, bat *cand, int *srid, int *tpe);
+extern str wkbFromText(Client ctx, wkb **geomWKB, str *geomWKT, int* srid, int 
*tpe)
+       __attribute__((__visibility__("hidden")));
+extern str wkbFromText_bat(Client ctx, bat *outBAT_id, bat *inBAT_id, int 
*srid, int *tpe)
+       __attribute__((__visibility__("hidden")));
+extern str wkbFromText_bat_cand(Client ctx, bat *outBAT_id, bat *inBAT_id, bat 
*cand, int *srid, int *tpe)
+       __attribute__((__visibility__("hidden")));
 
-geom_export str wkbMLineStringToPolygon(Client ctx, wkb** geomWKB, str 
*geomWKT, int* srid, int* flag);
+extern str wkbMLineStringToPolygon(Client ctx, wkb** geomWKB, str *geomWKT, 
int* srid, int* flag)
+       __attribute__((__visibility__("hidden")));
 
 
 /* Basic Methods on Geometric objects (OGC) */
-geom_export str wkbDimension(Client ctx, int*, wkb**);
-geom_export str wkbDimension_bat(Client ctx, bat *inBAT_id, bat *outBAT_id);
+extern str wkbDimension(Client ctx, int*, wkb**)
+       __attribute__((__visibility__("hidden")));
+extern str wkbDimension_bat(Client ctx, bat *inBAT_id, bat *outBAT_id)
+       __attribute__((__visibility__("hidden")));
 
-geom_export str wkbGeometryType(Client ctx, char**, wkb**, int*);
-geom_export str wkbGeometryType_bat(Client ctx, bat *inBAT_id, bat *outBAT_id, 
int *flag);
+extern str wkbGeometryType(Client ctx, char**, wkb**, int*)
+       __attribute__((__visibility__("hidden")));
+extern str wkbGeometryType_bat(Client ctx, bat *inBAT_id, bat *outBAT_id, int 
*flag)
+       __attribute__((__visibility__("hidden")));
 
-geom_export str wkbGetSRID(Client ctx, int*, wkb**);
+extern str wkbGetSRID(Client ctx, int*, wkb**)
+       __attribute__((__visibility__("hidden")));
 //Envelope
-geom_export str wkbAsText(Client ctx, char **outTXT, wkb **inWKB, int 
*withSRID);
-geom_export str wkbAsText_bat(Client ctx, bat *inBAT_id, bat *outBAT_id, int 
*withSRID);
+extern str wkbAsText(Client ctx, char **outTXT, wkb **inWKB, int *withSRID)
+       __attribute__((__visibility__("hidden")));
+extern str wkbAsText_bat(Client ctx, bat *inBAT_id, bat *outBAT_id, int 
*withSRID)
+       __attribute__((__visibility__("hidden")));
 
-geom_export str wkbAsBinary(Client ctx, char**, wkb**);
+extern str wkbAsBinary(Client ctx, char**, wkb**)
+       __attribute__((__visibility__("hidden")));
 //geom_export str wkbFromBinary(Client ctx, wkb**, const char**);
-geom_export str wkbFromBinaryWithBuffer(allocator *ma, wkb **geomWKB, size_t 
*len, const char **inStr);
+extern str wkbFromBinaryWithBuffer(allocator *ma, wkb **geomWKB, size_t *len, 
const char **inStr)
+       __attribute__((__visibility__("hidden")));
 
-geom_export str wkbIsEmpty(Client ctx, bit*, wkb**);
-geom_export str wkbIsEmpty_bat(Client ctx, bat *inBAT_id, bat *outBAT_id);
+extern str wkbIsEmpty(Client ctx, bit*, wkb**)
+       __attribute__((__visibility__("hidden")));
+extern str wkbIsEmpty_bat(Client ctx, bat *inBAT_id, bat *outBAT_id)
+       __attribute__((__visibility__("hidden")));
 
-geom_export str wkbIsSimple(Client ctx, bit*, wkb**);
-geom_export str wkbIsSimple_bat(Client ctx, bat *inBAT_id, bat *outBAT_id);
+extern str wkbIsSimple(Client ctx, bit*, wkb**)
+       __attribute__((__visibility__("hidden")));
+extern str wkbIsSimple_bat(Client ctx, bat *inBAT_id, bat *outBAT_id)
+       __attribute__((__visibility__("hidden")));
 //Is3D
 //IsMeasured
-geom_export str wkbBoundary(Client ctx, wkb **outWKB, wkb **inWKB);
-geom_export str wkbBoundary_bat(Client ctx, bat *inBAT_id, bat *outBAT_id);
+extern str wkbBoundary(Client ctx, wkb **outWKB, wkb **inWKB)
+       __attribute__((__visibility__("hidden")));
+extern str wkbBoundary_bat(Client ctx, bat *inBAT_id, bat *outBAT_id)
+       __attribute__((__visibility__("hidden")));
 
 
 /* Methods for testing spatial relatioships between geometris (OGC) */
-geom_export str wkbEquals(Client ctx, bit*, wkb**, wkb**);
-geom_export str wkbDisjoint(Client ctx, bit*, wkb**, wkb**);
-geom_export str wkbIntersects(Client ctx, bit*, wkb**, wkb**);
-geom_export str wkbTouches(Client ctx, bit*, wkb**, wkb**);
-geom_export str wkbCrosses(Client ctx, bit*, wkb**, wkb**);
-geom_export str wkbWithin(Client ctx, bit*, wkb**, wkb**);
-geom_export str wkbContains(Client ctx, bit*, wkb**, wkb**);
-geom_export str wkbOverlaps(Client ctx, bit*, wkb**, wkb**);
-geom_export str wkbRelate(Client ctx, bit*, wkb**, wkb**, str*);
-geom_export str wkbCovers(Client ctx, bit *out, wkb **geomWKB_a, wkb 
**geomWKB_b);
-geom_export str wkbCoveredBy(Client ctx, bit *out, wkb **geomWKB_a, wkb 
**geomWKB_b);
-geom_export str wkbDWithin(Client ctx, bit*, wkb**, wkb**, dbl*);
-geom_export str wkbDWithinMbr(Client ctx, bit*, wkb**, wkb**, mbr**, mbr**, 
dbl*);
+extern str wkbEquals(Client ctx, bit*, wkb**, wkb**)
+       __attribute__((__visibility__("hidden")));
+extern str wkbDisjoint(Client ctx, bit*, wkb**, wkb**)
+       __attribute__((__visibility__("hidden")));
+extern str wkbIntersects(Client ctx, bit*, wkb**, wkb**)
+       __attribute__((__visibility__("hidden")));
+extern str wkbTouches(Client ctx, bit*, wkb**, wkb**)
+       __attribute__((__visibility__("hidden")));
+extern str wkbCrosses(Client ctx, bit*, wkb**, wkb**)
+       __attribute__((__visibility__("hidden")));
+extern str wkbWithin(Client ctx, bit*, wkb**, wkb**)
+       __attribute__((__visibility__("hidden")));
+extern str wkbContains(Client ctx, bit*, wkb**, wkb**)
+       __attribute__((__visibility__("hidden")));
+extern str wkbOverlaps(Client ctx, bit*, wkb**, wkb**)
+       __attribute__((__visibility__("hidden")));
+extern str wkbRelate(Client ctx, bit*, wkb**, wkb**, str*)
+       __attribute__((__visibility__("hidden")));
+extern str wkbCovers(Client ctx, bit *out, wkb **geomWKB_a, wkb **geomWKB_b)
+       __attribute__((__visibility__("hidden")));
+extern str wkbCoveredBy(Client ctx, bit *out, wkb **geomWKB_a, wkb **geomWKB_b)
+       __attribute__((__visibility__("hidden")));
+extern str wkbDWithin(Client ctx, bit*, wkb**, wkb**, dbl*)
+       __attribute__((__visibility__("hidden")));
+extern str wkbDWithinMbr(Client ctx, bit*, wkb**, wkb**, mbr**, mbr**, dbl*)
+       __attribute__((__visibility__("hidden")));
 
 //LocateAlong
 //LocateBetween
 
 //geom_export str wkbFromString(wkb**, str*);
 
-geom_export str wkbMakePoint(Client ctx, wkb**, dbl*, dbl*, dbl*, dbl*, int*);
-geom_export str wkbMakePoint_bat(Client ctx, bat*, bat*, bat*, bat*, bat*, 
int*);
+extern str wkbMakePoint(Client ctx, wkb**, dbl*, dbl*, dbl*, dbl*, int*)
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to