Skip to content

Commit f903206

Browse files
authored
Merge pull request rails#53238 from fatkodima/fix-sequence_name-for-cpk-tables
Fix `ActiveRecord::ModelSchema.sequence_name` to work for tables with composite primary keys
2 parents 1bb4483 + 0926e59 commit f903206

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,8 @@ def client_min_messages=(level)
299299

300300
# Returns the sequence name for a table's primary key or some other specified key.
301301
def default_sequence_name(table_name, pk = "id") # :nodoc:
302+
return nil if pk.is_a?(Array)
303+
302304
result = serial_sequence(table_name, pk)
303305
return nil unless result
304306
Utils.extract_schema_qualified_name(result).to_s

activerecord/test/cases/base_test.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1343,6 +1343,10 @@ def test_sequence_name_with_abstract_class
13431343
assert_equal k.reset_sequence_name, orig_name
13441344
end
13451345

1346+
def test_sequence_name_for_cpk_model
1347+
assert_nil Cpk::Book.sequence_name
1348+
end
1349+
13461350
def test_count_with_join
13471351
res = Post.count_by_sql "SELECT COUNT(*) FROM posts LEFT JOIN comments ON posts.id=comments.post_id WHERE posts.#{QUOTED_TYPE} = 'Post'"
13481352
res2 = Post.where("posts.#{QUOTED_TYPE} = 'Post'").joins("LEFT JOIN comments ON posts.id=comments.post_id").count

0 commit comments

Comments
 (0)