aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDoug Cole <doug@estately.com>2012-03-31 18:13:55 -0700
committerDoug Cole <doug@estately.com>2012-03-31 18:13:55 -0700
commit20615e74cb9153436f1a2f9f858bf55e093b424b (patch)
tree72fee92cd607316cad951f4d9bf4a0ad6374ef92
parent3475051f7ff8d29eb779618c8f06e725b3889698 (diff)
downloadrails-20615e74cb9153436f1a2f9f858bf55e093b424b.tar.gz
rails-20615e74cb9153436f1a2f9f858bf55e093b424b.tar.bz2
rails-20615e74cb9153436f1a2f9f858bf55e093b424b.zip
refactor
-rw-r--r--activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb21
1 files changed, 8 insertions, 13 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
index 2509fe0490..5e166defea 100644
--- a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
@@ -797,25 +797,17 @@ module ActiveRecord
def exec_insert(sql, name, binds, pk = nil, sequence_name = nil)
val = exec_query(sql, name, binds)
if !use_returning? && pk
- if sequence_name
- last_insert_id_value(sequence_name)
- else
+ unless sequence_name
table_ref = extract_table_ref_from_insert_sql(sql)
sequence_name = default_sequence_name(table_ref, pk)
return val unless sequence_name
- last_insert_id(sequence_name)
end
+ last_insert_id_result(sequence_name)
else
val
end
end
- def last_inserted_id(result)
- return result if result.kind_of?(Integer)
- row = result.rows.first
- row && row.first
- end
-
# Executes an UPDATE query and returns the number of affected tuples.
def update_sql(sql, name = nil)
super.cmd_tuples
@@ -1406,9 +1398,12 @@ module ActiveRecord
Integer(last_insert_id_value(sequence_name))
end
- def last_insert_id_value(sequence_name) #:nodoc:
- r = exec_query("SELECT currval($1)", 'SQL', [[nil, sequence_name]])
- r.rows.first.first
+ def last_insert_id_value(sequence_name)
+ last_insert_id_result(sequence_name).rows.first.first
+ end
+
+ def last_insert_id_result(sequence_name) #:nodoc:
+ exec_query("SELECT currval($1)", 'SQL', [[nil, sequence_name]])
end
# Executes a SELECT query and returns the results, performing any data type