sql-api.txt
author František Kučera <franta-hg@frantovo.cz>
Mon, 01 Sep 2014 20:03:39 +0200
changeset 8 0f6df6850ba6
parent 1 ff176e13e9b1
permissions -rw-r--r--
prototyp: users_groups – buggy:

second run in UNION:
WARNING: SQL: XXX skupina je schizoidní 0
groups are not iterater for second time in one query (unioned)

Also this:
SELECT * FROM users; SELECT * FROM users;
returns weird results – first resultset is OK, second one is empty
     1 „Nejlepší REST API je stejně relační databáze“ :-)
     2 
     3 SQL!
     4 
     5 Framework pro zpřístupnění libovolných dat ve formě relaci – virtuální tabulky, pohledy, funkce.
     6 Více klientských protokolů:
     7  - emulace postgresql
     8  - emulace mariadb
     9  - vlastní binární protokol
    10  - vlastní SOAP protokol
    11  - vlastní XML REST protokol
    12 
    13 programovatelné moduly poskytující data (tabulky, pohledy a navázání na funkce)
    14  - soubory (XML, CSV atd.) + zpracování (XSLT) a mezipaměť (původní zdroj: file://... http://... atd.)
    15  - CLI + mezipaměť
    16  - Java, C++, C, Perl atd.
    17 
    18 Příklad použití:
    19 SQL rozhraní k unixovému operačnímu systému
    20  - uživatelé
    21  - procesy
    22  - RAM
    23  - připojené oddíly, fstab, využití disku
    24  - S.M.A.R.T.
    25  - RAID pole
    26  - LVM, DM, LUKS
    27  - mailq
    28  - síťová spojení, naslouchající porty
    29  - síťové adaptéry, IP a MAC adresy, přenesená data
    30  - bluetooth
    31  - další HW (sériové porty, V4L2 atd.)
    32  - služby z /etc/services
    33  - protokoly z /etc/protocols
    34  - soubory - názvy, metadata, rozšířené atributy
    35 
    36 Funkce:
    37  - odeslání e-mailu
    38  - logování
    39  - poslání signálu nějakému procesu
    40  - odeslání D-Bus zprávy
    41  - CURL
    42  - DNS
    43  - ping
    44 
    45 Podporovat PL/SQL nebo procedurálnost nechat na klientovi, který bude volat SQL dotazy, příkazy?
    46 
    47 Dynamické tabulky:
    48  - obsahují neomezenou množinu dat
    49  - musíme použít WHERE podmínku (jinak vyhodí chybu)
    50  - vygenerují odpovídající obsah (např. výsledek DNS dotazu)
    51  - vypadají jako normální tabulka (ve skutečnosti je to spíš funkce)
    52 
    53 Aktualizovatelné tabulky:
    54  - lze provádět INSERT, UPDATE, DELETE
    55  - provádějí nějakou akci, např. vytvoření souboru, uživatele, spuštění procesu
    56 
    57  
    58 Inspirace: https://sqlite.org/vtab.html – The Virtual Table Mechanism Of SQLite