[fdo-trac] #802: mUseNesting is not right

FDO trac_fdo at osgeo.org
Mon Dec 12 03:14:33 EST 2011


#802: mUseNesting is not right
-----------------------------+----------------------------------------------
   Reporter:  ChristineBao   |       Owner:  thomasknoell
       Type:  defect         |      Status:  new         
   Priority:  critical       |   Milestone:  3.7.0       
  Component:  ODBC Provider  |     Version:  3.7.0       
   Severity:  2              |    Keywords:              
External_id:                 |  
-----------------------------+----------------------------------------------
 Report from Autodesk QA:

 During selection in ODBC provider, it generate filter like this:

 {{{
 (ID_ae=2 AND ID=18) OR (ID_ae=3 AND ID=20) OR (ID_ae=4 AND ID=28) OR
 (ID_ae=5 AND ID=26) OR (ID_ae=7 AND ID=24) OR (ID_ae=9 AND ID=13) OR
 (ID_ae=10 AND ID=73) OR (ID_ae=12 AND ID=34) OR (ID_ae=13 AND ID=26) OR
 (ID_ae=14 AND ID=24) OR (ID_ae=15 AND ID=34) OR (ID_ae=17 AND ID=16) OR
 (ID_ae=18 AND ID=20) OR (ID_ae=19 AND ID=26) OR (ID_ae=20 AND ID=5) OR
 (ID_ae=21 AND ID=26) OR (ID_ae=23 AND ID=34) OR (ID_ae=25 AND ID=34) OR
 (ID_ae=26 AND ID=8) OR (ID_ae=28 AND ID=26) OR (ID_ae=29 AND ID=26) OR
 (ID_ae=30 AND ID=73) OR (ID_ae=31 AND ID=30) OR (ID_ae=32 AND ID=29) OR
 (ID_ae=33 AND ID=26) OR (ID_ae=34 AND ID=11) OR (ID_ae=35 AND ID=34) OR
 (ID_ae=41 AND ID=30) OR (ID_ae=42 AND ID=26) OR (ID_ae=43 AND ID=75) OR
 (ID_ae=48 AND ID=8) OR (ID_ae=50 AND ID=73) OR (ID_ae=51 AND ID=38) OR
 (ID_ae=52 AND ID=73) OR (ID_ae=53 AND ID=20) OR (ID_ae=54 AND ID=38) OR
 (ID_ae=55 AND ID=30) OR (ID_ae=56 AND ID=18) OR (ID_ae=57 AND ID=47) OR
 (ID_ae=58 AND ID=48) OR (ID_ae=60 AND ID=17) OR (ID_ae=61 AND ID=74) OR
 (ID_ae=62 AND ID=71) OR (ID_ae=63 AND ID=59) OR (ID_ae=64 AND ID=29) OR
 (ID_ae=65 AND ID=61) OR (ID_ae=66 AND ID=71) OR (ID_ae=69 AND ID=61) OR
 (ID_ae=70 AND ID=64) OR (ID_ae=72 AND ID=64) OR (ID_ae=73 AND ID=70) OR
 (ID_ae=79 AND ID=71) OR (ID_ae=80 AND ID=70) OR (ID_ae=81 AND ID=58) OR
 (ID_ae=82 AND ID=59) OR (ID_ae=83 AND ID=64) OR (ID_ae=84 AND ID=65) OR
 (ID_ae=85 AND ID=58) OR (ID_ae=86 AND ID=59) OR (ID_ae=87 AND ID=60) OR
 (ID_ae=88 AND ID=65) OR (ID_ae=89 AND ID=53) OR (ID_ae=90 AND ID=64) OR
 (ID_ae=92 AND ID=69) OR (ID_ae=93 AND ID=60) OR (ID_ae=94 AND ID=65) OR
 (ID_ae=95 AND ID=65) OR (ID_ae=96 AND ID=65) OR (ID_ae=97 AND ID=65) OR
 (ID_ae=98 AND ID=65) OR (ID_ae=99 AND ID=59) OR (ID_ae=100 AND ID=63) OR
 (ID_ae=101 AND ID=58) OR (ID_ae=102 AND ID=53) OR (ID_ae=103 AND ID=65) OR
 (ID_ae=104 AND ID=55) OR (ID_ae=105 AND ID=67) OR (ID_ae=106 AND ID=68) OR
 (ID_ae=107 AND ID=71) OR (ID_ae=110 AND ID=65) OR (ID_ae=111 AND ID=71) OR
 (ID_ae=112 AND ID=5) OR (ID_ae=113 AND ID=53)
 }}}

 However after processing by FdoRdbmsFilterProcessor, it's appended a lot
 of ( at first of the filter string, and cause exception when executing the
 query.

 {{{
 RDBMS: [Microsoft][ODBC Microsoft Access Driver] Expression too complex in
 query expression '(  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (
 (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (
 (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (
 (  (  (  (  (  (  (  (  (  (  (  (  (  (  ( B.[ID_a'.
 }}}

 The generated filter string is:

 {{{
 (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (
 (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (
 (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (
 (  (  (  (  (  (  (  (  ( B."ID_ae" = 2 )  AND  ( B."ID" = 18 )  )  OR  (
 ( B."ID_ae" = 3 )  AND  ( B."ID" = 20 )  )  )  OR  (  ( B."ID_ae" = 4 )
 AND  ( B."ID" = 28 )  )  )  OR  (  ( B."ID_ae" = 5 )  AND  ( B."ID" = 26 )
 )  )  OR  (  ( B."ID_ae" = 7 )  AND  ( B."ID" = 24 )  )  )  OR  (  (
 B."ID_ae" = 9 )  AND  ( B."ID" = 13 )  )  )  OR  (  ( B."ID_ae" = 10 )
 AND  ( B."ID" = 73 )  )  )  OR  (  ( B."ID_ae" = 12 )  AND  ( B."ID" = 34
 )  )  )  OR  (  ( B."ID_ae" = 13 )  AND  ( B."ID" = 26 )  )  )  OR  (  (
 B."ID_ae" = 14 )  AND  ( B."ID" = 24 )  )  )  OR  (  ( B."ID_ae" = 15 )
 AND  ( B."ID" = 34 )  )  )  OR  (  ( B."ID_ae" = 17 )  AND  ( B."ID" = 16
 )  )  )  OR  (  ( B."ID_ae" = 18 )  AND  ( B."ID" = 20 )  )  )  OR  (  (
 B."ID_ae" = 19 )  AND  ( B."ID" = 26 )  )  )  OR  (  ( B."ID_ae" = 20 )
 AND  ( B."ID" = 5 )  )  )  OR  (  ( B."ID_ae" = 21 )  AND  ( B."ID" = 26 )
 )  )  OR  (  ( B."ID_ae" = 23 )  AND  ( B."ID" = 34 )  )  )  OR  (  (
 B."ID_ae" = 25 )  AND  ( B."ID" = 34 )  )  )  OR  (  ( B."ID_ae" = 26 )
 AND  ( B."ID" = 8 )  )  )  OR  (  ( B."ID_ae" = 28 )  AND  ( B."ID" = 26 )
 )  )  OR  (  ( B."ID_ae" = 29 )  AND  ( B."ID" = 26 )  )  )  OR  (  (
 B."ID_ae" = 30 )  AND  ( B."ID" = 73 )  )  )  OR  (  ( B."ID_ae" = 31 )
 AND  ( B."ID" = 30 )  )  )  OR  (  ( B."ID_ae" = 32 )  AND  ( B."ID" = 29
 )  )  )  OR  (  ( B."ID_ae" = 33 )  AND  ( B."ID" = 26 )  )  )  OR  (  (
 B."ID_ae" = 34 )  AND  ( B."ID" = 11 )  )  )  OR  (  ( B."ID_ae" = 35 )
 AND  ( B."ID" = 34 )  )  )  OR  (  ( B."ID_ae" = 41 )  AND  ( B."ID" = 30
 )  )  )  OR  (  ( B."ID_ae" = 42 )  AND  ( B."ID" = 26 )  )  )  OR  (  (
 B."ID_ae" = 43 )  AND  ( B."ID" = 75 )  )  )  OR  (  ( B."ID_ae" = 48 )
 AND  ( B."ID" = 8 )  )  )  OR  (  ( B."ID_ae" = 50 )  AND  ( B."ID" = 73 )
 )  )  OR  (  ( B."ID_ae" = 51 )  AND  ( B."ID" = 38 )  )  )  OR  (  (
 B."ID_ae" = 52 )  AND  ( B."ID" = 73 )  )  )  OR  (  ( B."ID_ae" = 53 )
 AND  ( B."ID" = 20 )  )  )  OR  (  ( B."ID_ae" = 54 )  AND  ( B."ID" = 38
 )  )  )  OR  (  ( B."ID_ae" = 55 )  AND  ( B."ID" = 30 )  )  )  OR  (  (
 B."ID_ae" = 56 )  AND  ( B."ID" = 18 )  )  )  OR  (  ( B."ID_ae" = 57 )
 AND  ( B."ID" = 47 )  )  )  OR  (  ( B."ID_ae" = 58 )  AND  ( B."ID" = 48
 )  )  )  OR  (  ( B."ID_ae" = 60 )  AND  ( B."ID" = 17 )  )  )  OR  (  (
 B."ID_ae" = 61 )  AND  ( B."ID" = 74 )  )  )  OR  (  ( B."ID_ae" = 62 )
 AND  ( B."ID" = 71 )  )  )  OR  (  ( B."ID_ae" = 63 )  AND  ( B."ID" = 59
 )  )  )  OR  (  ( B."ID_ae" = 64 )  AND  ( B."ID" = 29 )  )  )  OR  (  (
 B."ID_ae" = 65 )  AND  ( B."ID" = 61 )  )  )  OR  (  ( B."ID_ae" = 66 )
 AND  ( B."ID" = 71 )  )  )  OR  (  ( B."ID_ae" = 69 )  AND  ( B."ID" = 61
 )  )  )  OR  (  ( B."ID_ae" = 70 )  AND  ( B."ID" = 64 )  )  )  OR  (  (
 B."ID_ae" = 72 )  AND  ( B."ID" = 64 )  )  )  OR  (  ( B."ID_ae" = 73 )
 AND  ( B."ID" = 70 )  )  )  OR  (  ( B."ID_ae" = 79 )  AND  ( B."ID" = 71
 )  )  )  OR  (  ( B."ID_ae" = 80 )  AND  ( B."ID" = 70 )  )  )  OR  (  (
 B."ID_ae" = 81 )  AND  ( B."ID" = 58 )  )  )  OR  (  ( B."ID_ae" = 82 )
 AND  ( B."ID" = 59 )  )  )  OR  (  ( B."ID_ae" = 83 )  AND  ( B."ID" = 64
 )  )  )  OR  (  ( B."ID_ae" = 84 )  AND  ( B."ID" = 65 )  )  )  OR  (  (
 B."ID_ae" = 85 )  AND  ( B."ID" = 58 )  )  )  OR  (  ( B."ID_ae" = 86 )
 AND  ( B."ID" = 59 )  )  )  OR  (  ( B."ID_ae" = 87 )  AND  ( B."ID" = 60
 )  )  )  OR  (  ( B."ID_ae" = 88 )  AND  ( B."ID" = 65 )  )  )  OR  (  (
 B."ID_ae" = 89 )  AND  ( B."ID" = 53 )  )  )  OR  (  ( B."ID_ae" = 90 )
 AND  ( B."ID" = 64 )  )  )  OR  (  ( B."ID_ae" = 92 )  AND  ( B."ID" = 69
 )  )  )  OR  (  ( B."ID_ae" = 93 )  AND  ( B."ID" = 60 )  )  )  OR  (  (
 B."ID_ae" = 94 )  AND  ( B."ID" = 65 )  )  )  OR  (  ( B."ID_ae" = 95 )
 AND  ( B."ID" = 65 )  )  )  OR  (  ( B."ID_ae" = 96 )  AND  ( B."ID" = 65
 )  )  )  OR  (  ( B."ID_ae" = 97 )  AND  ( B."ID" = 65 )  )  )  OR  (  (
 B."ID_ae" = 98 )  AND  ( B."ID" = 65 )  )  )  OR  (  ( B."ID_ae" = 99 )
 AND  ( B."ID" = 59 )  )  )  OR  (  ( B."ID_ae" = 100 )  AND  ( B."ID" = 63
 )  )  )  OR  (  ( B."ID_ae" = 101 )  AND  ( B."ID" = 58 )  )  )  OR  (  (
 B."ID_ae" = 102 )  AND  ( B."ID" = 53 )  )  )  OR  (  ( B."ID_ae" = 103 )
 AND  ( B."ID" = 65 )  )  )  OR  (  ( B."ID_ae" = 104 )  AND  ( B."ID" = 55
 )  )  )  OR  (  ( B."ID_ae" = 105 )  AND  ( B."ID" = 67 )  )  )  OR  (  (
 B."ID_ae" = 106 )  AND  ( B."ID" = 68 )  )  )  OR  (  ( B."ID_ae" = 107 )
 AND  ( B."ID" = 71 )  )  )  OR  (  ( B."ID_ae" = 110 )  AND  ( B."ID" = 65
 )  )  )  OR  (  ( B."ID_ae" = 111 )  AND  ( B."ID" = 71 )  )  )  OR  (  (
 B."ID_ae" = 112 )  AND  ( B."ID" = 5 )  )  )  OR  (  ( B."ID_ae" = 113 )
 AND  ( B."ID" = 53 )  )  )
 }}}

 This ticket is related to:
 Related to ticket http://trac.osgeo.org/fdo/ticket/367.

-- 
Ticket URL: <http://trac.osgeo.org/fdo/ticket/802>
FDO <http://fdo.osgeo.org/>
Feature Data Objects


More information about the fdo-trac mailing list