Re: [GENERAL] EBCDIC conversion

2014-03-28 Thread David W Noon
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 28/03/14 00:31, David W Noon wrote:
 I think the real issue is that you need icu or libiconv installed. 
 You will also need to know which EBCDIC code page you want: U.S. 
 EBCDIC is cp37, IIRC.
 
 I suspect you will need to write a C or Python function that
 performs a test conversion, using icu or libiconv, and return a
 Boolean result. It should not be too difficult if you can write C
 or Python.

Since I had a few minutes tonight, I created a quick hack in Python.
It should be attached to this message, unless the list server removes it.

Here is a sample usage in psql:

dwn=# \i ./check_code_page.sql
CREATE FUNCTION
dwn=# select check_code_page('abcxyz', 'cp037');
 check_code_page
- -
 t
(1 row)

dwn=# select check_code_page('abcä', 'cp037');
 check_code_page
- -
 f
(1 row)

You'll note that the a-umlaut character fails in the conversion to
cp037 (U.S. EBCDIC).
- -- 
Regards,

Dave  [RLU #314465]
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
david.w.n...@googlemail.com (David W Noon)
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.22 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iEYEARECAAYFAlM2EKAACgkQogYgcI4W/5QgYACcDRjE4Ov9GomHX/6RWP+vJnsG
7Y8AoK3K7IbHVLmAmBV8prdvNy9sJ3Pm
=04Rb
-END PGP SIGNATURE-


check_code_page.sql
Description: application/sql

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


Re: [GENERAL] EBCDIC conversion

2014-03-27 Thread David W Noon
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 27/03/14 19:08, Mike Blackwell wrote:
 We have a need to check certain text fields to be sure they'll 
 convert properly to EBCDIC.  A check constraint with a convert() 
 was the initial thought, but there doesn't seem to be a default 
 conversion from UTF8 to EBCDIC.  Does anyone have an
 implementation they'd care to share, or suggestions on the best way
 to implement the conversion function?  Our PostgreSQL servers
 currently only have the default languages installed.

I think the real issue is that you need icu or libiconv installed.
You will also need to know which EBCDIC code page you want: U.S.
EBCDIC is cp37, IIRC.

I suspect you will need to write a C or Python function that performs
a test conversion, using icu or libiconv, and return a Boolean result.
It should not be too difficult if you can write C or Python.
- -- 
Regards,

Dave  [RLU #314465]
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
david.w.n...@googlemail.com (David W Noon)
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.22 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iEYEARECAAYFAlM0wtYACgkQogYgcI4W/5TYsgCgwGf/HBL7XHGc5HrzYiLSkXcZ
nv8An1Ysq9DEJw2vn/mRpY2UWv5sFHna
=grZk
-END PGP SIGNATURE-


-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general