Closed Halama closed 6 years ago
Co si exportoval za tabulku? Na toto uz narazil @ujovlado kdyz se snazil vyexportovat DBC.CollationsV
, imho muzou za to sloupce kde je datovy typ Byte
.
dbc.SessionInfo
Měli bysme to nějak ošetřit. Buď nějaká konverze nebo v horším případě alespoň zařvat jako user error.
Myslim, ze by stacilo nieco ako "show create table xyz" ... a ked narazim na neexportovatelny stlpec (a exportuje sa cela tabulka), skoncilo by to ako user error a mohlo by upozornit, ze ak chcem tu tabulku exportnut, musim ten stlpec vynechat. -> co znamena napisat custom query.
Pri custom query by to mohlo fungovat podobne, leb by sa checklo ci "query string" neobsahuje jeden z vadnych stlpcov (ak by tam niekto napisal "select * from xyz", automaticky by znamenalo, ze obsahuje).
Neviem ako velmi do hlbky to riesit, mozno by zatial stacilo implementovat to do casti ked sa exportuje cela tabulka, to imho pokryje vacsinu pripadov. Ak to nebude stacit, potom ist dalej (checkovat aj custom query a pod.)
na custom query vubec fallbackovat nemusíš, lepší je v tom případě prostě vybrat sloupce které chceš a ty byte sloupce vynechat.
custom query určitě neparsovat nikdy
Toto bude stejny problem jak jsem si myslel. Je tam sloupec LogonSequenceNo [BYTE(4)]
, ktery to cele odpali.
Zatim vubec nevim jak to vyresit, imho Dibi si s tim bude mit problem porad. Zatim bych to asi odchytil a vyhodil UserExceptionu
az pri tom fetchi - jako takovy hotfix.
@ujovlado to co navrhujes sice vypada hezky, ale neni to dost dobre proveditelne. Zrovna ty vase dve tabulky nejsou realne tabulky, ale jen pohledy. Kdyz si vytahnu, jak byly vytvoreny napr. SHOW VIEW "DBC"."SessionInfo";
, tak mi to nic nerekne. Vykopiroval bych, co vrati databaze, ale nemuzu to dostat z virtualboxu.
asi tak jak píšeš no. Ta dibi ten byte koukám vydetekuje jako integer a pak failne https://github.com/dg/dibi/blob/e7539102cb62e36e95c1842af7918ebbf70f4951/src/Dibi/Result.php#L458
Ja na to koukam pres Teradata Studio Expres co mam ve virtualce a zjistil jsem to, ze puvodne ten sloupec integer je, ale az pak ve view, i kdyz se nijak netransformoval (podle SHOW VIEW), tak uz je jako Byte 😕
Hotfix jsem zahrnul v #26
It throws this error while fetching
dbc.SessionInfo
table.