| 434 | | ActiveRecord::Base.connection.instance_variable_get("@connection")["AutoCommit"] = false |
|---|
| 435 | | indexes = [] |
|---|
| 436 | | execute("EXEC sp_helpindex '#{table_name}'", name) do |handle| |
|---|
| 437 | | if handle.column_info.any? |
|---|
| 438 | | handle.each do |index| |
|---|
| 439 | | unique = index[1] =~ /unique/ |
|---|
| 440 | | primary = index[1] =~ /primary key/ |
|---|
| 441 | | if !primary |
|---|
| 442 | | indexes << IndexDefinition.new(table_name, index[0], unique, index[2].split(", ").map {|e| e.gsub('(-)','')}) |
|---|
| | 434 | # TODO: Does SQL Server 2005 have information_schema.indexes? If so, use that |
|---|
| | 435 | # for 2005 adapter |
|---|
| | 436 | |
|---|
| | 437 | original_autocommit = @connection["AutoCommit"] |
|---|
| | 438 | @connection["AutoCommit"] = false if original_autocommit |
|---|
| | 439 | |
|---|
| | 440 | returning(result = []) do |
|---|
| | 441 | execute("EXEC sp_helpindex '#{table_name}'", name) do |handle| |
|---|
| | 442 | if handle.column_info.any? |
|---|
| | 443 | handle.each do |index| |
|---|
| | 444 | unique = index[1] =~ /unique/ |
|---|
| | 445 | primary = index[1] =~ /primary key/ |
|---|
| | 446 | if !primary |
|---|
| | 447 | result << IndexDefinition.new(table_name, index[0], unique, index[2].split(", ").map {|e| e.gsub('(-)','')}) |
|---|
| | 448 | end |
|---|