Zapoctovy test 4. 2. [14:00]

vrtulex at 2009-02-04 20:49:35

Zdravím,

Tak odpoledne se pokračovalo ve vytváření databázového engine, na pořadu byly dotazy INSERT, DELETE, CREATE TABLE, DROP TABLE. Přičemž bylo spoustu omezní:

  • Sloupce byly pouze řetězcového typu

  • Podmínka u EELETE byla jenom sloupec="hodnota".

CREATE TABLE <table_name> (...,....)
DROP TABLE <table_name>
INSERT INTO <table_name> VALUES (...,...,...)
DELETE FROM <table_name> WHERE sloupec="hodnota"

Toto byly všechny formátu dotazů, které to mělo umět přijímat. Samozřejmě to nesmělo spadnout na nekorektním vstupu.

Přišlo mi to jako úkol celkem v pohodě - až na to, že jsem to neudělal... chybělo mi tak 10 řádků kódu (max. 20) a myslím, že bych prošel. Nestihl jsem dodělat DELETE.

Docela by mě zajímalo, kolik z nás to dnes odpoledne dalo...

Omlouvám se za zmatečnost příspěvku, ale nemám moc náladu něco uspořádávat do rozumných vět, odstavců a formulací...

adam at 2009-02-04 21:30:49

Tak to si můžeme podat ruku. Mně taky chybělo dopsat DELETE. Už jsem měl i kontrolu že sloupec z WHERE v tabulce je a načtení odpovídajícího indexu, načtení řádků z tabulky a jejich zápis zpět do souboru. Takže jen projít ty řádky pole podle podmínky a promazat.

Podle příspěvku v sousedním vlákně měla dopolední skupina údajně čtyři hodiny. (Ale třeba to jejich zadání bylo náročnější, nedokážu to porovnat.)

kuba.brecka at 2009-02-04 23:55:13

Pokud by to někoho zajímalo, tak moje řešení je příloze. IMHO byl test jednoduchý, odcházel jsem (myslím jako první) asi hodinu a půl po začátku. Ostatní testy mi přišly těžší, i když jsem je, pravda, nezkoušel programovat.

Attachments:

vrtulex at 2009-02-05 00:00:13

IMHO to těžké nebylo, jen mi ten čas nějak nevyšel... holt v Javě jsem se ještě tolik nerozprogramoval...

Ellrohir at 2009-02-05 01:07:42

no teda možná se pletu a na nějakou zákeřnost bych dojel taky, ale aspoň bych u tohohle věděl, co se po mě chce, což se o dopoledním joinování tabulek v SELECTu říct nedá :? to mě utvrzuje v domění, že se na mě prostě tenhle tejden lepí akorát smůla :evil: resp. už dlouhodobě, protože jestli půjdu dneska ráno nebo odpoledne jsem si vybíral sotva se termíny objevily... :roll:

QZuzka at 2009-02-05 01:21:37

Ellrohir wrote:no teda možná se pletu a na nějakou zákeřnost bych dojel taky, ale aspoň bych u tohohle věděl, co se po mě chce, což se o dopoledním joinování tabulek v SELECTu říct nedá :? to mě utvrzuje v domění, že se na mě prostě tenhle tejden lepí akorát smůla :evil: resp. už dlouhodobě, protože jestli půjdu dneska ráno nebo odpoledne jsem si vybíral sotva se termíny objevily... :roll:

Ono to vypadalo dost snadné.. Nic úplně zákeřného tam nebylo.. Jen nějak k úspěšnému delete došel málokdo.. A snad každý kdo nedokončil měl dojem, že ještě pět, deset, patnáct minut a měl by to..

Donarus at 2009-02-05 17:33:11

taky mi chybelo 10-20 minut :/ fungovalo mi vse, ale nejak jsem se (u)trim()oval a u substring()oval a to vsechno zbytecne, bo jsem na konci zjistil, ze muzu rict, ze mam takovou a makovou syntax a bylo to :/ ale ja jak blbec osetroval vsechny mozny vstupy a tim jsem se tka o hodinu zdrzel ... no nakonec jsem dojel na to, ze mou posledni upravou jsem si zapricinil to, ze mi nejakej index lezl mimo hranice pole .. pisemka nebyla tezka, jen jsem vul a delam zbytecne navic veci, ktere delat nemusim a pak to takhel dopada... talk holt priste :/

DarkAngeL at 2009-02-14 10:31:46

Já jsem na tom byl podobně. Nejdřív jsem řešil pitomosti ohledně streamů - který z nich maj metodu readline a jak ji vyrobit ze System.in a File. Docela slušně zabitejch 30 minut.
Pak jsem řešil jak ve vstupnímu streamu ze souboru nastavit, aby při otevření nevynuloval obsah (nebo něco takovýho - prostě, když jsem ho na danej File otevřel, tak readline nevracel nic...). Dalších slušnejch minut zabitejch.
Stihnul jsem dopsat všechno, ale nefungoval mi jenom delete. Posledních asi 10-20 minut jsem řešil, proč to nefunguje, a na cestě domů mi došlo, že jsem na souboru otevíral vstupní i výstupní stream zároveň, přičemž ten výstupní smaže obsah vstupního - a jak potom chcete ten File číst, že? Je to skoro to samý jako prostřední případ a mně to nedojde...Stačilo proházet pár řádků.
No prostě jsem debil a každej normální člověk na mým místě by to dal. :)