Changeset: c7df00a8fcf9 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/c7df00a8fcf9
Modified Files:
sql/server/rel_psm.c
Branch: Dec2025
Log Message:
Only the admin user can create functions implemented in MAL.
diffs (20 lines):
diff --git a/sql/server/rel_psm.c b/sql/server/rel_psm.c
--- a/sql/server/rel_psm.c
+++ b/sql/server/rel_psm.c
@@ -880,6 +880,7 @@ has_generic_decimal_result(list *types)
return false;
}
+#define admin_privs(g) ((g) == USER_MONETDB || (g) == ROLE_SYSADMIN)
static sql_rel *
rel_create_func(sql_query *query, dlist *qname, dlist *params, symbol *res,
dlist *ext_name, dlist *body, sql_ftype type, sql_flang lang, int replace, int
order_spec)
@@ -929,6 +930,8 @@ rel_create_func(sql_query *query, dlist
return sql_error(sql, 02, SQLSTATE(42000) "CREATE %s: %s
functions creation via SQL not supported", F, fn);
else if (LANG_EXT(lang) && !(type == F_FUNC || type == F_AGGR || type
== F_UNION || type == F_LOADER))
return sql_error(sql, 02, SQLSTATE(42000) "CREATE %s: %ss
creation via external programming languages not supported", F, fn);
+ else if (lang == FUNC_LANG_MAL && !admin_privs(sql->user_id) &&
!admin_privs(sql->role_id))
+ return sql_error(sql, 02, SQLSTATE(42000) "CREATE %s:
insufficient privileges for user '%s'", F, get_string_global_var(sql,
"current_user"));
if (sname && !(s = mvc_bind_schema(sql, sname)))
return sql_error(sql, ERR_NOTFOUND, SQLSTATE(3F000) "CREATE %s:
no such schema '%s'", F, sname);
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]