Update of /cvsroot/monetdb/sql/src/server
In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv22856/src/server

Modified Files:
      Tag: Aug2009
        sql_privileges.mx sql_schema.mx 
Log Message:

In an attampt to ensure portability to, and hence correctness on,
64-bit big-endian machines with 32-bit OIDs,
we make the SQL storage interface implementation a bit "less generic",
but a bit "more MonetDB-specific",
by using type oid instead of type ssize_t
for row indices / row ids ("rid")
that are stored as type oid in BATs.

(For convenience, these changes are wrapped in CVS tags
 "rid-ssize_t" & "rid-oid".)


Index: sql_privileges.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/server/sql_privileges.mx,v
retrieving revision 1.67
retrieving revision 1.67.2.1
diff -u -d -r1.67 -r1.67.2.1
--- sql_privileges.mx   22 May 2009 11:52:21 -0000      1.67
+++ sql_privileges.mx   12 Aug 2009 11:25:35 -0000      1.67.2.1
@@ -68,7 +68,7 @@
        sql_table *auths = find_sql_table(sys, "auths");
        sql_column *auth_name = find_sql_column(auths, "name");
 
-       if (table_funcs.column_find_row(m->session->tr, auth_name, auth, NULL) 
>= 0)
+       if (table_funcs.column_find_row(m->session->tr, auth_name, auth, NULL) 
!= oid_nil)
                return FALSE;
 
        table_funcs.table_insert(m->session->tr, auths, &id, auth, &grantor);
@@ -83,7 +83,7 @@
        sql_table *auths = find_sql_table(sys, "auths");
        sql_column *auth_name = find_sql_column(auths, "name");
 
-       if (table_funcs.column_find_row(m->session->tr, auth_name, auth, NULL) 
>= 0)
+       if (table_funcs.column_find_row(m->session->tr, auth_name, auth, NULL) 
!= oid_nil)
                return FALSE;
 
        id = store_next_oid();
@@ -95,13 +95,13 @@
 int
 sql_drop_role(mvc *m, str auth)
 {
-       ssize_t rid;
+       oid rid;
        sql_schema *sys = find_sql_schema(m->session->tr, "sys");
        sql_table *auths = find_sql_table(sys, "auths");
        sql_column *auth_name = find_sql_column(auths, "name");
 
        rid = table_funcs.column_find_row(m->session->tr, auth_name, auth, 
NULL);
-       if (rid >= 0)
+       if (rid != oid_nil)
                table_funcs.table_delete(m->session->tr, auths, rid);
        return TRUE;
 }
@@ -109,7 +109,7 @@
 int
 sql_grant_role(mvc *m, str grantee, str auth /*, grantor?, admin? */ )
 {
-       ssize_t rid;
+       oid rid;
        sql_schema *sys = find_sql_schema(m->session->tr, "sys");
        sql_table *auths = find_sql_table(sys, "auths");
        sql_table *roles = find_sql_table(sys, "user_role");
@@ -119,12 +119,12 @@
        void *auth_id, *grantee_id;
 
        rid = table_funcs.column_find_row(m->session->tr, auths_name, grantee, 
NULL);
-       if (rid < 0)
+       if (rid == oid_nil)
                return FALSE;
        grantee_id = table_funcs.column_find_value(m->session->tr, auths_id, 
rid);
 
        rid = table_funcs.column_find_row(m->session->tr, auths_name, auth, 
NULL);
-       if (rid < 0) {
+       if (rid == oid_nil) {
                _DELETE(grantee_id);
                return FALSE;
        }
@@ -140,7 +140,7 @@
 sql_revoke_role(mvc *m, str grantee, str auth)
 /* grantee no longer belongs the role (auth) */
 {
-       ssize_t rid;
+       oid rid;
        sql_schema *sys = find_sql_schema(m->session->tr, "sys");
        sql_table *auths = find_sql_table(sys, "auths");
        sql_table *roles = find_sql_table(sys, "user_role");
@@ -152,12 +152,12 @@
        void *auth_id, *grantee_id;
 
        rid = table_funcs.column_find_row(m->session->tr, auths_name, grantee, 
NULL);
-       if (rid < 0)
+       if (rid == oid_nil)
                return FALSE;
        grantee_id = table_funcs.column_find_value(m->session->tr, auths_id, 
rid);
 
        rid = table_funcs.column_find_row(m->session->tr, auths_name, auth, 
NULL);
-       if (rid < 0) {
+       if (rid == oid_nil) {
                _DELETE(grantee_id);
                return FALSE;
        }
@@ -174,14 +174,14 @@
 sql_find_auth(mvc *m, str auth)
 {
        int res = -1;
-       ssize_t rid;
+       oid rid;
        sql_schema *sys = find_sql_schema(m->session->tr, "sys");
        sql_table *auths = find_sql_table(sys, "auths");
        sql_column *auths_name = find_sql_column(auths, "name");
 
        rid = table_funcs.column_find_row(m->session->tr, auths_name, auth, 
NULL);
 
-       if (rid >= 0) {
+       if (rid != oid_nil) {
                sql_column *auths_id = find_sql_column(auths, "id");
                int *p = (int *) table_funcs.column_find_value(m->session->tr, 
auths_id, rid);
 
@@ -197,14 +197,14 @@
 sql_find_schema(mvc *m, str schema)
 {
        int schema_id = -1;
-       ssize_t rid;
+       oid rid;
        sql_schema *sys = find_sql_schema(m->session->tr, "sys");
        sql_table *schemas = find_sql_table(sys, "schemas");
        sql_column *schemas_name = find_sql_column(schemas, "name");
 
        rid = table_funcs.column_find_row(m->session->tr, schemas_name, schema, 
NULL);
 
-       if (rid >= 0) {
+       if (rid != oid_nil) {
                sql_column *schemas_id = find_sql_column(schemas, "id");
                int *p = (int *) table_funcs.column_find_value(m->session->tr, 
schemas_id, rid);
 
@@ -240,7 +240,7 @@
 int
 sql_privilege(mvc *m, int auth_id, int obj_id, int priv, int sub)
 {
-       ssize_t rid;
+       oid rid;
        sql_schema *sys = find_sql_schema(m->session->tr, "sys");
        sql_table *privs = find_sql_table(sys, "privileges");
        sql_column *priv_obj = find_sql_column(privs, "obj_id");
@@ -250,7 +250,7 @@
 
        (void) sub;
        rid = table_funcs.column_find_row(m->session->tr, priv_obj, &obj_id, 
priv_auth, &auth_id, priv_priv, &priv, NULL);
-       if (rid >= 0) {
+       if (rid != oid_nil) {
                /* found priv */
                res = priv;
        }
@@ -281,7 +281,7 @@
 int
 sql_grantable_(mvc *m, int grantorid, int obj_id, int privs, int sub)
 {
-       ssize_t rid;
+       oid rid;
        sql_schema *sys = find_sql_schema(m->session->tr, "sys");
        sql_table *prvs = find_sql_table(sys, "privileges");
        sql_column *priv_obj = find_sql_column(prvs, "obj_id");
@@ -295,7 +295,7 @@
                if (!(priv & privs))
                        continue;
                rid = table_funcs.column_find_row(m->session->tr, priv_obj, 
&obj_id, priv_auth, &grantorid, priv_priv, &priv, NULL);
-               if (rid >= 0) {
+               if (rid != oid_nil) {
                        void *p = table_funcs.column_find_value(m->session->tr, 
priv_allowed, rid);
                        int allowed = *(int *)p;
 
@@ -321,7 +321,7 @@
 int
 mvc_set_role(mvc *m, char *role)
 {
-       ssize_t rid;
+       oid rid;
        sql_schema *sys = find_sql_schema(m->session->tr, "sys");
        sql_table *auths = find_sql_table(sys, "auths");
        sql_column *auths_name = find_sql_column(auths, "name");
@@ -331,7 +331,7 @@
                fprintf(stderr, "mvc_set_role %s\n", role);
 
        rid = table_funcs.column_find_row(m->session->tr, auths_name, role, 
NULL);
-       if (rid >= 0) {
+       if (rid != oid_nil) {
                sql_table *roles = find_sql_table(sys, "user_role");
                sql_column *role_id = find_sql_column(roles, "role_id");
                sql_column *login_id = find_sql_column(roles, "login_id");
@@ -343,7 +343,7 @@
                _DELETE(p);
                rid = table_funcs.column_find_row(m->session->tr, login_id, 
&m->user_id, role_id, &id, NULL);
                
-               if (rid >= 0) {
+               if (rid != oid_nil) {
                        m->role_id = id;
                        res = 1;
                }

Index: sql_schema.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/server/sql_schema.mx,v
retrieving revision 1.177
retrieving revision 1.177.2.1
diff -u -d -r1.177 -r1.177.2.1
--- sql_schema.mx       1 Aug 2009 17:17:41 -0000       1.177
+++ sql_schema.mx       12 Aug 2009 11:25:35 -0000      1.177.2.1
@@ -336,7 +336,7 @@
        sql_column *priv_priv = find_sql_column(privs, "privileges");
        sql_trans *tr = sql->session->tr;
        rids *A;
-       ssize_t r = -1;
+       oid rid = oid_nil;
 
        (void) grantor;
        (void) grantable;
@@ -345,8 +345,8 @@
        A = table_funcs.rids_select(tr, priv_auth, &auth_id, &auth_id, 
priv_priv, &privilege, &privilege, priv_obj, &obj_id, &obj_id, NULL );
 
        /* remove them */
-       for(r = table_funcs.rids_next(A); r>=0; r = table_funcs.rids_next(A)) 
-               table_funcs.table_delete(tr, privs, r); 
+       for(rid = table_funcs.rids_next(A); rid != oid_nil; rid = 
table_funcs.rids_next(A)) 
+               table_funcs.table_delete(tr, privs, rid); 
        table_funcs.rids_destroy(A);
 }
 


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Monetdb-sql-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-sql-checkins

Reply via email to