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

Reply via email to