Kbase P164132: Different number of results returned with USE-INDEX verses no index specification
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  9/13/2010 |
|
Status: Verified
SYMPTOM(s):
Different number of results returned with USE-INDEX verses no index specification
Different number of results returned with USE-INDEX verses natural index selection
Query predicate that selects two single component indices for query shows fewer records than exist to meet the criteria.
Displaying the RECIDs for the missing records shows that they are beyond the 32 bit boundaries. (These are 64 bit RECIDs).
FACT(s) (Environment):
Table contains data for both 32 and 64 bit RECIDs.
Changing code to make use of the USE-INDEX function instead of the natural index selection locates all records for the given table.
proutil dbname -C idxcheck has no errors.
proutil dbname -C idxfix has no errors.
proutil dbname -C idxbuild has no errors.
proutil dbname -C idxbuild does not address the problem.
dbtool dbname (option 3, 4 or 5) does not detect the problem.
Database was dumped and loaded via binary dump and load
All Supported Operating Systems
OpenEdge 10.2A 64-bit
OpenEdge 10.1C 64-bit
OpenEdge 10.1B 64-bit
OpenEdge 10.2A03 64-bit Service Pack
CAUSE:
Bug# OE00197068
CAUSE:
When retrieving data from the database and relying on natural index selection, based on predicate formation, a significant number of records that match the predicate criteria are not returned from the database. When the query uses multiple indexes and the result-set includes records with 32-bit and 64-bit ROWIDs, the records with 64-bit ROWIDs are not returned to the client.
FIX:
Upgrade to OpenEdge 10.2B01 or later. If upgrading to OpenEdge 10.2B01 or later is not feasible, a workaround for this issue is to modify the code to make use of the USE-INDEX statement.