Limity LN a jak rozveselí

Při pravidelném čtení partnerského fóra se člověk občas musí smát (i když je to občas asi ošklivé). Naposledy jsem se skvěle zasmál při příspěvku jednoho nováčka ve fóru, který si stěžoval na hlášku „Field is too large (32K) ….“. Většinu programátorů už tato hláška asi nerozhází, tak nějak si na ní zvykli a vždy přemýšlí jak ji obejít. Leč nyní se stalo něco nového, chlapík byl trochu rozlícen a vyvolal bouři (ve sklenici vody). Hned mu začala odpovídat spousta lidí, někteří ho hrozně sepsuli za jeho tón, jiní vysvětlovali proč to tak je.

A proč to tak je? 32KB je limit pro summary buffer, který odpovídá velikosti dat, které jsou LN schopni držet pro každý řádek v pohledu (v SQL serveru 2000 je to prý pouhých 8090B na řádek). Pokud se to člověkovi zdá pro jedno pole málo, stačí vypnout IsSummary flag (NotesItem.IsSummary = false), což spousta lidí neví, ti ostatní to s gustem využívají (ovšem maximálně 64KB, víc se tam nevejde ani potom). Celým důvodem je hlavně historie – když se programovalo jádro LN, tak to tak nějak stačilo. Možná ve verzi 8 dojde k přeprogramování i jádra systému a tedy i tohoto.

Celý tento příspěvek vyvolal vlnu dalších cca 140 příspěvků, díky čemuž se z něj stal nejvíce diskutovaný příspěvek. Teď mě jenom napadá, zda bych tam také neměl napsat něco podobného – pro změnu příkaz ReadViewEntries, pomocí kterého pravděpodobně nejde načíst více jak 131 070 dokumentů – htp://server/db.nsf/view?ReadViewEntries&start=x&Count=y, přičemž xy jsou pravděpodobně proměnné typu Integer (tedy 65 535). Nebo že by to bylo jinak?

Leave a Reply