Questa pagina descrive Calíope 1.7, la versione che sto costruendo adesso. La 1.6 è sull'App Store per Mac, iPad, iPhone, Apple Watch, Apple TV e Apple Vision Pro. Il changelog dice in quale versione è arrivata ogni funzione.
Aggiunge a ogni argomento un pulsante «Apri in Calíope». Funziona solo con l'app installata.
Naviga tabelle, viste, indici, campi, routine, trigger ed eventi.
Dove si trova: Workspace › Strumenti › Cataloghi
Apri Cataloghi dalla barra di navigazione del workspace. Seleziona un database nel selettore superiore. Le sotto-tab mostrano le diverse categorie di oggetti.
ClickHouse
Con ClickHouse non ci sono le schede Trigger ed Eventi, e una nota sotto le schede dice che cosa ne fa le veci. Indici si chiama Chiavi: per ogni tabella, la chiave di ordinamento, quella di partizione, la primaria se diversa, quella di campionamento, gli indici di salto con tipo e granularità, e le proiezioni, senza cardinalità né Nuovo indice. Tra Viste e Chiavi c'è Viste materializzate: l'elenco dice dove scrive ciascuna —Interna, se la destinazione l'ha creata il server— e quando si aggiorna, e sotto c'è la scheda di quella scelta: da quale tabella legge, in quale tabella scrive e con quale nome interrogarla, quanto occupa la destinazione e quante righe ha, quando è stata scritta l'ultima riga e, se si aggiorna da sola, la programmazione, lo stato e l'ultimo e il prossimo aggiornamento, con il fuso scritto. Routine elenca le funzioni dell'utente.
Oracle
Con Oracle il selettore elenca schemi: quelli con qualche oggetto che il tuo account può vedere, più il tuo anche se vuoto, compresi quelli di Oracle (SYS, MDSYS…). Tabelle mostra quelle dell’utente —senza le interne di un indice spaziale o di una vista materializzata—, con le righe dell’ultima statistica (NUM_ROWS) e i tipi come li scrive Oracle (NUMBER(10,0), VARCHAR2(100 CHAR)). Viste include quelle materializzate. Routine elenca procedure, funzioni e package —con specifica e corpo nel pannello DDL— e mette INVALID dopo il tipo di quella che non compila; Trigger mette DISABLED dopo quello disattivato. In Indici, uno su funzione mostra la sua espressione, e uno di dominio o anomalo, il suo tipo (DOMAIN · MDSYS.SPATIAL_INDEX_V2, NORMAL · INVISIBLE, UNUSABLE). C’è una scheda in più, Sequenze, con minimo, massimo, passo, ciclo, cache e Successivo su disco: il prossimo numero che il server scriverà, non l’ultimo consegnato, che con la cache può essere indietro fino a un blocco. Non c’è la scheda Eventi.
Parole chiave: cataloghi, oggetti, tabelle, viste, indici, routine
Mostra il CREATE TABLE, CREATE VIEW o CREATE PROCEDURE e permette di modificarlo e applicarlo.
Dove si trova: Cataloghi › clic destro › Vedi DDL
Apri il menu contestuale —clic destro su macOS, tenere premuto su iPad— di un qualsiasi oggetto nell'elenco dei cataloghi e seleziona Vedi DDL. Il pannello inferiore mostra il DDL completo con sintassi colorata e selezione del testo ovunque.
Modificare il DDL:
Premi Apri in ItemEditor (pulsante superiore del pannello DDL) per aprire l'editor in una scheda modale con il DDL precaricato. È lo stesso editor su tutte le piattaforme, con evidenziazione della sintassi.
Modifica il DDL liberamente e premi Applica per inviarlo al server. Il pulsante Ripristina annulla le tue modifiche e torna al DDL originale. Se l'ALTER o CREATE non riesce, appare un messaggio rosso nella barra inferiore con l'errore del server.
Disponibile su macOS, iPad, iPhone e Apple Vision Pro.
Apple Vision Pro: il menu contestuale si apre guardando la riga e pizzicando senza lasciare.
Oracle
Con Oracle il pannello mostra ciò che il server scrive con DBMS_METADATA.GET_DDL: nomi tra virgolette e qualificati, EDITIONABLE dove si applica, l’identità intera e, in una tabella, i suoi indici, i suoi commenti e le sue chiavi esterne alla fine, come ALTER TABLE. Se il tuo account non può leggere il DDL di un oggetto di un altro schema —gli manca SELECT_CATALOG_ROLE—, un commento lo dice e Apri in ItemEditor non viene offerto. Anche le sequenze hanno Mostra DDL.
Crea una tabella direttamente dalla barra degli strumenti dei Cataloghi.
Dove si trova: Cataloghi › Nuova tabella
Nella barra degli strumenti dei Cataloghi usa il pulsante Nuova tabella per aprire il Builder di tabelle in un nuovo tab. Puoi anche aprire il menu contestuale di una tabella esistente — clic destro su macOS, tocca e tieni premuto su iPad — e scegliere Progetta tabella per modificarla.
Il builder divide il lavoro tra i tab della sua barra: Colonne, Indici, Chiavi esterne —dove il motore le ha— e Opzioni. Cosa offre ciascuno con il motore della tua sessione lo spiegano gli argomenti del Builder di tabelle.
La sezione Anteprima SQL nella parte inferiore mostra in tempo reale il DDL che verrà eseguito. Premi Crea tabella (o Applica le modifiche in modalità di modifica) per inviare il DDL al server.
Apple Vision Pro: il menu contestuale si apre guardando la riga e pizzicando senza lasciare.
Parole chiave: nuova tabella, create table, creare, DDL, builder, colonne, indici, chiavi esterne
Accedi agli editor visuali di ogni tipo di oggetto dalla barra degli strumenti.
Dove si trova: Cataloghi › Nuova vista / Nuovo indice / Nuova routine / Nuovo trigger / Nuovo evento
La barra degli strumenti dei Cataloghi include pulsanti dedicati per creare ogni tipo di oggetto:
- Nuova vista — apre l'editor delle viste
- Nuovo indice — apre l'editor degli indici
- Nuova routine — apre l'editor di funzioni e stored procedure
- Nuovo trigger — apre l'editor dei trigger
MySQLMariaDBAurora
- Nuovo evento — nella scheda Eventi, apre l'editor degli eventi dell'Event Scheduler
SQL ServerPostgreSQL
Non c'è la scheda Eventi né Nuovo evento: il server non ha un pianificatore di eventi.
Ogni editor genera il DDL corrispondente (CREATE VIEW, CREATE INDEX, CREATE PROCEDURE, ecc.) nel dialetto del server a cui sei connesso, e lo esegue sul server alla conferma. Ognuno offre solo ciò che quel server sa scrivere: gli argomenti seguenti dicono cosa cambia da un motore all'altro.
ClickHouse
Con ClickHouse c'è solo Nuova vista: niente Nuovo indice —la scheda è Chiavi, e un indice di salto si aggiunge dal Costruttore di tabelle—, niente Nuova routine, niente Nuovo trigger e niente scheda Eventi.
Oracle
Con Oracle ci sono Nuova vista e Nuovo indice. Non ci sono Nuova routine né Nuovo trigger: Cataloghi mostra il codice PL/SQL di procedure, funzioni, package e trigger, ma non lo modifica. Non c’è nemmeno la scheda Eventi.
Modifica oggetti esistenti con l'editor visuale o direttamente nell'editor SQL.
Dove si trova: Cataloghi › clic destro › Modifica (form visuale) / Apri in ItemEditor
Apri il menu contestuale di una vista, routine, trigger o evento nella sua scheda corrispondente dei Cataloghi — clic destro su macOS, tocca e tieni premuto su iPad. Oltre a Vedi DDL, offre due modi di modificare:
- Modifica (form visuale) — apre l'editor grafico con i campi precompilati
- Apri in ItemEditor — apre il DDL completo dell'oggetto nell'editor SQL per la modifica manuale
Le modifiche nel form visuale generano un ALTER o DROP + CREATE a seconda del tipo di oggetto.
Oracle
Con Oracle, procedure, funzioni, package e trigger si leggono ma non si modificano da Cataloghi: Modifica (form visuale) non compare. Vedi DDL mostra il loro PL/SQL completo —specifica e corpo di un package insieme—, e Apri in ItemEditor lo porta nell’editor SQL, dove lo modifichi ed esegui tu. Non c’è la scheda Eventi: lo scheduler di Oracle resta fuori.
ClickHouse
Con ClickHouse, le funzioni dell’utente si leggono ma non si modificano da Cataloghi: Modifica (form visuale) non compare, e Apri in ItemEditor porta il loro DDL nell’editor SQL.
Apple Vision Pro: il menu contestuale si apre guardando la riga e pizzicando senza lasciare.
Genera automaticamente righe di prova per una tabella.
Dove si trova: Cataloghi › clic destro › Popola con dati dummy
Apri il menu contestuale di una tabella nella scheda Tabelle dei Cataloghi — clic destro su macOS, tocca e tieni premuto su iPad — e seleziona Popola con dati dummy. Calíope genererà INSERT di esempio adattati ai tipi delle colonne della tabella.
Apple Vision Pro: il menu contestuale si apre guardando la riga e pizzicando senza lasciare.
Parole chiave: dati dummy, seed, test data, popolare, fittizi
Previene modifiche accidentali degli oggetti del catalogo.
Dove si trova: Cataloghi › Sola lettura
Cataloghi si apre in Sola lettura: l'interruttore della sua barra è acceso e i pulsanti di creazione ed eliminazione sono disabilitati. Spegnilo per creare o eliminare oggetti, e riaccendilo quando esplori un database di produzione. Se la connessione ha un’etichetta di ambiente in sola lettura, l’interruttore non compare, e nemmeno i pulsanti di creazione ed eliminazione: quella sessione non può scrivere, quindi non c’è nulla da sbloccare.
Parole chiave: sola lettura, read only, proteggere, produzione
Crea o modifica una vista; le opzioni offerte dipendono dal motore.
Dove si trova: Cataloghi › Nuova vista / Modifica vista
L'Editor delle viste si apre premendo Nuova vista, o dal menu contestuale di una vista esistente — clic destro su macOS, tocca e tieni premuto su iPad — con Modifica (form visuale). Genera il DDL CREATE VIEW automaticamente.
Campi disponibili:
- Nome — nome della vista nel database selezionato.
- L'interruttore di sostituzione — se attivo, il DDL generato sostituisce la vista se esiste già, senza doverla eliminare prima. L'interruttore si chiama come la clausola che scrive:
MySQLMariaDBAuroraPostgreSQLOracle
OR REPLACE — CREATE OR REPLACE VIEW.
SQL Server
OR ALTER — CREATE OR ALTER VIEW.
MySQLMariaDBAurora
- Algoritmo — controlla come il server elabora la vista:
- UNDEFINED (predefinito) — il server sceglie l'algoritmo ottimale.
- MERGE — combina la query della vista con la query esterna. Più efficiente.
- TEMPTABLE — materializza la vista in una tabella temporanea prima di applicare i filtri esterni.
- SQL Security — definisce i privilegi con cui viene eseguita la vista:
- DEFINER (predefinito) — viene eseguita con i privilegi dell'utente che l'ha creata.
- INVOKER — viene eseguita con i privilegi dell'utente che la interroga.
- CHECK OPTION — verifica che le righe modificate attraverso la vista rimangano visibili in essa:
- LOCAL — verifica solo la condizione di questa vista.
- CASCADED — verifica anche le condizioni delle viste sottostanti.
- SQL SELECT — l'editor di testo con la query SELECT che definisce il contenuto della vista.
Premi Applica per eseguire il DDL sul server.
SQL ServerPostgreSQLOracle
Non ci sono Algoritmo né SQL Security: il foglio non li mostra.
SQL ServerOracle
WITH CHECK OPTION ha una sola forma, quella che descrive CASCADED: scegliere LOCAL scrive quella, e il foglio lo dice.
Apple Vision Pro: il menu contestuale si apre guardando la riga e pizzicando senza lasciare.
Parole chiave: vista, view, CREATE VIEW, OR REPLACE, algoritmo, MERGE, TEMPTABLE, SQL SECURITY, DEFINER, INVOKER, CHECK OPTION, editor delle viste
Crea o modifica stored procedure e funzioni con interfaccia visuale.
Dove si trova: Cataloghi › Nuova routine / Modifica routine
L'Editor di routine si apre premendo Nuova routine o modificando una routine esistente dalla scheda Routine dei Cataloghi. Genera il DDL che crea la procedura o la funzione, o sostituisce quella con quel nome:
MySQLMariaDBAurora
Due istruzioni, eseguite una dopo l'altra: DROP PROCEDURE IF EXISTS e CREATE PROCEDURE (o DROP FUNCTION IF EXISTS e CREATE FUNCTION). MySQL non ha CREATE OR REPLACE per le routine, quindi quella esistente viene eliminata prima: se la creazione fallisce, non c'è più.
PostgreSQL
CREATE OR REPLACE PROCEDURE o CREATE OR REPLACE FUNCTION.
SQL Server
CREATE OR ALTER PROCEDURE o CREATE OR ALTER FUNCTION.
Campi disponibili:
- Nome — nome della stored procedure o funzione.
- Tipo — seleziona tra PROCEDURE (procedura) o FUNCTION (funzione).
- Parametri — aggiungi parametri con il pulsante +. Ogni parametro ha:
- Modo: IN (ingresso), OUT (uscita), INOUT (ingresso e uscita). Disponibile solo per le procedure.
- Nome del parametro.
- Tipo di dato (es. INT, VARCHAR(100), DATETIME).
- Tipo di ritorno (solo per le funzioni) — il tipo di dato che la funzione restituisce (es. INT, VARCHAR(255)).
- Corpo — editor di testo con il codice della routine. Parte come un blocco BEGIN … END vuoto in cui scrivere.
La sezione Opzioni mostra solo ciò che il server sa scrivere:
MySQLMariaDBAurora
- Deterministica — scrive DETERMINISTIC se la routine restituisce sempre lo stesso risultato per gli stessi parametri di ingresso. Importante per la replica.
- Accesso ai dati — dichiara il comportamento della routine rispetto al database:
- CONTAINS SQL — può contenere SQL ma non legge né scrive dati.
- NO SQL — non contiene istruzioni SQL.
- READS SQL DATA — legge dati ma non li modifica.
- MODIFIES SQL DATA — può inserire, aggiornare o eliminare dati.
PostgreSQL
Solo Deterministica, e solo nelle funzioni: scrive IMMUTABLE — la funzione restituisce sempre lo stesso risultato per gli stessi argomenti e non legge il database. Una procedura non ha questa opzione, e non c'è Accesso ai dati: PostgreSQL non ha questa clausola. Il corpo si scrive in PL/pgSQL (LANGUAGE plpgsql).
SQL Server
Non c'è la sezione Opzioni: SQL Server deduce da solo se una funzione è deterministica, e non ha una clausola di accesso ai dati. Un parametro che non è IN si scrive @nome tipo OUTPUT, e la @ viene aggiunta se la ometti.
Premi Applica per eseguire il DDL sul server.
Oracle
Con Oracle questo editor non si apre: non c’è Nuova routine né la modifica di una routine esistente. Il suo codice si vede nel pannello DDL di Cataloghi; per cambiarlo, porta il suo CREATE OR REPLACE nell’editor SQL.
Parole chiave: routine, procedura, funzione, PROCEDURE, FUNCTION, parametri, IN, OUT, INOUT, deterministic, CONTAINS SQL, CREATE PROCEDURE, CREATE FUNCTION
Dove si trova: Cataloghi › Nuovo trigger / Modifica trigger
L'Editor di trigger si apre premendo Nuovo trigger nella barra degli strumenti dei Cataloghi, o dal menu contestuale di un trigger esistente — clic destro su macOS, tocca e tieni premuto su iPad — con Modifica (form visuale). L'albero dello schema non lo apre: il suo menu contestuale non apre nessuno degli editor di Cataloghi.
Campi disponibili:
- Nome — nome del trigger.
- Timing — quando si attiva il trigger rispetto all'operazione:
MySQLMariaDBAuroraPostgreSQL
- BEFORE — viene eseguito prima dell'operazione. Permette di modificare i valori di NEW prima di scriverli.
- AFTER — viene eseguito dopo l'operazione.
SQL Server
- AFTER — viene eseguito dopo l'operazione.
- INSTEAD OF — sostituisce l'operazione con il codice del trigger.
Non c'è BEFORE.
- Evento — l'operazione che attiva il trigger:
- INSERT — all'inserimento di una riga.
- UPDATE — all'aggiornamento di una riga.
- DELETE — all'eliminazione di una riga.
- Corpo — editor di testo con il codice del trigger. Il corpo di partenza dice, nei commenti, dove sono le righe nuove e quelle precedenti.
Premi Applica per eseguire il DDL sul server.
MySQLMariaDBAuroraPostgreSQL
Il trigger scatta una volta per riga: NEW.colonna è il valore nuovo (in INSERT e UPDATE) e OLD.colonna quello precedente (in UPDATE e DELETE).
PostgreSQL
Il codice di un trigger vive in una funzione: Calíope crea la funzione <nome>_fn con il corpo e il trigger che la chiama, FOR EACH ROW. Il corpo termina con RETURN: in un trigger BEFORE la riga che restituisce è quella che viene scritta, e NULL salta la riga. Il corpo di partenza restituisce COALESCE(NEW, OLD), che va bene per i tre eventi.
SQL Server
Il trigger scatta una volta per istruzione, non una volta per riga, e le righe nuove e quelle precedenti sono nelle tabelle inserted e deleted, non in NEW e OLD: il corpo di partenza lo dice.
Apple Vision Pro: il menu contestuale si apre guardando la riga e pizzicando senza lasciare.
Oracle
Con Oracle questo editor non si apre: non c’è Nuovo trigger né la modifica di uno esistente. Il suo codice si vede nel pannello DDL di Cataloghi; per cambiarlo, porta il suo CREATE OR REPLACE TRIGGER nell’editor SQL.
Parole chiave: trigger, attivatore, BEFORE, AFTER, INSERT, UPDATE, DELETE, NEW, OLD, CREATE TRIGGER, editor di trigger
Crea o modifica eventi dell'Event Scheduler di MySQL.
Dove si trova: Cataloghi › Nuovo evento / Modifica evento
L'Editor di eventi si apre premendo Nuovo evento nella barra degli strumenti dei Cataloghi o modificando un evento esistente. Richiede che l'Event Scheduler di MySQL sia abilitato (SET GLOBAL event_scheduler = ON).
Campi disponibili:
- Nome — nome dell'evento.
- Stato — controlla se l'evento è attivo:
- ENABLE — l'evento viene eseguito secondo la sua programmazione.
- DISABLE — l'evento è in pausa.
- SLAVESIDE_DISABLED — disabilitato su uno slave di replica.
- Tipo di programmazione:
- Una volta (AT) — viene eseguito in una data e ora specifica. Usa il selettore di data/ora per scegliere il momento.
- Ricorrente (EVERY) — si ripete ogni N unità di tempo. Configura il numero e l'unità (SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, YEAR).
- Inizio (ricorrente) — quando l'evento ricorrente inizia a essere eseguito.
- Date e orari sono in ora del server, senza fuso orario: il selettore mostra ciò che il server ha salvato, non l’ora del tuo dispositivo.
- Data di fine (ricorrente, opzionale) — attiva il toggle per definire quando smette di essere eseguito.
- Corpo — codice SQL che l'evento esegue. Può essere un blocco BEGIN … END con più istruzioni.
Crea un indice in una tabella con tipo, metodo e colonne configurabili.
Dove si trova: Cataloghi › Nuovo indice / Crea indice
L'Editor di indici si apre dalla scheda Indici dei Cataloghi: con una tabella selezionata, il pulsante Nuovo indice della barra degli strumenti; su un indice che esiste già, il menu contestuale — clic destro su macOS, tocca e tieni premuto su iPad — con Modifica (form visuale). L'albero dello schema non lo apre.
Campi disponibili:
- Nome — nome dell'indice nella tabella.
- Tipo:
- INDEX — indice normale, consente duplicati.
- UNIQUE — indice univoco, rifiuta valori duplicati nella colonna o combinazione di colonne indicizzate.
MySQLMariaDBAurora
- FULLTEXT — ricerca full-text. Solo per colonne CHAR, VARCHAR o TEXT e motore MyISAM/InnoDB (MySQL 5.6+).
- SPATIAL — dati geospaziali. Solo per colonne di tipo spaziale, con MyISAM o InnoDB (MySQL 5.7+, MariaDB 10.2+).
MySQLMariaDBAuroraPostgreSQL
- Metodo (per INDEX e UNIQUE):
- BTREE — albero B, il metodo più comune. Supporta confronti di intervallo, LIKE 'abc%', ORDER BY.
- HASH — tabella hash, supporta solo confronti di uguaglianza esatta.
MySQLMariaDBAurora
HASH lo rispetta solo il motore MEMORY.
PostgreSQL
Un indice UNIQUE non può essere HASH, quindi con UNIQUE il metodo è BTREE. Gli altri metodi (gin, gist, brin) non sono offerti.
SQL ServerOracle
Non c'è Metodo: CREATE INDEX non ha la clausola USING.
- Colonne — aggiungi le colonne che compongono l'indice con il campo del nome e, facoltativamente, la lunghezza del prefisso (numero di caratteri da indicizzare; utile per colonne TEXT o VARCHAR lunghe).
SQL ServerPostgreSQLOracle
Non c'è indice per prefisso: si indicizza la colonna intera, e il DDL generato lo dice in un commento.
La chiave primaria si gestisce dalla scheda Colonne del Builder di tabelle, non da questo editor.
Premi Applica per eseguire CREATE INDEX sul server.
ClickHouse
Con ClickHouse questo editor non si apre: la scheda è Chiavi e non ha Nuovo indice. Un indice di salto si aggiunge o si toglie nel Costruttore di tabelle, nella sua scheda Indici.
Apple Vision Pro: il menu contestuale si apre guardando la riga e pizzicando senza lasciare.
Oracle
Con Oracle il tipo è INDEX o UNIQUE, e l’indice si crea nello schema della sua tabella. Eliminare un indice che sostiene un vincolo UNIQUE elimina il vincolo, e con esso l’indice.
Parole chiave: indice, index, CREATE INDEX, UNIQUE, FULLTEXT, SPATIAL, BTREE, HASH, colonne, prefisso, ALTER TABLE, editor di indici
Il campo di ricerca filtra per nome l’elenco della scheda aperta e si svuota quando cambi scheda; aggiornare rilegge il database, e l’elenco si ricarica da sé quando un altro strumento di Calíope lo cambia.
Dove si trova: Workspace › Strumenti › Cataloghi
Il campo di ricerca della barra di Cataloghi filtra per nome l’elenco della scheda aperta —tabelle, viste, indici, routine e il resto— e si svuota quando cambi scheda.
Il pulsante Aggiorna rilegge il database. Servirà di rado: quando un altro strumento di Calíope crea o elimina un oggetto di quel database, l’elenco si ricarica da sé. Ciò che si cambia fuori da Calíope compare dopo l’aggiornamento.
Parole chiave: cercare, filtrare, aggiornare, ricaricare, cataloghi
Il menu contestuale di una tabella, un indice, una routine o un evento offre di eliminarlo; la conferma mostra il DROP che il motore eseguirà.
Dove si trova: Workspace › Strumenti › Cataloghi
Il menu contestuale di una tabella, un indice, una routine o un evento offre di eliminarlo. Prima di fare qualsiasi cosa, Calíope mostra l’istruzione DROP che il motore eseguirà e chiede di confermare; se la connessione porta un’etichetta di ambiente che chiede conferma, la finestra la nomina.
Viste, trigger e sequenze non si eliminano da Cataloghi: eliminali dall’Editor SQL.
Con il lucchetto chiuso l’opzione appare disattivata; in una sessione che può soltanto leggere, non viene disegnata.
Parole chiave: eliminare, drop, tabella, indice, routine, evento