Class: ActiveRecord::ConnectionAdapters::PostgreSQLAdapter

Inherits:
Object
  • Object
show all
Defined in:
lib/composite_primary_keys/connection_adapters/postgresql_adapter.rb

Instance Method Summary collapse

Instance Method Details

#insert_sql(sql, name = nil, pk = nil, id_value = nil, sequence_name = nil) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/composite_primary_keys/connection_adapters/postgresql_adapter.rb', line 4

def insert_sql(sql, name = nil, pk = nil, id_value = nil, sequence_name = nil)
  unless pk
    # Extract the table from the insert sql. Yuck.
    table_ref = extract_table_ref_from_insert_sql(sql)
    pk = primary_key(table_ref) if table_ref
  end

  if pk
    # CPK
    # select_value("#{sql} RETURNING #{quote_column_name(pk)}")
    select_value("#{sql} RETURNING #{quote_column_names(pk)}")
  else
    super
  end
end

#sql_for_insert(sql, pk, id_value, sequence_name, binds) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/composite_primary_keys/connection_adapters/postgresql_adapter.rb', line 21

def sql_for_insert(sql, pk, id_value, sequence_name, binds)
  unless pk
    # Extract the table from the insert sql. Yuck.
    table_ref = extract_table_ref_from_insert_sql(sql)
    pk = primary_key(table_ref) if table_ref
  end

  # CPK
  # sql = "#{sql} RETURNING #{quote_column_name(pk)}" if pk
  sql = "#{sql} RETURNING #{quote_column_names(pk)}" if pk

  [sql, binds]
end