Changeset: ab9ffc589c9d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ab9ffc589c9d
Modified Files:
ctest/tools/embedded/backup.c
ctest/tools/embedded/example1.c
ctest/tools/embedded/example2.c
ctest/tools/embedded/example_append.c
ctest/tools/embedded/example_blob.c
ctest/tools/embedded/example_connections.c
ctest/tools/embedded/example_decimals.c
ctest/tools/embedded/example_temporal.c
ctest/tools/embedded/mapi.c
ctest/tools/embedded/mapi.h
sql/backends/monet5/sql_result.c
tools/embedded/monetdb_embedded.c
tools/embedded/monetdb_embedded.h
Branch: default
Log Message:
added monetdb_prepare, monetdb_bind, monetdb_execute and
monetdb_cleanup_statement
(monetdb_query api changed, ie prepare_id is not needed)
diffs (truncated from 902 to 300 lines):
diff --git a/ctest/tools/embedded/backup.c b/ctest/tools/embedded/backup.c
--- a/ctest/tools/embedded/backup.c
+++ b/ctest/tools/embedded/backup.c
@@ -29,9 +29,9 @@ main(void)
#else
"h bigint, "
#endif
- "f float, d double, y string)", NULL, NULL, NULL)) != NULL)
+ "f float, d double, y string)", NULL, NULL)) != NULL)
error(err)
- if ((err = monetdb_query(mid->conn, "INSERT INTO test VALUES (TRUE, 42,
42, 42, 42, 42, 42.42, 42.42, 'Hello'), (NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, 'World')", NULL, NULL, NULL)) != NULL)
+ if ((err = monetdb_query(mid->conn, "INSERT INTO test VALUES (TRUE, 42,
42, 42, 42, 42, 42.42, 42.42, 'Hello'), (NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, 'World')", NULL, NULL)) != NULL)
error(err)
/* open file stream */
diff --git a/ctest/tools/embedded/example1.c b/ctest/tools/embedded/example1.c
--- a/ctest/tools/embedded/example1.c
+++ b/ctest/tools/embedded/example1.c
@@ -25,11 +25,11 @@ main(void)
error(err)
if ((err = monetdb_connect(&conn)) != NULL)
error(err)
- if ((err = monetdb_query(conn, "CREATE TABLE test (x integer, y
string)", NULL, NULL, NULL)) != NULL)
+ if ((err = monetdb_query(conn, "CREATE TABLE test (x integer, y
string)", NULL, NULL)) != NULL)
error(err)
- if ((err = monetdb_query(conn, "INSERT INTO test VALUES (42, 'Hello'),
(NULL, 'World')", NULL, NULL, NULL)) != NULL)
+ if ((err = monetdb_query(conn, "INSERT INTO test VALUES (42, 'Hello'),
(NULL, 'World')", NULL, NULL)) != NULL)
error(err)
- if ((err = monetdb_query(conn, "SELECT x, y FROM test; ", &result,
NULL, NULL)) != NULL)
+ if ((err = monetdb_query(conn, "SELECT x, y FROM test; ", &result,
NULL)) != NULL)
error(err)
fprintf(stdout, "Query result with %zu cols and %"PRId64" rows\n",
result->ncols, result->nrows);
diff --git a/ctest/tools/embedded/example2.c b/ctest/tools/embedded/example2.c
--- a/ctest/tools/embedded/example2.c
+++ b/ctest/tools/embedded/example2.c
@@ -31,11 +31,11 @@ main(void)
#else
"h bigint, "
#endif
- "f float, d double, y string)", NULL, NULL, NULL)) != NULL)
+ "f float, d double, y string)", NULL, NULL)) != NULL)
error(err)
- if ((err = monetdb_query(conn, "INSERT INTO test VALUES (TRUE, 42, 42,
42, 42, 42, 42.42, 42.42, 'Hello'), (NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, 'World')", NULL, NULL, NULL)) != NULL)
+ if ((err = monetdb_query(conn, "INSERT INTO test VALUES (TRUE, 42, 42,
42, 42, 42, 42.42, 42.42, 'Hello'), (NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, 'World')", NULL, NULL)) != NULL)
error(err)
- if ((err = monetdb_query(conn, "SELECT b, t, s, x, l, h, f, d, y FROM
test; ", &result, NULL, NULL)) != NULL)
+ if ((err = monetdb_query(conn, "SELECT b, t, s, x, l, h, f, d, y FROM
test; ", &result, NULL)) != NULL)
error(err)
fprintf(stdout, "Query result with %zu cols and %"PRId64" rows\n",
result->ncols, result->nrows);
@@ -143,7 +143,7 @@ main(void)
error(err)
/* test empty results */
- if ((err = monetdb_query(conn, "SELECT b, t, s, x, l, h, f, d, y FROM
test where t > 127; ", &result, NULL, NULL)) != NULL)
+ if ((err = monetdb_query(conn, "SELECT b, t, s, x, l, h, f, d, y FROM
test where t > 127; ", &result, NULL)) != NULL)
error(err)
fprintf(stdout, "Query result with %zu cols and %"PRId64" rows\n",
result->ncols, result->nrows);
for (int64_t r = 0; r < result->nrows; r++) {
@@ -157,6 +157,20 @@ main(void)
if ((err = monetdb_cleanup_result(conn, result)) != NULL)
error(err)
+ monetdb_statement *stmt = NULL;
+ if ((err = monetdb_prepare(conn, "SELECT b, t FROM test where t = ?; ",
&stmt)) != NULL)
+ error(err)
+ char s = 42;
+ if ((err = monetdb_bind(stmt, &s, 0)) != NULL)
+ error(err)
+ if ((err = monetdb_execute(stmt, &result, NULL)) != NULL)
+ error(err)
+ fprintf(stdout, "Query result with %zu cols and %"PRId64" rows\n",
result->ncols, result->nrows);
+ if ((err = monetdb_cleanup_result(conn, result)) != NULL)
+ error(err)
+ if ((err = monetdb_cleanup_statement(conn, stmt)) != NULL)
+ error(err)
+
if ((err = monetdb_disconnect(conn)) != NULL)
error(err)
if ((err = monetdb_shutdown()) != NULL)
diff --git a/ctest/tools/embedded/example_append.c
b/ctest/tools/embedded/example_append.c
--- a/ctest/tools/embedded/example_append.c
+++ b/ctest/tools/embedded/example_append.c
@@ -25,12 +25,12 @@ main(void)
error(err)
if ((err = monetdb_connect(&conn)) != NULL)
error(err)
- if ((err = monetdb_query(conn, "CREATE TABLE test (x integer, y
string)", NULL, NULL, NULL)) != NULL)
+ if ((err = monetdb_query(conn, "CREATE TABLE test (x integer, y
string)", NULL, NULL)) != NULL)
error(err)
- if ((err = monetdb_query(conn, "INSERT INTO test VALUES (42, 'Hello'),
(NULL, 'World')", NULL, NULL, NULL)) != NULL)
+ if ((err = monetdb_query(conn, "INSERT INTO test VALUES (42, 'Hello'),
(NULL, 'World')", NULL, NULL)) != NULL)
error(err)
- if ((err = monetdb_query(conn, "SELECT x, y FROM test; ", &result,
NULL, NULL)) != NULL)
+ if ((err = monetdb_query(conn, "SELECT x, y FROM test; ", &result,
NULL)) != NULL)
error(err)
fprintf(stdout, "Query result with %zu cols and %"PRId64" rows\n",
result->ncols, result->nrows);
monetdb_column* rcol[2];
@@ -74,7 +74,7 @@ main(void)
if ((err = monetdb_cleanup_result(conn, result)) != NULL)
error(err)
- if ((err = monetdb_query(conn, "SELECT x, y FROM test; ", &result,
NULL, NULL)) != NULL)
+ if ((err = monetdb_query(conn, "SELECT x, y FROM test; ", &result,
NULL)) != NULL)
error(err)
fprintf(stdout, "Query result after append with %zu cols and %"PRId64"
rows\n", result->ncols, result->nrows);
for (int64_t r = 0; r < result->nrows; r++) {
diff --git a/ctest/tools/embedded/example_blob.c
b/ctest/tools/embedded/example_blob.c
--- a/ctest/tools/embedded/example_blob.c
+++ b/ctest/tools/embedded/example_blob.c
@@ -27,11 +27,11 @@ main(void)
error(err)
if ((err = monetdb_connect(&conn)) != NULL)
error(err)
- if ((err = monetdb_query(conn, "CREATE TABLE test (name string, data
blob)", NULL, NULL, NULL)) != NULL)
+ if ((err = monetdb_query(conn, "CREATE TABLE test (name string, data
blob)", NULL, NULL)) != NULL)
error(err)
- if ((err = monetdb_query(conn, "INSERT INTO test VALUES ('Hello',
'01020308')", NULL, NULL, NULL)) != NULL)
+ if ((err = monetdb_query(conn, "INSERT INTO test VALUES ('Hello',
'01020308')", NULL, NULL)) != NULL)
error(err)
- if ((err = monetdb_query(conn, "SELECT name, data FROM test; ",
&result, NULL, NULL)) != NULL)
+ if ((err = monetdb_query(conn, "SELECT name, data FROM test; ",
&result, NULL)) != NULL)
error(err)
fprintf(stdout, "Query result with %zu cols and %"PRId64" rows\n",
result->ncols, result->nrows);
diff --git a/ctest/tools/embedded/example_connections.c
b/ctest/tools/embedded/example_connections.c
--- a/ctest/tools/embedded/example_connections.c
+++ b/ctest/tools/embedded/example_connections.c
@@ -27,11 +27,11 @@ main(void)
error(err)
if ((err = monetdb_connect(&conn2)) != NULL)
error(err)
- if ((err = monetdb_query(conn1, "CREATE TABLE test (x integer, y
string)", NULL, NULL, NULL)) != NULL)
+ if ((err = monetdb_query(conn1, "CREATE TABLE test (x integer, y
string)", NULL, NULL)) != NULL)
error(err)
- if ((err = monetdb_query(conn2, "INSERT INTO test VALUES (42, 'Hello'),
(NULL, 'World')", NULL, NULL, NULL)) != NULL)
+ if ((err = monetdb_query(conn2, "INSERT INTO test VALUES (42, 'Hello'),
(NULL, 'World')", NULL, NULL)) != NULL)
error(err)
- if ((err = monetdb_query(conn1, "SELECT x, y FROM test; ", &result,
NULL, NULL)) != NULL)
+ if ((err = monetdb_query(conn1, "SELECT x, y FROM test; ", &result,
NULL)) != NULL)
error(err)
fprintf(stdout, "Query result with %zu cols and %"PRId64" rows\n",
result->ncols, result->nrows);
diff --git a/ctest/tools/embedded/example_decimals.c
b/ctest/tools/embedded/example_decimals.c
--- a/ctest/tools/embedded/example_decimals.c
+++ b/ctest/tools/embedded/example_decimals.c
@@ -25,11 +25,11 @@ main(void)
error(err)
if ((err = monetdb_connect(&conn)) != NULL)
error(err)
- if ((err = monetdb_query(conn, "CREATE TABLE test (b bigint, d1
decimal(15,3), m decimal(4,2), y string)", NULL, NULL, NULL)) != NULL)
+ if ((err = monetdb_query(conn, "CREATE TABLE test (b bigint, d1
decimal(15,3), m decimal(4,2), y string)", NULL, NULL)) != NULL)
error(err)
- if ((err = monetdb_query(conn, "INSERT INTO test VALUES (42,
200042.024, 42.42, 'Hello'), (NULL, NULL, NULL, 'World')", NULL, NULL, NULL))
!= NULL)
+ if ((err = monetdb_query(conn, "INSERT INTO test VALUES (42,
200042.024, 42.42, 'Hello'), (NULL, NULL, NULL, 'World')", NULL, NULL)) != NULL)
error(err)
- if ((err = monetdb_query(conn, "SELECT b, d1, m, y FROM test; ",
&result, NULL, NULL)) != NULL)
+ if ((err = monetdb_query(conn, "SELECT b, d1, m, y FROM test; ",
&result, NULL)) != NULL)
error(err)
fprintf(stdout, "Query result with %zu cols and %"PRId64" rows\n",
result->ncols, result->nrows);
diff --git a/ctest/tools/embedded/example_temporal.c
b/ctest/tools/embedded/example_temporal.c
--- a/ctest/tools/embedded/example_temporal.c
+++ b/ctest/tools/embedded/example_temporal.c
@@ -28,11 +28,11 @@ main(void)
error(err)
if ((err = monetdb_connect(&conn)) != NULL)
error(err)
- if ((err = monetdb_query(conn, "CREATE TABLE test (x integer, d date, t
time, ts timestamp, y string)", NULL, NULL, NULL)) != NULL)
+ if ((err = monetdb_query(conn, "CREATE TABLE test (x integer, d date, t
time, ts timestamp, y string)", NULL, NULL)) != NULL)
error(err)
- if ((err = monetdb_query(conn, "INSERT INTO test VALUES (42,
'2020-1-1', '13:13:30', '2020-1-1 13:13:30', 'Hello'), (NULL, NULL, NULL, NULL,
'World')", NULL, NULL, NULL)) != NULL)
+ if ((err = monetdb_query(conn, "INSERT INTO test VALUES (42,
'2020-1-1', '13:13:30', '2020-1-1 13:13:30', 'Hello'), (NULL, NULL, NULL, NULL,
'World')", NULL, NULL)) != NULL)
error(err)
- if ((err = monetdb_query(conn, "SELECT x, d, t, ts, y FROM test; ",
&result, NULL, NULL)) != NULL)
+ if ((err = monetdb_query(conn, "SELECT x, d, t, ts, y FROM test; ",
&result, NULL)) != NULL)
error(err)
fprintf(stdout, "Query result with %zu cols and %"PRId64" rows\n",
result->ncols, result->nrows);
diff --git a/ctest/tools/embedded/mapi.c b/ctest/tools/embedded/mapi.c
--- a/ctest/tools/embedded/mapi.c
+++ b/ctest/tools/embedded/mapi.c
@@ -19,7 +19,7 @@ mapi_query(Mapi mid, const char *query)
mh->mid = mid;
mh->query = (char*)query;
- mh->msg = monetdb_query(mh->mid->conn, mh->query, &mh->result,
&mh->affected_rows, &mh->prepare_id);
+ mh->msg = monetdb_query(mh->mid->conn, mh->query, &mh->result,
&mh->affected_rows);
mh->current_row = 0;
mh->mapi_row = NULL;
if (mh->result && mh->result->ncols) {
diff --git a/ctest/tools/embedded/mapi.h b/ctest/tools/embedded/mapi.h
--- a/ctest/tools/embedded/mapi.h
+++ b/ctest/tools/embedded/mapi.h
@@ -22,7 +22,6 @@ typedef struct MapiStatement {
char **mapi_row; /* keep buffers for string return values */
monetdb_cnt current_row;
monetdb_cnt affected_rows;
- int prepare_id;
char *msg;
} *MapiHdl;
diff --git a/sql/backends/monet5/sql_result.c b/sql/backends/monet5/sql_result.c
--- a/sql/backends/monet5/sql_result.c
+++ b/sql/backends/monet5/sql_result.c
@@ -1060,92 +1060,94 @@ mvc_export_prepare(mvc *c, stream *out,
sql_subtype *t;
sql_rel *r = q->rel;
- if (!out)
+ if(!out)
return 0;
- if (r && (is_topn(r->op) || is_sample(r->op)))
- r = r->l;
- if (r && is_project(r->op) && r->exps) {
- unsigned int max2 = 10, max3 = 10; /* to help calculate
widths */
- nrows += list_length(r->exps);
+ if (!GDKembedded()) {
+ if (r && (is_topn(r->op) || is_sample(r->op)))
+ r = r->l;
+ if (r && is_project(r->op) && r->exps) {
+ unsigned int max2 = 10, max3 = 10; /* to help
calculate widths */
+ nrows += list_length(r->exps);
+
+ for (n = r->exps->h; n; n = n->next) {
+ const char *name;
+ sql_exp *e = n->data;
+ size_t slen;
- for (n = r->exps->h; n; n = n->next) {
- const char *name;
- sql_exp *e = n->data;
- size_t slen;
-
- t = exp_subtype(e);
- slen = strlen(t->type->sqlname);
- if (slen > len1)
- len1 = slen;
- while (t->digits >= max2) {
- len2++;
- max2 *= 10;
+ t = exp_subtype(e);
+ slen = strlen(t->type->sqlname);
+ if (slen > len1)
+ len1 = slen;
+ while (t->digits >= max2) {
+ len2++;
+ max2 *= 10;
+ }
+ while (t->scale >= max3) {
+ len3++;
+ max3 *= 10;
+ }
+ name = exp_relname(e);
+ if (!name && e->type == e_column && e->l)
+ name = e->l;
+ slen = name ? strlen(name) : 0;
+ if (slen > len5)
+ len5 = slen;
+ name = exp_name(e);
+ if (!name && e->type == e_column && e->r)
+ name = e->r;
+ slen = name ? strlen(name) : 0;
+ if (slen > len6)
+ len6 = slen;
}
- while (t->scale >= max3) {
- len3++;
- max3 *= 10;
- }
- name = exp_relname(e);
- if (!name && e->type == e_column && e->l)
- name = e->l;
- slen = name ? strlen(name) : 0;
- if (slen > len5)
- len5 = slen;
- name = exp_name(e);
- if (!name && e->type == e_column && e->r)
- name = e->r;
- slen = name ? strlen(name) : 0;
- if (slen > len6)
- len6 = slen;
}
- }
- /* calculate column widths */
- if (c->params) {
- unsigned int max2 = 10, max3 = 10; /* to help calculate
widths */
- for (n = c->params->h; n; n = n->next) {
- size_t slen;
+ /* calculate column widths */
+ if (c->params) {
+ unsigned int max2 = 10, max3 = 10; /* to help
calculate widths */
+
+ for (n = c->params->h; n; n = n->next) {
+ size_t slen;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list