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 Test