[Zope-DB] DCO2 and nulls again

Jens Gustafsson jeg@nbit.sigma.se
Fri, 28 Dec 2001 15:12:34 +0100 (MET)


This message is in MIME format.

---MOQ10095487541755a45625466222a7a3c1e62041f158
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit

After some tests we, Fredrik, Dario and now Jens, are quite sure the problem 
only occurs on our Linux-installation. We have tested on Solaris and Linux with 
several versions of DCO2, and even the old ZOracleDA, and the null-ralated  
problems we are having now, only occur with DCO2 and Linux.

Attached as a text file you will find the output of a DCO2 trace - you will 
note that the query is "select * from course_round  where max_amount is null" 
and yet the results provide a value for the column max_amount.

Weird, huh?

so, any ideas of what is happening?

Sincerely, Jens
---MOQ10095487541755a45625466222a7a3c1e62041f158
Content-Type: text/plain; name="DCOracle2-error.txt"; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="DCOracle2-error.txt"

Setup that works:
ZOracleDA using Setup-8.1.7 and Make...-1.5

Setups that does not work:
DCOracle2-PR1, compiled on our system
DCOracle2 latest from CVS, compiled on our system
DCOracle2 latest from CVS, using the binary for rh7.1

-------------------------------------------------------------------------------------------------
Test results using the lastest from CVS:

SQL used in a SQL-method:

select * 
  from course_round
 where max_amount is null

gives the following result: 
--------------------------------------------------------------------------------
ID C ID ROUND MIN AMOUNT MAX AMOUNT TEACH LANG 
2  2    1                           sv 
4  4    1     1077873172 1077873172 sv 
6  6    1     1077873172 1077873172 sv 
11 11   1     4          1077873172 sv 
19 11   2     20         1077873172 en 
28 21   1                1077873172 en 
29 21   2     1077873172 1077873172 sv 
22 19   1     1077873172 1077873172 sv 
31 23   1     3          1077873172 sv 

--------------------------------------------------------------------------------
Please observe that only rows where max_amount really is null are returned!


The following debug info are captured directly after the select above:

>>> import DCOracle2
>>> db = DCOracle2.connect('ka/apPe1zin@itadevd')
>>> print db.Version()
{'DCOracle2': '1.78 (dco2: 1.98 -DORACLE8i -Dlinux )', 'PL/SQL ': '8.1.7.2.0 (Production)', 'NLSRTL ': '3.4.1.0.0 (Production)', 'Oracle8i Enterprise Edition ': '8.1.7.2.0 (Production)', 'TNS for Solaris: ': '8.1.7.2.0 (Production)'}
>>> 



>>> DCOracle2.traceback(format=1)
"[1009545960.586305, 17, 'initdco2', '0x40205cac']\n[1009545960.586475, 18, 'initdco2', 0]\n[1009545960.590335, 17, 'TypeTable_lookup']\n[1009545960.590343, 18, 'TypeTable_lookup', '0x080c9168']\n[1009545960.590381, 17, 'TypeTable_lookup']\n[1009545960.590382, 18, 'TypeTable_lookup', '0x080c9168']\n[1009545960.590394, 17, 'TypeTable_lookup']\n[1009545960.590397, 18, 'TypeTable_lookup', '0x080c9108']\n[1009545960.590422, 17, 'TypeTable_lookup']\n[1009545960.5904239, 18, 'TypeTable_lookup', '0x080c9108']\n[1009545960.590432, 17, 'TypeTable_lookup']\n[1009545960.590435, 18, 'TypeTable_lookup', '0x080c8df0']\n[1009545960.590458, 17, 'TypeTable_lookup']\n[1009545960.5904599, 18, 'TypeTable_lookup', '0x080c8df0']\n[1009545960.590468, 17, 'TypeTable_lookup']\n[1009545960.59047, 18, 'TypeTable_lookup', '0x080c9054']\n[1009545960.590493, 17, 'TypeTable_lookup']\n[1009545960.590495, 18, 'TypeTable_lookup', '0x080c9054']\n[1009545960.590503, 17, 'TypeTable_lookup']\n[1009545960.5905041, !
!
18, 'TypeTable_lookup', '0x080c90f0']\n[1009545960.5905271, 17, 'TypeTable_lookup']\n[1009545960.590529, 18, 'TypeTable_lookup', '0x080c90f0']\n[1009545960.590537, 17, 'TypeTable_lookup']\n[1009545960.590539, 18, 'TypeTable_lookup', '0x080c8fe8']\n[1009545960.590561, 17, 'TypeTable_lookup']\n[1009545960.5905631, 18, 'TypeTable_lookup', '0x080c8fe8']\n[1009545960.590582, 17, 'TypeTable_lookup']\n[1009545960.590585, 18, 'TypeTable_lookup', '0x080d8624']\n[1009545960.590621, 17, 'TypeTable_lookup']\n[1009545960.590625, 18, 'TypeTable_lookup', '0x0812b9ac']\n[1009545960.5906349, 17, 'TypeTable_lookup']\n[1009545960.590637, 18, 'TypeTable_lookup', '0x0812b9ac']\n[1009545960.590661, 17, 'TypeTable_lookup']\n[1009545960.590664, 18, 'TypeTable_lookup', '0x0812b9a0']\n[1009545960.590682, 17, 'TypeTable_lookup']\n[1009545960.5906841, 18, 'TypeTable_lookup', '0x080c9150']\n[1009545960.5907069, 17, 'TypeTable_lookup']\n[1009545960.590709, 18, 'TypeTable_lookup', '0x080c9150']\n[1009545960!
!
.590718, 17, 'TypeTable_lookup']\n[1009545960.5907201, 18, 'TypeTable_lookup', '0x080c9120']\n[1009545960.590744, 17, 'TypeTable_lookup']\n[1009545960.590746, 18, 'TypeTable_lookup', '0x080c9120']\n[1009545960.590754, 17, 'TypeTable_lookup']\n[1009545960.5907561, 18, 'TypeTable_lookup', '0x080c9114']\n[1009545960.590778, 17, 'TypeTable_lookup']\n[1009545960.59078, 18, 'TypeTable_lookup', '0x080c9114']\n[1009545960.590803, 17, 'TypeTable_lookup']\n[1009545960.590806, 18, 'TypeTable_lookup', '0x080c9084']\n[1009545960.590829, 17, 'TypeTable_lookup']\n[1009545960.590831, 18, 'TypeTable_lookup', '0x080c9084']\n[1009545960.590847, 17, 'TypeTable_lookup']\n[1009545960.59085, 18, 'TypeTable_lookup', '0x0812b9a0']\n[1009545960.590873, 17, 'TypeTable_lookup']\n[1009545960.590875, 18, 'TypeTable_lookup', '0x080d8618']\n"
>>> 

---MOQ10095487541755a45625466222a7a3c1e62041f158--