You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@arrow.apache.org by "waynexia (via GitHub)" <gi...@apache.org> on 2023/05/30 14:04:49 UTC

[GitHub] [arrow-datafusion] waynexia opened a new issue, #6489: Substrait doesn't support alias in projection

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

   ### Describe the bug
   
   SQLs like these will fail:
   ```sql
   SELECT a as alias_a, a FROM data;
   ```
   or
   ```sql
   SELECT a as alias_a FROM data ORDER BY a;
   ```
   
   The error message looks like
   ```
   Error: Plan("Projections require unique expression names but the expression \"data.a\" at position 0 and \"data.a\" at position 1 have the same name. Consider aliasing (\"AS\") one of them.")
   ```
   
   ### To Reproduce
   
   Adding case in `datafusion/substrait/tests/roundtrip_logical_plan.rs` like:
   
   ```rust
       #[tokio::test]
       async fn roundtrip_alias_in_projection() -> Result<()> {
           roundtrip("SELECT a as alias_a, a FROM data").await
       }
   ```
   
   ### Expected behavior
   
   It should generate correct LogicalPlan without error
   
   ### 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-unsubscribe@arrow.apache.org.apache.org

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


Re: [I] Substrait doesn't support alias in projection [arrow-datafusion]

Posted by "waynexia (via GitHub)" <gi...@apache.org>.
waynexia commented on issue #6489:
URL: https://github.com/apache/arrow-datafusion/issues/6489#issuecomment-1807695779

   https://github.com/apache/arrow-datafusion/pull/5077/files#diff-7bd0ab7829b96498566ab887a4003134c38092e96441b8f5c8ccdb297478884eR384-R386 processes `Expr::Alias` but it isn't supported yet.
   
   ```rust
   #[tokio::test]
   async fn roundtrip_field_alias() -> Result<()> {
       roundtrip("SELECT data.a as b FROM data").await
   }
   ```
   Fails with
   ```
   Projection: data.a AS b
     TableScan: data projection=[a]
   TableScan: data projection=[a]
   thread 'cases::roundtrip_logical_plan::roundtrip_field_alias' panicked at 'assertion failed: `(left == right)`
     left: `"Projection: data.a AS b\n  TableScan: data projection=[a]"`,
    right: `"TableScan: data projection=[a]"`
   ```


-- 
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-unsubscribe@arrow.apache.org

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


Re: [I] Substrait doesn't support alias in projection [datafusion]

Posted by "Jefffrey (via GitHub)" <gi...@apache.org>.
Jefffrey closed issue #6489: Substrait doesn't support alias in projection
URL: https://github.com/apache/datafusion/issues/6489


-- 
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-unsubscribe@datafusion.apache.org

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


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


Re: [I] Substrait doesn't support alias in projection [datafusion]

Posted by "Blizzara (via GitHub)" <gi...@apache.org>.
Blizzara commented on issue #6489:
URL: https://github.com/apache/datafusion/issues/6489#issuecomment-2898710590

   Yea @waynexia I think this one should be fixed! 
   
   The included test case almost works, the plan isn't exactly the same after the roundtrip, but effectively still the same:
   ```
   assertion `left == right` failed
     left: "Projection: data.a AS alias_a, data.a\n  TableScan: data projection=[a]"
    right: "Projection: data.a AS alias_a, data.a AS data.a__temp__0 AS a\n  TableScan: data projection=[a]"
   ```


-- 
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-unsubscribe@datafusion.apache.org

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


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