Verisyntax — brugermanual (prototype 0.1)
Kombination af tabeller
Et dataset kombinerer en eller flere sources. Version 0.1 understøtter inner join og left join. Alle tabeller i ét dataset skal indtil videre ligge på samme databaseforbindelse.
dataset paid_customer_orders:
from customers as customer
inner join orders as order on customer.id = order.customer_id
select customer.id as customer_id
select customer.name as customer_name
select order.total as order_total
where order.status = "paid"
Compilerens typekontrol afviser ukendte aliases, manglende kolonner, dublerede outputnavne og joins mellem inkompatible typer. Alle tabel-, skema- og kolonnenavne citeres af SQL-generatoren. where accepterer i denne version én valideret sammenligning med =, !=, <, <=, > eller >=; højresiden kan være en kolonne, tekst, et tal, en boolesk værdi eller null.
Desktopdialogen kan opbygge en eksplicit ordnet kæde med to til otte sources. Hver ny source skal joines til en allerede introduceret source på samme forbindelse. Intet output vælges automatisk, og C++ genvaliderer hele udkastet mod dokumenthashen før den undoable editorændring.
Se SQL uden at forbinde til databasen:
<compiler>/verisyntax sql model.vsx paid_customer_orders
Kør den genererede query read-only:
<compiler>/verisyntax run model.vsx paid_customer_orders
SQLite åbnes read-only og afbryder en query efter 10 sekunder. PostgreSQL bruger en read-only transaktion og en statement-timeout på 10 sekunder. Begge adaptere afviser mere end 10.000 resultatrækker i prototypen.
En deklareret source kan også vises direkte eller profileres fra terminalen:
<compiler>/verisyntax preview-source model.vsx customers --rows 100
<compiler>/verisyntax profile-join-keys model.vsx customers id orders customer_id
Begge kommandoer er read-only. Profilering måler to eksplicit valgte kolonner på samme forbindelse; den vælger eller godkender ikke en join key.
