]> git.ipfire.org Git - thirdparty/postgresql.git/commit
As discussed on several occasions previously, the new anonymous
authorBruce Momjian <bruce@momjian.us>
Thu, 15 Aug 2002 02:51:27 +0000 (02:51 +0000)
committerBruce Momjian <bruce@momjian.us>
Thu, 15 Aug 2002 02:51:27 +0000 (02:51 +0000)
commit45e25445846e98fe4aac23d1073566c08cd62f0b
tree7db989a91d752dca0a014eaaa6b160cb04b08b1c
parent4c4854c4583f1d7c3d0a28b714304e433f5571e8
As discussed on several occasions previously, the new anonymous
composite type capability makes it possible to create a system view
based on a table function in a way that is hopefully palatable to
everyone. The attached patch takes advantage of this, moving
show_all_settings() from contrib/tablefunc into the backend (renamed
all_settings(). It is defined as a builtin returning type RECORD. During
initdb a system view is created to expose the same information presently
available through SHOW ALL. For example:

test=# select * from pg_settings where name like '%debug%';
          name          | setting
-----------------------+---------
  debug_assertions      | on
  debug_pretty_print    | off
  debug_print_parse     | off
  debug_print_plan      | off
  debug_print_query     | off
  debug_print_rewritten | off
  wal_debug             | 0
(7 rows)

Additionally during initdb two rules are created which make it possible
to change settings by updating the system view -- a "virtual table" as
Tom put it. Here's an example:

Joe Conway
contrib/tablefunc/README.tablefunc
contrib/tablefunc/tablefunc-test.sql
contrib/tablefunc/tablefunc.c
contrib/tablefunc/tablefunc.h
contrib/tablefunc/tablefunc.sql.in
src/backend/utils/misc/guc.c
src/bin/initdb/initdb.sh
src/include/catalog/pg_proc.h
src/include/utils/builtins.h
src/test/regress/expected/rules.out