-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 07/03/2011 12:54 PM, Fernando Martins wrote:
> Regarding the leakage in Shared.DC.ZRDB.Results.Results mentioned
> in:
> 
> https://mail.zope.org/pipermail/zope/2011-January/176106.html
> 
> which might very well be the leakage introduced in 2.10 that made
> ZSQL methods useless, what are the chances of being solved?
> 
> I see that Tres Seaver made a new package, SQL Adaptor (not useful to
>  me) because of this bug. Is it an indication the bug is too hard to
> fix?

The leakage occurs due to a feature ("caseless" column aliases) which
would break backward compatibiltiy if removed.  If you can live without
that feature (your app already uses the column names spelled the same
way as the RDBMS returns them, or you can change it to do so), you
should be able to apply the attached patch to remove the leaking feature.



Tres.
- -- 
===================================================================
Tres Seaver          +1 540-429-0999          tsea...@palladion.com
Palladion Software   "Excellence by Design"    http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk4R3DEACgkQ+gerLs4ltQ4gjQCglmXM907m+ysUeVyUnOHo0+sO
jUgAoJ7VWMc8XCmTQgzZ9nL8OxbZJkAO
=QTY8
-----END PGP SIGNATURE-----
=== modified file 'lib/python/Shared/DC/ZRDB/Results.py'
--- lib/python/Shared/DC/ZRDB/Results.py	2005-11-18 14:39:19 +0000
+++ lib/python/Shared/DC/ZRDB/Results.py	2011-01-27 16:09:13 +0000
@@ -38,7 +38,6 @@
         self._names=names=[]
         self._schema=schema={}
         self._data_dictionary=dd={}
-        aliases=[]
         if zbrains is None: zbrains=NoBrains
         i=0
         for item in items:
@@ -49,10 +48,6 @@
             if schema.has_key(name):
                 raise ValueError, 'Duplicate column name, %s' % name
             schema[name]=i
-            n=name.lower()
-            if n != name: aliases.append((n, SQLAlias(name)))
-            n=name.upper()
-            if n != name: aliases.append((n, SQLAlias(name)))
             dd[name]=item
             names.append(name)
             i=i+1
@@ -70,11 +65,6 @@
             if k[:2]=='__':
                 setattr(r,k,getattr(Record,k))
 
-        # Add SQL Aliases
-        for k, v in aliases:
-            if not hasattr(r, k):
-                setattr(r, k, v)
-
         if hasattr(brains, '__init__'):
             binit=brains.__init__
             if hasattr(binit,'im_func'): binit=binit.im_func

_______________________________________________
Zope maillist  -  Zope@zope.org
https://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope-dev )

Reply via email to