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

Reply via email to