Module: ActiveRecord::Import::PostgreSQLAdapter

Includes:
ImportSupport
Included in:
ConnectionAdapters::PostgreSQLAdapter
Defined in:
lib/activerecord-import/adapters/postgresql_adapter.rb

Instance Method Summary collapse

Methods included from ImportSupport

#supports_import?

Instance Method Details

#insert_many(sql, values, *args) ⇒ Object

:nodoc:



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/activerecord-import/adapters/postgresql_adapter.rb', line 4

def insert_many( sql, values, *args ) # :nodoc:
  number_of_inserts = 1

  base_sql,post_sql = if sql.is_a?( String )
    [ sql, '' ]
  elsif sql.is_a?( Array )
    [ sql.shift, sql.join( ' ' ) ]
  end

  sql2insert = base_sql + values.join( ',' ) + post_sql
  ids = select_values( sql2insert, *args )

  ActiveRecord::Base.connection.query_cache.clear

  [number_of_inserts,ids]
end

#next_value_for_sequence(sequence_name) ⇒ Object



21
22
23
# File 'lib/activerecord-import/adapters/postgresql_adapter.rb', line 21

def next_value_for_sequence(sequence_name)
  %{nextval('#{sequence_name}')}
end

#post_sql_statements(table_name, options) ⇒ Object

:nodoc:



25
26
27
28
29
30
31
# File 'lib/activerecord-import/adapters/postgresql_adapter.rb', line 25

def post_sql_statements( table_name, options ) # :nodoc:
  unless options[:primary_key].blank?
    super(table_name, options) << (" RETURNING #{options[:primary_key]}")
  else
    super(table_name, options)
  end
end

#support_setting_primary_key_of_imported_objects?Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/activerecord-import/adapters/postgresql_adapter.rb', line 33

def support_setting_primary_key_of_imported_objects?
  true
end