Changeset: 0665312ee4d1 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0665312ee4d1
Added Files:
        sql/backends/monet5/UDF/capi/50_capi.mal
        sql/backends/monet5/UDF/capi/Makefile.ag
        sql/backends/monet5/UDF/capi/Tests/All
        sql/backends/monet5/UDF/capi/Tests/capi00.sql
        sql/backends/monet5/UDF/capi/Tests/capi00.stable.err
        sql/backends/monet5/UDF/capi/Tests/capi00.stable.out
        sql/backends/monet5/UDF/capi/Tests/capi01.sql
        sql/backends/monet5/UDF/capi/Tests/capi01.stable.err
        sql/backends/monet5/UDF/capi/Tests/capi01.stable.out
        sql/backends/monet5/UDF/capi/Tests/capi02.sql
        sql/backends/monet5/UDF/capi/Tests/capi02.stable.err
        sql/backends/monet5/UDF/capi/Tests/capi02.stable.out
        sql/backends/monet5/UDF/capi/Tests/capi03.sql
        sql/backends/monet5/UDF/capi/Tests/capi03.stable.err
        sql/backends/monet5/UDF/capi/Tests/capi03.stable.out
        sql/backends/monet5/UDF/capi/Tests/capi04.sql
        sql/backends/monet5/UDF/capi/Tests/capi04.stable.err
        sql/backends/monet5/UDF/capi/Tests/capi04.stable.out
        sql/backends/monet5/UDF/capi/Tests/capi05.sql
        sql/backends/monet5/UDF/capi/Tests/capi05.stable.err
        sql/backends/monet5/UDF/capi/Tests/capi05.stable.out
        sql/backends/monet5/UDF/capi/Tests/capi06.sql
        sql/backends/monet5/UDF/capi/Tests/capi06.stable.err
        sql/backends/monet5/UDF/capi/Tests/capi06.stable.out
        sql/backends/monet5/UDF/capi/Tests/capi07.sql
        sql/backends/monet5/UDF/capi/Tests/capi07.stable.err
        sql/backends/monet5/UDF/capi/Tests/capi07.stable.out
        sql/backends/monet5/UDF/capi/Tests/capi08.sql
        sql/backends/monet5/UDF/capi/Tests/capi08.stable.err
        sql/backends/monet5/UDF/capi/Tests/capi08.stable.out
        sql/backends/monet5/UDF/capi/Tests/capi09.sql
        sql/backends/monet5/UDF/capi/Tests/capi09.stable.err
        sql/backends/monet5/UDF/capi/Tests/capi09.stable.out
        sql/backends/monet5/UDF/capi/Tests/capi10.sql
        sql/backends/monet5/UDF/capi/Tests/capi10.stable.err
        sql/backends/monet5/UDF/capi/Tests/capi10.stable.out
        sql/backends/monet5/UDF/capi/Tests/capi11.sql
        sql/backends/monet5/UDF/capi/Tests/capi11.stable.err
        sql/backends/monet5/UDF/capi/Tests/capi11.stable.out
        sql/backends/monet5/UDF/capi/Tests/capi12.sql
        sql/backends/monet5/UDF/capi/Tests/capi12.stable.err
        sql/backends/monet5/UDF/capi/Tests/capi12.stable.out
        sql/backends/monet5/UDF/capi/Tests/capi13.sql
        sql/backends/monet5/UDF/capi/Tests/capi13.stable.err
        sql/backends/monet5/UDF/capi/Tests/capi13.stable.out
        sql/backends/monet5/UDF/capi/capi.c
        sql/backends/monet5/UDF/capi/capi.h
        sql/backends/monet5/UDF/capi/capi.mal
        sql/backends/monet5/UDF/capi/cheader.h
        sql/backends/monet5/UDF/udf/80_udf.mal
        sql/backends/monet5/UDF/udf/80_udf.sql
        sql/backends/monet5/UDF/udf/80_udf_hge.mal
        sql/backends/monet5/UDF/udf/80_udf_hge.sql
        sql/backends/monet5/UDF/udf/Makefile.ag
        sql/backends/monet5/UDF/udf/README
        sql/backends/monet5/UDF/udf/Tests/All
        sql/backends/monet5/UDF/udf/Tests/udf-fuse.sql
        sql/backends/monet5/UDF/udf/Tests/udf-fuse.stable.err
        sql/backends/monet5/UDF/udf/Tests/udf-fuse.stable.out
        sql/backends/monet5/UDF/udf/Tests/udf-reverse.sql
        sql/backends/monet5/UDF/udf/Tests/udf-reverse.stable.err
        sql/backends/monet5/UDF/udf/Tests/udf-reverse.stable.out
        sql/backends/monet5/UDF/udf/udf.c
        sql/backends/monet5/UDF/udf/udf.h
        sql/backends/monet5/UDF/udf/udf.mal
        sql/backends/monet5/UDF/udf/udf_hge.mal
        sql/backends/monet5/UDF/udf/udf_impl.h
Removed Files:
        sql/backends/monet5/UDF/cudf/80_udf.mal
        sql/backends/monet5/UDF/cudf/80_udf.sql
        sql/backends/monet5/UDF/cudf/80_udf_hge.mal
        sql/backends/monet5/UDF/cudf/80_udf_hge.sql
        sql/backends/monet5/UDF/cudf/Makefile.ag
        sql/backends/monet5/UDF/cudf/README
        sql/backends/monet5/UDF/cudf/Tests/All
        sql/backends/monet5/UDF/cudf/Tests/udf-fuse.sql
        sql/backends/monet5/UDF/cudf/Tests/udf-fuse.stable.err
        sql/backends/monet5/UDF/cudf/Tests/udf-fuse.stable.out
        sql/backends/monet5/UDF/cudf/Tests/udf-reverse.sql
        sql/backends/monet5/UDF/cudf/Tests/udf-reverse.stable.err
        sql/backends/monet5/UDF/cudf/Tests/udf-reverse.stable.out
        sql/backends/monet5/UDF/cudf/udf.c
        sql/backends/monet5/UDF/cudf/udf.h
        sql/backends/monet5/UDF/cudf/udf.mal
        sql/backends/monet5/UDF/cudf/udf_hge.mal
        sql/backends/monet5/UDF/cudf/udf_impl.h
Modified Files:
        .hgignore
        buildtools/autogen/autogen.py
        clients/Tests/exports.stable.out
        gdk/gdk.h
        gdk/gdk_bbp.c
        gdk/gdk_utils.c
        gdk/gdk_utils.h
        monetdb5/modules/atoms/mtime.c
        monetdb5/modules/atoms/mtime.h
        monetdb5/optimizer/opt_mitosis.c
        monetdb5/optimizer/opt_prelude.c
        monetdb5/optimizer/opt_prelude.h
        monetdb5/optimizer/opt_support.c
        sql/backends/monet5/UDF/Makefile.ag
        sql/backends/monet5/sql_gencode.c
        sql/backends/monet5/sql_statement.c
        sql/include/sql_catalog.h
        sql/server/rel_psm.c
        sql/server/sql_parser.y
Branch: default
Log Message:

Merge with jitudf.


diffs (truncated from 5359 to 300 lines):

diff --git a/.hgignore b/.hgignore
--- a/.hgignore
+++ b/.hgignore
@@ -40,6 +40,7 @@ doc.lst
 install.lst
 monetdb_config.h.in
 *.pyc
+sql/backends/monet5/UDF/capi/cheader.text.h
 
 # files generated by various editors
 *.swp
diff --git a/buildtools/autogen/autogen.py b/buildtools/autogen/autogen.py
--- a/buildtools/autogen/autogen.py
+++ b/buildtools/autogen/autogen.py
@@ -166,3 +166,18 @@ OutList = map(filter, OutList)
 OutListFd = open("acout.in", "w")
 OutListFd.writelines(OutList)
 OutListFd.close()
+
+# Create cheader.text.h
+CAPIHeaderOriginal = open('sql/backends/monet5/UDF/capi/cheader.h', 'r');
+CAPIHeaderText = open('sql/backends/monet5/UDF/capi/cheader.text.h', 'w+');
+CAPIHeaderText.write("// This file was generated automatically through 
bootstrap.py.\n// Do not edit this file directly.\n")
+CAPIHeaderText.write('const char* cheader_header_text = \n');
+for line in CAPIHeaderOriginal:
+    if len(line.strip()) > 0:
+        CAPIHeaderText.write('"' + line.replace("\n", "").replace('"', 
'\\"').replace('\\', '\\\\') + '\\n"\n');
+CAPIHeaderText.write(";\n");
+CAPIHeaderOriginal.close();
+CAPIHeaderText.close();
+
+
+
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
@@ -234,6 +234,7 @@ char *GDKfilepath(int farmid, const char
 void GDKfree(void *blk);
 char *GDKgetenv(const char *name);
 int GDKgetenv_int(const char *name, int def);
+int GDKgetenv_istext(const char *name, const char *text);
 int GDKgetenv_istrue(const char *name);
 int GDKgetenv_isyes(const char *name);
 gdk_return GDKgetsem(int sem_id, int count, int *semid, str *msg);
@@ -1454,6 +1455,8 @@ str MTIMEepilogue(void *ret);
 str MTIMEepoch2int(int *res, const timestamp *ts);
 str MTIMEepoch2lng(lng *res, const timestamp *ts);
 str MTIMEepoch_bulk(bat *ret, bat *bid);
+void MTIMEfromdate(date n, int *d, int *m, int *y);
+void MTIMEfromtime(daytime n, int *hour, int *min, int *sec, int *msec);
 str MTIMElocal_timezone(lng *res);
 str MTIMEmonth_from_str(int *ret, const char *const *month);
 str MTIMEmonth_to_str(str *ret, const int *month);
@@ -1523,6 +1526,8 @@ str MTIMEtimestamp_to_str(str *s, const 
 str MTIMEtimestamp_year(int *ret, const timestamp *t);
 str MTIMEtimestamplng(timestamp *ret, const lng *sec);
 str MTIMEtimezone(tzone *z, const char *const *name);
+date MTIMEtodate(int day, int month, int year);
+daytime MTIMEtotime(int hour, int min, int sec, int msec);
 str MTIMEtzone_create(tzone *ret, const int *minutes);
 str MTIMEtzone_create_dst(tzone *ret, const int *minutes, const rule *start, 
const rule *end);
 str MTIMEtzone_create_lng(tzone *ret, const lng *minutes);
@@ -1963,11 +1968,15 @@ void batBeforeCall(ValPtr v, ValPtr bak)
 str batRef;
 str batalgebraRef;
 str batcalcRef;
+str batcapiRef;
 str batmalRef;
 str batmmathRef;
 str batmtimeRef;
 str batpyapi3Ref;
+str batpyapi3Ref;
 str batpyapiRef;
+str batpyapiRef;
+str batrapiRef;
 str batrapiRef;
 str batsqlRef;
 str batstrRef;
@@ -1991,6 +2000,7 @@ str bstream_read_wrapwrap(int *res, Bstr
 str calcRef;
 str callMAL(Client cntxt, MalBlkPtr mb, MalStkPtr *glb, ValPtr argv[], char 
debug);
 str callString(Client c, str s, int listing);
+str capiRef;
 str catalogRef;
 void chkDeclarations(MalBlkPtr mb);
 void chkFlow(MalBlkPtr mb);
@@ -2058,6 +2068,7 @@ str deleteRef;
 void deleteSymbol(Module scope, Symbol prg);
 str deltaRef;
 str dense_rankRef;
+str dense_rankRef;
 malType destinationType(MalBlkPtr mb, InstrPtr p);
 str diffRef;
 str differenceRef;
@@ -2429,8 +2440,12 @@ str putName(const char *nme);
 str putNameLen(const char *nme, size_t len);
 str putRef;
 str pyapi3Ref;
+str pyapi3Ref;
+str pyapi3mapRef;
 str pyapi3mapRef;
 str pyapiRef;
+str pyapiRef;
+str pyapimapRef;
 str pyapimapRef;
 int qtop;
 str queryRef;
@@ -2438,6 +2453,8 @@ str querylogRef;
 str raiseRef;
 str rangejoinRef;
 str rankRef;
+str rankRef;
+str rapiRef;
 str rapiRef;
 int readConsole(Client cntxt);
 MalStkPtr reallocGlobalStack(MalStkPtr s, int cnt);
@@ -2539,6 +2556,7 @@ str subcountRef;
 str subdeltaRef;
 str subdiffRef;
 str subeval_aggrRef;
+str subeval_aggrRef;
 str subgroupRef;
 str subgroupdoneRef;
 str subinterRef;
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -374,18 +374,22 @@
 #define GDKisalnum(c)  isalnum((unsigned char) (c))
 #define GDKisdigit(c)  isdigit((unsigned char) (c))
 
+#define TEMPDIR_NAME "TEMP_DATA"
+
 #ifndef NATIVE_WIN32
 #define BATDIR         "bat"
 #define DELDIR         "bat/DELETE_ME"
 #define BAKDIR         "bat/BACKUP"
 #define SUBDIR         "bat/BACKUP/SUBCOMMIT"
 #define LEFTDIR                "bat/LEFTOVERS"
+#define TEMPDIR     "bat/"TEMPDIR_NAME
 #else
 #define BATDIR         "bat"
 #define DELDIR         "bat\\DELETE_ME"
 #define BAKDIR         "bat\\BACKUP"
 #define SUBDIR         "bat\\BACKUP\\SUBCOMMIT"
 #define LEFTDIR                "bat\\LEFTOVERS"
+#define TEMPDIR     "bat\\"TEMPDIR_NAME
 #endif
 
 /*
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -1545,6 +1545,9 @@ BBPinit(void)
                BBPaddfarm(".", 1 << TRANSIENT);
        }
 
+       if (GDKremovedir(0, TEMPDIR) != GDK_SUCCEED)
+               GDKfatal("BBPinit: cannot remove directory %s\n", TEMPDIR);
+
        if (GDKremovedir(0, DELDIR) != GDK_SUCCEED)
                GDKfatal("BBPinit: cannot remove directory %s\n", DELDIR);
 
diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -101,25 +101,26 @@ GDKgetenv(const char *name)
 }
 
 int
-GDKgetenv_isyes(const char *name)
+GDKgetenv_istext(const char *name, const char* text)
 {
        char *val = GDKgetenv(name);
 
-       if (val && strcasecmp(val, "yes") == 0) {
+       if (val && strcasecmp(val, text) == 0) {
                return 1;
        }
        return 0;
 }
 
 int
+GDKgetenv_isyes(const char *name)
+{
+       return GDKgetenv_istext(name, "yes");
+}
+
+int
 GDKgetenv_istrue(const char *name)
 {
-       char *val = GDKgetenv(name);
-
-       if (val && strcasecmp(val, "true") == 0) {
-               return 1;
-       }
-       return 0;
+       return GDKgetenv_istext(name, "true");
 }
 
 int
diff --git a/gdk/gdk_utils.h b/gdk/gdk_utils.h
--- a/gdk/gdk_utils.h
+++ b/gdk/gdk_utils.h
@@ -17,8 +17,8 @@ gdk_export BAT *GDKval;
 
 gdk_export char *GDKgetenv(const char *name);
 
+gdk_export int GDKgetenv_istext(const char *name, const char* text);
 gdk_export int GDKgetenv_isyes(const char *name);
-
 gdk_export int GDKgetenv_istrue(const char *name);
 
 gdk_export int GDKgetenv_int(const char *name, int def);
diff --git a/monetdb5/modules/atoms/mtime.c b/monetdb5/modules/atoms/mtime.c
--- a/monetdb5/modules/atoms/mtime.c
+++ b/monetdb5/modules/atoms/mtime.c
@@ -3739,3 +3739,20 @@ MTIMEtimestamp_to_str(str *s, const time
        throw(MAL, "mtime.timestamp_to_str", "strftime support missing");
 #endif
 }
+
+
+date MTIMEtodate(int day, int month, int year) {
+       return todate(day, month, year);
+}
+
+void MTIMEfromdate(date n, int *d, int *m, int *y) {
+       fromdate(n, d, m, y);
+}
+
+daytime MTIMEtotime(int hour, int min, int sec, int msec) {
+       return totime(hour, min, sec, msec);
+}
+
+void MTIMEfromtime(daytime n, int *hour, int *min, int *sec, int *msec) {
+       fromtime(n, hour, min, sec, msec);
+}
diff --git a/monetdb5/modules/atoms/mtime.h b/monetdb5/modules/atoms/mtime.h
--- a/monetdb5/modules/atoms/mtime.h
+++ b/monetdb5/modules/atoms/mtime.h
@@ -261,4 +261,10 @@ mal_export int TYPE_timestamp;
 mal_export int TYPE_tzone;
 mal_export int TYPE_rule;
 
+mal_export date MTIMEtodate(int day, int month, int year);
+mal_export void MTIMEfromdate(date n, int *d, int *m, int *y);
+
+mal_export daytime MTIMEtotime(int hour, int min, int sec, int msec);
+mal_export void MTIMEfromtime(daytime n, int *hour, int *min, int *sec, int 
*msec);
+
 #endif /* _MONETTIME_H_ */
diff --git a/monetdb5/optimizer/opt_mitosis.c b/monetdb5/optimizer/opt_mitosis.c
--- a/monetdb5/optimizer/opt_mitosis.c
+++ b/monetdb5/optimizer/opt_mitosis.c
@@ -87,7 +87,7 @@ OPTmitosisImplementation(Client cntxt, M
                         getBatType(getArgType(mb, p, p->retc)) == TYPE_dbl))
                        return 0;
 
-               if (p->argc > 2 && (getModuleId(p) == rapiRef || getModuleId(p) 
== pyapiRef || getModuleId(p) == pyapi3Ref) && 
+               if (p->argc > 2 && (getModuleId(p) == capiRef || getModuleId(p) 
== rapiRef || getModuleId(p) == pyapiRef || getModuleId(p) == pyapi3Ref) && 
                        getFunctionId(p) == subeval_aggrRef)
                        return 0;
 
diff --git a/monetdb5/optimizer/opt_prelude.c b/monetdb5/optimizer/opt_prelude.c
--- a/monetdb5/optimizer/opt_prelude.c
+++ b/monetdb5/optimizer/opt_prelude.c
@@ -214,6 +214,11 @@ str pyapimapRef;
 str pyapiRef;
 str querylogRef;
 str queryRef;
+str capiRef;
+str batcapiRef;
+str subeval_aggrRef;
+str rankRef;
+str dense_rankRef;
 str raiseRef;
 str rangejoinRef;
 str rankRef;
@@ -507,6 +512,8 @@ void optimizerInit(void)
        batrapiRef = putName("batrapi");
     pyapiRef = putName("pyapi");
     batpyapiRef = putName("batpyapi");
+    capiRef = putName("capi");
+    batcapiRef = putName("batcapi");
     pyapimapRef = putName("batpyapimap");
     pyapi3Ref = putName("pyapi3");
     batpyapi3Ref = putName("batpyapi3");
diff --git a/monetdb5/optimizer/opt_prelude.h b/monetdb5/optimizer/opt_prelude.h
--- a/monetdb5/optimizer/opt_prelude.h
+++ b/monetdb5/optimizer/opt_prelude.h
@@ -214,6 +214,19 @@ mal_export  str pyapimapRef;
 mal_export  str pyapiRef;
 mal_export  str querylogRef;
 mal_export  str queryRef;
+mal_export  str rapiRef;
+mal_export  str batrapiRef;
+mal_export  str capiRef;
+mal_export  str batcapiRef;
+mal_export  str pyapiRef;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to