{"Entry":{"collection":"operator","key":"op-7c7c-jsonb-jsonb","name":"||(jsonb,jsonb)","aliases":["||","||(jsonb,jsonb)"],"metadata":{"aliases":["||","||(jsonb,jsonb)"],"category":"JSON","content_hash":"68a059c3141e9faf4ea3f82b303d538c82e97d22aa02aa50f47b66168ae6a88e","imported_at":"2026-09-30T00:40:43.793073+08:00","name":"||(jsonb,jsonb)","name_zh":"","slug":"op-7c7c-jsonb-jsonb","summary":"concatenate"}},"Definition":{"Collection":"operator","Key":"op-7c7c-jsonb-jsonb","SourceDatabase":"center","Version":"18","SourceTable":"pg_operator_entry","SourceKey":"op-7c7c-jsonb-jsonb","SourceRevision":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","Facts":{"aliases":["||","||(jsonb,jsonb)"],"comparison_data":{"memberships":[],"operator":{"commutator":"","function":"jsonb_concat(jsonb,jsonb)","hash_join":"f","kind":"b","left_type":"jsonb","merge_join":"f","negator":"","result_type":"jsonb","right_type":"jsonb","symbol":"||"}},"comparison_hash":"bbd6d29974ff813ffc705406cfc40ca83f346f7e5b8641bb814cf861a25a7b8c","description":["concatenate"],"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"}],"manual_semantics":"Exact operand/result signature matched","memberships":[],"operator":{"commutator":"","function":"jsonb_concat(jsonb,jsonb)","hash_join":"f","kind":"b","left_type":"jsonb","merge_join":"f","negator":"","result_type":"jsonb","right_type":"jsonb","symbol":"||"},"related":[{"label":"jsonb data type","url":"/wiki/type/jsonb/?v=18"}],"release":{"catalog_fingerprint":"deec62e0f0c649d9d0d058ddd0b16bf41afffd569c3fd73949ff0971ce5cabd6","channel":"stable","label":"18.6","major":"18","manual_fingerprint":"fefce9e478eb2afe5e17e869492bbedc67dce23d317f0a5257240113d6496ebc","ref":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2","revision":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","source_sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"},"sections":[{"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 → [\"a\", \"b\", \"a\", \"d\"]","'{\"a\": \"b\"}'::jsonb || '{\"c\": \"d\"}'::jsonb → {\"a\": \"b\", \"c\": \"d\"}","'[1, 2]'::jsonb || '3'::jsonb → [1, 2, 3]","'{\"a\": \"b\"}'::jsonb || '42'::jsonb → [{\"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) → [1, 2, [3, 4]]"],"title":"English manual definition"},{"paragraphs":["The catalog pg_operator stores information about operators. See CREATE OPERATOR and Section 36.14 for more information."],"title":"Catalog interpretation"}],"signature":"||(jsonb,jsonb) → jsonb","source_oid":"3284","sources":[{"label":"Matching PostgreSQL source archive","sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","url":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2"},{"label":"PostgreSQL 18 English manual: catalog-pg-operator.html","path":"catalog-pg-operator.html","sha256":"e0b1817914e5e8f9037955cd41e9a43584e9227fcc115784898ecdd9a6c0ecd6","url":"/docs/18/catalog-pg-operator.html"},{"label":"PostgreSQL 18 English manual: catalog-pg-amop.html","path":"catalog-pg-amop.html","sha256":"e65b90ee78eaf4b4da97ce5b08b972cee2e2660b882ec107be22eca47201f7d1","url":"/docs/18/catalog-pg-amop.html"},{"label":"PostgreSQL 18 English manual: functions-json.html","path":"functions-json.html","sha256":"5129ad5ed908a15ce4b8a7183a9676878f9acde4d474b28ad476d0c980b73897","url":"/docs/18/functions-json.html#FUNCTIONS-JSONB-OP-TABLE"}],"tables":[]},"ManualEvidence":{"release":{"catalog_fingerprint":"deec62e0f0c649d9d0d058ddd0b16bf41afffd569c3fd73949ff0971ce5cabd6","channel":"stable","label":"18.6","major":"18","manual_fingerprint":"fefce9e478eb2afe5e17e869492bbedc67dce23d317f0a5257240113d6496ebc","ref":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2","revision":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","source_sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"},"sources":[{"label":"Matching PostgreSQL source archive","sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","url":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2"},{"label":"PostgreSQL 18 English manual: catalog-pg-operator.html","path":"catalog-pg-operator.html","sha256":"e0b1817914e5e8f9037955cd41e9a43584e9227fcc115784898ecdd9a6c0ecd6","url":"/docs/18/catalog-pg-operator.html"},{"label":"PostgreSQL 18 English manual: catalog-pg-amop.html","path":"catalog-pg-amop.html","sha256":"e65b90ee78eaf4b4da97ce5b08b972cee2e2660b882ec107be22eca47201f7d1","url":"/docs/18/catalog-pg-amop.html"},{"label":"PostgreSQL 18 English manual: functions-json.html","path":"functions-json.html","sha256":"5129ad5ed908a15ce4b8a7183a9676878f9acde4d474b28ad476d0c980b73897","url":"/docs/18/functions-json.html#FUNCTIONS-JSONB-OP-TABLE"}]},"MeasuredEvidence":{}},"Text":{"Collection":"operator","Key":"op-7c7c-jsonb-jsonb","SourceDatabase":"center","Version":"18","Locale":"en","Title":"||(jsonb,jsonb)","Summary":"concatenate","BodyHTML":"\u003cp\u003econcatenate\u003c/p\u003e","SourceRevision":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","ContentHash":"0e332a0d5e598558f4622576a63d8435784fed3573e2673bd09810e3d89cf704","Payload":{"description":["concatenate"],"related":[{"label":"jsonb data type","url":"/wiki/type/jsonb/?v=18"}],"sections":[{"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 → [\"a\", \"b\", \"a\", \"d\"]","'{\"a\": \"b\"}'::jsonb || '{\"c\": \"d\"}'::jsonb → {\"a\": \"b\", \"c\": \"d\"}","'[1, 2]'::jsonb || '3'::jsonb → [1, 2, 3]","'{\"a\": \"b\"}'::jsonb || '42'::jsonb → [{\"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) → [1, 2, [3, 4]]"],"title":"English manual definition"},{"paragraphs":["The catalog pg_operator stores information about operators. See CREATE OPERATOR and Section 36.14 for more information."],"title":"Catalog interpretation"}],"tables":[]}},"RequestedLocale":"zh-Hans","Fallback":true,"Versions":["10","11","12","13","14","15","16","17","18","19","20"],"Locales":["en"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
