milenkovicm opened a new issue, #6387:
URL: https://github.com/apache/arrow-datafusion/issues/6387

   ### Describe the bug
   
   there is issue when physical plan is deserialized from bytes, it looks like 
the issue is with specific function, `length` in this case  
   
   ### To Reproduce
   
   reproduction is simple:
   
   ```rust
   let ctx = SessionContext::new();
   ctx.register_csv("example", "example.csv", 
CsvReadOptions::default()).await?;    
   let logical_plan = ctx.state().create_logical_plan("select length(c0) as l 
from example").await?;
   let physical_plan = ctx.state().create_physical_plan(&logical_plan).await?;
   let blob = physical_plan_to_bytes(physical_plan)?;
   
   // Error: Plan("There is no UDF named \"characterlength\" in the registry")
   let _physical_plan = physical_plan_from_bytes(&blob, &ctx)?;
   ```
   
   error `"There is no UDF named \"characterlength\" in the registry"` is 
raised. Which is odd as `length` is not an udf.
   
   wondering if `characterlength` should be `character_length`?
   
   ### Expected behavior
   
   other functions work ok, like `trim`:
   
   ```rust
   let logical_plan = ctx.state().create_logical_plan("select trim(c0) as l 
from example").await?;
   let physical_plan = ctx.state().create_physical_plan(&logical_plan).await?;
   
   let blob = physical_plan_to_bytes(physical_plan)?;
   let _physical_plan = physical_plan_from_bytes(&blob, &ctx)?; // All OK
   ```
   
   ### Additional context
   
   tested with datafusion, and datafusion-proto, version 23 and 24


-- 
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]

Reply via email to