aboutsummaryrefslogtreecommitdiff
path: root/contrib/uuid-ossp/README.uuid-ossp
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/uuid-ossp/README.uuid-ossp')
-rw-r--r--contrib/uuid-ossp/README.uuid-ossp97
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.