Thread: is_view seems unnecessarily slow
backend/commands/command.c has a routine is_view() that tests for view-ness by scanning pg_rewrite (all of it) to see if the given relation has any ON SELECT rules. This is only used to disallow AlterTableAddConstraint and LockTableCommand on views. While I don't care much about the performance of AlterTableAddConstraint, it does bug me that this might slow down LOCK TABLE a good deal. Any objection to replacing this routine by a test for relkind = VIEW? regards, tom lane
Tom Lane wrote: > backend/commands/command.c has a routine is_view() that tests for > view-ness by scanning pg_rewrite (all of it) to see if the given > relation has any ON SELECT rules. > > This is only used to disallow AlterTableAddConstraint and > LockTableCommand on views. While I don't care much about the > performance of AlterTableAddConstraint, it does bug me that this > might slow down LOCK TABLE a good deal. > > Any objection to replacing this routine by a test for relkind = VIEW? No objections. These checks came from the days where views still had relkind 'r' and looking up pg_rewrite was the only way to know. Jan -- #======================================================================# # It's easier to get forgiveness for being wrong than for being right. # # Let's break this rule - forgive me. # #================================================== JanWieck@Yahoo.com #