Обсуждение: Upgrade from 7.4.5 to 8.3.3
RHVyaW5nIGFuIHVwZ3JhZGUgZnJvbSA3LjQuNSB0byA4LjMuMyB0aGUgZm9s bG93aW5nIHdhcyBkdW1wZWQgZHVyaW5nIHRoZSByZXN0b3JlIHByb2Nlc3Mg ZnJvbSBwc3FsLgoKcHNxbDpyb3BlcnlkYl92Ny40XzIwMDgxMDIxLmRtcDo0 OTogV0FSTklORzogIGNvdWxkIG5vdCBkZXRlcm1pbmUgZW5jb2RpbmcgZm9y IGxvY2FsZSAiQ19DLkMiOiBjb2Rlc2V0IGlzICIiCkRFVEFJTDogIFBsZWFz ZSByZXBvcnQgdGhpcyB0byA8cGdzcWwtYnVnc0Bwb3N0Z3Jlc3FsLm9yZz4u CgpTbyBJIGFtIHJlcG9ydGluZyBpdC4KCkJhY2sgZ3JvdW5kLgpJIGFtIHVz aW5nIDguMy4zIGJlY2F1c2UgaXQgaXMgdGhlIGxhdGVzdCBJIGhhdmUgZm9y IFNDTyBPcGVuU2VydmVyNS43CgpJIHVzZWQgInBnX2R1bXBhbGwgLW8iIGZy b20gdGhlIDguMy4zIHJlbGVhc2UuCgpEdXJpbmcgdGhlICJpbml0ZGIiIHBy b2Nlc3Mgc2ltaWxhciBlcnJvcnMgd2VyZSBkdW1wZWQgYW5kIGEgc3VnZ2Vz dGlvbiBvZiBwYXNzbmcgYSBsb2NhbGUgd2l0aCB0aGUgLUUgb3B0aW9uIHdh cyB1c2VkLgpFeHBsaWNpdGx5IEkgdXNlZDoKCiAvdXNyL2xvY2FsL3Bnc3Fs L2Jpbi9pbml0ZGIgLUUgU1FMX0FTQ0lJIC1EIC91c3IvbG9jYWwvcGdzcWwv ZGF0YQoKd2hpY2ggYWxsb3dlZCB0aGUgcHJvY2VzcyB0byBjb21wbGV0ZS4K ClRoZSB3YXJuaW5nIGFib3ZlIHdhcyB0aGVuIGR1bXBlZCBkdXJpbmcgdGhl IHJlc3RvcmUgcHJvY2Vzcy4KClRoZSBjbHVzdGVyIHNlZW1zIHRvIHdvcmtp bmcgT0suCgpTaG91bGQgSSBiZSBjb25jZXJuZWQ/CgpUaGFua3MgZm9yIHlv dXIgdGltZS4KCkFsbGFuCgoKClRoZSBtYXRlcmlhbCBjb250YWluZWQgaW4g dGhpcyBlbWFpbCBtYXkgYmUgY29uZmlkZW50aWFsLCBwcml2aWxlZ2VkIG9y IGNvcHlyaWdodGVkLiBJZiB5b3UgYXJlIG5vdCB0aGUgaW50ZW5kZWQgcmVj aXBpZW50LCB1c2UsIGRpc2Nsb3N1cmUgb3IgY29weWluZyBvZiB0aGlzIGlu Zm9ybWF0aW9uIGlzIHByb2hpYml0ZWQuIElmIHlvdSBoYXZlIHJlY2VpdmVk IHRoaXMgZG9jdW1lbnQgaW4gZXJyb3IsIHBsZWFzZSBhZHZpc2UgdGhlIHNl bmRlciBhbmQgZGVsZXRlIHRoZSBkb2N1bWVudC4gTmVpdGhlciBPbmVTdGVl bCBub3IgdGhlIHNlbmRlciBhY2NlcHQgcmVzcG9uc2liaWxpdHkgZm9yIGFu eSB2aXJ1c2VzIGNvbnRhaW5lZCBpbiB0aGlzIGVtYWlsIG9yIGFueSBhdHRh Y2htZW50cy4K
I guess we don't have locale mapping for SCO OpenServer5.7. See http://doxygen.postgresql.org/chklocale_8c-source.html Could you run following code: http://archives.postgresql.org/pgsql-hackers/2007-09/msg01168.php and send output. Zdenek Harvey, Allan AC napsal(a): > During an upgrade from 7.4.5 to 8.3.3 the following was dumped during the restore process from psql. > > psql:roperydb_v7.4_20081021.dmp:49: WARNING: could not determine encoding for locale "C_C.C": codeset is "" > DETAIL: Please report this to <pgsql-bugs@postgresql.org>. > > So I am reporting it. > > Back ground. > I am using 8.3.3 because it is the latest I have for SCO OpenServer5.7 > > I used "pg_dumpall -o" from the 8.3.3 release. > > During the "initdb" process similar errors were dumped and a suggestion of passng a locale with the -E option was used. > Explicitly I used: > > /usr/local/pgsql/bin/initdb -E SQL_ASCII -D /usr/local/pgsql/data > > which allowed the process to complete. > > The warning above was then dumped during the restore process. > > The cluster seems to working OK. > > Should I be concerned? > > Thanks for your time. > > Allan > > > > The material contained in this email may be confidential, privileged or copyrighted. If you are not the intended recipient,use, disclosure or copying of this information is prohibited. If you have received this document in error, pleaseadvise the sender and delete the document. Neither OneSteel nor the sender accept responsibility for any viruses containedin this email or any attachments. > -- Zdenek Kotala Sun Microsystems Prague, Czech Republic http://sun.com/postgresql
Hmm, It does not look good. Your OS does not return proper information about codeset. Following code is broken: setlocale(LC_CTYPE, ctype); sys = nl_langinfo(CODESET); sys = strdup(sys); See http://www.opengroup.org/onlinepubs/009695399/functions/nl_langinfo.html It seems you need to fix OS first. After that we can add CODESET mapping to PostgreSQL. Zdenek Harvey, Allan AC napsal(a): > Zdenek > > Thanks for your reply. > >> I guess we don't have locale mapping for SCO OpenServer5.7. See >> http://doxygen.postgresql.org/chklocale_8c-source.html > > Browser Timed out. (?) > >> Could you run following code: >> http://archives.postgresql.org/pgsql-hackers/2007-09/msg01168.php >> >> and send output. >> >> Zdenek > > Output as requested: > > bash-2.05$ for LOCALE in `locale -a`; do locale_test $LOCALE; done > C_C.C ... - NO MATCH > cs_CZ.ISO8859-2 ... - NO MATCH > english_uk.ISO8859-15 ... - NO MATCH > english_uk.8859 ... - NO MATCH <snip> -- Zdenek Kotala Sun Microsystems Prague, Czech Republic http://sun.com/postgresql
WmRlbmVrLA0KDQo+IA0KPiBIbW0sIEl0IGRvZXMgbm90IGxvb2sgZ29vZC4g WW91ciBPUyBkb2VzIG5vdCByZXR1cm4gcHJvcGVyIA0KPiBpbmZvcm1hdGlv biBhYm91dCANCj4gY29kZXNldC4gRm9sbG93aW5nIGNvZGUgaXMgYnJva2Vu Og0KPiANCj4gCXNldGxvY2FsZShMQ19DVFlQRSwgY3R5cGUpOw0KPiAJc3lz ID0gbmxfbGFuZ2luZm8oQ09ERVNFVCk7DQo+IAlzeXMgPSBzdHJkdXAoc3lz KTsNCj4gDQo+IFNlZQ0KPiBodHRwOi8vd3d3Lm9wZW5ncm91cC5vcmcvb25s aW5lcHVicy8wMDk2OTUzOTkvZnVuY3Rpb25zL25sX2xhbg0KZ2luZm8uaHRt bA0KDQo+SXQgc2VlbXMgeW91IG5lZWQgdG8gZml4IE9TIGZpcnN0LiBBZnRl ciB0aGF0IHdlIGNhbiBhZGQgQ09ERVNFVCBtYXBwaW5nIHRvIA0KPlBvc3Rn cmVTUUwuDQoNCj4JCVpkZW5law0KDQpJIGRvbid0IHRoaW5rIHRoaXMgaXMg cG9zc2libGUuDQoNCkNhbiB5b3UgZ2l2ZSBtZSBhbiBpbmRpY2F0aW9uIHdo YXQgcHJvYmxlbXMgSSBzaG91bGQgbG9vayBvdXQgZm9yPw0KUmVncmVzc2lv biB0ZXN0aW5nIG9ubHkgc2hvd2VkIHNvbWUgZGF0ZSBmb3JtYXQgaXNzdWVz IGlmIEkgcmVtZWJlciBjb3JyZWN0bHkuDQoNCkFsbGFuDQoNCg0KSGFydmV5 LCBBbGxhbiBBQyBuYXBzYWwoYSk6DQo+IFpkZW5law0KPiANCj4gVGhhbmtz IGZvciB5b3VyIHJlcGx5Lg0KPiANCj4+IEkgZ3Vlc3Mgd2UgZG9uJ3QgaGF2 ZSBsb2NhbGUgbWFwcGluZyBmb3IgU0NPIE9wZW5TZXJ2ZXI1LjcuIFNlZSAN Cj4+IGh0dHA6Ly9kb3h5Z2VuLnBvc3RncmVzcWwub3JnL2Noa2xvY2FsZV84 Yy1zb3VyY2UuaHRtbA0KPiANCj4gQnJvd3NlciBUaW1lZCBvdXQuICg/KQ0K PiANCj4+IENvdWxkIHlvdSBydW4gZm9sbG93aW5nIGNvZGU6DQo+PiBodHRw Oi8vYXJjaGl2ZXMucG9zdGdyZXNxbC5vcmcvcGdzcWwtaGFja2Vycy8yMDA3 LTA5L21zZzAxMTY4LnBocA0KPj4NCj4+IGFuZCBzZW5kIG91dHB1dC4NCj4+ DQo+PiAJWmRlbmVrDQo+IA0KPiBPdXRwdXQgYXMgcmVxdWVzdGVkOg0KPiAN Cj4gYmFzaC0yLjA1JCBmb3IgTE9DQUxFIGluIGBsb2NhbGUgLWFgOyBkbyBs b2NhbGVfdGVzdCAkTE9DQUxFOyBkb25lDQo+IENfQy5DICAgICAgICAgICAg ICAgICAgIC4uLiAgICAgICAgICAgIC0gTk8gTUFUQ0gNCj4gY3NfQ1ouSVNP ODg1OS0yICAgICAgICAgLi4uICAgICAgICAgICAgLSBOTyBNQVRDSA0KPiBl bmdsaXNoX3VrLklTTzg4NTktMTUgICAuLi4gICAgICAgICAgICAtIE5PIE1B VENIDQo+IGVuZ2xpc2hfdWsuODg1OSAgICAgICAgIC4uLiAgICAgICAgICAg IC0gTk8gTUFUQ0gNCg0KPHNuaXA+DQoNCi0tIA0KWmRlbmVrIEtvdGFsYSAg ICAgICAgICAgICAgU3VuIE1pY3Jvc3lzdGVtcw0KUHJhZ3VlLCBDemVjaCBS ZXB1YmxpYyAgICAgaHR0cDovL3N1bi5jb20vcG9zdGdyZXNxbA0KDQoKClRo ZSBtYXRlcmlhbCBjb250YWluZWQgaW4gdGhpcyBlbWFpbCBtYXkgYmUgY29u ZmlkZW50aWFsLCBwcml2aWxlZ2VkIG9yIGNvcHlyaWdodGVkLiBJZiB5b3Ug YXJlIG5vdCB0aGUgaW50ZW5kZWQgcmVjaXBpZW50LCB1c2UsIGRpc2Nsb3N1 cmUgb3IgY29weWluZyBvZiB0aGlzIGluZm9ybWF0aW9uIGlzIHByb2hpYml0 ZWQuIElmIHlvdSBoYXZlIHJlY2VpdmVkIHRoaXMgZG9jdW1lbnQgaW4gZXJy b3IsIHBsZWFzZSBhZHZpc2UgdGhlIHNlbmRlciBhbmQgZGVsZXRlIHRoZSBk b2N1bWVudC4gTmVpdGhlciBPbmVTdGVlbCBub3IgdGhlIHNlbmRlciBhY2Nl cHQgcmVzcG9uc2liaWxpdHkgZm9yIGFueSB2aXJ1c2VzIGNvbnRhaW5lZCBp biB0aGlzIGVtYWlsIG9yIGFueSBhdHRhY2htZW50cy4K
Harvey, Allan AC wrote: > Zdenek, > >> Hmm, It does not look good. Your OS does not return proper >> information about >> codeset. Following code is broken: >> >> setlocale(LC_CTYPE, ctype); >> sys = nl_langinfo(CODESET); >> sys = strdup(sys); >> >> See >> http://www.opengroup.org/onlinepubs/009695399/functions/nl_lan > ginfo.html > >> It seems you need to fix OS first. After that we can add CODESET mapping to >> PostgreSQL. > >> Zdenek > > I don't think this is possible. > > Can you give me an indication what problems I should look out for? SQL_ASCII might work tolerably if all your clients use the same client encoding.
Harvey, Allan AC napsal(a): > Zdenek, > >> Hmm, It does not look good. Your OS does not return proper >> information about >> codeset. Following code is broken: >> >> setlocale(LC_CTYPE, ctype); >> sys = nl_langinfo(CODESET); >> sys = strdup(sys); >> >> See >> http://www.opengroup.org/onlinepubs/009695399/functions/nl_lan > ginfo.html > >> It seems you need to fix OS first. After that we can add CODESET mapping to >> PostgreSQL. > >> Zdenek > > I don't think this is possible. > > Can you give me an indication what problems I should look out for? > Regression testing only showed some date format issues if I remeber correctly. > I think, problem could be on two places: 1) libc is broken and does not return correct values. 2) locale definition does not contain CODESET information. Do you use system libc or glibc? You can try create own locale by localedef and test what happen. Zdenek
WmRlbmVrLAoKPiBIYXJ2ZXksIEFsbGFuIEFDIG5hcHNhbChhKToKPiA+IFpk ZW5laywKPiA+IAo+ID4+IEhtbSwgSXQgZG9lcyBub3QgbG9vayBnb29kLiBZ b3VyIE9TIGRvZXMgbm90IHJldHVybiBwcm9wZXIgCj4gPj4gaW5mb3JtYXRp b24gYWJvdXQgCj4gPj4gY29kZXNldC4gRm9sbG93aW5nIGNvZGUgaXMgYnJv a2VuOgo+ID4+Cj4gPj4gCXNldGxvY2FsZShMQ19DVFlQRSwgY3R5cGUpOwo+ ID4+IAlzeXMgPSBubF9sYW5naW5mbyhDT0RFU0VUKTsKPiA+PiAJc3lzID0g c3RyZHVwKHN5cyk7Cj4gPj4KPiA+PiBTZWUKPiA+PiBodHRwOi8vd3d3Lm9w ZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDk2OTUzOTkvZnVuY3Rpb25zL25s X2xhbgo+ID4gZ2luZm8uaHRtbAo+ID4gCj4gPj4gSXQgc2VlbXMgeW91IG5l ZWQgdG8gZml4IE9TIGZpcnN0LiBBZnRlciB0aGF0IHdlIGNhbiBhZGQgCj4g Q09ERVNFVCBtYXBwaW5nIHRvIAo+ID4+IFBvc3RncmVTUUwuCj4gPiAKPiA+ PiAJCVpkZW5lawo+ID4gCj4gPiBJIGRvbid0IHRoaW5rIHRoaXMgaXMgcG9z c2libGUuCj4gPiAKPiA+IENhbiB5b3UgZ2l2ZSBtZSBhbiBpbmRpY2F0aW9u IHdoYXQgcHJvYmxlbXMgSSBzaG91bGQgbG9vayBvdXQgZm9yPwo+ID4gUmVn cmVzc2lvbiB0ZXN0aW5nIG9ubHkgc2hvd2VkIHNvbWUgZGF0ZSBmb3JtYXQg aXNzdWVzIGlmIEkgCj4gcmVtZWJlciBjb3JyZWN0bHkuCj4gPiAKPiAKPiBJ IHRoaW5rLCBwcm9ibGVtIGNvdWxkIGJlIG9uIHR3byBwbGFjZXM6Cj4gCj4g MSkgbGliYyBpcyBicm9rZW4gYW5kIGRvZXMgbm90IHJldHVybiBjb3JyZWN0 IHZhbHVlcy4KPiAyKSBsb2NhbGUgZGVmaW5pdGlvbiBkb2VzIG5vdCBjb250 YWluIENPREVTRVQgaW5mb3JtYXRpb24uCj4gCj4gRG8geW91IHVzZSBzeXN0 ZW0gbGliYyBvciBnbGliYz8gWW91IGNhbiB0cnkgY3JlYXRlIG93biAKPiBs b2NhbGUgYnkgbG9jYWxlZGVmIGFuZCAKPiB0ZXN0IHdoYXQgaGFwcGVuLgo+ IAo+IAkJWmRlbmVrCj4gCgpJIHRoaW5rIGl0IHdvdWxkIGhhdmUgdG8gYmUg Z2xpYmMgYXMgSSB1c2VkIHRoZSBnY2MgbG9hZGVkIHdpdGggdGhlICJza3Vu a3dhcmUiIHRvb2xzIHRoYXQgU0NPIHByb3ZpZGUuClRvIGRhdGUgSSBoYXZl IGhhZCBubyBvcGVyYXRpb25hbCBwcm9ibGVtcywgSSBndWVzcyBpdCBtdXN0 IGJlIGEgcmVsYXRpdmVseSBzaW1wbGUgdXNlIG9mIHBvc3RncmVzLgoKU28g SSB0aGFuayB5b3UgYW5kIGFsbCB0aGUgb3RoZXJzIGZvciB0aGVpciB0aW1l IGFuZCBzdWdnZXN0IHRoYXQgd2UgbGV0IHRoaXMgb25lIHNsaWRlIHVubGVz cyB5b3UgcmVhbGx5IHdhbnQgdG8gZ2V0IHRvIHRoZSBib3R0b20gb2YgaXQu IEkgaGF2ZSB0aGUgdGltZSwganVzdCBub3QgdGhlIHVuZGVyc3RhbmRpbmcg b2YgImxvY2FsZSJzIGFuZCB0aGUgaW1wbGljYXRpb25zIGFuZCBpbXBsZW1l bnRhdGlvbnMuCgpBbGxhbgoKClRoZSBtYXRlcmlhbCBjb250YWluZWQgaW4g dGhpcyBlbWFpbCBtYXkgYmUgY29uZmlkZW50aWFsLCBwcml2aWxlZ2VkIG9y IGNvcHlyaWdodGVkLiBJZiB5b3UgYXJlIG5vdCB0aGUgaW50ZW5kZWQgcmVj aXBpZW50LCB1c2UsIGRpc2Nsb3N1cmUgb3IgY29weWluZyBvZiB0aGlzIGlu Zm9ybWF0aW9uIGlzIHByb2hpYml0ZWQuIElmIHlvdSBoYXZlIHJlY2VpdmVk IHRoaXMgZG9jdW1lbnQgaW4gZXJyb3IsIHBsZWFzZSBhZHZpc2UgdGhlIHNl bmRlciBhbmQgZGVsZXRlIHRoZSBkb2N1bWVudC4gTmVpdGhlciBPbmVTdGVl bCBub3IgdGhlIHNlbmRlciBhY2NlcHQgcmVzcG9uc2liaWxpdHkgZm9yIGFu eSB2aXJ1c2VzIGNvbnRhaW5lZCBpbiB0aGlzIGVtYWlsIG9yIGFueSBhdHRh Y2htZW50cy4K
Harvey, Allan AC wrote: >> Do you use system libc or glibc? You can try create own >> locale by localedef and >> test what happen. > > I think it would have to be glibc as I used the gcc loaded with the "skunkware" tools that SCO provide. gcc may be, and often is, used with the system libc. It'd be much less useful otherwise, since you generally can't link to more than one libc without a great deal of trouble, and thus you couldn't use libraries that were linked to the system libc with gcc if it could only use gcc. If I recall correctly the gcc shipped in skunkware generates binaries linked to the system libc. It should be trivial to find out by compiling a "hello world" program and using /bin/ldd to show what it's linked to. It might be possible to build PostgreSQL against glibc instead, but it seems like way more work than would be worthwhile when you can just run Pg on a modern machine and talk to it over the network. -- Craig Ringer