{"kind": "operator", "major": "18", "item": {"slug": "op-7c7c-jsonb-jsonb", "name": "||(jsonb,jsonb)", "name_zh": "", "category": "JSON", "summary": "concatenate", "aliases": ["||", "||(jsonb,jsonb)"], "content_hash": "68a059c3141e9faf4ea3f82b303d538c82e97d22aa02aa50f47b66168ae6a88e", "versions": {"10": {"facts": [{"label": "Left operand", "value": "jsonb"}, {"label": "Right operand", "value": "jsonb"}, {"label": "Result type", "value": "jsonb"}, {"label": "Implementing function", "value": "jsonb_concat(jsonb,jsonb)"}, {"label": "Operator kind", "value": "Binary"}, {"label": "Hash join candidate", "value": "no"}, {"label": "Merge join candidate", "value": "no"}], "tables": [], "aliases": ["||", "||(jsonb,jsonb)"], "related": [{"url": "/wiki/type/jsonb/?v=10", "label": "jsonb data type"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v10.23/postgresql-10.23.tar.bz2", "label": "10.23", "major": "10", "channel": "historical", "revision": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9", "source_sha256": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9", "manual_fingerprint": "113b870e3ff4b52320f34750da5e740800f3f6e4ed6f2fc00a0891944d1be7c2", "catalog_fingerprint": "dd2d5fd5e17d29184db5f6625f9f0f9b9d40ae7aa34b6ccf28ddbc8684bd4992"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v10.23/postgresql-10.23.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9"}, {"url": "/docs/10/catalog-pg-operator.html", "path": "catalog-pg-operator.html", "label": "PostgreSQL 10 English manual: catalog-pg-operator.html", "sha256": "1264240e312e88b54064702e9716b8d21fec2f06d1e3a9568f88a01f19f722df"}, {"url": "/docs/10/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 10 English manual: catalog-pg-amop.html", "sha256": "d5ce5a3be599e5506edbe3ff615674beb013720953f4979a44b6ecfd4cc24090"}], "operator": {"kind": "b", "symbol": "||", "negator": "", "function": "jsonb_concat(jsonb,jsonb)", "hash_join": "f", "left_type": "jsonb", "commutator": "", "merge_join": "f", "right_type": "jsonb", "result_type": "jsonb"}, "sections": [{"title": "Catalog interpretation", "paragraphs": ["The catalog pg_operator stores information about operators. See CREATE OPERATOR and Section 37.12 for more information.", "Unused columns contain zeroes. For example, oprleft is zero for a prefix operator."]}], "signature": "||(jsonb,jsonb) \u2192 jsonb", "source_oid": "3284", "description": ["concatenate"], "memberships": [], "comparison_data": {"operator": {"kind": "b", "symbol": "||", "negator": "", "function": "jsonb_concat(jsonb,jsonb)", "hash_join": "f", "left_type": "jsonb", "commutator": "", "merge_join": "f", "right_type": "jsonb", "result_type": "jsonb"}, "memberships": []}, "comparison_hash": "bbd6d29974ff813ffc705406cfc40ca83f346f7e5b8641bb814cf861a25a7b8c", "manual_semantics": "Source catalog description; no additional matching manual operator definition claimed"}, "11": {"facts": [{"label": "Left operand", "value": "jsonb"}, {"label": "Right operand", "value": "jsonb"}, {"label": "Result type", "value": "jsonb"}, {"label": "Implementing function", "value": "jsonb_concat(jsonb,jsonb)"}, {"label": "Operator kind", "value": "Binary"}, {"label": "Hash join candidate", "value": "no"}, {"label": "Merge join candidate", "value": "no"}], "tables": [], "aliases": ["||", "||(jsonb,jsonb)"], "related": [{"url": "/wiki/type/jsonb/?v=11", "label": "jsonb data type"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v11.22/postgresql-11.22.tar.bz2", "label": "11.22", "major": "11", "channel": "historical", "revision": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0", "source_sha256": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0", "manual_fingerprint": "99c9e45d34555f000789cb4e019492e838041c1f2f31d840f3051ff9d7ed9118", "catalog_fingerprint": "4f08eb8c7ac7d09abfbb29a172148a44b8fb72026616bb55a5f8f84db7a38785"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v11.22/postgresql-11.22.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0"}, {"url": "/docs/11/catalog-pg-operator.html", "path": "catalog-pg-operator.html", "label": "PostgreSQL 11 English manual: catalog-pg-operator.html", "sha256": "3de94bb7f17052a69cf35056c95cac18bf74de96ea2c7b243165f1eeb6a3d587"}, {"url": "/docs/11/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 11 English manual: catalog-pg-amop.html", "sha256": "c17d050a6f2d093de2c343242bcc4d446b936de1d2902727d3fa3b0697b44fd3"}], "operator": {"kind": "b", "symbol": "||", "negator": "", "function": "jsonb_concat(jsonb,jsonb)", "hash_join": "f", "left_type": "jsonb", "commutator": "", "merge_join": "f", "right_type": "jsonb", "result_type": "jsonb"}, "sections": [{"title": "Catalog interpretation", "paragraphs": ["The catalog pg_operator stores information about operators. See CREATE OPERATOR and Section 38.13 for more information.", "Unused columns contain zeroes. For example, oprleft is zero for a prefix operator."]}], "signature": "||(jsonb,jsonb) \u2192 jsonb", "source_oid": "3284", "description": ["concatenate"], "memberships": [], "comparison_data": {"operator": {"kind": "b", "symbol": "||", "negator": "", "function": "jsonb_concat(jsonb,jsonb)", "hash_join": "f", "left_type": "jsonb", "commutator": "", "merge_join": "f", "right_type": "jsonb", "result_type": "jsonb"}, "memberships": []}, "comparison_hash": "bbd6d29974ff813ffc705406cfc40ca83f346f7e5b8641bb814cf861a25a7b8c", "manual_semantics": "Source catalog description; no additional matching manual operator definition claimed"}, "12": {"facts": [{"label": "Left operand", "value": "jsonb"}, {"label": "Right operand", "value": "jsonb"}, {"label": "Result type", "value": "jsonb"}, {"label": "Implementing function", "value": "jsonb_concat(jsonb,jsonb)"}, {"label": "Operator kind", "value": "Binary"}, {"label": "Hash join candidate", "value": "no"}, {"label": "Merge join candidate", "value": "no"}], "tables": [], "aliases": ["||", "||(jsonb,jsonb)"], "related": [{"url": "/wiki/type/jsonb/?v=12", "label": "jsonb data type"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v12.22/postgresql-12.22.tar.bz2", "label": "12.22", "major": "12", "channel": "historical", "revision": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b", "source_sha256": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b", "manual_fingerprint": "535df36baec2140f211303631c0a3f64e02d2673b9d34cb050d247997c94bd1e", "catalog_fingerprint": "1f423fd3c5fb61c039f8814116ce19dedbb2804bc864599818e88cbc4f5f284a"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v12.22/postgresql-12.22.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b"}, {"url": "/docs/12/catalog-pg-operator.html", "path": "catalog-pg-operator.html", "label": "PostgreSQL 12 English manual: catalog-pg-operator.html", "sha256": "e3f4410bbe926fcc950323b3358f3be85a42e2552afd5938562f725df6675cdb"}, {"url": "/docs/12/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 12 English manual: catalog-pg-amop.html", "sha256": "84b91a9d763b1fb2968cc8be226a0369d31a6acb2468eb56cfd0b8d2030d1b45"}], "operator": {"kind": "b", "symbol": "||", "negator": "", "function": "jsonb_concat(jsonb,jsonb)", "hash_join": "f", "left_type": "jsonb", "commutator": "", "merge_join": "f", "right_type": "jsonb", "result_type": "jsonb"}, "sections": [{"title": "Catalog interpretation", "paragraphs": ["The catalog pg_operator stores information about operators. See CREATE OPERATOR and Section 37.14 for more information.", "Unused columns contain zeroes. For example, oprleft is zero for a prefix operator."]}], "signature": "||(jsonb,jsonb) \u2192 jsonb", "source_oid": "3284", "description": ["concatenate"], "memberships": [], "comparison_data": {"operator": {"kind": "b", "symbol": "||", "negator": "", "function": "jsonb_concat(jsonb,jsonb)", "hash_join": "f", "left_type": "jsonb", "commutator": "", "merge_join": "f", "right_type": "jsonb", "result_type": "jsonb"}, "memberships": []}, "comparison_hash": "bbd6d29974ff813ffc705406cfc40ca83f346f7e5b8641bb814cf861a25a7b8c", "manual_semantics": "Source catalog description; no additional matching manual operator definition claimed"}, "13": {"facts": [{"label": "Left operand", "value": "jsonb"}, {"label": "Right operand", "value": "jsonb"}, {"label": "Result type", "value": "jsonb"}, {"label": "Implementing function", "value": "jsonb_concat(jsonb,jsonb)"}, {"label": "Operator kind", "value": "Binary"}, {"label": "Hash join candidate", "value": "no"}, {"label": "Merge join candidate", "value": "no"}], "tables": [], "aliases": ["||", "||(jsonb,jsonb)"], "related": [{"url": "/wiki/type/jsonb/?v=13", "label": "jsonb data type"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v13.23/postgresql-13.23.tar.bz2", "label": "13.23", "major": "13", "channel": "historical", "revision": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6", "source_sha256": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6", "manual_fingerprint": "2bbea71f4723fc9e4e58cfdb28368763f999de2800d45ade748f7c7546dfb9d3", "catalog_fingerprint": "df58d29b226fbb90326087233d7970032abdec1352373270449eeee324f84a35"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v13.23/postgresql-13.23.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6"}, {"url": "/docs/13/catalog-pg-operator.html", "path": "catalog-pg-operator.html", "label": "PostgreSQL 13 English manual: catalog-pg-operator.html", "sha256": "1a325d2fa41f711c0a7fa6b57e37e8e98a59f218e01112e0767c455c1b5818a1"}, {"url": "/docs/13/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 13 English manual: catalog-pg-amop.html", "sha256": "7a8e67f8dc59c305612c6d029fc8760c092f27203d5338c6db6c6d9b8aabc561"}, {"url": "/docs/13/functions-json.html#FUNCTIONS-JSONB-OP-TABLE", "path": "functions-json.html", "label": "PostgreSQL 13 English manual: functions-json.html", "sha256": "0c799abd02eda411bf4c690b0df8db2d6fbef7065c9db5ab5336e774946da276"}], "operator": {"kind": "b", "symbol": "||", "negator": "", "function": "jsonb_concat(jsonb,jsonb)", "hash_join": "f", "left_type": "jsonb", "commutator": "", "merge_join": "f", "right_type": "jsonb", "result_type": "jsonb"}, "sections": [{"title": "English manual definition", "paragraphs": ["Concatenates two jsonb values. Concatenating two arrays generates an array containing all the elements of each input. Concatenating two objects generates an object containing the union of their keys, taking the second object's value when there are duplicate keys. All other cases are treated by converting a non-array input into a single-element array, and then proceeding as for two arrays. Does not operate recursively: only the top-level array or object structure is merged.", "'[\"a\", \"b\"]'::jsonb || '[\"a\", \"d\"]'::jsonb \u2192 [\"a\", \"b\", \"a\", \"d\"]", "'{\"a\": \"b\"}'::jsonb || '{\"c\": \"d\"}'::jsonb \u2192 {\"a\": \"b\", \"c\": \"d\"}", "'[1, 2]'::jsonb || '3'::jsonb \u2192 [1, 2, 3]", "'{\"a\": \"b\"}'::jsonb || '42'::jsonb \u2192 [{\"a\": \"b\"}, 42]", "To append an array to another array as a single entry, wrap it in an additional layer of array, for example:", "'[1, 2]'::jsonb || jsonb_build_array('[3, 4]'::jsonb) \u2192 [1, 2, [3, 4]]"]}, {"title": "Catalog interpretation", "paragraphs": ["The catalog pg_operator stores information about operators. See CREATE OPERATOR and Section 37.14 for more information.", "Unused columns contain zeroes. For example, oprleft is zero for a prefix operator."]}], "signature": "||(jsonb,jsonb) \u2192 jsonb", "source_oid": "3284", "description": ["concatenate"], "memberships": [], "comparison_data": {"operator": {"kind": "b", "symbol": "||", "negator": "", "function": "jsonb_concat(jsonb,jsonb)", "hash_join": "f", "left_type": "jsonb", "commutator": "", "merge_join": "f", "right_type": "jsonb", "result_type": "jsonb"}, "memberships": []}, "comparison_hash": "bbd6d29974ff813ffc705406cfc40ca83f346f7e5b8641bb814cf861a25a7b8c", "manual_semantics": "Exact operand/result signature matched"}, "14": {"facts": [{"label": "Left operand", "value": "jsonb"}, {"label": "Right operand", "value": "jsonb"}, {"label": "Result type", "value": "jsonb"}, {"label": "Implementing function", "value": "jsonb_concat(jsonb,jsonb)"}, {"label": "Operator kind", "value": "Binary"}, {"label": "Hash join candidate", "value": "no"}, {"label": "Merge join candidate", "value": "no"}], "tables": [], "aliases": ["||", "||(jsonb,jsonb)"], "related": [{"url": "/wiki/type/jsonb/?v=14", "label": "jsonb data type"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v14.24/postgresql-14.24.tar.bz2", "label": "14.24", "major": "14", "channel": "stable", "revision": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897", "source_sha256": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897", "manual_fingerprint": "1d055c6dc55d4defe2b6e9d0f842a47005487b21025b67e51d06721d3c122f71", "catalog_fingerprint": "9e0116f26e5ce870719efb77ef7b73e30c7928f8af27cbe87fdea32efe3811ef"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v14.24/postgresql-14.24.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897"}, {"url": "/docs/14/catalog-pg-operator.html", "path": "catalog-pg-operator.html", "label": "PostgreSQL 14 English manual: catalog-pg-operator.html", "sha256": "5e69fa82a7f0b49efb4ba5fc669e5bd35aeeede75682493bfc87e6035b23dd4d"}, {"url": "/docs/14/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 14 English manual: catalog-pg-amop.html", "sha256": "402b87d7fb1a313b096ba5349a676ae38d507e2eb98739d6ed7f0681e0b9a9a4"}, {"url": "/docs/14/functions-json.html#FUNCTIONS-JSONB-OP-TABLE", "path": "functions-json.html", "label": "PostgreSQL 14 English manual: functions-json.html", "sha256": "49d1b7392871696670bd9db5c1758500fd893257000e24b1ff0a16c3d6137583"}], "operator": {"kind": "b", "symbol": "||", "negator": "", "function": "jsonb_concat(jsonb,jsonb)", "hash_join": "f", "left_type": "jsonb", "commutator": "", "merge_join": "f", "right_type": "jsonb", "result_type": "jsonb"}, "sections": [{"title": "English manual definition", "paragraphs": ["Concatenates two jsonb values. Concatenating two arrays generates an array containing all the elements of each input. Concatenating two objects generates an object containing the union of their keys, taking the second object's value when there are duplicate keys. All other cases are treated by converting a non-array input into a single-element array, and then proceeding as for two arrays. Does not operate recursively: only the top-level array or object structure is merged.", "'[\"a\", \"b\"]'::jsonb || '[\"a\", \"d\"]'::jsonb \u2192 [\"a\", \"b\", \"a\", \"d\"]", "'{\"a\": \"b\"}'::jsonb || '{\"c\": \"d\"}'::jsonb \u2192 {\"a\": \"b\", \"c\": \"d\"}", "'[1, 2]'::jsonb || '3'::jsonb \u2192 [1, 2, 3]", "'{\"a\": \"b\"}'::jsonb || '42'::jsonb \u2192 [{\"a\": \"b\"}, 42]", "To append an array to another array as a single entry, wrap it in an additional layer of array, for example:", "'[1, 2]'::jsonb || jsonb_build_array('[3, 4]'::jsonb) \u2192 [1, 2, [3, 4]]"]}, {"title": "Catalog interpretation", "paragraphs": ["The catalog pg_operator stores information about operators. See CREATE OPERATOR and Section 38.14 for more information."]}], "signature": "||(jsonb,jsonb) \u2192 jsonb", "source_oid": "3284", "description": ["concatenate"], "memberships": [], "comparison_data": {"operator": {"kind": "b", "symbol": "||", "negator": "", "function": "jsonb_concat(jsonb,jsonb)", "hash_join": "f", "left_type": "jsonb", "commutator": "", "merge_join": "f", "right_type": "jsonb", "result_type": "jsonb"}, "memberships": []}, "comparison_hash": "bbd6d29974ff813ffc705406cfc40ca83f346f7e5b8641bb814cf861a25a7b8c", "manual_semantics": "Exact operand/result signature matched"}, "15": {"facts": [{"label": "Left operand", "value": "jsonb"}, {"label": "Right operand", "value": "jsonb"}, {"label": "Result type", "value": "jsonb"}, {"label": "Implementing function", "value": "jsonb_concat(jsonb,jsonb)"}, {"label": "Operator kind", "value": "Binary"}, {"label": "Hash join candidate", "value": "no"}, {"label": "Merge join candidate", "value": "no"}], "tables": [], "aliases": ["||", "||(jsonb,jsonb)"], "related": [{"url": "/wiki/type/jsonb/?v=15", "label": "jsonb data type"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v15.19/postgresql-15.19.tar.bz2", "label": "15.19", "major": "15", "channel": "stable", "revision": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89", "source_sha256": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89", "manual_fingerprint": "f39c61e9facb5b9404c7d6d1cf494d83af0cc46146554a7fc40724eb882d24a9", "catalog_fingerprint": "1c332a5ccec7bfdd8ca19b55a0279b5bd6cb1dd5dcc6c5587a98a491a9b566a5"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v15.19/postgresql-15.19.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89"}, {"url": "/docs/15/catalog-pg-operator.html", "path": "catalog-pg-operator.html", "label": "PostgreSQL 15 English manual: catalog-pg-operator.html", "sha256": "3719563ca7bb28791116cb206b9998cd336d09fb4d4cc4a236b6447bcfd5cbb2"}, {"url": "/docs/15/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 15 English manual: catalog-pg-amop.html", "sha256": "53ced8770f19710869151ab02a9a6f0d97380981ca4bfe83752092bfb74a9e0c"}, {"url": "/docs/15/functions-json.html#FUNCTIONS-JSONB-OP-TABLE", "path": "functions-json.html", "label": "PostgreSQL 15 English manual: functions-json.html", "sha256": "3899c2c1d0ed5e167d7f8a55cd5641396b86c3d5a7d94f6e4dc5a9c96ea78b9b"}], "operator": {"kind": "b", "symbol": "||", "negator": "", "function": "jsonb_concat(jsonb,jsonb)", "hash_join": "f", "left_type": "jsonb", "commutator": "", "merge_join": "f", "right_type": "jsonb", "result_type": "jsonb"}, "sections": [{"title": "English manual definition", "paragraphs": ["Concatenates two jsonb values. Concatenating two arrays generates an array containing all the elements of each input. Concatenating two objects generates an object containing the union of their keys, taking the second object's value when there are duplicate keys. All other cases are treated by converting a non-array input into a single-element array, and then proceeding as for two arrays. Does not operate recursively: only the top-level array or object structure is merged.", "'[\"a\", \"b\"]'::jsonb || '[\"a\", \"d\"]'::jsonb \u2192 [\"a\", \"b\", \"a\", \"d\"]", "'{\"a\": \"b\"}'::jsonb || '{\"c\": \"d\"}'::jsonb \u2192 {\"a\": \"b\", \"c\": \"d\"}", "'[1, 2]'::jsonb || '3'::jsonb \u2192 [1, 2, 3]", "'{\"a\": \"b\"}'::jsonb || '42'::jsonb \u2192 [{\"a\": \"b\"}, 42]", "To append an array to another array as a single entry, wrap it in an additional layer of array, for example:", "'[1, 2]'::jsonb || jsonb_build_array('[3, 4]'::jsonb) \u2192 [1, 2, [3, 4]]"]}, {"title": "Catalog interpretation", "paragraphs": ["The catalog pg_operator stores information about operators. See CREATE OPERATOR and Section 38.14 for more information."]}], "signature": "||(jsonb,jsonb) \u2192 jsonb", "source_oid": "3284", "description": ["concatenate"], "memberships": [], "comparison_data": {"operator": {"kind": "b", "symbol": "||", "negator": "", "function": "jsonb_concat(jsonb,jsonb)", "hash_join": "f", "left_type": "jsonb", "commutator": "", "merge_join": "f", "right_type": "jsonb", "result_type": "jsonb"}, "memberships": []}, "comparison_hash": "bbd6d29974ff813ffc705406cfc40ca83f346f7e5b8641bb814cf861a25a7b8c", "manual_semantics": "Exact operand/result signature matched"}, "16": {"facts": [{"label": "Left operand", "value": "jsonb"}, {"label": "Right operand", "value": "jsonb"}, {"label": "Result type", "value": "jsonb"}, {"label": "Implementing function", "value": "jsonb_concat(jsonb,jsonb)"}, {"label": "Operator kind", "value": "Binary"}, {"label": "Hash join candidate", "value": "no"}, {"label": "Merge join candidate", "value": "no"}], "tables": [], "aliases": ["||", "||(jsonb,jsonb)"], "related": [{"url": "/wiki/type/jsonb/?v=16", "label": "jsonb data type"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v16.15/postgresql-16.15.tar.bz2", "label": "16.15", "major": "16", "channel": "stable", "revision": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed", "source_sha256": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed", "manual_fingerprint": "846fb006e9d590387203c1c65f671240bc5c30604c4e3084cf572817aacc19d0", "catalog_fingerprint": "70797d889dd8aeed77ae81092f99ab380e1109b54b0b7ca6fbf400e0a2111a70"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v16.15/postgresql-16.15.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed"}, {"url": "/docs/16/catalog-pg-operator.html", "path": "catalog-pg-operator.html", "label": "PostgreSQL 16 English manual: catalog-pg-operator.html", "sha256": "dc789ccf76b6bcbb9b1793858fe700431720a1e70f3261de2b3362ed78040476"}, {"url": "/docs/16/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 16 English manual: catalog-pg-amop.html", "sha256": "f580ac4a34d5f9d567834684e0c41b7df32a952e20a2fc11a9ce0964c2df7e9a"}, {"url": "/docs/16/functions-json.html#FUNCTIONS-JSONB-OP-TABLE", "path": "functions-json.html", "label": "PostgreSQL 16 English manual: functions-json.html", "sha256": "2db2279ec454e255eed9637ca7dcefc617ac7753505220658187d699eb0cc48e"}], "operator": {"kind": "b", "symbol": "||", "negator": "", "function": "jsonb_concat(jsonb,jsonb)", "hash_join": "f", "left_type": "jsonb", "commutator": "", "merge_join": "f", "right_type": "jsonb", "result_type": "jsonb"}, "sections": [{"title": "English manual definition", "paragraphs": ["Concatenates two jsonb values. Concatenating two arrays generates an array containing all the elements of each input. Concatenating two objects generates an object containing the union of their keys, taking the second object's value when there are duplicate keys. All other cases are treated by converting a non-array input into a single-element array, and then proceeding as for two arrays. Does not operate recursively: only the top-level array or object structure is merged.", "'[\"a\", \"b\"]'::jsonb || '[\"a\", \"d\"]'::jsonb \u2192 [\"a\", \"b\", \"a\", \"d\"]", "'{\"a\": \"b\"}'::jsonb || '{\"c\": \"d\"}'::jsonb \u2192 {\"a\": \"b\", \"c\": \"d\"}", "'[1, 2]'::jsonb || '3'::jsonb \u2192 [1, 2, 3]", "'{\"a\": \"b\"}'::jsonb || '42'::jsonb \u2192 [{\"a\": \"b\"}, 42]", "To append an array to another array as a single entry, wrap it in an additional layer of array, for example:", "'[1, 2]'::jsonb || jsonb_build_array('[3, 4]'::jsonb) \u2192 [1, 2, [3, 4]]"]}, {"title": "Catalog interpretation", "paragraphs": ["The catalog pg_operator stores information about operators. See CREATE OPERATOR and Section 38.14 for more information."]}], "signature": "||(jsonb,jsonb) \u2192 jsonb", "source_oid": "3284", "description": ["concatenate"], "memberships": [], "comparison_data": {"operator": {"kind": "b", "symbol": "||", "negator": "", "function": "jsonb_concat(jsonb,jsonb)", "hash_join": "f", "left_type": "jsonb", "commutator": "", "merge_join": "f", "right_type": "jsonb", "result_type": "jsonb"}, "memberships": []}, "comparison_hash": "bbd6d29974ff813ffc705406cfc40ca83f346f7e5b8641bb814cf861a25a7b8c", "manual_semantics": "Exact operand/result signature matched"}, "17": {"facts": [{"label": "Left operand", "value": "jsonb"}, {"label": "Right operand", "value": "jsonb"}, {"label": "Result type", "value": "jsonb"}, {"label": "Implementing function", "value": "jsonb_concat(jsonb,jsonb)"}, {"label": "Operator kind", "value": "Binary"}, {"label": "Hash join candidate", "value": "no"}, {"label": "Merge join candidate", "value": "no"}], "tables": [], "aliases": ["||", "||(jsonb,jsonb)"], "related": [{"url": "/wiki/type/jsonb/?v=17", "label": "jsonb data type"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v17.11/postgresql-17.11.tar.bz2", "label": "17.11", "major": "17", "channel": "stable", "revision": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979", "source_sha256": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979", "manual_fingerprint": "b55870f8e80e1114a92ac7bfc97f4a6fa0dee8e75935895252bb6e5b866cf187", "catalog_fingerprint": "e888e3474202df1c60a8e7b6bf9f2d83b3866a52d119521659b7a82787d3829d"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v17.11/postgresql-17.11.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979"}, {"url": "/docs/17/catalog-pg-operator.html", "path": "catalog-pg-operator.html", "label": "PostgreSQL 17 English manual: catalog-pg-operator.html", "sha256": "a66984c4fde91649a9677d33a2e002381cb07e99d72ad0971fa3251741030a69"}, {"url": "/docs/17/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 17 English manual: catalog-pg-amop.html", "sha256": "19b2fb110b348860f7fbcb6e0e0544e341f5645113c23f50920a54434d432359"}, {"url": "/docs/17/functions-json.html#FUNCTIONS-JSONB-OP-TABLE", "path": "functions-json.html", "label": "PostgreSQL 17 English manual: functions-json.html", "sha256": "2496ba30cd56b84b8796a8a5e50f0b624023fc3a90db2d63d4a9016d77f05965"}], "operator": {"kind": "b", "symbol": "||", "negator": "", "function": "jsonb_concat(jsonb,jsonb)", "hash_join": "f", "left_type": "jsonb", "commutator": "", "merge_join": "f", "right_type": "jsonb", "result_type": "jsonb"}, "sections": [{"title": "English manual definition", "paragraphs": ["Concatenates two jsonb values. Concatenating two arrays generates an array containing all the elements of each input. Concatenating two objects generates an object containing the union of their keys, taking the second object's value when there are duplicate keys. All other cases are treated by converting a non-array input into a single-element array, and then proceeding as for two arrays. Does not operate recursively: only the top-level array or object structure is merged.", "'[\"a\", \"b\"]'::jsonb || '[\"a\", \"d\"]'::jsonb \u2192 [\"a\", \"b\", \"a\", \"d\"]", "'{\"a\": \"b\"}'::jsonb || '{\"c\": \"d\"}'::jsonb \u2192 {\"a\": \"b\", \"c\": \"d\"}", "'[1, 2]'::jsonb || '3'::jsonb \u2192 [1, 2, 3]", "'{\"a\": \"b\"}'::jsonb || '42'::jsonb \u2192 [{\"a\": \"b\"}, 42]", "To append an array to another array as a single entry, wrap it in an additional layer of array, for example:", "'[1, 2]'::jsonb || jsonb_build_array('[3, 4]'::jsonb) \u2192 [1, 2, [3, 4]]"]}, {"title": "Catalog interpretation", "paragraphs": ["The catalog pg_operator stores information about operators. See CREATE OPERATOR and Section 36.14 for more information."]}], "signature": "||(jsonb,jsonb) \u2192 jsonb", "source_oid": "3284", "description": ["concatenate"], "memberships": [], "comparison_data": {"operator": {"kind": "b", "symbol": "||", "negator": "", "function": "jsonb_concat(jsonb,jsonb)", "hash_join": "f", "left_type": "jsonb", "commutator": "", "merge_join": "f", "right_type": "jsonb", "result_type": "jsonb"}, "memberships": []}, "comparison_hash": "bbd6d29974ff813ffc705406cfc40ca83f346f7e5b8641bb814cf861a25a7b8c", "manual_semantics": "Exact operand/result signature matched"}, "18": {"facts": [{"label": "Left operand", "value": "jsonb"}, {"label": "Right operand", "value": "jsonb"}, {"label": "Result type", "value": "jsonb"}, {"label": "Implementing function", "value": "jsonb_concat(jsonb,jsonb)"}, {"label": "Operator kind", "value": "Binary"}, {"label": "Hash join candidate", "value": "no"}, {"label": "Merge join candidate", "value": "no"}], "tables": [], "aliases": ["||", "||(jsonb,jsonb)"], "related": [{"url": "/wiki/type/jsonb/?v=18", "label": "jsonb data type"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "18.6", "major": "18", "channel": "stable", "revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f", "source_sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f", "manual_fingerprint": "fefce9e478eb2afe5e17e869492bbedc67dce23d317f0a5257240113d6496ebc", "catalog_fingerprint": "deec62e0f0c649d9d0d058ddd0b16bf41afffd569c3fd73949ff0971ce5cabd6"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, {"url": "/docs/18/catalog-pg-operator.html", "path": "catalog-pg-operator.html", "label": "PostgreSQL 18 English manual: catalog-pg-operator.html", "sha256": "e0b1817914e5e8f9037955cd41e9a43584e9227fcc115784898ecdd9a6c0ecd6"}, {"url": "/docs/18/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 18 English manual: catalog-pg-amop.html", "sha256": "e65b90ee78eaf4b4da97ce5b08b972cee2e2660b882ec107be22eca47201f7d1"}, {"url": "/docs/18/functions-json.html#FUNCTIONS-JSONB-OP-TABLE", "path": "functions-json.html", "label": "PostgreSQL 18 English manual: functions-json.html", "sha256": "5129ad5ed908a15ce4b8a7183a9676878f9acde4d474b28ad476d0c980b73897"}], "operator": {"kind": "b", "symbol": "||", "negator": "", "function": "jsonb_concat(jsonb,jsonb)", "hash_join": "f", "left_type": "jsonb", "commutator": "", "merge_join": "f", "right_type": "jsonb", "result_type": "jsonb"}, "sections": [{"title": "English manual definition", "paragraphs": ["Concatenates two jsonb values. Concatenating two arrays generates an array containing all the elements of each input. Concatenating two objects generates an object containing the union of their keys, taking the second object's value when there are duplicate keys. All other cases are treated by converting a non-array input into a single-element array, and then proceeding as for two arrays. Does not operate recursively: only the top-level array or object structure is merged.", "'[\"a\", \"b\"]'::jsonb || '[\"a\", \"d\"]'::jsonb \u2192 [\"a\", \"b\", \"a\", \"d\"]", "'{\"a\": \"b\"}'::jsonb || '{\"c\": \"d\"}'::jsonb \u2192 {\"a\": \"b\", \"c\": \"d\"}", "'[1, 2]'::jsonb || '3'::jsonb \u2192 [1, 2, 3]", "'{\"a\": \"b\"}'::jsonb || '42'::jsonb \u2192 [{\"a\": \"b\"}, 42]", "To append an array to another array as a single entry, wrap it in an additional layer of array, for example:", "'[1, 2]'::jsonb || jsonb_build_array('[3, 4]'::jsonb) \u2192 [1, 2, [3, 4]]"]}, {"title": "Catalog interpretation", "paragraphs": ["The catalog pg_operator stores information about operators. See CREATE OPERATOR and Section 36.14 for more information."]}], "signature": "||(jsonb,jsonb) \u2192 jsonb", "source_oid": "3284", "description": ["concatenate"], "memberships": [], "comparison_data": {"operator": {"kind": "b", "symbol": "||", "negator": "", "function": "jsonb_concat(jsonb,jsonb)", "hash_join": "f", "left_type": "jsonb", "commutator": "", "merge_join": "f", "right_type": "jsonb", "result_type": "jsonb"}, "memberships": []}, "comparison_hash": "bbd6d29974ff813ffc705406cfc40ca83f346f7e5b8641bb814cf861a25a7b8c", "manual_semantics": "Exact operand/result signature matched"}, "19": {"facts": [{"label": "Left operand", "value": "jsonb"}, {"label": "Right operand", "value": "jsonb"}, {"label": "Result type", "value": "jsonb"}, {"label": "Implementing function", "value": "jsonb_concat(jsonb,jsonb)"}, {"label": "Operator kind", "value": "Binary"}, {"label": "Hash join candidate", "value": "no"}, {"label": "Merge join candidate", "value": "no"}], "tables": [], "aliases": ["||", "||(jsonb,jsonb)"], "related": [{"url": "/wiki/type/jsonb/?v=19", "label": "jsonb data type"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v19beta4/postgresql-19beta4.tar.bz2", "label": "19beta4", "major": "19", "channel": "preview", "revision": "83157ee9c599d03b2f7a3d73ef3a56ec24e0e79cc2b3501a64d1364f56398c86", "source_sha256": "83157ee9c599d03b2f7a3d73ef3a56ec24e0e79cc2b3501a64d1364f56398c86", "manual_fingerprint": "d1c30d7808d3ae2edc8773a0dd66f7beb5861e8939001e171c1908f7a09bb497", "catalog_fingerprint": "9af4323d0c8ed03d0e795331930bd14ce9bf6193c6b766c463b9f6ec0829409a"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v19beta4/postgresql-19beta4.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "83157ee9c599d03b2f7a3d73ef3a56ec24e0e79cc2b3501a64d1364f56398c86"}, {"url": "/docs/19/catalog-pg-operator.html", "path": "catalog-pg-operator.html", "label": "PostgreSQL 19 English manual: catalog-pg-operator.html", "sha256": "fa89c3d5f2ba2adfe53192fd39c819efc78a22998994feed5fd4239bedaa938a"}, {"url": "/docs/19/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 19 English manual: catalog-pg-amop.html", "sha256": "711850fdde973fbaf16da94143a2de3b972bed7a3b8663bf80e4aeabaf2f43fe"}, {"url": "/docs/19/functions-json.html#FUNCTIONS-JSONB-OP-TABLE", "path": "functions-json.html", "label": "PostgreSQL 19 English manual: functions-json.html", "sha256": "6a7424895516707f7600f8615e12b16a120b6c6b2e5305925a658fdb2719fd5f"}], "operator": {"kind": "b", "symbol": "||", "negator": "", "function": "jsonb_concat(jsonb,jsonb)", "hash_join": "f", "left_type": "jsonb", "commutator": "", "merge_join": "f", "right_type": "jsonb", "result_type": "jsonb"}, "sections": [{"title": "English manual definition", "paragraphs": ["Concatenates two jsonb values. Concatenating two arrays generates an array containing all the elements of each input. Concatenating two objects generates an object containing the union of their keys, taking the second object's value when there are duplicate keys. All other cases are treated by converting a non-array input into a single-element array, and then proceeding as for two arrays. Does not operate recursively: only the top-level array or object structure is merged.", "'[\"a\", \"b\"]'::jsonb || '[\"a\", \"d\"]'::jsonb \u2192 [\"a\", \"b\", \"a\", \"d\"]", "'{\"a\": \"b\"}'::jsonb || '{\"c\": \"d\"}'::jsonb \u2192 {\"a\": \"b\", \"c\": \"d\"}", "'[1, 2]'::jsonb || '3'::jsonb \u2192 [1, 2, 3]", "'{\"a\": \"b\"}'::jsonb || '42'::jsonb \u2192 [{\"a\": \"b\"}, 42]", "To append an array to another array as a single entry, wrap it in an additional layer of array, for example:", "'[1, 2]'::jsonb || jsonb_build_array('[3, 4]'::jsonb) \u2192 [1, 2, [3, 4]]"]}, {"title": "Catalog interpretation", "paragraphs": ["The catalog pg_operator stores information about operators. See CREATE OPERATOR and Section 36.14 for more information."]}], "signature": "||(jsonb,jsonb) \u2192 jsonb", "source_oid": "3284", "description": ["concatenate"], "memberships": [], "comparison_data": {"operator": {"kind": "b", "symbol": "||", "negator": "", "function": "jsonb_concat(jsonb,jsonb)", "hash_join": "f", "left_type": "jsonb", "commutator": "", "merge_join": "f", "right_type": "jsonb", "result_type": "jsonb"}, "memberships": []}, "comparison_hash": "bbd6d29974ff813ffc705406cfc40ca83f346f7e5b8641bb814cf861a25a7b8c", "manual_semantics": "Exact operand/result signature matched"}, "20": {"facts": [{"label": "Left operand", "value": "jsonb"}, {"label": "Right operand", "value": "jsonb"}, {"label": "Result type", "value": "jsonb"}, {"label": "Implementing function", "value": "jsonb_concat(jsonb,jsonb)"}, {"label": "Operator kind", "value": "Binary"}, {"label": "Hash join candidate", "value": "no"}, {"label": "Merge join candidate", "value": "no"}], "tables": [], "aliases": ["||", "||(jsonb,jsonb)"], "related": [{"url": "/wiki/type/jsonb/?v=20", "label": "jsonb data type"}], "release": {"ref": "https://ftp.postgresql.org/pub/snapshot/dev/postgresql-snapshot.tar.bz2", "label": "20devel", "major": "20", "channel": "devel", "revision": "4d3346909b201ac1648232cf290462a7070c119326f56196f1f0253ed80fae41", "source_sha256": "4d3346909b201ac1648232cf290462a7070c119326f56196f1f0253ed80fae41", "manual_fingerprint": "48fb9e20e9e1454fe93d367e75b949833c82c1c52c2b69314dfffe1c464f3f39", "catalog_fingerprint": "cc1a474e972c8c342cf17f37e2884c56cc4b114cb59407b0180e99cdcfffa5c5", "source_snapshot_utc": "26-Sep-2026 20:22"}, "sources": [{"url": "https://ftp.postgresql.org/pub/snapshot/dev/postgresql-snapshot.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "4d3346909b201ac1648232cf290462a7070c119326f56196f1f0253ed80fae41"}, {"url": "/docs/devel/catalog-pg-operator.html", "path": "catalog-pg-operator.html", "label": "PostgreSQL 20 English manual: catalog-pg-operator.html", "sha256": "b8882bb8329f1659f719eb9397246146135c228892834fbd29325ed3030f17cb"}, {"url": "/docs/devel/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 20 English manual: catalog-pg-amop.html", "sha256": "00fee8a631088b687e2d880e4091791ca30f9c69fca888c51ece463d1b9e1e61"}, {"url": "/docs/devel/functions-json.html#FUNCTIONS-JSONB-OP-TABLE", "path": "functions-json.html", "label": "PostgreSQL 20 English manual: functions-json.html", "sha256": "d2bf5c8ae6a603836afef9a4b52a7fde30fb14aefd94e2c110b1db86e573e8b6"}], "operator": {"kind": "b", "symbol": "||", "negator": "", "function": "jsonb_concat(jsonb,jsonb)", "hash_join": "f", "left_type": "jsonb", "commutator": "", "merge_join": "f", "right_type": "jsonb", "result_type": "jsonb"}, "sections": [{"title": "English manual definition", "paragraphs": ["Concatenates two jsonb values. Concatenating two arrays generates an array containing all the elements of each input. Concatenating two objects generates an object containing the union of their keys, taking the second object's value when there are duplicate keys. All other cases are treated by converting a non-array input into a single-element array, and then proceeding as for two arrays. Does not operate recursively: only the top-level array or object structure is merged.", "'[\"a\", \"b\"]'::jsonb || '[\"a\", \"d\"]'::jsonb \u2192 [\"a\", \"b\", \"a\", \"d\"]", "'{\"a\": \"b\"}'::jsonb || '{\"c\": \"d\"}'::jsonb \u2192 {\"a\": \"b\", \"c\": \"d\"}", "'[1, 2]'::jsonb || '3'::jsonb \u2192 [1, 2, 3]", "'{\"a\": \"b\"}'::jsonb || '42'::jsonb \u2192 [{\"a\": \"b\"}, 42]", "To append an array to another array as a single entry, wrap it in an additional layer of array, for example:", "'[1, 2]'::jsonb || jsonb_build_array('[3, 4]'::jsonb) \u2192 [1, 2, [3, 4]]"]}, {"title": "Catalog interpretation", "paragraphs": ["The catalog pg_operator stores information about operators. See CREATE OPERATOR and Section 36.14 for more information."]}], "signature": "||(jsonb,jsonb) \u2192 jsonb", "source_oid": "3284", "description": ["concatenate"], "memberships": [], "comparison_data": {"operator": {"kind": "b", "symbol": "||", "negator": "", "function": "jsonb_concat(jsonb,jsonb)", "hash_join": "f", "left_type": "jsonb", "commutator": "", "merge_join": "f", "right_type": "jsonb", "result_type": "jsonb"}, "memberships": []}, "comparison_hash": "bbd6d29974ff813ffc705406cfc40ca83f346f7e5b8641bb814cf861a25a7b8c", "manual_semantics": "Exact operand/result signature matched"}}}, "snapshot": {"facts": [{"label": "Left operand", "value": "jsonb"}, {"label": "Right operand", "value": "jsonb"}, {"label": "Result type", "value": "jsonb"}, {"label": "Implementing function", "value": "jsonb_concat(jsonb,jsonb)"}, {"label": "Operator kind", "value": "Binary"}, {"label": "Hash join candidate", "value": "no"}, {"label": "Merge join candidate", "value": "no"}], "tables": [], "aliases": ["||", "||(jsonb,jsonb)"], "related": [{"url": "/wiki/type/jsonb/?v=18", "label": "jsonb data type"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "18.6", "major": "18", "channel": "stable", "revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f", "source_sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f", "manual_fingerprint": "fefce9e478eb2afe5e17e869492bbedc67dce23d317f0a5257240113d6496ebc", "catalog_fingerprint": "deec62e0f0c649d9d0d058ddd0b16bf41afffd569c3fd73949ff0971ce5cabd6"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, {"url": "/docs/18/catalog-pg-operator.html", "path": "catalog-pg-operator.html", "label": "PostgreSQL 18 English manual: catalog-pg-operator.html", "sha256": "e0b1817914e5e8f9037955cd41e9a43584e9227fcc115784898ecdd9a6c0ecd6"}, {"url": "/docs/18/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 18 English manual: catalog-pg-amop.html", "sha256": "e65b90ee78eaf4b4da97ce5b08b972cee2e2660b882ec107be22eca47201f7d1"}, {"url": "/docs/18/functions-json.html#FUNCTIONS-JSONB-OP-TABLE", "path": "functions-json.html", "label": "PostgreSQL 18 English manual: functions-json.html", "sha256": "5129ad5ed908a15ce4b8a7183a9676878f9acde4d474b28ad476d0c980b73897"}], "operator": {"kind": "b", "symbol": "||", "negator": "", "function": "jsonb_concat(jsonb,jsonb)", "hash_join": "f", "left_type": "jsonb", "commutator": "", "merge_join": "f", "right_type": "jsonb", "result_type": "jsonb"}, "sections": [{"title": "English manual definition", "paragraphs": ["Concatenates two jsonb values. Concatenating two arrays generates an array containing all the elements of each input. Concatenating two objects generates an object containing the union of their keys, taking the second object's value when there are duplicate keys. All other cases are treated by converting a non-array input into a single-element array, and then proceeding as for two arrays. Does not operate recursively: only the top-level array or object structure is merged.", "'[\"a\", \"b\"]'::jsonb || '[\"a\", \"d\"]'::jsonb \u2192 [\"a\", \"b\", \"a\", \"d\"]", "'{\"a\": \"b\"}'::jsonb || '{\"c\": \"d\"}'::jsonb \u2192 {\"a\": \"b\", \"c\": \"d\"}", "'[1, 2]'::jsonb || '3'::jsonb \u2192 [1, 2, 3]", "'{\"a\": \"b\"}'::jsonb || '42'::jsonb \u2192 [{\"a\": \"b\"}, 42]", "To append an array to another array as a single entry, wrap it in an additional layer of array, for example:", "'[1, 2]'::jsonb || jsonb_build_array('[3, 4]'::jsonb) \u2192 [1, 2, [3, 4]]"]}, {"title": "Catalog interpretation", "paragraphs": ["The catalog pg_operator stores information about operators. See CREATE OPERATOR and Section 36.14 for more information."]}], "signature": "||(jsonb,jsonb) \u2192 jsonb", "source_oid": "3284", "description": ["concatenate"], "memberships": [], "comparison_data": {"operator": {"kind": "b", "symbol": "||", "negator": "", "function": "jsonb_concat(jsonb,jsonb)", "hash_join": "f", "left_type": "jsonb", "commutator": "", "merge_join": "f", "right_type": "jsonb", "result_type": "jsonb"}, "memberships": []}, "comparison_hash": "bbd6d29974ff813ffc705406cfc40ca83f346f7e5b8641bb814cf861a25a7b8c", "manual_semantics": "Exact operand/result signature matched"}, "comparison": {"left": "17", "right": "18", "status": "unchanged", "diff": ""}}