public interface OSQLFunction
OSQLParser.getInstance().registerFunction()
to being used by the
SQL engine.
??? could it be possible to have a small piece of code here showing where to register a function using services ???
Modifier and Type | Method and Description |
---|---|
boolean |
aggregateResults()
A function can make calculation on several records before returning a result.
|
void |
config(Object[] configuredParameters)
Configure the function.
|
Object |
execute(Object iThis,
OIdentifiable iCurrentRecord,
Object iCurrentResult,
Object[] iParams,
OCommandContext iContext)
Process a record.
|
boolean |
filterResult()
A function can act both as transformation or filtering records.
|
int |
getMaxParams()
Maximum number of parameter this function can handle.
|
int |
getMinParams()
Minimum number of parameter this function must have.
|
String |
getName()
Function name, the name is used by the sql parser to identify a call this function.
|
Object |
getResult()
Only called when function aggregates results after all records have been passed to the
function.
|
String |
getSyntax()
Returns a convenient SQL String representation of the function.
|
Object |
mergeDistributedResult(List<Object> resultsToMerge)
This method correspond to distributed query execution
|
void |
setResult(Object iResult)
Called by OCommandExecutor, given parameter is the number of results.
|
boolean |
shouldMergeDistributedResult()
This method correspond to distributed query execution
|
Object execute(Object iThis, OIdentifiable iCurrentRecord, Object iCurrentResult, Object[] iParams, OCommandContext iContext)
iThis
- iCurrentRecord
- : current recordiCurrentResult
- TODOiParams
- : function parameters, number is ensured to be within minParams and maxParams.iContext
- : object calling this functionvoid config(Object[] configuredParameters)
configuredParameters
- boolean aggregateResults()
Example of such function : sum, count, max, min ...
The final result of the aggregation is obtain by calling getResult()
boolean filterResult()
Function should return null for the execute method if the record must be excluded.
String getName()
int getMinParams()
int getMaxParams()
String getSyntax()
Example :
myFunction( param1, param2, [optionalParam3])
This text will be used in exception messages.
Object getResult()
void setResult(Object iResult)
iResult
- boolean shouldMergeDistributedResult()
true
if results that comes from different nodes need to be merged to obtain
valid one, false
otherwiseCopyright © 2009–2020 OrientDB. All rights reserved.