Kbase P131431: ABL query with FIELDS list and BY clause having a field from a different tables causes client to cr
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  7/17/2008 |
|
Status: Unverified
SYMPTOM(s):
ABL query with FIELDS list and BY clause having a field from a different tables causes client to crash when run against MS SQL Server DataServer and ODBC DataServer
Stack trace from _progres reads:
00838BA6 00000013 dbut_stlen+6
The MS SQL Server Native client shows the following error:
SQLState: S1002
Native Error Code: 0
Error Message: [Microsoft][SQL Native Client]Invalid Descriptor Index
FACT(s) (Environment):
The ABL query consists of multiple tables with joins
MS SQL DataServer
ODBC DataServer
Progress 9.x
OpenEdge 10.x
Windows NT 32 Intel/Windows 2000
CAUSE:
Bug# OE00168756
CAUSE:
When there is a FIELDS list, the MSS/ODBC DataServer at compile time builds a list with the field position of the fields in the FIELDS list, and it will also adds the fields in the by clause to that list. Since the field in the BY clause does not belong to table that is being queried using the FIELDS list, and at runtime, when DataServer builds the SQL to execute, DataServer messes up because the field position of that field in the BY clause is bigger then the number of fields. And it ends up looking at random memory.
On the other hand, this is not an issue with the ORACLE DataServer, because Oracle DataServer builds the SQL at compile time.
FIX:
The workaround is not to have fields from different table in the BY clause if there is a FIELDS clause in the join.