create schema ignore_keyword_list;
set current_schema to 'ignore_keyword_list';
select 1 interval; --error
ERROR:  syntax error at or near "interval"
LINE 1: select 1 interval;
                 ^
set disable_keyword_options = 'interval';
select 1 interval; --ok
 interval 
----------
        1
(1 row)

set disable_keyword_options = 'intervalxx';
WARNING:  invalid disable keyword "intervalxx", will be skipped.
set disable_keyword_options = 'interval,interval';
select 1 interval; --ok
 interval 
----------
        1
(1 row)

reset disable_keyword_options;
select 1 interval; --error
ERROR:  syntax error at or near "interval"
LINE 1: select 1 interval;
                 ^
create table t1 (binary int);
ERROR:  syntax error at or near "binary"
LINE 1: create table t1 (binary int);
                         ^
create table t2 (prior int);
ERROR:  syntax error at or near "prior"
LINE 1: create table t2 (prior int);
                         ^
set disable_keyword_options ='prior,binary';
create table t1 (binary int);
create table t2 (prior int);
create table key (c1 int);
set disable_keyword_options ='prior,binary,interval';
declare
keyword_name varchar;
catcode_name char;
create_sql varchar;
drop_sql varchar;
begin
    for keyword_name,catcode_name in (select word,catcode from pg_get_keywords()) loop
        if catcode_name = 'U' or catcode_name = 'C' then
            create_sql = 'create table ignore_keyword_list.' || keyword_name || '(' || keyword_name|| ' int)';
            drop_sql = 'drop table ignore_keyword_list.' || keyword_name;
        elsif catcode_name = 'T' then
            create_sql = 'create function ignore_keyword_list.' || keyword_name || '() returns int language sql as ''select 1''';
            drop_sql = 'drop function ignore_keyword_list.' || keyword_name;
        else
            continue;
        end if;
        begin
            EXECUTE IMMEDIATE create_sql;
            EXECUTE IMMEDIATE drop_sql;
            EXCEPTION when OTHERS then
            raise notice 'test failed. test sql: %; %;', create_sql, drop_sql;
        end;
    end loop;
end;
/
NOTICE:  test failed. test sql: create table ignore_keyword_list.key(key int); drop table ignore_keyword_list.key;
reset current_schema;
drop schema ignore_keyword_list cascade;
NOTICE:  drop cascades to 3 other objects
DETAIL:  drop cascades to table ignore_keyword_list.t1
drop cascades to table ignore_keyword_list.t2
drop cascades to table ignore_keyword_list.key