mirror of
https://github.com/aljazceru/turso.git
synced 2026-01-07 02:04:21 +01:00
Merge 'Fix disallow reserved prefixes in ALTER TABLE RENAME TO' from xmchx
Closes #3574 Closes #3663
This commit is contained in:
@@ -6,7 +6,7 @@ use turso_parser::{
|
||||
|
||||
use crate::{
|
||||
function::{AlterTableFunc, Func},
|
||||
schema::{Column, Table},
|
||||
schema::{Column, Table, RESERVED_TABLE_PREFIXES},
|
||||
translate::{
|
||||
emitter::Resolver,
|
||||
expr::{walk_expr, WalkControl},
|
||||
@@ -41,6 +41,17 @@ pub fn translate_alter_table(
|
||||
crate::bail_parse_error!("table {} may not be modified", table_name);
|
||||
}
|
||||
|
||||
if let ast::AlterTableBody::RenameTo(new_table_name) = &alter_table {
|
||||
let normalized_new_name = normalize_ident(new_table_name.as_str());
|
||||
|
||||
if RESERVED_TABLE_PREFIXES
|
||||
.iter()
|
||||
.any(|prefix| normalized_new_name.starts_with(prefix))
|
||||
{
|
||||
crate::bail_parse_error!("Object name reserved for internal use: {}", new_table_name);
|
||||
}
|
||||
}
|
||||
|
||||
let table_indexes = resolver.schema.get_indices(table_name).collect::<Vec<_>>();
|
||||
|
||||
if !table_indexes.is_empty() && !resolver.schema.indexes_enabled() {
|
||||
|
||||
Reference in New Issue
Block a user