Opened 17 years ago

Closed 17 years ago

#105 closed enhancement (fixed)

Add expression engine

Reported by: jacklee Owned by: jacklee
Priority: major Milestone: 3.3.0
Component: FDO API Version: 3.3.0
Severity: 3 Keywords:
Cc: External ID:

Description

This is the first drop of the common expression engine framework.

The SDF and the SHP providers is not yet hook up to the common expression engine and none of the standard functions is yet implemented.

This drop includes RFC 9 (Add new class FdoLiteralValueCollection and new method FdoLiteralValue)

The Evaluate of an expression containing aggregate functions is not yet working.

The following is a pseudo code on how to use the expression engine:

// create the expression engine
FdoPtr<FdoExpressionEngine> engine = FdoExpressionEngine::Create(testReader, classDef, userDefinedFunctions);

// create an expression
FdoPtr<FdoExpression> expression = FdoExpression::Parse(L"UserConcat(Name, UserConcat('a', Name))");

while (testReader->ReadNext())
{
    //evaluate the expression
    FdoPtr<FdoLiteralValue> value = engine->Evaluate(expression);
    ...
} 

A complete example can be found at:

Providers\SDF\Src\UnitTest\UserFunctions.cpp

Change History (3)

comment:1 by jacklee, 17 years ago

Owner: changed from gregboone to jacklee

comment:2 by jacklee, 17 years ago

Status: newassigned

comment:3 by jacklee, 17 years ago

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.