From 6cf056b9cf611c5940bf0870728ca3c680a039e5 Mon Sep 17 00:00:00 2001 From: Aidan Haran Date: Thu, 17 Aug 2023 15:51:29 +0100 Subject: [PATCH] Validate table name length when renaming (#1080) --- .../connection_adapters/sqlserver/schema_statements.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/active_record/connection_adapters/sqlserver/schema_statements.rb b/lib/active_record/connection_adapters/sqlserver/schema_statements.rb index 50e06011b..19283ac30 100644 --- a/lib/active_record/connection_adapters/sqlserver/schema_statements.rb +++ b/lib/active_record/connection_adapters/sqlserver/schema_statements.rb @@ -125,7 +125,10 @@ def primary_keys_select(table_name) sp_executesql(sql, "SCHEMA", binds).map { |r| r["name"] } end - def rename_table(table_name, new_name) + def rename_table(table_name, new_name, **options) + validate_table_length!(new_name) unless options[:_uses_legacy_table_name] + schema_cache.clear_data_source_cache!(table_name.to_s) + schema_cache.clear_data_source_cache!(new_name.to_s) do_execute "EXEC sp_rename '#{table_name}', '#{new_name}'" rename_table_indexes(table_name, new_name) end