commit-gnue
[Top][All Lists]
Advanced

[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()




reply via email to

[Prev in Thread] Current Thread [Next in Thread]