[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue/common/src/dbdrivers/sapdb DBdriver.py
From: |
Jason Cater |
Subject: |
gnue/common/src/dbdrivers/sapdb DBdriver.py |
Date: |
Tue, 02 Apr 2002 20:10:38 -0500 |
CVSROOT: /home/cvs
Module name: gnue
Changes by: Jason Cater <address@hidden> 02/04/02 20:10:38
Modified files:
common/src/dbdrivers/sapdb: DBdriver.py
Log message:
added introspection support for SAP-DB [untested]
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/common/src/dbdrivers/sapdb/DBdriver.py.diff?cvsroot=OldCVS&tr1=1.6&tr2=1.7&r1=text&r2=text
Patches:
Index: gnue/common/src/dbdrivers/sapdb/DBdriver.py
diff -c gnue/common/src/dbdrivers/sapdb/DBdriver.py:1.6
gnue/common/src/dbdrivers/sapdb/DBdriver.py:1.7
*** gnue/common/src/dbdrivers/sapdb/DBdriver.py:1.6 Thu Jan 10 15:59:18 2002
--- gnue/common/src/dbdrivers/sapdb/DBdriver.py Tue Apr 2 20:10:38 2002
***************
*** 84,111 ****
self._postConnect()
#
# Schema (metadata) functions
#
- # TODO: See postgresql for an example of what these functions do.
-
# Return a list of the types of Schema objects this driver provides
def getSchemaTypes(self):
! return [('view','View',1), ('table','Table',1)]
# Return a list of Schema objects
def getSchemaList(self, type=None):
! return []
# Find a schema object with specified name
def getSchemaByName(self, name, type=None):
- return None
! def _postConnect(self):
! self.triggerExtensions = TriggerExtensions(self._dataConnection)
class SAP_DataObject_Object(SAP_DataObject, \
--- 84,231 ----
self._postConnect()
+ def _postConnect(self):
+ self.triggerExtensions = TriggerExtensions(self._dataConnection)
#
# Schema (metadata) functions
#
# Return a list of the types of Schema objects this driver provides
def getSchemaTypes(self):
! return [ ('table', 'Table',1),
! ('view', 'View', 1),
! ('synonym', 'Synonym',1),
! ('result', 'Result Table',1) ]
!
# Return a list of Schema objects
def getSchemaList(self, type=None):
!
! where_user = ""
! if type == None:
! where_type = ''
! else:
! where_type = "where TYPE='%s'" % string.upper(type)
!
!
! statement = \
! "select owner||'.'||tablename||'.'||type, " + \
! "owner||'.'||tablename table_name, " + \
! "type table_type " + \
! "from domain.tables %s" \
! % (where_type) + \
! "order by tablename "
!
! GDebug.printMesg(5,statement)
!
! cursor = self._dataConnection.cursor()
! cursor.execute(statement)
!
! list = []
! for rs in cursor.fetchall():
! list.append(GDataObjects.Schema(attrs={'id':rs[0], 'name':rs[1],
! 'type':string.lower(rs[2])},
! getChildSchema=self.__getFieldSchema))
!
! cursor.close()
! return list
!
# Find a schema object with specified name
def getSchemaByName(self, name, type=None):
! where_user = ""
! parts = string.split(string.upper(name),'.')
! name = parts[-1]
! if len(parts) > 1:
! schema = " and owner='%s'" % parts[-2]
! else:
! schema = ""
!
! statement = \
! "select owner||'.'||tablename||'.'||type, " + \
! "owner||'.'||tablename table_name, " + \
! "type table_type " + \
! "from domain.tables where owner='%s'%s" \
! % (name, schema) + \
! "order by tablename "
!
! GDebug.printMesg(5,statement)
!
! cursor = self._dataConnection.cursor()
! cursor.execute(statement)
!
! list = []
! for rs in cursor.fetchall():
! list.append(GDataObjects.Schema(attrs={'id':string.lower(rs[0]),
'name':rs[1],
! 'type':rs[2]},
! getChildSchema=self.__getFieldSchema))
!
! cursor.close()
!
! try:
! return list[0]
! except:
! return None
!
!
!
! # Get fields for a table
! def __getFieldSchema(self, parent):
!
! # TODO: This does not support user-defined datatypes...
! # TODO: it will always report such as TEXT-like fields.
!
! schema, name, type = string.split(parent.id,'.')
!
! cursor = self._dataConnection.cursor()
!
! # if type == 'synonym':
! # statement = "select base_tabschema, base_tabname " + \
! # "from syscat.tables " + \
! # "where tabschema = '%s' and tabname='%s'" % (schema, name)
! #
! # GDebug.printMesg(5,statement)
! #
! # cursor.execute(statement)
! # rs = cursor.fetchone()
! # schema, name = rs
!
! statement = \
! "select owner||'.'||tablename||'.'||columnname, " + \
! "columnname, datatype, 'Y', len, dec " + \
! "from domain.columns" + \
! "where owner = '%s' and tablename = '%s' " % (schema, name) + \
! "order by pos"
!
! GDebug.printMesg(5,statement)
!
! cursor.execute(statement)
!
! list = []
! for rs in cursor.fetchall():
!
! attrs={'id': rs[0], 'name': rs[1],
! 'type':'field', 'nativetype': rs[2],
! 'required': 'N'}
!
! if rs[2] in ('BOOLEAN','FIXED','FLOAT','INTEGER','LONG','SMALLINT'):
! attrs['precision'] = rs[5]
! attrs['datatype'] = 'number'
! elif rs[2] in ('DATE','TIME','TIMESTAMP'):
! attrs['datatype'] = 'date'
! else:
! attrs['datatype'] = 'text'
!
! if rs[5] != 0:
! attrs['length'] = rs[4]
!
! list.append(GDataObjects.Schema(attrs=attrs))
!
! cursor.close()
! return tuple(list)
class SAP_DataObject_Object(SAP_DataObject, \
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnue/common/src/dbdrivers/sapdb DBdriver.py,
Jason Cater <=