Project

General

Profile

Feature #2055

RECID AND ROWID IN WHERE CLAUSE

Added by Costin Savin about 11 years ago. Updated over 7 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Costin Savin
Start date:
02/26/2013
Due date:
% Done:

100%

billable:
No
vendor_id:
GCD

cs_upd20130226b.zip (7.23 KB) Costin Savin, 02/26/2013 09:59 AM

cs_upd20130226c.zip (7.23 KB) Costin Savin, 02/26/2013 11:08 AM

History

#1 Updated by Costin Savin about 11 years ago

Next error is in .../vcpl/daqueau0.p:

EXPRESSION EXECUTION ERROR:
---------------------------
throwException( sprintf("Unknown expression return type:  %s", rettype), this)
^  { Unknown expression return type:  rowid [FUNC_ROWID id <99845104744947> 2599:78] }
---------------------------
ERROR:
java.lang.RuntimeException: ERROR!  Active Rule:
-----------------------
      RULE REPORT      
-----------------------
Rule Type :   WALK
Source AST:  [ ROWID ] BLOCK/PROCEDURE/BLOCK/STATEMENT/KW_IF/KW_THEN/INNER_BLOCK/BLOCK/STATEMENT/KW_IF/KW_THEN/INNER_BLOCK/BLOCK/INNER_BLOCK/BLOCK/STATEMENT/KW_FIND/RECORD_PHRASE/KW_WHERE/EXPRESSION/EQUALS/FUNC_ROWID/ @2599:78 {99845104744947}
Copy AST  :  [ ROWID ] BLOCK/PROCEDURE/BLOCK/STATEMENT/KW_IF/KW_THEN/INNER_BLOCK/BLOCK/STATEMENT/KW_IF/KW_THEN/INNER_BLOCK/BLOCK/INNER_BLOCK/BLOCK/STATEMENT/KW_FIND/RECORD_PHRASE/KW_WHERE/EXPRESSION/EQUALS/FUNC_ROWID/ @2599:78 {99845104744947}
Condition :  throwException( sprintf("Unknown expression return type:  %s", rettype), this)
Loop      :  false
--- END RULE REPORT ---

This is occurring in annotations/where_clause_post2.rules. Looks like we need to add rowid (and recid) into the vartypes map. I think this means we need similar changes to the exptypes map above it. Note that classes RowidExpression and RecidExpression do not currently exist.

#2 Updated by Costin Savin about 11 years ago

Is there any case for RECID I can use?
For ROWID I testedn the changes with something like FIND FIRST book WHERE TO-ROWID(book.price) = ROWID(customer) NO-LOCK NO-ERROR.
but for RECID there is no equivalent to TO-ROWID

#3 Updated by Constantin Asofiei about 11 years ago

Costin, use this test:

function func0 returns recid(buffer bb for book). end.
find first book where func0(book.book-id) = recid(book).

#4 Updated by Costin Savin about 11 years ago

Derived a case from that for recid
Added proposed update.

#5 Updated by Constantin Asofiei about 11 years ago

I'm reviewing this now.

#6 Updated by Constantin Asofiei about 11 years ago

Beside the header in RecidExpression (where you reference RowidExpression), I don't see any problems. I'm putting this into conversion regression testing on my system.

#7 Updated by Costin Savin about 11 years ago

Eliminated the problems from previous update

#8 Updated by Constantin Asofiei about 11 years ago

Conversion regression testing has passed, please check in and distribute update.

#9 Updated by Costin Savin about 11 years ago

Commited to bzr as revision 10212.

#10 Updated by Eric Faulhaber about 11 years ago

  • Status changed from New to Closed
  • % Done changed from 0 to 100

#11 Updated by Greg Shah over 7 years ago

  • Target version changed from Milestone 4 to Conversion Support for Server Features

#12 Updated by Greg Shah over 7 years ago

  • Description updated (diff)

Also available in: Atom PDF