{"kind": "type", "slug": "uuid", "name": "uuid", "major": "18", "snapshot": {"casts": [], "facts": [{"label": "Catalog name", "value": "pg_catalog.uuid"}, {"label": "Type OID", "value": "2950"}, {"label": "Type kind", "value": "Base type"}, {"label": "Declared length", "value": "16 bytes"}, {"label": "Storage strategy", "value": "plain"}, {"label": "Input function", "value": "uuid_in"}, {"label": "Output function", "value": "uuid_out"}], "ranges": [], "aliases": [], "catalog": {"oid": "2950", "descr": "UUID", "typacl": "_null_", "typlen": "16", "typelem": "0", "typname": "uuid", "typsend": "uuid_send", "typtype": "b", "typalign": "c", "typarray": "0", "typbyval": "f", "typdelim": "','", "typinput": "uuid_in", "typmodin": "-", "typndims": "0", "typowner": "POSTGRES", "typrelid": "0", "typmodout": "-", "typoutput": "uuid_out", "typtypmod": "-1", "typanalyze": "-", "typdefault": "_null_", "typnotnull": "f", "typreceive": "uuid_recv", "typstorage": "p", "typbasetype": "0", "typcategory": "U", "typcollation": "0", "typisdefined": "t", "typnamespace": "pg_catalog", "typsubscript": "-", "typdefaultbin": "_null_", "array_type_oid": "2951", "typispreferred": "f", "array_type_name": "_uuid"}, "related": [{"url": "/wiki/catalog/pg_type/?v=18", "label": "pg_type catalog"}, {"url": "/wiki/catalog/pg_cast/?v=18", "label": "pg_cast catalog"}, {"url": "/wiki/catalog/pg_operator/?v=18", "label": "pg_operator catalog"}, {"url": "/wiki/catalog/pg_opclass/?v=18", "label": "pg_opclass catalog"}, {"url": "/wiki/type/arrays/?v=18", "label": "Arrays"}, {"url": "/wiki/indexam/brin/?v=18", "label": "brin index access method"}, {"url": "/wiki/indexam/btree/?v=18", "label": "btree index access method"}, {"url": "/wiki/indexam/hash/?v=18", "label": "hash index access method"}], "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_files": {"doc/src/sgml/datatype.sgml": "86328daa77e20d81d222376ec0306d9841a17104e436c08d138eb763aefb3700", "src/include/catalog/pg_am.h": "3426799df799f32163fcc0765f43dbdb5e88e626acf31284fef9fc6014b69d8e", "src/include/catalog/pg_am.dat": "b3cb86b102a42fb0024cbd99779c9897afb40d12a71f5cc5a0e5aee7ff2f9969", "src/include/catalog/pg_cast.h": "de585c7df687d698e7d1d100dce8a794ac9da52414ea48169191019178c8f053", "src/include/catalog/pg_proc.h": "f7d59f07c5b95e2f3c7141762a0f576e8a3af7581ba54c27537f4d500472bea5", "src/include/catalog/pg_type.h": "8fb198749fd82b6c1818a3c18455f226f66116fcfeb3d4959c65ce3fda22802e", "src/include/catalog/pg_range.h": "45546d952b5181f989bd9234721897fc2b37005c8e49ce2ddc156f26974c3ca4", "src/include/catalog/pg_cast.dat": "97911281ca2c81917394ccb2ec13367e37c6801fd461d5e1a3d2f28b911b46b2", "src/include/catalog/pg_proc.dat": "1f934ce80d460159dda137714374a35f9896315ea2476709cbb4da13b38ef95a", "src/include/catalog/pg_type.dat": "5f5887b75677cba2d4a1a0cfeb355df5ed91f85d385fac88bd8d7c605b3578f9", "src/include/catalog/pg_opclass.h": "9c218537806c8ef0398302faaca7f91315dfc1198c48706cebffb479b68defaf", "src/include/catalog/pg_range.dat": "5c2271f8e89e9378d1887204e5785060b77405b5f0ff3e6c719250c9c1dcfcc4", "src/include/catalog/pg_operator.h": "621b18cfffe102413d79b746ce7a10f77fc60fdd097bac34c22b31070d3ee3c4", "src/include/catalog/pg_opfamily.h": "e1f5fc8aebd3042df847455bf66bf755f768c2aa8a9b03d22f7ec8563eba59c0", "src/include/catalog/pg_opclass.dat": "4ee7d3619a6aa106e1c0db55de903931c7d11b1c60ba053a022519c55f8ee668", "src/include/catalog/pg_operator.dat": "5d35b9b2ef5f9797cc815263927ef8a12367fedace53e828b4e8b320e2a7f703", "src/include/catalog/pg_opfamily.dat": "3b694879027b858f2ecf1fa1152b7e30c6e15a216ba99c2384291c30e9d52311"}, "manual_sha256": {"arrays.html": "0e1d5c5a7b4a949d4439995f44f74ad4264e050d16eb9ad2a850fbaee04032df", "domains.html": "82d486973ccc35d14276627a67ac76b434452f23f9ed4d8aa3fbb01fdf285fc2", "datatype.html": "e581f67c74e42006289638c8659e9b338adbfd7f068bd8bf2b3be3880fcd2254", "rowtypes.html": "74f99e029c3a9edfd3e18810ba3c8cb66d3aada91eb67b86476560871e6617e9", "rangetypes.html": "e4960abc7ce8e51d794f94f1e57b099d30b7f75dd7f2b23a960eef91f6291c33", "datatype-bit.html": "c49124aad561636c18080b9e09572fde7785a6b9eae86f5a33283f0fd6774c37", "datatype-oid.html": "8b3360302225f08ae72716ce1804596de95b568e5d31f788cb4597427b28cc38", "datatype-xml.html": "061fc2295b7b69be704f0a741b8decd10ad721059f871fb0243c669bb54d7822", "datatype-enum.html": "cab38e53222e30cc94b24de4b33634fd22d7c93f58ebcf35f646c9b8da78fae8", "datatype-json.html": "650162a05b660146b500a205d523374d00aee117a6a6240d30262be51b6e33e5", "datatype-uuid.html": "292b307b3223c6182bdba687e7f69e6dca9038430143ad79d56327f6ed4c3246", "datatype-money.html": "8b29c14b90679683ac5c472b59a0a7e2853f32cc7db43fab417b2697a6879964", "functions-info.html": "78ac80bf81da2e4f4a33f3b850faa86f0f58ec54a083d6c31da557907de0df87", "catalog-pg-type.html": "ea9c9313bab8e92a7da18ebc50c7ff1f908dd80999a7e0ca3bbc82ba626c58d4", "datatype-binary.html": "0c03ec47b76e37888a3da7f5dcfd340128a5d356642a85185cc9ebe17856a904", "datatype-pg-lsn.html": "339172f5107cc7eb7139bec911277647219e92a532cebd0f3da0a5dacf8195af", "datatype-pseudo.html": "c7cf0b8214304bd8702c95f2142671ae5f0d631f83717f9c07d9e1f2579961b4", "datatype-boolean.html": "b633f663e6c8276e7056287640c413aa79dbc15d5353cee0d41653d58d376956", "datatype-numeric.html": "b74619f7ac2f1ca9f85c48073df78c33dd30e464e61baba6008634534edcb500", "sql-createdomain.html": "e94f927196de1b0ea1ce35cd4603c1f6f544439adcc0edf1c4222358e832245b", "datatype-datetime.html": "e366275d8b13845bfa4ef0d68faa093e5f3ecb708a1ec870cbcbf7e425b85699", "datatype-character.html": "c73eebe413ea709a7792e4cfc3cfe9fb68cb496ebe83c3ebaa9d09f8c40d0f73", "datatype-geometric.html": "0eb3053cfe7d6b0a4b5592c5d7af8d97cae527e87f063c5793413bcba5c14cd9", "datatype-net-types.html": "96846e641cc37727ddcd8b8a1aa0dbe33cd9787760a2b4efb0dcb9403d5be63f", "datatype-textsearch.html": "4b15e05be8b49a71b28aea22f2c46d0dbf639a91e7b4fe129a4c737c6daad47c"}, "source_sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "sources": [{"url": "/docs/18/datatype-uuid.html", "path": "datatype-uuid.html", "label": "PostgreSQL 18 English manual", "sha256": "292b307b3223c6182bdba687e7f69e6dca9038430143ad79d56327f6ed4c3246"}, {"url": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}], "coverage": "source inventory; exact declared input types for operator classes", "sections": [], "operators": [{"oid": "2972", "descr": "equal", "oprcom": "=(uuid,uuid)", "oprcode": "uuid_eq", "oprjoin": "eqjoinsel", "oprkind": "b", "oprleft": "uuid", "oprname": "=", "oprrest": "eqsel", "oprowner": "POSTGRES", "oprright": "uuid", "oprnegate": "<>(uuid,uuid)", "oprresult": "bool", "oprcanhash": "t", "oprcanmerge": "t", "oprnamespace": "pg_catalog"}, {"oid": "2973", "descr": "not equal", "oprcom": "<>(uuid,uuid)", "oprcode": "uuid_ne", "oprjoin": "neqjoinsel", "oprkind": "b", "oprleft": "uuid", "oprname": "<>", "oprrest": "neqsel", "oprowner": "POSTGRES", "oprright": "uuid", "oprnegate": "=(uuid,uuid)", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f", "oprnamespace": "pg_catalog"}, {"oid": "2974", "descr": "less than", "oprcom": ">(uuid,uuid)", "oprcode": "uuid_lt", "oprjoin": "scalarltjoinsel", "oprkind": "b", "oprleft": "uuid", "oprname": "<", "oprrest": "scalarltsel", "oprowner": "POSTGRES", "oprright": "uuid", "oprnegate": ">=(uuid,uuid)", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f", "oprnamespace": "pg_catalog"}, {"oid": "2975", "descr": "greater than", "oprcom": "<(uuid,uuid)", "oprcode": "uuid_gt", "oprjoin": "scalargtjoinsel", "oprkind": "b", "oprleft": "uuid", "oprname": ">", "oprrest": "scalargtsel", "oprowner": "POSTGRES", "oprright": "uuid", "oprnegate": "<=(uuid,uuid)", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f", "oprnamespace": "pg_catalog"}, {"oid": "2976", "descr": "less than or equal", "oprcom": ">=(uuid,uuid)", "oprcode": "uuid_le", "oprjoin": "scalarlejoinsel", "oprkind": "b", "oprleft": "uuid", "oprname": "<=", "oprrest": "scalarlesel", "oprowner": "POSTGRES", "oprright": "uuid", "oprnegate": ">(uuid,uuid)", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f", "oprnamespace": "pg_catalog"}, {"oid": "2977", "descr": "greater than or equal", "oprcom": "<=(uuid,uuid)", "oprcode": "uuid_ge", "oprjoin": "scalargejoinsel", "oprkind": "b", "oprleft": "uuid", "oprname": ">=", "oprrest": "scalargesel", "oprowner": "POSTGRES", "oprright": "uuid", "oprnegate": "<(uuid,uuid)", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f", "oprnamespace": "pg_catalog"}], "signature": "uuid", "description": ["universally unique identifier"], "manual_html": "<div class=\"sect1\" id=\"DATATYPE-UUID\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\">8.12. UUID Type </h2>\n</div>\n</div>\n</div>\n<p>The data type <code class=\"type\">uuid</code> stores Universally Unique Identifiers (UUID) as defined by <a class=\"ulink\" href=\"https://datatracker.ietf.org/doc/html/rfc9562\">RFC 9562</a>, ISO/IEC 9834-8:2005, and related standards. (Some systems refer to this data type as a globally unique identifier, or GUID, instead.) This identifier is a 128-bit quantity that is generated by an algorithm chosen to make it very unlikely that the same identifier will be generated by anyone else in the known universe using the same algorithm. Therefore, for distributed systems, these identifiers provide a better uniqueness guarantee than sequence generators, which are only unique within a single database.</p>\n<p>RFC 9562 defines 8 different UUID versions. Each version has specific requirements for generating new UUID values, and each version provides distinct benefits and drawbacks. <span class=\"productname\">PostgreSQL</span> provides native support for generating UUIDs using the UUIDv4 and UUIDv7 algorithms. Alternatively, UUID values can be generated outside of the database using any algorithm. The data type <code class=\"type\">uuid</code> can be used to store any UUID, regardless of the origin and the UUID version.</p>\n<p>A UUID is written as a sequence of lower-case hexadecimal digits, in several groups separated by hyphens, specifically a group of 8 digits followed by three groups of 4 digits followed by a group of 12 digits, for a total of 32 digits representing the 128 bits. An example of a UUID in this standard form is:</p>\n<pre class=\"programlisting\">a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11\n</pre>\n<p><span class=\"productname\">PostgreSQL</span> also accepts the following alternative forms for input: use of upper-case digits, the standard format surrounded by braces, omitting some or all hyphens, adding a hyphen after any group of four digits. Examples are:</p>\n<pre class=\"programlisting\">A0EEBC99-9C0B-4EF8-BB6D-6BB9BD380A11\n{a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11}\na0eebc999c0b4ef8bb6d6bb9bd380a11\na0ee-bc99-9c0b-4ef8-bb6d-6bb9-bd38-0a11\n{a0eebc99-9c0b4ef8-bb6d6bb9-bd380a11}\n</pre>\n<p>Output is always in the standard form.</p>\n<p>See <a class=\"xref\" href=\"/docs/18/functions-uuid.html\" title=\"9.14. UUID Functions\">Section 9.14</a> for how to generate a UUID in <span class=\"productname\">PostgreSQL</span>.</p>\n</div>", "manual_path": "datatype-uuid.html", "comparison_data": {"casts": [], "facts": [{"label": "Catalog name", "value": "pg_catalog.uuid"}, {"label": "Declared length", "value": "16 bytes"}, {"label": "Input function", "value": "uuid_in"}, {"label": "Output function", "value": "uuid_out"}, {"label": "Storage strategy", "value": "plain"}, {"label": "Type OID", "value": "2950"}, {"label": "Type kind", "value": "Base type"}], "ranges": [], "aliases": [], "catalog": {"typacl": "_null_", "typlen": "16", "typelem": "0", "typname": "uuid", "typsend": "uuid_send", "typtype": "b", "typalign": "c", "typarray": "_uuid", "typbyval": "f", "typdelim": ",", "typinput": "uuid_in", "typmodin": "-", "typndims": "0", "typrelid": "0", "typmodout": "-", "typoutput": "uuid_out", "typtypmod": "-1", "typanalyze": "-", "typdefault": "_null_", "typnotnull": "f", "typreceive": "uuid_recv", "typstorage": "p", "typbasetype": "0", "typcategory": "U", "typcollation": "0", "typisdefined": "t", "typsubscript": "-", "typdefaultbin": "_null_", "typispreferred": "f", "array_type_name": "_uuid"}, "operators": [{"oprcom": "<=(uuid,uuid)", "oprcode": "uuid_ge", "oprjoin": "scalargejoinsel", "oprkind": "b", "oprleft": "uuid", "oprname": ">=", "oprrest": "scalargesel", "oprright": "uuid", "oprnegate": "<(uuid,uuid)", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f"}, {"oprcom": "<(uuid,uuid)", "oprcode": "uuid_gt", "oprjoin": "scalargtjoinsel", "oprkind": "b", "oprleft": "uuid", "oprname": ">", "oprrest": "scalargtsel", "oprright": "uuid", "oprnegate": "<=(uuid,uuid)", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f"}, {"oprcom": ">=(uuid,uuid)", "oprcode": "uuid_le", "oprjoin": "scalarlejoinsel", "oprkind": "b", "oprleft": "uuid", "oprname": "<=", "oprrest": "scalarlesel", "oprright": "uuid", "oprnegate": ">(uuid,uuid)", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f"}, {"oprcom": ">(uuid,uuid)", "oprcode": "uuid_lt", "oprjoin": "scalarltjoinsel", "oprkind": "b", "oprleft": "uuid", "oprname": "<", "oprrest": "scalarltsel", "oprright": "uuid", "oprnegate": ">=(uuid,uuid)", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f"}, {"oprcom": "<>(uuid,uuid)", "oprcode": "uuid_ne", "oprjoin": "neqjoinsel", "oprkind": "b", "oprleft": "uuid", "oprname": "<>", "oprrest": "neqsel", "oprright": "uuid", "oprnegate": "=(uuid,uuid)", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f"}, {"oprcom": "=(uuid,uuid)", "oprcode": "uuid_eq", "oprjoin": "eqjoinsel", "oprkind": "b", "oprleft": "uuid", "oprname": "=", "oprrest": "eqsel", "oprright": "uuid", "oprnegate": "<>(uuid,uuid)", "oprresult": "bool", "oprcanhash": "t", "oprcanmerge": "t"}], "operator_classes": [{"opcname": "uuid_bloom_ops", "opcfamily": "brin/uuid_bloom_ops", "opcintype": "uuid", "opcmethod": "brin", "opcdefault": "f", "opckeytype": "uuid"}, {"opcname": "uuid_minmax_multi_ops", "opcfamily": "brin/uuid_minmax_multi_ops", "opcintype": "uuid", "opcmethod": "brin", "opcdefault": "f", "opckeytype": "uuid"}, {"opcname": "uuid_minmax_ops", "opcfamily": "brin/uuid_minmax_ops", "opcintype": "uuid", "opcmethod": "brin", "opcdefault": "t", "opckeytype": "uuid"}, {"opcname": "uuid_ops", "opcfamily": "btree/uuid_ops", "opcintype": "uuid", "opcmethod": "btree", "opcdefault": "t", "opckeytype": "0"}, {"opcname": "uuid_ops", "opcfamily": "hash/uuid_ops", "opcintype": "uuid", "opcmethod": "hash", "opcdefault": "t", "opckeytype": "0"}]}, "comparison_hash": "92eeb626f952aeee0957eb99aa91848335d0d83b0fd80d41549c4673d1288412", "operator_classes": [{"opcname": "uuid_ops", "opcowner": "POSTGRES", "opcfamily": "btree/uuid_ops", "opcintype": "uuid", "opcmethod": "btree", "opcdefault": "t", "opckeytype": "0", "opcnamespace": "pg_catalog"}, {"opcname": "uuid_ops", "opcowner": "POSTGRES", "opcfamily": "hash/uuid_ops", "opcintype": "uuid", "opcmethod": "hash", "opcdefault": "t", "opckeytype": "0", "opcnamespace": "pg_catalog"}, {"opcname": "uuid_minmax_ops", "opcowner": "POSTGRES", "opcfamily": "brin/uuid_minmax_ops", "opcintype": "uuid", "opcmethod": "brin", "opcdefault": "t", "opckeytype": "uuid", "opcnamespace": "pg_catalog"}, {"opcname": "uuid_minmax_multi_ops", "opcowner": "POSTGRES", "opcfamily": "brin/uuid_minmax_multi_ops", "opcintype": "uuid", "opcmethod": "brin", "opcdefault": "f", "opckeytype": "uuid", "opcnamespace": "pg_catalog"}, {"opcname": "uuid_bloom_ops", "opcowner": "POSTGRES", "opcfamily": "brin/uuid_bloom_ops", "opcintype": "uuid", "opcmethod": "brin", "opcdefault": "f", "opckeytype": "uuid", "opcnamespace": "pg_catalog"}], "manual_documentation": "dedicated family chapter"}, "from": "17", "comparison": {"available": true, "changes": [], "prose_changed": true}}