commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

r5884 - trunk/gnue-common/src/datasources/drivers/appserver/Schema/Disco


From: johannes
Subject: r5884 - trunk/gnue-common/src/datasources/drivers/appserver/Schema/Discovery
Date: Fri, 11 Jun 2004 12:38:07 -0500 (CDT)

Author: johannes
Date: 2004-06-11 12:38:06 -0500 (Fri, 11 Jun 2004)
New Revision: 5884

Modified:
   
trunk/gnue-common/src/datasources/drivers/appserver/Schema/Discovery/Introspection.py
Log:
Return correct length-attributes for gnue_id's and reference-properties


Modified: 
trunk/gnue-common/src/datasources/drivers/appserver/Schema/Discovery/Introspection.py
===================================================================
--- 
trunk/gnue-common/src/datasources/drivers/appserver/Schema/Discovery/Introspection.py
       2004-06-11 16:39:06 UTC (rev 5883)
+++ 
trunk/gnue-common/src/datasources/drivers/appserver/Schema/Discovery/Introspection.py
       2004-06-11 17:38:06 UTC (rev 5884)
@@ -167,10 +167,16 @@
 
     for rec in sess.fetch (sessId, listId, 0, sess.count (sessId, listId)):
       name = "%s_%s" % (self._modules [rec [1]], rec [2])
+      nativetype = rec [3]
 
-      if rec [3] == 'number':
+      if name == 'gnue_id' or '_' in nativetype:
+        length = 32
+      else:
+        length = rec [4]
+
+      if nativetype == 'number':
         datatype = 'number'
-      elif rec [3] in ['date', 'datetime']:
+      elif nativetype in ['date', 'datetime']:
         datatype = 'date'
       else:
         datatype = 'text'
@@ -178,15 +184,11 @@
       attrs = {'id'        : "%s.%s" % (parent.id, name.lower ()),
                'name'      : name,
                'datatype'  : datatype,
-               'precision' : rec [5],
-               'nativetype': 'unknown',
-               'length'    : rec [4],
+               'precision' : rec [5] or 0,
+               'nativetype': nativetype,
+               'length'    : length,
                'required'  : 0}
 
-      # reference properties have a fixed length
-      if '_' in datatype:
-        attrs ['length'] = 32
-
       result.append (GIntrospection.Schema (attrs))
     
     # 
@@ -207,10 +209,16 @@
         continue
 
       name = "%s_%s" % (self._modules [rec [1]], rec [2] [3:])
+      nativetype = rec [3]
 
-      if rec [3] == 'number':
+      if '_' in nativetype:
+        length = 32
+      else:
+        length = rec [4]
+
+      if nativetype == 'number':
         datatype = 'number'
-      elif rec [3] in ['date', 'datetime']:
+      elif nativetype in ['date', 'datetime']:
         datatype = 'date'
       else:
         datatype = 'text'
@@ -219,14 +227,10 @@
                'name'      : name,
                'datatype'  : datatype,
                'precision' : rec [5],
-               'nativetype': 'unknown',
-               'length'    : rec [4],
+               'nativetype': nativetype,
+               'length'    : length,
                'required'  : 0}
 
-      # reference properties have a fixed length
-      if '_' in datatype:
-        attrs ['length'] = 32
-
       result.append (GIntrospection.Schema (attrs))
 
     return result





reply via email to

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