[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue-common/src/datasources GDataSource.py GDat...
From: |
Jan Ischebeck |
Subject: |
gnue-common/src/datasources GDataSource.py GDat... |
Date: |
Mon, 06 Oct 2003 16:25:46 -0400 |
CVSROOT: /cvsroot/gnue
Module name: gnue-common
Branch:
Changes by: Jan Ischebeck <address@hidden> 03/10/06 16:25:44
Modified files:
src/datasources: GDataSource.py GDataObjects.py
src/datasources/drivers/DBSIG2: Driver.py
src/datasources/drivers/postgresql/Base: Driver.py
Log message:
Make some non-intrusive preparations for "unicodification" of
gnue-common
- make database encoding a driver independent variable
- add encoding conversion to postgresql base driver
- add uncommented decode ops
- add encode ops, which are only triggered by passing an unicode type
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-common/src/datasources/GDataSource.py.diff?tr1=1.63&tr2=1.64&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-common/src/datasources/GDataObjects.py.diff?tr1=1.70&tr2=1.71&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-common/src/datasources/drivers/DBSIG2/Driver.py.diff?tr1=1.71&tr2=1.72&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-common/src/datasources/drivers/postgresql/Base/Driver.py.diff?tr1=1.34&tr2=1.35&r1=text&r2=text
Patches:
Index: gnue-common/src/datasources/GDataObjects.py
diff -c gnue-common/src/datasources/GDataObjects.py:1.70
gnue-common/src/datasources/GDataObjects.py:1.71
*** gnue-common/src/datasources/GDataObjects.py:1.70 Mon Aug 4 23:15:38 2003
--- gnue-common/src/datasources/GDataObjects.py Mon Oct 6 16:25:43 2003
***************
*** 112,117 ****
--- 112,124 ----
self._unboundFieldReferences = {} # Contains names of all unbound
# field references
+
+ self._databaseEncoding = 'iso8859-1' # contain encoding used by database
+
+ try:
+ self._databaseEncoding = gConfig('textEncoding')
+ except:
+ pass
self._defaultValues = {}
self.triggerExtensions = None
Index: gnue-common/src/datasources/GDataSource.py
diff -c gnue-common/src/datasources/GDataSource.py:1.63
gnue-common/src/datasources/GDataSource.py:1.64
*** gnue-common/src/datasources/GDataSource.py:1.63 Fri Jun 6 20:52:37 2003
--- gnue-common/src/datasources/GDataSource.py Mon Oct 6 16:25:42 2003
***************
*** 257,263 ****
def referenceFields(self, fields):
for field in fields:
! if type(field) == types.StringType:
self.referenceField(field)
else:
self.referenceField(*field)
--- 257,264 ----
def referenceFields(self, fields):
for field in fields:
! if (type(field) == types.StringType) or \
! (type(field) == types.UnicodeType):
self.referenceField(field)
else:
self.referenceField(*field)
Index: gnue-common/src/datasources/drivers/DBSIG2/Driver.py
diff -c gnue-common/src/datasources/drivers/DBSIG2/Driver.py:1.71
gnue-common/src/datasources/drivers/DBSIG2/Driver.py:1.72
*** gnue-common/src/datasources/drivers/DBSIG2/Driver.py:1.71 Mon Aug 25
13:00:22 2003
--- gnue-common/src/datasources/drivers/DBSIG2/Driver.py Mon Oct 6
16:25:43 2003
***************
*** 159,164 ****
--- 159,165 ----
i = 0
dict = {}
for f in (rs):
+ #f = f.decode(self._dataObject._databaseEncoding)
dict[string.lower(self._fieldNames[i])] = f
i += 1
self._cachedRecords.append (self._recordSetClass(parent=self, \
***************
*** 254,270 ****
return str(value)
elif type(value) == types.UnicodeType:
! return "'%s'" %
string.replace(value.encode(gConfig("textEncoding")),"'",
! "%s'" % self._escapeSingleQuote)
else:
!
! try:
! return "'%s'" % string.replace(str(value),"'",
! "%s'" % self._escapeSingleQuote)
except:
! return "'%s'" % string.replace(value,"'",
! "%s'" % self._escapeSingleQuote)
!
# This should be over-ridden only if driver needs more than user/pass
--- 255,272 ----
return str(value)
elif type(value) == types.UnicodeType:
! return "'%s'" % string.replace(value.encode(self._databaseEncoding),
! "'",
! "%s'" % self._escapeSingleQuote)
else:
! try:
! return "'%s'" % string.replace(str(value),
! "'",
! "%s'" % self._escapeSingleQuote)
except:
! return "'%s'" % string.replace(value,
! "'",
! "%s'" % self._escapeSingleQuote)
# This should be over-ridden only if driver needs more than user/pass
Index: gnue-common/src/datasources/drivers/postgresql/Base/Driver.py
diff -c gnue-common/src/datasources/drivers/postgresql/Base/Driver.py:1.34
gnue-common/src/datasources/drivers/postgresql/Base/Driver.py:1.35
*** gnue-common/src/datasources/drivers/postgresql/Base/Driver.py:1.34 Thu Jul
3 18:56:36 2003
--- gnue-common/src/datasources/drivers/postgresql/Base/Driver.py Mon Oct
6 16:25:43 2003
***************
*** 70,88 ****
class PGSQL_DataObject(DBSIG_DataObject):
! schema2nativeTypes={"auto":"int4",
! "int":"int",
! "number":"int",
! "float":"float",
! "decimal":"decimal",
! "varchar":"varchar",
! "char":"char",
! "blob":"text",
! "text":"text",
! "longtext":"text",
! "date":"date",
! "datetime":"datetime",
! "timestamp":"timestamp"}
def __init__(self, pgdriver=None, pgresultset=None):
DBSIG_DataObject.__init__(self)
--- 70,103 ----
class PGSQL_DataObject(DBSIG_DataObject):
! encodingList={'ascii' : 'SQL_ASCII', # ASCII
! '' : 'EUC_JP' # Japanese EUC
! '' : 'EUC_CN', # Chinese EUC
! '' : 'EUC_KR', # Korean EUC
! '' : 'JOHAB', # Korean EUC (Hangle
base)
! '' : 'EUC_TW', # Taiwan EUC
! 'utf-8' : 'UNICODE', # Unicode (UTF-8)
! '' : 'MULE_INTERNAL', # Mule internal code
! 'iso8859-1' : 'LATIN1', # ISO 8859-1 ECMA-94 Latin
Alphabet No.1
! 'iso8859-2' : 'LATIN2', # ISO 8859-2 ECMA-94 Latin
Alphabet No.2
! 'iso8859-3' : 'LATIN3', # ISO 8859-3 ECMA-94 Latin
Alphabet No.3
! 'iso8859-4' : 'LATIN4', # ISO 8859-4 ECMA-94 Latin
Alphabet No.4
! 'iso8859-9' : 'LATIN5', # ISO 8859-9 ECMA-128 Latin
Alphabet No.5
! 'iso8859-10': 'LATIN6', # ISO 8859-10 ECMA-144 Latin
Alphabet No.6
! 'iso8859-13': 'LATIN7', # ISO 8859-13 Latin Alphabet
No.7
! 'iso8859-14': 'LATIN8', # ISO 8859-14 Latin Alphabet
No.8
! 'iso8859-15': 'LATIN9', # ISO 8859-15 Latin Alphabet
No.9
! 'iso8859-16': 'LATIN10', # ISO 8859-16 ASRO SR 14111
Latin Alphabet No.10
! 'iso8859-5' : 'ISO-8859-5', # ECMA-113 Latin/Cyrillic
! 'iso8859-6' : 'ISO-8859-6', # ECMA-114 Latin/Arabic
! 'iso8859-7' : 'ISO-8859-7', # ECMA-118 Latin/Greek
! 'iso8859-8' : 'ISO-8859-8', # ECMA-121 Latin/Hebrew
! '' : 'KOI8', # KOI8-R(U)
! '' : 'WIN', # Windows CP1251
! '' : 'ALT', # Windows CP866
! '' : 'WIN1256', # Arabic Windows CP1256
! '' : 'TCVN', # Vietnamese TCVN-5712
(Windows CP1258)
! '' : 'WIN874'} # Thai Windows CP874
def __init__(self, pgdriver=None, pgresultset=None):
DBSIG_DataObject.__init__(self)
***************
*** 123,140 ****
raise GDataObjects.LoginError, value
try:
- encoding = ""
try:
! encoding = connectData['encoding']
except KeyError:
! # if encoding is not defined in connectData use gnue.conf setting
instead
! try:
! encoding = gConfig('encoding')
! except:
! pass
if encoding.upper() not in ("",'DEFAULT'):
! GDebug.printMesg(1,'Setting postgresql client_encoding to %s' %
encoding)
cursor = self._dataConnection.cursor()
cursor.execute("SET CLIENT_ENCODING TO '%s'" % encoding)
cursor.close()
--- 138,153 ----
raise GDataObjects.LoginError, value
try:
try:
! self._databaseEncoding = connectData['encoding']
except KeyError:
! pass
!
! encoding = self.encodingList(self._databaseEncoding)
if encoding.upper() not in ("",'DEFAULT'):
! GDebug.printMesg(1,'Setting postgresql client_encoding to %s (%s)' %
(encoding,
!
self._databaseEncoding))
cursor = self._dataConnection.cursor()
cursor.execute("SET CLIENT_ENCODING TO '%s'" % encoding)
cursor.close()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnue-common/src/datasources GDataSource.py GDat...,
Jan Ischebeck <=