(2011/04/20 9:22), Tom Lane wrote: > Hiroshi Inoue<in...@tpf.co.jp> writes: >> (2011/04/16 2:56), Heikki Linnakangas wrote: >>> setlocale() on Windows doesn't work correctly if the locale name contains >>> apostrophes or dots. > >> As for apostrophes, isn't the cause that initdb loses the single quote >> of locale? ([BUGS] BUG #5818: initdb lose the single quote of locale) > >> As the bug reporter mentions, initdb loses the single quote in reality. >> Concretely speaking, scanstr() called from bootscanner.l loses it. >> I'm not sure if it's suitable for the bootstrap code to call scanstr(). > > Huh? Bootstrap mode just deals with the data found in > src/include/catalog/*.h. The locale names found by initdb.c are stuck > in there afterwards, using regular SQL commands.
bootstrap_template1() in initdb runs the BKI script in bootstrap mode to create template1. Some symbols (LC_COLLATE, LC_CTYPE in pg_database etc) in the BKI script are substituted by actual values using replace_token(). Isn't it correct? ISTM replace_token() takes care of nothing about single quotes in its input values but the comment in scanstr() says /* * Note: if scanner is working right, unescaped quotes can only * appear in pairs, so there should be another character. */ regards, Hiroshi Inoue > I don't know where the > problem really comes from, but I doubt the connection you're trying to > make above. > > regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers