@fabrika/platform-node 0.3.3 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +7 -2
- package/src/application-postgres-grants.ts +117 -0
- package/src/application-postgres-migrations.ts +152 -0
- package/src/application-postgres-roles.ts +239 -0
- package/src/application-schema.ts +21 -0
- package/src/blob-s3.ts +88 -2
- package/src/database-code.ts +164 -0
- package/src/file-table-ddl.ts +96 -0
- package/src/index.ts +21 -0
- package/src/migration-classify.ts +1044 -0
- package/src/migration-sql.ts +204 -0
- package/src/pg-catalog-names.ts +359 -0
- package/src/postgres-migration-error.ts +4 -0
- package/src/postgres-migrations.ts +270 -25
- package/src/postgres-test-provisioner.ts +96 -0
- package/src/sql-names.ts +740 -0
- package/src/sql-postgres.ts +56 -22
- package/src/sql.ts +52 -0
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Statements a migration file may not contain at the top level: they end or split the runner's transaction, or
|
|
3
|
+
* change the session settings (timeouts, `search_path`, role) the runner owns. `SET` covers `SET ROLE` and
|
|
4
|
+
* `SET SESSION AUTHORIZATION`; `COMMIT` and `ROLLBACK` cover their `PREPARED` forms.
|
|
5
|
+
*/
|
|
6
|
+
const REFUSED_FIRST_WORDS: ReadonlySet<string> = new Set([
|
|
7
|
+
'BEGIN',
|
|
8
|
+
'START',
|
|
9
|
+
'COMMIT',
|
|
10
|
+
'END',
|
|
11
|
+
'ROLLBACK',
|
|
12
|
+
'ABORT',
|
|
13
|
+
'SAVEPOINT',
|
|
14
|
+
'RELEASE',
|
|
15
|
+
'SET',
|
|
16
|
+
'RESET',
|
|
17
|
+
'DISCARD',
|
|
18
|
+
'LISTEN',
|
|
19
|
+
'NOTIFY',
|
|
20
|
+
'LOCK',
|
|
21
|
+
'VACUUM',
|
|
22
|
+
'CALL',
|
|
23
|
+
])
|
|
24
|
+
|
|
25
|
+
export interface StatementStart {
|
|
26
|
+
/** The first two words of a top-level statement, upper-cased; fewer when the statement has fewer. */
|
|
27
|
+
readonly words: readonly string[]
|
|
28
|
+
/** 1-based line of the statement's first word. */
|
|
29
|
+
readonly line: number
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/** Postgres' `space` (scan.l). Every other character from U+0080 up, a no-break space included, is part of a name. */
|
|
33
|
+
const isSpace = (char: string): boolean => /[ \t\n\r\f\v]/.test(char)
|
|
34
|
+
const isWordStart = (char: string): boolean => /[A-Za-z_\u0080-\uffff]/.test(char)
|
|
35
|
+
const isWordPart = (char: string): boolean => /[A-Za-z0-9_$\u0080-\uffff]/.test(char)
|
|
36
|
+
/** Sticky: matched at a position of the whole text, since a tag has no length limit. */
|
|
37
|
+
const DOLLAR_TAG = /\$(?:[A-Za-z_\u0080-\uffff][A-Za-z0-9_\u0080-\uffff]*)?\$/y
|
|
38
|
+
|
|
39
|
+
function dollarTagAt(sql: string, index: number): string | undefined {
|
|
40
|
+
DOLLAR_TAG.lastIndex = index
|
|
41
|
+
return DOLLAR_TAG.exec(sql)?.[0]
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/** One lexical token of SQL: comments and whitespace are dropped; a literal or a quoted body keeps its contents. */
|
|
45
|
+
export type SqlToken =
|
|
46
|
+
| { readonly kind: 'word'; readonly text: string; readonly line: number }
|
|
47
|
+
| { readonly kind: 'quoted'; readonly text: string; readonly line: number }
|
|
48
|
+
/** `text` is the literal's value for a plain `'…'` string; an `E'…'` string, whose escapes are not decoded, has none. */
|
|
49
|
+
| { readonly kind: 'string'; readonly text: string | undefined; readonly line: number }
|
|
50
|
+
| { readonly kind: 'dollar'; readonly body: string; readonly line: number }
|
|
51
|
+
| { readonly kind: 'punct'; readonly char: string; readonly line: number }
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* The tokens of `sql`. Comments (`--`, nested `/* *\/`), string literals (`''`, `E''` with backslash escapes), quoted
|
|
55
|
+
* identifiers (`""` unescaped) and dollar-quoted bodies are each one token, so a keyword inside them is no word.
|
|
56
|
+
*/
|
|
57
|
+
export function sqlTokens(sql: string): SqlToken[] {
|
|
58
|
+
return lexSql(sql).tokens
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* The tokens of `sql`, and the line of the first string, quoted identifier, dollar-quoted body or block comment that
|
|
63
|
+
* never closes. Text after it is one token, which a check of names cannot read.
|
|
64
|
+
*/
|
|
65
|
+
export function lexSql(sql: string): { readonly tokens: SqlToken[]; readonly unterminated: number | undefined } {
|
|
66
|
+
const tokens: SqlToken[] = []
|
|
67
|
+
let unterminated: number | undefined
|
|
68
|
+
const open = (closed: boolean, at: number): void => {
|
|
69
|
+
if (!closed) unterminated ??= at
|
|
70
|
+
}
|
|
71
|
+
let line = 1
|
|
72
|
+
let index = 0
|
|
73
|
+
/** Moves to `end`, counting the newlines it passes. */
|
|
74
|
+
const skipTo = (end: number): void => {
|
|
75
|
+
for (let at = index; at < end && at < sql.length; at++) if (sql[at] === '\n') line++
|
|
76
|
+
index = Math.min(end, sql.length)
|
|
77
|
+
}
|
|
78
|
+
while (index < sql.length) {
|
|
79
|
+
const char = sql[index] ?? ''
|
|
80
|
+
const next = sql[index + 1] ?? ''
|
|
81
|
+
const tag = char === '$' ? dollarTagAt(sql, index) : undefined
|
|
82
|
+
if (char === '\n') {
|
|
83
|
+
line++
|
|
84
|
+
index++
|
|
85
|
+
} else if (isSpace(char)) {
|
|
86
|
+
index++
|
|
87
|
+
} else if (char === '-' && next === '-') {
|
|
88
|
+
// Postgres ends a comment at a line feed or a carriage return, so a CR-only line ending ends one too.
|
|
89
|
+
let end = index + 2
|
|
90
|
+
while (end < sql.length && sql[end] !== '\n' && sql[end] !== '\r') end++
|
|
91
|
+
skipTo(end)
|
|
92
|
+
} else if (char === '/' && next === '*') {
|
|
93
|
+
let nesting = 0
|
|
94
|
+
let at = index
|
|
95
|
+
while (at < sql.length) {
|
|
96
|
+
if (sql[at] === '/' && sql[at + 1] === '*') {
|
|
97
|
+
nesting++
|
|
98
|
+
at += 2
|
|
99
|
+
} else if (sql[at] === '*' && sql[at + 1] === '/') {
|
|
100
|
+
nesting--
|
|
101
|
+
at += 2
|
|
102
|
+
if (nesting === 0) break
|
|
103
|
+
} else at++
|
|
104
|
+
}
|
|
105
|
+
open(nesting === 0, line)
|
|
106
|
+
skipTo(at)
|
|
107
|
+
} else if (char === "'" || ((char === 'E' || char === 'e') && next === "'")) {
|
|
108
|
+
const escapes = char !== "'"
|
|
109
|
+
const startLine = line
|
|
110
|
+
let at = index + (escapes ? 2 : 1)
|
|
111
|
+
let text = ''
|
|
112
|
+
while (at < sql.length) {
|
|
113
|
+
if (escapes && sql[at] === '\\') at += 2
|
|
114
|
+
else if (sql[at] === "'" && sql[at + 1] === "'") {
|
|
115
|
+
text += "'"
|
|
116
|
+
at += 2
|
|
117
|
+
} else if (sql[at] === "'") break
|
|
118
|
+
else text += sql[at++] ?? ''
|
|
119
|
+
}
|
|
120
|
+
tokens.push({ kind: 'string', text: escapes ? undefined : text, line: startLine })
|
|
121
|
+
open(at < sql.length, startLine)
|
|
122
|
+
skipTo(at + 1)
|
|
123
|
+
} else if (char === '"') {
|
|
124
|
+
const startLine = line
|
|
125
|
+
let at = index + 1
|
|
126
|
+
let text = ''
|
|
127
|
+
while (at < sql.length) {
|
|
128
|
+
if (sql[at] === '"' && sql[at + 1] === '"') {
|
|
129
|
+
text += '"'
|
|
130
|
+
at += 2
|
|
131
|
+
} else if (sql[at] === '"') break
|
|
132
|
+
else text += sql[at++] ?? ''
|
|
133
|
+
}
|
|
134
|
+
tokens.push({ kind: 'quoted', text, line: startLine })
|
|
135
|
+
open(at < sql.length, startLine)
|
|
136
|
+
skipTo(at + 1)
|
|
137
|
+
} else if (tag !== undefined) {
|
|
138
|
+
const end = sql.indexOf(tag, index + tag.length)
|
|
139
|
+
tokens.push({ kind: 'dollar', body: sql.slice(index + tag.length, end === -1 ? sql.length : end), line })
|
|
140
|
+
open(end !== -1, line)
|
|
141
|
+
skipTo(end === -1 ? sql.length : end + tag.length)
|
|
142
|
+
} else if (isWordStart(char)) {
|
|
143
|
+
let at = index + 1
|
|
144
|
+
while (at < sql.length && isWordPart(sql[at] ?? '')) at++
|
|
145
|
+
tokens.push({ kind: 'word', text: sql.slice(index, at), line })
|
|
146
|
+
index = at
|
|
147
|
+
} else {
|
|
148
|
+
tokens.push({ kind: 'punct', char, line })
|
|
149
|
+
index++
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return { tokens, unterminated }
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export interface Statement {
|
|
156
|
+
/** The statement's tokens, without the `;` that ends it. */
|
|
157
|
+
readonly tokens: readonly SqlToken[]
|
|
158
|
+
/** 1-based line of the statement's first token. */
|
|
159
|
+
readonly line: number
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Splits SQL into top-level statements at every `;` outside a comment, a literal, a quoted identifier or a
|
|
164
|
+
* dollar-quoted body. Postgres admits a `;` inside parentheses only in a rule's actions, so splitting there too only
|
|
165
|
+
* makes a check stricter.
|
|
166
|
+
*/
|
|
167
|
+
export function topLevelStatements(sql: string): Statement[] {
|
|
168
|
+
const statements: Statement[] = []
|
|
169
|
+
let tokens: SqlToken[] = []
|
|
170
|
+
for (const token of sqlTokens(sql)) {
|
|
171
|
+
if (token.kind === 'punct' && token.char === ';') {
|
|
172
|
+
if (tokens[0] !== undefined) statements.push({ tokens, line: tokens[0].line })
|
|
173
|
+
tokens = []
|
|
174
|
+
} else tokens.push(token)
|
|
175
|
+
}
|
|
176
|
+
if (tokens[0] !== undefined) statements.push({ tokens, line: tokens[0].line })
|
|
177
|
+
return statements
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
export const upperWord = (token: SqlToken | undefined): string | undefined => (token?.kind === 'word' ? token.text.toUpperCase() : undefined)
|
|
181
|
+
|
|
182
|
+
/** Reports how each top-level statement begins. A keyword inside a comment, a literal or a quoted body is no statement. */
|
|
183
|
+
export function statementStarts(sql: string): StatementStart[] {
|
|
184
|
+
return topLevelStatements(sql).map(({ tokens, line }) => {
|
|
185
|
+
const words: string[] = []
|
|
186
|
+
for (const token of tokens.slice(0, 2)) {
|
|
187
|
+
const word = upperWord(token)
|
|
188
|
+
if (word === undefined) break
|
|
189
|
+
words.push(word)
|
|
190
|
+
}
|
|
191
|
+
return { words, line }
|
|
192
|
+
})
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/** The first refused top-level statement of a migration file, or `undefined`. */
|
|
196
|
+
export function refusedStatement(sql: string): { readonly statement: string; readonly line: number } | undefined {
|
|
197
|
+
for (const start of statementStarts(sql)) {
|
|
198
|
+
const [first, second] = start.words
|
|
199
|
+
if (first === undefined) continue
|
|
200
|
+
if (REFUSED_FIRST_WORDS.has(first)) return { statement: first, line: start.line }
|
|
201
|
+
if (first === 'PREPARE' && second === 'TRANSACTION') return { statement: 'PREPARE TRANSACTION', line: start.line }
|
|
202
|
+
}
|
|
203
|
+
return undefined
|
|
204
|
+
}
|
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
// @generated from PostgreSQL 17 (`pg_proc` in `pg_catalog`, `pg_get_keywords()`) by
|
|
2
|
+
// `src/__tests__/helpers/generate-pg-catalog-names.ts`; `pg-catalog-names.test.ts` checks the test server against it. A
|
|
3
|
+
// name a later Postgres adds is caught at the catalog check, which refuses an application function that shadows one.
|
|
4
|
+
|
|
5
|
+
/** Every function name in `pg_catalog`: an application function may not take one, or a call could resolve to the built-in. */
|
|
6
|
+
export const PG_CATALOG_FUNCTIONS: ReadonlySet<string> = new Set(
|
|
7
|
+
`
|
|
8
|
+
RI_FKey_cascade_del RI_FKey_cascade_upd RI_FKey_check_ins RI_FKey_check_upd RI_FKey_noaction_del RI_FKey_noaction_upd RI_FKey_restrict_del
|
|
9
|
+
RI_FKey_restrict_upd RI_FKey_setdefault_del RI_FKey_setdefault_upd RI_FKey_setnull_del RI_FKey_setnull_upd abbrev abs aclcontains acldefault
|
|
10
|
+
aclexplode aclinsert aclitemeq aclitemin aclitemout aclremove acos acosd acosh age amvalidate any_in any_out any_value any_value_transfn
|
|
11
|
+
anyarray_in anyarray_out anyarray_recv anyarray_send anycompatible_in anycompatible_out anycompatiblearray_in anycompatiblearray_out
|
|
12
|
+
anycompatiblearray_recv anycompatiblearray_send anycompatiblemultirange_in anycompatiblemultirange_out anycompatiblenonarray_in
|
|
13
|
+
anycompatiblenonarray_out anycompatiblerange_in anycompatiblerange_out anyelement_in anyelement_out anyenum_in anyenum_out anymultirange_in
|
|
14
|
+
anymultirange_out anynonarray_in anynonarray_out anyrange_in anyrange_out anytextcat area areajoinsel areasel array_agg
|
|
15
|
+
array_agg_array_combine array_agg_array_deserialize array_agg_array_finalfn array_agg_array_serialize array_agg_array_transfn
|
|
16
|
+
array_agg_combine array_agg_deserialize array_agg_finalfn array_agg_serialize array_agg_transfn array_append array_cat array_dims array_eq
|
|
17
|
+
array_fill array_ge array_gt array_in array_larger array_le array_length array_lower array_lt array_ndims array_ne array_out array_position
|
|
18
|
+
array_positions array_prepend array_recv array_remove array_replace array_sample array_send array_shuffle array_smaller
|
|
19
|
+
array_subscript_handler array_to_json array_to_string array_to_tsvector array_typanalyze array_unnest_support array_upper arraycontained
|
|
20
|
+
arraycontains arraycontjoinsel arraycontsel arrayoverlap ascii asin asind asinh atan atan2 atan2d atand atanh avg bernoulli big5_to_euc_tw
|
|
21
|
+
big5_to_mic big5_to_utf8 binary_upgrade_add_sub_rel_state binary_upgrade_create_empty_extension binary_upgrade_logical_slot_has_caught_up
|
|
22
|
+
binary_upgrade_replorigin_advance binary_upgrade_set_missing_value binary_upgrade_set_next_array_pg_type_oid
|
|
23
|
+
binary_upgrade_set_next_heap_pg_class_oid binary_upgrade_set_next_heap_relfilenode binary_upgrade_set_next_index_pg_class_oid
|
|
24
|
+
binary_upgrade_set_next_index_relfilenode binary_upgrade_set_next_multirange_array_pg_type_oid
|
|
25
|
+
binary_upgrade_set_next_multirange_pg_type_oid binary_upgrade_set_next_pg_authid_oid binary_upgrade_set_next_pg_enum_oid
|
|
26
|
+
binary_upgrade_set_next_pg_tablespace_oid binary_upgrade_set_next_pg_type_oid binary_upgrade_set_next_toast_pg_class_oid
|
|
27
|
+
binary_upgrade_set_next_toast_relfilenode binary_upgrade_set_record_init_privs bit bit_and bit_count bit_in bit_length bit_or bit_out
|
|
28
|
+
bit_recv bit_send bit_xor bitand bitcat bitcmp biteq bitge bitgt bitle bitlt bitne bitnot bitor bitshiftleft bitshiftright bittypmodin
|
|
29
|
+
bittypmodout bitxor bool bool_accum bool_accum_inv bool_alltrue bool_and bool_anytrue bool_or booland_statefunc booleq boolge boolgt boolin
|
|
30
|
+
boolle boollt boolne boolor_statefunc boolout boolrecv boolsend bound_box box box_above box_above_eq box_add box_below box_below_eq
|
|
31
|
+
box_center box_contain box_contain_pt box_contained box_distance box_div box_eq box_ge box_gt box_in box_intersect box_le box_left box_lt
|
|
32
|
+
box_mul box_out box_overabove box_overbelow box_overlap box_overleft box_overright box_recv box_right box_same box_send box_sub bpchar
|
|
33
|
+
bpchar_larger bpchar_pattern_ge bpchar_pattern_gt bpchar_pattern_le bpchar_pattern_lt bpchar_smaller bpchar_sortsupport bpcharcmp bpchareq
|
|
34
|
+
bpcharge bpchargt bpchariclike bpcharicnlike bpcharicregexeq bpcharicregexne bpcharin bpcharle bpcharlike bpcharlt bpcharne bpcharnlike
|
|
35
|
+
bpcharout bpcharrecv bpcharregexeq bpcharregexne bpcharsend bpchartypmodin bpchartypmodout brin_bloom_add_value brin_bloom_consistent
|
|
36
|
+
brin_bloom_opcinfo brin_bloom_options brin_bloom_summary_in brin_bloom_summary_out brin_bloom_summary_recv brin_bloom_summary_send
|
|
37
|
+
brin_bloom_union brin_desummarize_range brin_inclusion_add_value brin_inclusion_consistent brin_inclusion_opcinfo brin_inclusion_union
|
|
38
|
+
brin_minmax_add_value brin_minmax_consistent brin_minmax_multi_add_value brin_minmax_multi_consistent brin_minmax_multi_distance_date
|
|
39
|
+
brin_minmax_multi_distance_float4 brin_minmax_multi_distance_float8 brin_minmax_multi_distance_inet brin_minmax_multi_distance_int2
|
|
40
|
+
brin_minmax_multi_distance_int4 brin_minmax_multi_distance_int8 brin_minmax_multi_distance_interval brin_minmax_multi_distance_macaddr
|
|
41
|
+
brin_minmax_multi_distance_macaddr8 brin_minmax_multi_distance_numeric brin_minmax_multi_distance_pg_lsn brin_minmax_multi_distance_tid
|
|
42
|
+
brin_minmax_multi_distance_time brin_minmax_multi_distance_timestamp brin_minmax_multi_distance_timetz brin_minmax_multi_distance_uuid
|
|
43
|
+
brin_minmax_multi_opcinfo brin_minmax_multi_options brin_minmax_multi_summary_in brin_minmax_multi_summary_out
|
|
44
|
+
brin_minmax_multi_summary_recv brin_minmax_multi_summary_send brin_minmax_multi_union brin_minmax_opcinfo brin_minmax_union
|
|
45
|
+
brin_summarize_new_values brin_summarize_range brinhandler broadcast btarraycmp btboolcmp btbpchar_pattern_cmp btbpchar_pattern_sortsupport
|
|
46
|
+
btcharcmp btequalimage btfloat48cmp btfloat4cmp btfloat4sortsupport btfloat84cmp btfloat8cmp btfloat8sortsupport bthandler btint24cmp
|
|
47
|
+
btint28cmp btint2cmp btint2sortsupport btint42cmp btint48cmp btint4cmp btint4sortsupport btint82cmp btint84cmp btint8cmp btint8sortsupport
|
|
48
|
+
btnamecmp btnamesortsupport btnametextcmp btoidcmp btoidsortsupport btoidvectorcmp btrecordcmp btrecordimagecmp btrim bttext_pattern_cmp
|
|
49
|
+
bttext_pattern_sortsupport bttextcmp bttextnamecmp bttextsortsupport bttidcmp btvarstrequalimage bytea_sortsupport bytea_string_agg_finalfn
|
|
50
|
+
bytea_string_agg_transfn byteacat byteacmp byteaeq byteage byteagt byteain byteale bytealike bytealt byteane byteanlike byteaout bytearecv
|
|
51
|
+
byteasend cardinality cash_cmp cash_div_cash cash_div_flt4 cash_div_flt8 cash_div_int2 cash_div_int4 cash_div_int8 cash_eq cash_ge cash_gt
|
|
52
|
+
cash_in cash_le cash_lt cash_mi cash_mul_flt4 cash_mul_flt8 cash_mul_int2 cash_mul_int4 cash_mul_int8 cash_ne cash_out cash_pl cash_recv
|
|
53
|
+
cash_send cash_words cashlarger cashsmaller cbrt ceil ceiling center char char_length character_length chareq charge chargt charin charle
|
|
54
|
+
charlt charne charout charrecv charsend chr cideq cidin cidout cidr cidr_in cidr_out cidr_recv cidr_send cidrecv cidsend circle circle_above
|
|
55
|
+
circle_add_pt circle_below circle_center circle_contain circle_contain_pt circle_contained circle_distance circle_div_pt circle_eq circle_ge
|
|
56
|
+
circle_gt circle_in circle_le circle_left circle_lt circle_mul_pt circle_ne circle_out circle_overabove circle_overbelow circle_overlap
|
|
57
|
+
circle_overleft circle_overright circle_recv circle_right circle_same circle_send circle_sub_pt clock_timestamp close_ls close_lseg close_pb
|
|
58
|
+
close_pl close_ps close_sb col_description concat concat_ws contjoinsel contsel convert convert_from convert_to corr cos cosd cosh cot cotd
|
|
59
|
+
count covar_pop covar_samp cstring_in cstring_out cstring_recv cstring_send cume_dist cume_dist_final current_database current_query
|
|
60
|
+
current_schema current_schemas current_setting current_user currtid2 currval cursor_to_xml cursor_to_xmlschema database_to_xml
|
|
61
|
+
database_to_xml_and_xmlschema database_to_xmlschema date date_add date_bin date_cmp date_cmp_timestamp date_cmp_timestamptz date_eq
|
|
62
|
+
date_eq_timestamp date_eq_timestamptz date_ge date_ge_timestamp date_ge_timestamptz date_gt date_gt_timestamp date_gt_timestamptz date_in
|
|
63
|
+
date_larger date_le date_le_timestamp date_le_timestamptz date_lt date_lt_timestamp date_lt_timestamptz date_mi date_mi_interval date_mii
|
|
64
|
+
date_ne date_ne_timestamp date_ne_timestamptz date_out date_part date_pl_interval date_pli date_recv date_send date_smaller date_sortsupport
|
|
65
|
+
date_subtract date_trunc datemultirange daterange daterange_canonical daterange_subdiff datetime_pl datetimetz_pl dcbrt decode degrees
|
|
66
|
+
dense_rank dense_rank_final dexp diagonal diameter dispell_init dispell_lexize dist_bp dist_bs dist_cpoint dist_cpoly dist_lp dist_ls
|
|
67
|
+
dist_pathp dist_pb dist_pc dist_pl dist_polyc dist_polyp dist_ppath dist_ppoly dist_ps dist_sb dist_sl dist_sp div dlog1 dlog10 domain_in
|
|
68
|
+
domain_recv dpow dround dsimple_init dsimple_lexize dsnowball_init dsnowball_lexize dsqrt dsynonym_init dsynonym_lexize dtrunc
|
|
69
|
+
elem_contained_by_multirange elem_contained_by_range elem_contained_by_range_support encode enum_cmp enum_eq enum_first enum_ge enum_gt
|
|
70
|
+
enum_in enum_larger enum_last enum_le enum_lt enum_ne enum_out enum_range enum_recv enum_send enum_smaller eqjoinsel eqsel erf erfc
|
|
71
|
+
euc_cn_to_mic euc_cn_to_utf8 euc_jis_2004_to_shift_jis_2004 euc_jis_2004_to_utf8 euc_jp_to_mic euc_jp_to_sjis euc_jp_to_utf8 euc_kr_to_mic
|
|
72
|
+
euc_kr_to_utf8 euc_tw_to_big5 euc_tw_to_mic euc_tw_to_utf8 event_trigger_in event_trigger_out every exp extract factorial family
|
|
73
|
+
fdw_handler_in fdw_handler_out first_value float4 float48div float48eq float48ge float48gt float48le float48lt float48mi float48mul
|
|
74
|
+
float48ne float48pl float4_accum float4abs float4div float4eq float4ge float4gt float4in float4larger float4le float4lt float4mi float4mul
|
|
75
|
+
float4ne float4out float4pl float4recv float4send float4smaller float4um float4up float8 float84div float84eq float84ge float84gt float84le
|
|
76
|
+
float84lt float84mi float84mul float84ne float84pl float8_accum float8_avg float8_combine float8_corr float8_covar_pop float8_covar_samp
|
|
77
|
+
float8_regr_accum float8_regr_avgx float8_regr_avgy float8_regr_combine float8_regr_intercept float8_regr_r2 float8_regr_slope
|
|
78
|
+
float8_regr_sxx float8_regr_sxy float8_regr_syy float8_stddev_pop float8_stddev_samp float8_var_pop float8_var_samp float8abs float8div
|
|
79
|
+
float8eq float8ge float8gt float8in float8larger float8le float8lt float8mi float8mul float8ne float8out float8pl float8recv float8send
|
|
80
|
+
float8smaller float8um float8up floor flt4_mul_cash flt8_mul_cash fmgr_c_validator fmgr_internal_validator fmgr_sql_validator format
|
|
81
|
+
format_type gb18030_to_utf8 gbk_to_utf8 gcd gen_random_uuid generate_series generate_series_int4_support generate_series_int8_support
|
|
82
|
+
generate_subscripts get_bit get_byte get_current_ts_config getdatabaseencoding getpgusername gin_clean_pending_list gin_cmp_prefix
|
|
83
|
+
gin_cmp_tslexeme gin_compare_jsonb gin_consistent_jsonb gin_consistent_jsonb_path gin_extract_jsonb gin_extract_jsonb_path
|
|
84
|
+
gin_extract_jsonb_query gin_extract_jsonb_query_path gin_extract_tsquery gin_extract_tsvector gin_triconsistent_jsonb
|
|
85
|
+
gin_triconsistent_jsonb_path gin_tsquery_consistent gin_tsquery_triconsistent ginarrayconsistent ginarrayextract ginarraytriconsistent
|
|
86
|
+
ginhandler ginqueryarrayextract gist_box_consistent gist_box_distance gist_box_penalty gist_box_picksplit gist_box_same gist_box_union
|
|
87
|
+
gist_circle_compress gist_circle_consistent gist_circle_distance gist_point_compress gist_point_consistent gist_point_distance
|
|
88
|
+
gist_point_fetch gist_point_sortsupport gist_poly_compress gist_poly_consistent gist_poly_distance gisthandler gtsquery_compress
|
|
89
|
+
gtsquery_consistent gtsquery_penalty gtsquery_picksplit gtsquery_same gtsquery_union gtsvector_compress gtsvector_consistent
|
|
90
|
+
gtsvector_decompress gtsvector_options gtsvector_penalty gtsvector_picksplit gtsvector_same gtsvector_union gtsvectorin gtsvectorout
|
|
91
|
+
has_any_column_privilege has_column_privilege has_database_privilege has_foreign_data_wrapper_privilege has_function_privilege
|
|
92
|
+
has_language_privilege has_parameter_privilege has_schema_privilege has_sequence_privilege has_server_privilege has_table_privilege
|
|
93
|
+
has_tablespace_privilege has_type_privilege hash_aclitem hash_aclitem_extended hash_array hash_array_extended hash_multirange
|
|
94
|
+
hash_multirange_extended hash_numeric hash_numeric_extended hash_range hash_range_extended hash_record hash_record_extended hashbpchar
|
|
95
|
+
hashbpcharextended hashchar hashcharextended hashenum hashenumextended hashfloat4 hashfloat4extended hashfloat8 hashfloat8extended
|
|
96
|
+
hashhandler hashinet hashinetextended hashint2 hashint2extended hashint4 hashint4extended hashint8 hashint8extended hashmacaddr hashmacaddr8
|
|
97
|
+
hashmacaddr8extended hashmacaddrextended hashname hashnameextended hashoid hashoidextended hashoidvector hashoidvectorextended hashtext
|
|
98
|
+
hashtextextended hashtid hashtidextended hashvarlena hashvarlenaextended heap_tableam_handler height host hostmask iclikejoinsel iclikesel
|
|
99
|
+
icnlikejoinsel icnlikesel icregexeqjoinsel icregexeqsel icregexnejoinsel icregexnesel icu_unicode_version in_range index_am_handler_in
|
|
100
|
+
index_am_handler_out inet_client_addr inet_client_port inet_gist_compress inet_gist_consistent inet_gist_fetch inet_gist_penalty
|
|
101
|
+
inet_gist_picksplit inet_gist_same inet_gist_union inet_in inet_merge inet_out inet_recv inet_same_family inet_send inet_server_addr
|
|
102
|
+
inet_server_port inet_spg_choose inet_spg_config inet_spg_inner_consistent inet_spg_leaf_consistent inet_spg_picksplit inetand inetmi
|
|
103
|
+
inetmi_int8 inetnot inetor inetpl initcap int2 int24div int24eq int24ge int24gt int24le int24lt int24mi int24mul int24ne int24pl int28div
|
|
104
|
+
int28eq int28ge int28gt int28le int28lt int28mi int28mul int28ne int28pl int2_accum int2_accum_inv int2_avg_accum int2_avg_accum_inv
|
|
105
|
+
int2_mul_cash int2_sum int2abs int2and int2div int2eq int2ge int2gt int2in int2int4_sum int2larger int2le int2lt int2mi int2mod int2mul
|
|
106
|
+
int2ne int2not int2or int2out int2pl int2recv int2send int2shl int2shr int2smaller int2um int2up int2vectorin int2vectorout int2vectorrecv
|
|
107
|
+
int2vectorsend int2xor int4 int42div int42eq int42ge int42gt int42le int42lt int42mi int42mul int42ne int42pl int48div int48eq int48ge
|
|
108
|
+
int48gt int48le int48lt int48mi int48mul int48ne int48pl int4_accum int4_accum_inv int4_avg_accum int4_avg_accum_inv int4_avg_combine
|
|
109
|
+
int4_mul_cash int4_sum int4abs int4and int4div int4eq int4ge int4gt int4in int4inc int4larger int4le int4lt int4mi int4mod int4mul
|
|
110
|
+
int4multirange int4ne int4not int4or int4out int4pl int4range int4range_canonical int4range_subdiff int4recv int4send int4shl int4shr
|
|
111
|
+
int4smaller int4um int4up int4xor int8 int82div int82eq int82ge int82gt int82le int82lt int82mi int82mul int82ne int82pl int84div int84eq
|
|
112
|
+
int84ge int84gt int84le int84lt int84mi int84mul int84ne int84pl int8_accum int8_accum_inv int8_avg int8_avg_accum int8_avg_accum_inv
|
|
113
|
+
int8_avg_combine int8_avg_deserialize int8_avg_serialize int8_mul_cash int8_sum int8abs int8and int8dec int8dec_any int8div int8eq int8ge
|
|
114
|
+
int8gt int8in int8inc int8inc_any int8inc_float8_float8 int8inc_support int8larger int8le int8lt int8mi int8mod int8mul int8multirange
|
|
115
|
+
int8ne int8not int8or int8out int8pl int8pl_inet int8range int8range_canonical int8range_subdiff int8recv int8send int8shl int8shr
|
|
116
|
+
int8smaller int8um int8up int8xor integer_pl_date inter_lb inter_sb inter_sl internal_in internal_out interval interval_avg
|
|
117
|
+
interval_avg_accum interval_avg_accum_inv interval_avg_combine interval_avg_deserialize interval_avg_serialize interval_cmp interval_div
|
|
118
|
+
interval_eq interval_ge interval_gt interval_hash interval_hash_extended interval_in interval_larger interval_le interval_lt interval_mi
|
|
119
|
+
interval_mul interval_ne interval_out interval_pl interval_pl_date interval_pl_time interval_pl_timestamp interval_pl_timestamptz
|
|
120
|
+
interval_pl_timetz interval_recv interval_send interval_smaller interval_sum interval_support interval_um intervaltypmodin intervaltypmodout
|
|
121
|
+
is_normalized isclosed isempty isfinite ishorizontal iso8859_1_to_utf8 iso8859_to_utf8 iso_to_koi8r iso_to_mic iso_to_win1251 iso_to_win866
|
|
122
|
+
isopen isparallel isperp isvertical johab_to_utf8 json_agg json_agg_finalfn json_agg_strict json_agg_strict_transfn json_agg_transfn
|
|
123
|
+
json_array_element json_array_element_text json_array_elements json_array_elements_text json_array_length json_build_array json_build_object
|
|
124
|
+
json_each json_each_text json_extract_path json_extract_path_text json_in json_object json_object_agg json_object_agg_finalfn
|
|
125
|
+
json_object_agg_strict json_object_agg_strict_transfn json_object_agg_transfn json_object_agg_unique json_object_agg_unique_strict
|
|
126
|
+
json_object_agg_unique_strict_transfn json_object_agg_unique_transfn json_object_field json_object_field_text json_object_keys json_out
|
|
127
|
+
json_populate_record json_populate_recordset json_recv json_send json_strip_nulls json_to_record json_to_recordset json_to_tsvector
|
|
128
|
+
json_typeof jsonb_agg jsonb_agg_finalfn jsonb_agg_strict jsonb_agg_strict_transfn jsonb_agg_transfn jsonb_array_element
|
|
129
|
+
jsonb_array_element_text jsonb_array_elements jsonb_array_elements_text jsonb_array_length jsonb_build_array jsonb_build_object jsonb_cmp
|
|
130
|
+
jsonb_concat jsonb_contained jsonb_contains jsonb_delete jsonb_delete_path jsonb_each jsonb_each_text jsonb_eq jsonb_exists jsonb_exists_all
|
|
131
|
+
jsonb_exists_any jsonb_extract_path jsonb_extract_path_text jsonb_ge jsonb_gt jsonb_hash jsonb_hash_extended jsonb_in jsonb_insert jsonb_le
|
|
132
|
+
jsonb_lt jsonb_ne jsonb_object jsonb_object_agg jsonb_object_agg_finalfn jsonb_object_agg_strict jsonb_object_agg_strict_transfn
|
|
133
|
+
jsonb_object_agg_transfn jsonb_object_agg_unique jsonb_object_agg_unique_strict jsonb_object_agg_unique_strict_transfn
|
|
134
|
+
jsonb_object_agg_unique_transfn jsonb_object_field jsonb_object_field_text jsonb_object_keys jsonb_out jsonb_path_exists
|
|
135
|
+
jsonb_path_exists_opr jsonb_path_exists_tz jsonb_path_match jsonb_path_match_opr jsonb_path_match_tz jsonb_path_query jsonb_path_query_array
|
|
136
|
+
jsonb_path_query_array_tz jsonb_path_query_first jsonb_path_query_first_tz jsonb_path_query_tz jsonb_populate_record
|
|
137
|
+
jsonb_populate_record_valid jsonb_populate_recordset jsonb_pretty jsonb_recv jsonb_send jsonb_set jsonb_set_lax jsonb_strip_nulls
|
|
138
|
+
jsonb_subscript_handler jsonb_to_record jsonb_to_recordset jsonb_to_tsvector jsonb_typeof jsonpath_in jsonpath_out jsonpath_recv
|
|
139
|
+
jsonpath_send justify_days justify_hours justify_interval koi8r_to_iso koi8r_to_mic koi8r_to_utf8 koi8r_to_win1251 koi8r_to_win866
|
|
140
|
+
koi8u_to_utf8 lag language_handler_in language_handler_out last_value lastval latin1_to_mic latin2_to_mic latin2_to_win1250 latin3_to_mic
|
|
141
|
+
latin4_to_mic lcm lead left length like like_escape likejoinsel likesel line line_distance line_eq line_horizontal line_in line_interpt
|
|
142
|
+
line_intersect line_out line_parallel line_perp line_recv line_send line_vertical ln lo_close lo_creat lo_create lo_export lo_from_bytea
|
|
143
|
+
lo_get lo_import lo_lseek lo_lseek64 lo_open lo_put lo_tell lo_tell64 lo_truncate lo_truncate64 lo_unlink log log10 loread lower lower_inc
|
|
144
|
+
lower_inf lowrite lpad lseg lseg_center lseg_distance lseg_eq lseg_ge lseg_gt lseg_horizontal lseg_in lseg_interpt lseg_intersect lseg_le
|
|
145
|
+
lseg_length lseg_lt lseg_ne lseg_out lseg_parallel lseg_perp lseg_recv lseg_send lseg_vertical ltrim macaddr macaddr8 macaddr8_and
|
|
146
|
+
macaddr8_cmp macaddr8_eq macaddr8_ge macaddr8_gt macaddr8_in macaddr8_le macaddr8_lt macaddr8_ne macaddr8_not macaddr8_or macaddr8_out
|
|
147
|
+
macaddr8_recv macaddr8_send macaddr8_set7bit macaddr_and macaddr_cmp macaddr_eq macaddr_ge macaddr_gt macaddr_in macaddr_le macaddr_lt
|
|
148
|
+
macaddr_ne macaddr_not macaddr_or macaddr_out macaddr_recv macaddr_send macaddr_sortsupport make_date make_interval make_time make_timestamp
|
|
149
|
+
make_timestamptz makeaclitem masklen matchingjoinsel matchingsel max md5 mic_to_big5 mic_to_euc_cn mic_to_euc_jp mic_to_euc_kr mic_to_euc_tw
|
|
150
|
+
mic_to_iso mic_to_koi8r mic_to_latin1 mic_to_latin2 mic_to_latin3 mic_to_latin4 mic_to_sjis mic_to_win1250 mic_to_win1251 mic_to_win866 min
|
|
151
|
+
min_scale mod mode mode_final money mul_d_interval multirange multirange_adjacent_multirange multirange_adjacent_range
|
|
152
|
+
multirange_after_multirange multirange_after_range multirange_agg_finalfn multirange_agg_transfn multirange_before_multirange
|
|
153
|
+
multirange_before_range multirange_cmp multirange_contained_by_multirange multirange_contained_by_range multirange_contains_elem
|
|
154
|
+
multirange_contains_multirange multirange_contains_range multirange_eq multirange_ge multirange_gist_compress multirange_gist_consistent
|
|
155
|
+
multirange_gt multirange_in multirange_intersect multirange_intersect_agg_transfn multirange_le multirange_lt multirange_minus multirange_ne
|
|
156
|
+
multirange_out multirange_overlaps_multirange multirange_overlaps_range multirange_overleft_multirange multirange_overleft_range
|
|
157
|
+
multirange_overright_multirange multirange_overright_range multirange_recv multirange_send multirange_typanalyze multirange_union
|
|
158
|
+
multirangesel mxid_age name nameconcatoid nameeq nameeqtext namege namegetext namegt namegttext nameiclike nameicnlike nameicregexeq
|
|
159
|
+
nameicregexne namein namele nameletext namelike namelt namelttext namene namenetext namenlike nameout namerecv nameregexeq nameregexne
|
|
160
|
+
namesend neqjoinsel neqsel netmask network network_cmp network_eq network_ge network_gt network_larger network_le network_lt network_ne
|
|
161
|
+
network_overlap network_smaller network_sortsupport network_sub network_subeq network_subset_support network_sup network_supeq
|
|
162
|
+
networkjoinsel networksel nextval nlikejoinsel nlikesel normalize notlike now npoints nth_value ntile num_nonnulls num_nulls numeric
|
|
163
|
+
numeric_abs numeric_accum numeric_accum_inv numeric_add numeric_avg numeric_avg_accum numeric_avg_combine numeric_avg_deserialize
|
|
164
|
+
numeric_avg_serialize numeric_cmp numeric_combine numeric_deserialize numeric_div numeric_div_trunc numeric_eq numeric_exp numeric_ge
|
|
165
|
+
numeric_gt numeric_in numeric_inc numeric_larger numeric_le numeric_ln numeric_log numeric_lt numeric_mod numeric_mul numeric_ne numeric_out
|
|
166
|
+
numeric_pl_pg_lsn numeric_poly_avg numeric_poly_combine numeric_poly_deserialize numeric_poly_serialize numeric_poly_stddev_pop
|
|
167
|
+
numeric_poly_stddev_samp numeric_poly_sum numeric_poly_var_pop numeric_poly_var_samp numeric_power numeric_recv numeric_send
|
|
168
|
+
numeric_serialize numeric_smaller numeric_sortsupport numeric_sqrt numeric_stddev_pop numeric_stddev_samp numeric_sub numeric_sum
|
|
169
|
+
numeric_support numeric_uminus numeric_uplus numeric_var_pop numeric_var_samp numerictypmodin numerictypmodout nummultirange numnode
|
|
170
|
+
numrange numrange_subdiff obj_description octet_length oid oideq oidge oidgt oidin oidlarger oidle oidlt oidne oidout oidrecv oidsend
|
|
171
|
+
oidsmaller oidvectoreq oidvectorge oidvectorgt oidvectorin oidvectorle oidvectorlt oidvectorne oidvectorout oidvectorrecv oidvectorsend
|
|
172
|
+
oidvectortypes on_pb on_pl on_ppath on_ps on_sb on_sl ordered_set_transition ordered_set_transition_multi overlaps overlay parse_ident path
|
|
173
|
+
path_add path_add_pt path_contain_pt path_distance path_div_pt path_in path_inter path_length path_mul_pt path_n_eq path_n_ge path_n_gt
|
|
174
|
+
path_n_le path_n_lt path_npoints path_out path_recv path_send path_sub_pt pclose percent_rank percent_rank_final percentile_cont
|
|
175
|
+
percentile_cont_float8_final percentile_cont_float8_multi_final percentile_cont_interval_final percentile_cont_interval_multi_final
|
|
176
|
+
percentile_disc percentile_disc_final percentile_disc_multi_final pg_advisory_lock pg_advisory_lock_shared pg_advisory_unlock
|
|
177
|
+
pg_advisory_unlock_all pg_advisory_unlock_shared pg_advisory_xact_lock pg_advisory_xact_lock_shared pg_available_extension_versions
|
|
178
|
+
pg_available_extensions pg_available_wal_summaries pg_backend_pid pg_backup_start pg_backup_stop pg_basetype pg_blocking_pids
|
|
179
|
+
pg_cancel_backend pg_char_to_encoding pg_client_encoding pg_collation_actual_version pg_collation_for pg_collation_is_visible
|
|
180
|
+
pg_column_compression pg_column_is_updatable pg_column_size pg_column_toast_chunk_id pg_conf_load_time pg_config pg_control_checkpoint
|
|
181
|
+
pg_control_init pg_control_recovery pg_control_system pg_conversion_is_visible pg_copy_logical_replication_slot
|
|
182
|
+
pg_copy_physical_replication_slot pg_create_logical_replication_slot pg_create_physical_replication_slot pg_create_restore_point
|
|
183
|
+
pg_current_logfile pg_current_snapshot pg_current_wal_flush_lsn pg_current_wal_insert_lsn pg_current_wal_lsn pg_current_xact_id
|
|
184
|
+
pg_current_xact_id_if_assigned pg_cursor pg_database_collation_actual_version pg_database_size pg_ddl_command_in pg_ddl_command_out
|
|
185
|
+
pg_ddl_command_recv pg_ddl_command_send pg_dependencies_in pg_dependencies_out pg_dependencies_recv pg_dependencies_send pg_describe_object
|
|
186
|
+
pg_drop_replication_slot pg_encoding_max_length pg_encoding_to_char pg_event_trigger_ddl_commands pg_event_trigger_dropped_objects
|
|
187
|
+
pg_event_trigger_table_rewrite_oid pg_event_trigger_table_rewrite_reason pg_export_snapshot pg_extension_config_dump
|
|
188
|
+
pg_extension_update_paths pg_filenode_relation pg_function_is_visible pg_get_backend_memory_contexts pg_get_catalog_foreign_keys
|
|
189
|
+
pg_get_constraintdef pg_get_expr pg_get_function_arg_default pg_get_function_arguments pg_get_function_identity_arguments
|
|
190
|
+
pg_get_function_result pg_get_function_sqlbody pg_get_functiondef pg_get_indexdef pg_get_keywords pg_get_multixact_members
|
|
191
|
+
pg_get_object_address pg_get_partition_constraintdef pg_get_partkeydef pg_get_publication_tables pg_get_replica_identity_index
|
|
192
|
+
pg_get_replication_slots pg_get_ruledef pg_get_serial_sequence pg_get_shmem_allocations pg_get_statisticsobjdef
|
|
193
|
+
pg_get_statisticsobjdef_columns pg_get_statisticsobjdef_expressions pg_get_triggerdef pg_get_userbyid pg_get_viewdef pg_get_wait_events
|
|
194
|
+
pg_get_wal_replay_pause_state pg_get_wal_resource_managers pg_get_wal_summarizer_state pg_has_role pg_hba_file_rules pg_ident_file_mappings
|
|
195
|
+
pg_identify_object pg_identify_object_as_address pg_import_system_collations pg_index_column_has_property pg_index_has_property
|
|
196
|
+
pg_indexam_has_property pg_indexam_progress_phasename pg_indexes_size pg_input_error_info pg_input_is_valid pg_is_in_recovery
|
|
197
|
+
pg_is_other_temp_schema pg_is_wal_replay_paused pg_isolation_test_session_is_blocked pg_jit_available pg_last_committed_xact
|
|
198
|
+
pg_last_wal_receive_lsn pg_last_wal_replay_lsn pg_last_xact_replay_timestamp pg_listening_channels pg_lock_status
|
|
199
|
+
pg_log_backend_memory_contexts pg_log_standby_snapshot pg_logical_emit_message pg_logical_slot_get_binary_changes
|
|
200
|
+
pg_logical_slot_get_changes pg_logical_slot_peek_binary_changes pg_logical_slot_peek_changes pg_ls_archive_statusdir pg_ls_dir pg_ls_logdir
|
|
201
|
+
pg_ls_logicalmapdir pg_ls_logicalsnapdir pg_ls_replslotdir pg_ls_tmpdir pg_ls_waldir pg_lsn pg_lsn_cmp pg_lsn_eq pg_lsn_ge pg_lsn_gt
|
|
202
|
+
pg_lsn_hash pg_lsn_hash_extended pg_lsn_in pg_lsn_larger pg_lsn_le pg_lsn_lt pg_lsn_mi pg_lsn_mii pg_lsn_ne pg_lsn_out pg_lsn_pli
|
|
203
|
+
pg_lsn_recv pg_lsn_send pg_lsn_smaller pg_mcv_list_in pg_mcv_list_items pg_mcv_list_out pg_mcv_list_recv pg_mcv_list_send pg_my_temp_schema
|
|
204
|
+
pg_ndistinct_in pg_ndistinct_out pg_ndistinct_recv pg_ndistinct_send pg_nextoid pg_node_tree_in pg_node_tree_out pg_node_tree_recv
|
|
205
|
+
pg_node_tree_send pg_notification_queue_usage pg_notify pg_opclass_is_visible pg_operator_is_visible pg_opfamily_is_visible
|
|
206
|
+
pg_options_to_table pg_partition_ancestors pg_partition_root pg_partition_tree pg_postmaster_start_time pg_prepared_statement
|
|
207
|
+
pg_prepared_xact pg_promote pg_read_binary_file pg_read_file pg_relation_filenode pg_relation_filepath pg_relation_is_publishable
|
|
208
|
+
pg_relation_is_updatable pg_relation_size pg_reload_conf pg_replication_origin_advance pg_replication_origin_create
|
|
209
|
+
pg_replication_origin_drop pg_replication_origin_oid pg_replication_origin_progress pg_replication_origin_session_is_setup
|
|
210
|
+
pg_replication_origin_session_progress pg_replication_origin_session_reset pg_replication_origin_session_setup
|
|
211
|
+
pg_replication_origin_xact_reset pg_replication_origin_xact_setup pg_replication_slot_advance pg_rotate_logfile
|
|
212
|
+
pg_safe_snapshot_blocking_pids pg_sequence_last_value pg_sequence_parameters pg_settings_get_flags pg_show_all_file_settings
|
|
213
|
+
pg_show_all_settings pg_show_replication_origin_status pg_size_bytes pg_size_pretty pg_sleep pg_sleep_for pg_sleep_until pg_snapshot_in
|
|
214
|
+
pg_snapshot_out pg_snapshot_recv pg_snapshot_send pg_snapshot_xip pg_snapshot_xmax pg_snapshot_xmin pg_split_walfile_name
|
|
215
|
+
pg_stat_clear_snapshot pg_stat_file pg_stat_force_next_flush pg_stat_get_activity pg_stat_get_analyze_count pg_stat_get_archiver
|
|
216
|
+
pg_stat_get_autoanalyze_count pg_stat_get_autovacuum_count pg_stat_get_backend_activity pg_stat_get_backend_activity_start
|
|
217
|
+
pg_stat_get_backend_client_addr pg_stat_get_backend_client_port pg_stat_get_backend_dbid pg_stat_get_backend_idset pg_stat_get_backend_pid
|
|
218
|
+
pg_stat_get_backend_start pg_stat_get_backend_subxact pg_stat_get_backend_userid pg_stat_get_backend_wait_event
|
|
219
|
+
pg_stat_get_backend_wait_event_type pg_stat_get_backend_xact_start pg_stat_get_bgwriter_buf_written_clean
|
|
220
|
+
pg_stat_get_bgwriter_maxwritten_clean pg_stat_get_bgwriter_stat_reset_time pg_stat_get_blocks_fetched pg_stat_get_blocks_hit
|
|
221
|
+
pg_stat_get_buf_alloc pg_stat_get_checkpointer_buffers_written pg_stat_get_checkpointer_num_requested pg_stat_get_checkpointer_num_timed
|
|
222
|
+
pg_stat_get_checkpointer_restartpoints_performed pg_stat_get_checkpointer_restartpoints_requested
|
|
223
|
+
pg_stat_get_checkpointer_restartpoints_timed pg_stat_get_checkpointer_stat_reset_time pg_stat_get_checkpointer_sync_time
|
|
224
|
+
pg_stat_get_checkpointer_write_time pg_stat_get_db_active_time pg_stat_get_db_blk_read_time pg_stat_get_db_blk_write_time
|
|
225
|
+
pg_stat_get_db_blocks_fetched pg_stat_get_db_blocks_hit pg_stat_get_db_checksum_failures pg_stat_get_db_checksum_last_failure
|
|
226
|
+
pg_stat_get_db_conflict_all pg_stat_get_db_conflict_bufferpin pg_stat_get_db_conflict_lock pg_stat_get_db_conflict_logicalslot
|
|
227
|
+
pg_stat_get_db_conflict_snapshot pg_stat_get_db_conflict_startup_deadlock pg_stat_get_db_conflict_tablespace pg_stat_get_db_deadlocks
|
|
228
|
+
pg_stat_get_db_idle_in_transaction_time pg_stat_get_db_numbackends pg_stat_get_db_session_time pg_stat_get_db_sessions
|
|
229
|
+
pg_stat_get_db_sessions_abandoned pg_stat_get_db_sessions_fatal pg_stat_get_db_sessions_killed pg_stat_get_db_stat_reset_time
|
|
230
|
+
pg_stat_get_db_temp_bytes pg_stat_get_db_temp_files pg_stat_get_db_tuples_deleted pg_stat_get_db_tuples_fetched
|
|
231
|
+
pg_stat_get_db_tuples_inserted pg_stat_get_db_tuples_returned pg_stat_get_db_tuples_updated pg_stat_get_db_xact_commit
|
|
232
|
+
pg_stat_get_db_xact_rollback pg_stat_get_dead_tuples pg_stat_get_function_calls pg_stat_get_function_self_time
|
|
233
|
+
pg_stat_get_function_total_time pg_stat_get_ins_since_vacuum pg_stat_get_io pg_stat_get_last_analyze_time pg_stat_get_last_autoanalyze_time
|
|
234
|
+
pg_stat_get_last_autovacuum_time pg_stat_get_last_vacuum_time pg_stat_get_lastscan pg_stat_get_live_tuples pg_stat_get_mod_since_analyze
|
|
235
|
+
pg_stat_get_numscans pg_stat_get_progress_info pg_stat_get_recovery_prefetch pg_stat_get_replication_slot pg_stat_get_slru
|
|
236
|
+
pg_stat_get_snapshot_timestamp pg_stat_get_subscription pg_stat_get_subscription_stats pg_stat_get_tuples_deleted pg_stat_get_tuples_fetched
|
|
237
|
+
pg_stat_get_tuples_hot_updated pg_stat_get_tuples_inserted pg_stat_get_tuples_newpage_updated pg_stat_get_tuples_returned
|
|
238
|
+
pg_stat_get_tuples_updated pg_stat_get_vacuum_count pg_stat_get_wal pg_stat_get_wal_receiver pg_stat_get_wal_senders
|
|
239
|
+
pg_stat_get_xact_blocks_fetched pg_stat_get_xact_blocks_hit pg_stat_get_xact_function_calls pg_stat_get_xact_function_self_time
|
|
240
|
+
pg_stat_get_xact_function_total_time pg_stat_get_xact_numscans pg_stat_get_xact_tuples_deleted pg_stat_get_xact_tuples_fetched
|
|
241
|
+
pg_stat_get_xact_tuples_hot_updated pg_stat_get_xact_tuples_inserted pg_stat_get_xact_tuples_newpage_updated
|
|
242
|
+
pg_stat_get_xact_tuples_returned pg_stat_get_xact_tuples_updated pg_stat_have_stats pg_stat_reset pg_stat_reset_replication_slot
|
|
243
|
+
pg_stat_reset_shared pg_stat_reset_single_function_counters pg_stat_reset_single_table_counters pg_stat_reset_slru
|
|
244
|
+
pg_stat_reset_subscription_stats pg_statistics_obj_is_visible pg_stop_making_pinned_objects pg_switch_wal pg_sync_replication_slots
|
|
245
|
+
pg_table_is_visible pg_table_size pg_tablespace_databases pg_tablespace_location pg_tablespace_size pg_terminate_backend pg_timezone_abbrevs
|
|
246
|
+
pg_timezone_names pg_total_relation_size pg_trigger_depth pg_try_advisory_lock pg_try_advisory_lock_shared pg_try_advisory_xact_lock
|
|
247
|
+
pg_try_advisory_xact_lock_shared pg_ts_config_is_visible pg_ts_dict_is_visible pg_ts_parser_is_visible pg_ts_template_is_visible
|
|
248
|
+
pg_type_is_visible pg_typeof pg_visible_in_snapshot pg_wal_lsn_diff pg_wal_replay_pause pg_wal_replay_resume pg_wal_summary_contents
|
|
249
|
+
pg_walfile_name pg_walfile_name_offset pg_xact_commit_timestamp pg_xact_commit_timestamp_origin pg_xact_status phraseto_tsquery pi
|
|
250
|
+
plainto_tsquery plpgsql_call_handler plpgsql_inline_handler plpgsql_validator point point_above point_add point_below point_distance
|
|
251
|
+
point_div point_eq point_horiz point_in point_left point_mul point_ne point_out point_recv point_right point_send point_sub point_vert
|
|
252
|
+
poly_above poly_below poly_center poly_contain poly_contain_pt poly_contained poly_distance poly_in poly_left poly_npoints poly_out
|
|
253
|
+
poly_overabove poly_overbelow poly_overlap poly_overleft poly_overright poly_recv poly_right poly_same poly_send polygon popen position
|
|
254
|
+
positionjoinsel positionsel postgresql_fdw_validator pow power prefixjoinsel prefixsel prsd_end prsd_headline prsd_lextype prsd_nexttoken
|
|
255
|
+
prsd_start pt_contained_circle pt_contained_poly query_to_xml query_to_xml_and_xmlschema query_to_xmlschema querytree quote_ident
|
|
256
|
+
quote_literal quote_nullable radians radius random random_normal range_adjacent range_adjacent_multirange range_after range_after_multirange
|
|
257
|
+
range_agg range_agg_finalfn range_agg_transfn range_before range_before_multirange range_cmp range_contained_by
|
|
258
|
+
range_contained_by_multirange range_contains range_contains_elem range_contains_elem_support range_contains_multirange range_eq range_ge
|
|
259
|
+
range_gist_consistent range_gist_penalty range_gist_picksplit range_gist_same range_gist_union range_gt range_in range_intersect
|
|
260
|
+
range_intersect_agg range_intersect_agg_transfn range_le range_lt range_merge range_minus range_ne range_out range_overlaps
|
|
261
|
+
range_overlaps_multirange range_overleft range_overleft_multirange range_overright range_overright_multirange range_recv range_send
|
|
262
|
+
range_typanalyze range_union rangesel rank rank_final raw_array_subscript_handler record_eq record_ge record_gt record_image_eq
|
|
263
|
+
record_image_ge record_image_gt record_image_le record_image_lt record_image_ne record_in record_le record_lt record_ne record_out
|
|
264
|
+
record_recv record_send regclass regclassin regclassout regclassrecv regclasssend regcollationin regcollationout regcollationrecv
|
|
265
|
+
regcollationsend regconfigin regconfigout regconfigrecv regconfigsend regdictionaryin regdictionaryout regdictionaryrecv regdictionarysend
|
|
266
|
+
regexeqjoinsel regexeqsel regexnejoinsel regexnesel regexp_count regexp_instr regexp_like regexp_match regexp_matches regexp_replace
|
|
267
|
+
regexp_split_to_array regexp_split_to_table regexp_substr regnamespacein regnamespaceout regnamespacerecv regnamespacesend regoperatorin
|
|
268
|
+
regoperatorout regoperatorrecv regoperatorsend regoperin regoperout regoperrecv regopersend regprocedurein regprocedureout regprocedurerecv
|
|
269
|
+
regproceduresend regprocin regprocout regprocrecv regprocsend regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx
|
|
270
|
+
regr_sxy regr_syy regrolein regroleout regrolerecv regrolesend regtypein regtypeout regtyperecv regtypesend repeat replace reverse right
|
|
271
|
+
round row_number row_security_active row_to_json rpad rtrim satisfies_hash_partition scalargejoinsel scalargesel scalargtjoinsel scalargtsel
|
|
272
|
+
scalarlejoinsel scalarlesel scalarltjoinsel scalarltsel scale schema_to_xml schema_to_xml_and_xmlschema schema_to_xmlschema session_user
|
|
273
|
+
set_bit set_byte set_config set_masklen setseed setval setweight sha224 sha256 sha384 sha512 shell_in shell_out
|
|
274
|
+
shift_jis_2004_to_euc_jis_2004 shift_jis_2004_to_utf8 shobj_description sign similar_escape similar_to_escape sin sind sinh sjis_to_euc_jp
|
|
275
|
+
sjis_to_mic sjis_to_utf8 slope spg_bbox_quad_config spg_box_quad_choose spg_box_quad_config spg_box_quad_inner_consistent
|
|
276
|
+
spg_box_quad_leaf_consistent spg_box_quad_picksplit spg_kd_choose spg_kd_config spg_kd_inner_consistent spg_kd_picksplit
|
|
277
|
+
spg_poly_quad_compress spg_quad_choose spg_quad_config spg_quad_inner_consistent spg_quad_leaf_consistent spg_quad_picksplit
|
|
278
|
+
spg_range_quad_choose spg_range_quad_config spg_range_quad_inner_consistent spg_range_quad_leaf_consistent spg_range_quad_picksplit
|
|
279
|
+
spg_text_choose spg_text_config spg_text_inner_consistent spg_text_leaf_consistent spg_text_picksplit spghandler split_part sqrt starts_with
|
|
280
|
+
statement_timestamp stddev stddev_pop stddev_samp string_agg string_agg_combine string_agg_deserialize string_agg_finalfn
|
|
281
|
+
string_agg_serialize string_agg_transfn string_to_array string_to_table strip strpos substr substring sum suppress_redundant_updates_trigger
|
|
282
|
+
system system_user table_am_handler_in table_am_handler_out table_to_xml table_to_xml_and_xmlschema table_to_xmlschema tan tand tanh text
|
|
283
|
+
text_ge text_gt text_larger text_le text_lt text_pattern_ge text_pattern_gt text_pattern_le text_pattern_lt text_smaller
|
|
284
|
+
text_starts_with_support textanycat textcat texteq texteqname textgename textgtname texticlike texticlike_support texticnlike texticregexeq
|
|
285
|
+
texticregexeq_support texticregexne textin textlen textlename textlike textlike_support textltname textne textnename textnlike textout
|
|
286
|
+
textrecv textregexeq textregexeq_support textregexne textsend thesaurus_init thesaurus_lexize tideq tidge tidgt tidin tidlarger tidle tidlt
|
|
287
|
+
tidne tidout tidrecv tidsend tidsmaller time time_cmp time_eq time_ge time_gt time_hash time_hash_extended time_in time_larger time_le
|
|
288
|
+
time_lt time_mi_interval time_mi_time time_ne time_out time_pl_interval time_recv time_send time_smaller time_support timedate_pl timeofday
|
|
289
|
+
timestamp timestamp_cmp timestamp_cmp_date timestamp_cmp_timestamptz timestamp_eq timestamp_eq_date timestamp_eq_timestamptz timestamp_ge
|
|
290
|
+
timestamp_ge_date timestamp_ge_timestamptz timestamp_gt timestamp_gt_date timestamp_gt_timestamptz timestamp_hash timestamp_hash_extended
|
|
291
|
+
timestamp_in timestamp_larger timestamp_le timestamp_le_date timestamp_le_timestamptz timestamp_lt timestamp_lt_date
|
|
292
|
+
timestamp_lt_timestamptz timestamp_mi timestamp_mi_interval timestamp_ne timestamp_ne_date timestamp_ne_timestamptz timestamp_out
|
|
293
|
+
timestamp_pl_interval timestamp_recv timestamp_send timestamp_smaller timestamp_sortsupport timestamp_support timestamptypmodin
|
|
294
|
+
timestamptypmodout timestamptz timestamptz_cmp timestamptz_cmp_date timestamptz_cmp_timestamp timestamptz_eq timestamptz_eq_date
|
|
295
|
+
timestamptz_eq_timestamp timestamptz_ge timestamptz_ge_date timestamptz_ge_timestamp timestamptz_gt timestamptz_gt_date
|
|
296
|
+
timestamptz_gt_timestamp timestamptz_in timestamptz_larger timestamptz_le timestamptz_le_date timestamptz_le_timestamp timestamptz_lt
|
|
297
|
+
timestamptz_lt_date timestamptz_lt_timestamp timestamptz_mi timestamptz_mi_interval timestamptz_ne timestamptz_ne_date
|
|
298
|
+
timestamptz_ne_timestamp timestamptz_out timestamptz_pl_interval timestamptz_recv timestamptz_send timestamptz_smaller timestamptztypmodin
|
|
299
|
+
timestamptztypmodout timetypmodin timetypmodout timetz timetz_cmp timetz_eq timetz_ge timetz_gt timetz_hash timetz_hash_extended timetz_in
|
|
300
|
+
timetz_larger timetz_le timetz_lt timetz_mi_interval timetz_ne timetz_out timetz_pl_interval timetz_recv timetz_send timetz_smaller
|
|
301
|
+
timetzdate_pl timetztypmodin timetztypmodout timezone to_ascii to_bin to_char to_date to_hex to_json to_jsonb to_number to_oct to_regclass
|
|
302
|
+
to_regcollation to_regnamespace to_regoper to_regoperator to_regproc to_regprocedure to_regrole to_regtype to_regtypemod to_timestamp
|
|
303
|
+
to_tsquery to_tsvector transaction_timestamp translate trigger_in trigger_out trim_array trim_scale trunc ts_debug ts_delete ts_filter
|
|
304
|
+
ts_headline ts_lexize ts_match_qv ts_match_tq ts_match_tt ts_match_vq ts_parse ts_rank ts_rank_cd ts_rewrite ts_stat ts_token_type
|
|
305
|
+
ts_typanalyze tsm_handler_in tsm_handler_out tsmatchjoinsel tsmatchsel tsmultirange tsq_mcontained tsq_mcontains tsquery_and tsquery_cmp
|
|
306
|
+
tsquery_eq tsquery_ge tsquery_gt tsquery_le tsquery_lt tsquery_ne tsquery_not tsquery_or tsquery_phrase tsqueryin tsqueryout tsqueryrecv
|
|
307
|
+
tsquerysend tsrange tsrange_subdiff tstzmultirange tstzrange tstzrange_subdiff tsvector_cmp tsvector_concat tsvector_eq tsvector_ge
|
|
308
|
+
tsvector_gt tsvector_le tsvector_lt tsvector_ne tsvector_to_array tsvector_update_trigger tsvector_update_trigger_column tsvectorin
|
|
309
|
+
tsvectorout tsvectorrecv tsvectorsend txid_current txid_current_if_assigned txid_current_snapshot txid_snapshot_in txid_snapshot_out
|
|
310
|
+
txid_snapshot_recv txid_snapshot_send txid_snapshot_xip txid_snapshot_xmax txid_snapshot_xmin txid_status txid_visible_in_snapshot
|
|
311
|
+
uhc_to_utf8 unicode_assigned unicode_version unique_key_recheck unistr unknownin unknownout unknownrecv unknownsend unnest upper upper_inc
|
|
312
|
+
upper_inf utf8_to_big5 utf8_to_euc_cn utf8_to_euc_jis_2004 utf8_to_euc_jp utf8_to_euc_kr utf8_to_euc_tw utf8_to_gb18030 utf8_to_gbk
|
|
313
|
+
utf8_to_iso8859 utf8_to_iso8859_1 utf8_to_johab utf8_to_koi8r utf8_to_koi8u utf8_to_shift_jis_2004 utf8_to_sjis utf8_to_uhc utf8_to_win
|
|
314
|
+
uuid_cmp uuid_eq uuid_extract_timestamp uuid_extract_version uuid_ge uuid_gt uuid_hash uuid_hash_extended uuid_in uuid_le uuid_lt uuid_ne
|
|
315
|
+
uuid_out uuid_recv uuid_send uuid_sortsupport var_pop var_samp varbit varbit_in varbit_out varbit_recv varbit_send varbit_support varbitcmp
|
|
316
|
+
varbiteq varbitge varbitgt varbitle varbitlt varbitne varbittypmodin varbittypmodout varchar varchar_support varcharin varcharout
|
|
317
|
+
varcharrecv varcharsend varchartypmodin varchartypmodout variance version void_in void_out void_recv void_send websearch_to_tsquery width
|
|
318
|
+
width_bucket win1250_to_latin2 win1250_to_mic win1251_to_iso win1251_to_koi8r win1251_to_mic win1251_to_win866 win866_to_iso win866_to_koi8r
|
|
319
|
+
win866_to_mic win866_to_win1251 win_to_utf8 window_cume_dist_support window_dense_rank_support window_ntile_support
|
|
320
|
+
window_percent_rank_support window_rank_support window_row_number_support xid xid8_larger xid8_smaller xid8cmp xid8eq xid8ge xid8gt xid8in
|
|
321
|
+
xid8le xid8lt xid8ne xid8out xid8recv xid8send xideq xideqint4 xidin xidneq xidneqint4 xidout xidrecv xidsend xml xml_in xml_is_well_formed
|
|
322
|
+
xml_is_well_formed_content xml_is_well_formed_document xml_out xml_recv xml_send xmlagg xmlcomment xmlconcat2 xmlexists xmltext xmlvalidate
|
|
323
|
+
xpath xpath_exists
|
|
324
|
+
`.split(/\s+/).filter((name) => name !== ''),
|
|
325
|
+
)
|
|
326
|
+
|
|
327
|
+
/** Every SQL keyword, of every category: an application function may not take one (`operator`, `position`). */
|
|
328
|
+
export const SQL_KEYWORDS: ReadonlySet<string> = new Set(
|
|
329
|
+
`
|
|
330
|
+
abort absent absolute access action add admin after aggregate all also alter always analyse analyze and any array as asc asensitive
|
|
331
|
+
assertion assignment asymmetric at atomic attach attribute authorization backward before begin between bigint binary bit boolean both
|
|
332
|
+
breadth by cache call called cascade cascaded case cast catalog chain char character characteristics check checkpoint class close cluster
|
|
333
|
+
coalesce collate collation column columns comment comments commit committed compression concurrently conditional configuration conflict
|
|
334
|
+
connection constraint constraints content continue conversion copy cost create cross csv cube current current_catalog current_date
|
|
335
|
+
current_role current_schema current_time current_timestamp current_user cursor cycle data database day deallocate dec decimal declare
|
|
336
|
+
default defaults deferrable deferred definer delete delimiter delimiters depends depth desc detach dictionary disable discard distinct do
|
|
337
|
+
document domain double drop each else empty enable encoding encrypted end enum error escape event except exclude excluding exclusive execute
|
|
338
|
+
exists explain expression extension external extract false family fetch filter finalize first float following for force foreign format
|
|
339
|
+
forward freeze from full function functions generated global grant granted greatest group grouping groups handler having header hold hour
|
|
340
|
+
identity if ilike immediate immutable implicit import in include including increment indent index indexes inherit inherits initially inline
|
|
341
|
+
inner inout input insensitive insert instead int integer intersect interval into invoker is isnull isolation join json json_array
|
|
342
|
+
json_arrayagg json_exists json_object json_objectagg json_query json_scalar json_serialize json_table json_value keep key keys label
|
|
343
|
+
language large last lateral leading leakproof least left level like limit listen load local localtime localtimestamp location lock locked
|
|
344
|
+
logged mapping match matched materialized maxvalue merge merge_action method minute minvalue mode month move name names national natural
|
|
345
|
+
nchar nested new next nfc nfd nfkc nfkd no none normalize normalized not nothing notify notnull nowait null nullif nulls numeric object of
|
|
346
|
+
off offset oids old omit on only operator option options or order ordinality others out outer over overlaps overlay overriding owned owner
|
|
347
|
+
parallel parameter parser partial partition passing password path placing plan plans policy position preceding precision prepare prepared
|
|
348
|
+
preserve primary prior privileges procedural procedure procedures program publication quote quotes range read real reassign recheck
|
|
349
|
+
recursive ref references referencing refresh reindex relative release rename repeatable replace replica reset restart restrict return
|
|
350
|
+
returning returns revoke right role rollback rollup routine routines row rows rule savepoint scalar schema schemas scroll search second
|
|
351
|
+
security select sequence sequences serializable server session session_user set setof sets share show similar simple skip smallint snapshot
|
|
352
|
+
some source sql stable standalone start statement statistics stdin stdout storage stored strict string strip subscription substring support
|
|
353
|
+
symmetric sysid system system_user table tables tablesample tablespace target temp template temporary text then ties time timestamp to
|
|
354
|
+
trailing transaction transform treat trigger trim true truncate trusted type types uescape unbounded uncommitted unconditional unencrypted
|
|
355
|
+
union unique unknown unlisten unlogged until update user using vacuum valid validate validator value values varchar variadic varying verbose
|
|
356
|
+
version view views volatile when where whitespace window with within without work wrapper write xml xmlattributes xmlconcat xmlelement
|
|
357
|
+
xmlexists xmlforest xmlnamespaces xmlparse xmlpi xmlroot xmlserialize xmltable year yes zone
|
|
358
|
+
`.split(/\s+/).filter((name) => name !== ''),
|
|
359
|
+
)
|