Hi, Thank you for the response. I just wanted to bump this thread up for more responses. Any detail would be very helpful.
Regards, Vignesh > On Jul 16, 2016, at 7:44 AM, Wail Alkowaileet <[email protected]> wrote: > > AFAIK functions (scalar in particular) are generated. > > On Jul 16, 2016 00:19, "Vignesh Raghunathan" < > [email protected] <mailto:[email protected]>> > wrote: > >> Hi, >> >> I am trying to step through some of the function descriptor code. For >> instance, I launched an AsterixDB instance via >> AsterixHyracksIntegrationUtil, placed a breakpoint in >> >> org.apache.asterix.runtime.evaluators.constructors.ATimeConstructorDescriptor.createEvaluatorFactory(...).new >> IScalarEvaluatorFactory() {...}.createScalarEvaluator(...).new >> IScalarEvaluator() {...}.evaluate(IFrameTupleReference, IPointable) >> >> and ran the query >> >> let $v := time(“12:23:23”) >> return $v >> >> However, execution doesn’t stop at the breakpoint. My questions are as >> follows: >> >> 1. http://sigmod.github.io/papers/socc15-final153.pdf < >> http://sigmod.github.io/papers/socc15-final153.pdf >> <http://sigmod.github.io/papers/socc15-final153.pdf>> mentions runtime >> artifacts called evaluators for function expressions. Is the evaluate >> function mentioned above part of an evaluator for the time constructor? >> >> 2. Is a separate JVM launched for each virtual node controller? >> >> 3. How can I debug a task that is scheduled to run in a particular node >> controller? >> >> As an aside, http://sigmod.github.io/papers/socc15-final153.pdf >> <http://sigmod.github.io/papers/socc15-final153.pdf> < >> http://sigmod.github.io/papers/socc15-final153.pdf> mentions that >> translation between logical functions and evaluators happen during the job >> generation phase. Does that mean the rule based physical optimization phase >> is skipped for functions? >> >> I am also not able to figure out where the function evaluators are >> actually called in code. Where can I find them? >> >> Thanks, >> Vignesh >> >> >>> On Jul 7, 2016, at 2:23 AM, Mike Carey <[email protected]> wrote: >>> >>> Vignesh, >>> >>> Count would actually be a particularly bad example to start with. :-) >> Aggregate functions (count, min, max, sum, avg) are not like other >> functions - they are special and more complicated / very different. >> Instead, you should look at simple(r) functions like almost anything else >> described at >> https://asterixdb.apache.org/docs/0.8.8-incubating/aql/functions.html. >>> >>> >>> Cheers, >>> >>> Mike >>> >>> On 7/6/16 11:29 AM, Xikui Wang wrote: >>>> Hi Vignesh, >>>> >>>> There is an entrance class called: AsterixHyracksIntegrationUtil. You >> can >>>> find it under: org.apache.asterix.api.common. The main method in this >> class >>>> enables you to launch a local instance for debugging. From my own >>>> experience, QueryTranslator will be a good start point to trace the >> process. >>>> >>>> Best, >>>> Xikui >>>> >>>> On Wed, Jul 6, 2016 at 11:16 AM, Vignesh Raghunathan < >>>> [email protected]> wrote: >>>> >>>>> Hi, >>>>> >>>>> I've been trying to figure out how functions are implemented under the >> hood >>>>> in AsterixDB. For example, I would like to know what happens when the >> aql >>>>> statement count([1,2,3]) is executed. >>>>> >>>>> I tried to set up remote debugging in eclipse to step through the code. >>>>> However, I'm not sure what to change to launch an asterixdb instance in >>>>> debug mode. Is there a way to do it? >>>>> >>>>> Thanks, >>>>> Vignesh
