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