Skip to content

Commit 086fcde

Browse files
committed
[Rails3] Remove special column (text,ntext,binary) equality/order hacks on all SELECT statements. This is moot since 2005/2008 test using the correct data types and if users are using equality/order SQL on these types, they should get the errors that come with them.
1 parent aa10c8f commit 086fcde

File tree

3 files changed

+3
-23
lines changed

3 files changed

+3
-23
lines changed

lib/active_record/connection_adapters/sqlserver/database_statements.rb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ def limited_update_conditions(where_sql, quoted_table_name, quoted_primary_key)
126126
def execute_procedure(proc_name, *variables)
127127
vars = variables.map{ |v| quote(v) }.join(', ')
128128
sql = "EXEC #{proc_name} #{vars}".strip
129-
select(sql,'Execute Procedure',true).inject([]) do |results,row|
129+
select(sql,'Execute Procedure').inject([]) do |results,row|
130130
if row.kind_of?(Array)
131131
results << row.inject([]) { |rs,r| rs << r.with_indifferent_access }
132132
else
@@ -165,8 +165,7 @@ def run_with_isolation_level(isolation_level)
165165

166166
protected
167167

168-
def select(sql, name = nil, ignore_special_columns = false)
169-
repair_special_columns(sql) unless ignore_special_columns
168+
def select(sql, name = nil)
170169
fields_and_row_sets = raw_select(sql,name)
171170
final_result_set = fields_and_row_sets.inject([]) do |rs,fields_and_rows|
172171
fields, rows = fields_and_rows

lib/active_record/connection_adapters/sqlserver/schema_statements.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ def column_definitions(table_name)
202202
WHERE columns.TABLE_NAME = '#{table_name}'
203203
ORDER BY columns.ordinal_position
204204
}.gsub(/[ \t\r\n]+/,' ')
205-
results = info_schema_query { select(sql,nil,true) }
205+
results = info_schema_query { select(sql,nil) }
206206
results.collect do |ci|
207207
ci.symbolize_keys!
208208
ci[:type] = case ci[:type]

lib/active_record/connection_adapters/sqlserver_adapter.rb

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -92,10 +92,6 @@ def is_identity?
9292
@sqlserver_options[:is_identity]
9393
end
9494

95-
def is_special?
96-
sql_type =~ /^text|ntext|image$/
97-
end
98-
9995
def is_utf8?
10096
sql_type =~ /nvarchar|ntext|nchar/i
10197
end
@@ -476,21 +472,6 @@ def finish_statement_handle(handle)
476472
end
477473
handle
478474
end
479-
480-
# HELPER METHODS ===========================================#
481-
482-
def special_columns(table_name)
483-
columns(table_name).select(&:is_special?).map(&:name)
484-
end
485-
486-
def repair_special_columns(sql)
487-
special_cols = special_columns(get_table_name(sql))
488-
for col in special_cols.to_a
489-
sql.gsub!(/((\.|\s|\()\[?#{col.to_s}\]?)\s?=\s?/, '\1 LIKE ')
490-
sql.gsub!(/ORDER BY #{col.to_s}/i, '')
491-
end
492-
sql
493-
end
494475

495476
end #class SQLServerAdapter < AbstractAdapter
496477

0 commit comments

Comments
 (0)