Autocomplétion sensible au contexte
“L'éditeur sait si vous êtes dans le FROM, le WHERE ou la liste de colonnes.”
Écrivez moins, et commettez moins d'erreurs, car la suggestion comprend où vous êtes dans le statement.
Suggère les colonnes de la table active, les noms de bases de données, les tokens de schéma (tables, vues, fonctions), les mots-clés DML/DDL/de contrôle, les types de données et les phrases auxiliaires SQL filtrées par moteur.
Linter lexical en temps réel
“Les parenthèses déséquilibrées n'atteignent jamais le serveur.”
Attrape l'erreur évidente avant que MySQL ne la rejette.
Détecte les commentaires non fermés, les chaînes non fermées, les parenthèses déséquilibrées et les identifiants avec backtick ouvert. Balayage O(n), sans parseur complet.
Formateur avec mode sûr
“Formate vos requêtes — ne réécrit jamais votre UPDATE.”
Un formatage propre pour SELECT, sans surprise sur un UPDATE sans WHERE.
Connaît plus de 150 mots-clés, types et fonctions. Le mode sûr bloque l'auto-formatage sur les statements destructifs (ALTER, CREATE, DELETE, DROP, GRANT, TRUNCATE, UPDATE, REPLACE, RENAME) pour prévenir les réécritures accidentelles.
Occultation des identifiants dans les logs et la synchronisation
“Synchronisez votre historique, pas vos identifiants.”
Votre journal de requêtes ne devient pas un fichier de mots de passe sur iCloud.
Neutralise IDENTIFIED BY, IDENTIFIED WITH … AS, IDENTIFIED BY PASSWORD, SET PASSWORD FOR et PASSWORD(…). Occultation idempotente, appliquée avant d'exporter le journal de requêtes vers CloudKit.
Constructeurs de requêtes visuels
“Composez des requêtes en cliquant ; elles sortent prêtes pour la production.”
Un SELECT … WHERE … JOIN … correct sans mémoriser la syntaxe.
Constructeurs visuels dédiés aux quatre formes les plus fréquentes : SELECT, WHERE, UPDATE et CREATE de table.
Renommage de symbole avec bornes de mot
“Renommez id sans casser client_id.”
Refactorisez des identifiants en toute sécurité, sans détruire des noms similaires.
Regex avec bornes de mot \b et échappement adéquat. Ne matche jamais à l'intérieur d'identifiants plus longs.
Palette Quick Open (⌘⇧O)
“⌘⇧O et vous êtes sur la table que vous cherchiez.”
Atteignez n'importe quel objet du schéma sans descendre dans l'arbre.
Recherche floue incrémentale sur tables, vues, routines et objets, avec navigation aux flèches et Entrée pour ouvrir.
Gestionnaire de snippets avec seeding par moteur
“Vos snippets s'adaptent au moteur, pas l'inverse.”
Vos recettes SQL toujours à portée, filtrées selon le moteur utilisé.
Stockage JSON local. Chaque snippet déclare à quels moteurs il s'applique (MySQL, MariaDB…). La connexion à un nouveau moteur ajoute les valeurs par défaut sans doublons. Prend en charge la catégorisation.
Popovers de documentation DDL et de fonctions
“La documentation de GROUP_CONCAT s'ouvre là où vous tapez.”
Documentation sans quitter l'éditeur ni ouvrir un navigateur.
Affiche la signature de la fonction SQL ou le DDL de l'objet du schéma sous le curseur.
Éditeur de cellule avancé et édition inline de ligne
“Éditez la cellule, voyez le SQL, et décidez.”
Modifiez les données rapidement et prévisualisez le SQL exact qui sera exécuté.
Édition façon tableur sur les résultats, avec un aperçu de l'UPDATE ou du DELETE généré avant exécution.
SQL Player — historique d'exécution
“Rejouez votre session SQL comme une vidéo.”
Déboguez un batch de requêtes statement par statement, sans tout ré-exécuter.
Rejeu de type timeline des statements exécutés, lié à l'historique persistant des requêtes.
Barres d'aide iPad au-dessus du clavier
“Clavier iPad avec des super-pouvoirs SQL.”
Suggestions tactiles rapides juste au-dessus du clavier virtuel.
Barres contextuelles pour l'objet ou la fonction sous le curseur, avec un accès rapide à « Voir DDL » et aux paramètres de fonction.
Barre d'outils personnalisable
“Votre barre, dans votre ordre.”
Chacun a son ergonomie ; les DBAs réorganisent une fois et oublient.
Réorganisez ou masquez les groupes de boutons depuis une feuille de personnalisation dédiée. La mise en page est persistée.
Rechercher et remplacer dans toute la base
“Une recherche dans toutes vos colonnes textuelles.”
Cherchez une chaîne dans toutes les colonnes textuelles de toutes les tables à la fois, voyez les correspondances par table et par colonne, prévisualisez le résultat calculé par le serveur et remplacez en masse dans une transaction par table.
Deux chiffres sont affichés, pas un : la collation ignore souvent la casse, REPLACE() jamais, donc sans cet avertissement une modification en masse annonce 300 lignes et en change 100 sans que rien n'échoue. L'écart est mesuré avec CAST(col AS BINARY) plutôt qu'avec une collation nommée. Colonnes générées, clé primaire et uniques sont exclues par défaut — MariaDB accepte l'UPDATE d'une colonne générée, signale une ligne affectée et ne change rien. L'échappement utilise |, car l'antislash casse sous NO_BACKSLASH_ESCAPES.
Données spatiales sur une vraie carte
“Vos colonnes GEOMETRY cessent d'être 25 octets.”
Points, lignes et polygones dessinés sur une carte ancrée dans l'éditeur, avec styles satellite et plat, regroupement et un contrôle d'ajustement aux données. Faites glisser un point ou un sommet et Calíope compose l'instruction — il vous la montre avant d'écrire quoi que ce soit.
Le WKB transmis est toujours en (longitude, latitude) ; ce qui change, c'est le texte, car MySQL 8 sous un SRID géographique écrit la latitude d'abord, et MariaDB jamais. L'échange ne vit qu'à la frontière textuelle, où le paramètre n'a pas de valeur par défaut : se tromper ne produit pas d'erreur, cela déplace la ligne d'un continent et le serveur l'accepte. Le SRID voyage avec la géométrie, sans clé primaire fiable l'édition est bloquée et la raison est affichée, et il n'y a aucun CoreLocation.