Versiuni

Ce e nou

Istoricul actualizărilor SQL Arena. Cele mai noi versiuni sus.

v5.2.05 iun. 2026Curentă

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

Adăugat
  • 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.
Modificat
  • 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 iun. 2026
Reparat
  • 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 iun. 2026
Modificat
  • 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 iun. 2026
Reparat
  • Removed a stray privacy notice banner on the user profile page.
v5.1.03 iun. 2026

Interfața vorbește acum toate limbile UE — 21 de limbi noi.

Adăugat
  • Au fost adăugate 21 de limbi UE: germană, franceză, italiană, neerlandeză, poloneză, română, greacă, cehă, maghiară, suedeză, daneză, finlandeză, slovacă, bulgară, croată, lituaniană, slovenă, letonă, estonă, irlandeză și malteză. Alege una din selectorul de limbă sau este detectată automat în funcție de țara și limba browserului tău.
  • Pagina „Raportează o eroare” este acum „Feedback” (la /feedback) cu două file: „Raportează o eroare” și „Sugerează o îmbunătățire”. Sugestiile de îmbunătățire ajung la echipă la fel ca rapoartele de erori.
Modificat
  • În setările profilului apare acum data de încheiere a abonamentului, iar formularea „plată unică” a fost eliminată.
  • Meniul derulant al selectorului de limbă este acum mai compact.
Reparat
  • Profilurile se deschid din nou din clasament pentru utilizatorii autentificați — confidențialitatea ascunde un profil doar de vizitatorii anonimi. Identificatorul URL al profilului nu mai poate fi șters, așa că orice profil rămâne accesibil prin link.
v5.0.11 iun. 2026
Reparat
  • Plata cu un card străin (fila Visa/MC) pe site-ul rusesc este acum calculată corect în USD și procesată prin Paddle, în loc să deschidă YooKassa cu o sumă în ruble.
v5.0.01 iun. 2026

Certificare: treci un examen cronometrat și obține un certificat de nivel verificabil.

Adăugat
  • Examene de certificare: trei niveluri (Foundations / Practitioner / Expert), câte 8 sarcini fiecare, un cronometru pentru fiecare sarcină, prag de promovare 7 din 8. Fiecare încercare primește propriul set de date, astfel încât răspunsurile nu pot fi memorate în avans.
  • Un certificat verificabil cu un cod QR care duce la profilul tău public; o secțiune de certificate apare acum în profil.
  • Șterge-ți contul direct din setările profilului.
Modificat
  • Setările profilului au fost reproiectate într-un stil curat de listă pe secțiuni; utilizatorii Premium primesc un inel animat în jurul avatarului.
v4.1.1129 mai 2026
Modificat
  • Evaluarea a fost consolidată pe 324 de sarcini: rulează acum pe un set de date ascuns, așa că nu mai poți trece potrivind exemplul vizibil.
v4.1.1029 mai 2026
Modificat
  • Autocompletarea din editor sugerează acum numele de CTE declarate prin WITH atunci când scrii FROM/JOIN.
v4.1.929 mai 2026
Modificat
  • AI Mentor vede acum eroarea și interogarea curentă chiar și după Run — un nou buton „Explică eroarea” îți permite să discuți orice eroare, inclusiv erorile de sintaxă.
v4.1.829 mai 2026
Modificat
  • Sarcina #91: evaluarea rulează acum pe un set de date ascuns — nu mai poți trece potrivind exemplul vizibil (de ex. prin LIMIT sau o lungime codificată direct).
v4.1.726 mai 2026
Modificat
  • Sarcina #13: a fost eliminat din enunț indiciul care dezvăluia filtrul — acum deduci singur soluția.
v4.1.623 mai 2026
Modificat
  • Skill Map acoperă acum toate categoriile de sarcini (au fost adăugate CTE, DDL, tranzacții, optimizare) și este mai mare și mai ușor de citit.
Reparat
  • Indiciul „ce să îmbunătățești” din Skill Map indică acum tema cu cele mai multe sarcini nerezolvate, în loc de una aleatorie.
  • Graficul de activitate anual afișează din nou numele complete ale lunilor, în loc să le scurteze la o singură literă.
v4.1.523 mai 2026
Reparat
  • Soluțiile care returnează un interval de timp (de ex. diferența dintre două ore) nu mai dau eroare la trimitere.
v4.1.421 mai 2026
Reparat
  • Sarcina #88: datele au fost corectate — plecările din Paris au acum durate distincte, în loc de trei rânduri identice.
v4.1.320 mai 2026
Reparat
  • Anularea (Ctrl+Z) în editor păstrează acum un istoric separat pentru fiecare filă de interogare.
v4.1.220 mai 2026
Modificat
  • Sarcina #624: enunțul precizează acum că prețul mediu trebuie rotunjit la 2 zecimale.
Reparat
  • Sugestiile editorului SQL nu mai dublează aceleași variante după navigarea între sarcini.
  • Sarcina #621: cluburile fără membri apar acum în rezultat cu venit zero.
v4.1.120 mai 2026
Modificat
  • Dificultatea sarcinii #831 a fost schimbată din EXPERT în MEDIUM.
v4.1.016 mai 2026

SQL Arena este acum multilingv: engleză, spaniolă și portugheză, fiecare cu propriile URL-uri de pagină și detectare automată a regiunii.

Adăugat
  • Selector de limbă: rusă, engleză, spaniolă (Spania și America Latină) și portugheză.
  • La prima vizită, site-ul se deschide în limba regiunii tale, iar alegerea este reținută.
  • Fiecare limbă are propriile URL-uri de pagină (/en, /es, /es-419, /pt-br) care pot fi distribuite în siguranță.
  • Plata Premium în moneda ta locală: RUB, USD, EUR sau BRL, în funcție de regiune.
Modificat
  • Site-ul în engleză este complet acceptat; traducerile în spaniolă și portugheză sunt în curs de lansare.
v4.0.1118 mai 2026

Sarcinile de creare a tabelelor acceptă orice formă validă, indiciile de eroare sunt acum relevante, iar o sarcină cu răspuns ambiguu a fost corectată.

Reparat
  • Sarcina „cea mai populară pereche de cursuri”: datele de test permiteau mai multe răspunsuri la fel de valide, în timp ce evaluatorul accepta doar unul. Sarcina are acum un singur răspuns corect.
  • Sarcinile CREATE TABLE respingeau o soluție corectă atunci când cursantul denumea o constrângere (de ex. CONSTRAINT ... PRIMARY KEY). Evaluarea compară acum structura tabelului — numele constrângerilor sunt ignorate.
  • O sarcină eșuată de creare a tabelului afișa un indiciu irelevant „adaugă ORDER BY”. Indiciul este acum la obiect — despre coloane, tipuri, NOT NULL și chei.
v4.0.1017 mai 2026

Sarcinile de modificare a datelor se rezolvă exact așa cum spune enunțul — fără un SELECT de verificare nedocumentat.

Reparat
  • Sarcinile INSERT/UPDATE/DELETE și de tranzacții (inclusiv UPSERT, MERGE, SKIP LOCKED) nu mai cereau un SELECT de verificare nedocumentat. Acestea sunt acum evaluate după starea finală a tabelului, iar pagina sarcinii afișează nota „nu este nevoie de un SELECT la final”.
  • Top soluții: conturile de serviciu nu mai apar în listă — la fel ca în clasamentul public.
v4.0.917 mai 2026

Sarcinile de creare a tabelelor și indecșilor se rezolvă acum exact așa cum spune enunțul — fără SELECT nedocumentat; reîmprospătarea live a clasamentului funcționează din nou.

Reparat
  • Sarcinile DDL (CREATE TABLE, ALTER, CREATE INDEX, chei externe) nu mai cereau un SELECT de verificare nedocumentat. Acestea sunt acum evaluate după schema finală a bazei de date, iar pagina sarcinii afișează nota „nu este nevoie de un SELECT la final”.
  • Pagina de clasament: reîmprospătarea live a fost restabilită — conexiunea WebSocket a clasamentului nu mai cade.
  • Diagrama schemei: unele sarcini nu afișau legături între tabele — săgețile cheilor externe apar acum pe diagramă.
  • Dialogul „Corect!” nu mai afișează o scădere de rang ca o promovare în sus — insigna de rang apare doar la o promovare reală.
v4.0.816 mai 2026

Sarcinile CREATE / ALTER TABLE și alte soluții cu mai mulți pași pot fi din nou trimise — limita de instrucțiuni pe trimitere era prea strictă.

Reparat
  • Limita de instrucțiuni pe trimitere a fost ridicată de la 3 la 20: sarcinile DDL (CREATE TABLE, ALTER, indecși, triggere) și DML cu mai mulți pași nu mai sunt respinse cu o eroare „prea multe instrucțiuni”.
v4.0.716 mai 2026

Varianta MySQL a sarcinilor din catalog este din nou sincronizată cu PostgreSQL — unele sarcini MySQL erau evaluate pe date învechite.

Reparat
  • Varianta MySQL a sute de sarcini rula pe un set de date învechit — datele seed au fost resincronizate, iar răspunsul MySQL se potrivește din nou cu PostgreSQL.
  • Șase sarcini care funcționau doar în PostgreSQL au acum o variantă MySQL funcțională.
  • Sarcinile CREATE TABLE / CREATE INDEX / ALTER sunt evaluate după schema finală a tabelului — o structură greșită nu mai este acceptată ca fiind corectă.
  • Sarcinile INSERT care folosesc CURRENT_TIMESTAMP / NOW() nu mai resping un răspuns corect din cauza unei diferențe de timp la execuție.
  • Exemplele de ieșire care dezvăluiau accidental răspunsul exact sunt înlocuite cu mostre fără spoiler; ordinea rândurilor este impusă acolo unde sarcina o cere.
  • Un audit la nivel de catalog a realiniat enunțul, datele de evaluare și soluția de referință în câteva zeci de sarcini unde acestea se distanțaseră.
v4.0.616 mai 2026

A fost corectată evaluarea soluțiilor cu mai multe instrucțiuni — un DELETE/UPDATE cu un SELECT final este acum evaluat corect.

Modificat
  • Datele și orele din rezultatele interogărilor se afișează acum curat ca 2024-01-15 08:00:00, în loc de formatul tehnic ISO.
Reparat
  • Sarcinile DML (DELETE, UPDATE, INSERT) cu un SELECT de verificare nu mai resping un răspuns corect drept „coloane în plus”.
  • Sarcina #768: enunțul corespunde acum răspunsului evaluat.
  • Indiciul pentru răspuns greșit nu mai sugerează compararea cu blocul de exemplu, care intenționat nu este exact.
  • Sarcinile pure UPDATE / DELETE / INSERT sunt acum evaluate după starea finală a tabelului — o modificare greșită nu mai este acceptată ca fiind corectă.
v4.0.516 mai 2026

Au fost corectate cinci sarcini unde textul enunțului nu se potrivea cu schema și cu răspunsul.

Reparat
  • Sarcinile #762, #763, #764, #765, #809: enunțul a fost rescris pentru a se potrivi cu schema reală și cu răspunsul așteptat.
  • Generarea de sarcini cu AI, AI Mentor și formularul de raportare a erorilor: la atingerea limitei de rată afișează acum „reîncearcă peste N secunde” în loc de „ThrottlerException”.
v4.0.415 mai 2026

A fost corectată sarcina #17 — evaluatorul returna NULL din cauza unei erori în schemă.

Reparat
  • Sarcina #17 (average-post-hiatus): schema a fost aliniată cu datele seed, evaluatorul funcționează din nou.
v4.0.315 mai 2026

În sarcina „Mută rândurile vechi în arhivă dintr-o singură comandă — fără competiție” (#789), enunțul cerea o coloană customer_id care nu există în schemă. Formularea este acum aliniată cu schema și evaluatorul reale: id, status, amount.

Reparat
  • Sarcina #789 (hard-cte-atomic-archive): descrierea menționa o coloană customer_id inexistentă. Formularea corespunde acum schemei orders / orders_archive și coloanelor așteptate id, status, amount.
v4.0.215 mai 2026

Mesajul „Prea multe cereri” afișează acum limita exactă și secundele până la resetare, în loc de criptica „ThrottlerException”. Limita de rată din partea serverului a fost ridicată, astfel încât navigarea rapidă prin sarcini nu mai atinge plafonul.

Modificat
  • Limita de rată din partea serverului pentru cererile API obișnuite a fost ridicată de 5×. Navigarea rapidă înainte și înapoi între sarcinile dintr-un traseu (peste 10 cereri paralele la montare) nu mai atinge plafonul și nu mai produce erori 429.
Reparat
  • Când atingi limita de rată la Submit sau Run, mesajul afișează acum limita reală și secundele exacte până la reîncercare. Anterior apărea doar criptica „ThrottlerException: Too Many Requests”, fără niciun indiciu de așteptare.
v4.0.114 mai 2026

Butonul „Start” de pe cardul de traseu pornește din nou cu adevărat traseul — un strat invizibil de link al cardului prelua clicul și îl direcționa către pagina de detalii a traseului.

Reparat
  • Pe /trainer/tracks, butonul „Start” de pe cardul unui traseu nu mai navighează către pagina de detalii a traseului în loc să pornească traseul. Clicul oriunde pe card → detalii este păstrat.
v4.0.013 mai 2026

SQL sandbox: adu-ți propriile tabele și interogări — fără sarcină, fără evaluare. În plus, un aspect bento lat și unificat pe clasament, progres, trasee, sarcini și sesiuni.

Adăugat
  • Pagină nouă /sandbox — editor Monaco, panou de schemă, panou de rezultate, file de date per tabel, fragmente de încălzire. Sesiunile anonime expiră după 30 de minute de inactivitate, iar utilizatorii autentificați primesc 7 zile.
  • Fiddle-uri salvate: până la 5 pe planul gratuit, nelimitat pe Premium. Bibliotecă cu căutare, copiere-link, ștergere și comutator de confidențialitate.
Modificat
  • Aspect lat unificat pe paginile spațiului personal — My Fiddles, Progres, Clasament, Sesiuni, Sarcini, Trasee și pagina de detalii a traseului partajează acum un singur cadru cu un hero în gradient și o grilă de carduri consecventă.
v3.0.413 mai 2026

Săgețile de schimbare a poziției din clasament au revenit — anterior coloana era goală deoarece nu exista un instantaneu de referință cu care să se compare.

Reparat
  • Indicatorul „a urcat / a coborât / fără schimbare” a revenit lângă fiecare rând din clasament. Instantaneul de referință din săptămâna precedentă a fost inițializat; cron-ul săptămânal obișnuit îl va reîmprospăta în continuare.
v3.0.313 mai 2026

A fost corectată o eroare prin care retrimiterea unei sarcini deja rezolvate elimina în tăcere Power — bonusul „din prima încercare” era șters. Tuturor utilizatorilor afectați li s-a recalculat Power.

Reparat
  • Retrimiterea unei soluții pentru o sarcină deja rezolvată nu mai șterge bonusul „din prima încercare” — Power pentru acea sarcină rămâne la fel ca imediat după prima trimitere reușită.
  • Sarcina #107 (defalcarea cheltuielilor pe genuri de cărți pentru 2005) nu mai necesită o anumită ordine a rândurilor — orice ordonare este acum acceptată, potrivit formulării enunțului.
v3.0.212 mai 2026

A fost corectat panoul de schemă a bazei de date pe câteva sarcini — liniile portocalii de relație dintre tabelele legate nu erau desenate.

Reparat
  • Pe unele sarcini, panoul „Schemă” nu afișa relațiile dintre tabele (săgețile portocalii 1:N) — relațiile lipsă au fost adăugate în seturile de date.
v3.0.112 mai 2026

A fost corectată sarcina „Împarte clienții în cheltuitori mici / medii / mari”: răspunsul exemplu și soluția de referință se distanțaseră de enunț — acum totul folosește id-ul clientului și segmentele low / mid / high.

Reparat
  • Sarcina „Împarte clienții în cheltuitori mici / medii / mari” (#757): răspunsul exemplu și soluția de referință corespund acum enunțului — coloanele customer_id, segment, segmentele low / mid / high, ordonate după customer_id.
v3.0.012 mai 2026

Un mare rebrand „Arena”: o pagină principală nouă, un clasament refăcut de la zero cu podium și actualizări live, punctele redenumite în „Power” cu o emblemă de marcă în formă de topor de luptă, traseele de învățare reconstruite și o generare adaptivă de sarcini cu AI care chiar îți citește trimiterile recente.

Adăugat
  • O nouă filă „League” — cei 30 de utilizatori cei mai apropiați de tine după Power. Filtre de dificultate pe fila globală (Power recalculat per scară). Săgeți de urcare / coborâre lângă fiecare poziție — mișcarea de la o săptămână la alta.
  • Realizări: emoji-urile au fost înlocuite cu pictograme vectoriale colorate în funcție de categorie, tooltipurile browserului afișează nume localizate; pe /stats este o grilă cu popovere la atingere pe mobil. Realizare nouă „10 Expert”.
  • Treci cu mouse-ul peste un nume din clasament pentru un mini-card de utilizator. Un buton „Share rank” — linkul duce la profilul tău public cu o previzualizare OG.
Modificat
  • Pagina principală a fost rescrisă sub marca „Arena”: un titlu energic „Sharpen SQL. Take the offer.”, un scoreboard live în hero, o scară de ranguri cu un marcaj „You”, secțiuni despre trainer / trasee / AI / modul de interviu / progres și o bandă de încheiere „The axe is in your hand. Swing.”. Pregătit pentru mobil.
  • Punctele au fost redenumite în „Power”. Fulgerul este înlocuit cu un topor de luptă — acum în logo, în favicon și în previzualizarea la distribuirea linkurilor.
  • Pagina de clasament a fost rescrisă de la zero: un podium pentru primii 3 (aur / argint / bronz), un card personal de progres cu o bară până la rangul următor, o singură bară lipicioasă de filtre, scara de ranguri chiar sub antet, un rând „tu” fixat când ești în afara primilor 50 și actualizări live — tabelul reacționează lin la rezolvările altora, fără reîncărcare.
  • Traseele de învățare au fost reconstruite. Analyst / Backend / QA / Data Engineering — ~50 de sarcini selectate fiecare: câțiva reprezentanți per celulă temă×dificultate, de la încălzire până la EXPERT, cu accent pe problemele de la interviurile reale. A fost adăugat un traseu Data Engineering, plus un traseu dedicat pregătirii pentru interviu.
  • Butonul „Generate for me” este acum cu adevărat adaptiv: citește ultimele 40 de trimiteri, alege tema cu cea mai slabă acuratețe recentă și calibrează dificultatea la nivelul tău — dacă te blochezi, următoarea coboară cu o treaptă, iar o serie de reușite o ridică.
  • Vizitatorii noi ajung implicit pe tema „Night” (anterior „Evening”). Dacă ai ales deja o temă, alegerea ta este păstrată.
Reparat
  • Sarcina „Say in one number: how many active customers” — soluția canonică cerea clienți cu ≥2 comenzi plătite, deși descrierea spune „cel puțin o dată”. A fost corectată pentru a se potrivi cu descrierea.
v2.4.512 mai 2026

Sarcinile EXPERT acordă acum 75 de Power reali pentru fiecare rezolvare (până la 281 cu bonusuri), în loc de cei 10 de nivel EASY. Power-ul total pentru utilizatorii care au rezolvat deja un EXPERT a fost recalculat retroactiv.

Reparat
  • Tabelul de recompense nu avea un rând pentru EXPERT, așa că evaluatorul revenea la o valoare implicită de 10, iar fiecare sarcină EXPERT plătea la fel ca una EASY. Baza EXPERT este acum 75 de Power, cu aceiași multiplicatori care se cumulează deasupra (din prima încercare ×2, trecere Mock Interview ×1.25, rezolvare premium ×1.5) — până la 281 de Power per sarcină EXPERT. O migrare a recalculat xp_total pentru fiecare profil conform regulilor corectate, astfel încât oricine rezolvase deja un EXPERT primește automat Power-ul lipsă.
v2.4.412 mai 2026

A fost închisă portița prin care o sarcină putea fi „rezolvată” codificând direct ieșirea exemplu: pe 25 de seturi de date, evaluatorul verifică acum interogarea ta față de rânduri ascunse care diferă de cele afișate în descrierea sarcinii.

Modificat
  • Soluțiile rulează în continuare pe aceleași tabele și coloane ca înainte, dar rândurile din interiorul setului de date de evaluare diferă de mostra vizibilă. Orice răspuns autentic, bazat pe interogare, trece în continuare, în timp ce un SELECT … UNION ALL … codificat direct care copia literalele din mostră este acum evaluat ca „greșit”. Sunt acoperite 25 de seturi de date din ultimul lot al catalogului (liste, CTE, funcții fereastră, pivot, DML, expert).
v2.4.39 mai 2026

Au fost corectate două probleme de sarcini raportate de cursanți: mostra cu ordine greșită din „Students by region” și descrierea care se distanțase de schemă în sarcina de venit net.

Reparat
  • Sarcina „Students by region” (#357): mostra urcă acum după rn (Jack / Kim / Lars în primul rând), iar soluția de referință include un ORDER BY rn explicit pentru a produce aceeași ordine.
  • Sarcina „Users with net revenue of at least 100” (#783): titlul și descrierea corespund acum datelor reale — utilizatori și evenimente purchase/refund, nu produse și sale/refund, cu un prag de 100, nu 1000.
v2.4.29 mai 2026

Șase sarcini avansate vin acum cu un tabel preinițializat — soluțiile nu mai încep cu o preambulă CREATE TABLE.

Modificat
  • Șase sarcini Hard / Expert (UPSERT pe o singură coloană și pe coloane multiple, CTE cu RETURNING, INSERT … RETURNING în masă, coadă SKIP LOCKED, desfacerea matricilor prin UNNEST) s-au alăturat restului catalogului avansat: tabelul este creat și inițializat în setul de date, iar soluția conține doar operația testată plus un SELECT final pentru evaluare.
Reparat
  • Descrierea sarcinii „View counter” nu mai se distanțează de ieșirea așteptată: ambele descriu acum același tabel counters(id, count) și cinci rulări ale aceluiași rând.
v2.4.19 mai 2026

Sarcinile DDL nu mai afișează tabele fără legătură în panoul lateral de schemă.

Reparat
  • Pe 10 sarcini CREATE TABLE (de la ușor la expert), panoul lateral de schemă afișa tabele dintr-un set de date fără legătură — de ex. o sarcină despre articole afișa orders. Panoul este acum gol, așa cum ar trebui să fie atunci când o sarcină îți cere să construiești tabelul de la zero.
v2.4.09 mai 2026

115 sarcini noi, un comutator de temă în trei moduri Day / Evening / Night și o paletă întunecată mai blândă.

Adăugat
  • Catalogul a crescut cu 115 sarcini: 20 ușoare, 35 medii, 45 grele și 15 expert — subinterogări, CTE-uri, funcții fereastră, DML/DDL, MERGE, optimizarea interogărilor, tranzacții, JSONB, recursivitate și LATERAL.
  • Noul nivel de dificultate «Expert» cu o insignă violet și propriul filtru în catalog.
  • Comutator de temă în trei moduri: Day (luminos), Evening (întunecat blând) și Night (profund) — alege în funcție de lumina ambientală pentru a reduce oboseala ochilor.
Modificat
  • Tema întunecată a fost îmblânzită: fundalul a trecut la un gri-albastru în stil Linear (#1B1B1F) în loc de cvasi-negrul anterior, iar textul principal a coborât la zinc-300 — mai puțină halație în sesiunile lungi.
  • În modul «Night», panoul editorului SQL stă cu trei trepte mai întunecat decât fundalul, cu o ușoară apropiere de negru pur — se citește ca un panou retras din aceeași familie.
  • Fișa de referință a temei din cadrul sarcinii ține acum cont de dificultate: pe nivelurile Hard / Expert ascunde SELECT/WHERE/ORDER BY/LIMIT de bază și aduce în prim-plan tipare avansate — STRING_AGG, ARRAY_AGG, GROUPING SETS, LATERAL, JSONB, indecși parțiali și așa mai departe.
  • Pastilele active de filtru pe dificultate au trecut la o umplere blândă în culoarea de accent a mărcii, în loc de negru solid — nu mai strică aspectul temei luminoase.
  • Etichetele de dificultate în limba rusă: «Лёгкое» → «Лёгкий», «Среднее» → «Средний», «Сложное» → «Сложный».
v2.3.08 mai 2026

24 de articole noi de blog pentru începători.

Adăugat
  • Acoperirea temelor a fost extinsă: DML (INSERT/UPDATE/DELETE), DDL (CREATE TABLE/ALTER TABLE), agregate, DISTINCT, gestionarea NULL (CASE WHEN/COALESCE/NULLIF), CTE-uri și subinterogări, funcții fereastră, șiruri și date.
Modificat
  • Fișa de referință din trainer: fiecare element duce acum la propriul articol. Anterior, cele patru elemente despre funcții fereastră trimiteau către o singură prezentare generală — ROW_NUMBER, RANK/DENSE_RANK, PARTITION BY și LAG/LEAD au acum fiecare propriul articol.
Reparat
  • Sarcina #114 „Câte saloane de cardiologie” — coloana de ieșire așteptată a fost redenumită din count în wards_count pentru a nu mai intra în conflict vizual cu cuvântul rezervat.
v2.2.28 mai 2026

A fost închisă portița potrivirii răspunsurilor: sarcinile sunt acum evaluate față de un set de date ascuns.

Modificat
  • Evaluatorul poate acum rula o sarcină față de un set de date ascuns. Referința canonică este recalculată pe aceleași date, astfel încât soluțiile corecte trec în continuare, în timp ce constantele împrumutate din mostra vizibilă eșuează.
Reparat
  • Sarcina „Cel mai vârstnic membru al clubului” nu mai acceptă un LIMIT codificat direct, potrivit cu mostra vizibilă — trece doar o interogare care exprimă „toate rândurile cu data de naștere minimă”.
v2.2.18 mai 2026

Lustruirea cardurilor de prețuri și corecții la butonul „Sign in & subscribe” imediat după v2.2.0.

Modificat
  • Prețul și butonul CTA din cardurile Free și Premium se aliniază acum la aceeași poziție pe verticală.
  • Au fost scurtate notele de subsol ale prețului pentru Crypto și Visa/MC — rămâne doar numele rețelei de plată.
Reparat
  • Butonul „Sign in & subscribe” este din nou apăsabil pentru utilizatorii nedeconectați.
v2.2.08 mai 2026

Au fost adăugate plăți în criptomonede și plăți internaționale Visa/Mastercard, plus o protecție anti-bot consolidată pe fluxul de autentificare.

Adăugat
  • Plăți în criptomonede prin NowPayments — BTC, ETH, USDT și altele. 21 USD trimestrial / 28 USD semestrial.
  • Visa/Mastercard internaționale prin Paddle cu calcul automat al TVA/taxei pe vânzări. 21 USD / 28 USD.
  • Selector al metodei de plată pe cardul Premium: card RU, Crypto, Visa/MC. Moneda se schimbă în funcție de metodă.
  • Cloudflare Turnstile la autentificare și înregistrare — invizibil pentru oameni, blochează boții.
Modificat
  • Contul se blochează timp de 15 min după 5 parole greșite (exponențial, până la 24 h), cu o numărătoare inversă explicită.
  • Erorile de autentificare și înregistrare au fost umanizate — gata cu „Forbidden” sau „Invalid credentials” brute.
  • Limita de rată pentru trimiteri: 5/min, 30/15min per utilizator. Nu afectează sesiunile reale de rezolvare.
Reparat
  • După autentificare revenim la pagina de unde ai venit — inclusiv OAuth (Google, GitHub, Yandex).
  • Deconectarea de pe o pagină publică nu te mai aruncă pe pagina principală.
v2.1.87 mai 2026

A fost finalizată corecția salvării pentru Telegram, GitHub și LinkedIn pe pagina de profil. Versiunea anterioară corectase normalizatorul de nume de utilizator pe backend, dar componenta de front-end scurtcircuita onBlur — PATCH-ul nu se declanșa niciodată cu adevărat. Câmpul accepta vizual datele introduse, serverul rămânea gol, iar după o reîncărcare câmpul era gol. Acum comparația la blur folosește valoarea capturată în momentul focalizării, nu intrarea în curs.

Reparat
  • Câmpurile Telegram, GitHub și LinkedIn de pe pagina de profil se salvează din nou. Un useEffect suprascria referința „ultima valoare salvată” la fiecare apăsare de tastă, așa că verificarea onBlur compara valoarea curentă cu ea însăși și sărea peste PATCH. Verificarea la blur compară acum față de un instantaneu luat în momentul focalizării.
v2.1.77 mai 2026

A fost corectată salvarea identificatorilor Telegram, GitHub și LinkedIn pe pagina de profil: introducerea formatului din placeholder, precum t.me/username, era tăiată într-un gunoi de tipul t.me. Acum orice intrare — identificator simplu, @handle, t.me/handle sau https://t.me/handle — se normalizează la un nume de utilizator curat.

Reparat
  • Câmpurile Telegram, GitHub și LinkedIn de pe pagina de profil se salvează acum corect atunci când adresa este introdusă fără https://. Anterior, t.me/durov era stocat ca t.me, iar github.com/octocat ca github.com, deoarece normalizatorul cerea o schemă http(s):// și altfel tăia valoarea la primul slash.
v2.1.65 mai 2026

A fost eliminat bannerul fals-pozitiv de upsell premium din panoul de rezultate al rezolvării: se declanșa la sarcinile gratuite și chiar și pentru utilizatorii premium. Era oricum o interfață moartă — sarcinile premium sunt blocate la deschidere, așa că editorul nu le vede niciodată.

Modificat
  • În fereastra de sărbătoare „Corect!”, pastila „+50% Power per solve — go Premium” are acum o umplutură orizontală corespunzătoare — coroana și săgeata nu mai ating marginile pastilei.
  • AI Mentor primește acum un context compact al sarcinii: dialectul SQL activ, tabelele, relațiile, coloanele așteptate, mostra de ieșire și cel mai recent diff de evaluare. SQL-ul de referință este folosit doar ca context privat pentru explicarea erorilor și pentru nivelurile ulterioare de indicii.
Reparat
  • Bannerul de upsell „Interview tasks — Premium” a dispărut din panoul de feedback. Anterior, orice eroare din partea serverului care conținea cuvântul premium în urma sa de stivă (de ex. o coloană solved_as_premium lipsă imediat după o migrare) declanșa o potrivire de subșir și afișa upsell-ul — chiar și la sarcinile gratuite și chiar și pentru utilizatorii premium.
v2.1.55 mai 2026

Premium acordă acum +50% Power per sarcină rezolvată — sporul rămâne atașat sarcinii pentru totdeauna, chiar și după expirarea abonamentului. AI Mentor nu mai dezvăluie soluția de la primul indiciu și escaladează acum ajutorul în funcție de fiecare sarcină. De asemenea, a fost eliminat comentariul inițial -- Click ▶ Run din editorul primei sarcini.

Adăugat
  • Abonamentul Premium acordă un multiplicator de Power ×1.5 la fiecare sarcină rezolvată. Sporul este blocat în momentul rezolvării, astfel încât rămâne în totalul tău chiar dacă abonamentul expiră ulterior.
  • Fereastra de sărbătoare „Corect!” afișează acum un îndemn la upgrade pentru utilizatorii gratuiți chiar sub jetonul +Power: „Get +50% Power per solve — go Premium”, cu link către /pricing.
Modificat
  • AI Mentor escaladează acum indiciile per sarcină. Prima cerere primește un imbold doar de direcție, fără nume de operatori; cererile 2-4 adaugă conceptul și categoria; de la cererea 5, mentorul poate numi direct LIKE / WHERE / GROUP BY. Contorul se resetează la fiecare 24 de ore.
  • Explicațiile pentru răspunsurile greșite urmează acum aceleași niveluri de indicii ca indiciile obișnuite — nu mai dezvăluie operatori specifici la prima trimitere eșuată.
Reparat
  • Au fost închise constatările rămase din auditul sarcinilor SQL: a fost corectată referința de la Tournament Winners, au fost aliniate previzualizările TIMESTAMP pe câteva sarcini și a fost restabilită varianta PostgreSQL pentru o sarcină AI.
Eliminat
  • A fost eliminat comentariul inițial -- Click ▶ Run — see what's in this table din editorul primei sarcini. Sarcinile deschise pornesc acum de la un editor gol.
v2.1.45 mai 2026

Au fost reorganizate filtrele catalogului de sarcini: statusul a devenit un control segmentat cu 3 stări (All / Unsolved / Solved), implicit pe Unsolved, a fost adăugat un filtru de dialect, jetoanele de temă și companie afișează acum numărul curent de sarcini, iar filtrele active apar ca pastile care pot fi eliminate, cu opțiunea „Reset all”.

Adăugat
  • Filtru de dialect în catalog: All / PG / MySQL — propriul segment lângă controlul de status.
  • Jetoanele de temă și companie afișează acum câte sarcini se potrivesc: „Windows (43)”, „Tinkoff (5)”. Jetoanele cu zero sarcini se estompează.
  • Rândul cu pastilele de filtre active: fiecare filtru aplicat (căutare, dificultate, status, dialect, favorite, temă, etichetă, companie, regiune) apare ca o pastilă care poate fi eliminată; „Reset all” readuce totul la valorile implicite.
Modificat
  • Filtrul de status al sarcinii este acum un control segmentat cu 3 stări (All / Unsolved / Solved), implicit pe Unsolved. Înlocuiește singurul comutator „Hide solved”.
  • Controlul de sortare a fost mutat în bara de sus — anterior era ascuns jos și nu se vedea din cauza derulării.
  • Comutatorul de favorite a fost mutat în bara de filtre de sus — acum stă lângă celelalte comutatoare binare.
Reparat
  • Insigna de filtre nu mai afișează „1” din start — vizualizarea implicită „Unsolved” nu este socotită drept filtru aplicat.
v2.1.35 mai 2026

Audit la nivelul întregului catalog: evaluatorul nu mai respinge răspunsuri corecte din cauza serializării DATE vs TIMESTAMP, previzualizările mostrelor pe peste 60 de sarcini corespund acum cu ceea ce returnează efectiv soluția de referință, iar 5 sarcini care folosesc CURRENT_DATE / NOW() sunt fixate la o referință stabilă, astfel încât previzualizările nu mai variază de la o zi la alta. Plus o corecție a descrierii la sarcina de tranzacții lunare, dintr-un raport de eroare al unui utilizator.

Reparat
  • Evaluator: a fost adăugată normalizarea date-ca-timestamp (2024-01-01T00:00:00.000Z2024-01-01) — răspunsurile corecte nu mai primesc „numărul de rânduri se potrivește, conținutul diferă” din cauza formatării tipului de retur.
  • Sarcina „Monthly transactions and chargebacks”: descrierea clarifică acum că un chargeback aparține lunii tranzacției originale, nu datei rambursării; previzualizarea afișează date din prima zi a lunii, în loc de timestamp-uri ISO deplasate de fusul orar.
  • Au fost regenerate previzualizările mostrelor pe peste 60 de sarcini: formatarea numerică (100100.00), afișarea fusului orar (+03+00), DATE-ca-TIMESTAMP, INTERVAL-ca-obiect — previzualizarea corespunde acum cu ceea ce returnează runner-ul live.
  • Cinci sarcini care folosesc CURRENT_DATE / NOW() / CURRENT_TIMESTAMP în datele seed (#170, #601, #602, #668, #693) sunt acum fixate la 2026-05-05 12:00:00 UTC. Previzualizările nu mai variază.
v2.1.24 mai 2026

A fost reorganizat blogul: căutare, navigare prin 10 secțiuni, primele 7 tutoriale pentru începători. Numele de comenzi din fișa de referință a sarcinii sunt acum linkuri pe care se poate face clic, către articole. Pagina de lansări a primit un arbore de versiuni cu scroll-spy.

Adăugat
  • Blog: căutare în titluri, conținut și etichete + o bară laterală stângă cu secțiuni. Secțiunea activă se evidențiază la derulare.
  • Blog: primele 7 tutoriale pentru începători — SELECT … FROM, WHERE, ORDER BY, LIMIT, INNER JOIN, LEFT JOIN, aliasuri.
  • Fișa de referință a temei din cadrul sarcinii: numele de comenzi sunt acum linkuri albastre către tutorialul de blog corespunzător — se deschid într-o filă nouă.
  • Pagina de lansări: arbore de versiuni în partea stângă, grupat pe major.minor; clicul derulează la versiune și actualizează ancora hash.
  • Buton „Copy SQL” pe fiecare rând din fila Trimiteri.
Reparat
  • Acordul corect al pluralului în rusă peste tot: «221 задача», «2 задачи», «5 задач» în loc de vechiul «221 задач».
  • Fișa de referință a temei din cadrul sarcinii nu mai tresare când este extinsă — pista barei de derulare este acum rezervată.
  • Tabelele Markdown din articolele de blog se redau acum ca tabele HTML, în loc de o singură linie de text simplu.
v2.1.14 mai 2026

Verificare de calitate la nivelul întregului catalog: 23 de sarcini nerulabile reparate, 66 de descrieri în engleză rescrise, descrieri și previzualizări de mostre aliniate pe alte câteva zeci. Plus o corecție raportată de un utilizator.

Modificat
  • Previzualizările mostrelor pe peste 50 de sarcini corespund acum cu ceea ce returnează soluția de referință.
  • Au fost comasate etichetele duplicate de companie din jetoanele de filtrare a sarcinilor.
Reparat
  • Au fost reparate 23 de sarcini (pharma-*, loyal-*, hotel-*, qa-*) care nu puteau fi rezolvate din cauza unei nepotriviri între schemă și datele seed.
  • Au fost rescrise descrierile în engleză pe 66 de sarcini lc-* / lc2-* care anterior aveau un ciot sau un fragment.
  • Sarcina „Rooms Booked on September 2, 2019” nu mai acceptă răspunsul greșit.
  • Zece sarcini unde descrierea nu corespundea cu soluția de referință sunt acum coerente.
  • Șapte sarcini Tochka aveau enunțul altcuiva — au fost rescrise.
v2.1.04 mai 2026

69 de sarcini noi preluate din interviuri reale de pe piața de muncă rusă (Yandex, Tinkoff, Sber, VTB, Alfa, VK, Ozon, Avito, Magnit, Samokat și încă 23 de companii) — construite în jurul universului mai larg de tipuri PostgreSQL: UUID, JSONB, ENUM, INTERVAL, TSTZRANGE, INET, NUMERIC și POINT. Plus corecții importante din rapoartele utilizatorilor și un indicator cu punct roșu „What's new” în bara laterală.

Adăugat
  • 69 de sarcini noi preluate din interviuri reale la companii rusești. 33 de angajatori: 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 și Yandex Practicum. Toate etichetate Interview, accesibile cu Premium.
  • Tipuri PostgreSQL bogate în schemele sarcinilor. Majoritatea sarcinilor foloseau înainte INT + VARCHAR(100) — în regulă pentru exemple de manual, departe de producție. Sarcinile noi introduc UUID pentru cheile primare ale clienților și comenzilor, NUMERIC(15,2) pentru bani și NUMERIC(12,4) pentru cursurile valutare, TIMESTAMPTZ pentru evenimente, INTERVAL pentru durata apelurilor și sesiunilor, TSTZRANGE / DATERANGE / NUMRANGE pentru istorice SCD2 și ferestre de valabilitate, JSONB pentru metadate și payload-uri de evenimente, ENUM (cu CREATE TYPE explicit) pentru statusuri și categorii, INET pentru IP-uri în sarcinile antifraudă, POINT pentru coordonate GPS, TEXT[] / INTEGER[] pentru etichete și matrici de ID-uri. Astfel, trainerul te expune la aceleași tipuri pe care le vei întâlni în producție.
  • Indicator cu punct roșu pe intrarea „What's new” din bara laterală — apare când a fost lansată o versiune nouă pe care nu ai deschis-o încă. Punctul dispare după o vizită la /releases (indicatorul este stocat în localStorage-ul acestui browser). Anterior, indicatorul exista doar în bara de navigare de sus; în aspectele cu doar bară laterală, nu putea fi accesat.
Modificat
  • Redarea corectă a noilor tipuri în tabelul de rezultate al interogării. Anterior, coloanele JSONB, INTERVAL și POINT se redau ca „[object Object]”, iar matricile (TEXT[], INTEGER[]) se reduceau la șiruri unite prin virgulă — structura era invizibilă. Acum JSONB și matricile se redau ca JSON lizibil, INTERVAL ca 1d 02:30:00, POINT ca (x, y). Valorile booleene și UUID-urile își păstrează redarea ca text.
  • Diagramele ER de pe pagina sarcinii au primit intrări de paletă pentru noile tipuri: UUID violet, JSONB galben, INTERVAL mov (aceeași familie ca alte tipuri de dată/oră), TSTZRANGE / DATERANGE / NUMRANGE roz, INET cyan, POINT roz, ENUM-urile personalizate roz-pal. Anterior, aceste tipuri ajungeau la grizul implicit și nu se deosebeau de simplul INT / VARCHAR.
  • Cele șase sarcini corectate de mai sus au primit, de asemenea, o schemă îmbogățită în același stil ca noul set de interviu: chei primare UUID, payload-uri JSONB, tipuri ENUM pentru sex / categorii / statusuri, NUMERIC(15,2) în locul INT pentru salarii și prețuri, INTERVAL pentru durate. Formularea sarcinilor a fost ușor ajustată pentru a motiva noile tipuri, dar problema subiacentă rămâne neschimbată. Acesta este primul pas în actualizarea sarcinilor mai vechi — mai multe în versiunile viitoare.
Reparat
  • Au fost corectate câteva sarcini mai vechi raportate de utilizatori. „Project Employees II” — diagrama ER afișa Employee + Department în loc de Project + Employee, deși schema subiacentă era corectă; diagrama a fost aliniată. „Reported Posts” — descrierea nu preciza că motivul raportării se află în coloana extra: acum o face. „Sales Analysis I” — soluția de referință folosea SUM(price), deși schema are o coloană quantity, ceea ce crea confuzie; a fost reformulată ca SUM(quantity * price), mai apropiată de venitul din lumea reală. „Swap Salary” — sarcina era conectată la setul de date greșit (Employee + Department în loc de Salary(id, name, sex, salary)), făcând-o nerezolvabilă; a fost reconectată la setul de date canonic. Aceeași deviere ER silențioasă din „Project Employees III” și „Reported Posts II” a primit aceeași corecție.
v2.0.03 mai 2026

Versiune majoră: o nouă navigare cu bară laterală stângă, modul strict Mock Interview cu un bonus de +25% Power, profiluri publice și prieteni, notificări prin e-mail, etichete de companie în culorile mărcii, filtre suplimentare și un bloc de cursuri partenere. Plus o corecție importantă de confidențialitate între conturi și zeci de îmbunătățiri de UX.

Adăugat
  • Bloc de cursuri partenere. Pe pagina de sarcini (ecrane late) o coloană din dreapta afișează un set selectat de cursuri partenere; pe mobil este un carusel orizontal deasupra listei. Cardurile duc la paginile de prezentare ale partenerilor cu etichete UTM — pentru noi, o modalitate de a menține prețul abonamentului scăzut acoperind costurile de infrastructură.
  • Nou mod Mock Interview — o simulare strictă a unui interviu real. Orice singură încălcare (schimbarea filei, lipire, ieșirea din ecran complet, pierderea focalizării ferestrei > 1 secundă) eșuează automat sesiunea. Indiciile, AI Mentor și fișa de referință sunt ascunse și blocate. Durate: 5 / 10 / 15 / 30 / 60 de minute. Plan gratuit — 1 încercare pe zi; Premium — nelimitat. Cât timp o sesiune este activă, navigarea din jur (bara laterală, „Tasks”, „Top solutions”, „Next task”, „Leave track”, Prev/Next/Random) este blocată — singura cale de ieșire este butonul explicit „End” sau închiderea filei (care abandonează automat sesiunea).
  • +25% Power pentru fiecare sarcină rezolvată în modul Mock Interview — bonusul este per sarcină și este marcat pe raportul de după sesiune. Clasamentul are acum o coloană informativă „Mock” (același număr afișat pe cardul de profil și pe /u/<username>); nu afectează ordinea de sortare bazată pe Power.
  • Profiluri publice la /u/<username>: alege un identificator scurt și activează comutatorul public — orice vizitator anonim îți vede rangul, Power, seria curentă, numărul de realizări, harta termică de activitate și linkurile GitHub / Telegram / LinkedIn. Nu sunt expuse date private.
  • Prieteni: adaugă utilizatori după identificatorul lor public, gestionează cererile primite și trimise, vezi o filă dedicată de clasament al prietenilor cu Power-ul, seria și numărul de sarcini rezolvate ale acestora.
  • Favorite: fiecare card de sarcină are acum o stea — apasă pe ea și sarcina ajunge în filtrul „Favourites only”. Lista se află pe server, legată de contul tău, și se păstrează la schimbarea browserului.
  • Notificări prin e-mail (comutatoare în profil). „Save your streak” — memento de seară când seria ta este ≥ 3 zile și nu ai rezolvat nimic azi. „Weekly digest” — recapitulare de sâmbătă dimineața cu sarcinile rezolvate în săptămâna trecută, seria curentă și cea mai slabă categorie.
  • Utilizatorii Premium sunt marcați vizual oriunde apar avatarurile: un inel în gradient holografic (clasament, prieteni, profil, bară laterală, pagina publică /u/<username>); o mică insignă Crown în colț pe avatarurile mari. Nu afectează ordinea de sortare.
  • Etichete de companie în culorile mărcii pe cardurile de sarcini: galben pentru Yandex / Tinkoff / Beeline, verde pentru Sberbank / Spotify / OpenAI, albastru pentru VK / Ozon / Google / Meta, roșu pentru MTS / Alfa / Tesla, mov pentru Stripe / Skypro / Wayfair, portocaliu pentru Amazon / Alibaba și așa mai departe. Anterior, fiecare etichetă era de un singur mov.
  • Jetoane suplimentare de clauze SQL în filtrul „Topic” de pe pagina de sarcini: pe lângă cele 8 categorii largi (SELECT, JOIN, subinterogări, fereastră, agregate, CTE, DML, DDL) poți acum activa GROUP BY, COUNT, HAVING. Combină-le cu categoriile pentru o filtrare mai precisă.
  • Panoul „DB Schema” de pe pagina sarcinii poate fi acum restrâns. Comutatorul de lângă titlul sarcinii ascunde coloana și eliberează lățime pentru editor și pentru tabelul de rezultate. Starea de restrângere este reținută per browser, așa că schema se deschide la fel la sarcina următoare.
  • 8 sarcini noi de interviu de la Tochka — de la EASY la HARD. Scenarii CRM (găsește clienți cu o cerere activă), calcule de portofoliu (structură, scadență medie ponderată, dinamica valorii), interogări de obligațiuni cu funcții fereastră. Soluții atât pentru PostgreSQL, cât și pentru MySQL.
  • Secțiune de blog la /blog. Tutoriale ample — pornind cu o analiză aprofundată a funcțiilor fereastră. Conținut bilingv, URL-uri cu slug, carduri OG pentru distribuirea pe rețelele sociale. Accesibil din subsol și din partea de jos a barei laterale.
  • Pagină 404 personalizată. Vechea pagină implicită Next.js reda text negru pe alb — invizibil în modul întunecat. Noua pagină folosește jetoane de temă și se află în interiorul cadrului partajat, păstrând navigarea la îndemână.
Modificat
  • Navigarea a fost reproiectată. Pentru utilizatorii autentificați în aplicație, navigarea principală s-a mutat într-o bară laterală stângă — Trainer, Progress, Leaderboard și celelalte secțiuni se află acolo, cu Power + streak sub avatarul tău și comutatoarele de limbă/temă în partea de jos. Pagina de prezentare, prețurile și fluxurile de autentificare păstrează bara de sus subțire. Paginile utilitare (What's new / Report a bug / Blog) moștenesc oricare cadru din care ai venit.
Reparat
  • Inelul în gradient Premium din jurul avatarurilor apare acum pe fiecare filă de clasament — anterior inelul apărea doar pe fila „All time” și dispărea în tăcere pe „Week” și „Month”, deoarece backend-ul nu emitea indicatorul de abonament pentru clasamentele periodice.
  • Modificările de nume și avatar din profilul tău se reflectă acum imediat în bara laterală — fără reîncărcarea paginii. Anterior, vechiul card de utilizator putea persista până la o reîmprospătare completă.
  • Scurgeri de date între conturi la schimbarea utilizatorilor în același browser. Anterior, după deconectare / autentificare cu un cont diferit, acestea puteau persista: firele de chat AI Mentor, ciornele SQL din editor, indicatorii „rezolvat” per sarcină, sesiunile active de mock interview, contorul de generare AI, cache-ul de favorite. Acum, deconectarea și fiecare cale de autentificare (formular, OAuth, verificare e-mail) șterge tot ceea ce este legat de utilizatorul anterior.
  • Linkul „Friends rating” din profil ajunge acum direct pe fila Friends — anterior te lăsa pe clasamentul global. Banda pentru începători „Start here” nu mai revine după ce ai respins-o; anterior respingerea se reseta la fiecare deconectare / autentificare.
  • Zeci de îmbunătățiri ale aspectului și interacțiunii pe mobil: o fereastră de raport post-sesiune mai compactă, spațiere corectă a filtrelor pe ecrane înguste, bannerul de feedback nu se mai suprapune peste panoul lateral la 1024px, câmpuri de nume + e-mail pe pagina de raportare a erorilor pentru cei care trimit anonim.
v1.2.93 mai 2026

Hotfix de UX al editorului pe ecrane înguste: fereastra pop-up „Editor settings” nu mai este tăiată de panoul de cod și nu mai depășește marginea ferestrei pe mobil. Același buton de roată dințată pe care îl are desktopul se află acum și în bara de instrumente mobilă, iar setarea de dimensiune a fontului se aplică în sfârșit editorului mobil.

Reparat
  • Fereastra pop-up „Editor settings” putea fi tăiată de marginile paginii și nu avea derulare internă — pe un laptop îngust sau pe un telefon, jumătate dintre setări erau pur și simplu invizibile. Fereastra pop-up se redă acum deasupra întregii pagini (printr-un portal), se ajustează automat la zona vizibilă și capătă o bară de derulare internă atunci când conținutul depășește înălțimea ferestrei. Antetul cu titlul și butonul de închidere rămâne fix în timpul derulării.
  • Pe vizualizarea editorului mobil (≤1024px), barei de instrumente îi lipsea roata dințată a setărilor editorului — „Font size” era accesibilă doar de pe desktop. Roata dințată se află acum lângă PG/MySQL și Format, iar setarea de dimensiune a fontului scalează efectiv intrarea editorului mobil.
v1.2.71 mai 2026

Hotfix dintr-un raport de eroare: sarcina #240 („Staff Bonuses”) reda schema greșită — afișa Employee + Department în loc de adevăratele Employee + Bonus, făcând enunțul ilizibil.

Reparat
  • Sarcina #240 „Staff Bonuses”: vizualizatorul de schemă reda tabelele învechite Employee + Department (cu câmpurile department_id, manager_id) și o filă goală Department. Sandbox-ul și soluția de referință erau corecte de la bun început — doar metadatele vizualizatorului erau greșite. Acum schema afișează adevăratele tabele Employee + Bonus cu relația Bonus.empId → Employee.empId.
v1.2.61 mai 2026

Au fost îmbogățite seturile de date pe 268 din 339 de sarcini — tabele sursă mai complete, rânduri mai semnificative în ieșirea așteptată, sarcinile nu mai par defecte.

Modificat
  • Îmbogățire în masă a seturilor de date: 268 din 339 de sarcini au primit date seed mai complete — de obicei 6-12 rânduri în tabelele primare în loc de 2-4, cu varietate pe axele de filtrare/JOIN/GROUP BY pe care le exersează soluția de referință. Au fost atinse 137 de seturi de date unice. Soluțiile de referință și schemele rămân neschimbate. Progresul utilizatorilor este păstrat — sarcinile deja rezolvate rămân rezolvate, Power și realizările nu sunt recalculate.
  • Fiecare sarcină îmbogățită a fost validată: soluția de referință a fost rulată față de noile date seed prin executor, iar sample_output a fost regenerat din rezultatul real.
Reparat
  • Sarcina #38 (well-paid-employees) — inițial un hotfix v1.2.4, acum parte a verificării mai ample.
v1.2.51 mai 2026

Hotfix dintr-un raport de eroare: panoul „Expected output sample” clarifică acum că numărul de rânduri de acolo nu trebuie să corespundă cu tabelele din schemă.

Reparat
  • A fost adăugată o precizare deasupra panoului „Expected output sample”: „așa arată un răspuns corect — numărul său de rânduri îi este propriu, nu trebuie să corespundă cu tabelele din schemă”. Anterior, utilizatorii numărau rândurile dintr-unul dintre tabelele schemei și presupuneau că sarcina este defectă când numerele difereau.
v1.2.430 apr. 2026

Hotfix dintr-un raport de eroare: sarcina #38 „Salary higher than manager” rulează acum pe un set de date corespunzător, cu trei cazuri reale. Plus un mic punct portocaliu pe „What's new?” când este lansată o versiune nouă.

Adăugat
  • Un mic punct portocaliu apare pe elementul de navigare „What's new?” când este lansată o versiune nouă. O singură vizită la /releases îl elimină până la versiunea următoare.
Reparat
  • Sarcina #38 (well-paid-employees): setul de date era prea sărac — 6 angajați și un singur caz „subordonatul câștigă mai mult decât managerul”, ceea ce făcea să pară că datele sunt greșite. A fost extins la 9 angajați din două departamente, cu trei cazuri clare (Eve > Alice, Frank > Dave, Henry > Bob).
v1.2.330 apr. 2026

O nouă pagină „Report a bug” cu atașamente de capturi de ecran, un grup secundar de navigare și o bandă „Start here” mai compactă pe mobil.

Adăugat
  • O nouă pagină „Report a bug” în bara de navigare: formular cu subiect + descriere și până la 5 capturi de ecran / clipuri scurte (cu suport pentru drag-and-drop). Rapoartele ajung în căsuța noastră de mesaje pentru triere rapidă.
  • Bara de navigare primește un grup secundar — „What's new?” și „Report a bug” — separat de filele principale printr-un separator vertical subțire.
Modificat
  • Banda pentru începători „Start here” este mai compactă pe mobil — titlu mai scurt, descriere ascunsă, carduri mai înguste. Eliberează spațiu pentru lista de sarcini propriu-zisă.
Reparat
  • Banda pentru începători „Start here” nu mai pâlpâie pentru o fracțiune de secundă la deschiderea paginii de sarcini — acum se redă doar după ce /progress se rezolvă.
  • Evidențierea notelor de lansare (rândul de sus) redă acum corect backtick-urile — anterior afișa literalul „?lang=” în loc de o pastilă de cod stilizată.
  • Bara de derulare verticală fantomă de pe pagina „Learning Tracks” a dispărut — min-h-screen împreună cu bara de navigare forța ~60px de înălțime suplimentară chiar și când conținutul încăpea.
v1.2.230 apr. 2026

Lustruire de UX în tot trainerul, plus un parametru URL ?lang= pentru reclame și linkuri directe specifice limbii.

Adăugat
  • Ajunge pe o anumită limbă prin ?lang=en sau ?lang=ru în URL: https://sql.coderang.dev/?lang=en. Util pentru reclame și pentru distribuirea de linkuri specifice limbii; alegerea este reținută timp de un an.
Modificat
  • Când indiciile AI zilnice se epuizează, butonul „Explain” devine „Cheatsheet” și deschide referința temei.
  • Steaua de favorit este acum vizibilă pe mobil și ușor vizibilă pe desktop, în loc să fie ascunsă până la trecerea cu mouse-ul.
  • Descrierea sarcinii nu mai sare când fișa de referință se extinde. Steaua este mai luminoasă la trecerea cu mouse-ul.
  • Pe sarcinile DDL, panoul de schemă afișează „nu există tabele inițiale; creează-le” în loc de o pânză goală.
  • Butonul AI pulsează acum cu adevărat doar la erori (anterior clasa de animație nu era niciodată definită).
  • Power și Streak din bara de navigare se inițializează din localStorage înainte de preluarea de pe server — gata cu pâlpâirea „0 ⚡”.
  • Contorul de generare AI nu se mai resetează la 0 după redirecționarea către sarcina generată.
  • Mici îmbunătățiri pe mobil: insigne de dificultate de lățime egală (steaua aliniată), textul filei de jos încape, animație de scalare a contorului zilnic, tooltip pentru pictograma de serie, reguli corecte de plural în rusă.
Reparat
  • Numele companiilor rusești (Сбербанк, Яндекс, Авито…) se redau acum în transliterare latină (Sberbank, Yandex, Avito) în interfața în engleză; chirilica rămâne în rusă.
  • Numele intrărilor din fișa de referință (Aliasuri, Subinterogare scalară etc.) se traduc acum corect la schimbarea limbii.
  • Clasamentul săptămânal/lunar aplică acum bonusul din prima încercare ×2 și ignoră retrimiterile, potrivindu-se cu modul în care se calculează Power-ul total. Anterior, vizualizarea pe perioadă afișa aproximativ jumătate din cel total — eroare în calcul, nu în date.
  • A fost eliminată o filă Solutions moartă — niciun buton nu o activa, dar dubla încărcarea.
  • Backtick-urile nu mai lasă un spațiu înainte de punctuația care urmează („Action.”).
  • Stările goale ale panoului de rezultate se traduc acum corect în engleză.
v1.2.130 apr. 2026

Lustruire pentru sarcinile de modificare a datelor și o șlefuire generală a redării descrierilor.

Adăugat
  • Atenționare pentru sarcinile DDL/DML: sarcinile UPDATE/INSERT/DELETE și CREATE/ALTER/DROP afișează acum o scurtă notificare „nu este nevoie de un SELECT la final” — gata cu ghicitul a ce să afișezi.
Modificat
  • Fișa de referință a temei ține acum cont de tipul sarcinii: sarcinile DML nu mai afișează SELECT/ORDER BY/LIMIT, iar sarcinile DDL afișează doar comenzile de modificare a schemei.
  • Tokenii în backtick-uri din descrierile sarcinilor (id = 4, users.email) se redau acum ca pastile de cod cu accent, în loc de text brut — descrierile se citesc exact așa cum le scriu autorii.
  • Blocurile de cod din fișa de referință au acum o bară de accent în stânga și o margine subtilă — se citesc ca fragmente de cod reale, în loc de pete gri.
v1.2.030 apr. 2026

Onboarding pentru nou-veniți: o bandă „Start here”, SQL de pornire pe prima ta sarcină și o fișă de referință a temei în fiecare sarcină. Indiciile pentru răspunsuri greșite sunt acum specifice și nu îți consumă cota AI.

Adăugat
  • Banda „Start here” din partea de sus a paginii de sarcini — 8 sarcini SELECT simple pentru cei la început. Apare până când rezolvi ceva; se derulează prin tragere, cu un cursor de tip apucare.
  • SQL de pornire în editor. Prima sarcină pe care o deschizi precompletează SELECT * FROM <first_table> LIMIT 5;, astfel încât să poți apăsa ▶ imediat și să vezi cum arată datele.
  • Fișă de referință a temei. Panoul sarcinii are acum un bloc de referință care poate fi restrâns, cu comenzile SQL relevante, sintaxa și o explicație de un rând — adaptat per temă: SELECT, JOIN, agregate, subinterogări, fereastră, CTE, DML, DDL.
Modificat
  • Bannerul pentru răspuns greșit este acum specific: numește coloanele în plus/lipsă, diferențele de rânduri, problemele de sortare și erorile SQL comune. Rulează local, fără să se consume cotă AI.
v1.1.030 apr. 2026

Autocompletare conștientă de aliasuri în editorul SQL și îmbunătățiri majore ale aspectului pe mobil.

Adăugat
  • Pagina de lansări: istoricul actualizărilor este acum vizibil la /releases.
  • Autocompletare conștientă de aliasuri. După <alias>. sugestiile se limitează la coloanele acelui singur tabel. Aliasurile în sine se completează cu Tab.
  • . este acum un caracter declanșator: sugestiile apar automat după el, fără să fie nevoie de Ctrl+Space.
Modificat
  • Meniul mobil suprapune acum conținutul în loc să împingă pagina în jos. Se închide la atingerea în afara lui.
  • Peste 300 de descrieri de sarcini rescrise: a fost adăugat context de business, au fost listate coloanele de ieșire, iar sortarea și rotunjirea au fost făcute explicite.
Reparat
  • Descrierea sarcinii pe mobil se derulează acum corect când textul este lung. Anterior se bloca și împiedica accesul la filele de la final.
  • Bara de file de jos a trainerului este acum mereu vizibilă în orice browser mobil (Yandex Browser, MIUI, Samsung Internet). Anterior era tăiată sub fereastră.
  • Meniul mobil este acum complet opac. Anterior, 5% din conținutul de fundal transpărea pe browserele fără suport pentru backdrop-filter.
  • Pe ecrane înguste (320px și mai puțin), lista derulantă de sortare a sarcinilor nu mai depășește marginea dreaptă.
  • Eroare veche de autocompletare: scrierea lui t.e după FROM employee t insera t.employee.salary (SQL invalid). Aliasul este acum respectat.
v1.0.010 apr. 2026

Prima versiune stabilă a SQL Arena.

Adăugat
  • 259 de sarcini SQL selectate în 6 categorii: SELECT, JOIN, agregate, subinterogare, fereastră, DML.
  • 96 de sarcini de interviu de la companii tech de top (Google, Meta, Amazon, Stripe etc.).
  • Suport pentru două dialecte SQL — PostgreSQL și MySQL cu comutare instantanee.
  • Generare de sarcini cu AI: sarcini unice adaptate la nivelul tău de competență.
  • AI Mentor: indicii contextuale fără a dezvălui răspunsul.
  • 3 trasee de învățare: parcursuri structurate de la bazele SQL până la SQL avansat.
  • Execuție SQL în timp real într-un mediu izolat, cu evaluarea rezultatului (diferențe de coloane/rânduri/ordine).
  • Autentificare OAuth prin GitHub, Google, Yandex, plus înregistrare cu e-mail/parolă.
  • Clasament bazat pe XP (Power), profiluri de utilizator, realizări, teme întunecate și luminoase.
  • Abonament Premium cu integrare YooKassa și limitare de rată anti-bot.
  • Diagrame ER de schemă interactive, editor Monaco cu evidențiere și formatare SQL.
  • Interfață bilingvă: rusă și engleză.