Changeset: e0c2a22ecd27 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/e0c2a22ecd27
Modified Files:
        sql/backends/monet5/sql_user.c
        sql/common/sql_backend.c
        sql/common/sql_backend.h
        sql/server/sql_privileges.c
Branch: userprofile
Log Message:

Fix return type: don't squeeze an oid into an int.


diffs (95 lines):

diff --git a/sql/backends/monet5/sql_user.c b/sql/backends/monet5/sql_user.c
--- a/sql/backends/monet5/sql_user.c
+++ b/sql/backends/monet5/sql_user.c
@@ -472,14 +472,10 @@ monet5_create_user(ptr _mvc, str user, s
        return ret;
 }
 
-static int
+static oid
 monet5_find_user(ptr mp, str user)
 {
-       mvc *m = (mvc *) mp;
-       oid rid = getUserOIDByName(m, user);
-       if (is_oid_nil(rid))
-               return -1;
-       return rid;
+       return getUserOIDByName((mvc *) mp, user);
 }
 
 str
diff --git a/sql/common/sql_backend.c b/sql/common/sql_backend.c
--- a/sql/common/sql_backend.c
+++ b/sql/common/sql_backend.c
@@ -51,7 +51,7 @@ backend_drop_user(ptr mvc, char *user)
        return FALSE;
 }
 
-int
+oid
 backend_find_user(ptr m, char *user)
 {
        if (be_funcs.ffuser != NULL)
diff --git a/sql/common/sql_backend.h b/sql/common/sql_backend.h
--- a/sql/common/sql_backend.h
+++ b/sql/common/sql_backend.h
@@ -17,7 +17,7 @@ typedef void (*freecode_fptr) (const cha
 
 typedef char *(*create_user_fptr) (ptr mvc, char *user, char *passwd, char 
enc, char *fullname, sqlid schema_id, char *schema_path, sqlid grantor_id, lng 
max_memory, int max_workers, str optimizer, sqlid role_id);
 typedef int  (*drop_user_fptr) (ptr mvc, char *user);
-typedef int  (*find_user_fptr) (ptr mvc, char *user);
+typedef oid  (*find_user_fptr) (ptr mvc, char *user);
 typedef void (*create_privileges_fptr) (ptr mvc, sql_schema *s);
 typedef int  (*schema_has_user_fptr) (ptr mvc, sql_schema *s);
 typedef int  (*alter_user_fptr) (ptr mvc, str user, str passwd, char enc, 
sqlid schema_id, char *schema_path, str oldpasswd, sqlid role_id);
@@ -52,7 +52,7 @@ extern void backend_freecode(const char 
 
 extern char *backend_create_user(ptr mvc, char *user, char *passwd, char enc, 
char *fullname, sqlid defschemid, char *schema_path, sqlid grantor, lng 
max_memory, int max_workers, char *optimizer, sqlid role_id);
 extern int  backend_drop_user(ptr mvc, char *user);
-extern int  backend_find_user(ptr mp, char *user);
+extern oid  backend_find_user(ptr mp, char *user);
 extern void backend_create_privileges(ptr mvc, sql_schema *s);
 extern int  backend_schema_has_user(ptr mvc, sql_schema *s);
 extern int     backend_alter_user(ptr mvc, str user, str passwd, char enc, 
sqlid schema_id, char *schema_path, str oldpasswd, sqlid role_id);
diff --git a/sql/server/sql_privileges.c b/sql/server/sql_privileges.c
--- a/sql/server/sql_privileges.c
+++ b/sql/server/sql_privileges.c
@@ -579,7 +579,7 @@ sql_grant_role(mvc *m, str grantee, str 
        if (is_oid_nil(rid))
                throw(SQL, "sql.grant_role", SQLSTATE(M1M05) "GRANT: no such 
role '%s' or grantee '%s'", role, grantee);
        role_id = store->table_api.column_find_sqlid(m->session->tr, auths_id, 
rid);
-       if (backend_find_user(m, role) >= 0)
+       if (!is_oid_nil(backend_find_user(m, role)))
                throw(SQL,"sql.grant_role", SQLSTATE(M1M05) "GRANT: '%s' is a 
USER not a ROLE", role);
        if (!admin_privs(grantor) && !role_granting_privs(m, rid, role_id, 
grantor))
                throw(SQL,"sql.grant_role", SQLSTATE(0P000) "GRANT: 
Insufficient privileges to grant ROLE '%s'", role);
@@ -789,7 +789,7 @@ sql_create_user(mvc *sql, char *user, ch
        if (!admin_privs(sql->user_id) && !admin_privs(sql->role_id))
                throw(SQL,"sql.create_user", SQLSTATE(42M31) "Insufficient 
privileges to create user '%s'", user);
 
-       if (backend_find_user(sql, user) >= 0)
+       if (!is_oid_nil(backend_find_user(sql, user)))
                throw(SQL,"sql.create_user", SQLSTATE(42M31) "CREATE USER: user 
'%s' already exists", user);
 
        if (schema) {
@@ -952,7 +952,7 @@ sql_alter_user(mvc *sql, char *user, cha
        if (!admin_privs(sql->user_id) && !admin_privs(sql->role_id) && user != 
NULL && strcmp(user, get_string_global_var(sql, "current_user")) != 0)
                throw(SQL,"sql.alter_user", SQLSTATE(M1M05) "Insufficient 
privileges to change user '%s'", user);
 
-       if (user != NULL && backend_find_user(sql, user) < 0)
+       if (user != NULL && is_oid_nil(backend_find_user(sql, user)))
                throw(SQL,"sql.alter_user", SQLSTATE(42M32) "ALTER USER: no 
such user '%s'", user);
        if (schema) {
                if (!(s = find_sql_schema(sql->session->tr, schema)))
@@ -972,9 +972,9 @@ sql_rename_user(mvc *sql, char *olduser,
        if (!admin_privs(sql->user_id) && !admin_privs(sql->role_id))
                throw(SQL,"sql.rename_user", SQLSTATE(M1M05) "ALTER USER: 
insufficient privileges to rename user '%s'", olduser);
 
-       if (backend_find_user(sql, olduser) < 0)
+       if (is_oid_nil(backend_find_user(sql, olduser)))
                throw(SQL,"sql.rename_user", SQLSTATE(42M32) "ALTER USER: no 
such user '%s'", olduser);
-       if (backend_find_user(sql, newuser) >= 0)
+       if (!is_oid_nil(backend_find_user(sql, newuser)))
                throw(SQL,"sql.rename_user", SQLSTATE(42M31) "ALTER USER: user 
'%s' already exists", newuser);
        if (backend_rename_user(sql, olduser, newuser) == FALSE)
                throw(SQL,"sql.rename_user", SQLSTATE(M1M05) "%s", sql->errstr);
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to