यह एक बग की तरह दिखता है, शायद regclass
. में या इससे संबंधित कुछ:
# create table pinkƒpink1 (id serial);
NOTICE: CREATE TABLE will create implicit sequence "pink?pink1_id_seq" for serial column "pink?pink1.id"
CREATE TABLE
# select 'pinkƒpink1'::name;
name
------------
pinkƒpink1
(1 row)
# select 'pinkƒpink1'::regclass;
regclass
-------------
"pinkpink1"
(1 row)
# select relname from pg_class where oid = 'pinkƒpink1'::regclass;
relname
-----------
pinkpink1
# select relname from pg_class where relname = 'pinkƒpink1'::name;
relname
---------
(0 rows)
# select relname from pg_class where relname = 'pinkpink1';
relname
---------
(0 rows)
(मेरा सिस्टम OSX Lion है जिसमें सब कुछ utf8 है, अगर यह मायने रखता है।)
समाधान के लिए, आप इसे ::regclass
. पर डाल सकते हैं जैसा कि ऊपर किया गया है (वह जिसे तालिका मिली)। ध्यान दें कि ::regclass
पर कास्ट किया जा रहा है यदि तालिका मौजूद नहीं है, तो एक त्रुटि उत्पन्न होगी, इसलिए उसके अनुसार कोड करें।
क्रेग के अनुरोध के अनुसार:
# SELECT current_setting('server_encoding') AS server_encoding, current_setting('client_encoding') AS client_encoding, version();
server_encoding | client_encoding | version
-----------------+-----------------+-----------------------------------------------------------------------------------------------------------------------------------
UTF8 | UTF8 | PostgreSQL 9.2.4 on x86_64-apple-darwin11.4.2, compiled by Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn), 64-bit
(1 row)
और इरविन के अनुसार:
# SELECT name, setting FROM pg_settings WHERE name IN ('lc_collate','lc_ctype','client_encoding','server_encoding');
name | setting
-----------------+-------------
client_encoding | UTF8
lc_collate | en_US.UTF-8
lc_ctype | en_US.UTF-8
server_encoding | UTF8
(4 rows)