array_ndims The number of an array's dimensions. | array_ndims($a::anyarray)
=>
CAST(CASE WHEN cardinality($a) > 0 THEN length(regexp_extract(typeof($a), '^(array\()+')) / 6 END AS INTEGER)
| | | |
array_dims The text of an array's dimensions, such as [1:2][1:3]. | array_dims($a::anyarray)
=>
array_join(transform(sequence(1, CAST(CASE WHEN cardinality($a) > 0 THEN length(regexp_extract(typeof($a), '^(array\()+')) / 6 END AS INTEGER)), d -> '[1:' || CAST(CASE d WHEN 1 THEN json_array_length(CAST($a AS JSON)) WHEN 2 THEN json_array_length(json_extract(CAST($a AS JSON), '$[0]')) WHEN 3 THEN json_array_length(json_extract(json_extract(CAST($a AS JSON), '$[0]'), '$[0]')) WHEN 4 THEN json_array_length(json_extract(json_extract(json_extract(CAST($a AS JSON), '$[0]'), '$[0]'), '$[0]')) WHEN 5 THEN json_array_length(json_extract(json_extract(json_extract(json_extract(CAST($a AS JSON), '$[0]'), '$[0]'), '$[0]'), '$[0]')) WHEN 6 THEN json_array_length(json_extract(json_extract(json_extract(json_extract(json_extract(CAST($a AS JSON), '$[0]'), '$[0]'), '$[0]'), '$[0]'), '$[0]')) END AS VARCHAR) || ']'), '')
| | | |
array_lower The lower bound of a dimension: 1, as a list's index starts there. | array_lower($a::anyarray, $d::integer)
=>
CAST(CASE WHEN $d BETWEEN 1 AND CAST(CASE WHEN cardinality($a) > 0 THEN length(regexp_extract(typeof($a), '^(array\()+')) / 6 END AS INTEGER) THEN 1 END AS INTEGER)
| | | |
array_upper The upper bound of a dimension: its length. | array_upper($a::anyarray, $d::integer)
=>
CAST(CASE WHEN $d BETWEEN 1 AND CAST(CASE WHEN cardinality($a) > 0 THEN length(regexp_extract(typeof($a), '^(array\()+')) / 6 END AS INTEGER) THEN CASE $d WHEN 1 THEN json_array_length(CAST($a AS JSON)) WHEN 2 THEN json_array_length(json_extract(CAST($a AS JSON), '$[0]')) WHEN 3 THEN json_array_length(json_extract(json_extract(CAST($a AS JSON), '$[0]'), '$[0]')) WHEN 4 THEN json_array_length(json_extract(json_extract(json_extract(CAST($a AS JSON), '$[0]'), '$[0]'), '$[0]')) WHEN 5 THEN json_array_length(json_extract(json_extract(json_extract(json_extract(CAST($a AS JSON), '$[0]'), '$[0]'), '$[0]'), '$[0]')) WHEN 6 THEN json_array_length(json_extract(json_extract(json_extract(json_extract(json_extract(CAST($a AS JSON), '$[0]'), '$[0]'), '$[0]'), '$[0]'), '$[0]')) END END AS INTEGER)
| | | |
array_length The length of a dimension; NULL for a dimension the array does not have. | array_length($a::anyarray, 1)
=>
CAST(CASE WHEN cardinality($a) > 0 THEN cardinality($a) END AS INTEGER)
array_length($a::anyarray, $d::integer)
=>
CAST(CASE WHEN $d BETWEEN 1 AND CAST(CASE WHEN cardinality($a) > 0 THEN length(regexp_extract(typeof($a), '^(array\()+')) / 6 END AS INTEGER) THEN CASE $d WHEN 1 THEN json_array_length(CAST($a AS JSON)) WHEN 2 THEN json_array_length(json_extract(CAST($a AS JSON), '$[0]')) WHEN 3 THEN json_array_length(json_extract(json_extract(CAST($a AS JSON), '$[0]'), '$[0]')) WHEN 4 THEN json_array_length(json_extract(json_extract(json_extract(CAST($a AS JSON), '$[0]'), '$[0]'), '$[0]')) WHEN 5 THEN json_array_length(json_extract(json_extract(json_extract(json_extract(CAST($a AS JSON), '$[0]'), '$[0]'), '$[0]'), '$[0]')) WHEN 6 THEN json_array_length(json_extract(json_extract(json_extract(json_extract(json_extract(CAST($a AS JSON), '$[0]'), '$[0]'), '$[0]'), '$[0]'), '$[0]')) END END AS INTEGER)
| | | |
array_fill An array of a value repeated to the dimensions given. | array_fill($v::anyelement, $dims::integer[])
=>
CASE WHEN $dims IS NULL THEN fail('postgresql-error 22004: ' || 'dimension array or low bound array cannot be null' || ' <end of postgresql-error>') WHEN cardinality($dims) = 1 THEN repeat($v, $dims[1]) ELSE fail('postgresql-error 0A000: ' || 'array_fill does not read this value' || ' <end of postgresql-error>') END
array_fill($v::anyelement, $dims::integer[], $lower_bounds::integer[])
=>
CASE WHEN $dims IS NULL OR $lower_bounds IS NULL THEN fail('postgresql-error 22004: ' || 'dimension array or low bound array cannot be null' || ' <end of postgresql-error>') WHEN cardinality($dims) = 1 AND all_match($lower_bounds, _b -> _b = 1) THEN repeat($v, $dims[1]) ELSE fail('postgresql-error 0A000: ' || 'array_fill does not read this value' || ' <end of postgresql-error>') END
| - Only one dimension with a lower bound of 1: any other shape is refused.
0A000 array_fill does not read this value
| | |
array_eq Two arrays equal, a NULL element equal to a NULL element. | array_eq($a::anyarray, $b::anyarray)
=>
CASE WHEN $a IS NULL OR $b IS NULL THEN CAST(NULL AS BOOLEAN) ELSE $a IS NOT DISTINCT FROM $b END
| | | |
array_ne Two arrays not equal, a NULL element equal to a NULL element. | array_ne($a::anyarray, $b::anyarray)
=>
CASE WHEN $a IS NULL OR $b IS NULL THEN CAST(NULL AS BOOLEAN) ELSE $a IS DISTINCT FROM $b END
| | | |
array_position The position of the first element equal to a value, a NULL equal to a NULL; NULL for none. | array_position($a::anycompatiblearray, $v::anycompatible)
=>
CAST(CASE WHEN cardinality($a) > 0 THEN element_at(filter(sequence(1, cardinality($a)), _i -> $a[_i] IS NOT DISTINCT FROM $v), 1) END AS INTEGER)
array_position($a::anycompatiblearray, $v::anycompatible, $s::integer)
=>
refused (its error is under the limitations)
| - Refused: array_position($a::anycompatiblearray, $v::anycompatible, $s::integer).
0A000 array_position() has no form on trino
| | |
array_positions The positions of every element equal to a value, a NULL equal to a NULL. | array_positions($a::anycompatiblearray, $v::anycompatible)
=>
CASE WHEN cardinality($a) = 0 THEN CAST(ARRAY[] AS ARRAY(INTEGER)) ELSE CAST(filter(sequence(1, cardinality($a)), _i -> $a[_i] IS NOT DISTINCT FROM $v) AS ARRAY(INTEGER)) END
| | | |
array_replace Each element equal to a value replaced by another, a NULL equal to a NULL. | array_replace($a::anycompatiblearray, $v::anycompatible, $w::anycompatible)
=>
transform($a, _x -> CASE WHEN _x IS NOT DISTINCT FROM $v THEN $w ELSE _x END)
| | | |
array_sample A number of an array's elements, chosen at random. | array_sample($a::anyarray, $n::integer)
=>
CASE WHEN $a IS NULL OR $n IS NULL THEN NULL WHEN $n < 0 OR $n > cardinality($a) THEN fail('postgresql-error 22023: ' || 'sample size must be between 0 and ' || CAST(cardinality($a) AS VARCHAR) || ' <end of postgresql-error>') ELSE slice(shuffle($a), 1, $n) END
| | | |
array_shuffle An array's elements in a random order. | array_shuffle($a::anyarray)
=>
shuffle($a)
| | | |
trim_array An array without its last elements. | trim_array($a::anyarray, $n::integer)
=>
CASE WHEN $a IS NULL OR $n IS NULL THEN NULL WHEN $n < 0 OR $n > cardinality($a) THEN fail('postgresql-error 2202E: ' || 'number of elements to trim must be between 0 and ' || CAST(cardinality($a) AS VARCHAR) || ' <end of postgresql-error>') ELSE slice($a, 1, cardinality($a) - $n) END
| | | |
generate_subscripts The subscripts of a dimension, as rows, in either order. | generate_subscripts($a::anyarray, $d::integer, $reverse::boolean)
=>
refused (its error is under the limitations)
generate_subscripts($a::anyarray, $d::integer)
=>
refused (its error is under the limitations)
| - Refused: generate_subscripts($a::anyarray, $d::integer, $reverse::boolean).
0A000 generate_subscripts() has no form on trino - Refused: generate_subscripts($a::anyarray, $d::integer).
0A000 generate_subscripts() has no form on trino
| | |
array_append An array with an element added at its end; a NULL array is read as an empty one. | array_append(NULL::anycompatiblearray, $v::anycompatible)
=>
ARRAY[$v]
array_append($a::anycompatiblearray, $v::anycompatible)
=>
CASE WHEN $a IS NULL THEN ARRAY[$v] ELSE $a || ARRAY[$v] END
| | | |
array_prepend An array with an element added at its start; a NULL array is read as an empty one. | array_prepend($v::anycompatible, NULL::anycompatiblearray)
=>
ARRAY[$v]
array_prepend($v::anycompatible, $a::anycompatiblearray)
=>
CASE WHEN $a IS NULL THEN ARRAY[$v] ELSE ARRAY[$v] || $a END
| | | |
array_cat Two arrays concatenated; a NULL array is the other one, and two NULL arrays are NULL. | array_cat(NULL::anycompatiblearray, $b::anycompatiblearray)
=>
$b
array_cat($a::anycompatiblearray, NULL::anycompatiblearray)
=>
$a
array_cat($a::anycompatiblearray, $b::anycompatiblearray)
=>
CASE WHEN $a IS NULL THEN $b WHEN $b IS NULL THEN $a ELSE concat($a, $b) END
| | | |
array_lt One array before another, a NULL element after any value. | array_lt($a::anyarray, $b::anyarray)
=>
function provisa.transpiler.polyfill.arrays.ordered_arrays: Two arrays ordered as btree's array_cmp orders them, on Trino, where both are said to hold
| - Only arrays of one dimension said to be of smallint, integer, bigint, boolean or date: any other (text, which orders by the database's collation, or a column of no said type) is refused by name, as Trino's own comparison refuses a NULL element.
| | |
array_le One array before or equal to another, a NULL element after any value. | array_le($a::anyarray, $b::anyarray)
=>
function provisa.transpiler.polyfill.arrays.ordered_arrays: Two arrays ordered as btree's array_cmp orders them, on Trino, where both are said to hold
| - Only arrays of one dimension said to be of smallint, integer, bigint, boolean or date: any other (text, which orders by the database's collation, or a column of no said type) is refused by name, as Trino's own comparison refuses a NULL element.
| | |
array_gt One array after another, a NULL element after any value. | array_gt($a::anyarray, $b::anyarray)
=>
function provisa.transpiler.polyfill.arrays.ordered_arrays: Two arrays ordered as btree's array_cmp orders them, on Trino, where both are said to hold
| - Only arrays of one dimension said to be of smallint, integer, bigint, boolean or date: any other (text, which orders by the database's collation, or a column of no said type) is refused by name, as Trino's own comparison refuses a NULL element.
| | |
array_ge One array after or equal to another, a NULL element after any value. | array_ge($a::anyarray, $b::anyarray)
=>
function provisa.transpiler.polyfill.arrays.ordered_arrays: Two arrays ordered as btree's array_cmp orders them, on Trino, where both are said to hold
| - Only arrays of one dimension said to be of smallint, integer, bigint, boolean or date: any other (text, which orders by the database's collation, or a column of no said type) is refused by name, as Trino's own comparison refuses a NULL element.
| | |
array_larger The larger of two arrays, a NULL element after any value. | array_larger($a::anyarray, $b::anyarray)
=>
function provisa.transpiler.polyfill.arrays.ordered_arrays: Two arrays ordered as btree's array_cmp orders them, on Trino, where both are said to hold
| - Only arrays of one dimension said to be of smallint, integer, bigint, boolean or date: any other (text, which orders by the database's collation, or a column of no said type) is refused by name, as Trino's own comparison refuses a NULL element.
| | |
array_smaller The smaller of two arrays, a NULL element after any value. | array_smaller($a::anyarray, $b::anyarray)
=>
function provisa.transpiler.polyfill.arrays.ordered_arrays: Two arrays ordered as btree's array_cmp orders them, on Trino, where both are said to hold
| - Only arrays of one dimension said to be of smallint, integer, bigint, boolean or date: any other (text, which orders by the database's collation, or a column of no said type) is refused by name, as Trino's own comparison refuses a NULL element.
| | |
btarraycmp btree's comparison of two arrays: -1, 0 or 1, a NULL element after any value. | btarraycmp($a::anyarray, $b::anyarray)
=>
function provisa.transpiler.polyfill.arrays.ordered_arrays: Two arrays ordered as btree's array_cmp orders them, on Trino, where both are said to hold
| - Only arrays of one dimension said to be of smallint, integer, bigint, boolean or date: any other (text, which orders by the database's collation, or a column of no said type) is refused by name, as Trino's own comparison refuses a NULL element.
| | |
pg_timezone_names The zones of the tz database, each with its abbreviation, offset and daylight flag now. | pg_timezone_names()
=>
refused (its error is under the limitations)
| - Refused: pg_timezone_names().
0A000 pg_timezone_names() has no form on trino
| | |
record_eq Two records equal, a NULL field equal to a NULL field. | record_eq($a, $b)
=>
CASE WHEN $a IS NULL OR $b IS NULL THEN CAST(NULL AS BOOLEAN) ELSE $a IS NOT DISTINCT FROM $b END
| | | |
record_ne Two records not equal, a NULL field equal to a NULL field. | record_ne($a, $b)
=>
CASE WHEN $a IS NULL OR $b IS NULL THEN CAST(NULL AS BOOLEAN) ELSE $a IS DISTINCT FROM $b END
| | | |
record_image_eq Two records of equal images, a NULL field equal to a NULL field. | record_image_eq($a, $b)
=>
CASE WHEN $a IS NULL OR $b IS NULL THEN CAST(NULL AS BOOLEAN) ELSE $a IS NOT DISTINCT FROM $b END
| | | |
record_image_ne Two records of images not equal, a NULL field equal to a NULL field. | record_image_ne($a, $b)
=>
CASE WHEN $a IS NULL OR $b IS NULL THEN CAST(NULL AS BOOLEAN) ELSE $a IS DISTINCT FROM $b END
| | | |
record_lt One record before another. | record_lt($a, $b)
=>
refused (its error is under the limitations)
| - Refused: record_lt($a, $b).
0A000 record_lt() has no form on trino - Refused by name: Trino's comparison of two rows refuses a NULL field, which PostgreSQL orders after any value, and orders a text field by its code points.
| | |
record_le One record before or equal to another. | record_le($a, $b)
=>
refused (its error is under the limitations)
| - Refused: record_le($a, $b).
0A000 record_le() has no form on trino - Refused by name: Trino's comparison of two rows refuses a NULL field, which PostgreSQL orders after any value, and orders a text field by its code points.
| | |
record_gt One record after another. | record_gt($a, $b)
=>
refused (its error is under the limitations)
| - Refused: record_gt($a, $b).
0A000 record_gt() has no form on trino - Refused by name: Trino's comparison of two rows refuses a NULL field, which PostgreSQL orders after any value, and orders a text field by its code points.
| | |
record_ge One record after or equal to another. | record_ge($a, $b)
=>
refused (its error is under the limitations)
| - Refused: record_ge($a, $b).
0A000 record_ge() has no form on trino - Refused by name: Trino's comparison of two rows refuses a NULL field, which PostgreSQL orders after any value, and orders a text field by its code points.
| | |
record_image_lt One record image before another. | record_image_lt($a, $b)
=>
refused (its error is under the limitations)
| - Refused: record_image_lt($a, $b).
0A000 record_image_lt() has no form on trino - Refused by name: Trino's comparison of two rows refuses a NULL field, which PostgreSQL orders after any value, and orders a text field by its code points.
| | |
record_image_le One record image before or equal to another. | record_image_le($a, $b)
=>
refused (its error is under the limitations)
| - Refused: record_image_le($a, $b).
0A000 record_image_le() has no form on trino - Refused by name: Trino's comparison of two rows refuses a NULL field, which PostgreSQL orders after any value, and orders a text field by its code points.
| | |
record_image_gt One record image after another. | record_image_gt($a, $b)
=>
refused (its error is under the limitations)
| - Refused: record_image_gt($a, $b).
0A000 record_image_gt() has no form on trino - Refused by name: Trino's comparison of two rows refuses a NULL field, which PostgreSQL orders after any value, and orders a text field by its code points.
| | |
record_image_ge One record image after or equal to another. | record_image_ge($a, $b)
=>
refused (its error is under the limitations)
| - Refused: record_image_ge($a, $b).
0A000 record_image_ge() has no form on trino - Refused by name: Trino's comparison of two rows refuses a NULL field, which PostgreSQL orders after any value, and orders a text field by its code points.
| | |
money_text money's text, as cash_out writes it: $1,234.50, NULL for a NULL. | money_text($v)
=>
CASE WHEN $v IS NULL THEN CAST(NULL AS VARCHAR) ELSE CASE WHEN $v < 0 THEN '-' ELSE '' END || format('$%,.2f', abs(CAST($v AS DECIMAL(19,2)))) END
| | | |
interval_in interval_in of a NULL: PostgreSQL's NULL of interval; of a constant, its interval. | interval_in(NULL, $o, $t)
=>
refused (its error is under the limitations)
interval_in($v, NULL, $t)
=>
refused (its error is under the limitations)
interval_in($v, $o, NULL)
=>
refused (its error is under the limitations)
interval_in('infinity', $o, $t)
=>
refused (its error is under the limitations)
interval_in('-infinity', $o, $t)
=>
refused (its error is under the limitations)
| - Refused: interval_in(NULL, $o, $t).
0A000 interval_in does not read this value - Refused: interval_in($v, NULL, $t).
0A000 interval_in does not read this value - Refused: interval_in($v, $o, NULL).
0A000 interval_in does not read this value - Refused: interval_in('infinity', $o, $t).
0A000 interval_in does not read this value - Refused: interval_in('-infinity', $o, $t).
0A000 interval_in does not read this value - A NULL of interval would be described as text: the call is refused.
0A000 interval_in does not read this value - A constant is folded to its text, which pgwire describes as interval; infinity, which pgwire has no interval value of, is refused.
0A000 interval_in does not read this value
| | |
jsonb_in jsonb_in of a NULL: PostgreSQL's NULL of jsonb. | jsonb_in(NULL)
=>
refused (its error is under the limitations)
| - Refused: jsonb_in(NULL).
0A000 jsonb_in does not read this value - A NULL of jsonb would be described as text: the call is refused.
0A000 jsonb_in does not read this value
| | |
xid8in xid8in of a NULL: PostgreSQL's NULL of xid8. | xid8in(NULL)
=>
refused (its error is under the limitations)
| - Refused: xid8in(NULL).
0A000 xid8in does not read this value - A NULL of xid8 would be described as text: the call is refused.
0A000 xid8in does not read this value
| | |
regexp_replace The first match replaced, or every one with the g flag; i and c set the case. | regexp_replace($s, $p, $r, $f::text)
=>
function provisa.transpiler.polyfill.regex.flagged: regexp_replace with PostgreSQL's flags read: the first match or every one, its case.
| - A flag other than g, i, c and t, a flag that is no constant, and a first match whose pattern or replacement is no constant, whose replacement names the whole match (\0) or whose pattern names a group by number are refused.
0A000 regexp_replace() has no form on trino
| | |
pg_collation_for The collation a COLLATE clause gives a value, as quote_ident writes its name. | pg_collation_for($v::text COLLATE "default")
=>
'"default"'
pg_collation_for($v::character COLLATE "default")
=>
'"default"'
pg_collation_for($v::name COLLATE "default")
=>
'"default"'
pg_collation_for($v::text COLLATE "C")
=>
'"C"'
pg_collation_for($v::character COLLATE "C")
=>
'"C"'
pg_collation_for($v::name COLLATE "C")
=>
'"C"'
pg_collation_for($v::text COLLATE "POSIX")
=>
'"POSIX"'
pg_collation_for($v::character COLLATE "POSIX")
=>
'"POSIX"'
pg_collation_for($v::name COLLATE "POSIX")
=>
'"POSIX"'
pg_collation_for($v::text COLLATE "ucs_basic")
=>
'ucs_basic'
pg_collation_for($v::character COLLATE "ucs_basic")
=>
'ucs_basic'
pg_collation_for($v::name COLLATE "ucs_basic")
=>
'ucs_basic'
pg_collation_for($v::text COLLATE ucs_basic)
=>
'ucs_basic'
pg_collation_for($v::character COLLATE ucs_basic)
=>
'ucs_basic'
pg_collation_for($v::name COLLATE ucs_basic)
=>
'ucs_basic'
pg_collation_for($v::text COLLATE "unicode")
=>
'unicode'
pg_collation_for($v::character COLLATE "unicode")
=>
'unicode'
pg_collation_for($v::name COLLATE "unicode")
=>
'unicode'
pg_collation_for($v::text COLLATE unicode)
=>
'unicode'
pg_collation_for($v::character COLLATE unicode)
=>
'unicode'
pg_collation_for($v::name COLLATE unicode)
=>
'unicode'
pg_collation_for($v::text COLLATE "pg_c_utf8")
=>
'pg_c_utf8'
pg_collation_for($v::character COLLATE "pg_c_utf8")
=>
'pg_c_utf8'
pg_collation_for($v::name COLLATE "pg_c_utf8")
=>
'pg_c_utf8'
pg_collation_for($v::text COLLATE pg_c_utf8)
=>
'pg_c_utf8'
pg_collation_for($v::character COLLATE pg_c_utf8)
=>
'pg_c_utf8'
pg_collation_for($v::name COLLATE pg_c_utf8)
=>
'pg_c_utf8'
pg_collation_for($v COLLATE $c)
=>
refused (its error is under the limitations)
| - Refused: pg_collation_for($v COLLATE $c).
0A000 pg_collation_for does not read this value - Only the built-in collations (default, C, POSIX, ucs_basic, unicode, pg_c_utf8) of a text, character or name value: any other COLLATE is refused.
0A000 pg_collation_for does not read this value
| | |
text_lt One text before another in the database's collation. | function provisa.transpiler.polyfill.trino.refused_text_lt: text_lt: refused by name: Trino has no collation, and orders text by its code points.
| - Refused by name: Trino has no collation, and orders text by its code points.
| | |
text_le One text before or equal to another in the database's collation. | function provisa.transpiler.polyfill.trino.refused_text_le: text_le: refused by name: Trino has no collation, and orders text by its code points.
| - Refused by name: Trino has no collation, and orders text by its code points.
| | |
text_gt One text after another in the database's collation. | function provisa.transpiler.polyfill.trino.refused_text_gt: text_gt: refused by name: Trino has no collation, and orders text by its code points.
| - Refused by name: Trino has no collation, and orders text by its code points.
| | |
text_ge One text after or equal to another in the database's collation. | function provisa.transpiler.polyfill.trino.refused_text_ge: text_ge: refused by name: Trino has no collation, and orders text by its code points.
| - Refused by name: Trino has no collation, and orders text by its code points.
| | |
text_larger The later of two texts in the database's collation. | function provisa.transpiler.polyfill.trino.refused_text_larger: text_larger: refused by name: Trino has no collation, and orders text by its code points.
| - Refused by name: Trino has no collation, and orders text by its code points.
| | |
text_smaller The earlier of two texts in the database's collation. | function provisa.transpiler.polyfill.trino.refused_text_smaller: text_smaller: refused by name: Trino has no collation, and orders text by its code points.
| - Refused by name: Trino has no collation, and orders text by its code points.
| | |
bpcharlt One character string before another in the database's collation. | function provisa.transpiler.polyfill.trino.refused_bpcharlt: bpcharlt: refused by name: Trino has no collation, and orders text by its code points.
| - Refused by name: Trino has no collation, and orders text by its code points.
| | |
bpcharle One character string before or equal to another in the database's collation. | function provisa.transpiler.polyfill.trino.refused_bpcharle: bpcharle: refused by name: Trino has no collation, and orders text by its code points.
| - Refused by name: Trino has no collation, and orders text by its code points.
| | |
bpchargt One character string after another in the database's collation. | function provisa.transpiler.polyfill.trino.refused_bpchargt: bpchargt: refused by name: Trino has no collation, and orders text by its code points.
| - Refused by name: Trino has no collation, and orders text by its code points.
| | |
bpcharge One character string after or equal to another in the database's collation. | function provisa.transpiler.polyfill.trino.refused_bpcharge: bpcharge: refused by name: Trino has no collation, and orders text by its code points.
| - Refused by name: Trino has no collation, and orders text by its code points.
| | |
bpcharcmp btree's comparison of two character strings in the database's collation. | function provisa.transpiler.polyfill.trino.refused_bpcharcmp: bpcharcmp: refused by name: Trino has no collation, and orders text by its code points.
| - Refused by name: Trino has no collation, and orders text by its code points.
| | |
bpchar_larger The later of two character strings in the database's collation. | function provisa.transpiler.polyfill.trino.refused_bpchar_larger: bpchar_larger: refused by name: Trino has no collation, and orders text by its code points.
| - Refused by name: Trino has no collation, and orders text by its code points.
| | |
bpchar_smaller The earlier of two character strings in the database's collation. | function provisa.transpiler.polyfill.trino.refused_bpchar_smaller: bpchar_smaller: refused by name: Trino has no collation, and orders text by its code points.
| - Refused by name: Trino has no collation, and orders text by its code points.
| | |
ts_delete A vector without the lexemes a list holds; a NULL item of the list is skipped. | ts_delete_array($v, $x)
=>
CASE WHEN $v IS NULL THEN NULL ELSE CASE WHEN CASE WHEN coalesce(NOT regexp_like($v, '\A(?:''(?:[^'']|'''')*''(?::[0-9]+[A-C]?(?:,[0-9]+[A-C]?)*)?(?: ''(?:[^'']|'''')*''(?::[0-9]+[A-C]?(?:,[0-9]+[A-C]?)*)?)*)?\z'), false) THEN CAST(CAST('postgresql-error 0A000: ts_delete does not read this value <end of postgresql-error>' AS INTEGER) AS INTEGER) ELSE 0 END = 0 THEN array_join(filter(regexp_extract_all($v, '''(?:[^'']|'''')*''(?::[0-9]+[A-C]?(?:,[0-9]+[A-C]?)*)?'), _t -> NOT coalesce(contains($x, replace(replace(coalesce(regexp_extract(_t, '\A''((?:[^'']|'''')*)''', 1), ''), '''''', ''''), '\\', '\')), false)), ' ') END END
| | | |
inetand The bitwise AND of two addresses. | function provisa.transpiler.polyfill.trino.refused_inetand: inetand: Refused by name: the old table's form is a subquery Trino reads as correlated.
| - Refused by name: the old table's form is a subquery Trino reads as correlated.
| | |
inetor The bitwise OR of two addresses. | function provisa.transpiler.polyfill.trino.refused_inetor: inetor: Refused by name: the old table's form is a subquery Trino reads as correlated.
| - Refused by name: the old table's form is a subquery Trino reads as correlated.
| | |
network_cmp btree's comparison of two networks. | function provisa.transpiler.polyfill.trino.refused_network_cmp: network_cmp: Refused by name: the old table's form is a subquery Trino reads as correlated.
| - Refused by name: the old table's form is a subquery Trino reads as correlated.
| | |
network_eq Two networks equal. | function provisa.transpiler.polyfill.trino.refused_network_eq: network_eq: Refused by name: the old table's form is a subquery Trino reads as correlated.
| - Refused by name: the old table's form is a subquery Trino reads as correlated.
| | |
network_ne Two networks not equal. | function provisa.transpiler.polyfill.trino.refused_network_ne: network_ne: Refused by name: the old table's form is a subquery Trino reads as correlated.
| - Refused by name: the old table's form is a subquery Trino reads as correlated.
| | |
network_lt One network before another. | function provisa.transpiler.polyfill.trino.refused_network_lt: network_lt: Refused by name: the old table's form is a subquery Trino reads as correlated.
| - Refused by name: the old table's form is a subquery Trino reads as correlated.
| | |
network_le One network before or equal to another. | function provisa.transpiler.polyfill.trino.refused_network_le: network_le: Refused by name: the old table's form is a subquery Trino reads as correlated.
| - Refused by name: the old table's form is a subquery Trino reads as correlated.
| | |
network_gt One network after another. | function provisa.transpiler.polyfill.trino.refused_network_gt: network_gt: Refused by name: the old table's form is a subquery Trino reads as correlated.
| - Refused by name: the old table's form is a subquery Trino reads as correlated.
| | |
network_ge One network after or equal to another. | function provisa.transpiler.polyfill.trino.refused_network_ge: network_ge: Refused by name: the old table's form is a subquery Trino reads as correlated.
| - Refused by name: the old table's form is a subquery Trino reads as correlated.
| | |
network_larger The later of two networks. | function provisa.transpiler.polyfill.trino.refused_network_larger: network_larger: Refused by name: the old table's form is a subquery Trino reads as correlated.
| - Refused by name: the old table's form is a subquery Trino reads as correlated.
| | |
network_smaller The earlier of two networks. | function provisa.transpiler.polyfill.trino.refused_network_smaller: network_smaller: Refused by name: the old table's form is a subquery Trino reads as correlated.
| - Refused by name: the old table's form is a subquery Trino reads as correlated.
| | |
network_overlap Two networks that hold an address in common. | function provisa.transpiler.polyfill.trino.refused_network_overlap: network_overlap: Refused by name: the old table's form is a subquery Trino reads as correlated.
| - Refused by name: the old table's form is a subquery Trino reads as correlated.
| | |
network_sub A network strictly within another. | function provisa.transpiler.polyfill.trino.refused_network_sub: network_sub: Refused by name: the old table's form is a subquery Trino reads as correlated.
| - Refused by name: the old table's form is a subquery Trino reads as correlated.
| | |
network_subeq A network within or equal to another. | function provisa.transpiler.polyfill.trino.refused_network_subeq: network_subeq: Refused by name: the old table's form is a subquery Trino reads as correlated.
| - Refused by name: the old table's form is a subquery Trino reads as correlated.
| | |
network_sup A network strictly holding another. | function provisa.transpiler.polyfill.trino.refused_network_sup: network_sup: Refused by name: the old table's form is a subquery Trino reads as correlated.
| - Refused by name: the old table's form is a subquery Trino reads as correlated.
| | |
network_supeq A network holding or equal to another. | function provisa.transpiler.polyfill.trino.refused_network_supeq: network_supeq: Refused by name: the old table's form is a subquery Trino reads as correlated.
| - Refused by name: the old table's form is a subquery Trino reads as correlated.
| | |
broadcast The broadcast address of a network. | function provisa.transpiler.polyfill.trino.refused_broadcast: broadcast of an inet or cidr: refused by name, as the dialect has no such type.
| - Refused by name: the dialect has no inet type, and no form of it.
| | |
family An address's family: 4 or 6. | function provisa.transpiler.polyfill.trino.refused_family: family of an inet or cidr: refused by name, as the dialect has no such type.
| - Refused by name: the dialect has no inet type, and no form of it.
| | |
host An address's text, without its mask length. | function provisa.transpiler.polyfill.trino.refused_host: host of an inet or cidr: refused by name, as the dialect has no such type.
| - Refused by name: the dialect has no inet type, and no form of it.
| | |
network A network's address, its host bits cleared. | function provisa.transpiler.polyfill.trino.refused_network: network of an inet or cidr: refused by name, as the dialect has no such type.
| - Refused by name: the dialect has no inet type, and no form of it.
| | |
macaddr_and The bitwise AND of two MAC addresses. | macaddr_and($a, $b)
=>
regexp_replace(lpad(to_base(bitwise_and(from_base(lower(regexp_replace(CAST($a AS VARCHAR), '[^0-9A-Fa-f]', '')), 16), from_base(lower(regexp_replace(CAST($b AS VARCHAR), '[^0-9A-Fa-f]', '')), 16)), 16), 12, '0'), '(..)(..)(..)(..)(..)(..)', '$1:$2:$3:$4:$5:$6')
| | | |
macaddr_or The bitwise OR of two MAC addresses. | macaddr_or($a, $b)
=>
regexp_replace(lpad(to_base(bitwise_or(from_base(lower(regexp_replace(CAST($a AS VARCHAR), '[^0-9A-Fa-f]', '')), 16), from_base(lower(regexp_replace(CAST($b AS VARCHAR), '[^0-9A-Fa-f]', '')), 16)), 16), 12, '0'), '(..)(..)(..)(..)(..)(..)', '$1:$2:$3:$4:$5:$6')
| | | |
macaddr_not The bitwise NOT of a MAC address. | macaddr_not($a)
=>
regexp_replace(lpad(to_base(bitwise_and(bitwise_not(from_base(lower(regexp_replace(CAST($a AS VARCHAR), '[^0-9A-Fa-f]', '')), 16)), 281474976710655), 16), 12, '0'), '(..)(..)(..)(..)(..)(..)', '$1:$2:$3:$4:$5:$6')
| | | |
macaddr8_and The bitwise AND of two EUI-64 MAC addresses. | function provisa.transpiler.polyfill.trino.refused_macaddr8_and: macaddr8_and: Refused by name: a macaddr8's 64 bits are past what a Trino bigint holds unsigned.
| - Refused by name: a macaddr8's 64 bits are past what a Trino bigint holds unsigned.
| | |
macaddr8_or The bitwise OR of two EUI-64 MAC addresses. | function provisa.transpiler.polyfill.trino.refused_macaddr8_or: macaddr8_or: Refused by name: a macaddr8's 64 bits are past what a Trino bigint holds unsigned.
| - Refused by name: a macaddr8's 64 bits are past what a Trino bigint holds unsigned.
| | |
macaddr8_not The bitwise NOT of an EUI-64 MAC address. | function provisa.transpiler.polyfill.trino.refused_macaddr8_not: macaddr8_not: Refused by name: a macaddr8's 64 bits are past what a Trino bigint holds unsigned.
| - Refused by name: a macaddr8's 64 bits are past what a Trino bigint holds unsigned.
| | |
macaddr8_set7bit An EUI-64 MAC address with its 7th bit set. | function provisa.transpiler.polyfill.trino.refused_macaddr8_set7bit: macaddr8_set7bit: Refused by name: a macaddr8's 64 bits are past what a Trino bigint holds unsigned.
| - Refused by name: a macaddr8's 64 bits are past what a Trino bigint holds unsigned.
| | |
trunc A MAC address with its last three (macaddr) or five (macaddr8) bytes set to zero. | trunc($m)
=>
function provisa.transpiler.polyfill.network.truncated_address: trunc of a MAC address: its first three bytes, the rest zero; any other trunc is kept.
| - A MAC address whose type no statement says is read as a number, and is Trino's own truncate.
| | |
xid8 A value of type xid8. | function provisa.transpiler.polyfill.unheld.xid8_value: A value cast to xid8: refused by name, as Trino has no unsigned 64-bit type (sqlglot writes
| - Refused by name: an xid8 is a 64-bit unsigned number, of a type Trino does not have.
| | |
xid The 32-bit transaction ID of an xid8. | function provisa.transpiler.polyfill.trino.refused_xid: xid: Refused by name: an xid8 is a 64-bit unsigned number, of a type Trino does not have.
| - Refused by name: an xid8 is a 64-bit unsigned number, of a type Trino does not have.
| | |
xid8cmp btree's comparison of two xid8 values. | function provisa.transpiler.polyfill.trino.refused_xid8cmp: xid8cmp: Refused by name: an xid8 is a 64-bit unsigned number, of a type Trino does not have.
| - Refused by name: an xid8 is a 64-bit unsigned number, of a type Trino does not have.
| | |
xid8_larger The larger of two xid8 values. | function provisa.transpiler.polyfill.trino.refused_xid8_larger: xid8_larger: Refused by name: an xid8 is a 64-bit unsigned number, of a type Trino does not have.
| - Refused by name: an xid8 is a 64-bit unsigned number, of a type Trino does not have.
| | |
xid8_smaller The smaller of two xid8 values. | function provisa.transpiler.polyfill.trino.refused_xid8_smaller: xid8_smaller: Refused by name: an xid8 is a 64-bit unsigned number, of a type Trino does not have.
| - Refused by name: an xid8 is a 64-bit unsigned number, of a type Trino does not have.
| | |
pg_xact_status A transaction's commit status. | function provisa.transpiler.polyfill.trino.refused_pg_xact_status: pg_xact_status: Refused by name: an xid8 is a 64-bit unsigned number, of a type Trino does not have.
| - Refused by name: an xid8 is a 64-bit unsigned number, of a type Trino does not have.
| | |
pg_lsn_pli A WAL position moved forward by a number of bytes. | function provisa.transpiler.polyfill.trino.refused_pg_lsn_pli: pg_lsn_pli: Refused by name: a pg_lsn's position is a 64-bit unsigned number, past the literals and the integers Trino has.
| - Refused by name: a pg_lsn's position is a 64-bit unsigned number, past the literals and the integers Trino has.
| | |
pg_lsn_mii A WAL position moved back by a number of bytes. | function provisa.transpiler.polyfill.trino.refused_pg_lsn_mii: pg_lsn_mii: Refused by name: a pg_lsn's position is a 64-bit unsigned number, past the literals and the integers Trino has.
| - Refused by name: a pg_lsn's position is a 64-bit unsigned number, past the literals and the integers Trino has.
| | |
numeric_pl_pg_lsn A number of bytes added to a WAL position. | function provisa.transpiler.polyfill.trino.refused_numeric_pl_pg_lsn: numeric_pl_pg_lsn: Refused by name: a pg_lsn's position is a 64-bit unsigned number, past the literals and the integers Trino has.
| - Refused by name: a pg_lsn's position is a 64-bit unsigned number, past the literals and the integers Trino has.
| | |
pg_lsn_larger The later of two WAL positions. | function provisa.transpiler.polyfill.trino.refused_pg_lsn_larger: pg_lsn_larger: Refused by name: a pg_lsn's position is a 64-bit unsigned number, past the literals and the integers Trino has.
| - Refused by name: a pg_lsn's position is a 64-bit unsigned number, past the literals and the integers Trino has.
| | |
pg_lsn_smaller The earlier of two WAL positions. | function provisa.transpiler.polyfill.trino.refused_pg_lsn_smaller: pg_lsn_smaller: Refused by name: a pg_lsn's position is a 64-bit unsigned number, past the literals and the integers Trino has.
| - Refused by name: a pg_lsn's position is a 64-bit unsigned number, past the literals and the integers Trino has.
| | |
lower The lower bound of a range or multirange. | function provisa.transpiler.polyfill.trino.refused_lower: lower of a range or multirange: refused by name, as Trino has no such type.
| - Of a range or multirange the statement says: refused by name, as Trino has no such type. Of anything else, Trino's own.
| | |
upper The upper bound of a range or multirange. | function provisa.transpiler.polyfill.trino.refused_upper: upper of a range or multirange: refused by name, as Trino has no such type.
| - Of a range or multirange the statement says: refused by name, as Trino has no such type. Of anything else, Trino's own.
| | |
unnest The ranges of a multirange, or the lexemes of a tsvector, as rows. | function provisa.transpiler.polyfill.trino.refused_unnest: unnest of a range, multirange or tsvector: refused by name.
| - Of a range or multirange the statement says: refused by name, as Trino has no such type. Of a tsvector: refused by name, as its rows are three columns (lexeme, positions, weights) of a text the engine holds it as. Of anything else, Trino's own.
| | |
max The largest value of an aggregate. | function provisa.transpiler.polyfill.trino.refused_max: max of an inet, a cidr or an xid8: refused by name, as Trino has no such type.
| - Of an inet, a cidr or an xid8 the statement says: refused by name, as Trino has no such type. Of anything else, Trino's own.
| | |
min The smallest value of an aggregate. | function provisa.transpiler.polyfill.trino.refused_min: min of an inet, a cidr or an xid8: refused by name, as Trino has no such type.
| - Of an inet, a cidr or an xid8 the statement says: refused by name, as Trino has no such type. Of anything else, Trino's own.
| | |
int2_sum A step of an integer sum, in a bigint that wraps past its range. | int2_sum($a, $b)
=>
CASE WHEN $a IS NULL THEN CAST($b AS BIGINT) WHEN $b IS NULL THEN CAST($a AS BIGINT) ELSE CAST((((CAST($a AS DECIMAL(38, 0)) + CAST($b AS DECIMAL(38, 0))) + CAST('9223372036854775808' AS DECIMAL(38, 0))) % CAST('18446744073709551616' AS DECIMAL(38, 0)) + CAST('18446744073709551616' AS DECIMAL(38, 0))) % CAST('18446744073709551616' AS DECIMAL(38, 0)) - CAST('9223372036854775808' AS DECIMAL(38, 0)) AS BIGINT) END
| | | |
int4_sum A step of an integer sum, in a bigint that wraps past its range. | int4_sum($a, $b)
=>
CASE WHEN $a IS NULL THEN CAST($b AS BIGINT) WHEN $b IS NULL THEN CAST($a AS BIGINT) ELSE CAST((((CAST($a AS DECIMAL(38, 0)) + CAST($b AS DECIMAL(38, 0))) + CAST('9223372036854775808' AS DECIMAL(38, 0))) % CAST('18446744073709551616' AS DECIMAL(38, 0)) + CAST('18446744073709551616' AS DECIMAL(38, 0))) % CAST('18446744073709551616' AS DECIMAL(38, 0)) - CAST('9223372036854775808' AS DECIMAL(38, 0)) AS BIGINT) END
| | | |
int8shl A bigint shifted left, its count taken modulo 64, the result wrapping. | int8shl($a, $b)
=>
bitwise_left_shift(CAST($a AS BIGINT), CAST(bitwise_and($b, 63) AS INTEGER))
| | | |
int2shr A smallint shifted right, its sign kept, its count taken modulo 32. | int2shr($a, $b)
=>
CAST(bitwise_right_shift_arithmetic(CAST($a AS INTEGER), CAST(bitwise_and($b, 31) AS INTEGER)) AS SMALLINT)
| | | |
int4shr A integer shifted right, its sign kept, its count taken modulo 32. | int4shr($a, $b)
=>
CAST(bitwise_right_shift_arithmetic(CAST($a AS INTEGER), CAST(bitwise_and($b, 31) AS INTEGER)) AS INTEGER)
| | | |
int8shr A bigint shifted right, its sign kept, its count taken modulo 64. | int8shr($a, $b)
=>
CAST(bitwise_right_shift_arithmetic(CAST($a AS BIGINT), CAST(bitwise_and($b, 63) AS INTEGER)) AS BIGINT)
| | | |
factorial The product of the integers from 1 to n. | factorial($n)
=>
CASE WHEN $n IS NULL THEN CAST(NULL AS DECIMAL(38, 0)) WHEN $n < 0 THEN fail('postgresql-error 22003: factorial of a negative number is undefined<end of postgresql-error>') WHEN $n > 33 THEN fail('postgresql-error 0A000: factorial does not read this value<end of postgresql-error>') ELSE reduce(sequence(1, greatest($n, 1)), CAST(1 AS DECIMAL(38, 0)), (_s, _x) -> _s * _x, _s -> _s) END
| - Past 33, whose factorial a decimal of 38 digits does not hold, refused with 0A000, where PostgreSQL answers its exact digits.
| | |
numeric An integer as a numeric. | numeric($v)
=>
function provisa.transpiler.polyfill.numbers.numeric_of_an_integer: numeric of an integer: its cast to DECIMAL(38, 0); of a json value, refused.
| - Of a json or jsonb value, refused by name.
| | |
bool An integer as a truth value: false for 0. | bool($v)
=>
function provisa.transpiler.polyfill.numbers.bool_of_an_integer: bool of an integer: its cast to BOOLEAN; of a json value, refused.
| - Of a json or jsonb value, refused by name.
| | |
oid A bigint as an oid. | oid($v)
=>
CASE WHEN $v < 0 OR $v > 4294967295 THEN fail('postgresql-error 22003: OID out of range<end of postgresql-error>') ELSE CAST($v AS BIGINT) END
| | | |
random A uniform random integer between two bounds, both included. | random($lo, $hi)
=>
function provisa.transpiler.polyfill.numbers.random_between: random of two integers: a uniform integer from the one to the other, both included.
| - Bounds 2^53 or more apart, and bounds of no said integer type, refused by name: a double draws no wider range exactly.
| | |
date_mi The days from one date to another. | date_mi($a, $b)
=>
CAST(date_diff('day', CAST($b AS DATE), CAST($a AS DATE)) AS INTEGER)
| | | |
date_pli A date moved forward by a number of days. | date_pli($a, $b)
=>
CASE WHEN (date_diff('day', DATE '2000-01-01', CAST($a AS DATE)) + CAST($b AS BIGINT)) < -2451545 OR (date_diff('day', DATE '2000-01-01', CAST($a AS DATE)) + CAST($b AS BIGINT)) >= 2145031948 THEN fail('postgresql-error 22008: date out of range<end of postgresql-error>') ELSE date_add('day', CAST($b AS BIGINT), CAST($a AS DATE)) END
| | | |
date_mii A date moved back by a number of days. | date_mii($a, $b)
=>
CASE WHEN (date_diff('day', DATE '2000-01-01', CAST($a AS DATE)) - CAST($b AS BIGINT)) < -2451545 OR (date_diff('day', DATE '2000-01-01', CAST($a AS DATE)) - CAST($b AS BIGINT)) >= 2145031948 THEN fail('postgresql-error 22008: date out of range<end of postgresql-error>') ELSE date_add('day', -CAST($b AS BIGINT), CAST($a AS DATE)) END
| | | |
time_mi_time The interval from one time of day to another. | function provisa.transpiler.polyfill.trino.refused_time_mi_time: time_mi_time: Refused by name: the old table's form adds a time to a date, which Trino does not.
| - Refused by name: the old table's form adds a time to a date, which Trino does not.
| | |
make_date A date of a year, a month and a day. | make_date($y, $m, $d)
=>
CASE WHEN $y IS NULL OR $m IS NULL OR $d IS NULL THEN CAST(NULL AS DATE) WHEN $y BETWEEN 1 AND 9999 AND $m BETWEEN 1 AND 12 THEN CASE WHEN $d BETWEEN 1 AND day_of_month(last_day_of_month(date_add('month', $m - 1, date_add('year', $y - 1, DATE '0001-01-01')))) THEN date_add('day', $d - 1, date_add('month', $m - 1, date_add('year', $y - 1, DATE '0001-01-01'))) ELSE fail('postgresql-error 0A000: make_date does not read this value<end of postgresql-error>') END ELSE fail('postgresql-error 0A000: make_date does not read this value<end of postgresql-error>') END
| - Only a year from 1 to 9999 and a day the month has: any other is refused with 0A000, where PostgreSQL answers a year BC or past 9999, and refuses a day the month lacks with 22008.
| | |
transaction_timestamp The time the transaction began: now(), as Provisa answers it. | transaction_timestamp()
=>
current_timestamp
| | | |
generate_series A series of integers, as rows. | function provisa.transpiler.polyfill.trino.refused_generate_series: generate_series in a select list: refused by name, as Trino unnests only in FROM.
| - In a select list, refused by name: Trino reads a set of rows only in a FROM clause.
| | |
lag The value of the previous row of a window. | function provisa.transpiler.polyfill.trino.refused_lag: lag over a window of no order: refused by name, as Trino requires one.
| - Over a window of no order, refused by name: Trino requires one.
| | |
lead The value of the next row of a window. | function provisa.transpiler.polyfill.trino.refused_lead: lead over a window of no order: refused by name, as Trino requires one.
| - Over a window of no order, refused by name: Trino requires one.
| | |
string_agg The values of an aggregate joined by a delimiter. | function provisa.transpiler.polyfill.trino.refused_string_agg: string_agg of bytea or of a delimiter that is no constant: refused by name.
| - Of bytea, or of a delimiter that is no constant text, refused by name: Trino's listagg takes a constant separator and no bytes.
| | |
json_object A JSON object of arrays of keys and values. | function provisa.transpiler.polyfill.trino.refused_json_object: json_object of arrays: refused by name.
| - Of arrays, refused by name: Trino builds an object of text keys only.
| | |
pg_conf_load_time The time the server's configuration was last read. | function provisa.transpiler.polyfill.trino.refused_pg_conf_load_time: pg_conf_load_time: Refused by name: the dialect has no form of it.
| - Refused by name: the dialect has no form of it.
| | |
pg_my_temp_schema The oid of the session's temporary schema. | function provisa.transpiler.polyfill.trino.refused_pg_my_temp_schema: pg_my_temp_schema: Refused by name: the dialect has no form of it.
| - Refused by name: the dialect has no form of it.
| | |
pg_postmaster_start_time The time the server started. | function provisa.transpiler.polyfill.trino.refused_pg_postmaster_start_time: pg_postmaster_start_time: Refused by name: the dialect has no form of it.
| - Refused by name: the dialect has no form of it.
| | |
pg_isolation_test_session_is_blocked Whether a session waits on another's lock. | function provisa.transpiler.polyfill.trino.refused_pg_isolation_test_session_is_blocked: pg_isolation_test_session_is_blocked: Refused by name: the dialect has no form of it.
| - Refused by name: the dialect has no form of it.
| | |
postgresql_fdw_validator Whether the options of a foreign-data wrapper are valid. | function provisa.transpiler.polyfill.trino.refused_postgresql_fdw_validator: postgresql_fdw_validator: Refused by name: the dialect has no form of it.
| - Refused by name: the dialect has no form of it.
| | |
array_out An array's text, as a cast of it to text writes it: {1,NULL,3}. | function provisa.transpiler.polyfill.casts.array_text: An array cast to text, as array_out writes it: an array of integers or of text said so of a
| - Only an array said to be of smallint, integer, bigint, text or character varying, of one dimension and holding no call: any other is refused by name, as Trino casts no array to text.
| | |
age The age of a transaction id: INT_MAX for one that is no normal id (0, 1, 2). | function provisa.transpiler.polyfill.server.age_of_xid: age(xid): the special xids answered, a normal one refused where it runs; age of anything
| - Of a normal xid, refused by name where it runs: its age is the current transaction id less it, and the engine holds no transaction id.
0A000 age does not read this value - Of a timestamp, or of an xid within a call: refused by name, as no form of an interval is held here.
| | |
mxid_age The age of a multixact id: INT_MAX for 0, and 1 less it, as Provisa makes no multixact. | mxid_age($x)
=>
CASE WHEN $x IS NULL THEN CAST(NULL AS INTEGER) WHEN $x < -2147483648 OR $x > 4294967295 THEN fail('postgresql-error 0A000: mxid_age does not read this value<end of postgresql-error>') WHEN $x = 0 THEN 2147483647 ELSE CAST(CASE WHEN 1 - (CASE WHEN $x < 0 THEN $x + 4294967296 ELSE $x END) < -2147483648 THEN 1 - (CASE WHEN $x < 0 THEN $x + 4294967296 ELSE $x END) + 4294967296 ELSE 1 - (CASE WHEN $x < 0 THEN $x + 4294967296 ELSE $x END) END AS INTEGER) END
| - An xid past what xid's input reads (-2^31 to 2^32 - 1) is refused by name where it runs.
0A000 mxid_age does not read this value
| | |
pg_char_to_encoding An encoding's number by any of PostgreSQL's names of it; -1 for a name of none. | pg_char_to_encoding($n)
=>
CASE WHEN $n IS NULL THEN CAST(NULL AS INTEGER) WHEN length(to_utf8($n)) > 63 THEN fail('postgresql-error 0A000: pg_char_to_encoding does not read this value<end of postgresql-error>') ELSE CAST(CASE lower(regexp_replace($n, '[^A-Za-z0-9]', '')) WHEN 'abc' THEN 19 WHEN 'alt' THEN 20 WHEN 'big5' THEN 36 WHEN 'euccn' THEN 2 WHEN 'eucjis2004' THEN 5 WHEN 'eucjp' THEN 1 WHEN 'euckr' THEN 3 WHEN 'euctw' THEN 4 WHEN 'gb18030' THEN 39 WHEN 'gbk' THEN 37 WHEN 'iso88591' THEN 8 WHEN 'iso885910' THEN 13 WHEN 'iso885913' THEN 14 WHEN 'iso885914' THEN 15 WHEN 'iso885915' THEN 16 WHEN 'iso885916' THEN 17 WHEN 'iso88592' THEN 9 WHEN 'iso88593' THEN 10 WHEN 'iso88594' THEN 11 WHEN 'iso88595' THEN 25 WHEN 'iso88596' THEN 26 WHEN 'iso88597' THEN 27 WHEN 'iso88598' THEN 28 WHEN 'iso88599' THEN 12 WHEN 'johab' THEN 40 WHEN 'koi8' THEN 22 WHEN 'koi8r' THEN 22 WHEN 'koi8u' THEN 34 WHEN 'latin1' THEN 8 WHEN 'latin10' THEN 17 WHEN 'latin2' THEN 9 WHEN 'latin3' THEN 10 WHEN 'latin4' THEN 11 WHEN 'latin5' THEN 12 WHEN 'latin6' THEN 13 WHEN 'latin7' THEN 14 WHEN 'latin8' THEN 15 WHEN 'latin9' THEN 16 WHEN 'mskanji' THEN 35 WHEN 'muleinternal' THEN 7 WHEN 'shiftjis' THEN 35 WHEN 'shiftjis2004' THEN 41 WHEN 'sjis' THEN 35 WHEN 'sqlascii' THEN 0 WHEN 'tcvn' THEN 19 WHEN 'tcvn5712' THEN 19 WHEN 'uhc' THEN 38 WHEN 'unicode' THEN 6 WHEN 'utf8' THEN 6 WHEN 'vscii' THEN 19 WHEN 'win' THEN 23 WHEN 'win1250' THEN 29 WHEN 'win1251' THEN 23 WHEN 'win1252' THEN 24 WHEN 'win1253' THEN 30 WHEN 'win1254' THEN 31 WHEN 'win1255' THEN 32 WHEN 'win1256' THEN 18 WHEN 'win1257' THEN 33 WHEN 'win1258' THEN 19 WHEN 'win866' THEN 20 WHEN 'win874' THEN 21 WHEN 'win932' THEN 35 WHEN 'win936' THEN 37 WHEN 'win949' THEN 38 WHEN 'win950' THEN 36 WHEN 'windows1250' THEN 29 WHEN 'windows1251' THEN 23 WHEN 'windows1252' THEN 24 WHEN 'windows1253' THEN 30 WHEN 'windows1254' THEN 31 WHEN 'windows1255' THEN 32 WHEN 'windows1256' THEN 18 WHEN 'windows1257' THEN 33 WHEN 'windows1258' THEN 19 WHEN 'windows866' THEN 20 WHEN 'windows874' THEN 21 WHEN 'windows932' THEN 35 WHEN 'windows936' THEN 37 WHEN 'windows949' THEN 38 WHEN 'windows950' THEN 36 ELSE -1 END AS INTEGER) END
| - A name of more than 63 bytes is refused by name where it runs: PostgreSQL cuts it to them as it reads it.
0A000 pg_char_to_encoding does not read this value
| | |
int4multirange A multirange of integers, of ranges or of a VARIADIC array of them. | | - Of a VARIADIC cast to an array of ranges, of anything but the text of an array of one dimension: refused by name, as no array of a range type is held.
0A000 int4multirange() has no form on trino
| | |
int8multirange A multirange of bigints, of ranges or of a VARIADIC array of them. | | - Of a VARIADIC cast to an array of ranges, of anything but the text of an array of one dimension: refused by name, as no array of a range type is held.
0A000 int8multirange() has no form on trino
| | |
nummultirange A multirange of numerics, of ranges or of a VARIADIC array of them. | | - Of a VARIADIC cast to an array of ranges, of anything but the text of an array of one dimension: refused by name, as no array of a range type is held.
0A000 nummultirange() has no form on trino
| | |
datemultirange A multirange of dates, of ranges or of a VARIADIC array of them. | | - Of a VARIADIC cast to an array of ranges, of anything but the text of an array of one dimension: refused by name, as no array of a range type is held.
0A000 datemultirange() has no form on trino
| | |
tsmultirange A multirange of timestamps, of ranges or of a VARIADIC array of them. | | - Of a VARIADIC cast to an array of ranges, of anything but the text of an array of one dimension: refused by name, as no array of a range type is held.
0A000 tsmultirange() has no form on trino
| | |
tstzmultirange A multirange of timestamps with time zone, of ranges or of a VARIADIC array of them. | | - Of a VARIADIC cast to an array of ranges, of anything but the text of an array of one dimension: refused by name, as no array of a range type is held.
0A000 tstzmultirange() has no form on trino
| | |
json_agg A JSON array of an aggregate's values. | function provisa.transpiler.polyfill.json_values.json_agg_of_integers: json_agg of integers the statement says: Trino's array of them cast to JSON.
| - Where a rule writes the call, of a literal, a column or a cast of one only: any other value is refused by name.
- Of integers under a FILTER: refused by name.
- Of a value the statement says is text: refused by name, as Trino's form parses each value as JSON text.
| | |
json_build_object A JSON object of keys and values; each key is cast to its text. | function provisa.transpiler.polyfill.json_values.object_keys_as_text: json_build_object's keys as PostgreSQL's text of them, where one is no text.
| - Where a rule writes the call, of a literal, a column or a cast of one only: any other value is refused by name.
- A key of a type the statement says other than text, an integer or a boolean, or a NULL key: refused by name, as Trino's text of it may differ.
- An odd count of arguments is refused as the statement is read, not where it runs.
22023 argument list must have even number of elements
| | |
jsonb_build_object A JSON object of keys and values; each key is cast to its text. | function provisa.transpiler.polyfill.json_values.object_keys_as_text: json_build_object's keys as PostgreSQL's text of them, where one is no text.
| - Where a rule writes the call, of a literal, a column or a cast of one only: any other value is refused by name.
- A key of a type the statement says other than text, an integer or a boolean, or a NULL key: refused by name, as Trino's text of it may differ.
- An odd count of arguments is refused as the statement is read, not where it runs.
22023 argument list must have even number of elements
| | |
ntile The bucket of a row in a window, as an integer. | function provisa.transpiler.polyfill.clickhouse.bucketed: ntile over a window, as PostgreSQL's integer: every engine's is a bigint. On ClickHouse a
| | | |
numeric_mod The remainder of one numeric divided by another, at the larger scale of the two. | numeric_mod($a, $b)
=>
function provisa.transpiler.polyfill.trino.kept: The old table's form (provisa.transpiler.function_macros): this row writes Trino's only.
| | | |
current_schemas The schemas of the search path. | function provisa.transpiler.polyfill.trino.refused_current_schemas: current_schemas: refused by name, as no form names the search path.
| - Refused by name: Trino has no form of it.
| | |
spg_poly_quad_compress A polygon's bounding box, as the SP-GiST quad tree's compress function answers it. | spg_poly_quad_compress($v)
=>
function provisa.transpiler.polyfill.trino.kept: The old table's form (provisa.transpiler.function_macros): this row writes Trino's only.
| | | |