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.