guc.out
来自「postgresql8.3.4源码,开源数据库」· OUT 代码 · 共 702 行
OUT
702 行
-- pg_regress should ensure that this default value applies; however-- we can't rely on any specific default value of vacuum_cost_delaySHOW datestyle; DateStyle --------------- Postgres, MDY(1 row)-- SET to some nondefault valueSET vacuum_cost_delay TO 400;SET datestyle = 'ISO, YMD';SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- 400ms(1 row)SHOW datestyle; DateStyle ----------- ISO, YMD(1 row)SELECT '2006-08-13 12:34:56'::timestamptz; timestamptz ------------------------ 2006-08-13 12:34:56-07(1 row)-- SET LOCAL has no effect outside of a transactionSET LOCAL vacuum_cost_delay TO 500;SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- 400ms(1 row)SET LOCAL datestyle = 'SQL';SHOW datestyle; DateStyle ----------- ISO, YMD(1 row)SELECT '2006-08-13 12:34:56'::timestamptz; timestamptz ------------------------ 2006-08-13 12:34:56-07(1 row)-- SET LOCAL within a transaction that commitsBEGIN;SET LOCAL vacuum_cost_delay TO 500;SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- 500ms(1 row)SET LOCAL datestyle = 'SQL';SHOW datestyle; DateStyle ----------- SQL, YMD(1 row)SELECT '2006-08-13 12:34:56'::timestamptz; timestamptz ------------------------- 08/13/2006 12:34:56 PDT(1 row)COMMIT;SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- 400ms(1 row)SHOW datestyle; DateStyle ----------- ISO, YMD(1 row)SELECT '2006-08-13 12:34:56'::timestamptz; timestamptz ------------------------ 2006-08-13 12:34:56-07(1 row)-- SET should be reverted after ROLLBACKBEGIN;SET vacuum_cost_delay TO 600;SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- 600ms(1 row)SET datestyle = 'German';SHOW datestyle; DateStyle ------------- German, DMY(1 row)SELECT '2006-08-13 12:34:56'::timestamptz; timestamptz ------------------------- 13.08.2006 12:34:56 PDT(1 row)ROLLBACK;SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- 400ms(1 row)SHOW datestyle; DateStyle ----------- ISO, YMD(1 row)SELECT '2006-08-13 12:34:56'::timestamptz; timestamptz ------------------------ 2006-08-13 12:34:56-07(1 row)-- Some tests with subtransactionsBEGIN;SET vacuum_cost_delay TO 700;SET datestyle = 'MDY';SHOW datestyle; DateStyle ----------- ISO, MDY(1 row)SELECT '2006-08-13 12:34:56'::timestamptz; timestamptz ------------------------ 2006-08-13 12:34:56-07(1 row)SAVEPOINT first_sp;SET vacuum_cost_delay TO 800;SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- 800ms(1 row)SET datestyle = 'German, DMY';SHOW datestyle; DateStyle ------------- German, DMY(1 row)SELECT '2006-08-13 12:34:56'::timestamptz; timestamptz ------------------------- 13.08.2006 12:34:56 PDT(1 row)ROLLBACK TO first_sp;SHOW datestyle; DateStyle ----------- ISO, MDY(1 row)SELECT '2006-08-13 12:34:56'::timestamptz; timestamptz ------------------------ 2006-08-13 12:34:56-07(1 row)SAVEPOINT second_sp;SET vacuum_cost_delay TO 900;SET datestyle = 'SQL, YMD';SHOW datestyle; DateStyle ----------- SQL, YMD(1 row)SELECT '2006-08-13 12:34:56'::timestamptz; timestamptz ------------------------- 08/13/2006 12:34:56 PDT(1 row)SAVEPOINT third_sp;SET vacuum_cost_delay TO 1000;SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- 1s(1 row)SET datestyle = 'Postgres, MDY';SHOW datestyle; DateStyle --------------- Postgres, MDY(1 row)SELECT '2006-08-13 12:34:56'::timestamptz; timestamptz ------------------------------ Sun Aug 13 12:34:56 2006 PDT(1 row)ROLLBACK TO third_sp;SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- 900ms(1 row)SHOW datestyle; DateStyle ----------- SQL, YMD(1 row)SELECT '2006-08-13 12:34:56'::timestamptz; timestamptz ------------------------- 08/13/2006 12:34:56 PDT(1 row)ROLLBACK TO second_sp;SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- 700ms(1 row)SHOW datestyle; DateStyle ----------- ISO, MDY(1 row)SELECT '2006-08-13 12:34:56'::timestamptz; timestamptz ------------------------ 2006-08-13 12:34:56-07(1 row)ROLLBACK;SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- 400ms(1 row)SHOW datestyle; DateStyle ----------- ISO, YMD(1 row)SELECT '2006-08-13 12:34:56'::timestamptz; timestamptz ------------------------ 2006-08-13 12:34:56-07(1 row)-- SET LOCAL with SavepointsBEGIN;SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- 400ms(1 row)SHOW datestyle; DateStyle ----------- ISO, YMD(1 row)SELECT '2006-08-13 12:34:56'::timestamptz; timestamptz ------------------------ 2006-08-13 12:34:56-07(1 row)SAVEPOINT sp;SET LOCAL vacuum_cost_delay TO 300;SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- 300ms(1 row)SET LOCAL datestyle = 'Postgres, MDY';SHOW datestyle; DateStyle --------------- Postgres, MDY(1 row)SELECT '2006-08-13 12:34:56'::timestamptz; timestamptz ------------------------------ Sun Aug 13 12:34:56 2006 PDT(1 row)ROLLBACK TO sp;SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- 400ms(1 row)SHOW datestyle; DateStyle ----------- ISO, YMD(1 row)SELECT '2006-08-13 12:34:56'::timestamptz; timestamptz ------------------------ 2006-08-13 12:34:56-07(1 row)ROLLBACK;SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- 400ms(1 row)SHOW datestyle; DateStyle ----------- ISO, YMD(1 row)SELECT '2006-08-13 12:34:56'::timestamptz; timestamptz ------------------------ 2006-08-13 12:34:56-07(1 row)-- SET LOCAL persists through RELEASE (which was not true in 8.0-8.2)BEGIN;SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- 400ms(1 row)SHOW datestyle; DateStyle ----------- ISO, YMD(1 row)SELECT '2006-08-13 12:34:56'::timestamptz; timestamptz ------------------------ 2006-08-13 12:34:56-07(1 row)SAVEPOINT sp;SET LOCAL vacuum_cost_delay TO 300;SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- 300ms(1 row)SET LOCAL datestyle = 'Postgres, MDY';SHOW datestyle; DateStyle --------------- Postgres, MDY(1 row)SELECT '2006-08-13 12:34:56'::timestamptz; timestamptz ------------------------------ Sun Aug 13 12:34:56 2006 PDT(1 row)RELEASE SAVEPOINT sp;SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- 300ms(1 row)SHOW datestyle; DateStyle --------------- Postgres, MDY(1 row)SELECT '2006-08-13 12:34:56'::timestamptz; timestamptz ------------------------------ Sun Aug 13 12:34:56 2006 PDT(1 row)ROLLBACK;SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- 400ms(1 row)SHOW datestyle; DateStyle ----------- ISO, YMD(1 row)SELECT '2006-08-13 12:34:56'::timestamptz; timestamptz ------------------------ 2006-08-13 12:34:56-07(1 row)-- SET followed by SET LOCALBEGIN;SET vacuum_cost_delay TO 400;SET LOCAL vacuum_cost_delay TO 500;SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- 500ms(1 row)SET datestyle = 'ISO, DMY';SET LOCAL datestyle = 'Postgres, MDY';SHOW datestyle; DateStyle --------------- Postgres, MDY(1 row)SELECT '2006-08-13 12:34:56'::timestamptz; timestamptz ------------------------------ Sun Aug 13 12:34:56 2006 PDT(1 row)COMMIT;SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- 400ms(1 row)SHOW datestyle; DateStyle ----------- ISO, DMY(1 row)SELECT '2006-08-13 12:34:56'::timestamptz; timestamptz ------------------------ 2006-08-13 12:34:56-07(1 row)---- Test RESET. We use datestyle because the reset value is forced by-- pg_regress, so it doesn't depend on the installation's configuration.--SET datestyle = iso, ymd;SHOW datestyle; DateStyle ----------- ISO, YMD(1 row)SELECT '2006-08-13 12:34:56'::timestamptz; timestamptz ------------------------ 2006-08-13 12:34:56-07(1 row)RESET datestyle;SHOW datestyle; DateStyle --------------- Postgres, MDY(1 row)SELECT '2006-08-13 12:34:56'::timestamptz; timestamptz ------------------------------ Sun Aug 13 12:34:56 2006 PDT(1 row)---- Test DISCARD TEMP--CREATE TEMP TABLE reset_test ( data text ) ON COMMIT DELETE ROWS;SELECT relname FROM pg_class WHERE relname = 'reset_test'; relname ------------ reset_test(1 row)DISCARD TEMP;SELECT relname FROM pg_class WHERE relname = 'reset_test'; relname ---------(0 rows)---- Test DISCARD ALL---- do changesDECLARE foo CURSOR WITH HOLD FOR SELECT 1;PREPARE foo AS SELECT 1;LISTEN foo_event;SET vacuum_cost_delay = 13;CREATE TEMP TABLE tmp_foo (data text) ON COMMIT DELETE ROWS;CREATE ROLE temp_reset_user;SET SESSION AUTHORIZATION temp_reset_user;-- look changesSELECT relname FROM pg_listener; relname ----------- foo_event(1 row)SELECT name FROM pg_prepared_statements; name ------ foo(1 row)SELECT name FROM pg_cursors; name ------ foo(1 row)SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- 13ms(1 row)SELECT relname from pg_class where relname = 'tmp_foo'; relname --------- tmp_foo(1 row)SELECT current_user = 'temp_reset_user'; ?column? ---------- t(1 row)-- discard everythingDISCARD ALL;-- look againSELECT relname FROM pg_listener; relname ---------(0 rows)SELECT name FROM pg_prepared_statements; name ------(0 rows)SELECT name FROM pg_cursors; name ------(0 rows)SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- 0(1 row)SELECT relname from pg_class where relname = 'tmp_foo'; relname ---------(0 rows)SELECT current_user = 'temp_reset_user'; ?column? ---------- f(1 row)DROP ROLE temp_reset_user;---- Tests for function-local GUC settings--set regex_flavor = advanced;create function report_guc(text) returns text as$$ select current_setting($1) $$ language sqlset regex_flavor = basic;select report_guc('regex_flavor'), current_setting('regex_flavor'); report_guc | current_setting ------------+----------------- basic | advanced(1 row)-- this should draw only a warningalter function report_guc(text) set search_path = no_such_schema;NOTICE: schema "no_such_schema" does not exist-- with error occurring hereselect report_guc('regex_flavor'), current_setting('regex_flavor');ERROR: schema "no_such_schema" does not existalter function report_guc(text) reset search_path set regex_flavor = extended;select report_guc('regex_flavor'), current_setting('regex_flavor'); report_guc | current_setting ------------+----------------- extended | advanced(1 row)alter function report_guc(text) reset all;select report_guc('regex_flavor'), current_setting('regex_flavor'); report_guc | current_setting ------------+----------------- advanced | advanced(1 row)-- SET LOCAL is restricted by a function SET optioncreate or replace function myfunc(int) returns text as $$begin set local regex_flavor = extended; return current_setting('regex_flavor');end $$language plpgsqlset regex_flavor = basic;select myfunc(0), current_setting('regex_flavor'); myfunc | current_setting ----------+----------------- extended | advanced(1 row)alter function myfunc(int) reset all;select myfunc(0), current_setting('regex_flavor'); myfunc | current_setting ----------+----------------- extended | extended(1 row)set regex_flavor = advanced;-- but SET isn'tcreate or replace function myfunc(int) returns text as $$begin set regex_flavor = extended; return current_setting('regex_flavor');end $$language plpgsqlset regex_flavor = basic;select myfunc(0), current_setting('regex_flavor'); myfunc | current_setting ----------+----------------- extended | extended(1 row)set regex_flavor = advanced;-- it should roll back on error, thoughcreate or replace function myfunc(int) returns text as $$begin set regex_flavor = extended; perform 1/$1; return current_setting('regex_flavor');end $$language plpgsqlset regex_flavor = basic;select myfunc(0);ERROR: division by zeroCONTEXT: SQL statement "SELECT 1/ $1 "PL/pgSQL function "myfunc" line 3 at PERFORMselect current_setting('regex_flavor'); current_setting ----------------- advanced(1 row)select myfunc(1), current_setting('regex_flavor'); myfunc | current_setting ----------+----------------- extended | extended(1 row)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?