Versions

Quoi de neuf

Historique des mises à jour de SQL Arena. Les versions les plus récentes en haut.

v5.2.05 juin 2026Actuelle

Every task is now solved by writing SQL — new task formats and catalog filters, plus new task packs.

Ajouté
  • New task types: debugging, data-quality checks, index design, query rewriting, schema design with constraints, transactions & locking, and access permissions (GRANT/REVOKE).
  • New catalog filters: by task format, difficulty, solved status, dialect (PostgreSQL/MySQL) and favorites.
  • Permissions tasks are graded by the resulting privilege set (least privilege enforced).
  • Transaction tasks are graded under real concurrency: safe debits, atomic transfers, idempotency, isolation levels and row locks.
  • New task packs: ride-hailing analytics, data modification, schema design, recursive hierarchies and product events.
  • Your chosen SQL dialect (PostgreSQL/MySQL) now persists across tasks.
  • Most tasks now show a preview of the expected output.
  • Hundreds of new step-by-step hints, plus an AI mentor that explains the errors in your query.
Modifié
  • Every format is now code-writing: you write real SQL instead of picking an answer.
  • Task descriptions are living business scenarios in Russian and English; difficulty levels recalibrated.
v5.1.33 juin 2026
Corrigé
  • AI task generation: descriptions now read as a real business scenario and no longer give away the solution — formulas, SQL function names and dry table listings are kept out of the text.
v5.1.23 juin 2026
Modifié
  • Company examples on the home page and in Premium are now locale-aware: the Russian site shows Russian employers, every other locale shows international ones (Tesla, Uber, Microsoft, Spotify, Meta) whose tasks we carry.
v5.1.13 juin 2026
Corrigé
  • Removed a stray privacy notice banner on the user profile page.
v5.1.03 juin 2026

L'interface parle désormais toutes les langues de l'UE — 21 nouvelles langues.

Ajouté
  • Ajout de 21 langues de l'UE : allemand, français, italien, néerlandais, polonais, roumain, grec, tchèque, hongrois, suédois, danois, finnois, slovaque, bulgare, croate, lituanien, slovène, letton, estonien, irlandais et maltais. Choisissez-en une dans le sélecteur de langue, ou laissez-la se détecter automatiquement d'après votre pays et la langue du navigateur.
  • La page « Signaler un bug » est désormais « Commentaires » (sur /feedback) avec deux onglets : « Signaler un bug » et « Suggérer une amélioration ». Les suggestions d'amélioration parviennent à l'équipe comme les rapports de bug.
Modifié
  • Les paramètres du profil affichent désormais la date de fin de l'abonnement, et la mention « paiement unique » a été supprimée.
  • Le menu déroulant du sélecteur de langue est désormais plus compact.
Corrigé
  • Les profils s'ouvrent de nouveau depuis le classement pour les utilisateurs connectés : la confidentialité masque un profil uniquement aux visiteurs anonymes. L'identifiant d'URL du profil ne peut plus être supprimé, donc chaque profil reste accessible par lien.
v5.0.11 juin 2026
Corrigé
  • Le paiement par carte étrangère (l'onglet Visa/MC) sur le site russe est désormais correctement facturé en USD et traité via Paddle, au lieu d'ouvrir YooKassa avec un montant en roubles.
v5.0.01 juin 2026

Certification : passez un examen chronométré et obtenez un certificat de niveau vérifiable.

Ajouté
  • Examens de certification : trois niveaux (Foundations / Practitioner / Expert), 8 tâches chacun, un minuteur par tâche, note de passage de 7 sur 8. Chaque tentative reçoit son propre jeu de données, impossible donc de mémoriser les réponses à l'avance.
  • Un certificat vérifiable avec un QR code qui renvoie vers votre profil public ; une section certificats apparaît désormais sur le profil.
  • Supprimez votre compte directement depuis les paramètres du profil.
Modifié
  • Les paramètres du profil ont été repensés dans un style épuré en listes par sections ; les utilisateurs Premium bénéficient d'un anneau animé autour de leur avatar.
v4.1.1129 mai 2026
Modifié
  • Notation renforcée sur 324 tâches : elle s'exécute désormais sur un jeu de données caché, vous ne pouvez donc plus réussir en calant votre solution sur l'exemple visible.
v4.1.1029 mai 2026
Modifié
  • L'autocomplétion de l'éditeur suggère désormais les noms de CTE déclarés via WITH lorsque vous tapez FROM/JOIN.
v4.1.929 mai 2026
Modifié
  • AI Mentor voit désormais votre erreur et votre requête actuelle même après Run — un nouveau bouton « Expliquer mon erreur » vous permet de discuter de toute erreur, y compris les erreurs de syntaxe.
v4.1.829 mai 2026
Modifié
  • Tâche n°91 : la notation s'exécute désormais sur un jeu de données caché — vous ne pouvez plus réussir en calant votre solution sur l'exemple visible (par ex. via LIMIT ou une longueur codée en dur).
v4.1.726 mai 2026
Modifié
  • Tâche n°13 : suppression de l'indice de filtre tout fait dans l'énoncé — vous déduisez désormais la solution par vous-même.
v4.1.623 mai 2026
Modifié
  • La Carte des compétences couvre désormais toutes les catégories de tâches (ajout de CTE, DDL, transactions, optimisation) et est plus grande et plus lisible.
Corrigé
  • L'indice « quoi améliorer » de la Carte des compétences pointe désormais vers le thème comptant le plus de tâches non résolues, plutôt qu'un thème aléatoire.
  • Le graphique d'activité annuel affiche à nouveau les noms complets des mois, au lieu de les réduire à une seule lettre.
v4.1.523 mai 2026
Corrigé
  • Les solutions renvoyant un intervalle de temps (par ex. la différence entre deux heures) ne génèrent plus d'erreur à la soumission.
v4.1.421 mai 2026
Corrigé
  • Tâche n°88 : données corrigées — les départs de Paris ont désormais des durées distinctes au lieu de trois lignes identiques.
v4.1.320 mai 2026
Corrigé
  • L'annulation (Ctrl+Z) dans l'éditeur conserve désormais un historique distinct pour chaque onglet de requête.
v4.1.220 mai 2026
Modifié
  • Tâche n°624 : l'énoncé précise désormais que le prix moyen doit être arrondi à 2 décimales.
Corrigé
  • Les suggestions de l'éditeur SQL ne se dupliquent plus après navigation entre les tâches.
  • Tâche n°621 : les clubs sans membres apparaissent désormais dans le résultat avec un chiffre d'affaires nul.
v4.1.120 mai 2026
Modifié
  • La difficulté de la tâche n°831 passe de EXPERT à MEDIUM.
v4.1.016 mai 2026

SQL Arena est désormais multilingue : anglais, espagnol et portugais, chacun avec ses propres URL de page et une détection automatique de la région.

Ajouté
  • Sélecteur de langue : russe, anglais, espagnol (Espagne et Amérique latine) et portugais.
  • Lors de votre première visite, le site s'ouvre dans la langue de votre région, et votre choix est mémorisé.
  • Chaque langue dispose de ses propres URL de page (/en, /es, /es-419, /pt-br) que vous pouvez partager en toute sécurité.
  • Paiement Premium dans votre devise locale : RUB, USD, EUR ou BRL selon la région.
Modifié
  • Le site anglais est entièrement pris en charge ; les traductions espagnole et portugaise sont en cours de déploiement.
v4.0.1118 mai 2026

Les tâches de création de table acceptent toute forme valide, les indices d'erreur sont désormais pertinents, et une tâche à la réponse ambiguë a été corrigée.

Corrigé
  • La tâche « paire de cours la plus populaire » : les données d'exemple autorisaient plusieurs réponses tout aussi valables alors que le correcteur n'en acceptait qu'une seule. La tâche a désormais une seule réponse correcte.
  • Les tâches CREATE TABLE rejetaient une solution correcte lorsque l'apprenant nommait une contrainte (par ex. CONSTRAINT ... PRIMARY KEY). La notation compare désormais la structure de la table — les noms des contraintes sont ignorés.
  • Une tâche de création de table échouée affichait un indice « ajoutez ORDER BY » hors sujet. L'indice est désormais pertinent — à propos des colonnes, des types, de NOT NULL et des clés.
v4.0.1017 mai 2026

Les tâches de modification de données se résolvent exactement comme l'indique l'énoncé — sans SELECT de vérification non documenté.

Corrigé
  • Les tâches INSERT/UPDATE/DELETE et transactionnelles (y compris UPSERT, MERGE, SKIP LOCKED) n'exigeaient plus un SELECT de vérification non documenté. Elles sont désormais notées selon l'état résultant de la table, et la page de la tâche affiche une mention « pas de SELECT final nécessaire ».
  • Meilleures solutions : les comptes internes n'apparaissent plus dans la liste — comme dans le classement public.
v4.0.917 mai 2026

Les tâches de création de table et d'index se résolvent désormais exactement comme l'indique l'énoncé — sans SELECT non documenté ; le rafraîchissement en direct du classement fonctionne à nouveau.

Corrigé
  • Les tâches DDL (CREATE TABLE, ALTER, CREATE INDEX, clés étrangères) n'exigeaient plus un SELECT de vérification non documenté. Elles sont désormais notées selon le schéma de base de données résultant, et la page de la tâche affiche une mention « pas de SELECT final nécessaire ».
  • Page du classement : rafraîchissement en direct rétabli — la connexion WebSocket du classement ne tombe plus en panne.
  • Diagramme de schéma : certaines tâches n'affichaient aucun lien entre les tables — les flèches de clés étrangères apparaissent désormais sur le diagramme.
  • La boîte de dialogue « Correct ! » n'affiche plus une chute de rang comme une promotion — le badge de rang n'apparaît que lors d'une véritable promotion.
v4.0.816 mai 2026

Les tâches CREATE / ALTER TABLE et autres solutions à plusieurs étapes peuvent à nouveau être soumises — la limite d'instructions par soumission était trop stricte.

Corrigé
  • La limite d'instructions par soumission est passée de 3 à 20 : les tâches DDL (CREATE TABLE, ALTER, index, déclencheurs) et les DML à plusieurs étapes ne sont plus rejetés avec une erreur « trop d'instructions ».
v4.0.716 mai 2026

La variante MySQL des tâches du catalogue est de nouveau synchronisée avec PostgreSQL — certaines tâches MySQL étaient notées sur des données obsolètes.

Corrigé
  • La variante MySQL de centaines de tâches s'exécutait sur un jeu de données obsolète — les seeds ont été resynchronisés, la réponse MySQL correspond à nouveau à PostgreSQL.
  • Six tâches qui ne fonctionnaient que sous PostgreSQL disposent désormais d'une variante MySQL fonctionnelle.
  • Les tâches CREATE TABLE / CREATE INDEX / ALTER sont notées selon le schéma de table résultant — une structure incorrecte n'est plus acceptée comme correcte.
  • Les tâches INSERT utilisant CURRENT_TIMESTAMP / NOW() ne rejettent plus une réponse correcte à cause d'un écart au moment de l'exécution.
  • Les exemples de sortie qui révélaient accidentellement la réponse exacte sont remplacés par des échantillons sans spoiler ; l'ordre des lignes est imposé là où une tâche l'exige.
  • Un audit de l'ensemble du catalogue a réaligné l'énoncé, les données de notation et la solution de référence sur plusieurs dizaines de tâches où ils avaient divergé.
v4.0.616 mai 2026

Correction de la notation des solutions à instructions multiples — un DELETE/UPDATE avec un SELECT final est désormais noté correctement.

Modifié
  • Les dates et heures dans les résultats de requête s'affichent désormais proprement sous la forme 2024-01-15 08:00:00 au lieu du format ISO technique.
Corrigé
  • Les tâches DML (DELETE, UPDATE, INSERT) avec un SELECT de vérification ne rejettent plus une réponse correcte comme comportant des « colonnes en trop ».
  • Tâche n°768 : l'énoncé correspond désormais à la réponse notée.
  • L'indice de réponse incorrecte ne suggère plus de comparer avec le bloc d'exemple, qui n'est intentionnellement pas exact.
  • Les tâches purement UPDATE / DELETE / INSERT sont désormais notées selon l'état résultant de la table — une mutation incorrecte n'est plus acceptée comme correcte.
v4.0.516 mai 2026

Correction de cinq tâches dont le texte de l'énoncé ne correspondait pas au schéma ni à la réponse.

Corrigé
  • Tâches n°762, n°763, n°764, n°765, n°809 : énoncé réécrit pour correspondre au schéma réel et à la réponse attendue.
  • Génération de tâches par IA, AI Mentor et formulaire de signalement de bug : en cas de limitation de débit, ils affichent désormais « réessayez dans N secondes » au lieu de « ThrottlerException ».
v4.0.415 mai 2026

Correction de la tâche n°17 — le correcteur renvoyait NULL à cause d'un bug de schéma.

Corrigé
  • Tâche n°17 (average-post-hiatus) : schéma aligné sur le seed, le correcteur fonctionne à nouveau.
v4.0.315 mai 2026

Sur la tâche « Déplacer les anciennes lignes vers l'archive d'un seul coup — sans condition de concurrence » (n°789), l'énoncé demandait une colonne customer_id inexistante dans le schéma. La formulation est désormais alignée sur le schéma réel et le correcteur : id, status, amount.

Corrigé
  • Tâche n°789 (hard-cte-atomic-archive) : la description mentionnait une colonne customer_id inexistante. La formulation correspond désormais au schéma orders / orders_archive et aux colonnes attendues id, status, amount.
v4.0.215 mai 2026

Le message « Trop de requêtes » affiche désormais la limite exacte et le nombre de secondes avant réinitialisation, au lieu du cryptique « ThrottlerException ». La limite de débit côté serveur a été relevée pour que la navigation rapide entre tâches d'un parcours ne bute plus contre le plafond.

Modifié
  • La limite de débit côté serveur sur les requêtes API ordinaires a été multipliée par 5. Les allers-retours rapides entre tâches au sein d'un parcours (plus de 10 requêtes de montage en parallèle) ne butent plus contre le plafond ni ne renvoient de 429.
Corrigé
  • En cas de limitation de débit sur Submit ou Run, le message affiche désormais la limite réelle et le nombre exact de secondes avant un nouvel essai. Auparavant, seul le cryptique « ThrottlerException: Too Many Requests » apparaissait sans indication d'attente.
v4.0.114 mai 2026

Le bouton « Démarrer » sur la carte de parcours démarre à nouveau le parcours — un calque de lien invisible interceptait le clic et le redirigeait vers la page de détail du parcours.

Corrigé
  • Sur /trainer/tracks, le bouton « Démarrer » sur une carte de parcours ne redirige plus vers la page de détail au lieu de démarrer le parcours. Le clic n'importe où sur la carte → détails est préservé.
v4.0.013 mai 2026

Bac à sable SQL : créez vos propres tables et requêtes — sans tâche, sans notation. De plus, une mise en page bento large et unifiée sur le classement, la progression, les parcours, les tâches et les sessions.

Ajouté
  • Nouvelle page /sandbox — éditeur Monaco, panneau de schéma, panneau de résultats, onglets de données par table, extraits d'échauffement. Les sessions anonymes expirent après 30 min d'inactivité, les utilisateurs connectés disposent de 7 jours.
  • Fiddles enregistrés : jusqu'à 5 en gratuit, illimité en Premium. Bibliothèque avec recherche, copie du lien, suppression et bascule de confidentialité.
Modifié
  • Mise en page large unifiée sur les pages de l'espace personnel — Mes Fiddles, Progression, Classement, Sessions, Tâches, Parcours et la page de détail de parcours partagent désormais une même structure avec un hero en dégradé et une grille de cartes cohérente.
v3.0.413 mai 2026

Les flèches de changement de position sur le classement sont de retour — auparavant la colonne était vide car il n'existait aucun instantané de référence pour la comparaison.

Corrigé
  • L'indicateur « monté / descendu / inchangé » est de retour à côté de chaque ligne du classement. L'instantané de référence de la semaine précédente a été initialisé ; le cron hebdomadaire habituel continuera à le rafraîchir.
v3.0.313 mai 2026

Correction d'un bug où resoumettre une tâche déjà résolue retirait silencieusement de la Power — le bonus « premier essai » était effacé. La Power de tous les utilisateurs concernés a été recalculée.

Corrigé
  • Resoumettre une solution pour une tâche déjà résolue n'efface plus le bonus « premier essai » — la Power de cette tâche reste identique à celle obtenue juste après la première soumission réussie.
  • Tâche n°107 (répartition des dépenses par genre de livre pour 2005) n'exige plus un ordre de lignes précis — tout ordre est désormais accepté, conformément à la formulation de l'énoncé.
v3.0.212 mai 2026

Correction du panneau de schéma de la base de données sur plusieurs tâches — les lignes de relation orange entre les tables liées n'étaient pas tracées.

Corrigé
  • Sur certaines tâches, le panneau « Schéma » n'affichait pas les relations entre les tables (les flèches orange 1:N) — les relations manquantes ont été ajoutées aux jeux de données.
v3.0.112 mai 2026

Correction de la tâche « Répartir les clients en faibles / moyens / gros dépensiers » : l'exemple de réponse et la solution de référence avaient divergé de l'énoncé — désormais tout utilise l'identifiant client et les segments faible / moyen / élevé.

Corrigé
  • Tâche « Répartir les clients en faibles / moyens / gros dépensiers » (n°757) : l'exemple de réponse et la solution de référence correspondent désormais à l'énoncé — colonnes customer_id, segment, segments low / mid / high, triés par customer_id.
v3.0.012 mai 2026

Une grande refonte « Arena » : une nouvelle page d'accueil, un classement reconstruit de zéro avec un podium et des mises à jour en direct, les points renommés en « Power » avec une marque en forme de hache de combat, des parcours d'apprentissage reconstruits, et une génération de tâches par IA adaptative qui lit vraiment vos soumissions récentes.

Ajouté
  • Un nouvel onglet « Ligue » — les 30 utilisateurs les plus proches de vous en Power. Filtres de difficulté sur l'onglet global (Power recalculée par échelle). Flèches montée / descente à côté de chaque position — évolution d'une semaine sur l'autre.
  • Succès : les emojis remplacés par des icônes vectorielles teintées selon la catégorie, les infobulles du navigateur affichent des noms localisés ; sur /stats, c'est une grille avec des popovers au tap sur mobile. Nouveau succès « 10 Expert ».
  • Survolez un nom dans le classement pour afficher une mini-fiche utilisateur. Un bouton « Partager le rang » — le lien pointe vers votre profil public avec un aperçu OG.
Modifié
  • Page d'accueil réécrite sous la marque « Arena » : un titre percutant « Sharpen SQL. Take the offer. », un tableau des scores en direct dans le hero, une échelle de rangs avec une épingle « You », des sections sur le trainer / les parcours / l'IA / le mode Mock Interview / la progression, et un bandeau de clôture « The axe is in your hand. Swing. ». Adapté au mobile.
  • Points renommés en « Power ». L'éclair est remplacé par une hache de combat — désormais présente dans le logo, le favicon et l'aperçu de partage de lien.
  • La page du classement a été réécrite de zéro : un podium top 3 (or / argent / bronze), une carte de progression personnelle avec une barre vers le rang suivant, une unique barre de filtres collante, l'échelle de rangs juste sous l'en-tête, une ligne « vous » épinglée lorsque vous êtes hors du top 50, et des mises à jour en direct — le tableau réagit en douceur aux réussites des autres sans rechargement.
  • Parcours d'apprentissage reconstruits. Analyst / Backend / QA / Data Engineering — environ 50 tâches sélectionnées chacun : quelques représentants par cellule thème×difficulté, de l'échauffement à EXPERT, orientés vers les problèmes d'entretien réels. Ajout d'un parcours Data Engineering ainsi qu'un parcours dédié à la préparation aux entretiens.
  • Le bouton « Générer pour moi » est désormais réellement adaptatif : il lit vos 40 dernières soumissions, choisit le thème où votre précision récente est la plus faible et calibre la difficulté à votre niveau — un blocage abaisse la suivante d'un cran, une série la fait monter.
  • Les nouveaux visiteurs arrivent par défaut sur le thème « Nuit » (auparavant « Soir »). Si vous avez déjà choisi un thème, votre choix est conservé.
Corrigé
  • Tâche « Dis en un seul chiffre : combien de clients actifs » — la solution canonique exigeait des clients ayant au moins 2 commandes payées alors que la description dit « au moins une fois ». Corrigée pour correspondre à la description.
v2.4.512 mai 2026

Les tâches EXPERT accordent désormais une vraie Power de 75 par réussite (jusqu'à 281 avec les bonus) au lieu des 10 du palier EASY. La Power cumulée des utilisateurs ayant déjà validé une tâche EXPERT a été recalculée rétroactivement.

Corrigé
  • La table des récompenses ne comportait aucune ligne pour EXPERT, le correcteur retombait donc sur une valeur par défaut de 10 et chaque tâche EXPERT rapportait autant qu'une tâche EASY. La base EXPERT est désormais de 75 Power, avec les mêmes multiplicateurs qui s'y cumulent (premier essai ×2, réussite Mock Interview ×1,25, résolution premium ×1,5) — jusqu'à 281 Power par tâche EXPERT. Une migration a rejoué xp_total pour chaque profil selon les règles corrigées, de sorte que quiconque avait déjà résolu une tâche EXPERT récupère automatiquement la Power manquante.
v2.4.412 mai 2026

Fermeture de la faille permettant de « résoudre » une tâche en codant en dur la sortie d'exemple : sur 25 jeux de données, le correcteur vérifie désormais votre requête sur des lignes cachées différentes de celles affichées dans la description de la tâche.

Modifié
  • Les solutions s'exécutent toujours sur les mêmes tables et colonnes qu'avant, mais les lignes du seed de notation diffèrent de l'échantillon visible. Toute réponse réellement basée sur une requête continue de passer, tandis qu'un SELECT … UNION ALL … codé en dur qui copiait les littéraux de l'échantillon est désormais noté « incorrect ». 25 jeux de données du dernier lot du catalogue sont couverts (listes, CTE, window, pivot, DML, expert).
v2.4.39 mai 2026

Correction de deux problèmes de tâches signalés par des apprenants : l'échantillon mal ordonné dans « Étudiants par région » et la description qui avait divergé du schéma dans la tâche sur le chiffre d'affaires net.

Corrigé
  • Tâche « Étudiants par région » (n°357) : l'échantillon est désormais trié par ordre croissant de rn (Jack / Kim / Lars sur la première ligne), et la solution de référence comporte un ORDER BY rn explicite pour produire le même ordre.
  • Tâche « Utilisateurs ayant un chiffre d'affaires net d'au moins 100 » (n°783) : le titre et la description correspondent désormais aux données réelles — des utilisateurs et des événements purchase/refund, et non des produits et sale/refund, avec un seuil de 100 et non de 1000.
v2.4.29 mai 2026

Six tâches avancées sont désormais livrées avec une table pré-initialisée — les solutions ne commencent plus par un préambule CREATE TABLE.

Modifié
  • Six tâches Hard / Expert (UPSERT mono- et multi-colonnes, CTE avec RETURNING, INSERT … RETURNING en lot, file d'attente SKIP LOCKED, dépliage de tableau via UNNEST) rejoignent le reste du catalogue avancé : la table est créée et initialisée dans le jeu de données, et la solution ne contient que l'opération testée plus un SELECT final pour la notation.
Corrigé
  • La description de la tâche « Compteur de vues » ne diverge plus de la sortie attendue : les deux décrivent désormais la même table counters(id, count) et cinq exécutions sur la même ligne.
v2.4.19 mai 2026

Les tâches DDL n'affichent plus de tables sans rapport dans le panneau de schéma latéral.

Corrigé
  • Sur 10 tâches CREATE TABLE (de facile à expert), le panneau de schéma latéral affichait des tables d'un jeu de données sans rapport — par ex. une tâche sur les articles affichait orders. Le panneau est désormais vide, comme il se doit lorsqu'une tâche vous demande de construire la table de zéro.
v2.4.09 mai 2026

115 nouvelles tâches, un sélecteur de thème à trois modes Jour / Soir / Nuit, et une palette sombre plus douce.

Ajouté
  • Le catalogue s'est enrichi de 115 tâches : 20 faciles, 35 moyennes, 45 difficiles et 15 expert — sous-requêtes, CTE, fonctions de fenêtrage, DML/DDL, MERGE, optimisation de requêtes, transactions, JSONB, récursion et LATERAL.
  • Nouveau palier de difficulté « Expert » avec un badge violet et son propre filtre dans le catalogue.
  • Sélecteur de thème à trois modes : Jour (clair), Soir (sombre doux) et Nuit (profond) — à choisir selon la lumière ambiante pour réduire la fatigue oculaire.
Modifié
  • Thème sombre adouci : le fond est passé à un gris-bleu façon Linear (#1B1B1F) au lieu du quasi-noir précédent, le texte principal est passé à zinc-300 — moins d'éblouissement lors des longues sessions.
  • En mode « Nuit », le volet de l'éditeur SQL est trois crans plus sombre que le fond, avec une légère poussée vers le vrai noir — il se lit comme un panneau en retrait de la même famille.
  • L'aide-mémoire de thème dans la tâche tient désormais compte de la difficulté : sur les paliers Hard / Expert, il masque les SELECT/WHERE/ORDER BY/LIMIT de base et fait remonter à la place des motifs avancés — STRING_AGG, ARRAY_AGG, GROUPING SETS, LATERAL, JSONB, index partiels, etc.
  • Les pastilles actives du filtre de difficulté sont passées à un remplissage doux à l'accent de la marque au lieu du noir uni — elles ne cassent plus l'apparence du thème clair.
  • Libellés de difficulté en russe : « Лёгкое » → « Лёгкий », « Среднее » → « Средний », « Сложное » → « Сложный ».
v2.3.08 mai 2026

24 nouveaux articles de blog pour débutants.

Ajouté
  • Couverture des sujets élargie : DML (INSERT/UPDATE/DELETE), DDL (CREATE TABLE/ALTER TABLE), agrégats, DISTINCT, gestion des NULL (CASE WHEN/COALESCE/NULLIF), CTE et sous-requêtes, fonctions de fenêtrage, chaînes et dates.
Modifié
  • Aide-mémoire du trainer : chaque entrée pointe désormais vers son propre article. Auparavant, les quatre entrées de fonctions de fenêtrage renvoyaient à un seul aperçu — ROW_NUMBER, RANK/DENSE_RANK, PARTITION BY et LAG/LEAD ont désormais chacune la leur.
Corrigé
  • Tâche n°114 « Combien de services de cardiologie » — la colonne de sortie attendue a été renommée de count en wards_count pour qu'elle n'entre plus visuellement en conflit avec le mot-clé réservé.
v2.2.28 mai 2026

Fermeture de la faille de calage des réponses : les tâches sont désormais notées sur un jeu de données caché.

Modifié
  • Le correcteur peut désormais exécuter une tâche sur un jeu de données caché. La référence canonique est recalculée sur les mêmes données, de sorte que les solutions correctes passent toujours tandis que les constantes empruntées à l'échantillon visible échouent.
Corrigé
  • La tâche « Membre du club le plus âgé » n'accepte plus un LIMIT codé en dur calé sur l'échantillon visible — seule une requête exprimant « toutes les lignes ayant la date de naissance minimale » passe.
v2.2.18 mai 2026

Peaufinage des cartes de tarifs et corrections du bouton « Se connecter et s'abonner » juste après la v2.2.0.

Modifié
  • Le prix et le bouton d'action dans les cartes Free et Premium sont désormais alignés sur le même Y.
  • Notes de bas de page de prix raccourcies pour Crypto et Visa/MC — seul le nom du réseau subsiste.
Corrigé
  • Le bouton « Se connecter et s'abonner » est de nouveau cliquable pour les utilisateurs déconnectés.
v2.2.08 mai 2026

Ajout des paiements en crypto et par carte Visa/Mastercard internationale, ainsi qu'un renforcement des défenses anti-bots sur le parcours d'authentification.

Ajouté
  • Paiements en crypto via NowPayments — BTC, ETH, USDT et autres. 21 $ par trimestre / 28 $ par semestre.
  • Carte Visa/Mastercard internationale via Paddle avec TVA/taxe de vente automatique. 21 $ / 28 $.
  • Sélecteur de moyen de paiement sur la carte Premium : carte RU, Crypto, Visa/MC. La devise change selon le moyen choisi.
  • Cloudflare Turnstile à la connexion et à l'inscription — invisible pour les humains, bloque les bots.
Modifié
  • Le compte se verrouille pendant 15 min après 5 mots de passe erronés (de façon exponentielle jusqu'à 24 h) avec un compte à rebours explicite.
  • Les erreurs de connexion et d'inscription sont humanisées — fini les « Forbidden » ou « Invalid credentials » bruts.
  • Limite de débit des soumissions : 5/min, 30/15min par utilisateur. N'affecte pas les vraies sessions de résolution.
Corrigé
  • Après la connexion, nous revenons à la page d'où vous veniez — y compris en OAuth (Google, GitHub, Yandex).
  • Se déconnecter depuis une page publique ne vous renvoie plus à la page d'accueil.
v2.1.87 mai 2026

Finalisation de la correction de l'enregistrement de Telegram, GitHub et LinkedIn sur la page de profil. La version précédente avait corrigé le normaliseur de nom d'utilisateur côté backend, mais le composant front court-circuitait onBlur — le PATCH ne partait jamais réellement. Le champ acceptait visuellement la saisie, le serveur restait vide, et après un rechargement le champ était blanc. Désormais, la comparaison au blur utilise la valeur capturée au moment du focus, et non la saisie en cours.

Corrigé
  • Les champs Telegram, GitHub et LinkedIn de la page de profil s'enregistrent à nouveau. Un useEffect écrasait la référence « dernière valeur enregistrée » à chaque frappe, de sorte que le contrôle onBlur comparait la valeur actuelle à elle-même et sautait le PATCH. Le contrôle au blur compare désormais avec un instantané pris au moment du focus.
v2.1.77 mai 2026

Correction de l'enregistrement des identifiants Telegram, GitHub et LinkedIn sur la page de profil : saisir le format de l'espace réservé comme t.me/username était tronqué en quelque chose d'inutilisable comme t.me. Désormais, toute saisie — identifiant nu, @handle, t.me/handle ou https://t.me/handle — est normalisée en un nom d'utilisateur propre.

Corrigé
  • Les champs Telegram, GitHub et LinkedIn de la page de profil s'enregistrent désormais correctement lorsque l'adresse est saisie sans https://. Auparavant, t.me/durov était stocké comme t.me, github.com/octocat comme github.com, car le normaliseur exigeait un schéma http(s):// et, à défaut, coupait la valeur au premier slash.
v2.1.65 mai 2026

Suppression de la bannière d'incitation Premium à faux positif dans le panneau de résultat de résolution : elle se déclenchait sur des tâches gratuites et même pour les utilisateurs Premium. Il s'agissait d'une interface morte dès le départ — les tâches premium sont bloquées à l'ouverture de la tâche, l'éditeur ne les voit donc jamais.

Modifié
  • Dans la fenêtre modale de félicitations « Correct ! », la pastille « +50% Power per solve — go Premium » dispose désormais d'un rembourrage horizontal correct — la couronne et le chevron ne touchent plus les bords de la pastille.
  • AI Mentor reçoit désormais un contexte de tâche compact : dialecte SQL actif, tables, relations, colonnes attendues, sortie d'exemple et diff de la dernière notation. Le SQL de référence n'est utilisé que comme contexte privé pour les explications d'erreurs et les niveaux d'indices ultérieurs.
Corrigé
  • La bannière d'incitation « Tâches d'entretien — Premium » a disparu du panneau de retour. Auparavant, toute erreur côté serveur contenant le mot premium dans sa trace de pile (par ex. une colonne solved_as_premium manquante juste après une migration) déclenchait une correspondance de sous-chaîne et affichait l'incitation — même sur des tâches gratuites et même pour les utilisateurs Premium.
v2.1.55 mai 2026

Premium accorde désormais +50% de Power par tâche résolue — le bonus reste attaché à la tâche pour toujours, même après l'expiration de l'abonnement. AI Mentor ne livre plus la solution au premier indice et fait désormais monter l'aide par tâche. Suppression également du commentaire de départ -- Click ▶ Run dans l'éditeur de la première tâche.

Ajouté
  • L'abonnement Premium accorde un multiplicateur de Power de ×1,5 sur chaque tâche résolue. Le bonus est verrouillé au moment de la résolution, il reste donc dans votre total même si l'abonnement expire par la suite.
  • La fenêtre modale de félicitations « Correct ! » affiche désormais une incitation à la mise à niveau pour les utilisateurs gratuits, juste sous la pastille +Power : « Get +50% Power per solve — go Premium », avec un lien vers /pricing.
Modifié
  • AI Mentor fait désormais monter les indices par tâche. La première demande reçoit une simple orientation, sans nom d'opérateur ; les demandes 2 à 4 ajoutent le concept et la catégorie ; à partir de la demande 5, le mentor peut nommer directement LIKE / WHERE / GROUP BY. Le compteur se réinitialise toutes les 24 heures.
  • Les explications de réponse incorrecte suivent désormais les mêmes paliers d'indices que les indices simples — elles ne révèlent plus d'opérateurs précis dès la toute première soumission échouée.
Corrigé
  • Clôture des derniers points relevés lors de l'audit des tâches SQL : correction de la référence de Tournament Winners, alignement des aperçus TIMESTAMP sur plusieurs tâches, et restauration de la variante PostgreSQL pour une tâche IA.
Supprimé
  • Suppression du commentaire de départ -- Click ▶ Run — see what's in this table dans l'éditeur de la première tâche. Les tâches ouvertes démarrent désormais sur un éditeur vide.
v2.1.45 mai 2026

Refonte des filtres du catalogue de tâches : le statut est devenu un contrôle segmenté à 3 états (Tous / Non résolus / Résolus) avec Non résolus par défaut, ajout d'un filtre de dialecte, les pastilles de thème et d'entreprise affichent désormais leur nombre de tâches actuel, les filtres actifs apparaissent sous forme de pastilles supprimables avec une option « Tout réinitialiser ».

Ajouté
  • Filtre de dialecte dans le catalogue : Tous / PG / MySQL — son propre segment à côté du contrôle de statut.
  • Les pastilles de thème et d'entreprise indiquent désormais combien de tâches correspondent : « Windows (43) », « Tinkoff (5) ». Les pastilles à zéro tâche s'estompent.
  • Ligne des pastilles de filtres actifs : chaque filtre appliqué (recherche, difficulté, statut, dialecte, favoris, thème, tag, entreprise, région) s'affiche sous forme de pastille supprimable ; « Tout réinitialiser » ramène tout aux valeurs par défaut.
Modifié
  • Le filtre de statut de tâche est désormais un contrôle segmenté à 3 états (Tous / Non résolus / Résolus), avec Non résolus par défaut. Il remplace la simple bascule « Masquer les résolus ».
  • Le contrôle de tri a été déplacé dans la barre supérieure — auparavant relégué en bas et caché derrière le défilement.
  • La bascule des favoris a été déplacée vers la barre de filtres supérieure — désormais à côté des autres bascules binaires.
Corrigé
  • Le badge de filtre n'affiche plus « 1 » dès le départ — la vue « Non résolus » par défaut n'est pas comptée comme un filtre appliqué.
v2.1.35 mai 2026

Audit à l'échelle du catalogue : le correcteur ne rejette plus les réponses correctes à cause de la sérialisation DATE vs TIMESTAMP, les aperçus d'échantillon sur plus de 60 tâches correspondent désormais à ce que la solution de référence renvoie réellement, et 5 tâches utilisant CURRENT_DATE / NOW() sont figées sur une référence fixe pour que les aperçus ne dérivent plus jour après jour. Plus une correction de description sur la tâche des transactions mensuelles, issue d'un signalement de bug d'utilisateur.

Corrigé
  • Correcteur : ajout de la normalisation date-en-timestamp (2024-01-01T00:00:00.000Z2024-01-01) — les réponses correctes ne reçoivent plus « le nombre de lignes correspond, le contenu diffère » à cause du formatage du type de retour.
  • Tâche « Transactions et rétrofacturations mensuelles » : la description précise désormais qu'une rétrofacturation appartient au mois de la transaction d'origine, et non à la date du remboursement ; l'aperçu affiche des dates du premier jour du mois au lieu d'horodatages ISO décalés par fuseau horaire.
  • Régénération des aperçus d'échantillon sur plus de 60 tâches : formatage numérique (100100.00), affichage du fuseau horaire (+03+00), DATE-en-TIMESTAMP, INTERVAL-en-objet — l'aperçu correspond désormais à ce que renvoie l'exécuteur en direct.
  • Cinq tâches utilisant CURRENT_DATE / NOW() / CURRENT_TIMESTAMP dans leur seed (n°170, n°601, n°602, n°668, n°693) sont désormais figées sur 2026-05-05 12:00:00 UTC. Les aperçus ne dérivent plus.
v2.1.24 mai 2026

Refonte du blog : recherche, navigation par 10 sections, 7 premiers tutoriels pour débutants. Les noms de commandes dans l'aide-mémoire de la tâche sont désormais des liens cliquables vers les articles. La page des versions a reçu un arbre de versions avec scroll-spy.

Ajouté
  • Blog : recherche dans les titres, le contenu et les tags + barre latérale gauche des sections. La section active se met en surbrillance au défilement.
  • Blog : 7 premiers tutoriels pour débutants — SELECT … FROM, WHERE, ORDER BY, LIMIT, INNER JOIN, LEFT JOIN, alias.
  • Aide-mémoire de thème dans la tâche : les noms de commandes sont désormais des liens bleus vers le tutoriel de blog correspondant — ouverture dans un nouvel onglet.
  • Page des versions : arbre de versions à gauche regroupé par major.minor ; cliquer fait défiler jusqu'à la version et met à jour l'ancre de hachage.
  • Bouton « Copier le SQL » sur chaque ligne de l'onglet Soumissions.
Corrigé
  • Accord pluriel russe partout : « 221 задача », « 2 задачи », « 5 задач » au lieu de l'ancien « 221 задач ».
  • L'aide-mémoire de thème dans la tâche ne tremble plus à l'ouverture — l'espace de la barre de défilement est désormais réservé.
  • Les tableaux Markdown dans les articles de blog s'affichent désormais comme des tableaux HTML au lieu d'une seule ligne de texte brut.
v2.1.14 mai 2026

Passe qualité sur tout le catalogue : 23 tâches non exécutables réparées, 66 descriptions anglaises réécrites, descriptions et aperçus d'échantillon alignés sur plusieurs dizaines d'autres. Plus une correction signalée par un utilisateur.

Modifié
  • Les aperçus d'échantillon sur plus de 50 tâches correspondent désormais à ce que renvoie la solution de référence.
  • Fusion des tags d'entreprise en double dans les pastilles de filtre de tâches.
Corrigé
  • Réparation de 23 tâches (pharma-*, loyal-*, hotel-*, qa-*) qui ne pouvaient pas être résolues à cause d'une incohérence schéma/seed.
  • Réécriture des descriptions anglaises sur 66 tâches lc-* / lc2-* qui ne livraient auparavant qu'une ébauche ou un fragment.
  • La tâche « Salles réservées le 2 septembre 2019 » n'accepte plus la réponse incorrecte.
  • Dix tâches dont la description divergeait de la solution de référence sont désormais cohérentes.
  • Sept tâches Tochka livraient l'énoncé d'un autre problème — elles ont été réécrites.
v2.1.04 mai 2026

69 nouvelles tâches tirées de vrais entretiens d'embauche du marché russe (Yandex, Tinkoff, Sber, VTB, Alfa, VK, Ozon, Avito, Magnit, Samokat et 23 autres entreprises) — construites autour de l'univers de types PostgreSQL plus large : UUID, JSONB, ENUM, INTERVAL, TSTZRANGE, INET, NUMERIC et POINT. Plus des corrections clés issues de signalements d'utilisateurs et un indicateur « Quoi de neuf » en pastille rouge dans la barre latérale.

Ajouté
  • 69 nouvelles tâches tirées de vrais entretiens dans des entreprises russes. 33 employeurs : Yandex, Tinkoff / T-Bank, Sber / SberMarket, VTB, Alfa-Bank, Gazprombank, Rosbank, Sovcombank, MTS / MTS Bank, Otkritie, Renaissance Bank, Megafon, VK, Ozon, Avito, Magnit, Lenta, Wildberries, Cian, ivi, Delimobil, Aviasales, Samokat, Domclick, Lesta, Skypro, Uchi.ru, Sravni.ru, Vizor, CloudReports et Yandex Practicum. Toutes étiquetées Interview, accessibles aux Premium.
  • Types PostgreSQL riches dans les schémas de tâches. La plupart des tâches utilisaient INT + VARCHAR(100) — convenable pour des exemples scolaires, loin de la production. Les nouvelles tâches introduisent UUID pour les clés primaires de clients et de commandes, NUMERIC(15,2) pour l'argent et NUMERIC(12,4) pour les taux de change, TIMESTAMPTZ pour les événements, INTERVAL pour les durées d'appels et de sessions, TSTZRANGE / DATERANGE / NUMRANGE pour les historiques SCD2 et les fenêtres de validité, JSONB pour les métadonnées et les charges utiles d'événements, ENUM (avec CREATE TYPE explicite) pour les statuts et catégories, INET pour les IP dans les tâches antifraude, POINT pour les coordonnées GPS, TEXT[] / INTEGER[] pour les tags et les tableaux d'identifiants. Ainsi, le trainer vous expose aux mêmes types que vous rencontrerez en production.
  • Indicateur en pastille rouge sur l'entrée « Quoi de neuf » de la barre latérale — apparaît lorsqu'une nouvelle version a été publiée que vous n'avez pas encore ouverte. La pastille disparaît après une visite de /releases (l'indicateur réside dans le localStorage de ce navigateur). Auparavant, l'indicateur n'existait que dans la barre de navigation supérieure ; dans les dispositions à barre latérale uniquement, il était inaccessible.
Modifié
  • Rendu correct des nouveaux types dans le tableau de résultats de requête. Auparavant, les colonnes JSONB, INTERVAL et POINT s'affichaient comme « [object Object] » et les tableaux (TEXT[], INTEGER[]) se réduisaient à des chaînes jointes par des virgules — la structure était invisible. Désormais, JSONB et les tableaux s'affichent en JSON lisible, INTERVAL en 1d 02:30:00, POINT en (x, y). Les booléens et les UUID conservent leur rendu textuel.
  • Les diagrammes ER de la page de tâche ont reçu des entrées de palette pour les nouveaux types : UUID violet, JSONB jaune, INTERVAL pourpre (même famille que les autres types date/heure), TSTZRANGE / DATERANGE / NUMRANGE rose, INET cyan, POINT rose, ENUM personnalisés rosé. Auparavant, ces types retombaient dans le gris par défaut et étaient impossibles à distinguer des simples INT / VARCHAR.
  • Les six tâches corrigées ci-dessus ont aussi reçu un schéma enrichi dans le même style que le nouveau lot d'entretiens : clés primaires UUID, charges utiles JSONB, types ENUM pour sexe / catégories / statuts, NUMERIC(15,2) à la place d'INT pour les salaires et les prix, INTERVAL pour les durées. La formulation des tâches a été légèrement ajustée pour motiver les nouveaux types, mais le problème sous-jacent reste inchangé. C'est la première étape de la mise à niveau des tâches plus anciennes — d'autres suivront dans les prochaines versions.
Corrigé
  • Correction d'une poignée de tâches plus anciennes signalées par les utilisateurs. « Project Employees II » — le diagramme ER montrait Employee + Department au lieu de Project + Employee, alors que le schéma sous-jacent était correct ; le diagramme a été remis en cohérence. « Reported Posts » — la description n'indiquait pas que le motif du signalement réside dans la colonne extra : c'est désormais le cas. « Sales Analysis I » — la solution de référence utilisait SUM(price) alors que le schéma comporte une colonne quantity, ce qui prêtait à confusion ; reformulée en SUM(quantity * price), plus proche d'un chiffre d'affaires réel. « Swap Salary » — la tâche était reliée au mauvais jeu de données (Employee + Department au lieu de Salary(id, name, sex, salary)), la rendant insoluble ; reliée au jeu de données canonique. La même dérive ER silencieuse dans « Project Employees III » et « Reported Posts II » a reçu la même correction.
v2.0.03 mai 2026

Version majeure : une nouvelle navigation par barre latérale gauche, le mode strict Mock Interview avec un bonus de +25% de Power, des profils publics et des amis, des notifications par e-mail, des tags d'entreprise aux couleurs de marque, des filtres supplémentaires et un bloc de cours partenaires. Plus une importante correction de confidentialité entre comptes et des dizaines de raffinements UX.

Ajouté
  • Bloc de cours partenaires. Sur la page des tâches (écrans larges), une colonne de droite affiche une sélection de cours partenaires ; sur mobile, c'est un carrousel horizontal au-dessus de la liste. Les cartes renvoient vers les pages de destination des partenaires avec des tags UTM — pour nous, un moyen de maintenir le prix de l'abonnement bas en couvrant les coûts d'infrastructure.
  • Nouveau mode Mock Interview — une simulation stricte d'un véritable entretien. Toute violation isolée (changement d'onglet, collage, sortie du plein écran, perte de focus de la fenêtre > 1 seconde) fait échouer automatiquement la session. Les indices, AI Mentor et l'aide-mémoire sont masqués et verrouillés. Durées : 5 / 10 / 15 / 30 / 60 minutes. Palier gratuit — 1 tentative par jour ; Premium — illimité. Pendant une session active, la navigation environnante (barre latérale, « Tâches », « Meilleures solutions », « Tâche suivante », « Quitter le parcours », Préc./Suiv./Aléatoire) est verrouillée — la seule sortie est le bouton « Terminer » explicite ou la fermeture de l'onglet (qui abandonne automatiquement la session).
  • +25% de Power pour chaque tâche validée en mode Mock Interview — le bonus est par tâche et signalé sur le rapport de fin de session. Le classement comporte désormais une colonne informative « Mock » (le même décompte est affiché sur la carte de profil et sur /u/<username>) ; elle n'affecte pas l'ordre de tri basé sur la Power.
  • Profils publics sur /u/<username> : choisissez un identifiant court et activez la bascule publique — tout visiteur anonyme voit votre rang, votre Power, votre série actuelle, le nombre de succès, la carte de chaleur d'activité et les liens GitHub / Telegram / LinkedIn. Aucune donnée privée n'est exposée.
  • Amis : ajoutez des utilisateurs par leur identifiant public, gérez les demandes entrantes et sortantes, consultez un onglet de classement des amis dédié affichant leur Power, leur série et leurs tâches résolues.
  • Favoris : chaque carte de tâche comporte désormais une étoile — cliquez dessus et la tâche atterrit dans le filtre « Favoris uniquement ». La liste réside sur le serveur, liée à votre compte, et survit aux changements de navigateur.
  • Notifications par e-mail (bascules dans le profil). « Sauvez votre série » — rappel du soir lorsque votre série est ≥ 3 jours et que vous n'avez rien résolu aujourd'hui. « Résumé hebdomadaire » — récapitulatif du samedi matin avec les tâches résolues la semaine passée, la série actuelle et la catégorie la plus faible.
  • Les utilisateurs Premium sont visuellement signalés partout où apparaissent les avatars : un anneau en dégradé holographique (classement, amis, profil, barre latérale, page publique /u/<username>) ; un petit badge Couronne dans le coin des grands avatars. N'affecte pas l'ordre de tri.
  • Tags d'entreprise aux couleurs de marque sur les cartes de tâches : jaune pour Yandex / Tinkoff / Beeline, vert pour Sberbank / Spotify / OpenAI, bleu pour VK / Ozon / Google / Meta, rouge pour MTS / Alfa / Tesla, violet pour Stripe / Skypro / Wayfair, orange pour Amazon / Alibaba, etc. Auparavant, chaque tag était d'un même violet.
  • Pastilles de clause SQL supplémentaires dans le filtre « Thème » de la page des tâches : aux côtés des 8 grandes catégories (SELECT, JOIN, sous-requêtes, window, agrégats, CTE, DML, DDL), vous pouvez désormais activer GROUP BY, COUNT, HAVING. Mélangez-les avec les catégories pour un filtrage plus précis.
  • Le panneau « Schéma BD » de la page de tâche peut désormais être replié. La bascule à côté du titre de la tâche masque la colonne et libère de la largeur pour l'éditeur et le tableau de résultats. L'état de repli est mémorisé par navigateur, de sorte que le schéma s'ouvre de la même façon sur la tâche suivante.
  • 8 nouvelles tâches d'entretien de Tochka — allant d'EASY à HARD. Scénarios CRM (trouver les clients ayant une demande active), calculs de portefeuille (structure, durée moyenne pondérée jusqu'à l'échéance, dynamique de la valeur), requêtes sur les obligations avec fonctions de fenêtrage. Solutions pour PostgreSQL et MySQL.
  • Section blog sur /blog. Tutoriels longs — démarrage avec un approfondissement des fonctions de fenêtrage. Contenu bilingue, URL en slug, cartes OG pour le partage sur les réseaux sociaux. Accessible depuis le pied de page et le bas de la barre latérale.
  • Page 404 personnalisée. L'ancienne page par défaut de Next.js affichait du texte noir sur blanc — invisible en mode sombre. La nouvelle page utilise les jetons de thème et réside dans la structure partagée, gardant la navigation à portée.
Modifié
  • Navigation repensée. Pour les utilisateurs connectés au sein de l'application, la navigation principale est passée dans une barre latérale gauche — Trainer, Progression, Classement et les autres sections y résident, avec la Power + la série sous votre avatar et les bascules langue/thème en bas. La page d'accueil, les tarifs et les parcours d'authentification conservent la barre supérieure fine. Les pages utilitaires (Quoi de neuf / Signaler un bug / Blog) héritent de l'habillage d'où vous venez.
Corrigé
  • L'anneau en dégradé Premium autour des avatars s'affiche désormais sur tous les onglets du classement — auparavant, l'anneau n'apparaissait que sur l'onglet « Toujours » et disparaissait silencieusement sur « Semaine » et « Mois » car le backend n'émettait pas l'indicateur d'abonnement pour les classements périodiques.
  • Les modifications de nom et d'avatar dans votre profil se reflètent désormais immédiatement dans la barre latérale — aucun rechargement de page nécessaire. Auparavant, l'ancienne carte utilisateur pouvait persister jusqu'à un rafraîchissement complet.
  • Fuites de données entre comptes lors du changement d'utilisateur dans le même navigateur. Auparavant, après une déconnexion / connexion avec un autre compte, les éléments suivants pouvaient persister : fils de discussion AI Mentor, brouillons SQL dans l'éditeur, indicateurs « résolu » par tâche, sessions Mock Interview actives, compteur de génération IA, cache des favoris. Désormais, la déconnexion et chaque chemin de connexion (formulaire, OAuth, vérification d'e-mail) efface tout ce qui est lié à l'utilisateur précédent.
  • Le lien « Classement des amis » depuis le profil atterrit désormais directement sur l'onglet Amis — auparavant, il vous déposait sur le classement global. La voie pour débutants « Commencez ici » ne réapparaît plus après que vous l'avez fermée ; auparavant, la fermeture se réinitialisait à chaque déconnexion / connexion.
  • Des dizaines de raffinements de mise en page mobile et d'interaction : une fenêtre modale de rapport de fin de session plus compacte, un espacement correct des filtres sur les écrans étroits, la bannière de retour ne chevauche plus le panneau latéral à 1024px, des champs nom + e-mail sur la page de signalement de bug pour les soumissions anonymes.
v1.2.93 mai 2026

Correctif UX de l'éditeur sur les écrans étroits : la fenêtre contextuelle « Paramètres de l'éditeur » n'est plus rognée par le panneau de code et ne déborde plus du bord de la zone d'affichage sur mobile. Le même bouton d'engrenage que sur ordinateur figure désormais aussi dans la barre d'outils mobile, et le réglage de taille de police s'applique enfin à l'éditeur mobile.

Corrigé
  • La fenêtre contextuelle « Paramètres de l'éditeur » pouvait être rognée par les bords de la page et n'avait pas de défilement interne — sur un portable étroit ou un téléphone, la moitié des paramètres était tout simplement invisible. La fenêtre contextuelle s'affiche désormais par-dessus toute la page (via un portail), se cale automatiquement dans la zone visible et fait apparaître une barre de défilement interne lorsque son contenu dépasse la hauteur de la zone d'affichage. L'en-tête avec le titre et le bouton de fermeture reste fixe pendant le défilement.
  • Sur la vue mobile de l'éditeur (≤1024px), la barre d'outils ne comportait pas l'engrenage des paramètres de l'éditeur — « Taille de police » n'était accessible que depuis l'ordinateur. L'engrenage se trouve désormais à côté de PG/MySQL et de Format, et le réglage de taille de police met réellement à l'échelle la saisie de l'éditeur mobile.
v1.2.71 mai 2026

Correctif issu d'un signalement de bug : la tâche n°240 (« Staff Bonuses ») affichait le mauvais schéma — elle montrait Employee + Department au lieu du vrai Employee + Bonus, rendant l'énoncé incompréhensible.

Corrigé
  • Tâche n°240 « Staff Bonuses » : le visualiseur de schéma affichait des tables obsolètes Employee + Department (avec les champs department_id, manager_id) et un onglet Department creux. Le bac à sable et la solution de référence étaient corrects depuis le début — seules les métadonnées du visualiseur étaient erronées. Désormais, le schéma affiche les vraies tables Employee + Bonus avec la relation Bonus.empId → Employee.empId.
v1.2.61 mai 2026

Jeux de données enrichis sur 268 des 339 tâches — tables sources plus complètes, lignes plus significatives dans la sortie attendue, les tâches ne semblent plus cassées.

Modifié
  • Enrichissement massif des jeux de données : 268 des 339 tâches ont reçu des données de seed plus complètes — généralement 6 à 12 lignes dans les tables principales au lieu de 2 à 4, avec de la variété le long des axes filtre/JOIN/GROUP BY que la solution de référence exerce. 137 jeux de données uniques modifiés. Les solutions de référence et les schémas sont inchangés. La progression des utilisateurs est préservée — les tâches déjà résolues restent résolues, la Power et les succès ne sont pas recalculés.
  • Chaque tâche enrichie a été validée : la solution de référence a été exécutée sur le nouveau seed via l'exécuteur, sample_output régénéré à partir du résultat réel.
Corrigé
  • Tâche n°38 (well-paid-employees) — à l'origine un correctif de la v1.2.4, désormais incluse dans la passe plus large.
v1.2.51 mai 2026

Correctif issu d'un signalement de bug : le panneau « Échantillon de sortie attendue » précise désormais que le nombre de lignes qui s'y trouve ne doit pas nécessairement correspondre aux tables du schéma.

Corrigé
  • Ajout d'un avertissement au-dessus du panneau « Échantillon de sortie attendue » : « voici à quoi ressemble une réponse correcte — son nombre de lignes lui est propre, il ne doit pas nécessairement correspondre aux tables du schéma ». Auparavant, les utilisateurs comptaient les lignes dans l'une des tables du schéma et supposaient que la tâche était cassée lorsque les chiffres différaient.
v1.2.430 avr. 2026

Correctif issu d'un signalement de bug : la tâche n°38 « Salaire supérieur à celui du manager » s'exécute désormais sur un jeu de données convenable comportant trois cas réels. Plus un petit point orange sur « Quoi de neuf ? » lorsqu'une nouvelle version est publiée.

Ajouté
  • Un petit point orange apparaît sur l'élément de navigation « Quoi de neuf ? » lorsqu'une nouvelle version est publiée. Une visite de /releases l'efface jusqu'à la prochaine version.
Corrigé
  • Tâche n°38 (well-paid-employees) : le jeu de données était trop pauvre — 6 employés et un seul cas « un subordonné gagne plus que son manager », ce qui donnait l'impression que les données étaient erronées. Étendu à 9 employés répartis sur deux services avec trois cas clairs (Eve > Alice, Frank > Dave, Henry > Bob).
v1.2.330 avr. 2026

Nouvelle page « Signaler un bug » avec pièces jointes de captures d'écran, un groupe de navigation secondaire, et une voie « Commencez ici » plus compacte sur mobile.

Ajouté
  • Nouvelle page « Signaler un bug » dans la barre de navigation : formulaire sujet + description avec jusqu'à 5 captures d'écran / courts clips (glisser-déposer pris en charge). Les signalements arrivent dans notre boîte de réception pour un tri rapide.
  • La barre de navigation reçoit un groupe secondaire — « Quoi de neuf ? » et « Signaler un bug » — séparé des onglets principaux par un fin séparateur vertical.
Modifié
  • La voie pour débutants « Commencez ici » est plus compacte sur mobile — titre plus court, description masquée, cartes plus étroites. Libère de l'espace pour la liste des tâches elle-même.
Corrigé
  • La voie pour débutants « Commencez ici » ne clignote plus une fraction de seconde à l'ouverture de la page des tâches — elle ne s'affiche désormais qu'après la résolution de /progress.
  • Le point fort des notes de version (la ligne unique en haut) rend désormais correctement les accents graves — auparavant, il affichait le littéral « ?lang= » au lieu d'une pastille de code stylisée.
  • La barre de défilement verticale fantôme sur la page « Parcours d'apprentissage » a disparu — min-h-screen associé à la barre de navigation imposait environ 60px de hauteur supplémentaire même lorsque le contenu tenait.
v1.2.230 avr. 2026

Peaufinage UX sur tout le trainer, plus un paramètre d'URL ?lang= pour la publicité et les liens directs vers une langue spécifique.

Ajouté
  • Arrivez sur une langue précise via ?lang=en ou ?lang=ru dans l'URL : https://sql.coderang.dev/?lang=en. Pratique pour la publicité et le partage de liens vers une langue spécifique ; le choix est mémorisé pendant un an.
Modifié
  • Lorsque les indices IA quotidiens sont épuisés, le bouton « Expliquer » devient « Aide-mémoire » et ouvre la référence de thème.
  • L'étoile de favori est désormais visible sur mobile et faiblement visible sur ordinateur, au lieu d'être masquée jusqu'au survol.
  • La description de la tâche ne saute plus lorsque l'aide-mémoire se déploie. L'étoile est plus lumineuse au survol.
  • Sur les tâches DDL, le panneau de schéma affiche « pas de table de départ ; créez-les » au lieu d'un canevas vide.
  • Le bouton IA ne pulse désormais réellement que sur les erreurs (la classe d'animation n'avait jamais été définie auparavant).
  • La Power et la Série dans la barre de navigation s'initialisent depuis le localStorage avant la récupération serveur — fini le clignotement « 0 ⚡ ».
  • Le compteur de génération IA ne se réinitialise plus à 0 après la redirection vers la tâche générée.
  • Améliorations mobiles : badges de difficulté de largeur égale (étoile alignée), le texte de l'onglet inférieur tient, animation d'échelle du compteur quotidien, infobulle de l'icône de série, règles de pluriel russe.
Corrigé
  • Les noms d'entreprises russes (Сбербанк, Яндекс, Авито…) s'affichent désormais en translittération latine (Sberbank, Yandex, Avito) dans l'interface anglaise ; le cyrillique reste en russe.
  • Les noms des entrées de l'aide-mémoire (Alias, Sous-requête scalaire, etc.) se traduisent désormais correctement au changement de langue.
  • Le classement hebdomadaire/mensuel applique désormais le bonus premier essai ×2 et ignore les resoumissions, conformément au calcul de la Power cumulée. Auparavant, la vue par période affichait environ la moitié du cumul — un bug dans le calcul, pas dans les données.
  • Suppression d'un onglet Solutions mort — aucun bouton ne l'activait mais il dupliquait le chargement.
  • Les accents graves ne laissent plus d'espace avant la ponctuation finale (« Action. »).
  • Les états vides du volet de résultats se traduisent désormais correctement en anglais.
v1.2.130 avr. 2026

Peaufinage des tâches de modification de données et du rendu général des descriptions.

Ajouté
  • Avertissement pour les tâches DDL/DML : les tâches UPDATE/INSERT/DELETE et CREATE/ALTER/DROP affichent désormais une courte mention « pas de SELECT final nécessaire » — fini de deviner ce qu'il faut produire.
Modifié
  • L'aide-mémoire de thème respecte désormais le type de tâche : les tâches DML n'affichent plus SELECT/ORDER BY/LIMIT, les tâches DDL n'affichent que les commandes de modification de schéma.
  • Les jetons entre accents graves dans les descriptions de tâches (\id = 4\, \users.email\) s'affichent désormais comme des pastilles de code à l'accent au lieu de texte brut — les descriptions se lisent exactement comme les auteurs les écrivent.
  • Les blocs de code de l'aide-mémoire ont désormais une barre d'accent à gauche et une bordure subtile — ils se lisent comme de vrais extraits de code au lieu de pâtés gris.
v1.2.030 avr. 2026

Intégration des nouveaux venus : une voie « Commencez ici », du SQL de départ sur votre première tâche, et un aide-mémoire de thème dans chaque tâche. Les indices de réponse incorrecte sont désormais spécifiques et n'épuisent pas votre quota IA.

Ajouté
  • Voie « Commencez ici » en haut de la page des tâches — 8 tâches SELECT simples pour les débutants. S'affiche jusqu'à ce que vous résolviez quelque chose ; défilement par glissement avec un curseur de préhension.
  • SQL de départ dans l'éditeur. La toute première tâche que vous ouvrez préremplit SELECT * FROM <first_table> LIMIT 5; pour que vous puissiez cliquer sur ▶ immédiatement et voir à quoi ressemblent les données.
  • Aide-mémoire de thème. Le panneau de tâche comporte désormais un bloc de référence repliable avec les commandes SQL pertinentes, la syntaxe et une explication en une ligne — adapté par thème : SELECT, JOIN, agrégats, sous-requêtes, window, CTE, DML, DDL.
Modifié
  • La bannière de réponse incorrecte est désormais spécifique : elle nomme les colonnes en trop/manquantes, les écarts de lignes, les problèmes de tri et les erreurs SQL courantes. S'exécute localement, sans consommer de quota IA.
v1.1.030 avr. 2026

Autocomplétion tenant compte des alias dans l'éditeur SQL et améliorations majeures de la mise en page mobile.

Ajouté
  • Page des versions : l'historique des mises à jour est désormais visible sur /releases.
  • Autocomplétion tenant compte des alias. Après <alias>., les suggestions se limitent aux colonnes de cette seule table. Les alias eux-mêmes se complètent avec Tab.
  • . est désormais un caractère déclencheur : les suggestions apparaissent automatiquement après lui, sans avoir besoin de Ctrl+Space.
Modifié
  • Le menu mobile se superpose désormais au contenu au lieu de pousser la page vers le bas. Il se ferme par un appui à l'extérieur.
  • Plus de 300 descriptions de tâches réécrites : ajout d'un contexte métier, liste des colonnes de sortie, tri et arrondi rendus explicites.
Corrigé
  • La description de tâche mobile défile désormais correctement lorsque le texte est long. Auparavant, elle se bloquait et empêchait l'accès aux onglets en bas.
  • La barre d'onglets inférieure du trainer est désormais toujours visible sur n'importe quel navigateur mobile (Yandex Browser, MIUI, Samsung Internet). Auparavant, elle se rognait sous la zone d'affichage.
  • Le menu mobile est désormais entièrement opaque. Auparavant, 5% du contenu d'arrière-plan transparaissait sur les navigateurs sans prise en charge de backdrop-filter.
  • Sur les écrans étroits (320px et moins), le menu déroulant de tri des tâches ne déborde plus du bord droit.
  • Ancien bug d'autocomplétion : taper t.e après FROM employee t insérait t.employee.salary (SQL invalide). L'alias est désormais respecté.
v1.0.010 avr. 2026

Première version stable de SQL Arena.

Ajouté
  • 259 tâches SQL sélectionnées réparties sur 6 catégories : SELECT, JOIN, agrégat, sous-requête, window, DML.
  • 96 tâches d'entretien des plus grandes entreprises tech (Google, Meta, Amazon, Stripe, etc.).
  • Prise en charge de deux dialectes SQL — PostgreSQL et MySQL avec basculement instantané.
  • Génération de tâches par IA : des tâches uniques adaptées à votre niveau de compétence.
  • AI Mentor : des indices contextuels sans dévoiler la réponse.
  • 3 parcours d'apprentissage : des cheminements structurés des bases au SQL avancé.
  • Exécution SQL en temps réel dans un environnement en bac à sable avec notation du résultat (diff de colonnes/lignes/ordre).
  • Authentification OAuth via GitHub, Google, Yandex, plus inscription par e-mail/mot de passe.
  • Classement basé sur l'XP (Power), profils utilisateurs, succès, thèmes sombre et clair.
  • Abonnement Premium avec intégration YooKassa et limitation de débit anti-bots.
  • Diagrammes de schéma ER interactifs, éditeur Monaco avec coloration syntaxique et formatage SQL.
  • Interface bilingue : russe et anglais.