Changeset: a311d8db9067 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/a311d8db9067 Modified Files: gdk/gdk.h gdk/gdk_batop.c gdk/gdk_private.h sql/backends/monet5/rel_bin.c sql/backends/monet5/sql.c sql/backends/monet5/sql_cat.c sql/backends/monet5/sql_gencode.c sql/backends/monet5/sql_statement.c sql/backends/monet5/sql_upgrades.c sql/server/rel_dump.c sql/server/rel_optimizer.c sql/server/rel_rel.c sql/server/rel_rewriter.c sql/server/rel_schema.c sql/server/rel_select.c sql/server/sql_atom.c sql/server/sql_atom.h sql/storage/bat/bat_storage.c Branch: properties Log Message:
Merged with default diffs (truncated from 5320 to 300 lines): diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -824,3 +824,6 @@ 1cc77329e40543d12dd9de04cbeec50d442520e9 1cc77329e40543d12dd9de04cbeec50d442520e9 Jul2021_SP2_release e730f4981db58bb336d6b17a022eec95d9f0eae5 Jan2022_1 e730f4981db58bb336d6b17a022eec95d9f0eae5 Jan2022_release +34d6df33e954fe8fbee1cb3d4e2bde0bbd903d74 Jan2022_3 +e730f4981db58bb336d6b17a022eec95d9f0eae5 Jan2022_release +34d6df33e954fe8fbee1cb3d4e2bde0bbd903d74 Jan2022_release diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -88,7 +88,7 @@ monetdb_configure_misc() # Some custom target will need these setting. include(monetdb-custom-targets) -if(NOT ${CMAKE_INSTALL_PREFIX} STREQUAL "/usr" AND NOT ${CPACK_PACKAGING_INSTALL_PREFIX} STREQUAL "/") +if(NOT ${CMAKE_INSTALL_PREFIX} STREQUAL "/usr") SET(CMAKE_SKIP_BUILD_RPATH FALSE) SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}") diff --git a/ChangeLog.Jan2022 b/ChangeLog.Jan2022 --- a/ChangeLog.Jan2022 +++ b/ChangeLog.Jan2022 @@ -1,3 +1,6 @@ # ChangeLog file for devel # This file is updated with Maddlog +* Wed Jan 12 2022 Sjoerd Mullender <sjo...@acm.org> +- A couple of concurrency issues have been fixed. + diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -850,6 +850,23 @@ fi %endif %changelog +* Tue Jan 11 2022 Sjoerd Mullender <sjo...@acm.org> - 11.43.3-20220111 +- Rebuilt. +- GH#7215: ODBC Driver SQLStatistics returns duplicate rows/rows for other + tables + +* Tue Jan 11 2022 Sjoerd Mullender <sjo...@acm.org> - 11.43.3-20220111 +- gdk: On Windows, files and directories we create now get the attribute + FILE_ATTIBUTE_NOT_CONTENT_INDEXED, meaning that they should not be + indexed by indexing or search services. + +* Thu Jan 6 2022 Martin van Dinther <martin.van.dint...@monetdbsolutions.com> - 11.43.3-20220111 +- merovingian: Disabled logging into merovingian.log of next info message types: + - proxying client <host>:<port> for database '<dbname>' to <url> + - target connection is on local UNIX domain socket, passing on filedescriptor instead of proxying + These messages were written to the log file at each connection. In most + cases this information is not used. The disabling reduces the log file size. + * Mon Jan 03 2022 Sjoerd Mullender <sjo...@acm.org> - 11.43.1-20220103 - Rebuilt. - GH#7168: Loosing the documentation @@ -861,18 +878,6 @@ fi result set - GH#7202: DISTINCT does not work when sorting by additional columns -* Mon Jan 3 2022 Panagiotis Koutsourakis <kutsu...@monetdbsolutions.com> - 11.43.1-20220103 -- gdk: Implement string imprints (strimps for short) a pre-filter structure - for strings in order to accelerate LIKE queries. If a strimp exists - for a specific string column the strings are pre-filtered, rejecting - strings that cannot possibly match, before the more expensive and - accurate matching algorithms run. Strimps are created automatically - or using 'sys.strimp_create' with arguments the names of the schema, - table and column. Automatic strimp creation is controlled by two - user settable gdk options: 'gdk_use_strimps' (default value "no") and - 'gdk_strimps_threshold' (default value 1.000.000). See the manual for - more details. - * Wed Dec 15 2021 Pedro Ferreira <pedro.ferre...@monetdbsolutions.com> - 11.43.1-20220103 - monetdb5: The storage cleanup in the 11.41.5 (Jul2021) release made the OLTP optimizer pipeline obsolete, thus it was removed. diff --git a/NT/ChangeLog.Jan2022 b/NT/ChangeLog.Jan2022 new file mode 100644 --- /dev/null +++ b/NT/ChangeLog.Jan2022 @@ -0,0 +1,6 @@ +# ChangeLog file for NT +# This file is updated with Maddlog + +* Thu Jan 13 2022 Sjoerd Mullender <sjo...@acm.org> +- We now build Windows binaries using Visual Studio 2022. + diff --git a/clients/Tests/MAL-signatures.stable.out b/clients/Tests/MAL-signatures.stable.out --- a/clients/Tests/MAL-signatures.stable.out +++ b/clients/Tests/MAL-signatures.stable.out @@ -9219,7 +9219,6 @@ [ "rapi", "eval_aggr", "pattern rapi.eval_aggr(X_0:ptr, X_1:str, X_2:any...):any... ", "RAPIevalAggr;", "grouped aggregates through R" ] [ "rapi", "prelude", "command rapi.prelude():void ", "RAPIprelude;", "" ] [ "rapi", "subeval_aggr", "pattern rapi.subeval_aggr(X_0:ptr, X_1:str, X_2:any...):any... ", "RAPIevalAggr;", "grouped aggregates through R" ] -[ "remote", "assert", "pattern remote.assert(X_0:bit, X_1:str):void ", "RMTassert;", "Generate an exception when b==true" ] [ "remote", "batbincopy", "pattern remote.batbincopy():bat[:any] ", "RMTbincopyfrom;", "store the binary BAT data in the BBP and return as BAT" ] [ "remote", "batbincopy", "pattern remote.batbincopy(X_0:bat[:any]):void ", "RMTbincopyto;", "dump BAT b in binary form to the stream" ] [ "remote", "batload", "pattern remote.batload(X_0:any_1, X_1:int):bat[:any_1] ", "RMTbatload;", "create a BAT of the given type and size, and load values from the input stream" ] @@ -9600,10 +9599,6 @@ [ "streams", "readStr", "unsafe command streams.readStr(X_0:streams):str ", "mnstr_read_stringwrap;", "read string data from the stream" ] [ "streams", "writeInt", "unsafe command streams.writeInt(X_0:streams, X_1:int):void ", "mnstr_writeIntwrap;", "write data on the stream" ] [ "streams", "writeStr", "unsafe command streams.writeStr(X_0:streams, X_1:str):void ", "mnstr_write_stringwrap;", "write data on the stream" ] -[ "strimps", "mkstrimp", "unsafe pattern strimps.mkstrimp(X_0:bat[:str], X_1:bat[:oid]):void ", "PATstrimpCreate;", "construct the strimp a BAT" ] -[ "strimps", "strimpfilter", "pattern strimps.strimpfilter(X_0:str, X_1:str):bit ", "PATstrimpFilter;", "" ] -[ "strimps", "strimpfilterjoin", "pattern strimps.strimpfilterjoin(X_0:str, X_1:any, X_2:any, X_3:any, X_4:any, X_5:any) (X_6:bat[:oid], X_7:bat[:str]) ", "PATstrimpFilter;", "" ] -[ "strimps", "strimpfilterselect", "pattern strimps.strimpfilterselect(X_0:bat[:str], X_1:bat[:oid], X_2:str, X_3:bit):bat[:oid] ", "PATstrimpFilterSelect;", "" ] [ "sysmon", "pause", "unsafe pattern sysmon.pause(X_0:int):void ", "SYSMONpause;", "Suspend a running query" ] [ "sysmon", "pause", "unsafe pattern sysmon.pause(X_0:lng):void ", "SYSMONpause;", "Suspend a running query" ] [ "sysmon", "pause", "unsafe pattern sysmon.pause(X_0:sht):void ", "SYSMONpause;", "Suspend a running query" ] diff --git a/clients/Tests/MAL-signatures.stable.out.int128 b/clients/Tests/MAL-signatures.stable.out.int128 --- a/clients/Tests/MAL-signatures.stable.out.int128 +++ b/clients/Tests/MAL-signatures.stable.out.int128 @@ -12519,7 +12519,6 @@ [ "rapi", "eval_aggr", "pattern rapi.eval_aggr(X_0:ptr, X_1:str, X_2:any...):any... ", "RAPIevalAggr;", "grouped aggregates through R" ] [ "rapi", "prelude", "command rapi.prelude():void ", "RAPIprelude;", "" ] [ "rapi", "subeval_aggr", "pattern rapi.subeval_aggr(X_0:ptr, X_1:str, X_2:any...):any... ", "RAPIevalAggr;", "grouped aggregates through R" ] -[ "remote", "assert", "pattern remote.assert(X_0:bit, X_1:str):void ", "RMTassert;", "Generate an exception when b==true" ] [ "remote", "batbincopy", "pattern remote.batbincopy():bat[:any] ", "RMTbincopyfrom;", "store the binary BAT data in the BBP and return as BAT" ] [ "remote", "batbincopy", "pattern remote.batbincopy(X_0:bat[:any]):void ", "RMTbincopyto;", "dump BAT b in binary form to the stream" ] [ "remote", "batload", "pattern remote.batload(X_0:any_1, X_1:int):bat[:any_1] ", "RMTbatload;", "create a BAT of the given type and size, and load values from the input stream" ] @@ -12921,10 +12920,6 @@ [ "streams", "readStr", "unsafe command streams.readStr(X_0:streams):str ", "mnstr_read_stringwrap;", "read string data from the stream" ] [ "streams", "writeInt", "unsafe command streams.writeInt(X_0:streams, X_1:int):void ", "mnstr_writeIntwrap;", "write data on the stream" ] [ "streams", "writeStr", "unsafe command streams.writeStr(X_0:streams, X_1:str):void ", "mnstr_write_stringwrap;", "write data on the stream" ] -[ "strimps", "mkstrimp", "unsafe pattern strimps.mkstrimp(X_0:bat[:str], X_1:bat[:oid]):void ", "PATstrimpCreate;", "construct the strimp a BAT" ] -[ "strimps", "strimpfilter", "pattern strimps.strimpfilter(X_0:str, X_1:str):bit ", "PATstrimpFilter;", "" ] -[ "strimps", "strimpfilterjoin", "pattern strimps.strimpfilterjoin(X_0:str, X_1:any, X_2:any, X_3:any, X_4:any, X_5:any) (X_6:bat[:oid], X_7:bat[:str]) ", "PATstrimpFilter;", "" ] -[ "strimps", "strimpfilterselect", "pattern strimps.strimpfilterselect(X_0:bat[:str], X_1:bat[:oid], X_2:str, X_3:bit):bat[:oid] ", "PATstrimpFilterSelect;", "" ] [ "sysmon", "pause", "unsafe pattern sysmon.pause(X_0:int):void ", "SYSMONpause;", "Suspend a running query" ] [ "sysmon", "pause", "unsafe pattern sysmon.pause(X_0:lng):void ", "SYSMONpause;", "Suspend a running query" ] [ "sysmon", "pause", "unsafe pattern sysmon.pause(X_0:sht):void ", "SYSMONpause;", "Suspend a running query" ] 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 @@ -149,6 +149,7 @@ BAT *BATgroupvariance_sample(BAT *b, BAT BUN BATgrows(BAT *b); BUN BATguess_uniques(BAT *b, struct canditer *ci); gdk_return BAThash(BAT *b); +bool BAThasstrimps(BAT *b); void BAThseqbase(BAT *b, oid o); gdk_return BATimprints(BAT *b); BAT *BATintersect(BAT *l, BAT *r, BAT *sl, BAT *sr, bool nil_matches, bool max_one, BUN estimate); @@ -393,8 +394,8 @@ BUN ORDERfndlast(BAT *b, Heap *oidxh, co BUN SORTfnd(BAT *b, const void *v); BUN SORTfndfirst(BAT *b, const void *v); BUN SORTfndlast(BAT *b, const void *v); -gdk_return STRMPappendBitstring(BAT *b, const char *s); gdk_return STRMPcreate(BAT *b, BAT *s); +void STRMPdestroy(BAT *b); BAT *STRMPfilter(BAT *b, BAT *s, const char *q); MT_Id THRcreate(void (*f)(void *), void *arg, enum MT_thr_detach d, const char *name); void *THRdata[THREADDATA]; @@ -1454,6 +1455,323 @@ char *monetdbe_result_fetch(monetdbe_res char *monetdbe_set_autocommit(monetdbe_database dbhdl, int value); const char *monetdbe_version(void); +# sql +char *BatType_Format(int); +int BatType_ToPyType(int); +str ConvertFromSQLType(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(int *res, str *fname); +bit IsStandardBATType(int type); +str NCDFattach(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); +str NCDFimportVarStmt(str *sciqlstmt, str *fname, int *varid); +str NCDFimportVariable(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); +str NCDFtest(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); +str PYAPI3PyAPIprelude(void *ret); +PyObject *PyArrayObject_FromBAT(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(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(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); +str SHPattach(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); +str SHPimport(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); +str SHPpartialimport(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); +str SQLautocommit(mvc *m); +str SQLcallback(Client c, str msg); +void SQLdestroyResult(res_table *destroy); +str SQLengine(Client c); +str SQLengineIntern(Client c, backend *be); +str SQLescapeString(str s); +str SQLexit(Client c); +str SQLexitClient(Client c); +str SQLinitClient(Client c); +str SQLinitClientFromMAL(Client c); +str SQLparser(Client c); +str SQLreader(Client c); +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(bat *ret, const bat *one, const bat *two); +str UDFBATreverse(bat *ret, const bat *arg); +char *UDFfuse_bte_sht(sht *ret, const bte *one, const bte *two); +char *UDFfuse_int_lng(lng *ret, const int *one, const int *two); +char *UDFfuse_lng_hge(hge *ret, const lng *one, const lng *two); +char *UDFfuse_sht_int(int *ret, const sht *one, const sht *two); +str UDFreverse(str *ret, const str *arg); +str VLTgenerator_join(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); +str VLTgenerator_noop(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); +str VLTgenerator_projection(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); +str VLTgenerator_rangejoin(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); +str VLTgenerator_subselect(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); +str VLTgenerator_table(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); +str VLTgenerator_thetasubselect(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); +str append_to_table_from_emit(Client cntxt, char *sname, char *tname, sql_emit_col *columns, size_t ncols); +str batbte_dec2_bte(bat *res, const int *s1, const bat *v, const bat *sid); +str batbte_dec2_dbl(bat *res, const int *s1, const bat *v, const bat *sid); +str batbte_dec2_flt(bat *res, const int *s1, const bat *v, const bat *sid); +str batbte_dec2_int(bat *res, const int *s1, const bat *v, const bat *sid); +str batbte_dec2_lng(bat *res, const int *s1, const bat *v, const bat *sid); +str batbte_dec2_sht(bat *res, const int *s1, const bat *v, const bat *sid); +str batbte_dec2dec_bte(bat *res, const int *S1, const bat *v, const bat *sid, const int *d2, const int *S2); +str batbte_dec2dec_dbl(bat *res, const int *S1, const bat *v, const bat *sid, const int *d2, const int *S2); +str batbte_dec2dec_flt(bat *res, const int *S1, const bat *v, const bat *sid, const int *d2, const int *S2); +str batbte_dec2dec_int(bat *res, const int *S1, const bat *v, const bat *sid, const int *d2, const int *S2); +str batbte_dec2dec_lng(bat *res, const int *S1, const bat *v, const bat *sid, const int *d2, const int *S2); +str batbte_dec2dec_sht(bat *res, const int *S1, const bat *v, const bat *sid, const int *d2, const int *S2); +str batbte_num2dec_bte(bat *res, const bat *v, const bat *sid, const int *d2, const int *s2); +str batbte_num2dec_dbl(bat *res, const bat *v, const bat *sid, const int *d2, const int *s2); +str batbte_num2dec_flt(bat *res, const bat *v, const bat *sid, const int *d2, const int *s2); +str batbte_num2dec_int(bat *res, const bat *v, const bat *sid, const int *d2, const int *s2); +str batbte_num2dec_lng(bat *res, const bat *v, const bat *sid, const int *d2, const int *s2); +str batbte_num2dec_sht(bat *res, const bat *v, const bat *sid, const int *d2, const int *s2); +str batdbl_num2dec_bte(bat *res, const bat *v, const bat *sid, const int *d2, const int *s2); +str batdbl_num2dec_int(bat *res, const bat *v, const bat *sid, const int *d2, const int *s2); +str batdbl_num2dec_lng(bat *res, const bat *v, const bat *sid, const int *d2, const int *s2); +str batdbl_num2dec_sht(bat *res, const bat *v, const bat *sid, const int *d2, const int *s2); +str batflt_num2dec_bte(bat *res, const bat *v, const bat *sid, const int *d2, const int *s2); +str batflt_num2dec_int(bat *res, const bat *v, const bat *sid, const int *d2, const int *s2); +str batflt_num2dec_lng(bat *res, const bat *v, const bat *sid, const int *d2, const int *s2); +str batflt_num2dec_sht(bat *res, const bat *v, const bat *sid, const int *d2, const int *s2); +str bathge_dec2_bte(bat *res, const int *s1, const bat *v, const bat *sid); +str bathge_dec2_dbl(bat *res, const int *s1, const bat *v, const bat *sid); +str bathge_dec2_flt(bat *res, const int *s1, const bat *v, const bat *sid); +str bathge_dec2_int(bat *res, const int *s1, const bat *v, const bat *sid); +str bathge_dec2_lng(bat *res, const int *s1, const bat *v, const bat *sid); +str bathge_dec2_sht(bat *res, const int *s1, const bat *v, const bat *sid); +str bathge_dec2dec_bte(bat *res, const int *S1, const bat *v, const bat *sid, const int *d2, const int *S2); +str bathge_dec2dec_dbl(bat *res, const int *S1, const bat *v, const bat *sid, const int *d2, const int *S2); +str bathge_dec2dec_flt(bat *res, const int *S1, const bat *v, const bat *sid, const int *d2, const int *S2); +str bathge_dec2dec_int(bat *res, const int *S1, const bat *v, const bat *sid, const int *d2, const int *S2); +str bathge_dec2dec_lng(bat *res, const int *S1, const bat *v, const bat *sid, const int *d2, const int *S2); +str bathge_dec2dec_sht(bat *res, const int *S1, const bat *v, const bat *sid, const int *d2, const int *S2); +str bathge_num2dec_bte(bat *res, const bat *v, const bat *sid, const int *d2, const int *s2); +str bathge_num2dec_dbl(bat *res, const bat *v, const bat *sid, const int *d2, const int *s2); +str bathge_num2dec_flt(bat *res, const bat *v, const bat *sid, const int *d2, const int *s2); +str bathge_num2dec_int(bat *res, const bat *v, const bat *sid, const int *d2, const int *s2); +str bathge_num2dec_lng(bat *res, const bat *v, const bat *sid, const int *d2, const int *s2); +str bathge_num2dec_sht(bat *res, const bat *v, const bat *sid, const int *d2, const int *s2); +str batint_dec2_bte(bat *res, const int *s1, const bat *v, const bat *sid); +str batint_dec2_dbl(bat *res, const int *s1, const bat *v, const bat *sid); +str batint_dec2_flt(bat *res, const int *s1, const bat *v, const bat *sid); +str batint_dec2_int(bat *res, const int *s1, const bat *v, const bat *sid); +str batint_dec2_lng(bat *res, const int *s1, const bat *v, const bat *sid); +str batint_dec2_sht(bat *res, const int *s1, const bat *v, const bat *sid); +str batint_dec2dec_bte(bat *res, const int *S1, const bat *v, const bat *sid, const int *d2, const int *S2); +str batint_dec2dec_dbl(bat *res, const int *S1, const bat *v, const bat *sid, const int *d2, const int *S2); +str batint_dec2dec_flt(bat *res, const int *S1, const bat *v, const bat *sid, const int *d2, const int *S2); +str batint_dec2dec_int(bat *res, const int *S1, const bat *v, const bat *sid, const int *d2, const int *S2); +str batint_dec2dec_lng(bat *res, const int *S1, const bat *v, const bat *sid, const int *d2, const int *S2); +str batint_dec2dec_sht(bat *res, const int *S1, const bat *v, const bat *sid, const int *d2, const int *S2); +str batint_num2dec_bte(bat *res, const bat *v, const bat *sid, const int *d2, const int *s2); +str batint_num2dec_dbl(bat *res, const bat *v, const bat *sid, const int *d2, const int *s2); +str batint_num2dec_flt(bat *res, const bat *v, const bat *sid, const int *d2, const int *s2); +str batint_num2dec_int(bat *res, const bat *v, const bat *sid, const int *d2, const int *s2); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list