Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtp (Exim 4.72) (envelope-from ) id 1TGMfh-0005eV-5O for pgsql-hackers@postgresql.org; Tue, 25 Sep 2012 04:22:57 +0000 Received: from mail-pb0-f46.google.com ([209.85.160.46]) by magus.postgresql.org with esmtp (Exim 4.72) (envelope-from ) id 1TGMfc-0004k7-Rb for pgsql-hackers@postgresql.org; Tue, 25 Sep 2012 04:22:56 +0000 Received: by pbbrr4 with SMTP id rr4so8355876pbb.19 for ; Mon, 24 Sep 2012 21:22:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=YPpQ0DfQTwN/zhnPvw8sB+o9B7WaNGc+e13LemeFKfg=; b=htuqFQqS0NfGWIoSiMED9cgp6caNPNz6wB9zZkJbv/gAEe+Q0tR5Au4/lOAu+p7fF+ NkvGj3d/EBl/RWGp3Y0j/uY6IbD6hxrBb79OMUMIRm55mI/2C17SKCfzDnIXeptMh5iL eKD8S3Rl2nhxguUnfEtR2DwDKIgQmg+O7MVLBqNujDlvkAWZ/KCYhqXrejkCIgfpN4Ku vPeN1t/RmlelUW85zOSdTrIv1UGiDnQSk5goyw5ULkbXvJWBNy3gyP5lUEbXck8vZ6CM 6dbs+rVnyX8j5DtgAb+SxjQhMmDJmcxy9eDPSVzBw/ynBOGJGl9OuaoZrnHwpq000rhe JFVA== Received: by 10.66.77.40 with SMTP id p8mr37462699paw.78.1348546970795; Mon, 24 Sep 2012 21:22:50 -0700 (PDT) Received: from [192.168.1.2] ([116.226.32.153]) by mx.google.com with ESMTPS id qd6sm3449703pbb.34.2012.09.24.21.22.46 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 24 Sep 2012 21:22:49 -0700 (PDT) Message-ID: <50613193.4010204@gmail.com> Date: Tue, 25 Sep 2012 12:22:43 +0800 From: Rural Hunter User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20120907 Thunderbird/15.0.1 MIME-Version: 1.0 To: Bruce Momjian CC: Peter Eisentraut , PostgreSQL-development , Tom Lane Subject: Re: [ADMIN] pg_upgrade from 9.1.3 to 9.2 failed References: <505C307E.20501@gmail.com> <1348403628.18490.1.camel@vanquo.pezone.net> <505F1A98.9090901@gmail.com> <1348440393.18490.2.camel@vanquo.pezone.net> <20120924125500.GA21242@momjian.us> <50606726.3050802@gmail.com> <20120924142659.GC21242@momjian.us> <5060720E.1080903@gmail.com> <20120924145731.GE21242@momjian.us> <5060FDAF.8020407@gmail.com> <20120925030017.GA4250@momjian.us> In-Reply-To: <20120925030017.GA4250@momjian.us> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Pg-Spam-Score: -2.7 (--) X-Archive-Number: 201209/937 X-Sequence-Number: 213965 于 2012/9/25 11:00, Bruce Momjian 写道: > On Tue, Sep 25, 2012 at 08:41:19AM +0800, Rural Hunter wrote: >>>> I think the problem is on the options when I installed pgsql(both >>>> 9.1 and 9.2) >>>> Select the locale to be used by the new database cluster. >>>> >>>> Locale >>>> >>>> [1] [Default locale] >>>> [2] C >>>> [3] POSIX >>>> [4] zh_CN.utf8 >>>> [5] zh_HK.utf8 >>>> [6] zh_SG.utf8 >>>> [7] zh_TW.utf8 >>>> Please choose an option [1] : 4 >>>> I chose 4 instead of 1. I guess the default locale(option 1) is with dash. >>> Well, if you run that query on template0 in the old and new cluster, you >>> will see something different in the two of them. Could you have used >>> default in one and a non-dash in the other. >> Yes, that's true. The upgrade is fine with both fresh installs(9.1 >> and 9.2) with option above(without-dash). The problem only happens >> when I inited the 9.2 db with default locale(I guess that one has > OK, that is good to know. I developed the attached C program that does > the setlocale canonical test. On Debian Squeeze, I could not see any > change: if I pass en_US.UTF-8, I get en_US.UTF-8 returned; if I pass > en_US.UTF8, I get en_US.UTF8 returned. Can anyone test this and find a > case where the local is canonicalized? Run it this way: > > $ canonical > LC_COLLATE = 3 > LC_CTYPE = 0 > $ canonical 0 en_US.UTF8 > en_US.UTF8 > > We are looking for cases where the second argument produces a > non-matching locale name as output. It matches on my system(ubuntu 10.10 server): $ ./canonical LC_COLLATE = 3 LC_CTYPE = 0 $ ./canonical 0 zh_CN.UTF-8 zh_CN.UTF-8 $ ./canonical 0 zh_CN.UTF8 zh_CN.UTF8 $ ./canonical 0 zh_CN.utf8 zh_CN.utf8 $ ./canonical 0 zh_CN.utf-8 zh_CN.utf-8 I tested the checker with the patch: $ /opt/PostgreSQL/9.2/bin/pg_upgrade -b /opt/PostgreSQL/9.1/bin -B /opt/PostgreSQL/9.2/bin -d /raid/pgsql -D /raid/pg92data -c Performing Consistency Checks ----------------------------- Checking current, bin, and data directories ok Checking cluster versions ok Checking database user is a superuser ok Checking for prepared transactions ok Checking for reg* system OID user data types ok Checking for contrib/isn with bigint-passing mismatch ok lc_collate cluster values do not match: old "zh_CN.utf8", new "zh_CN.UTF-8" Failure, exiting zh_CN.utf8 is provided by the installer and zh_CN.UTF-8 is my system default. > > I have also attached a patch that reports the mismatching locale or > encoding names --- this should at least help with debugging and show > that a dash is the problem. > >> the dash). Just wondering why pg installer provides options without >> dash. > No idea. >