[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