Hi, As a part of this we should also make sure that we make the connection of these to feeds - so that you can hang a transform function on a feed, which is the scenario where these are much safer than general functions hanging on feeds. (We might want to add a backward-compatibility-breaking restriction that doesn't allow the functions on feeds to NOT be this type.)
Sounds like a good idea. We should presumably allow these functions to be called in queries like other functions. (In case that's not in plan at the moment, it definitely should be - if for no other reason than for testing.) Transform functions can be used just like any other UDFs. We should presumably allow transform functions to call UDFs in their definitions, as long as the resulting query still stays "in bounds" (using only the bits inside the argument object). Either way, the spec should say whether or not this is going to be supported. Yes, other UDFs can be used in the definition if the original conditions are met. I have updated the spec to reflect this. Thanks, Peeyush From: Mike Carey <dtab...@gmail.com> Date: Tuesday, May 13, 2025 at 10:46 AM To: dev@asterixdb.apache.org <dev@asterixdb.apache.org> Subject: Re: [DISCUSS][APE] Proposal for Adding transform function Looks good - and very useful! +1 for this addition to AsterixDB. As a part of this we should also make sure that we make the connection of these to feeds - so that you can hang a transform function on a feed, which is the scenario where these are much safer than general functions hanging on feeds. (We might want to add a backward-compatibility-breaking restriction that doesn't allow the functions on feeds to NOT be this type.) We should presumably allow these functions to be called in queries like other functions. (In case that's not in plan at the moment, it definitely should be - if for no other reason than for testing.) We should presumably allow transform functions to call UDFs in their definitions, as long as the resulting query still stays "in bounds" (using only the bits inside the argument object). Either way, the spec should say whether or not this is going to be supported. Cheers, Mike On 5/12/25 6:32 PM, Peeyush Gupta wrote: > Hi All, > > Initiating a discussion to propose adding transform function. > > Feature: Adding transform function. > Details: SQL++ UDFs are very powerful, in that they can return anything. In > certain circumstances this is not desirable. For example, with feeds we can > today apply a function on every record incoming to the dataset. A function > that produces an entire dataset's worth of data for 1 input value would not > be feasible to run in that fashion. Hence, restricting the function so that > it may only take an input, and do some transform on it, is desirable for > performance reasons. > APE:https://cwiki.apache.org/confluence/display/ASTERIXDB/APE+21%3A+Transform+Function > > Thanks, > Peeyush > >