Completamento automatico sensibile al contesto
“L'editor sa se sei nel FROM, nel WHERE o nell'elenco delle colonne.”
Scrivi meno e commetti meno errori, perché il suggerimento capisce dove ti trovi all'interno dello statement.
Suggerisce le colonne della tabella attiva, i nomi dei database, i token dello schema (tabelle, viste, funzioni), le keyword DML/DDL/di controllo, i tipi di dati e le frasi ausiliarie SQL filtrate per motore.
Linter lessicale in tempo reale
“Le parentesi sbilanciate non arrivano mai al server.”
Cattura l'errore evidente prima che il server lo rifiuti.
Rileva commenti non chiusi, stringhe non chiuse, parentesi sbilanciate e identificatori con backtick aperto. Scansione O(n), senza parser completo.
Formattatore, e una modalità sicura
“Un DROP non parte per sbaglio.”
Una formattazione leggibile per le tue query, e un lucchetto che impedisce a un UPDATE o a un DROP di arrivare al server prima che tu lo voglia.
Il formattatore mette in maiuscolo le parole chiave a partire dal vocabolario del motore. La Modalità sicura, attiva per impostazione predefinita e salvata per profilo e per scheda dell'editor, si rifiuta di eseguire qualsiasi istruzione che contenga ALTER, CREATE, DELETE, DROP, GRANT, TRUNCATE, UPDATE, REPLACE o RENAME — dall'editor, dal Terminale e dallo SQL Player allo stesso modo. Cerca la parola, non il WHERE: anche un UPDATE che lo ha viene fermato, e non parte nulla finché non la disattivi.
Oscuramento delle credenziali nei log e nella sincronizzazione
“Sincronizza la tua cronologia, non le tue credenziali.”
Il tuo log delle query non diventa un archivio di password su iCloud.
Neutralizza IDENTIFIED BY, IDENTIFIED WITH … AS, IDENTIFIED BY PASSWORD, SET PASSWORD FOR e PASSWORD(…). Oscuramento idempotente, applicato prima di esportare il log delle query su CloudKit.
Generatore di query e costruttori visuali
“Componi le query con dei clic; escono pronte per la produzione.”
Un SELECT … WHERE … JOIN … corretto senza memorizzare la sintassi.
Costruttori visuali dedicati per le quattro forme più frequenti: SELECT, WHERE, UPDATE e CREATE di tabella.
Rinomina di simbolo con confini di parola
“Rinomina id senza rompere client_id.”
Rifattorizza gli identificatori in sicurezza, senza rovinare i nomi simili.
Regex con confini di parola \b ed escape adeguato. Non matcha mai all'interno di identificatori più lunghi.
Palette Quick Open (⌘⇧O)
“⌘⇧O e sei nella tabella che cercavi.”
Raggiungi qualsiasi oggetto dello schema senza scendere lungo l'albero.
Ricerca fuzzy incrementale su tabelle, viste, routine e oggetti, con navigazione tramite frecce ed Enter per aprire.
Gestore di snippet con seeding per motore
“I tuoi snippet si adattano al motore, non il contrario.”
Le tue ricette SQL sempre a portata di mano, filtrate sul motore che stai usando.
Salvati in snippets.json, che viaggia su iCloud con l'interruttore generale di sincronizzazione e resta sul dispositivo quando è spento. Ogni snippet dichiara per quali motori vale (MySQL, MariaDB, PostgreSQL…). Connettersi a un nuovo motore aggiunge i default senza duplicati. Supporta la categorizzazione.
Popover di documentazione DDL e di funzioni
“La doc di GROUP_CONCAT si apre dove stai scrivendo.”
Documentazione senza uscire dall'editor né aprire un browser.
Mostra il DDL dell'oggetto dello schema sotto il cursore, o la scheda della funzione: firma, descrizione, parametri, un esempio e la versione in cui è arrivata. Ogni motore ha le sue schede, SQLite e DuckDB compresi, e anche gli operatori MongoDB nello strumento Query. Senza mouse, ⌥⌘?.
Editor di cella avanzato e modifica inline di riga
“Modifica la cella, guarda l'SQL e decidi.”
Modifica i dati rapidamente e visualizza in anteprima l'SQL esatto che verrà eseguito.
Modifica in stile foglio di calcolo sui risultati, con anteprima dell'UPDATE o del DELETE generato prima di eseguire.
SQL Player — uno script, passo dopo passo
“Avvia, metti in pausa e scorri il tuo script come un video.”
Esegui una migrazione un'istruzione alla volta e controlla ogni risultato prima che parta la successiva.
Divide lo script dell'editor in istruzioni e le esegue una per una, a mano o a intervalli, con i controlli primo, precedente, successivo e ultimo; la riproduzione automatica si ferma al primo errore. Ogni istruzione mostra il suo stato, il suo tempo e le righe che ha restituito o modificato, e finisce nella cronologia delle query. Vale la Modalità sicura.
Terminale SQL agganciato all'editor
“Il prompt mysql>, senza uscire dall'app.”
Scrivi un'istruzione, premi Invio, leggi la risposta come testo — come fa il client a riga di comando, accanto al tuo script.
Un pannello sotto l'editor con il prompt del motore (mysql>, postgres=#…), i risultati come tabella ASCII, “Query OK” con le righe che il server dice di aver modificato, e gli avvisi del server sotto. Una cronologia propria, con le frecce sul Mac e con i pulsanti su iPad, iPhone e Apple Vision Pro; ogni istruzione va anche nella cronologia della sessione. Vale la Modalità sicura.
Grafici dei risultati
“Da un result set a un grafico, senza esportare nulla.”
Barre, linee o una torta dalle righe appena ottenute, in un pannello dell'editor.
Gli assi li sceglie lui — la prima colonna di testo per le categorie, la prima numerica per i valori — e puoi cambiarli. Il grafico si esporta in PNG o PDF.
Una query, due database
“Lo staging è uguale alla produzione? Chiedilo a tutti e due insieme.”
Esegui la stessa query su due connessioni e guarda, riga per riga, che cosa cambia.
Esegui su due database… invia l'istruzione a entrambi e sostituisce la griglia con un confronto: celle cambiate segnate, righe presenti da un solo lato e un filtro per vedere solo le differenze. Le righe si abbinano per posizione, e solo quando i due lati restituiscono le stesse colonne.
Barre di aiuto dell'iPad sopra la tastiera
“Tastiera dell'iPad con superpoteri SQL.”
Suggerimenti tattili rapidi proprio sopra la tastiera a schermo.
Barre contestuali per l'oggetto o la funzione sotto il cursore, con accesso rapido a «Vedi DDL» e ai parametri di funzione.
Barra degli strumenti personalizzabile
“La tua barra, nel tuo ordine.”
Ognuno ha la propria ergonomia; i DBA riordinano una volta e se ne dimenticano.
Riordina o nascondi gruppi di pulsanti da un pannello di personalizzazione dedicato. Il layout viene mantenuto.
Ricerca e sostituzione globali, in tutto il database
“Una ricerca su tutte le colonne di testo che hai.”
Cerca un testo in tutte le colonne testuali di tutte le tabelle in una volta, guarda le corrispondenze per tabella e colonna, visualizza l'anteprima calcolata dal server e sostituisci in blocco dentro una transazione per tabella.
Mostra due cifre, non una: le collation di solito ignorano le maiuscole e REPLACE() non lo fa mai, quindi senza quell'avviso una modifica di massa annuncia 300 righe e ne cambia 100 senza che nulla fallisca. Lo scarto si misura con CAST(col AS BINARY) e non con una collation specifica. Colonne generate, chiave primaria e uniche restano fuori per impostazione predefinita — MariaDB accetta l'UPDATE di una colonna generata, riporta una riga interessata e non cambia nulla. L'escape usa |, perché la barra rovesciata si rompe con NO_BACKSLASH_ESCAPES.
Dati spaziali su una mappa vera
“Le tue colonne GEOMETRY smettono di essere 25 byte.”
Punti, linee e poligoni disegnati su una mappa agganciata all'editor, con stili satellite e piatto, raggruppamento e un comando per inquadrare i dati. Trascina un segnaposto o un vertice e Calíope compone l'istruzione — te la mostra prima di scrivere qualsiasi cosa.
Il WKB sul cavo è sempre in (longitudine, latitudine); ciò che cambia è il testo, perché MySQL 8 con un SRID geografico scrive prima la latitudine e MariaDB non lo fa mai. Lo scambio vive solo alla frontiera testuale, dove il parametro non ha valore predefinito: sbagliare non dà errore, sposta la riga di continente e il server lo accetta. Lo SRID viaggia con la geometria, senza chiave primaria affidabile non si modifica e viene detto perché, e non c'è CoreLocation da nessuna parte.