Changeset: d132bcb19865 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d132bcb19865
Modified Files:
monetdb5/extras/pyapi/connection.c
sql/backends/monet5/sql.c
sql/backends/monet5/sql_execute.c
sql/backends/monet5/sql_execute.h
sql/backends/monet5/sql_result.c
Branch: pythonudf
Log Message:
Added OFMT_NONE back in, but only use it for loopback queries (to avoid
breaking MAL).
diffs (87 lines):
diff --git a/monetdb5/extras/pyapi/connection.c
b/monetdb5/extras/pyapi/connection.c
--- a/monetdb5/extras/pyapi/connection.c
+++ b/monetdb5/extras/pyapi/connection.c
@@ -223,7 +223,7 @@ void _connection_cleanup_result(void* ou
char* _connection_query(Client cntxt, char* query, res_table** result) {
str res = MAL_SUCCEED;
Client c = cntxt;
- res = SQLstatementIntern(c, &query, "name", 1, 0, result);
+ res = SQLstatementIntern_ext(c, &query, "name", 1, 0, result, 1);
return res;
}
diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -3328,9 +3328,9 @@ mvc_scalar_value_wrap(Client cntxt, MalB
b = cntxt->sqlcontext;
if (ATOMextern(mtype))
p = *(ptr *) p;
- /*if (b->output_format == OFMT_NONE) {
+ if (b->output_format == OFMT_NONE) {
return MAL_SUCCEED;
- }*/
+ }
if (b->out == NULL || mvc_export_value(b, b->out, 1, *tn, *cn, *type,
*digits, *scale, *eclass, p, mtype, "", "NULL") != SQL_OK)
throw(SQL, "sql.exportValue", "failed");
return MAL_SUCCEED;
diff --git a/sql/backends/monet5/sql_execute.c
b/sql/backends/monet5/sql_execute.c
--- a/sql/backends/monet5/sql_execute.c
+++ b/sql/backends/monet5/sql_execute.c
@@ -50,9 +50,18 @@
* The tricky part for this statement is to ensure that the SQL statement
* is executed within the client context specified. This leads to context
juggling.
*/
+
+
+
str
SQLstatementIntern(Client c, str *expr, str nme, int execute, bit output,
res_table **result)
{
+ return SQLstatementIntern_ext(c, expr, nme, execute, output, result, 0);
+}
+
+str
+SQLstatementIntern_ext(Client c, str *expr, str nme, int execute, bit output,
res_table **result, bit ofmt)
+{
int status = 0;
int err = 0;
mvc *o, *m;
@@ -95,9 +104,9 @@ SQLstatementIntern(Client c, str *expr,
be = sql;
sql = backend_create(m, c);
sql->output_format = be->output_format;
- /*if (!output) {
+ if (ofmt) {
sql->output_format = OFMT_NONE;
- }*/
+ }
m->qc = NULL;
m->caching = 0;
m->user_id = m->role_id = USER_MONETDB;
diff --git a/sql/backends/monet5/sql_execute.h
b/sql/backends/monet5/sql_execute.h
--- a/sql/backends/monet5/sql_execute.h
+++ b/sql/backends/monet5/sql_execute.h
@@ -12,6 +12,7 @@
sql5_export str SQLstatementREST(Client c, MalBlkPtr mb, MalStkPtr stk,
InstrPtr pci);
sql5_export str SQLstatementIntern(Client c, str *expr, str nme, int execute,
bit output, res_table **result);
+sql5_export str SQLstatementIntern_ext(Client c, str *expr, str nme, int
execute, bit output, res_table **result, bit ofmt);
sql5_export str SQLexecutePrepared(Client c, backend *be, cq *q);
sql5_export str SQLengineIntern(Client c, backend *be);
sql5_export str SQLrecompile(Client c, backend *be);
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
@@ -1870,9 +1870,9 @@ mvc_export_result(backend *b, stream *s,
return 0;
/* Proudly supporting SQLstatementIntern's output flag */
- /*if (b->output_format == OFMT_NONE) {
+ if (b->output_format == OFMT_NONE) {
return 0;
- }*/
+ }
/* we shouldn't have anything else but Q_TABLE here */
assert(t->query_type == Q_TABLE);
if (t->tsep)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list