UUID-Funktionen:
Auslesen |
 |
F_UUIDVERSION |
Funktion von adhoc
|
Entrypoint |
uuidversion |
UTF-8 kompatibel |
Input |
CSTRING(250) |
gültige
UUID |
Output |
CSTRING(20) |
Variante
und
Version der UUID |
Mögliche
Varianten sind:
0 NCS (reserviert für
Rückwärtskompatibilität)
10 die aktuelle
Variante nach RFC4122
110 Microsoft (reserviert für
Rückwärtskompatibilität))
111 reserviert für zukünftige
Varianten
Mögliche Versionen sind:
1
Zeit-basierte
a. mit eindeutiger MAC
Adresse nach IEEE 802-Standard
b. per
Zufallsgenerator erzeugter MAC-Adresse nach IEEE 802-Standard
2
DCE-Sichereitsversion (mit POSIX UIDs)
3
Names(raum)-basierte (mittels MD5
Kodierung)
4
Per Zufallsgenerator erzeugte
5
Namens(raum)-basierte (mittels SHA-1
Kodierung)
Die Funktion liefert z. Zt. folgendes zurück:
V1a
V1b
V3
V4
V5
TestSQL (für TestISO.GDB)
SELECT ART, F_UUIDVERSION(UUID) FROM UUIDTEST ORDER BY UUIDTESTID;
SELECT NULL AS ISCORRECT, F_UUIDVERSION(NULL) FROM RDB$DATABASE; |
  |
F_UUID1TIMESTAMP |
Funktion von adhoc
|
Entrypoint |
uuid1timestamp |
UTF-8
kompatibel |
Input |
CSTRING(250) |
gültige
UUID
Version 1 |
Output |
TIMESTAMP |
Zeitstempel,
wann
die UUID Version 1 erzeugt wurde |
Bei
nicht
gültigem Input gibt die Funktion den Zeitstempel 31.12.1899 00:00:00
aus (Zeit = 0 - Start der internen InterBase/FireBird Zeitrechnung),
bei FireBird 2.0, wenn gewünscht, <null>.
TestSQL (für TestISO.GDB)
Übergabe einer normalen UUID als Input Paramter (richtig):
SELECT UUIDTESTID, F_UUIDVERSION(UUID), ART, ZEITSTEMPEL AS
ISCORRECT,
F_UUID1TIMESTAMP(UUID) FROM UUIDTEST ORDER BY 1;
Übergabe einer komprimierten UUID als Input Paramter statt einer
nornalen UUID:
SELECT UUIDTESTID, F_UUIDVERSION(UUID), ART, NULL AS ISCORRECT,
F_UUID1TIMESTAMP(UUIDCOMPR) FROM UUIDTEST ORDER BY 1;
SELECT NULL AS ISCORRECT, F_UUID1TIMESTAMP(NULL) FROM RDB$DATABASE;
|
  |
F_UUID1COMPRTIMESTAMP |
Funktion von adhoc
|
Entrypoint |
uuid1comprtimestamp |
UTF-8
kompatibel |
Input |
CSTRING(250) |
gültige
komprimierte
UUID Version 1 |
Output |
TIMESTAMP |
Zeitstempel,
wann
die UUID Version 1 erzeugt wurde |
Bei nicht
gültigem Input gibt die Funktion den
Zeitstempel 31.12.1899
00:00:00 aus (Zeit = 0 - Start der internen InterBase/FireBird
Zeitrechnung), bei FireBird 2.0, wenn gewünscht, <null>.
TestSQL (für TestISO.GDB)
Übergabe einer komprimierten UUID als Input Paramter (richtig):
SELECT UUIDTESTID, F_UUIDVERSION(UUID), ART, ZEITSTEMPEL AS
ISCORRECT,
F_UUID1COMPRTIMESTAMP(UUIDCOMPR) FROM UUIDTEST WHERE UUIDCOMPR IS
NOT
NULL ORDER BY 1;
Übergabe einer normalen UUID als Input Paramter statt einer
komprimierten UUID:
SELECT UUIDTESTID, F_UUIDVERSION(UUID), ART, NULL AS ISCORRECT,
F_UUID1COMPRTIMESTAMP(UUID) FROM UUIDTEST ORDER BY 1;
SELECT NULL AS ISCORRECT, F_UUID1COMPRTIMESTAMP(NULL) FROM
RDB$DATABASE;
|
  |
F_UUID1MACMAC |
Funktion von adhoc
|
Entrypoint |
uuid1macmac |
UTF-8
kompatibel |
Input |
CSTRING(250) |
gültige
UUID
Version 1a |
Output |
CSTRING(17) |
MAC-Adresse
des
Computers, auf dem die UUID erzeugt wurde |
TestSQL (für
TestISO.GDB)
Übergabe einer normalen UUID als Input Paramter (richtig):
SELECT UUIDTESTID, F_UUIDVERSION(UUID), ART, MACADRESS AS ISCORRECT,
F_UUID1MACMAC(UUID) FROM UUIDTEST ORDER BY 1;
Übergabe einer komprimierten UUID als Input Paramter statt einer
normalen UUID:
SELECT 'no RFC4122 UUID' AS ISCORRECT, F_UUID1MACMAC(UUIDCOMPR) FROM
UUIDTEST WHERE UUIDCOMPR IS NOT NULL ORDER BY 1;
SELECT NULL AS ISCORRECT, F_UUID1MACMAC(NULL) FROM RDB$DATABASE;
|
  |
F_UUID1MACCOMPRMAC |
Funktion von adhoc
|
Entrypoint |
uuid1maccomprmac |
UTF-8
kompatibel |
Input |
CSTRING(250) |
gültige
komprimierte
UUID Version 1a |
Output |
CSTRING(17) |
MAC-Adresse
des
Computers, auf dem die UUID erzeugt wurde |
TestSQL (für
TestISO.GDB)
Übergabe einer komprimierten UUID als Input Paramter (richtig):
SELECT UUIDTESTID, F_UUIDVERSION(UUID), ART, MACADRESS AS ISCORRECT,
F_UUID1MACCOMPRMAC(UUIDCOMPR) FROM UUIDTEST WHERE UUIDCOMPR IS NOT
NULL
ORDER BY 1;
Übergabe einer normalen UUID als Input Paramter statt einer
komprimierten UUID:
SELECT 'no compressed UUID' AS ISCORRECT, F_UUID1MACCOMPRMAC(UUID)
FROM
UUIDTEST ORDER BY 1;
SELECT NULL AS ISCORRECT, F_UUID1MACCOMPRMAC(NULL) FROM
RDB$DATABASE; |
     |