From 9811a25b6ccefe3cd4113bd0e9ac9a8e8b4fee85 Mon Sep 17 00:00:00 2001 From: "James E. Housley" Date: Mon, 4 Jun 2001 11:53:50 +0000 Subject: Forgotten file. Add character sets to the server PR: 27846 Submitted by: Palle Girgensohn --- databases/postgresql73/files/patch-jdbc-Connection | 51 ++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 databases/postgresql73/files/patch-jdbc-Connection (limited to 'databases/postgresql73') diff --git a/databases/postgresql73/files/patch-jdbc-Connection b/databases/postgresql73/files/patch-jdbc-Connection new file mode 100644 index 000000000000..26fbc260d639 --- /dev/null +++ b/databases/postgresql73/files/patch-jdbc-Connection @@ -0,0 +1,51 @@ +=================================================================== +RCS file: /home/projects/pgsql/cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/Connection.java,v +retrieving revision 1.14 +retrieving revision 1.16 +diff -u -r1.14 -r1.16 +--- src/interfaces/jdbc/org/postgresql/Connection.java 2001/01/31 08:26:01 1.14 ++++ src/interfaces/jdbc/org/postgresql/Connection.java 2001/06/01 20:57:58 1.16 +@@ -10,7 +10,7 @@ + import org.postgresql.util.*; + + /** +- * $Id: Connection.java,v 1.14 2001/01/31 08:26:01 peter Exp $ ++ * $Id: Connection.java,v 1.16 2001/06/01 20:57:58 momjian Exp $ + * + * This abstract class is used by org.postgresql.Driver to open either the JDBC1 or + * JDBC2 versions of the Connection class. +@@ -267,7 +267,8 @@ + // + firstWarning = null; + +- java.sql.ResultSet initrset = ExecSQL("set datestyle to 'ISO'; select getdatabaseencoding()"); ++ java.sql.ResultSet initrset = ExecSQL("set datestyle to 'ISO'; " + ++ "select case when pg_encoding_to_char(1) = 'SQL_ASCII' then 'UNKNOWN' else getdatabaseencoding() end"); + + String dbEncoding = null; + //retrieve DB properties +@@ -307,9 +308,23 @@ + } else if (dbEncoding.equals("EUC_TW")) { + dbEncoding = "EUC_TW"; + } else if (dbEncoding.equals("KOI8")) { +- dbEncoding = "KOI8_R"; ++ // try first if KOI8_U is present, it's a superset of KOI8_R ++ try { ++ dbEncoding = "KOI8_U"; ++ "test".getBytes(dbEncoding); ++ } ++ catch(UnsupportedEncodingException uee) { ++ // well, KOI8_U is still not in standard JDK, falling back to KOI8_R :( ++ dbEncoding = "KOI8_R"; ++ } ++ + } else if (dbEncoding.equals("WIN")) { + dbEncoding = "Cp1252"; ++ } else if (dbEncoding.equals("UNKNOWN")) { ++ //This isn't a multibyte database so we don't have an encoding to use ++ //We leave dbEncoding null which will cause the default encoding for the ++ //JVM to be used ++ dbEncoding = null; + } else { + dbEncoding = null; + } -- cgit v1.2.3