Class: Arel::Visitors::SQLServer
- Inherits:
-
Object
- Object
- Arel::Visitors::SQLServer
- Defined in:
- lib/composite_primary_keys/arel/sqlserver.rb
Instance Method Summary collapse
Instance Method Details
#make_Fetch_Possible_And_Deterministic(o) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/composite_primary_keys/arel/sqlserver.rb', line 6 def make_Fetch_Possible_And_Deterministic o return if o.limit.nil? && o.offset.nil? t = table_From_Statement o pk = primary_Key_From_Table t return unless pk if o.orders.empty? # Prefer deterministic vs a simple `(SELECT NULL)` expr. # CPK #o.orders = [pk.asc] o.orders = pk.map {|a_pk| a_pk.asc} end end |
#primary_Key_From_Table(t) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/composite_primary_keys/arel/sqlserver.rb', line 19 def primary_Key_From_Table t return unless t column_name = @connection.schema_cache.primary_keys(t.name) || @connection.schema_cache.columns_hash(t.name).first.try(:second).try(:name) # CPK # column_name ? t[column_name] : nil case column_name when Array column_name.map do |name| t[name] end when NilClass nil else [t[column_name]] end end |