Skip to content

Commit b26f112

Browse files
committed
Insert queries that include the word "insert" as a partial column name with the word "id" as a value were falsely being matched as identity inserts.
1 parent e5fcaff commit b26f112

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

CHANGELOG

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11

22
MASTER
33

4+
* Insert queries that include the word "insert" as a partial column name with the word
5+
"id" as a value were falsely being matched as identity inserts. [Sean Caffery/bfabry]
6+
47
* Delegate all low level #raw_connection calls to #raw_connection_run and #raw_connection_do
58
which abstract out the low level modes in the connection options at that point. [Ken Collins]
69

lib/active_record/connection_adapters/sqlserver_adapter.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -942,7 +942,7 @@ def query_requires_identity_insert?(sql)
942942
if insert_sql?(sql)
943943
table_name = get_table_name(sql)
944944
id_column = identity_column(table_name)
945-
id_column && sql =~ /INSERT[^(]+\([^)]*\b(#{id_column.name})\b,?[^)]*\)/i ? quote_table_name(table_name) : false
945+
id_column && sql =~ /^\s*INSERT[^(]+\([^)]*\b(#{id_column.name})\b,?[^)]*\)/i ? quote_table_name(table_name) : false
946946
else
947947
false
948948
end

0 commit comments

Comments
 (0)