diff --git a/lib/sequel/extensions/pg_comment/database_methods.rb b/lib/sequel/extensions/pg_comment/database_methods.rb index f58bf61..287080d 100644 --- a/lib/sequel/extensions/pg_comment/database_methods.rb +++ b/lib/sequel/extensions/pg_comment/database_methods.rb @@ -187,7 +187,11 @@ def create_view(*args) super if args.last.is_a?(Hash) && args.last[:comment] - comment_on(:view, args.first, args.last[:comment]) + if args.last[:materialized] + comment_on(:materialized_view, args.first, args.last[:comment]) + else + comment_on(:view, args.first, args.last[:comment]) + end end end diff --git a/spec/create_view_comment_spec.rb b/spec/create_view_comment_spec.rb index 1336acb..d6830dc 100644 --- a/spec/create_view_comment_spec.rb +++ b/spec/create_view_comment_spec.rb @@ -6,7 +6,7 @@ Sequel.connect("mock://postgres").extension(:pg_comment) end - it "sets a table comment" do + it "sets a table comment on a view" do db.create_view( :gold_albums, db[:albums].where { copies_sold > 500_000 }, @@ -15,4 +15,15 @@ expect(db.sqls.last). to eq("COMMENT ON VIEW \"gold_albums\" IS 'Rich!'") end + + it "sets a table comment on a materialized view" do + db.create_view( + :gold_albums_mv, + db[:albums].where { copies_sold > 500_000 }, + :comment => "Rich!", + :materialized => true, + ) + expect(db.sqls.last). + to eq("COMMENT ON MATERIALIZED VIEW \"gold_albums_mv\" IS 'Rich!'") + end end