Changeset: bfb2a2e731c6 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/bfb2a2e731c6
Modified Files:
        sql/server/rel_optimize_exps.c
Branch: default
Log Message:

Merge with Mar2025 branch.


diffs (56 lines):

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -847,3 +847,4 @@ 6d5be335a6c739e61682366f7a84b67b0cfc0be6
 6d5be335a6c739e61682366f7a84b67b0cfc0be6 Mar2025_SP1_release
 a63e11c1fd1b2dfba2a0ed8a985455286bc023d3 Mar2025_11
 00d41c24cb9d5c43bd35e9e02e6a739a65c02810 Mar2025_13
+00d41c24cb9d5c43bd35e9e02e6a739a65c02810 Mar2025_SP2_release
diff --git a/sql/server/rel_optimize_exps.c b/sql/server/rel_optimize_exps.c
--- a/sql/server/rel_optimize_exps.c
+++ b/sql/server/rel_optimize_exps.c
@@ -879,9 +879,9 @@ rel_simplify_predicates(visitor *v, sql_
 static inline sql_exp *
 rel_remove_alias(visitor *v, sql_rel *rel, sql_exp *e)
 {
-       if (e->type != e_column)
+       if (e->type != e_column || is_selfref(e) || rel_is_ref(rel))
                return e;
-       if (!rel_is_ref(rel) && rel->op == op_project && rel->l && 
list_length(rel->exps) > 1) {
+       if (rel->op == op_project && rel->l && list_length(rel->exps) > 1) {
                sql_rel *l = rel->l;
                if (l->op == op_project) {
                        sql_exp *ne = rel_find_exp(l, e);
@@ -897,7 +897,7 @@ rel_remove_alias(visitor *v, sql_rel *re
                        }
                }
        }
-       if (!rel_is_ref(rel) && rel->op != op_project) {
+       if (rel->op != op_project) {
                bool found = false;
                if ((is_select(rel->op) || is_join(rel->op)) && rel->l && 
list_length(rel->exps) > 1) {
                        sql_rel *l = rel->l;
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
@@ -980,15 +980,15 @@ sql_drop_user(mvc *sql, char *user)
        sqlstore *store = sql->session->tr->store;
        oid rid = store->table_api.column_find_row(tr, find_sql_column(auths, 
"name"), user, NULL);
 
+       if (!deleted)
+               throw(SQL, "sql.drop_user", SQLSTATE(HY013) MAL_MALLOC_FAIL);
        if (!admin_privs(sql->user_id) &&
            !admin_privs(sql->role_id) &&
            !role_granting_privs(sql, rid, user_id, sql->user_id) &&
            !role_granting_privs(sql, rid, user_id, sql->role_id))
-               throw(SQL,"sql.drop_role", SQLSTATE(0P000) "Insufficient 
privileges to drop user '%s'", user);
-
-       if (!deleted)
-               throw(SQL, "sql.drop_user", SQLSTATE(HY013) MAL_MALLOC_FAIL);
-       msg = sql_drop_granted_users(sql, user_id, user, deleted);
+               msg = createException(SQL,"sql.drop_role", SQLSTATE(0P000) 
"Insufficient privileges to drop user '%s'", user);
+       else
+               msg = sql_drop_granted_users(sql, user_id, user, deleted);
        list_destroy(deleted);
 
        /* Flag as removed */
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to