Blizzara opened a new issue, #10412:
URL: https://github.com/apache/datafusion/issues/10412

   ### Describe the bug
   
   Since https://github.com/substrait-io/substrait/pull/537, the standard has 
declared that functions must be named with compound names consisting of both 
the function and its types. For example, for the function "not", the full name 
would now be "not:bool". However trying to use "not:bool" in Substrait input 
for DataFusion results in 
   `This feature is not implemented: Unsupported function name: \"not:bool\"` 
as "not:bool" doesn't match into the list used by  
https://github.com/apache/datafusion/blob/f0e96c670108ba0ffdebb9dd9e764bba4d2dca8c/datafusion/substrait/src/logical_plan/consumer.rs#L125
   
   
   
   ### To Reproduce
   
   Using e.g. 
[isthmus](https://github.com/substrait-io/substrait-java/tree/main/isthmus-cli) 
from Substrait-java, one can produce a simple substrait:
   
   ```
   substrait-java % ./isthmus-cli/build/graal/isthmus "select not d from t" -c 
"create table t (d boolean)"  --outputformat=BINARY | base64 
   
ChsIARIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwSDhoMCAEaCG5vdDpib29sGkcSRQo7OjkKBRIDCgEBEhoKGAoCCgASDQoBRBIICgQKAhABGAI6AwoBVBoUGhIaBAoCEAEiChoIEgYKAhIAIgASBkVYUFIkMA==
   ```
   (Drop the `outputformat=BINARY | base64` to see the plan as text)
   
   Then using DataFusion to execute that plan:
   ```
   #[tokio::test]
   async fn test_not() -> datafusion::common::Result<()> {
       let protobuf = 
general_purpose::STANDARD.decode("ChsIARIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwSDhoMCAEaCG5vdDpib29sGkcSRQo7OjkKBRIDCgEBEhoKGAoCCgASDQoBRBIICgQKAhABGAI6AwoBVBoUGhIaBAoCEAEiChoIEgYKAhIAIgASBkVYUFIkMA==").unwrap();
       let ctx = SessionContext::new();
       ctx.register_csv("T", "tests/testdata/data.csv", CsvReadOptions::new())
           .await?;
       let plan = deserialize_bytes(protobuf).await?;
       let _ = from_substrait_plan(&ctx, plan.as_ref()).await?;
       Ok(())
   }
   ```
   
   Fails with `Error: NotImplemented("Unsupported function name: \"not:bool\"")`
   
   ### Expected behavior
   
   `not:bool` should be found and the plan be created correctly
   
   ### Additional context
   
   _No response_


-- 
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: github-unsubscr...@datafusion.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org
For additional commands, e-mail: github-h...@datafusion.apache.org

Reply via email to