diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2009-10-21 20:38:58 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2009-10-21 20:38:58 +0000 |
commit | ab61df9e527dcedbd3bbefbcb8b634b0b72f2ad5 (patch) | |
tree | 37681f50c738902a0a7cbe6ebc405d59042fbf30 /src/test | |
parent | 289e2905c82fc37f8b82b088bb823742aad4bb68 (diff) | |
download | postgresql-ab61df9e527dcedbd3bbefbcb8b634b0b72f2ad5.tar.gz postgresql-ab61df9e527dcedbd3bbefbcb8b634b0b72f2ad5.zip |
Remove regex_flavor GUC, so that regular expressions are always "advanced"
style by default. Per discussion, there seems to be hardly anything that
really relies on being able to change the regex flavor, so the ability to
select it via embedded options ought to be enough for any stragglers.
Also, if we didn't remove the GUC, we'd really be morally obligated to
mark the regex functions non-immutable, which'd possibly create performance
issues.
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/regress/expected/guc.out | 78 | ||||
-rw-r--r-- | src/test/regress/sql/guc.sql | 46 |
2 files changed, 62 insertions, 62 deletions
diff --git a/src/test/regress/expected/guc.out b/src/test/regress/expected/guc.out index a580daa089d..1fd2b98f6e8 100644 --- a/src/test/regress/expected/guc.out +++ b/src/test/regress/expected/guc.out @@ -607,95 +607,95 @@ DROP ROLE temp_reset_user; -- -- Tests for function-local GUC settings -- -set regex_flavor = advanced; +set work_mem = '3MB'; create function report_guc(text) returns text as $$ select current_setting($1) $$ language sql -set regex_flavor = basic; -select report_guc('regex_flavor'), current_setting('regex_flavor'); +set work_mem = '1MB'; +select report_guc('work_mem'), current_setting('work_mem'); report_guc | current_setting ------------+----------------- - basic | advanced + 1MB | 3MB (1 row) -- this should draw only a warning alter function report_guc(text) set search_path = no_such_schema; NOTICE: schema "no_such_schema" does not exist -- with error occurring here -select report_guc('regex_flavor'), current_setting('regex_flavor'); +select report_guc('work_mem'), current_setting('work_mem'); ERROR: schema "no_such_schema" does not exist -alter function report_guc(text) reset search_path set regex_flavor = extended; -select report_guc('regex_flavor'), current_setting('regex_flavor'); +alter function report_guc(text) reset search_path set work_mem = '2MB'; +select report_guc('work_mem'), current_setting('work_mem'); report_guc | current_setting ------------+----------------- - extended | advanced + 2MB | 3MB (1 row) alter function report_guc(text) reset all; -select report_guc('regex_flavor'), current_setting('regex_flavor'); +select report_guc('work_mem'), current_setting('work_mem'); report_guc | current_setting ------------+----------------- - advanced | advanced + 3MB | 3MB (1 row) -- SET LOCAL is restricted by a function SET option create or replace function myfunc(int) returns text as $$ begin - set local regex_flavor = extended; - return current_setting('regex_flavor'); + set local work_mem = '2MB'; + return current_setting('work_mem'); end $$ language plpgsql -set regex_flavor = basic; -select myfunc(0), current_setting('regex_flavor'); - myfunc | current_setting -----------+----------------- - extended | advanced +set work_mem = '1MB'; +select myfunc(0), current_setting('work_mem'); + myfunc | current_setting +--------+----------------- + 2MB | 3MB (1 row) alter function myfunc(int) reset all; -select myfunc(0), current_setting('regex_flavor'); - myfunc | current_setting -----------+----------------- - extended | extended +select myfunc(0), current_setting('work_mem'); + myfunc | current_setting +--------+----------------- + 2MB | 2MB (1 row) -set regex_flavor = advanced; +set work_mem = '3MB'; -- but SET isn't create or replace function myfunc(int) returns text as $$ begin - set regex_flavor = extended; - return current_setting('regex_flavor'); + set work_mem = '2MB'; + return current_setting('work_mem'); end $$ language plpgsql -set regex_flavor = basic; -select myfunc(0), current_setting('regex_flavor'); - myfunc | current_setting -----------+----------------- - extended | extended +set work_mem = '1MB'; +select myfunc(0), current_setting('work_mem'); + myfunc | current_setting +--------+----------------- + 2MB | 2MB (1 row) -set regex_flavor = advanced; +set work_mem = '3MB'; -- it should roll back on error, though create or replace function myfunc(int) returns text as $$ begin - set regex_flavor = extended; + set work_mem = '2MB'; perform 1/$1; - return current_setting('regex_flavor'); + return current_setting('work_mem'); end $$ language plpgsql -set regex_flavor = basic; +set work_mem = '1MB'; select myfunc(0); ERROR: division by zero CONTEXT: SQL statement "SELECT 1/ $1 " PL/pgSQL function "myfunc" line 3 at PERFORM -select current_setting('regex_flavor'); +select current_setting('work_mem'); current_setting ----------------- - advanced + 3MB (1 row) -select myfunc(1), current_setting('regex_flavor'); - myfunc | current_setting -----------+----------------- - extended | extended +select myfunc(1), current_setting('work_mem'); + myfunc | current_setting +--------+----------------- + 2MB | 2MB (1 row) diff --git a/src/test/regress/sql/guc.sql b/src/test/regress/sql/guc.sql index 9966606275c..a7b795af47d 100644 --- a/src/test/regress/sql/guc.sql +++ b/src/test/regress/sql/guc.sql @@ -186,68 +186,68 @@ DROP ROLE temp_reset_user; -- Tests for function-local GUC settings -- -set regex_flavor = advanced; +set work_mem = '3MB'; create function report_guc(text) returns text as $$ select current_setting($1) $$ language sql -set regex_flavor = basic; +set work_mem = '1MB'; -select report_guc('regex_flavor'), current_setting('regex_flavor'); +select report_guc('work_mem'), current_setting('work_mem'); -- this should draw only a warning alter function report_guc(text) set search_path = no_such_schema; -- with error occurring here -select report_guc('regex_flavor'), current_setting('regex_flavor'); +select report_guc('work_mem'), current_setting('work_mem'); -alter function report_guc(text) reset search_path set regex_flavor = extended; +alter function report_guc(text) reset search_path set work_mem = '2MB'; -select report_guc('regex_flavor'), current_setting('regex_flavor'); +select report_guc('work_mem'), current_setting('work_mem'); alter function report_guc(text) reset all; -select report_guc('regex_flavor'), current_setting('regex_flavor'); +select report_guc('work_mem'), current_setting('work_mem'); -- SET LOCAL is restricted by a function SET option create or replace function myfunc(int) returns text as $$ begin - set local regex_flavor = extended; - return current_setting('regex_flavor'); + set local work_mem = '2MB'; + return current_setting('work_mem'); end $$ language plpgsql -set regex_flavor = basic; +set work_mem = '1MB'; -select myfunc(0), current_setting('regex_flavor'); +select myfunc(0), current_setting('work_mem'); alter function myfunc(int) reset all; -select myfunc(0), current_setting('regex_flavor'); +select myfunc(0), current_setting('work_mem'); -set regex_flavor = advanced; +set work_mem = '3MB'; -- but SET isn't create or replace function myfunc(int) returns text as $$ begin - set regex_flavor = extended; - return current_setting('regex_flavor'); + set work_mem = '2MB'; + return current_setting('work_mem'); end $$ language plpgsql -set regex_flavor = basic; +set work_mem = '1MB'; -select myfunc(0), current_setting('regex_flavor'); +select myfunc(0), current_setting('work_mem'); -set regex_flavor = advanced; +set work_mem = '3MB'; -- it should roll back on error, though create or replace function myfunc(int) returns text as $$ begin - set regex_flavor = extended; + set work_mem = '2MB'; perform 1/$1; - return current_setting('regex_flavor'); + return current_setting('work_mem'); end $$ language plpgsql -set regex_flavor = basic; +set work_mem = '1MB'; select myfunc(0); -select current_setting('regex_flavor'); -select myfunc(1), current_setting('regex_flavor'); +select current_setting('work_mem'); +select myfunc(1), current_setting('work_mem'); |