Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  uuid_ossp.out   Sprache: unbekannt

 
Spracherkennung für: .out vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

CREATE EXTENSION "uuid-ossp";
SELECT uuid_nil();
               uuid_nil               
--------------------------------------
 00000000-0000-0000-0000-000000000000
(1 row)

SELECT uuid_ns_dns();
             uuid_ns_dns              
--------------------------------------
 6ba7b810-9dad-11d1-80b4-00c04fd430c8
(1 row)

SELECT uuid_ns_url();
             uuid_ns_url              
--------------------------------------
 6ba7b811-9dad-11d1-80b4-00c04fd430c8
(1 row)

SELECT uuid_ns_oid();
             uuid_ns_oid              
--------------------------------------
 6ba7b812-9dad-11d1-80b4-00c04fd430c8
(1 row)

SELECT uuid_ns_x500();
             uuid_ns_x500             
--------------------------------------
 6ba7b814-9dad-11d1-80b4-00c04fd430c8
(1 row)

-- some quick and dirty field extraction functions
-- this is actually timestamp concatenated with clock sequence, per RFC 4122
CREATE FUNCTION uuid_timestamp_bits(uuid) RETURNS varbit AS
$$ SELECT ('x' || substr($1::text, 154) || substr($1::text, 104) ||
           substr($1::text, 18) || substr($1::text, 204))::bit(80)
          & x'0FFFFFFFFFFFFFFF3FFF' $$
LANGUAGE SQL STRICT IMMUTABLE;
CREATE FUNCTION uuid_version_bits(uuid) RETURNS varbit AS
$$ SELECT ('x' || substr($1::text, 152))::bit(8) & '11110000' $$
LANGUAGE SQL STRICT IMMUTABLE;
CREATE FUNCTION uuid_reserved_bits(uuid) RETURNS varbit AS
$$ SELECT ('x' || substr($1::text, 202))::bit(8) & '11000000' $$
LANGUAGE SQL STRICT IMMUTABLE;
CREATE FUNCTION uuid_multicast_bit(uuid) RETURNS bool AS
$$ SELECT (('x' || substr($1::text, 252))::bit(8) & '00000001') != '00000000' $$
LANGUAGE SQL STRICT IMMUTABLE;
CREATE FUNCTION uuid_local_admin_bit(uuid) RETURNS bool AS
$$ SELECT (('x' || substr($1::text, 252))::bit(8) & '00000010') != '00000000' $$
LANGUAGE SQL STRICT IMMUTABLE;
CREATE FUNCTION uuid_node(uuid) RETURNS text AS
$$ SELECT substr($1::text, 25) $$
LANGUAGE SQL STRICT IMMUTABLE;
-- Ideally, the multicast bit would never be set in V1 output, but the
-- UUID library may fall back to MC if it can't get the system MAC address.
-- Also, the local-admin bit might be set (if so, we're probably inside a VM).
-- So we can't test either bit here.
SELECT uuid_version_bits(uuid_generate_v1()),
       uuid_reserved_bits(uuid_generate_v1());
 uuid_version_bits | uuid_reserved_bits 
-------------------+--------------------
 00010000          | 10000000
(1 row)

-- Although RFC 4122 only requires the multicast bit to be set in V1MC style
-- UUIDs, our implementation always sets the local-admin bit as well.
SELECT uuid_version_bits(uuid_generate_v1mc()),
       uuid_reserved_bits(uuid_generate_v1mc()),
       uuid_multicast_bit(uuid_generate_v1mc()),
       uuid_local_admin_bit(uuid_generate_v1mc());
 uuid_version_bits | uuid_reserved_bits | uuid_multicast_bit | uuid_local_admin_bit 
-------------------+--------------------+--------------------+----------------------
 00010000          | 10000000           | t                  | t
(1 row)

-- timestamp+clock sequence should be monotonic increasing in v1
SELECT uuid_timestamp_bits(uuid_generate_v1()) < uuid_timestamp_bits(uuid_generate_v1());
 ?column? 
----------
 t
(1 row)

SELECT uuid_timestamp_bits(uuid_generate_v1mc()) < uuid_timestamp_bits(uuid_generate_v1mc());
 ?column? 
----------
 t
(1 row)

-- Ideally, the node value is stable in V1 addresses, but OSSP UUID
-- falls back to V1MC behavior if it can't get the system MAC address.
SELECT CASE WHEN uuid_multicast_bit(uuid_generate_v1()) AND
                 uuid_local_admin_bit(uuid_generate_v1()) THEN
         true -- punt, no test
       ELSE
         uuid_node(uuid_generate_v1()) = uuid_node(uuid_generate_v1())
       END;
 case 
------
 t
(1 row)

-- In any case, V1MC node addresses should be random.
SELECT uuid_node(uuid_generate_v1()) <> uuid_node(uuid_generate_v1mc());
 ?column? 
----------
 t
(1 row)

SELECT uuid_node(uuid_generate_v1mc()) <> uuid_node(uuid_generate_v1mc());
 ?column? 
----------
 t
(1 row)

SELECT uuid_generate_v3(uuid_ns_dns(), 'www.widgets.com');
           uuid_generate_v3           
--------------------------------------
 3d813cbb-47fb-32ba-91df-831e1593ac29
(1 row)

SELECT uuid_generate_v5(uuid_ns_dns(), 'www.widgets.com');
           uuid_generate_v5           
--------------------------------------
 21f7f8de-8051-5b89-8680-0195ef798b6a
(1 row)

SELECT uuid_version_bits(uuid_generate_v4()),
       uuid_reserved_bits(uuid_generate_v4());
 uuid_version_bits | uuid_reserved_bits 
-------------------+--------------------
 01000000          | 10000000
(1 row)

SELECT uuid_generate_v4() <> uuid_generate_v4();
 ?column? 
----------
 t
(1 row)


[Dauer der Verarbeitung: 0.11 Sekunden, vorverarbeitet 2026-08-08]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=141584
#Domains=738142