Ключевые слова, которые существуют только в функциях PL / pgSQL и блоках DO? - PullRequest
0 голосов
/ 19 декабря 2018

Можем ли мы использовать SQL, чтобы выяснить, какие ключевые слова что-то значат только для Postgres внутри блока DO или функции PL / pgSQL ?И если нет, может кто-нибудь сказать мне, является ли мой список полным или есть слова, которых не должно быть в этом списке:

продолжить, выйти, foreach, цикл, вернуться, вернуться далее,вернуть запрос, фрагмент, в то время как, псевдоним, начало, константа, объявить, исключение, выполнить, получить (сложить) диагностику, выполнить, поднять, сообщение, подробности, подсказка, код ошибки, отладка, журнал, информация, уведомление, предупреждение, найдено, sqlerrm, sqlstate, новый, старый, tg_name, tg_when, tg_level, tg_op, tg_relid, tg_relname, tg_table_name, tg_table_schema, tg_nargs, tg_argv, tg_event, tg_tag

1 Ответ

0 голосов
/ 20 декабря 2018

Список можно найти в src/pl/plpgsql/src/pl_scanner.c:

Зарезервированные ключевые слова:

ALL
BEGIN
BY
CASE
DECLARE
ELSE
END
EXECUTE
FOR
FOREACH
FROM
IF
IN
INTO
LOOP
NOT
NULL
OR
STRICT
THEN
TO
USING
WHEN
WHILE

«Незарезервированные» ключевые слова:

ABSOLUTE
ALIAS
ARRAY
ASSERT
BACKWARD
CLOSE
COLLATE
COLUMN
COLUMN_NAME
CONSTANT
CONSTRAINT
CONSTRAINT_NAME
CONTINUE
CURRENT
CURSOR
DATATYPE
DEBUG
DEFAULT
DETAIL
DIAGNOSTICS
DUMP
ELSEIF
ELSIF
ERRCODE
ERROR
EXCEPTION
EXIT
FETCH
FIRST
FORWARD
GET
HINT
IMPORT
INFO
INSERT
IS
LAST
LOG
MESSAGE
MESSAGE_TEXT
MOVE
NEXT
NO
NOTICE
OPEN
OPTION
PERFORM
PG_CONTEXT
PG_DATATYPE_NAME
PG_EXCEPTION_CONTEXT
PG_EXCEPTION_DETAIL
PG_EXCEPTION_HINT
PRINT_STRICT_PARAMS
PRIOR
QUERY
RAISE
RELATIVE
RESULT_OID
RETURN
RETURNED_SQLSTATE
REVERSE
ROW_COUNT
ROWTYPE
SCHEMA
SCHEMA_NAME
SCROLL
SLICE
SQLSTATE
STACKED
TABLE
TABLE_NAME
TYPE
USE_COLUMN
USE_VARIABLE
VARIABLE_CONFLICT
WARNING

Специальные переменные, такие как TG_RELID или FOUND, не являются ключевыми словами, хотя они играют особую роль в PL / pgSQL.

...