gatesn commented on issue #14993:
URL: https://github.com/apache/datafusion/issues/14993#issuecomment-2704555746
> I think I was suggesting this (though I haven't thought about the API it
too carefully)
That feels like quite a roundabout way to do it, assuming I'm understanding
correctly. DataFusion would ask which expressions can be pushed down, the
provider would reply with some (typically) randomly generated column name
string corresponding to the expression, augment its schema to include these
expressions, and then DataFusion will ask for that column as part of the
projection?
Is there a specific objection to general case? Similarly, I haven't thought
through this fully in the context of DataFusion.
But roughly, DataFusion asks the table provider which expressions it can
push-down, and the node is configured with both a projection expression and a
filter expression. *Exact* same mechanism as filter expressions.
In your example, the expression would be `$.getitem("user").getitem("name")`
An advanced table provider could do with that as it pleases.
A simple one can construction the old (existing) projection mask with
`expr.accessed_fields() -> ["user"]` or similar, projects out the fields, and
then invokes the projection expression:
`expr.evaluate(self.project(expr.accessed_fields()))`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]