PostgreSQL's SQL keyword table, as pg_get_keywords() returns it.
Generated from src/include/parser/kwlist.h in the upstream
PostgreSQL checkout — the same file gen_keywordlist.pl reads — with
the category codes and descriptions from pg_get_keywords in
src/backend/utils/adt/misc.c:
UNRESERVED_KEYWORD U unreserved COL_NAME_KEYWORD C unreserved (cannot be function or type name) TYPE_FUNC_NAME_KEYWORD T reserved (can be function or type name) RESERVED_KEYWORD R reserved
This is a real catalog function, not a curiosity: pgjdbc's
PgDatabaseMetaData.getSQLKeywords() runs
select string_agg(word, ',') from pg_catalog.pg_get_keywords() where word <> ALL ('{...}'::text[])
and passes the result through castNonNull. With the function
missing the aggregate answered one NULL row, which raises an
AssertionError rather than a SQLException — so Hibernate's
catch (SQLException) fallback did not catch it and every
SessionFactory build failed.
PostgreSQL's SQL keyword table, as `pg_get_keywords()` returns it.
Generated from `src/include/parser/kwlist.h` in the upstream
PostgreSQL checkout — the same file `gen_keywordlist.pl` reads — with
the category codes and descriptions from `pg_get_keywords` in
`src/backend/utils/adt/misc.c`:
UNRESERVED_KEYWORD U unreserved
COL_NAME_KEYWORD C unreserved (cannot be function or type name)
TYPE_FUNC_NAME_KEYWORD T reserved (can be function or type name)
RESERVED_KEYWORD R reserved
This is a real catalog function, not a curiosity: pgjdbc's
`PgDatabaseMetaData.getSQLKeywords()` runs
select string_agg(word, ',') from pg_catalog.pg_get_keywords()
where word <> ALL ('{...}'::text[])
and passes the result through `castNonNull`. With the function
missing the aggregate answered one NULL row, which raises an
AssertionError rather than a SQLException — so Hibernate's
`catch (SQLException)` fallback did not catch it and every
SessionFactory build failed.[word catcode barelabel catdesc baredesc], in ASCII order as PG emits.
[word catcode barelabel catdesc baredesc], in ASCII order as PG emits.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |