aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb
diff options
context:
space:
mode:
authorBrian Buchanan <brian@tiogalake.com>2013-05-03 16:05:55 -0700
committerBrian Buchanan <brian@tiogalake.com>2013-05-03 16:05:55 -0700
commitfa87e3166fd404f9d494965fb20712a55af078fb (patch)
tree9205cdedfa7c723c529dfb831b6fcba80587b5bd /activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb
parent9a4268db99d93190c58bddcb150832727a0d5129 (diff)
downloadrails-fa87e3166fd404f9d494965fb20712a55af078fb.tar.gz
rails-fa87e3166fd404f9d494965fb20712a55af078fb.tar.bz2
rails-fa87e3166fd404f9d494965fb20712a55af078fb.zip
Make SchemaDumper emit "id: :uuid" when appropriate. Fixes #10451.
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb')
-rw-r--r--activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb3
1 files changed, 2 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb b/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb
index d9b807bba4..98916b06a5 100644
--- a/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb
+++ b/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb
@@ -321,6 +321,7 @@ module ActiveRecord
result = query(<<-end_sql, 'SCHEMA')[0]
SELECT attr.attname,
CASE
+ WHEN pg_get_expr(def.adbin, def.adrelid) !~* 'nextval' THEN NULL
WHEN split_part(pg_get_expr(def.adbin, def.adrelid), '''', 2) ~ '.' THEN
substr(split_part(pg_get_expr(def.adbin, def.adrelid), '''', 2),
strpos(split_part(pg_get_expr(def.adbin, def.adrelid), '''', 2), '.')+1)
@@ -332,7 +333,7 @@ module ActiveRecord
JOIN pg_constraint cons ON (conrelid = adrelid AND adnum = conkey[1])
WHERE t.oid = '#{quote_table_name(table)}'::regclass
AND cons.contype = 'p'
- AND pg_get_expr(def.adbin, def.adrelid) ~* 'nextval'
+ AND pg_get_expr(def.adbin, def.adrelid) ~* 'nextval|uuid_generate'
end_sql
end