FUNCTIONS / VERSION COMPARISON
What changed?
Functions · PostgreSQL 16 → 17
24 added · 0 removed · 10 changed · 0 coverage changes. These are changes in the pinned reference snapshots.
changedrandom
--- 16 +++ 17 @@ -1 +1,4 @@ random ( ) → double precision +random ( min integer, max integer ) → integer +random ( min bigint, max bigint ) → bigint +random ( min numeric, max numeric ) → numeric
addedto_bin
--- 16 +++ 17 @@ -0,0 +1,2 @@ +to_bin ( integer ) → text +to_bin ( bigint ) → text
addedto_oct
--- 16 +++ 17 @@ -0,0 +1,2 @@ +to_oct ( integer ) → text +to_oct ( bigint ) → text
addedunicode_assigned
--- 16 +++ 17 @@ -0,0 +1 @@ +unicode_assigned ( text ) → boolean
addeduuid_extract_timestamp
--- 16 +++ 17 @@ -0,0 +1 @@ +uuid_extract_timestamp (uuid) → timestamp with time zone
addeduuid_extract_version
--- 16 +++ 17 @@ -0,0 +1 @@ +uuid_extract_version (uuid) → smallint
changedxmlagg
--- 16 +++ 17 @@ -1 +1,2 @@ xmlagg ( xml ) → xml +xmlagg ( xml ORDER BY input_sort_columns ) → xml
addedxmltext
--- 16 +++ 17 @@ -0,0 +1 @@ +xmltext ( text ) → xml
addedjson
--- 16
+++ 17
@@ -0,0 +1 @@
+json ( expression [ FORMAT JSON [ ENCODING UTF8 ]] [ { WITH | WITHOUT } UNIQUE [ KEYS ]] ) → jsonaddedJSON_EXISTS
--- 16
+++ 17
@@ -0,0 +1 @@
+JSON_EXISTS ( context_item, path_expression [PASSING { value AS varname } [, ...]] [{ TRUE | FALSE | UNKNOWN | ERROR } ON ERROR]) → booleanaddedJSON_QUERY
--- 16
+++ 17
@@ -0,0 +1 @@
+JSON_QUERY ( context_item, path_expression [PASSING { value AS varname } [, ...]] [RETURNING data_type [FORMAT JSON [ENCODING UTF8] ] ] [ { WITHOUT | WITH { CONDITIONAL | [UNCONDITIONAL] } } [ARRAY] WRAPPER] [ { KEEP | OMIT } QUOTES [ON SCALAR STRING] ] [ { ERROR | NULL | EMPTY { [ARRAY] | OBJECT } | DEFAULT expression } ON EMPTY] [ { ERROR | NULL | EMPTY { [ARRAY] | OBJECT } | DEFAULT expression } ON ERROR]) → jsonbaddedjson_scalar
--- 16 +++ 17 @@ -0,0 +1 @@ +json_scalar ( expression )
addedjson_serialize
--- 16 +++ 17 @@ -0,0 +1 @@ +json_serialize ( expression [ FORMAT JSON [ ENCODING UTF8 ] ] [ RETURNING data_type [ FORMAT JSON [ ENCODING UTF8 ] ] ] )
addedJSON_TABLE
--- 16
+++ 17
@@ -0,0 +1 @@
+JSON_TABLE ( context_item, path_expression [ AS json_path_name] [ PASSING { value AS varname } [, ...] ] COLUMNS ( json_table_column [, ...] ) [ { ERROR | EMPTY [ARRAY]} ON ERROR] )addedJSON_VALUE
--- 16
+++ 17
@@ -0,0 +1 @@
+JSON_VALUE ( context_item, path_expression [PASSING { value AS varname } [, ...]] [RETURNING data_type] [ { ERROR | NULL | DEFAULT expression } ON EMPTY] [ { ERROR | NULL | DEFAULT expression } ON ERROR]) → textaddedjsonb_populate_record_valid
--- 16 +++ 17 @@ -0,0 +1 @@ +jsonb_populate_record_valid ( base anyelement, from_json json ) → boolean
changedarray_agg
--- 16 +++ 17 @@ -1,2 +1,2 @@ -array_agg ( anynonarray ) → anyarray -array_agg ( anyarray ) → anyarray +array_agg ( anynonarray ORDER BY input_sort_columns ) → anyarray +array_agg ( anyarray ORDER BY input_sort_columns ) → anyarray
changedjson_agg
--- 16 +++ 17 @@ -1 +1 @@ -json_agg ( anyelement ) → json +json_agg ( anyelement ORDER BY input_sort_columns ) → json
changedjson_object_agg
--- 16 +++ 17 @@ -1 +1 @@ -json_object_agg ( key "any", value "any" ) → json +json_object_agg ( key "any", value "any" ORDER BY input_sort_columns ) → json
changedjsonb_agg
--- 16 +++ 17 @@ -1 +1 @@ -jsonb_agg ( anyelement ) → jsonb +jsonb_agg ( anyelement ORDER BY input_sort_columns ) → jsonb
changedjsonb_object_agg
--- 16 +++ 17 @@ -1 +1 @@ -jsonb_object_agg ( key "any", value "any" ) → jsonb +jsonb_object_agg ( key "any", value "any" ORDER BY input_sort_columns ) → jsonb
changedstring_agg
--- 16 +++ 17 @@ -1,2 +1,2 @@ string_agg ( value text, delimiter text ) → text -string_agg ( value bytea, delimiter bytea ) → bytea +string_agg ( value bytea, delimiter bytea ORDER BY input_sort_columns ) → bytea
addedmerge_action
--- 16 +++ 17 @@ -0,0 +1 @@ +merge_action ( ) → text
addedicu_unicode_version
--- 16 +++ 17 @@ -0,0 +1 @@ +icu_unicode_version () → text
addedpg_available_wal_summaries
--- 16 +++ 17 @@ -0,0 +1 @@ +pg_available_wal_summaries () → setof record ( tli bigint, start_lsn pg_lsn, end_lsn pg_lsn )
addedpg_basetype
--- 16 +++ 17 @@ -0,0 +1 @@ +pg_basetype ( regtype ) → regtype
addedpg_get_wal_summarizer_state
--- 16 +++ 17 @@ -0,0 +1 @@ +pg_get_wal_summarizer_state () → record ( summarized_tli bigint, summarized_lsn pg_lsn, pending_lsn pg_lsn, summarizer_pid int )
addedpg_wal_summary_contents
--- 16 +++ 17 @@ -0,0 +1 @@ +pg_wal_summary_contents ( tli bigint, start_lsn pg_lsn, end_lsn pg_lsn ) → setof record ( relfilenode oid, reltablespace oid, reldatabase oid, relforknumber smallint, relblocknumber bigint, is_limit_block boolean )
addedto_regtypemod
--- 16 +++ 17 @@ -0,0 +1 @@ +to_regtypemod ( text ) → integer
addedunicode_version
--- 16 +++ 17 @@ -0,0 +1 @@ +unicode_version () → text
addedpg_column_toast_chunk_id
--- 16 +++ 17 @@ -0,0 +1 @@ +pg_column_toast_chunk_id ( "any" ) → oid
changedpg_create_logical_replication_slot
--- 16 +++ 17 @@ -1 +1 @@ -pg_create_logical_replication_slot ( slot_name name, plugin name [, temporary boolean, twophase boolean ] ) → record ( slot_name name, lsn pg_lsn ) +pg_create_logical_replication_slot ( slot_name name, plugin name [, temporary boolean, twophase boolean, failover boolean ] ) → record ( slot_name name, lsn pg_lsn )
changedpg_logical_emit_message
--- 16 +++ 17 @@ -1,2 +1,2 @@ -pg_logical_emit_message ( transactional boolean, prefix text, content text ) → pg_lsn -pg_logical_emit_message ( transactional boolean, prefix text, content bytea ) → pg_lsn +pg_logical_emit_message ( transactional boolean, prefix text, content text [, flush boolean DEFAULT false] ) → pg_lsn +pg_logical_emit_message ( transactional boolean, prefix text, content bytea [, flush boolean DEFAULT false] ) → pg_lsn
addedpg_sync_replication_slots
--- 16 +++ 17 @@ -0,0 +1 @@ +pg_sync_replication_slots () → void