Update of /cvsroot/monetdb/sql/src/backends/monet5
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv12834/src/backends/monet5
Modified Files:
Tag: GDK-2
Makefile.ag sql.mx sql_result.mx sql_scenario.mx sql_user.mx
Log Message:
propagated changes of Monday Sep 03 2007 - Thursday Sep 06 2007
from the development trunk to the GDK-2 branch
Index: sql_result.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/backends/monet5/sql_result.mx,v
retrieving revision 1.60.2.3
retrieving revision 1.60.2.4
diff -u -d -r1.60.2.3 -r1.60.2.4
--- sql_result.mx 24 Aug 2007 18:39:49 -0000 1.60.2.3
+++ sql_result.mx 6 Sep 2007 13:51:59 -0000 1.60.2.4
@@ -51,7 +51,6 @@
#include <mtime.h>
#include <sql_scope.h>
#include <bat/res_table.h>
-#include <bat/bat_bm.h>
@= dec_tostr
char buf[32];
@@ -1150,10 +1149,7 @@
int
mvc_result_table(mvc *m, int nr_cols, int type, BAT *order)
{
- res_table *t = res_table_create(m->session->tr, m->result_id++,
nr_cols, type, m->results);
-
- t->order = order->batCacheid;
- bat_incref(t->order, TRUE, "mvc_result_table");
+ res_table *t = res_table_create(m->session->tr, m->result_id++,
nr_cols, type, m->results, order);
m->results = t;
return t->id;
}
@@ -1161,20 +1157,14 @@
int
mvc_result_column(mvc *m, char *tn, char *name, char *typename, int digits,
int scale, BAT *b)
{
- res_col *c = res_col_create(m->session->tr, m->results, tn, name,
typename, digits, scale);
-
- c->b = b->batCacheid;
- bat_incref(c->b, TRUE, "mvc_result_column");
+ (void)res_col_create(m->session->tr, m->results, tn, name, typename,
digits, scale, TYPE_bat, b);
return 0;
}
int
mvc_result_value(mvc *m, char *tn, char *name, char *typename, int digits, int
scale, ptr *p, int mtype)
{
- res_col *c = res_col_create(m->session->tr, m->results, tn, name,
typename, digits, scale);
-
- c->mtype = mtype;
- c->p = ATOMdup(mtype, p);
+ (void)res_col_create(m->session->tr, m->results, tn, name, typename,
digits, scale, mtype, p);
return 0;
}
Index: sql_scenario.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/backends/monet5/sql_scenario.mx,v
retrieving revision 1.274.2.2
retrieving revision 1.274.2.3
diff -u -d -r1.274.2.2 -r1.274.2.3
--- sql_scenario.mx 24 Aug 2007 09:39:53 -0000 1.274.2.2
+++ sql_scenario.mx 6 Sep 2007 13:51:59 -0000 1.274.2.3
@@ -77,6 +77,7 @@
#include "mal_parser.h"
#include "mal_builder.h"
#include <bat/res_table.h>
+#include <bat/bat_storage.h>
#include "mal_namespace.h"
#include "mal_sabaoth.h"
#include "mal_debugger.h"
@@ -207,7 +208,6 @@
char *debug_str = GDKgetenv("sql_debug");
char *gmt = "GMT";
tzone tz;
- backend_functions *be_funcs;
(void) c; /* not used */
#ifdef _SQL_SCENARIO_DEBUG
@@ -215,17 +215,15 @@
#endif
if (SQLinitialized)
return MAL_SUCCEED;
- /* SQLinitialized == FALSE; */
- be_funcs = GDKzalloc(sizeof(backend_functions));
- be_funcs->fstack = &monet5_freestack;
- be_funcs->fcode = &monet5_freecode;
- monet5_user_init(be_funcs);
- backend_init(be_funcs); /* be_funcs probably leaks */
+ memset((char*)&be_funcs, 0, sizeof(backend_functions));
+ be_funcs.fstack = &monet5_freestack;
+ be_funcs.fcode = &monet5_freecode;
+ monet5_user_init(&be_funcs);
MTIMEtimezone(&tz, &gmt);
(void) tz;
- if (mvc_init(FALSE, 0) < 0)
+ if (mvc_init(FALSE, store_bat, 0) < 0)
throw(SQL, "SQLinit", "Catalogue initialization failed");
if (debug_str)
SQLdebug = strtol(debug_str,NULL,10);
Index: Makefile.ag
===================================================================
RCS file: /cvsroot/monetdb/sql/src/backends/monet5/Makefile.ag,v
retrieving revision 1.42.4.1
retrieving revision 1.42.4.2
diff -u -d -r1.42.4.1 -r1.42.4.2
--- Makefile.ag 3 Sep 2007 13:11:01 -0000 1.42.4.1
+++ Makefile.ag 6 Sep 2007 13:51:58 -0000 1.42.4.2
@@ -27,7 +27,7 @@
sql_optimizer.mx \
sql_result.mx \
sql_readline.mx
- LIBS = ../../server/libsqlserver ../../storage/bat/libbatstore
../../common/libsqlcommon \
+ LIBS = ../../server/libsqlserver ../../storage/libstore
../../storage/bat/libbatstore ../../common/libsqlcommon \
$(MONETDB5_MODS) -l_blob -l_logger -l_mtime -l_bat5
-l_optimizer -l_tablet $(MONETDB5_LIBS) -lmal \
$(MONETDB_LIBS) -lbat -lstream $(READLINE_LIBS) $(PTHREAD_LIBS)
}
@@ -35,14 +35,14 @@
lib_embeddedsql5 = {
SOURCES = embeddedclient.mx
- LIBS = ../../server/libsqlserver ../../storage/bat/libbatstore
../../common/libsqlcommon \
+ LIBS = ../../server/libsqlserver ../../storage/libstore
../../storage/bat/libbatstore ../../common/libsqlcommon \
$(MONETDB5_MODS) -l_logger -l_bat5 -l_tablet $(MONETDB5_LIBS)
-lmal \
$(CLIENTS_LIBS) $(MONETDB_LIBS) -lbat -lMapi -lmutils -lstream
$(READLINE_LIBS) $(PTHREAD_LIBS)
}
bin_Mbeddedsql5 = {
SOURCES = prog.c
- LIBS = libembeddedsql5 ../../server/libsqlserver
../../storage/bat/libbatstore ../../common/libsqlcommon \
+ LIBS = libembeddedsql5 ../../server/libsqlserver ../../storage/libstore
../../storage/bat/libbatstore ../../common/libsqlcommon \
$(MONETDB5_MODS) -l_logger -l_bat5 -l_tablet $(MONETDB5_LIBS)
-lmal \
$(CLIENTS_LIBS) $(MONETDB_LIBS) -lbat -lMapi -lmutils -lstream
$(READLINE_LIBS) $(PTHREAD_LIBS)
}
Index: sql_user.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/backends/monet5/sql_user.mx,v
retrieving revision 1.30.4.1
retrieving revision 1.30.4.2
diff -u -d -r1.30.4.1 -r1.30.4.2
--- sql_user.mx 12 Aug 2007 17:42:29 -0000 1.30.4.1
+++ sql_user.mx 6 Sep 2007 13:51:59 -0000 1.30.4.2
@@ -49,11 +49,11 @@
sql_table *users = find_sql_table(sys, "db_user_info");
sql_column *users_name = find_sql_column(users, "name");
- rid = column_find_row(m->session->tr, users_name, auth, NULL);
+ rid = table_funcs.column_find_row(m->session->tr, users_name, auth,
NULL);
if (rid >= 0) {
sql_column *users_schema = find_sql_column(users,
"default_schema");
- int *p = (int *) column_find_value(m->session->tr,
users_schema, rid);
+ int *p = (int *) table_funcs.column_find_value(m->session->tr,
users_schema, rid);
if (p) {
res = *p;
@@ -84,9 +84,9 @@
users = find_sql_table(sys, "db_user_info");
users_name = find_sql_column(users, "name");
- rid = column_find_row(m->session->tr, users_name, user, NULL);
+ rid = table_funcs.column_find_row(m->session->tr, users_name, user,
NULL);
if (rid >= 0)
- table_delete(m->session->tr, users, rid);
+ table_funcs.table_delete(m->session->tr, users, rid);
/* FIXME: We have to ignore this inconsistency here, because the
* user was already removed from the system authorisation. Once
* we have warnings, we could issue a warning about this
@@ -227,7 +227,7 @@
schema_id = sql_find_schema(m, "sys");
assert(schema_id >= 0);
- table_insert(m->session->tr, uinfo, monetdbuser, "MonetDB Admin",
&schema_id);
+ table_funcs.table_insert(m->session->tr, uinfo, monetdbuser, "MonetDB
Admin", &schema_id);
}
static int
@@ -240,7 +240,7 @@
sql_column *users_schema = find_sql_column(users, "default_schema");
sqlid schema_id = s->base.id;
- rid = column_find_row(m->session->tr, users_schema, &schema_id, NULL);
+ rid = table_funcs.column_find_row(m->session->tr, users_schema,
&schema_id, NULL);
if (rid < 0)
return FALSE;
return TRUE;
@@ -267,51 +267,38 @@
sql_column *users_schema = find_sql_column(info,
"default_schema");
/* FIXME: we don't really check against the backend here */
- rid = column_find_row(m->session->tr, users_name, user, NULL);
+ rid = table_funcs.column_find_row(m->session->tr, users_name,
user, NULL);
if (rid < 0)
return FALSE;
- column_update_value(m->session->tr, users_schema, rid,
&schema_id);
+ table_funcs.column_update_value(m->session->tr, users_schema,
rid, &schema_id);
}
return TRUE;
}
-list*
+void*
monet5_schema_user_dependencies(ptr _trans, int schema_id)
{
+ rids *A, *U;
sql_trans *tr = (sql_trans *) _trans;
- oid rid_user;
- int user_id;
- list *users_list = NULL, *user_id_list = NULL;
- sql_schema *s;
- sql_table *users, *auths;
- sql_column *auth_id, *auth_name, *users_name, *users_sch;
- s = find_sql_schema(tr, "sys");
-
- users = find_sql_table(s, "db_user_info");
- auths = find_sql_table(s, "auths");
-
- auth_id = find_sql_column(auths, "id");
- auth_name = find_sql_column(auths, "name");
- users_name = find_sql_column(users, "name");
- users_sch = find_sql_column(users, "default_schema");
-
- users_list = table_select_column(tr, users_name, users_sch, &schema_id,
NULL);
- if (users_list)
- user_id_list = list_create((fdestroy) NULL);
- while (users_list->h) {
- rid_user = column_find_row(tr, auth_name, (char *)
users_list->h->data, NULL);
- user_id = *(int *) column_find_value(tr, auth_id, rid_user);
+ sql_schema *s = find_sql_schema(tr, "sys");
- list_append(user_id_list, &user_id);
- users_list->h = users_list->h->next;
- }
+ sql_table *auths = find_sql_table(s, "auths");
+ sql_column *auth_name = find_sql_column(auths, "name");
- if (users_list)
- list_destroy(users_list);
+ sql_table *users = find_sql_table(s, "db_user_info");
+ sql_column *users_name = find_sql_column(users, "name");
+ sql_column *users_sch = find_sql_column(users, "default_schema");
- return user_id_list;
+ /* select users with give schema */
+ U = table_funcs.rids_select(tr, users_sch, &schema_id, &schema_id,
NULL);
+ /* select all authorization ids */
+ A = table_funcs.rids_select(tr, auth_name, NULL, NULL);
+ /* join all authorization with the selected users */
+ A = table_funcs.rids_join(tr, A, auth_name, U, users_name);
+ table_funcs.rids_destroy(U);
+ return A;
}
void
@@ -362,8 +349,8 @@
users_name = find_sql_column(user_info, "name");
users_schema = find_sql_column(user_info, "default_schema");
- if ((rid = column_find_row(m->session->tr, users_name, username, NULL))
>= 0)
- p = column_find_value(m->session->tr, users_schema, rid);
+ if ((rid = table_funcs.column_find_row(m->session->tr, users_name,
username, NULL)) >= 0)
+ p = table_funcs.column_find_value(m->session->tr, users_schema,
rid);
assert(p);
schema_id = *(sqlid*)p;
@@ -375,15 +362,15 @@
auths = find_sql_table(sys, "auths");
auths_name = find_sql_column(auths, "name");
- if ((rid = column_find_row(m->session->tr, schemas_id, &schema_id,
NULL)) >= 0)
- schema = column_find_value(m->session->tr, schemas_name, rid);
+ if ((rid = table_funcs.column_find_row(m->session->tr, schemas_id,
&schema_id, NULL)) >= 0)
+ schema = table_funcs.column_find_value(m->session->tr,
schemas_name, rid);
/* only set schema if user is found */
- rid = column_find_row(m->session->tr, auths_name, username, NULL);
+ rid = table_funcs.column_find_row(m->session->tr, auths_name, username,
NULL);
if (rid >= 0) {
sql_column *auths_id = find_sql_column(auths, "id");
int id;
- p = column_find_value(m->session->tr, auths_id, rid);
+ p = table_funcs.column_find_value(m->session->tr, auths_id,
rid);
id = *(int *) p;
_DELETE(p);
Index: sql.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/backends/monet5/sql.mx,v
retrieving revision 1.230.2.3
retrieving revision 1.230.2.4
diff -u -d -r1.230.2.3 -r1.230.2.4
--- sql.mx 21 Aug 2007 14:07:56 -0000 1.230.2.3
+++ sql.mx 6 Sep 2007 13:51:58 -0000 1.230.2.4
@@ -775,9 +775,9 @@
#include "sql.h"
#include "sql_result.h"
#include "sql_gencode.h"
-#include <bat/bat_store.h>
+#include <sql_storage.h>
+#include <store_sequence.h>
#include <bat/res_table.h>
-#include <bat/bat_sequence.h>
#include <sql_datetime.h>
#include <rel_optimizer.h>
#include <rel_bin.h>
@@ -1150,25 +1150,19 @@
sql_table *t = mvc_bind_table(m, s, tname);
sql_column *c = mvc_bind_column(m, t, cname);
- if (access == UPD || access == RD_UPD)
- b = bind_ubat(tr, c, access);
- else
- b = bind_bat(tr, c, access);
+ b = store_funcs.bind_col(tr, c, access);
return b;
}
int
-mvc_append(BAT **b, mvc *m, str sname, str tname, str cname, int *access, BAT
*i)
+mvc_append(BAT **b, mvc *m, str sname, str tname, str cname, int *access, BAT
*ins)
{
sql_trans *tr = m->session->tr;
sql_schema *s = mvc_bind_schema(m, sname);
sql_table *t = mvc_bind_table(m, s, tname);
sql_column *c = mvc_bind_column(m, t, cname);
- if (*access == UPD || *access == RD_UPD)
- *b = append_ubat(tr, c, *access, i);
- else
- *b = append_bat(tr, c, *access, i);
+ *b = store_funcs.append_col(tr, c, *access, ins);
return GDK_SUCCEED;
}
@@ -1181,7 +1175,7 @@
sql_schema *s = mvc_bind_schema(m, sname);
sql_table *t = mvc_bind_table(m, s, tname);
- b = bind_dbat(tr, t, access);
+ b = store_funcs.bind_del(tr, t, access);
return b;
}
@@ -1194,25 +1188,19 @@
sql_idx *i = mvc_bind_idx(m, s, iname);
(void) tname;
- if (access == UPD || access == RD_UPD)
- b = bind_uidx(tr, i, access);
- else
- b = bind_idx(tr, i, access);
+ b = store_funcs.bind_idx(tr, i, access);
return b;
}
int
-mvc_append_idxbat(BAT **b, mvc *m, char *sname, char *tname, char *iname, int
*access, BAT *ib)
+mvc_append_idxbat(BAT **b, mvc *m, char *sname, char *tname, char *iname, int
*access, BAT *ins)
{
sql_trans *tr = m->session->tr;
sql_schema *s = mvc_bind_schema(m, sname);
sql_idx *i = mvc_bind_idx(m, s, iname);
(void) tname;
- if (*access == UPD || *access == RD_UPD)
- *b = append_uidx(tr, i, *access, ib);
- else
- *b = append_idx(tr, i, *access, ib);
+ *b = store_funcs.append_idx(tr, i, *access, ins);
return GDK_SUCCEED;
}
@@ -1371,7 +1359,7 @@
static int
mvc_result_row(mvc *m, int nr_cols, int qtype)
{
- m->results = res_table_create(m->session->tr, m->result_id++, nr_cols,
qtype, m->results);
+ m->results = res_table_create(m->session->tr, m->result_id++, nr_cols,
qtype, m->results, NULL);
return m->results->id;
}
@@ -2011,6 +1999,8 @@
return msg;
if (tpe != TYPE_str) {
r = GDKmalloc(sz);
+ if (ATOMvarsized(tpe))
+ p = *(ptr*)p;
sz = convert2str(m, eclass, d, s, has_tz, p, tpe, &r, len);
} else {
str v = *(str*)p;
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Monetdb-sql-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-sql-checkins