PostgreSQL a temporary tabulky a trideni
Karel Zak
zakkr na zf.jcu.cz
Čtvrtek Únor 26 15:37:27 CET 2004
On Thu, Feb 26, 2004 at 03:10:31PM +0100, Honza Pazdziora wrote:
> On Thu, Feb 26, 2004 at 02:52:00PM +0100, Karel Zak wrote:
> >
> > Tak jsem si dovolil to trosku ucesat opravit dve chybicky a poslat o
> > tom neco svou patkovskou anglictinou do pgsql-hackers :-) Ted dej se
> > vule bozi... Najdete to na:
> >
> > ftp://ftp2.zf.jcu.cz/users/zakkr/pg/postgresql-nls-string-0.51.tar.gz
>
> Diky.
>
> Nejsem si jist, jestli je spravne vracet null v pripade
>
> VARSIZE(txt) - VARHDRSZ) <= 0
>
> -- prece i prazdny retezec ma narok byti prohnan strxfrm (a neslucovan
> s nullem). Pravda, je pak potreba udelat obezlicku a alokovat aspon
> jeden bajt, jinak palloc pada.
Zitra na to kouknum je pravda, ze NULL != "".
> Pak me jeste napadlo, ze by se vlastne rovnou mohlo alokovat
> 3 * rest + VARHDRSZ a provest tu sprintf konverzi cyklem odshora, nad
> tim samym bufferem.
Pokud myslis, usetrit volani palloc() tak to je celkem jedno, protoze
to je hodne lacine volani :-) Ale moznost by to byla, kouknu na to.
Jeste neco, prozor na "text" jako datovy typ protoze neobsahuje '\0' a
volat funkce (treba strxfrm) libc, ktere predpokladaji terminovany
string je osemetny bug. Napriklad ta predesla verze nls_string()
vracela pro stejny vstup ruzny vystup na jehoz konci byl rozlicny
balast z pameti za "txt".
> Hmmm. Uvidime, jaka bude odezva.
Nejhure zadna :-) Nebo to nekdo rozcupuje jako blbost, ale duvod mne
nenapada. Snad jen mozny rychlostni problem se prepinanim locales, ale
to uz jsem jednou v podobe to_char() do PostgreSQL dostal :-)
Karel
--
Karel Zak <zakkr na zf.jcu.cz>
http://home.zf.jcu.cz/~zakkr/
Další informace o konferenci Databases