Mis on uut
SQL Arena uuenduste ajalugu. Uusimad versioonid üleval.
Every task is now solved by writing SQL — new task formats and catalog filters, plus new task packs.
- 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.
- 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.
- 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.
- 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.
- Removed a stray privacy notice banner on the user profile page.
Liides räägib nüüd kõiki EL-i keeli — 21 uut keelt.
- Lisatud 21 EL-i keelt: saksa, prantsuse, itaalia, hollandi, poola, rumeenia, kreeka, tšehhi, ungari, rootsi, taani, soome, slovaki, bulgaaria, horvaadi, leedu, sloveeni, läti, eesti, iiri ja malta keel. Vali keelevahetajast või tuvastatakse see automaatselt sinu riigi ja brauseri keele järgi.
- Leht „Teata veast“ on nüüd „Tagasiside“ (aadressil /feedback) kahe vahekaardiga: „Teata veast“ ja „Paku parendust“. Parendusettepanekud jõuavad meeskonnani samamoodi nagu veateated.
- Profiili seadetes on nüüd näha tellimuse lõppkuupäev ja sõnastus „ühekordne makse“ on eemaldatud.
- Keelevahetaja rippmenüü on nüüd kompaktsem.
- Profiilid avanevad sisselogitud kasutajatele taas edetabelist — privaatsus peidab profiili ainult anonüümsete külastajate eest. Profiili URL-i nime ei saa enam kustutada, seega jääb iga profiil lingi kaudu kättesaadavaks.
- Välismaise kaardiga (Visa/MC vahekaart) tasumine vene saidil arvestatakse nüüd õigesti USD-s ja töödeldakse Paddle'i kaudu, selle asemel et avada YooKassa rublasummaga.
Sertifitseerimine: soorita ajastatud eksam ja teeni kontrollitav tasemesertifikaat.
- Sertifitseerimiseksamid: kolm taset (Foundations / Practitioner / Expert), igaühel 8 ülesannet, ülesandepõhine taimer, läbimispiir 7 punkti 8-st. Iga katse saab oma andmestiku, nii et vastuseid ei saa ette pähe õppida.
- Kontrollitav sertifikaat QR-koodiga, mis viib sinu avalikule profiilile; profiilile ilmus nüüd sertifikaatide jaotis.
- Kustuta oma konto otse profiili seadetest.
- Profiili seaded kujundati ümber puhtas jaotistega loendi stiilis; Premium-kasutajad saavad avatari ümber animeeritud ringi.
- Hindamine on 324 ülesandel tugevdatud: see töötab nüüd peidetud andmestikul, nii et enam ei saa läbida nähtava näite järgi sobitades.
- Redaktori automaatlõpetus pakub nüüd FROM/JOIN sisestamisel WITH-iga deklareeritud CTE nimesid.
- AI Mentor näeb nüüd sinu viga ja praegust päringut isegi pärast Run'i — uus nupp "Explain my error" laseb arutada mis tahes viga, sealhulgas süntaksivigu.
- Ülesanne #91: hindamine töötab nüüd peidetud andmestikul — enam ei saa läbida nähtava näite järgi sobitades (nt LIMIT'i või kõvasti kirjutatud pikkuse abil).
- Ülesanne #13: ülesande tekstist eemaldati valmis filtrivihje — nüüd tuletad lahenduse ise.
- Oskuste kaart katab nüüd kõik ülesandekategooriad (lisatud CTE, DDL, transaktsioonid, optimeerimine) ning on suurem ja loetavam.
- Oskuste kaardi vihje "mida parandada" osutab nüüd kõige rohkemate lahendamata ülesannetega teemale, mitte juhuslikule.
- Aastane aktiivsusgraafik näitab taas täielikke kuunimesid, mitte ei lõika neid üheks täheks.
- Lahendused, mis tagastavad ajaintervalli (nt kahe aja vahe), ei anna esitamisel enam viga.
- Ülesanne #88: andmed parandatud — Pariisi väljumistel on nüüd erinevad kestused, mitte kolm identset rida.
- Tagasivõtmine (Ctrl+Z) redaktoris hoiab nüüd iga päringuvahekaardi jaoks eraldi ajalugu.
- Ülesanne #624: ülesande tekstis on nüüd öeldud, et keskmine hind tuleb ümardada 2 kümnendkohani.
- SQL-redaktori soovitused ei dubleeri enam pärast ülesannete vahel liikumist.
- Ülesanne #621: liikmeteta klubid ilmuvad nüüd tulemusse nulltuluga.
- Ülesande #831 raskusaste muudeti EXPERT-ilt MEDIUM-iks.
SQL Arena on nüüd mitmekeelne: inglise, hispaania ja portugali keel, igaühel oma lehe-URL-id ja automaatne piirkonna tuvastus.
- Keelevahetaja: vene, inglise, hispaania (Hispaania ja Ladina-Ameerika) ja portugali keel.
- Esimesel külastusel avaneb sait sinu piirkonna keeles ja sinu valik jäetakse meelde.
- Igal keelel on oma lehe-URL-id (/en, /es, /es-419, /pt-br), mida saab ohutult jagada.
- Premium-ostlemine sinu kohalikus valuutas: RUB, USD, EUR või BRL olenevalt piirkonnast.
- Ingliskeelne sait on täielikult toetatud; hispaania- ja portugalikeelsed tõlked tulevad järk-järgult.
Tabeliloomise ülesanded aktsepteerivad iga kehtivat vormi, veavihjed on nüüd asjakohased ja üks mitmetähendusliku vastusega ülesanne parandati.
- Ülesanne "kõige populaarsem kursusepaar": näidisandmed lubasid mitut võrdselt kehtivat vastust, samas kui hindaja aktsepteeris ainult ühte. Ülesandel on nüüd üks õige vastus.
- CREATE TABLE ülesanded lükkasid tagasi õige lahenduse, kui õppija andis kitsendusele nime (nt
CONSTRAINT ... PRIMARY KEY). Hindamine võrdleb nüüd tabeli struktuuri — kitsenduste nimesid ignoreeritakse. - Ebaõnnestunud tabeliloomise ülesanne näitas asjakohatut "lisa ORDER BY" vihjet. Vihje on nüüd asjakohane — veergude, tüüpide, NOT NULL ja võtmete kohta.
Andmemuutmise ülesanded lahendatakse täpselt nii, nagu ülesandes öeldud — ilma dokumenteerimata kontrolliva SELECT-ita.
- INSERT/UPDATE/DELETE ja transaktsiooniülesanded (sh UPSERT, MERGE, SKIP LOCKED) ei nõua enam dokumenteerimata kontrollivat SELECT-i. Neid hinnatakse nüüd tabeli lõppoleku järgi ja ülesande lehel kuvatakse märkus "lõpetav SELECT pole vajalik".
- Parimad lahendused: teeninduskontod ei ilmu enam loendisse — kooskõlas avaliku edetabeliga.
Tabeli- ja indeksiloomise ülesanded lahendatakse nüüd täpselt nii, nagu ülesandes öeldud — ilma dokumenteerimata SELECT-ita; reaalajas edetabeli värskendus töötab taas.
- DDL-ülesanded (CREATE TABLE, ALTER, CREATE INDEX, võõrvõtmed) ei nõua enam dokumenteerimata kontrollivat SELECT-i. Neid hinnatakse nüüd andmebaasi lõppskeemi järgi ja ülesande lehel kuvatakse märkus "lõpetav SELECT pole vajalik".
- Edetabeli leht: reaalajas värskendus taastatud — edetabeli WebSocket-ühendus ei katke enam.
- Skeemidiagramm: mõnel ülesandel ei kuvatud tabelite vahelisi seoseid — võõrvõtme nooled ilmuvad nüüd diagrammile.
- Dialoog "Õige!" ei näita enam koha langust ülespoole edutamisena — astme märk ilmub ainult tegeliku edutamise korral.
CREATE / ALTER TABLE ülesandeid ja muid mitmeastmelisi lahendusi saab taas esitada — esitusepõhine lausete piir oli liiga range.
- Esitusepõhine lausete piir tõsteti 3-lt 20-le: DDL-ülesandeid (CREATE TABLE, ALTER, indeksid, päästikud) ja mitmeastmelist DML-i ei lükata enam tagasi veaga "liiga palju lauseid".
Kataloogiülesannete MySQL-variant on taas PostgreSQL-iga sünkroonis — mõnda MySQL-ülesannet hinnati vananenud andmete järgi.
- Sadade ülesannete MySQL-variant töötas vananenud andmestikul — algandmed sünkroonitud uuesti, MySQL-i vastus vastab taas PostgreSQL-ile.
- Kuus ainult PostgreSQL-is töötanud ülesannet said nüüd toimiva MySQL-variandi.
- CREATE TABLE / CREATE INDEX / ALTER ülesandeid hinnatakse tabeli lõppskeemi järgi — vale struktuuri ei loeta enam õigeks.
- CURRENT_TIMESTAMP / NOW() kasutavad INSERT-ülesanded ei lükka enam õiget vastust tagasi käivitusaja vahe tõttu.
- Näiteväljundid, mis kogemata paljastasid täpse vastuse, on asendatud spoilerivabade näidetega; rea järjekorda jõustatakse seal, kus ülesanne seda nõuab.
- Kataloogiülene audit joondas ülesande teksti, hindamisandmed ja viitelahenduse mitmekümnel ülesandel, kus need olid lahknenud.
Parandati mitmelauseliste lahenduste hindamine — lõpetava SELECT-iga DELETE/UPDATE hinnatakse nüüd õigesti.
- Kuupäevad ja kellaajad päringutulemustes kuvatakse nüüd puhtalt kujul
2024-01-15 08:00:00, mitte tehnilises ISO-vormingus.
- Kontrolliva SELECT-iga DML-ülesanded (DELETE, UPDATE, INSERT) ei lükka enam õiget vastust tagasi "liigsete veergudena".
- Ülesanne #768: ülesande tekst vastab nüüd hinnatavale vastusele.
- Vale vastuse vihje ei soovita enam võrrelda näiteplokiga, mis on tahtlikult ebatäpne.
- Puhtaid UPDATE / DELETE / INSERT ülesandeid hinnatakse nüüd tabeli lõppoleku järgi — vale muudatust ei loeta enam õigeks.
Parandati viis ülesannet, kus ülesande tekst ei vastanud skeemile ja vastusele.
- Ülesanded #762, #763, #764, #765, #809: tekst kirjutati ümber, et vastata tegelikule skeemile ja oodatud vastusele.
- AI ülesannete genereerimine, AI Mentor ja vearaporti vorm: päringupiirangu korral näitavad need nüüd "proovi uuesti N sekundi pärast", mitte "ThrottlerException".
Parandati ülesanne #17 — hindaja tagastas skeemivea tõttu NULL.
- Ülesanne #17 (
average-post-hiatus): skeem joondati algandmetega, hindaja töötab taas.
Ülesandel "Move old rows to archive in one go — race-free" (#789) küsis tekst veergu customer_id, mida skeemis pole. Sõnastus on nüüd kooskõlas tegeliku skeemi ja hindajaga: id, status, amount.
- Ülesanne #789 (
hard-cte-atomic-archive): kirjeldus mainis olematut veergucustomer_id. Sõnastus vastab nüüd skeemileorders/orders_archiveja oodatud veergudeleid, status, amount.
Teade "liiga palju päringuid" näitab nüüd täpset piiri ja sekundeid lähtestamiseni krüptilise "ThrottlerException" asemel. Serveripoolne päringupiirang on tõstetud, nii et kiire raja-navigeerimine ei jõua enam laeni.
- Serveripoolne päringupiirang tavalistele API-päringutele on tõstetud 5×. Kiire edasi-tagasi liikumine raja ülesannete vahel (10+ paralleelset mount-päringut) ei jõua enam laeni ega anna 429-t.
- Kui Submit'il või Run'il tabab päringupiirang, näitab teade nüüd tegelikku piiri ja täpseid sekundeid uue katseni. Varem ilmus vaid krüptiline "ThrottlerException: Too Many Requests" ilma oote-vihjeta.
Raja kaardil olev "Start" käivitab taas raja — nähtamatu kaardilingi kiht püüdis kliki ja suunas selle raja detaililehele.
- Lehel
/trainer/tracksei suuna raja kaardil olev nupp "Start" enam raja detaililehele raja käivitamise asemel. Kogu kaardi klikk → detailid on säilitatud.
SQL-liivakast: too oma tabelid ja päringud — ilma ülesande ja hindamiseta. Pluss ühtne lai bento-paigutus edetabeli, edenemise, radade, ülesannete ja seansside lehtedel.
- Uus leht
/sandbox— Monaco redaktor, skeemipaneel, tulemuspaneel, tabelipõhised andmevahekaardid, soojendusnäidised. Anonüümsed seansid aeguvad 30 min jõudeoleku järel, sisselogitud kasutajad saavad 7 päeva. - Salvestatud fiddle'id: kuni 5 tasuta tasemel, piiramatult Premium'is. Teek otsingu, lingi kopeerimise, kustutamise ja privaatsuse lülitiga.
- Ühtne lai paigutus isikliku ala lehtedel — My Fiddles, Progress, Leaderboard, Sessions, Tasks, Tracks ja raja detailileht jagavad nüüd ühte kesta gradientse hero ja ühtse kaardiruudistikuga.
Koha muutuse nooled edetabelis on tagasi — varem oli veerg tühi, kuna polnud baashetktõmmist, millega võrrelda.
- Indikaator "tõusis / langes / muutusteta" on iga rea kõrval edetabelis tagasi. Eelmise nädala baashetktõmmis on külvatud; regulaarne iganädalane cron värskendab seda edasi.
Parandati viga, kus juba lahendatud ülesande uuesti esitamine eemaldas vaikselt Power'i — "esimese katse" boonus kustus. Kõigi mõjutatud kasutajate Power on ümber arvutatud.
- Juba lahendatud ülesande lahenduse uuesti esitamine ei kustuta enam "esimese katse" boonust — selle ülesande Power jääb samaks nagu kohe pärast esimest edukat esitamist.
- Ülesanne #107 (raamatužanride kulujaotus 2005. aasta kohta) ei nõua enam kindlat rea järjekorda — nüüd aktsepteeritakse mis tahes järjestust, vastavalt ülesande sõnastusele.
Parandati mitme ülesande andmebaasi skeemipaneel — seotud tabelite vahelisi oranže seosjooni ei joonistatud.
- Mõnel ülesandel ei näidanud paneel "Skeem" tabelite vahelisi seoseid (oranžid 1:N nooled) — puuduvad seosed lisati andmestikele.
Parandati ülesanne "Split customers into low / mid / high spenders": näidisvastus ja viitelahendus olid ülesande tekstist lahknenud — nüüd kasutavad kõik kliendi id-d ja segmente low / mid / high.
- Ülesanne "Split customers into low / mid / high spenders" (#757): näidisvastus ja viitelahendus vastavad nüüd ülesande tekstile — veerud
customer_id,segment, segmendidlow/mid/high, järjestatudcustomer_idjärgi.
Suur "Arena" rebränding: uus avaleht, nullist üles ehitatud edetabel poodiumi ja reaalajas värskendustega, punktid ümber nimetatud "Power'iks" lahingukirve brändimärgiga, õpperajad uuesti üles ehitatud ning kohanduv AI ülesannete genereerimine, mis päriselt loeb sinu hiljutisi esitusi.
- Uus vahekaart "League" — 30 sulle Power'i poolest lähimat kasutajat. Raskusastme filtrid globaalsel vahekaardil (Power arvutatakse iga redeli jaoks ümber). Tõusu / languse nooled iga koha kõrval — nädalane liikumine.
- Saavutused: emojid on asendatud kategooria järgi värvitud vektorikoonidega, brauseri kohtspikrid näitavad lokaliseeritud nimesid; lehel
/statson see ruudustik mobiilis puudutuse-hüpikutega. Uus saavutus "10 Expert". - Hõlju edetabelis nime kohal, et näha mini-kasutajakaarti. Nupp "Share rank" — link viib sinu avalikule profiilile OG-eelvaatega.
- Avaleht kirjutati ümber "Arena" brändi all: löökjooneline pealkiri "Sharpen SQL. Take the offer.", reaalajas tulemustabel hero's, astmeredel "You" tähisega, jaotised treeneri / radade / AI / Mock Interview režiimi / edenemise kohta ning lõpetav riba "The axe is in your hand. Swing.". Mobiilivalmis.
- Punktid nimetati ümber "Power'iks". Välgunool on asendatud lahingukirvega — see on nüüd nii logos, faviconis kui ka lingijagamise eelvaates.
- Edetabeli leht kirjutati nullist ümber: top-3 poodium (kuld / hõbe / pronks), isiklik edenemiskaart ribaga järgmise astmeni, üks kleepuv filtririba, astmeredel kohe päise all, kinnitatud "sina" rida, kui oled väljaspool top 50, ja reaalajas värskendused — tabel reageerib sujuvalt teiste lahendustele ilma uuesti laadimata.
- Õpperajad uuesti üles ehitatud. Analyst / Backend / QA / Data Engineering — igaühel ~50 valitud ülesannet: mõni esindaja iga teema×raskuse lahtri kohta, soojendusest kuni EXPERT-ini, kaldega päris-intervjuude ülesannete suunas. Lisatud Data Engineering rada pluss eraldi intervjuuks valmistumise rada.
- Nupp "Generate for me" on nüüd päriselt kohanduv: see loeb sinu viimast 40 esitust, valib viimasel ajal kõige halvema täpsusega teema ja kalibreerib raskuse sinu tasemele — takerdumine langetab järgmise astme võrra, hooseeria tõstab seda.
- Uued külastajad satuvad vaikimisi teemale "Night" (varem "Evening"). Kui oled juba teema valinud, jääb sinu valik alles.
- Ülesanne "Say in one number: how many active customers" — kanooniline lahendus nõudis kliente ≥2 makstud tellimusega, kuigi kirjelduses on "at least once". Parandatud kirjeldusele vastama.
EXPERT-ülesanded annavad nüüd lahenduse eest tõelist 75 power'it (boonustega kuni 281), mitte EASY-taseme 10. Juba EXPERT-i läbinud kasutajate eluaegne power on tagasiulatuvalt ümber arvutatud.
- Tasude tabelis polnud EXPERT-i rida, nii et hindaja kasutas vaikeväärtust 10 ja iga EXPERT-ülesanne maksis sama palju kui EASY. EXPERT-i baas on nüüd 75 power'it, samade peale laotavate kordajatega (esimene katse ×2, Mock Interview läbimine ×1.25, premium-lahendus ×1.5) — kuni 281 power'it ühe EXPERT-ülesande kohta. Migratsioon arvutas iga profiili
xp_totalparandatud reeglite alusel uuesti läbi, nii et igaüks, kes oli juba EXPERT-i lahendanud, saab puuduva power'i automaatselt.
Suleti lünk, kus ülesannet sai "lahendada", kirjutades näiteväljundi kõvasti sisse: 25 andmestikul kontrollib hindaja nüüd sinu päringut peidetud ridade vastu, mis erinevad ülesande kirjelduses näidatutest.
- Lahendused töötavad endiselt samade tabelite ja veergude vastu nagu varem, kuid hindamise algandmete read erinevad nähtavast näidisest. Iga ehtne päringupõhine vastus läbib endiselt, samas kui kõvasti kirjutatud
SELECT … UNION ALL …, mis kopeeris näidise literaalid, saab nüüd hindeks "vale". Kaetud on 25 andmestikku viimasest katalogipartiist (loendid, CTE, aken, pivot, DML, expert).
Lapiti kaks õppijate raporteeritud ülesandeprobleemi: vale järjestusega näidis ülesandes "Students by region" ja netotulu ülesandes skeemist lahknenud kirjeldus.
- Ülesanne "Students by region" (#357): näidis tõuseb nüüd
rnjärgi (Jack / Kim / Lars esimeses reas) ja viitelahendus sisaldab selgetORDER BY rn, nii et see annab sama järjekorra. - Ülesanne "Users with net revenue of at least 100" (#783): pealkiri ja kirjeldus vastavad nüüd tegelikele andmetele — kasutajad ja sündmused
purchase/refund, mitte tooted jasale/refund, lävega 100, mitte 1000.
Kuus edasijõudnute ülesannet tulevad nüüd eelnevalt täidetud tabeliga — lahendused ei alga enam CREATE TABLE eessõnaga.
- Kuus Hard / Expert ülesannet (ühe- ja mitmeveeruline UPSERT, CTE koos
RETURNING-uga, hulgiINSERT … RETURNING,SKIP LOCKEDjärjekord, massiivi lahtiharutamineUNNEST-iga) liitusid ülejäänud edasijõudnute kataloogiga: tabel luuakse ja täidetakse andmestikus ning lahendus hoiab vaid testitava operatsiooni pluss lõpetavaSELECT-i hindamiseks.
- Ülesande "View counter" kirjeldus ei lahkne enam oodatud väljundist: mõlemad kirjeldavad nüüd sama tabelit
counters(id, count)ja sama rea viit käivitust.
DDL-ülesanded ei näita enam külgskeemipaneelis seosetuid tabeleid.
- 10
CREATE TABLEülesandel (lihtsast kuni expert-ini) renderdas külgskeemipaneel seosetu andmestiku tabeleid — nt artiklite ülesanne näitasorders. Paneel on nüüd tühi, nagu peabki olema, kui ülesanne palub ehitada tabeli nullist.
115 uut ülesannet, kolmerežiimiline Day / Evening / Night teemavahetaja ja pehmem tume palett.
- Kataloog kasvas 115 ülesande võrra: 20 lihtsat, 35 keskmist, 45 rasket ja 15 expert-i — alampäringud, CTE-d, aknafunktsioonid, DML/DDL, MERGE, päringuoptimeerimine, transaktsioonid, JSONB, rekursioon ja
LATERAL. - Uus raskusaste «Expert» violetse märgiga ja oma filtriga kataloogis.
- Kolmerežiimiline teemavahetaja: Day (hele), Evening (pehme tume) ja Night (sügav) — vali ümbritseva valguse järgi, et silmi säästa.
- Tume teema pehmendatud: lõuend liikus Linear-stiilis hallsinisele (
#1B1B1F) varasema peaaegu musta asemel, põhitekst langes zinc-300-le — vähem halatsiooni pikkadel seanssidel. - «Night» režiimis istub SQL-redaktori paan lõuendist kolm astet sügavamal kerge nihkega päris-musta poole — loeb end varjatud paneelina samas perekonnas.
- Ülesandesisene teemaspikker on nüüd raskusastet arvestav: Hard / Expert astmetel peidab põhilised
SELECT/WHERE/ORDER BY/LIMITja toob esile edasijõudnute mustrid —STRING_AGG,ARRAY_AGG,GROUPING SETS,LATERAL, JSONB, osalised indeksid ja nii edasi. - Aktiivsed raskusfiltri pillid läksid üle brändiaktsendi pehmele täitele tugeva musta asemel — need ei riku enam hele teema välimust.
- Venekeelsed raskuse sildid: «Лёгкое» → «Лёгкий», «Среднее» → «Средний», «Сложное» → «Сложный».
24 uut algajatele mõeldud blogiartiklit.
- Teemade kate laienes: DML (
INSERT/UPDATE/DELETE), DDL (CREATE TABLE/ALTER TABLE), agregaadid,DISTINCT, NULL-i käsitlus (CASE WHEN/COALESCE/NULLIF), CTE-d ja alampäringud, aknafunktsioonid, sõne ja kuupäev.
- Treeneri spikker: iga punkt osutab nüüd oma artiklile. Varem viitasid neli aknafunktsiooni punkti ühele ülevaatele —
ROW_NUMBER,RANK/DENSE_RANK,PARTITION BYjaLAG/LEADigaühel on nüüd oma.
- Ülesanne #114 "How many cardiology wards" — oodatud väljundi veerg nimetati ümber
count-istwards_count-iks, et see ei läheks enam visuaalselt segamini reserveeritud märksõnaga.
Suleti vastusetäidise lünk: ülesandeid hinnatakse nüüd peidetud andmestiku vastu.
- Hindaja oskab nüüd ülesannet peidetud andmestiku vastu jooksutada. Kanooniline viide arvutatakse samadel andmetel uuesti, nii et õiged lahendused läbivad endiselt, samas kui nähtavast näidisest laenatud konstandid kukuvad läbi.
- Ülesanne "Oldest club member" ei aktsepteeri enam nähtava näidise järgi sobitatud kõvasti kirjutatud
LIMIT-i — läbib ainult päring, mis väljendab "kõik read minimaalse sünnikuupäevaga".
Hinnakaardi viimistlus ja "Sign in & subscribe" nupu parandused kohe pärast v2.2.0.
- Hind ja CTA-nupp Free ja Premium kaartidel joonduvad nüüd samale Y-le.
- Kärbiti Crypto ja Visa/MC hinna joonealuseid märkusi — alles jääb ainult maksesüsteemi nimi.
- Nupp "Sign in & subscribe" on välja logitud kasutajatele taas klikitav.
Lisati krüpto- ja rahvusvahelised Visa/Mastercard-maksed, pluss tugevdati autentimisvoo robotitõrjet.
- Krüptomaksed NowPaymentsi kaudu — BTC, ETH, USDT ja teised. $21 kvartalis / $28 poolaastas.
- Rahvusvaheline Visa/Mastercard Paddle'i kaudu automaatse käibemaksu/müügimaksuga. $21 / $28.
- Maksemeetodi valija Premium-kaardil: RU kaart, Crypto, Visa/MC. Valuuta vahetub meetodi järgi.
- Cloudflare Turnstile sisselogimisel ja registreerimisel — inimestele nähtamatu, blokeerib roboteid.
- Konto lukustub 15 minutiks pärast 5 vale parooli (eksponentsiaalselt kuni 24 h) selge pöördloendusega.
- Sisselogimise ja registreerimise vead on inimlikustatud — enam pole toorest "Forbidden" ega "Invalid credentials".
- Esituse päringupiirang: 5/min, 30/15min kasutaja kohta. Ei mõjuta tegelikke lahendamisseansse.
- Pärast sisselogimist naaseme lehele, kust tulid — sealhulgas OAuth (Google, GitHub, Yandex).
- Avalikult lehelt välja logimine ei viska sind enam avalehele.
Lõpetati Telegrami, GitHubi ja LinkedIni salvestusparandus profiililehel. Eelmine väljalase parandas kasutajanime normaliseerija taustal, kuid esikomponent lühistas onBlur'i — PATCH ei läinud kunagi tegelikult välja. Väli aktsepteeris sisendit visuaalselt, server jäi tühjaks ja pärast uuesti laadimist oli väli tühi. Nüüd kasutab blur-võrdlus fookuse hetkel salvestatud väärtust, mitte käimasolevat sisendit.
- Telegrami, GitHubi ja LinkedIni väljad profiililehel salvestavad nüüd taas. useEffect kirjutas "viimati salvestatud" viite igal klahvivajutusel üle, nii et onBlur-kontroll võrdles praegust väärtust iseendaga ja jättis PATCH-i vahele. Blur-kontroll võrdleb nüüd fookuse hetkel võetud hetktõmmisega.
Parandati Telegrami, GitHubi ja LinkedIni tunnuste salvestamine profiililehel: kohatäite vormingu nagu t.me/username sisestamine kärbiti rämpsuks nagu t.me. Nüüd normaliseerub iga sisend — paljas tunnus, @handle, t.me/handle või https://t.me/handle — puhtaks kasutajanimeks.
- Telegrami, GitHubi ja LinkedIni väljad profiililehel salvestavad nüüd õigesti, kui aadress on sisestatud ilma
https://. Varem salvestatit.me/durovkuit.me,github.com/octocatkuigithub.com, kuna normaliseerija nõudishttp(s)://skeemi ja muidu lõikas väärtuse esimese kaldkriipsu juurest.
Eemaldati valepositiivne premium-lisamüügi bänner lahendustulemuse paneelis: see käivitus tasuta ülesannetel ja isegi premium-kasutajatel. See oli niikuinii surnud UI — premium-ülesanded blokeeritakse ülesande avamisel, nii et redaktor neid kunagi ei näe.
- Tähistuse modaalis "Correct!" on pillil "+50% Power per solve — go Premium" nüüd korralik horisontaalne polster — kroon ja nool ei puuduta enam pilli servi.
- AI Mentor saab nüüd kompaktse ülesandekonteksti: aktiivse SQL-dialekti, tabelid, seosed, oodatud veerud, näidisväljundi ja viimase hindamise diffi. Viite-SQL-i kasutatakse ainult privaatse kontekstina veaselgituste ja hilisemate vihjetasemete jaoks.
- Lisamüügi bänner "Interview tasks — Premium" on tagasiside paneelist kadunud. Varem käivitas iga serveripoolne viga, mille jälituses oli sõna
premium(nt puuduv veergsolved_as_premiumkohe pärast migratsiooni), alamsõne vaste ja renderdas lisamüügi — isegi tasuta ülesannetel ja isegi premium-kasutajatele.
Premium annab nüüd +50% Power'it iga lahendatud ülesande eest — boonus jääb ülesande külge igaveseks, isegi pärast tellimuse lõppemist. AI Mentor ei kalla enam lahendust esimese vihjega välja ja eskaleerib abi nüüd ülesandepõhiselt. Pluss eemaldati esimese ülesande redaktorist algkommentaar -- Click ▶ Run.
- Premium-tellimus annab iga lahendatud ülesande eest ×1.5 Power kordaja. Boonus lukustatakse lahendamise hetkel, nii et see jääb sinu kogusummasse isegi siis, kui tellimus hiljem aegub.
- Tähistuse modaal "Correct!" näitab nüüd tasuta kasutajatele uuendusele õhutust otse +Power kiibi all: "Get +50% Power per solve — go Premium", lingiga /pricing'ile.
- AI Mentor eskaleerib nüüd vihjeid ülesandepõhiselt. Esimene päring saab vaid suunava õhutuse ilma operaatorite nimedeta; päringud 2-4 lisavad kontseptsiooni ja kategooria; alates 5. päringust võib mentor nimetada
LIKE/WHERE/GROUP BYotse. Loendur lähtestub iga 24 tunni järel. - Vale vastuse selgitused järgivad nüüd samu vihjetasemeid nagu tavalised vihjed — need ei paljasta enam konkreetseid operaatoreid juba esimesel ebaõnnestunud esitusel.
- Suleti SQL-ülesannete auditi ülejäänud leiud: parandati Tournament Winners viide, joondati TIMESTAMP-eelvaated mitmel ülesandel ja taastati ühe AI-ülesande PostgreSQL-variant.
- Eemaldati algkommentaar
-- Click ▶ Run — see what's in this tableesimese ülesande redaktorist. Avatud ülesanded algavad nüüd tühjast redaktorist.
Töödeldi ümber ülesandekataloogi filtrid: olek muutus 3-olekuliseks segmenteeritud juhtelemendiks (All / Unsolved / Solved) vaikimisi Unsolved'iga, lisati dialektifilter, teema- ja ettevõttekiibid näitavad nüüd oma praegust ülesannete arvu, aktiivsed filtrid kuvatakse eemaldatavate pillidena koos "Reset all" võimalusega.
- Dialektifilter kataloogis: All / PG / MySQL — oma segment oleku juhtelemendi kõrval.
- Teema- ja ettevõttekiibid näitavad nüüd, mitu ülesannet sobib: "Windows (43)", "Tinkoff (5)". Nullülesannetega kiibid tuhmuvad.
- Aktiivsete filtrite pillide rida: iga rakendatud filter (otsing, raskus, olek, dialekt, lemmikud, teema, silt, ettevõte, piirkond) renderdub eemaldatava pillina; "Reset all" viib kõik tagasi vaikeväärtustele.
- Ülesande oleku filter on nüüd 3-olekuline segmenteeritud juhtelement (All / Unsolved / Solved), vaikimisi Unsolved. Asendab ainsa "Hide solved" lüliti.
- Sortimise juhtelement viidi ülariba — varem oli see maetud alla ja peidetud kerimise taha.
- Lemmikute lüliti viidi ülemisele filtrribale — nüüd teiste binaarsete lülitite kõrval.
- Filtrimärk ei näita enam vaikimisi "1" — vaikimisi "Unsolved" vaadet ei loeta rakendatud filtriks.
Kataloogiülene audit: hindaja ei lükka enam õigeid vastuseid tagasi DATE-vs-TIMESTAMP serialiseerimise tõttu, näidiseelvaated 60+ ülesandel vastavad nüüd sellele, mida viitelahendus tegelikult tagastab, ja 5 ülesannet, mis kasutavad CURRENT_DATE / NOW(), on kinnitatud fikseeritud viitele, nii et eelvaated ei triivi enam päevast päeva. Pluss kirjelduse parandus kuiste tehingute ülesandel kasutaja vearaporti põhjal.
- Hindaja: lisati kuupäeva-kui-timestamp normaliseerimine (
2024-01-01T00:00:00.000Z↔2024-01-01) — õiged vastused ei saa enam tagastustüübi vormingu tõttu "ridade arv kattub, sisu erineb". - Ülesanne "Monthly transactions and chargebacks": kirjeldus selgitab nüüd, et tagasinõue kuulub algse tehingu kuusse, mitte tagasimakse kuupäeva; eelvaade näitab kuu esimese päeva kuupäevi TZ-nihkega ISO-ajatemplite asemel.
- Regenereeriti näidiseelvaated 60+ ülesandel: numbrivorming (
100→100.00), ajavööndi kuva (+03→+00), DATE-kui-TIMESTAMP, INTERVAL-kui-objekt — eelvaade vastab nüüd sellele, mida reaalajas käitur tagastab. - Viis ülesannet, mis kasutavad algandmetes
CURRENT_DATE/NOW()/CURRENT_TIMESTAMP(#170, #601, #602, #668, #693), on nüüd kinnitatud ajale2026-05-05 12:00:00 UTC. Eelvaated ei triivi enam.
Töödeldi ümber blogi: otsing, navigeerimine 10 jaotise kaupa, esimesed 7 algajate õpetust. Käsunimed ülesandesisesis spikris on nüüd klikitavad lingid artiklitele. Väljalaadete leht sai versioonipuu koos scroll-spy'ga.
- Blogi: otsing pealkirjade, sisu ja siltide kaupa + vasak jaotiste külgriba. Aktiivne jaotis tõstetakse kerimisel esile.
- Blogi: 7 esimest algajate õpetust —
SELECT … FROM,WHERE,ORDER BY,LIMIT,INNER JOIN,LEFT JOIN, aliased. - Ülesandesisene teemaspikker: käsunimed on nüüd sinised lingid vastavale blogiõpetusele — avanevad uues vahekaardis.
- Väljalaadete leht: vasakpoolne versioonipuu rühmitatud
major.minorjärgi; klõpsamine kerib versioonini ja uuendab räsiankrut. - "Copy SQL" nupp igal real Submissions vahekaardil.
- Venekeelne mitmuse ühildumine kõikjal: "221 задача", "2 задачи", "5 задач" varasema "221 задач" asemel.
- Ülesandesisene teemaspikker ei vingerda enam laiendamisel — kerimisriba rada on nüüd reserveeritud.
- Markdowni tabelid blogiartiklites renderdatakse nüüd HTML-tabelitena, mitte üheainsa lihtteksti reana.
Kataloogiülene kvaliteedikontroll: parandati 23 lahendamatut ülesannet, kirjutati ümber 66 ingliskeelset kirjeldust, joondati veel mõnekümne kirjeldused ja näidiseelvaated. Pluss üks kasutaja raporteeritud parandus.
- Näidiseelvaated 50+ ülesandel vastavad nüüd sellele, mida viitelahendus tagastab.
- Ühendati dubleerivad ettevõttesildid ülesannete filtrikiipides.
- Parandati 23 ülesannet (pharma-*, loyal-*, hotel-*, qa-*), mida ei saanud skeemi/algandmete mittevastavuse tõttu lahendada.
- Kirjutati ümber 66 lc-* / lc2-* ülesande ingliskeelsed kirjeldused, mis varem sisaldasid tüvikat või fragmenti.
- Ülesanne "Rooms Booked on September 2, 2019" ei aktsepteeri enam vale vastust.
- Kümme ülesannet, kus kirjeldus oli viitelahendusega vastuolus, on nüüd kooskõlas.
- Seitse Tochka ülesannet sisaldasid kellegi teise ülesandeteksti — kirjutati ümber.
69 uut ülesannet, mis on võetud päris Vene tööturu töövestlustest (Yandex, Tinkoff, Sber, VTB, Alfa, VK, Ozon, Avito, Magnit, Samokat ja veel 23 ettevõtet) — üles ehitatud laiema PostgreSQL-i tüübiuniversumi ümber: UUID, JSONB, ENUM, INTERVAL, TSTZRANGE, INET, NUMERIC ja POINT. Pluss olulised parandused kasutajaraportite põhjal ja "What's new" punase täpi indikaator külgribal.
- 69 uut ülesannet, mis on võetud päris töövestlustest Vene ettevõtetes. 33 tööandjat: 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 ja Yandex Practicum. Kõik märgistatud Interview, ligipääsetavad Premium'iga.
- Rikkalikud PostgreSQL-i tüübid ülesannete skeemides. Enamik ülesandeid kasutas varem
INT+VARCHAR(100)— sobib õpikunäidete jaoks, kuid kaugel tootmisest. Uued ülesanded toovad sisseUUIDklientide ja tellimuste primaarvõtmeteks,NUMERIC(15,2)raha jaNUMERIC(12,4)valuutakursside jaoks,TIMESTAMPTZsündmustele,INTERVALkõnede ja seansside kestustele,TSTZRANGE/DATERANGE/NUMRANGESCD2 ajaloo ja kehtivusakende jaoks,JSONBmetaandmetele ja sündmuste laadungitele,ENUM(selgeCREATE TYPE-ga) olekutele ja kategooriatele,INETIP-dele antifraud-ülesannetes,POINTGPS-koordinaatidele,TEXT[]/INTEGER[]siltidele ja ID-massiividele. Nii puutub treener kokku samade tüüpidega, mida kohtad tootmises. - Punase täpi indikaator külgriba kirjel "What's new" — ilmub, kui on välja antud uus väljalase, mida sa pole veel avanud. Täpp kaob pärast ühte külastust lehele
/releases(lipp elab selle brauseri localStorage'is). Varem oli indikaator ainult ülanavigatsioonis; ainult-külgriba paigutustes polnud see kättesaadav.
- Uute tüüpide korrektne renderdamine päringutulemuse tabelis. Varem renderdati
JSONB,INTERVALjaPOINTveerud kui "[object Object]" ning massiivid (TEXT[],INTEGER[]) kokku komaga ühendatud sõnedeks — struktuur oli nähtamatu. Nüüd renderdatakse JSONB ja massiivid loetava JSON-ina, INTERVAL kui1d 02:30:00, POINT kui(x, y). Tõeväärtused ja UUID-d säilitavad oma tekstirenderduse. - Ülesande lehel olevad ER-diagrammid said uutele tüüpidele paletikirjed: UUID violetne, JSONB kollane, INTERVAL lilla (sama perekond nagu teised kuupäeva/aja tüübid), TSTZRANGE / DATERANGE / NUMRANGE roosa, INET tsüaan, POINT roosa, kohandatud ENUM-id roosakas. Varem langesid need tüübid vaikimisi halli ega olnud lihtsast INT / VARCHAR-ist eristatavad.
- Eespool kuus parandatud ülesannet said samuti rikastatud skeemi samas stiilis nagu uus intervjuukomplekt:
UUIDprimaarvõtmed,JSONBlaadungid,ENUMtüübid soo / kategooriate / olekute jaoks,NUMERIC(15,2)INT-i asemel palkade ja hindade jaoks,INTERVALkestustele. Ülesannete sõnastust kohandati veidi, et uusi tüüpe motiveerida, kuid aluseks olev probleem on muutumatu. See on esimene samm vanemate ülesannete uuendamisel — rohkem tulevastes väljalasetes.
- Parandati hulk vanemaid kasutajate raporteeritud ülesandeid. "Project Employees II" — ER-diagramm näitas Employee + Department'i Project + Employee asemel, kuigi aluseks olev skeem oli õige; viidi diagramm kooskõlla. "Reported Posts" — kirjeldus ei selgitanud, et raporti põhjus elab veerus
extra: nüüd selgitab. "Sales Analysis I" — viitelahendus kasutasSUM(price), kuigi skeemis on veergquantity, mis ajas segadusse; sõnastati ümber kuiSUM(quantity * price), lähemal päris tulule. "Swap Salary" — ülesanne oli ühendatud vale andmestikuga (Employee + DepartmentSalary(id, name, sex, salary)asemel), muutes selle lahendamatuks; ühendati ümber kanoonilise andmestikuga. Sama vaikne ER-triiv ülesannetes "Project Employees III" ja "Reported Posts II" sai sama paranduse.
Suur väljalase: uus vasakpoolne külgriba navigatsioon, range Mock Interview režiim +25% Power-boonusega, avalikud profiilid ja sõbrad, e-posti teavitused, brändivärvides ettevõttesildid, lisafiltrid ja partnerkursuste plokk. Pluss oluline kontodevaheline privaatsusparandus ja kümned UX-viimistlused.
- Partnerkursuste plokk. Ülesannete lehel (laiadel ekraanidel) näitab parempoolne veerg valitud partnerkursuste komplekti; mobiilis on see horisontaalne karussell loendi kohal. Kaardid lingivad UTM-siltidega partnerite maandumislehtedele — meile viis hoida tellimuse hinda madalal, kattes taristukulud.
- Uus Mock Interview režiim — range päris-intervjuu simulatsioon. Iga üksik rikkumine (vahekaardi vahetus, kleepimine, täisekraanist väljumine, > 1-sekundiline akna fookusekadu) laseb seansil automaatselt läbi kukkuda. Vihjed, AI Mentor ja spikker on peidetud ja lukus. Kestused: 5 / 10 / 15 / 30 / 60 minutit. Tasuta tase — 1 katse päevas; Premium — piiramatult. Kui seanss on käimas, on ümbritsev navigatsioon (külgriba, "Tasks", "Top solutions", "Next task", "Leave track", Prev/Next/Random) lukus — ainus väljapääs on selge "End" nupp või vahekaardi sulgemine (mis seansi automaatselt hülgab).
- +25% Power iga Mock Interview režiimis lahendatud ülesande eest — boonus on ülesandepõhine ja märgitud seansijärgsel raportil. Edetabelil on nüüd informatiivne "Mock" veerg (sama arv kuvatakse profiilikaardil ja lehel
/u/<username>); see ei mõjuta Power-põhist sorteerimisjärjekorda. - Avalikud profiilid aadressil
/u/<username>: vali lühike tunnus ja lülita avalik lüliti sisse — iga anonüümne külastaja näeb sinu astet, Power'it, praegust hooseeriat, saavutuste arvu, aktiivsuse soojuskaarti ning GitHubi / Telegrami / LinkedIni linke. Privaatandmeid ei paljastata. - Sõbrad: lisa kasutajaid nende avaliku tunnuse järgi, halda sissetulevaid ja väljaminevaid taotlusi, vaata pühendatud sõprade-edetabeli vahekaarti nende Power'i, hooseeria ja lahendatud ülesannetega.
- Lemmikud: igal ülesandekaardil on nüüd täht — klõpsa seda ja ülesanne satub filtrisse "Favourites only". Loend elab serveris sinu kontoga seotuna ja säilib brauserivahetuste üle.
- E-posti teavitused (lülitid profiilis). "Save your streak" — õhtune meeldetuletus, kui sinu hooseeria on ≥ 3 päeva ja sa pole täna midagi lahendanud. "Weekly digest" — laupäevahommikune kokkuvõte eelmise nädala lahendatud ülesannete, praeguse hooseeria ja nõrgima kategooriaga.
- Premium-kasutajad on visuaalselt märgistatud kõikjal, kus avatarid ilmuvad: holograafiline gradientne ring (edetabel, sõbrad, profiil, külgriba, avalik
/u/<username>leht); väike Crown-märk nurgas suurtel avataridel. Ei mõjuta sorteerimisjärjekorda. - Brändivärvides ettevõttesildid ülesandekaartidel: kollane Yandex / Tinkoff / Beeline jaoks, roheline Sberbank / Spotify / OpenAI jaoks, sinine VK / Ozon / Google / Meta jaoks, punane MTS / Alfa / Tesla jaoks, lilla Stripe / Skypro / Wayfair jaoks, oranž Amazon / Alibaba jaoks ja nii edasi. Varem oli iga silt üheainsa violetne.
- Lisa-SQL-klausli kiibid "Topic" filtris ülesannete lehel: 8 laia kategooria (SELECT, JOIN, alampäringud, aken, agregaadid, CTE, DML, DDL) kõrval saad nüüd lülitada
GROUP BY,COUNT,HAVING. Sega neid kategooriatega teravamaks filtreerimiseks. - Paneeli "DB Schema" ülesande lehel saab nüüd kokku panna. Lüliti ülesande pealkirja kõrval peidab veeru ja vabastab laiust redaktorile ja tulemuste tabelile. Kokkupandud olek jäetakse brauseripõhiselt meelde, nii et skeem avaneb järgmisel ülesandel samamoodi.
- 8 uut intervjuuülesannet Tochkalt — vahemikus EASY-st HARD-ini. CRM-stsenaariumid (leia aktiivse taotlusega kliendid), portfellide arvutused (struktuur, kaalutud keskmine tähtaeg, väärtuse dünaamika), võlakirjapäringud aknafunktsioonidega. Lahendused nii PostgreSQL-ile kui MySQL-ile.
- Blogi jaotis aadressil
/blog. Pikemad õpetused — alustame aknafunktsioonide süvaülevaatega. Kakskeelne sisu, slug-URL-id, OG-kaardid sotsiaalmeedias jagamiseks. Ligipääsetav jalusest ja külgriba alaosast. - Kohandatud 404 leht. Vana Next.js vaikeleht renderdas musta teksti valgel — pimedas režiimis nähtamatu. Uus leht kasutab teemažetoone ja elab jagatud kesta sees, hoides navigatsiooni käeulatuses.
- Navigatsioon kujundatud ümber. Sisselogitud kasutajatele rakenduse sees on põhinavigatsioon liikunud vasakule külgribale — Trainer, Progress, Leaderboard ja teised jaotised elavad seal, Power + hooseeria sinu avatari all ning keele/teema lülitid all. Maandumisleht, hinnastamine ja autentimisvood säilitavad peenikese ülariba. Utiliitlehed (What's new / Report a bug / Blog) pärivad selle kroomi, kust tulid.
- Premium-gradientne ring avataride ümber kuvatakse nüüd igal edetabeli vahekaardil — varem ilmus ring ainult "All time" vahekaardil ja kadus vaikselt "Week" ja "Month" pealt, kuna taust ei väljastanud perioodiliste edetabelite jaoks tellimuse lippu.
- Nime ja avatari muudatused sinu profiilis kajastuvad nüüd külgribal kohe — lehe uuesti laadimist pole vaja. Varem võis vana kasutajakaart püsida kuni täieliku värskenduseni.
- Kontodevahelised andmelekked kasutajate vahetamisel samas brauseris. Varem võisid pärast väljalogimist / sisselogimist teise kontoga need püsida: AI Mentor vestlusajalood, SQL-mustandid redaktoris, ülesandepõhised "lahendatud" lipud, aktiivsed mock-intervjuu seansid, AI-genereerimise loendur, lemmikute vahemälu. Nüüd pühib väljalogimine ja iga sisselogimistee (vorm, OAuth, e-posti kinnitus) ära kõik eelmise kasutajaga seotu.
- Link "Friends rating" profiilist viib nüüd otse sõprade vahekaardile — varem viskas sind globaalsele edetabelile. Algajate rada "Start here" ei tule enam tagasi pärast seda, kui oled selle eemaldanud; varem lähtestus eemaldamine igal väljalogimisel / sisselogimisel.
- Kümned mobiilipaigutuse ja interaktsiooni viimistlused: kompaktsem seansijärgse raporti modaal, õige filtrivahemik kitsastel ekraanidel, tagasiside bänner ei kattu enam külgpaneeliga 1024px juures, nime + e-posti väljad vearaporti lehel anonüümsetele esitajatele.
Redaktori UX-i kiirparandus kitsastel ekraanidel: hüpik "Editor settings" ei lõika enam koodipaneel kinni ega vala mobiilis vaateava servast üle. Sama hammasratta nupp, mis on lauaarvutil, elab nüüd ka mobiili tööriistaribal ja fondisuuruse seade rakendub lõpuks mobiiliredaktorile.
- Hüpik "Editor settings" võis lehe servadest kinni lõigata ja sellel polnud sisemist kerimist — kitsal sülearvutil või telefonil oli pool seadetest lihtsalt nähtamatu. Hüpik renderdub nüüd kogu lehe peal (portaali kaudu), klammerdub automaatselt nähtava alaga ja kasvatab sisemise kerimisriba, kui selle sisu ületab vaateava kõrguse. Pealkirja ja sulgemisnupuga päis jääb kerimisel kleepuvaks.
- Mobiili redaktori vaates (≤1024px) puudus tööriistaribal redaktoriseadete hammasratas — "Font size" oli kättesaadav ainult lauaarvutilt. Hammasratas istub nüüd PG/MySQL ja Format kõrval ja fondisuuruse seade päriselt skaleerib mobiiliredaktori sisendit.
Kiirparandus vearaporti põhjal: ülesanne #240 ("Staff Bonuses") renderdas vale skeemi — see näitas Employee + Department-i tegeliku Employee + Bonus-e asemel, muutes ülesande teksti loetamatuks.
- Ülesanne #240 "Staff Bonuses": skeemivaatur renderdas vananenud tabeleid
Employee + Department(väljadegadepartment_id,manager_id) ja tühjaDepartmentvahekaarti. Liivakast ja viitelahendus olid kogu aeg õiged — viga oli ainult vaaturi metaandmetes. Nüüd näitab skeem päris-tabeleidEmployee + BonusseosegaBonus.empId → Employee.empId.
Rikastasime andmestikke 268 ülesandel 339-st — täielikumad lähtetabelid, sisukamad read oodatud väljundis, ülesanded ei tundu enam katki.
- Massiline andmestike rikastamine: 268 ülesannet 339-st said täielikumad algandmed — tavaliselt 6-12 rida põhitabelites 2-4 asemel, mitmekesisusega piki filtri/JOIN/GROUP BY telgi, mida viitelahendus rakendab. Puudutati 137 unikaalset andmestikku. Viitelahendused ja skeemid on muutumatud. Kasutaja edenemine on säilitatud — juba lahendatud ülesanded jäävad lahendatuks, Power'it ja saavutusi ei arvutata ümber.
- Iga rikastatud ülesanne valideeriti: viitelahendus jooksutati uue algandmestiku vastu käituri kaudu, sample_output regenereeriti päris-tulemusest.
- Ülesanne #38 (
well-paid-employees) — algselt v1.2.4 kiirparandus, nüüd osa laiemast läbikäigust.
Kiirparandus vearaporti põhjal: paneel "Expected output sample" selgitab nüüd, et sealne ridade arv ei pea kattuma skeemitabelitega.
- Lisati lahtiütlus paneeli "Expected output sample" kohale: "selline näeb välja õige vastus — selle ridade arv on omaette, see ei pea kattuma skeemitabelitega". Varem lugesid kasutajad ridu ühes skeemitabelis ja eeldasid, et ülesanne on katki, kui arvud erinevad.
Kiirparandus vearaporti põhjal: ülesanne #38 "Salary higher than manager" töötab nüüd korraliku andmestikuga kolme päris-juhtumiga. Pluss väike oranž täpp "What's new?" peal, kui ilmub värske väljalase.
- Väike oranž täpp ilmub navigatsioonikirjele "What's new?", kui ilmub värske väljalase. Üks külastus lehele
/releaseskustutab selle kuni järgmise väljalaseni.
- Ülesanne #38 (
well-paid-employees): andmestik oli liiga hõre — 6 töötajat ja üksainus juhtum "alluv teenib rohkem kui juht", mis pani andmed valena näima. Laiendati 9 töötajani kahes osakonnas kolme selge juhtumiga (Eve > Alice, Frank > Dave, Henry > Bob).
Uus "Report a bug" leht ekraanipildi manustega, teisene navigatsioonirühm ja kompaktsem "Start here" rada mobiilis.
- Uus "Report a bug" leht navigatsioonis: teema + kirjelduse vorm kuni 5 ekraanipildi / lühikliibiga (lohistamine toetatud). Raportid jõuavad meie postkasti kiireks triaažiks.
- Navigatsioon saab teisese rühma — "What's new?" ja "Report a bug" — eraldatud põhivahekaartidest peenikese vertikaalse joonega.
- Algajate "Start here" rada on mobiilis kompaktsem — lühem pealkiri, peidetud kirjeldus, kitsamad kaardid. Vabastab ruumi ülesandeloendile endale.
- Algajate "Start here" rada ei vilgu enam murdosa sekundit ülesannete lehe avamisel — renderdub nüüd alles pärast
/progresslahenemist. - Väljalaadete märkmete esiletõst (ülemine üherealine) renderdab nüüd korrektselt tagurpidiülakomasid — varem näitas literaalset "
?lang=", mitte stiliseeritud koodipilli. - Fantoomne vertikaalne kerimisriba lehel "Learning Tracks" on kadunud —
min-h-screenkoos navigatsioonipaaniga sundis ~60px lisakõrgust isegi siis, kui sisu mahtus.
UX-viimistlus üle kogu treeneri pluss ?lang= URL-parameeter reklaamide ja otseste keelepõhiste linkide jaoks.
- Maandu kindlas keeles
?lang=envõi?lang=ruabil URL-is:https://sql.coderang.dev/?lang=en. Mugav reklaamide ja keelepõhiste linkide jagamiseks; valik jäetakse meelde aastaks.
- Kui päevased AI-vihjed otsa saavad, muutub nupp "Explain" "Cheatsheet"-iks ja avab teemaviite.
- Lemmiku täht on nüüd mobiilis nähtav ja lauaarvutil õrnalt nähtav, mitte peidetud kuni hõljutamiseni.
- Ülesande kirjeldus ei hüppa enam spikri laiendamisel. Täht on hõljutamisel eredam.
- DDL-ülesannetel näitab skeemipaneel "alustamistabeleid pole; loo need", mitte tühja lõuendit.
- AI-nupp pulseerib nüüd päriselt ainult vigade korral (animatsiooniklass polnud varem kunagi defineeritud).
- Navigatsiooni Power ja Streak laaditakse localStorage'ist enne serveripäringut — enam pole "0 ⚡" vilkumist.
- AI-genereerimise loendur ei lähtestu enam 0-le pärast genereeritud ülesandele suunamist.
- Mobiilimugavused: võrdse laiusega raskusmärgid (Star joondatud), alumise vahekaardi tekst mahub ära, päevaloenduri skaala-animatsioon, hooseeria ikooni kohtspikker, venekeelsed mitmuse reeglid.
- Venekeelsed ettevõttenimed (Сбербанк, Яндекс, Авито…) renderdatakse nüüd ladina transliteratsioonis (Sberbank, Yandex, Avito) ingliskeelses kasutajaliideses; kirillitsa jääb vene keelele.
- Spikrikirje nimed (Aliases, Scalar subquery jne) tõlgitakse nüüd keelevahetusel korrektselt.
- Nädala/kuu edetabel rakendab nüüd esimese katse ×2 boonust ja ignoreerib uuesti esitamisi, kooskõlas sellega, kuidas eluaegset Power'it arvutatakse. Varem näitas perioodivaade umbes poolt eluaegsest — viga arvutuses, mitte andmetes.
- Eemaldati surnud Solutions vahekaart — ükski nupp seda ei aktiveerinud, kuid see dubleeris laadimist.
- Tagurpidiülakomad ei jäta enam tühikut järgneva kirjavahemärgi ette ("
Action."). - Tulemuspaani tühjad olekud tõlgitakse nüüd korrektselt inglise keelde.
Andmemuutmise ülesannete viimistlus ja üldine kirjelduste renderdamine.
- Tähelepanu DDL/DML-ülesannetele: UPDATE/INSERT/DELETE ja CREATE/ALTER/DROP ülesanded näitavad nüüd lühikest märkust "lõpetav SELECT pole vajalik" — enam ei pea arvama, mida väljastada.
- Teemaspikker arvestab nüüd ülesande tüüpi: DML-ülesanded ei näita enam SELECT/ORDER BY/LIMIT, DDL-ülesanded näitavad ainult skeemimuutmise käske.
- Tagurpidiülakomadega märgendid ülesannete kirjeldustes (\
id = 4\, \users.email\) renderdatakse nüüd aktsentkoodipillidena tooreteksti asemel — kirjeldused loevad end täpselt nii, nagu autorid need kirjutavad. - Spikri koodiplokkidel on nüüd aktsentne vasakriba ja peen ääris — need loevad end päris-koodilõikudena hallide plekkide asemel.
Uustulnukate sissejuhatus: "Start here" rada, alg-SQL sinu esimesel ülesandel ja teemaspikker igas ülesandes. Vale vastuse vihjed on nüüd konkreetsed ega põleta sinu AI-kvooti.
- "Start here" rada ülesannete lehe ülaosas — 8 lihtsat SELECT-ülesannet esmakordsetele. Kuvatakse, kuni midagi lahendad; lohistades keritav haaramiskursoriga.
- Alg-SQL redaktoris. Esimene avatud ülesanne eeltäidab
SELECT * FROM <first_table> LIMIT 5;, nii et saad kohe ▶ vajutada ja näha, milline data välja näeb. - Teemaspikker. Ülesandepaneelil on nüüd kokkupandav viiteplokk asjakohaste SQL-käskude, süntaksi ja üherealise selgitusega — teemapõhiselt kohandatud: SELECT, JOIN, agregaadid, alampäringud, aknad, CTE, DML, DDL.
- Vale vastuse bänner on nüüd konkreetne: see nimetab liigsed/puuduvad veerud, ridade erinevused, sortimisprobleemid ja levinud SQL-vead. Töötab lokaalselt, AI-kvooti ei kulutata.
Aliasi-arvestav automaatlõpetus SQL-redaktoris ja suured mobiilipaigutuse parandused.
- Väljalaadete leht: uuenduste ajalugu on nüüd nähtav aadressil /releases.
- Aliasi-arvestav automaatlõpetus. Pärast
<alias>.on soovitused ulatusega selle ühe tabeli veergudele. Aliased ise lõpevad Tab'iga. .on nüüd päästikmärk: soovitused hüppavad automaatselt selle järel, ilma et oleks vaja Ctrl+Space'i.
- Mobiilimenüü katab nüüd sisu, mitte ei lükka lehte alla. Sulgub väljaspoolse puudutusega.
- 300+ ülesandekirjeldust kirjutati ümber: lisati ärikontekst, loetleti väljundveerud, muudeti sortimine ja ümardamine selgeks.
- Mobiili ülesandekirjeldus kerib nüüd korrektselt, kui tekst on pikk. Varem jäi see kinni ja blokeeris ligipääsu allolevatele vahekaartidele.
- Treeneri alumine vahekaardiriba on nüüd alati nähtav igas mobiilibrauseris (Yandex Browser, MIUI, Samsung Internet). Varem lõikus see vaateava alla.
- Mobiilimenüü on nüüd täiesti läbipaistmatu. Varem paistis backdrop-filter'i toeta brauserites 5% taustasisust läbi.
- Kitsastel ekraanidel (320px ja alla) ei vala ülesannete sortimise rippmenüü enam paremast servast üle.
- Vana automaatlõpetuse viga:
t.esisestamine pärastFROM employee tlisast.employee.salary(kehtetu SQL). Aliasi austatakse nüüd.
SQL Arena esimene stabiilne väljalase.
- 259 valitud SQL-ülesannet 6 kategoorias: SELECT, JOIN, agregaat, alampäring, aken, DML.
- 96 intervjuuülesannet tipp-tehnoloogiaettevõtetelt (Google, Meta, Amazon, Stripe jne).
- Kahe SQL-dialekti tugi — PostgreSQL ja MySQL kohese vahetamisega.
- AI ülesannete genereerimine: unikaalsed ülesanded, mis on kohandatud sinu oskustasemele.
- AI Mentor: kontekstipõhised vihjed ilma vastust välja andmata.
- 3 õpperada: struktureeritud teed algtõdedest edasijõudnud SQL-ini.
- Reaalajas SQL-i täitmine liivakastistatud keskkonnas tulemuste hindamisega (veeru/rea/järjekorra diff).
- OAuth-autentimine GitHubi, Google'i, Yandexi kaudu pluss e-posti/parooliga registreerumine.
- XP-põhine (Power) edetabel, kasutajaprofiilid, saavutused, tume ja hele teema.
- Premium-tellimus YooKassa integratsiooniga ja robotitõrje päringupiiranguga.
- Interaktiivsed ER-skeemidiagrammid, Monaco redaktor SQL-i esiletõstmise ja vormindamisega.
- Kakskeelne liides: vene ja inglise keel.