Hi, to whom it may concern,
I am now working on implementing a custom operator, which could read an array into memory and call other scripts in C or Python to run clustering algorithm on this array and return the result as the operator's output. I have seen several previous posts on this forum about customizing the operator.
But I am quite new to SciDB and I didn't find any documentation about the source code or API of SciDB development. So I could only try to read the code to understand the development way. I have mainly read the code in examples/bestmatch, as well as the aggregate operator. After this, I am still feeling confusing about the logicalXXX.cpp and physicalXXX.cpp.
What's the reason to separate the operator function into these two files. I saw the operator"avg" only has logicalXXX.cpp and in inferSchema() it called an existing function in aggregate class to finish the computation. Does is mean I could manipulate date after I load the scidb array into a memory array(true array that I want to compute directly on) inside the function inferSchema(). Thanks.
Also some physicalXXX.cpp has a function named execution. Must it be executed when the operator is called in a query? Where should we call our main computation function? in inferSchema() or execute.