Changeset: 7291d90cbd13 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7291d90cbd13
Branch: default
Log Message:

Merge with Oct2020 branch


diffs (truncated from 5226 to 300 lines):

diff --git a/README.rst b/README.rst
--- a/README.rst
+++ b/README.rst
@@ -1,15 +1,28 @@
 The MonetDB Database System
 ===========================
 
-The MonetDB database is developed by the CWI database research group
-(see https://www.monetdb.org/).
+The MonetDB database was originally developed by the `CWI`__ `database
+research group`__ (see https://www.monetdb.org/).  Development has now
+shifted to the spin-off company `MonetDB Solutions`__.
 
-Via the MonetDB project we have brought the MonetDB system in open source,
-where it is accessible at https://www.monetdb.org/Downloads/
+Via the MonetDB project we have brought the MonetDB system in open
+source, where it is accessible at https://www.monetdb.org/Downloads/.
+Even though development happens mostly in a company, the MonetDB
+database system will remain open source.
 
 The MonetDB database system is a high-performance database kernel for
-query-intensive applications. The MonetDB source can be found at our `Mercurial
-server`__. There is also a `github mirror`__ that is updated once a day.
+query-intensive applications. The MonetDB source can be found at our
+`Mercurial server`__. There is also a `github mirror`__ that is updated
+once a day.
+
+.. _CWI: https://www.cwi.nl/
+__ CWI_
+
+.. _DA: https://www.cwi.nl/research/groups/database-architectures
+__ DA_
+
+.. _solutions: https://www.monetdbsolutions.com
+__ solutions_
 
 .. _MonetDB: https://dev.monetdb.org/hg/MonetDB/
 __ MonetDB_
@@ -17,12 +30,19 @@ server`__. There is also a `github mirro
 .. _github: https://github.com/MonetDB/MonetDB
 __ github_
 
-If you got a source distribution, please compile and install MonetDB first,
-following the instructions in the file `HowToStart.rst`__ (for Unix)
-or `buildtools/doc/windowsbuild.rst`__ (for Windows).
+If you got a source distribution, please compile and install MonetDB
+first, following the instructions in the file `build.rst`__.
+
+__ documentation/source/build.rst
 
-__ HowToStart.rst
-__ buildtools/doc/windowsbuild.rst
+Bugs
+====
+
+We of course hope there aren't any, but if you do find one, you can
+report bugs in our `bugzilla`__ instance.
+
+.. _bugzilla: https://bugs.monetdb.org
+__ bugzilla_
 
 Copyright Notice
 ================
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
@@ -66,9 +66,9 @@ stdout of test 'MAL-signatures` in direc
 % clob,        clob,   clob,   clob,   clob # type
 % 12,  28,     313,    42,     0 # length
 [ "aggr",      "all",  "command aggr.all(X_1:bat[:any_1]):any_1 ",     
"SQLall;",      ""      ]
-[ "aggr",      "allnotequal",  "command aggr.allnotequal(X_1:bat[:any_1], 
X_2:bat[:any_1]):bit ",      "SQLallnotequal;",      ""      ]
+[ "aggr",      "allnotequal",  "pattern aggr.allnotequal(X_1:bat[:any_1], 
X_2:bat[:any_1]):bit ",      "SQLallnotequal;",      ""      ]
 [ "aggr",      "anyequal",     "pattern aggr.anyequal(X_1:any_1, 
X_2:any_1):bit ",     "CMDvarEQ;",    ""      ]
-[ "aggr",      "anyequal",     "command aggr.anyequal(X_1:bat[:any_1], 
X_2:bat[:any_1]):bit ", "SQLanyequal;", ""      ]
+[ "aggr",      "anyequal",     "pattern aggr.anyequal(X_1:bat[:any_1], 
X_2:bat[:any_1]):bit ", "SQLanyequal;", ""      ]
 [ "aggr",      "avg",  "command aggr.avg(X_1:bat[:bte], X_2:bat[:oid], 
X_3:bat[:any_1]):bat[:dbl] ",   "AGGRavg13_dbl;",       ""      ]
 [ "aggr",      "avg",  "command aggr.avg(X_1:bat[:dbl], X_2:bat[:oid], 
X_3:bat[:any_1]):bat[:dbl] ",   "AGGRavg13_dbl;",       ""      ]
 [ "aggr",      "avg",  "command aggr.avg(X_1:bat[:flt], X_2:bat[:oid], 
X_3:bat[:any_1]):bat[:dbl] ",   "AGGRavg13_dbl;",       ""      ]
@@ -751,6 +751,8 @@ stdout of test 'MAL-signatures` in direc
 [ "bat",       "setPersistent",        "command 
bat.setPersistent(X_1:bat[:any_1]):void ",     "BKCsetPersistent;",    ""      ]
 [ "bat",       "setTransient", "command bat.setTransient(X_1:bat[:any_1]):void 
",      "BKCsetTransient;",     ""      ]
 [ "bat",       "single",       "pattern bat.single(X_1:any_1):bat[:any_1] ",   
"CMDBATsingle;",        ""      ]
+[ "bataggr",   "allnotequal",  "pattern bataggr.allnotequal(X_1:bat[:any_1], 
X_2:bat[:any_1]):bit ",   "SQLallnotequal;",      ""      ]
+[ "bataggr",   "anyequal",     "pattern bataggr.anyequal(X_1:bat[:any_1], 
X_2:bat[:any_1]):bat[:bit] ",        "SQLanyequal;", ""      ]
 [ "bataggr",   "exist",        "pattern bataggr.exist(X_1:any_1):bat[:bit] ",  
"SQLexist;",    ""      ]
 [ "bataggr",   "exist",        "pattern 
bataggr.exist(X_1:bat[:any_1]):bat[:bit] ",    "SQLexist;",    ""      ]
 [ "bataggr",   "exist",        "pattern bataggr.exist(X_1:bat[:any_1]):bit ",  
"SQLexist;",    ""      ]
@@ -5890,6 +5892,7 @@ stdout of test 'MAL-signatures` in direc
 [ "batstr",    "nbytes",       "command batstr.nbytes(X_1:bat[:str]):bat[:int] 
",      "STRbatBytes;", ""      ]
 [ "batstr",    "r_search",     "command batstr.r_search(X_1:bat[:str], 
X_2:bat[:str]):bat[:int] ",     "STRbatRstrSearch;",    ""      ]
 [ "batstr",    "r_search",     "command batstr.r_search(X_1:bat[:str], 
X_2:str):bat[:int] ",   "STRbatRstrSearchcst;", ""      ]
+[ "batstr",    "repeat",       "command batstr.repeat(X_1:bat[:str], 
X_2:int):bat[:str] ",     "STRbatrepeat;",        ""      ]
 [ "batstr",    "rpad", "command batstr.rpad(X_1:bat[:str], X_2:bat[:int], 
X_3:bat[:str]):bat[:str] ",  "STRbatRpad2_bat_bat;", ""      ]
 [ "batstr",    "rpad", "command batstr.rpad(X_1:bat[:str], X_2:bat[:int], 
X_3:str):bat[:str] ",        "STRbatRpad2_bat_const;",       ""      ]
 [ "batstr",    "rpad", "command batstr.rpad(X_1:bat[:str], X_2:int, 
X_3:bat[:str]):bat[:str] ",        "STRbatRpad2_const_bat;",       ""      ]
@@ -5905,6 +5908,8 @@ stdout of test 'MAL-signatures` in direc
 [ "batstr",    "startsWith",   "command batstr.startsWith(X_1:bat[:str], 
X_2:str):bat[:bit] ", "STRbatPrefixcst;",     ""      ]
 [ "batstr",    "string",       "command batstr.string(X_1:bat[:str], 
X_2:bat[:int]):bat[:str] ",       "STRbatTail;",  ""      ]
 [ "batstr",    "string",       "command batstr.string(X_1:bat[:str], 
X_2:int):bat[:str] ",     "STRbatTailcst;",       ""      ]
+[ "batstr",    "stringleft",   "command batstr.stringleft(X_1:bat[:str], 
X_2:int):bat[:str] ", "STRbatprefix;",        ""      ]
+[ "batstr",    "stringright",  "command batstr.stringright(X_1:bat[:str], 
X_2:int):bat[:str] ",        "STRbatsuffix;",        ""      ]
 [ "batstr",    "substitute",   "command batstr.substitute(X_1:bat[:str], 
X_2:str, X_3:str, X_4:bit):bat[:str] ",       "STRbatSubstitutecst;", ""      ]
 [ "batstr",    "substring",    "command batstr.substring(X_1:bat[:str], 
X_2:bat[:int], X_3:bat[:int]):bat[:str] ",     "STRbatsubstring;",     ""      ]
 [ "batstr",    "substring",    "command batstr.substring(X_1:bat[:str], 
X_2:int, X_3:int):bat[:str] ", "STRbatsubstringcst;",  ""      ]
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
@@ -70,9 +70,9 @@ stdout of test 'MAL-signatures` in direc
 % clob,        clob,   clob,   clob,   clob # type
 % 12,  28,     313,    42,     0 # length
 [ "aggr",      "all",  "command aggr.all(X_1:bat[:any_1]):any_1 ",     
"SQLall;",      ""      ]
-[ "aggr",      "allnotequal",  "command aggr.allnotequal(X_1:bat[:any_1], 
X_2:bat[:any_1]):bit ",      "SQLallnotequal;",      ""      ]
+[ "aggr",      "allnotequal",  "pattern aggr.allnotequal(X_1:bat[:any_1], 
X_2:bat[:any_1]):bit ",      "SQLallnotequal;",      ""      ]
 [ "aggr",      "anyequal",     "pattern aggr.anyequal(X_1:any_1, 
X_2:any_1):bit ",     "CMDvarEQ;",    ""      ]
-[ "aggr",      "anyequal",     "command aggr.anyequal(X_1:bat[:any_1], 
X_2:bat[:any_1]):bit ", "SQLanyequal;", ""      ]
+[ "aggr",      "anyequal",     "pattern aggr.anyequal(X_1:bat[:any_1], 
X_2:bat[:any_1]):bit ", "SQLanyequal;", ""      ]
 [ "aggr",      "avg",  "command aggr.avg(X_1:bat[:bte], X_2:bat[:oid], 
X_3:bat[:any_1]):bat[:dbl] ",   "AGGRavg13_dbl;",       ""      ]
 [ "aggr",      "avg",  "command aggr.avg(X_1:bat[:dbl], X_2:bat[:oid], 
X_3:bat[:any_1]):bat[:dbl] ",   "AGGRavg13_dbl;",       ""      ]
 [ "aggr",      "avg",  "command aggr.avg(X_1:bat[:flt], X_2:bat[:oid], 
X_3:bat[:any_1]):bat[:dbl] ",   "AGGRavg13_dbl;",       ""      ]
@@ -866,6 +866,8 @@ stdout of test 'MAL-signatures` in direc
 [ "bat",       "setPersistent",        "command 
bat.setPersistent(X_1:bat[:any_1]):void ",     "BKCsetPersistent;",    ""      ]
 [ "bat",       "setTransient", "command bat.setTransient(X_1:bat[:any_1]):void 
",      "BKCsetTransient;",     ""      ]
 [ "bat",       "single",       "pattern bat.single(X_1:any_1):bat[:any_1] ",   
"CMDBATsingle;",        ""      ]
+[ "bataggr",   "allnotequal",  "pattern bataggr.allnotequal(X_1:bat[:any_1], 
X_2:bat[:any_1]):bit ",   "SQLallnotequal;",      ""      ]
+[ "bataggr",   "anyequal",     "pattern bataggr.anyequal(X_1:bat[:any_1], 
X_2:bat[:any_1]):bat[:bit] ",        "SQLanyequal;", ""      ]
 [ "bataggr",   "exist",        "pattern bataggr.exist(X_1:any_1):bat[:bit] ",  
"SQLexist;",    ""      ]
 [ "bataggr",   "exist",        "pattern 
bataggr.exist(X_1:bat[:any_1]):bat[:bit] ",    "SQLexist;",    ""      ]
 [ "bataggr",   "exist",        "pattern bataggr.exist(X_1:bat[:any_1]):bit ",  
"SQLexist;",    ""      ]
@@ -8166,6 +8168,7 @@ stdout of test 'MAL-signatures` in direc
 [ "batstr",    "nbytes",       "command batstr.nbytes(X_1:bat[:str]):bat[:int] 
",      "STRbatBytes;", ""      ]
 [ "batstr",    "r_search",     "command batstr.r_search(X_1:bat[:str], 
X_2:bat[:str]):bat[:int] ",     "STRbatRstrSearch;",    ""      ]
 [ "batstr",    "r_search",     "command batstr.r_search(X_1:bat[:str], 
X_2:str):bat[:int] ",   "STRbatRstrSearchcst;", ""      ]
+[ "batstr",    "repeat",       "command batstr.repeat(X_1:bat[:str], 
X_2:int):bat[:str] ",     "STRbatrepeat;",        ""      ]
 [ "batstr",    "rpad", "command batstr.rpad(X_1:bat[:str], X_2:bat[:int], 
X_3:bat[:str]):bat[:str] ",  "STRbatRpad2_bat_bat;", ""      ]
 [ "batstr",    "rpad", "command batstr.rpad(X_1:bat[:str], X_2:bat[:int], 
X_3:str):bat[:str] ",        "STRbatRpad2_bat_const;",       ""      ]
 [ "batstr",    "rpad", "command batstr.rpad(X_1:bat[:str], X_2:int, 
X_3:bat[:str]):bat[:str] ",        "STRbatRpad2_const_bat;",       ""      ]
@@ -8181,6 +8184,8 @@ stdout of test 'MAL-signatures` in direc
 [ "batstr",    "startsWith",   "command batstr.startsWith(X_1:bat[:str], 
X_2:str):bat[:bit] ", "STRbatPrefixcst;",     ""      ]
 [ "batstr",    "string",       "command batstr.string(X_1:bat[:str], 
X_2:bat[:int]):bat[:str] ",       "STRbatTail;",  ""      ]
 [ "batstr",    "string",       "command batstr.string(X_1:bat[:str], 
X_2:int):bat[:str] ",     "STRbatTailcst;",       ""      ]
+[ "batstr",    "stringleft",   "command batstr.stringleft(X_1:bat[:str], 
X_2:int):bat[:str] ", "STRbatprefix;",        ""      ]
+[ "batstr",    "stringright",  "command batstr.stringright(X_1:bat[:str], 
X_2:int):bat[:str] ",        "STRbatsuffix;",        ""      ]
 [ "batstr",    "substitute",   "command batstr.substitute(X_1:bat[:str], 
X_2:str, X_3:str, X_4:bit):bat[:str] ",       "STRbatSubstitutecst;", ""      ]
 [ "batstr",    "substring",    "command batstr.substring(X_1:bat[:str], 
X_2:bat[:int], X_3:bat[:int]):bat[:str] ",     "STRbatsubstring;",     ""      ]
 [ "batstr",    "substring",    "command batstr.substring(X_1:bat[:str], 
X_2:int, X_3:int):bat[:str] ", "STRbatsubstringcst;",  ""      ]
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
@@ -576,98 +576,97 @@ int win_unlink(const char *);
 int winerror(int);
 
 # mapi
-MapiMsg mapi_bind(MapiHdl hdl, int fnr, char **ptr);
-MapiMsg mapi_bind_numeric(MapiHdl hdl, int fnr, int scale, int precision, void 
*ptr);
-MapiMsg mapi_bind_var(MapiHdl hdl, int fnr, int type, void *ptr);
-MapiMsg mapi_cache_freeup(MapiHdl hdl, int percentage);
-MapiMsg mapi_cache_limit(Mapi mid, int limit);
-MapiMsg mapi_clear_bindings(MapiHdl hdl);
-MapiMsg mapi_clear_params(MapiHdl hdl);
+MapiMsg mapi_bind(MapiHdl hdl, int fnr, char **ptr) 
__attribute__((__nonnull__(1)));
+MapiMsg mapi_bind_numeric(MapiHdl hdl, int fnr, int scale, int precision, void 
*ptr) __attribute__((__nonnull__(1)));
+MapiMsg mapi_bind_var(MapiHdl hdl, int fnr, int type, void *ptr) 
__attribute__((__nonnull__(1)));
+MapiMsg mapi_cache_freeup(MapiHdl hdl, int percentage) 
__attribute__((__nonnull__(1)));
+MapiMsg mapi_cache_limit(Mapi mid, int limit) __attribute__((__nonnull__(1)));
+MapiMsg mapi_clear_bindings(MapiHdl hdl) __attribute__((__nonnull__(1)));
+MapiMsg mapi_clear_params(MapiHdl hdl) __attribute__((__nonnull__(1)));
 MapiMsg mapi_close_handle(MapiHdl hdl);
 Mapi mapi_connect(const char *host, int port, const char *username, const char 
*password, const char *lang, const char *dbname);
-MapiMsg mapi_destroy(Mapi mid);
-MapiMsg mapi_disconnect(Mapi mid);
-MapiMsg mapi_error(Mapi mid);
-const char *mapi_error_str(Mapi mid);
-MapiMsg mapi_execute(MapiHdl hdl);
-void mapi_explain(Mapi mid, FILE *fd);
-void mapi_explain_query(MapiHdl hdl, FILE *fd);
+MapiMsg mapi_destroy(Mapi mid) __attribute__((__nonnull__(1)));
+MapiMsg mapi_disconnect(Mapi mid) __attribute__((__nonnull__(1)));
+MapiMsg mapi_error(Mapi mid) __attribute__((__nonnull__(1)));
+const char *mapi_error_str(Mapi mid) __attribute__((__nonnull__(1)));
+MapiMsg mapi_execute(MapiHdl hdl) __attribute__((__nonnull__(1)));
+void mapi_explain(Mapi mid, FILE *fd) __attribute__((__nonnull__(1)));
+void mapi_explain_query(MapiHdl hdl, FILE *fd) __attribute__((__nonnull__(1)));
 void mapi_explain_result(MapiHdl hdl, FILE *fd);
-int64_t mapi_fetch_all_rows(MapiHdl hdl);
-char *mapi_fetch_field(MapiHdl hdl, int fnr);
-size_t mapi_fetch_field_len(MapiHdl hdl, int fnr);
-char *mapi_fetch_line(MapiHdl hdl);
-MapiMsg mapi_fetch_reset(MapiHdl hdl);
-int mapi_fetch_row(MapiHdl hdl);
-MapiMsg mapi_finish(MapiHdl hdl);
-MapiHdl mapi_get_active(Mapi mid);
-bool mapi_get_autocommit(Mapi mid);
-const char *mapi_get_dbname(Mapi mid);
-int mapi_get_digits(MapiHdl hdl, int fnr);
-int mapi_get_field_count(MapiHdl hdl);
-stream *mapi_get_from(Mapi mid);
-const char *mapi_get_host(Mapi mid);
-const char *mapi_get_lang(Mapi mid);
-int64_t mapi_get_last_id(MapiHdl hdl);
-int mapi_get_len(MapiHdl hdl, int fnr);
-int64_t mapi_get_maloptimizertime(MapiHdl hdl);
-const char *mapi_get_mapi_version(Mapi mid);
-const char *mapi_get_monet_version(Mapi mid);
-const char *mapi_get_motd(Mapi mid);
-char *mapi_get_name(MapiHdl hdl, int fnr);
-char *mapi_get_query(MapiHdl hdl);
-int64_t mapi_get_querytime(MapiHdl hdl);
-int mapi_get_querytype(MapiHdl hdl);
-int64_t mapi_get_row_count(MapiHdl hdl);
-int mapi_get_scale(MapiHdl hdl, int fnr);
-int64_t mapi_get_sqloptimizertime(MapiHdl hdl);
-char *mapi_get_table(MapiHdl hdl, int fnr);
-int mapi_get_tableid(MapiHdl hdl);
-stream *mapi_get_to(Mapi mid);
-bool mapi_get_trace(Mapi mid);
-char *mapi_get_type(MapiHdl hdl, int fnr);
-const char *mapi_get_uri(Mapi mid);
-const char *mapi_get_user(Mapi mid);
-bool mapi_is_connected(Mapi mid);
-MapiMsg mapi_log(Mapi mid, const char *nme);
+int64_t mapi_fetch_all_rows(MapiHdl hdl) __attribute__((__nonnull__(1)));
+char *mapi_fetch_field(MapiHdl hdl, int fnr) __attribute__((__nonnull__(1)));
+size_t mapi_fetch_field_len(MapiHdl hdl, int fnr) 
__attribute__((__nonnull__(1)));
+char *mapi_fetch_line(MapiHdl hdl) __attribute__((__nonnull__(1)));
+MapiMsg mapi_fetch_reset(MapiHdl hdl) __attribute__((__nonnull__(1)));
+int mapi_fetch_row(MapiHdl hdl) __attribute__((__nonnull__(1)));
+MapiMsg mapi_finish(MapiHdl hdl) __attribute__((__nonnull__(1)));
+MapiHdl mapi_get_active(Mapi mid) __attribute__((__nonnull__(1)));
+bool mapi_get_autocommit(Mapi mid) __attribute__((__nonnull__(1)));
+const char *mapi_get_dbname(Mapi mid) __attribute__((__nonnull__(1)));
+int mapi_get_digits(MapiHdl hdl, int fnr) __attribute__((__nonnull__(1)));
+int mapi_get_field_count(MapiHdl hdl) __attribute__((__nonnull__(1)));
+stream *mapi_get_from(Mapi mid) __attribute__((__nonnull__(1)));
+const char *mapi_get_host(Mapi mid) __attribute__((__nonnull__(1)));
+const char *mapi_get_lang(Mapi mid) __attribute__((__nonnull__(1)));
+int64_t mapi_get_last_id(MapiHdl hdl) __attribute__((__nonnull__(1)));
+int mapi_get_len(MapiHdl hdl, int fnr) __attribute__((__nonnull__(1)));
+int64_t mapi_get_maloptimizertime(MapiHdl hdl) __attribute__((__nonnull__(1)));
+const char *mapi_get_mapi_version(Mapi mid) __attribute__((__nonnull__(1)));
+const char *mapi_get_monet_version(Mapi mid) __attribute__((__nonnull__(1)));
+const char *mapi_get_motd(Mapi mid) __attribute__((__nonnull__(1)));
+char *mapi_get_name(MapiHdl hdl, int fnr) __attribute__((__nonnull__(1)));
+char *mapi_get_query(MapiHdl hdl) __attribute__((__nonnull__(1)));
+int64_t mapi_get_querytime(MapiHdl hdl) __attribute__((__nonnull__(1)));
+int mapi_get_querytype(MapiHdl hdl) __attribute__((__nonnull__(1)));
+int64_t mapi_get_row_count(MapiHdl hdl) __attribute__((__nonnull__(1)));
+int mapi_get_scale(MapiHdl hdl, int fnr) __attribute__((__nonnull__(1)));
+int64_t mapi_get_sqloptimizertime(MapiHdl hdl) __attribute__((__nonnull__(1)));
+char *mapi_get_table(MapiHdl hdl, int fnr) __attribute__((__nonnull__(1)));
+int mapi_get_tableid(MapiHdl hdl) __attribute__((__nonnull__(1)));
+stream *mapi_get_to(Mapi mid) __attribute__((__nonnull__(1)));
+bool mapi_get_trace(Mapi mid) __attribute__((__nonnull__(1)));
+char *mapi_get_type(MapiHdl hdl, int fnr) __attribute__((__nonnull__(1)));
+const char *mapi_get_uri(Mapi mid) __attribute__((__nonnull__(1)));
+const char *mapi_get_user(Mapi mid) __attribute__((__nonnull__(1)));
+bool mapi_is_connected(Mapi mid) __attribute__((__nonnull__(1)));
+MapiMsg mapi_log(Mapi mid, const char *nme) __attribute__((__nonnull__(1)));
 Mapi mapi_mapi(const char *host, int port, const char *username, const char 
*password, const char *lang, const char *dbname);
 Mapi mapi_mapiuri(const char *url, const char *user, const char *pass, const 
char *lang);
-bool mapi_more_results(MapiHdl hdl);
-MapiMsg mapi_needmore(MapiHdl hdl);
-MapiHdl mapi_new_handle(Mapi mid);
-MapiMsg mapi_next_result(MapiHdl hdl);
-void mapi_noexplain(Mapi mid, const char *errorprefix);
-MapiMsg mapi_param(MapiHdl hdl, int fnr, char **ptr);
-MapiMsg mapi_param_numeric(MapiHdl hdl, int fnr, int scale, int precision, 
void *ptr);
-MapiMsg mapi_param_string(MapiHdl hdl, int fnr, int sqltype, char *ptr, int 
*sizeptr);
-MapiMsg mapi_param_type(MapiHdl hdl, int fnr, int ctype, int sqltype, void 
*ptr);
-MapiMsg mapi_ping(Mapi mid);
-MapiHdl mapi_prepare(Mapi mid, const char *cmd);
-MapiMsg mapi_prepare_handle(MapiHdl hdl, const char *cmd);
-MapiHdl mapi_query(Mapi mid, const char *cmd);
-MapiMsg mapi_query_done(MapiHdl hdl);
-MapiMsg mapi_query_handle(MapiHdl hdl, const char *cmd);
-MapiMsg mapi_query_part(MapiHdl hdl, const char *cmd, size_t size);
-MapiHdl mapi_query_prep(Mapi mid);
-char *mapi_quote(const char *msg, int size);
-MapiMsg mapi_read_response(MapiHdl hdl);
-MapiMsg mapi_reconnect(Mapi mid);
-MapiMsg mapi_release_id(Mapi mid, int id);
+bool mapi_more_results(MapiHdl hdl) __attribute__((__nonnull__(1)));
+MapiMsg mapi_needmore(MapiHdl hdl) __attribute__((__nonnull__(1)));
+MapiHdl mapi_new_handle(Mapi mid) __attribute__((__nonnull__(1)));
+MapiMsg mapi_next_result(MapiHdl hdl) __attribute__((__nonnull__(1)));
+void mapi_noexplain(Mapi mid, const char *errorprefix) 
__attribute__((__nonnull__(1)));
+MapiMsg mapi_param(MapiHdl hdl, int fnr, char **ptr) 
__attribute__((__nonnull__(1)));
+MapiMsg mapi_param_numeric(MapiHdl hdl, int fnr, int scale, int precision, 
void *ptr) __attribute__((__nonnull__(1)));
+MapiMsg mapi_param_string(MapiHdl hdl, int fnr, int sqltype, char *ptr, int 
*sizeptr) __attribute__((__nonnull__(1)));
+MapiMsg mapi_param_type(MapiHdl hdl, int fnr, int ctype, int sqltype, void 
*ptr) __attribute__((__nonnull__(1)));
+MapiMsg mapi_ping(Mapi mid) __attribute__((__nonnull__(1)));
+MapiHdl mapi_prepare(Mapi mid, const char *cmd) 
__attribute__((__nonnull__(1)));
+MapiMsg mapi_prepare_handle(MapiHdl hdl, const char *cmd) 
__attribute__((__nonnull__(1)));
+MapiHdl mapi_query(Mapi mid, const char *cmd) __attribute__((__nonnull__(1)));
+MapiMsg mapi_query_done(MapiHdl hdl) __attribute__((__nonnull__(1)));
+MapiMsg mapi_query_handle(MapiHdl hdl, const char *cmd) 
__attribute__((__nonnull__(1)));
+MapiMsg mapi_query_part(MapiHdl hdl, const char *cmd, size_t size) 
__attribute__((__nonnull__(1)));
+MapiHdl mapi_query_prep(Mapi mid) __attribute__((__nonnull__(1)));
+char *mapi_quote(const char *msg, int size) __attribute__((__nonnull__(1)));
+MapiMsg mapi_read_response(MapiHdl hdl) __attribute__((__nonnull__(1)));
+MapiMsg mapi_reconnect(Mapi mid) __attribute__((__nonnull__(1)));
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to