Consultor Eletrônico



Kbase P106756: Data server Oracle is not returning query results correctly - "if...else.." is not filtering result
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   23/04/2007
Status: Unverified

FACT(s) (Environment):

Oracle DataServer
OpenEdge 10.0x
Progress 9.x

SYMPTOM(s):

Data server is not returning query results correctly

"if...else..." clause in right operant in where clause

The result set is not filtering the records according to the "if..else.." conditions

The bug is specific to joins

The IF condition contains a field which is not from the same table level.

Problem is specific to using the field name of the outer table in the join on the where clause of the inner table.

CAUSE:

Bug # 20050726024

CAUSE:

Bug # OE00118277

CAUSE:

The issue here is that the DataServer is resolving the query at compile-time and ends up turning off the client selection for the query. At runtime, when the DataServer sends the records to the client layer, the client layer doesn't know it has to do any selection and ends up not evaluating the IF funtion.
The problem is specific to a join query where the field used in the IF function is not from the table at the join level of the where clause.

FIX:

The bug is fixed in 9.1E03, 10.0B04 and 10.1A01.
Another workaround is to alter the where clause to generate correct results, please reference Notes section.