good afternoon rob; On 2015-01-19, at 13:50, Rob Vesse <[email protected]> wrote:
> James > > […] > > Relevant flags are: > > - ARQ.optIndexJoinStrategy > - ARQ.optTopNSorting > > You set these to false in a ARQ Context object that you pass to the calls > of Optimize.optimize() should you wish to use the ARQ optimiser. > > Of course if you don't wish to use the optimiser then you can override the > modifyOp() method on your QueryEngine instance (assuming you start by > extending QueryEngineBase) and not call the optimiser at all. as our use case is a library to be used by others, we will need to look at the extent to which we can stipulate these approaches and still be compliant. as it were, i would have no remorse about rewriting optimized operators back to standard algebra for the cases when we do not already implement under some other name. > > Alternatively if you just want the "standard" algebra (i.e. the fairly > true to spec, no optimisation version) then the basic Op structure > generated by the AlgebraGenerator should be sufficient for your uses if > you need just the algebra > > In our system we then translate the algebra (using a custom visitor) into > a form that our backend understands and ship that across the network > rather than serialising the algebra out to strings and re-parsing it > elsewhere (we've done that in the past but performance and maintenance > wise it proved much better to transform the algebra into something that > could be processed directly by our back end). in our system, we compile a language similar to arq’s sse pretty much directly to machine code. beyond direct serialization and reading, all we need to know is the operator signatures. if you would happen to have a synopsis of those as an alternative to crawling the implementations, that would be the most useful bit of information. > > In terms of the stability of the algebra API I think there has only been 1 > breaking change to the API in the time we've been using it and that was > actually proposed by us and was necessary to resolve an interesting corner > case bug involving the optimiser and custom algebra operators. ok. it sounds good, that it is stable. > > Hope this helps, > > Rob best regards, from berlin, --- james anderson | [email protected] | http://dydra.com
