Changeset: ec0912d3c813 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/ec0912d3c813 Modified Files: sql/server/rel_schema.c sql/server/sql_scan.c Branch: Jul2021 Log Message:
Safer solution, disallow 'TID%' as an identifier diffs (24 lines): diff --git a/sql/server/rel_schema.c b/sql/server/rel_schema.c --- a/sql/server/rel_schema.c +++ b/sql/server/rel_schema.c @@ -1831,8 +1831,6 @@ rel_create_index(mvc *sql, char *iname, return sql_error(sql, 02, SQLSTATE(42000) "CREATE INDEX: access denied for %s to schema '%s'", get_string_global_var(sql, "current_user"), t->s->base.name); if ((i = mvc_bind_idx(sql, t->s, iname))) return sql_error(sql, 02, SQLSTATE(42S11) "CREATE INDEX: name '%s' already in use", iname); - if (strcmp(iname, TID + 1) == 0) /* an index named 'TID%' could interfere with '%TID%' */ - return sql_error(sql, 02, SQLSTATE(42000) "CREATE INDEX: name '%s' not allowed", iname); if (isView(t) || isMergeTable(t) || isRemote(t)) return sql_error(sql, 02, SQLSTATE(42S02) "CREATE INDEX: cannot create index on %s '%s'", isView(t)?"view":isMergeTable(t)?"merge table":"remote table", tname); nt = dup_sql_table(sql->sa, t); diff --git a/sql/server/sql_scan.c b/sql/server/sql_scan.c --- a/sql/server/sql_scan.c +++ b/sql/server/sql_scan.c @@ -1225,6 +1225,8 @@ valid_ident(const char *restrict s, char return false; } dst[p] = '\0'; + if (strcmp(dst, TID + 1) == 0) /* an index named 'TID%' could interfere with '%TID%' */ + return false; return true; } _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list