PostgreSQL a temporary tabulky a trideni

Karel Zak zakkr na zf.jcu.cz
Pátek Únor 27 14:12:40 CET 2004


On Fri, Feb 27, 2004 at 01:23:12PM +0100, Honza Pazdziora wrote:
> On Fri, Feb 27, 2004 at 11:22:14AM +0100, Karel Zak wrote:
> > On Thu, Feb 26, 2004 at 03:48:08PM +0100, Karel Zak wrote:
> > >  Pokud by  nekdo udelal rychlostni  testy s tim jak  moc je v  te funkci
> > 
> >  Jeste jsem tam opravil (snad dobre)  to na co narazel Tom Lane. Bohuzel
> 
> Neni mi uplne jasne, proc to tam musi byt, pokud pred tim elogem ten
> setlocale neuspel a navic's tam mel, ze se vraci pro jistotu jeste
> zpet. Nejaky odkaz na thread / dokument, ktery by se tim podrobneji
> zabyval?

 Jde o to, ze elog(ERROR, ...) se nevraci, ale udela siglongjmp() na
 misto kde byl naposledy volan sigsetjmp(). 
 
 A my  v miste kde jsou  nastavene jine locales volame  funkce (palloc),
 ktere  mohou obsahovat  volani  elog(). To by  pak  zamenalo, ze  nikdy
 nedojde k nastaveni puvodnich locale,  ale PostgreSQL se vrati nemam do
 stavu daleko  pred volanim  nls_string(). Proste je pteba  osetrit, aby
 vzdy byl zavolan setlocale() s puvodnim nastavenim.

 Reseni je ulozit si puvodni pozici  pro ten long jump, a nastavit jinou
 pozici,  ktera  zajisti  vraceni  locales  a  nasledne  udela  jump  na
 puvodni. Snad se to z toho co jsem psal da pochopit :-) Jinak viz treba
 zdrojaky PL/TCL.

> 	http://www.fi.muni.cz/~adelton/l10n/postgresql-nls-string/
> 
> jsem dal 0.53, kde je

 Nezkousel jsem, ale pri pohledu na zdrojaky to vypada dobre. Dam to
 take k sobe na FTP pokud by tam nekdo z PostgreSQL listu neco hledal
 (hmm.. asi tam dam README s URL na mini.cz).

    Karel

-- 
 Karel Zak  <zakkr na zf.jcu.cz>
 http://home.zf.jcu.cz/~zakkr/


Další informace o konferenci Test