Skip to content

Commit 5fc266a

Browse files
committed
Use quote methods rather than single quotes to identifiers in SQL
Related rails#29612, rails#26784, rails#24950.
1 parent 9565c58 commit 5fc266a

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

activerecord/lib/active_record/connection_adapters/postgresql/schema_dumper.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ def prepare_column_options(column)
9191
spec = { type: schema_type(column).inspect }.merge!(spec)
9292
end
9393

94-
spec[:enum_type] = "\"#{column.sql_type}\"" if column.enum?
94+
spec[:enum_type] = column.sql_type.inspect if column.enum?
9595

9696
spec
9797
end

activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -576,24 +576,24 @@ def drop_enum(name, values = nil, **options)
576576

577577
# Rename an existing enum type to something else.
578578
def rename_enum(name, **options)
579-
to = options.fetch(:to) { raise ArgumentError, ":to is required" }
579+
new_name = options.fetch(:to) { raise ArgumentError, ":to is required" }
580580

581-
exec_query("ALTER TYPE #{quote_table_name(name)} RENAME TO #{to}").tap { reload_type_map }
581+
exec_query("ALTER TYPE #{quote_table_name(name)} RENAME TO #{quote_table_name(new_name)}").tap { reload_type_map }
582582
end
583583

584584
# Add enum value to an existing enum type.
585585
def add_enum_value(type_name, value, **options)
586586
before, after = options.values_at(:before, :after)
587587
sql = +"ALTER TYPE #{quote_table_name(type_name)} ADD VALUE"
588588
sql << " IF NOT EXISTS" if options[:if_not_exists]
589-
sql << " '#{value}'"
589+
sql << " #{quote(value)}"
590590

591591
if before && after
592592
raise ArgumentError, "Cannot have both :before and :after at the same time"
593593
elsif before
594-
sql << " BEFORE '#{before}'"
594+
sql << " BEFORE #{quote(before)}"
595595
elsif after
596-
sql << " AFTER '#{after}'"
596+
sql << " AFTER #{quote(after)}"
597597
end
598598

599599
execute(sql).tap { reload_type_map }
@@ -608,7 +608,7 @@ def rename_enum_value(type_name, **options)
608608
from = options.fetch(:from) { raise ArgumentError, ":from is required" }
609609
to = options.fetch(:to) { raise ArgumentError, ":to is required" }
610610

611-
execute("ALTER TYPE #{quote_table_name(type_name)} RENAME VALUE '#{from}' TO '#{to}'").tap {
611+
execute("ALTER TYPE #{quote_table_name(type_name)} RENAME VALUE #{quote(from)} TO #{quote(to)}").tap {
612612
reload_type_map
613613
}
614614
end

0 commit comments

Comments
 (0)