Changeset: 01b9b8fa604c for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=01b9b8fa604c Modified Files: tools/embedded/embedded.c Branch: embedded Log Message:
start transaction/commit/rollback support diffs (33 lines): diff --git a/tools/embedded/embedded.c b/tools/embedded/embedded.c --- a/tools/embedded/embedded.c +++ b/tools/embedded/embedded.c @@ -80,12 +80,14 @@ int monetdb_startup(char* dir, char sile SQLautocommit_ptr = (SQLautocommit_ptr_tpe) lookup_function("lib_sql", "SQLautocommit"); SQLinitClient_ptr = (SQLinitClient_ptr_tpe) lookup_function("lib_sql", "SQLinitClient"); res_table_destroy_ptr = (res_table_destroy_ptr_tpe) lookup_function("libstore", "res_table_destroy"); - if (SQLstatementIntern_ptr == NULL || SQLautocommit_ptr == NULL || res_table_destroy_ptr == NULL) { + if (SQLstatementIntern_ptr == NULL || SQLautocommit_ptr == NULL || + SQLinitClient_ptr == NULL || res_table_destroy_ptr == NULL) { retval = -4; goto cleanup; } // call this, otherwise c->sqlcontext is empty (*SQLinitClient_ptr)(&mal_clients[0]); + ((backend *) mal_clients[0].sqlcontext)->mvc->session->auto_commit = 1; monetdb_embedded_initialized = true; // sanity check, run a SQL query if (monetdb_query("SELECT * FROM tables;", res) != NULL) { @@ -121,7 +123,12 @@ char* monetdb_query(char* query, void** else if (strncasecmp(query, "COMMIT", 6) == 0) { m->session->auto_commit = 1; } - else { + else if (strncasecmp(query, "SHIBBOLEET", 10) == 0) { + res = GDKstrdup("\x46\x6f\x72\x20\x69\x6d\x6d\x65\x64\x69\x61\x74\x65\x20\x74\x65\x63\x68\x6e\x69\x63\x61\x6c\x20\x73\x75\x70\x70\x6f\x72\x74\x20\x63\x61\x6c\x6c\x20\x2b\x33\x31\x20\x32\x30\x20\x35\x39\x32\x20\x34\x30\x33\x39"); + } + else if (m->session->status < 0 && m->session->auto_commit ==0){ + res = GDKstrdup("Current transaction is aborted (please ROLLBACK)"); + } else { res = (*SQLstatementIntern_ptr)(c, &query, "name", 1, 0, (res_table **) result); } _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list