diff options
Diffstat (limited to 'contrib/uuid-ossp/README.uuid-ossp')
-rw-r--r-- | contrib/uuid-ossp/README.uuid-ossp | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/contrib/uuid-ossp/README.uuid-ossp b/contrib/uuid-ossp/README.uuid-ossp new file mode 100644 index 00000000000..53a3b729459 --- /dev/null +++ b/contrib/uuid-ossp/README.uuid-ossp @@ -0,0 +1,97 @@ +UUID Generation Functions +========================= +Peter Eisentraut <peter_e@gmx.net> + +This module provides functions to generate universally unique +identifiers (UUIDs) using one of the several standard algorithms, as +well as functions to produce certain special UUID constants. + + +Installation +------------ + +The extra library required can be found at +<http://www.ossp.org/pkg/lib/uuid/>. + + +UUID Generation +--------------- + +The relevant standards ITU-T Rec. X.667, ISO/IEC 9834-8:2005, and RFC +4122 specify four algorithms for generating UUIDs, identified by the +version numbers 1, 3, 4, and 5. (There is no version 2 algorithm.) +Each of these algorithms could be suitable for a different set of +applications. + +uuid_generate_v1() +~~~~~~~~~~~~~~~~~~ + +This function generates a version 1 UUID. This involves the MAC +address of the computer and a time stamp. Note that UUIDs of this +kind reveal the identity of the computer that created the identifier +and the time at which it did so, which might make it unsuitable for +certain security-sensitive applications. + +uuid_generate_v1mc() +~~~~~~~~~~~~~~~~~~~~ + +This function generates a version 1 UUID but uses a random multicast +MAC address instead of the real MAC address of the computer. + +uuid_generate_v3(namespace uuid, name text) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This function generates a version 3 UUID in the given namespace using +the specified input name. The namespace should be one of the special +constants produced by the uuid_ns_*() functions shown below. (It +should be any UUID in theory.) The name is an identifier in the +selected namespace. For example: + + uuid_generate_v3(uuid_ns_url(), 'http://www.postgresql.org') + +The name parameter will be MD5-hashed, so the cleartext cannot be +derived from the generated UUID. + +The generation of UUIDs by this method has no random or +environment-dependent element and is therefore reproducible. + +uuid_generate_v4() +~~~~~~~~~~~~~~~~~~ + +This function generates a version 4 UUID, which is derived entirely +from random numbers. + +uuid_generate_v5(namespace uuid, name text) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This function generates a version 5 UUID, which works like a version 3 +UUID except that SHA-1 is used as a hashing method. Version 5 should +be preferred over version 3 because SHA-1 is thought to be more secure +than MD5. + + +UUID Constants +-------------- + + uuid_nil() + +A "nil" UUID constant, which does not occur as a real UUID. + + uuid_ns_dns() + +Constant designating the DNS namespace for UUIDs. + + uuid_ns_url() + +Constant designating the URL namespace for UUIDs. + + uuid_ns_oid() + +Constant designating the ISO object identifier (OID) namespace for +UUIDs. (This pertains to ASN.1 OIDs, unrelated to the OIDs used in +PostgreSQL.) + + uuid_ns_x500() + +Constant designating the X.500 distinguished name (DN) namespace for +UUIDs. |