From 9b57b83c76773d7ccb36ecbf45a06e382c612c33 Mon Sep 17 00:00:00 2001 From: Alex Baldwin Date: Tue, 6 Jun 2023 14:32:33 -0400 Subject: [PATCH] Test virtual stored columns on create for Postgres Closes: https://github.com/rails/rails/issues/45736 Codify example from #45736 into test suite --- activerecord/test/cases/persistence_test.rb | 1 + activerecord/test/schema/postgresql_specific_schema.rb | 1 + 2 files changed, 2 insertions(+) diff --git a/activerecord/test/cases/persistence_test.rb b/activerecord/test/cases/persistence_test.rb index 0c0340fa99..2e52bcd4ca 100644 --- a/activerecord/test/cases/persistence_test.rb +++ b/activerecord/test/cases/persistence_test.rb @@ -47,6 +47,7 @@ def test_fills_auto_populated_columns_on_creation record_with_defaults = Default.create assert_not_nil record_with_defaults.id assert_equal "Ruby on Rails", record_with_defaults.ruby_on_rails + assert_not_nil record_with_defaults.virtual_stored_number assert_not_nil record_with_defaults.rand_number assert_not_nil record_with_defaults.modified_date assert_not_nil record_with_defaults.modified_date_function diff --git a/activerecord/test/schema/postgresql_specific_schema.rb b/activerecord/test/schema/postgresql_specific_schema.rb index 978d7b459c..8a396d8391 100644 --- a/activerecord/test/schema/postgresql_specific_schema.rb +++ b/activerecord/test/schema/postgresql_specific_schema.rb @@ -25,6 +25,7 @@ end create_table :defaults, force: true do |t| + t.virtual :virtual_stored_number, type: :integer, as: "rand_number * 10", stored: true t.integer :rand_number, default: -> { "random() * 100" } t.string :ruby_on_rails, default: -> { "concat('Ruby ', 'on ', 'Rails')" } t.date :modified_date, default: -> { "CURRENT_DATE" }