You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@datafusion.apache.org by "coderfender (via GitHub)" <gi...@apache.org> on 2026/01/08 22:09:16 UTC
[PR] chore : improve_cast_documentation [datafusion-comet]
coderfender opened a new pull request, #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056
## Which issue does this PR close?
Current cast documentation only has support for Legacy Eval mode. However we have some cast functions which only support certain eval modes only and adding new documentation might be useful for new features to prioritized as such
<!--
We generally require a GitHub issue to be filed for all bug fixes and enhancements and this helps us generate change logs for our releases. You can link an issue to this PR using the GitHub syntax. For example `Closes #123` indicates that this PR will close issue #123.
-->
Closes #.
## Rationale for this change
<!--
Why are you proposing this change? If this is already explained clearly in the issue then this section is not needed.
Explaining clearly why changes are proposed helps reviewers understand your changes and offer better suggestions for fixes.
-->
## What changes are included in this PR?
<!--
There is no need to duplicate the description in the issue here but it is sometimes worth providing a summary of the individual changes in this PR.
-->
## How are these changes tested?
<!--
We typically require tests for all PRs in order to:
1. Prevent the code from being accidentally broken by subsequent changes
2. Serve as another way to document the expected behavior of the code
If tests are not included in your PR, please explain why (for example, are they covered by existing tests)?
-->
--
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: [PR] chore: improve cast documentation to add support per eval mode [datafusion-comet]
Posted by "coderfender (via GitHub)" <gi...@apache.org>.
coderfender commented on PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056#issuecomment-3746315120
thank you for the approval @andygrove , @parthchandra , @wForget
--
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: [PR] chore: improve cast documentation to add support per eval mode [datafusion-comet]
Posted by "coderfender (via GitHub)" <gi...@apache.org>.
coderfender commented on PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056#issuecomment-3730337658
Thank you @andygrove . I fixed an md file formatting error . I also started working on some of the low hanging casts given that we have a better picture of cast ops
--
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: [PR] chore: improve cast documentation to add support per eval mode [datafusion-comet]
Posted by "coderfender (via GitHub)" <gi...@apache.org>.
coderfender commented on code in PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056#discussion_r2674606328
##########
spark/src/main/scala/org/apache/comet/GenerateDocs.scala:
##########
@@ -148,11 +148,37 @@ object GenerateDocs {
}
}
w.write("<!-- prettier-ignore-end -->\n".getBytes)
+ } else if (line.trim == "<!--BEGIN:CAST_EVAL_MODE_TABLE-->") {
+ w.write("<!-- prettier-ignore-start -->\n".getBytes)
+ w.write("| From Type | To Type | LEGACY | ANSI | TRY |\n".getBytes)
+ w.write("|-|-|-|-|-|\n".getBytes)
+ for (fromType <- CometCast.supportedTypes) {
Review Comment:
Sure
--
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: [PR] chore: improve cast documentation to add support per eval mode [datafusion-comet]
Posted by "wForget (via GitHub)" <gi...@apache.org>.
wForget commented on PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056#issuecomment-3727560920
These Notes can be ignored:
```
Unsupported | Cast from BooleanType to DecimalType is not supported
```
If there are few notes remaining, we can add annotations below the table, just like in spark.
<img width="1262" height="247" alt="image" src="https://github.com/user-attachments/assets/3c2b0eb4-80c6-43bd-9297-81a1182511e0" />
--
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: [PR] chore: improve_cast_documentation [datafusion-comet]
Posted by "coderfender (via GitHub)" <gi...@apache.org>.
coderfender commented on code in PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056#discussion_r2674392314
##########
spark/src/main/scala/org/apache/comet/GenerateDocs.scala:
##########
@@ -148,11 +148,37 @@ object GenerateDocs {
}
}
w.write("<!-- prettier-ignore-end -->\n".getBytes)
+ } else if (line.trim == "<!--BEGIN:CAST_EVAL_MODE_TABLE-->") {
+ w.write("<!-- prettier-ignore-start -->\n".getBytes)
+ w.write("| From Type | To Type | LEGACY | ANSI | TRY |\n".getBytes)
+ w.write("|-|-|-|-|-|\n".getBytes)
+ for (fromType <- CometCast.supportedTypes) {
+ for (toType <- CometCast.supportedTypes) {
+ if (Cast.canCast(fromType, toType) && fromType != toType) {
+ val fromTypeName = fromType.typeName.replace("(10,2)", "")
+ val toTypeName = toType.typeName.replace("(10,2)", "")
+ val legacy = supportLevelStr(
+ CometCast.isSupported(fromType, toType, None, CometEvalMode.LEGACY))
+ val ansi = supportLevelStr(
+ CometCast.isSupported(fromType, toType, None, CometEvalMode.ANSI))
+ val tryMode = supportLevelStr(
+ CometCast.isSupported(fromType, toType, None, CometEvalMode.TRY))
+ w.write(s"| $fromTypeName | $toTypeName | $legacy | $ansi | $tryMode |\n".getBytes)
+ }
+ }
+ }
+ w.write("<!-- prettier-ignore-end -->\n".getBytes)
}
}
w.close()
}
+ private def supportLevelStr(level: SupportLevel): String = level match {
+ case Compatible(_) => "Compatible"
+ case Incompatible(_) => "Incompatible"
+ case Unsupported(_) => "Unsupported"
Review Comment:
Sure I was planning to just concentrate it but I can break this table down by eval mode ( into 3 tables) and add notes in there .
--
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: [PR] chore : improve_cast_documentation [datafusion-comet]
Posted by "andygrove (via GitHub)" <gi...@apache.org>.
andygrove commented on code in PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056#discussion_r2674387946
##########
spark/src/main/scala/org/apache/comet/GenerateDocs.scala:
##########
@@ -148,11 +148,37 @@ object GenerateDocs {
}
}
w.write("<!-- prettier-ignore-end -->\n".getBytes)
+ } else if (line.trim == "<!--BEGIN:CAST_EVAL_MODE_TABLE-->") {
+ w.write("<!-- prettier-ignore-start -->\n".getBytes)
+ w.write("| From Type | To Type | LEGACY | ANSI | TRY |\n".getBytes)
+ w.write("|-|-|-|-|-|\n".getBytes)
+ for (fromType <- CometCast.supportedTypes) {
+ for (toType <- CometCast.supportedTypes) {
+ if (Cast.canCast(fromType, toType) && fromType != toType) {
+ val fromTypeName = fromType.typeName.replace("(10,2)", "")
+ val toTypeName = toType.typeName.replace("(10,2)", "")
+ val legacy = supportLevelStr(
+ CometCast.isSupported(fromType, toType, None, CometEvalMode.LEGACY))
+ val ansi = supportLevelStr(
+ CometCast.isSupported(fromType, toType, None, CometEvalMode.ANSI))
+ val tryMode = supportLevelStr(
+ CometCast.isSupported(fromType, toType, None, CometEvalMode.TRY))
+ w.write(s"| $fromTypeName | $toTypeName | $legacy | $ansi | $tryMode |\n".getBytes)
+ }
+ }
+ }
+ w.write("<!-- prettier-ignore-end -->\n".getBytes)
}
}
w.close()
}
+ private def supportLevelStr(level: SupportLevel): String = level match {
+ case Compatible(_) => "Compatible"
+ case Incompatible(_) => "Incompatible"
+ case Unsupported(_) => "Unsupported"
Review Comment:
rather than ignroe the notes, could we include those in the description?
--
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: [PR] chore: improve cast documentation to add support per eval mode [datafusion-comet]
Posted by "andygrove (via GitHub)" <gi...@apache.org>.
andygrove commented on PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056#issuecomment-3730332891
This is looking very nice. Thanks @codecov-commenter and @wForget. I probably can't review fully until Monday, but I'm excited to see this improvement to the documentation.
--
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: [PR] chore: improve cast documentation to add support per eval mode [datafusion-comet]
Posted by "coderfender (via GitHub)" <gi...@apache.org>.
coderfender commented on PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056#issuecomment-3727392028
### Cast Support by Eval Mode
The following tables show cast support levels for each evaluation mode (LEGACY, TRY, ANSI).
#### LEGACY Mode
<!--BEGIN:CAST_LEGACY_TABLE-->
<!-- prettier-ignore-start -->
| From Type | To Type | Support | Notes |
|-|-|-|-|
| binary | string | Compatible | |
| boolean | byte | Compatible | |
| boolean | decimal | Unsupported | Cast from BooleanType to DecimalType is not supported |
| boolean | double | Compatible | |
| boolean | float | Compatible | |
| boolean | integer | Compatible | |
| boolean | long | Compatible | |
| boolean | short | Compatible | |
| boolean | string | Compatible | |
| boolean | timestamp | Unsupported | Cast from BooleanType to TimestampType is not supported |
| byte | binary | Unsupported | Cast from ByteType to BinaryType is not supported |
| byte | boolean | Compatible | |
| byte | decimal | Compatible | |
| byte | double | Compatible | |
| byte | float | Compatible | |
| byte | integer | Compatible | |
| byte | long | Compatible | |
| byte | short | Compatible | |
| byte | string | Compatible | |
| byte | timestamp | Unsupported | Cast from ByteType to TimestampType is not supported |
| date | boolean | Unsupported | Cast from DateType to BooleanType is not supported |
| date | byte | Unsupported | Cast from DateType to ByteType is not supported |
| date | decimal | Unsupported | Cast from DateType to DecimalType is not supported |
| date | double | Unsupported | Cast from DateType to DoubleType is not supported |
| date | float | Unsupported | Cast from DateType to FloatType is not supported |
| date | integer | Unsupported | Cast from DateType to IntegerType is not supported |
| date | long | Unsupported | Cast from DateType to LongType is not supported |
| date | short | Unsupported | Cast from DateType to ShortType is not supported |
| date | string | Compatible | |
| date | timestamp | Unsupported | Cast from DateType to TimestampType is not supported |
| decimal | boolean | Compatible | |
| decimal | byte | Compatible | |
| decimal | double | Compatible | |
| decimal | float | Compatible | |
| decimal | integer | Compatible | |
| decimal | long | Compatible | |
| decimal | short | Compatible | |
| decimal | string | Compatible | There can be formatting differences in some case due to Spark using scientific notation where Comet does not |
| decimal | timestamp | Unsupported | Cast from DecimalType to TimestampType is not supported |
| double | boolean | Compatible | |
| double | byte | Compatible | |
| double | decimal | Incompatible | There can be rounding differences |
| double | float | Compatible | |
| double | integer | Compatible | |
| double | long | Compatible | |
| double | short | Compatible | |
| double | string | Compatible | There can be differences in precision. For example, the input "1.4E-45" will produce 1.0E-45 instead of 1.4E-45 |
| double | timestamp | Unsupported | Cast from DoubleType to TimestampType is not supported |
| float | boolean | Compatible | |
| float | byte | Compatible | |
| float | decimal | Incompatible | There can be rounding differences |
| float | double | Compatible | |
| float | integer | Compatible | |
| float | long | Compatible | |
| float | short | Compatible | |
| float | string | Compatible | There can be differences in precision. For example, the input "1.4E-45" will produce 1.0E-45 instead of 1.4E-45 |
| float | timestamp | Unsupported | Cast from FloatType to TimestampType is not supported |
| integer | binary | Unsupported | Cast from IntegerType to BinaryType is not supported |
| integer | boolean | Compatible | |
| integer | byte | Compatible | |
| integer | decimal | Compatible | |
| integer | double | Compatible | |
| integer | float | Compatible | |
| integer | long | Compatible | |
| integer | short | Compatible | |
| integer | string | Compatible | |
| integer | timestamp | Unsupported | Cast from IntegerType to TimestampType is not supported |
| long | binary | Unsupported | Cast from LongType to BinaryType is not supported |
| long | boolean | Compatible | |
| long | byte | Compatible | |
| long | decimal | Compatible | |
| long | double | Compatible | |
| long | float | Compatible | |
| long | integer | Compatible | |
| long | short | Compatible | |
| long | string | Compatible | |
| long | timestamp | Unsupported | Cast from LongType to TimestampType is not supported |
| short | binary | Unsupported | Cast from ShortType to BinaryType is not supported |
| short | boolean | Compatible | |
| short | byte | Compatible | |
| short | decimal | Compatible | |
| short | double | Compatible | |
| short | float | Compatible | |
| short | integer | Compatible | |
| short | long | Compatible | |
| short | string | Compatible | |
| short | timestamp | Unsupported | Cast from ShortType to TimestampType is not supported |
| string | binary | Compatible | |
| string | boolean | Compatible | |
| string | byte | Compatible | |
| string | date | Compatible | Only supports years between 262143 BC and 262142 AD |
| string | decimal | Incompatible | Does not support fullwidth unicode digits (e.g \\uFF10)
or strings containing null bytes (e.g \\u0000) |
| string | double | Compatible | |
| string | float | Compatible | |
| string | integer | Compatible | |
| string | long | Compatible | |
| string | short | Compatible | |
| string | timestamp | Incompatible | Not all valid formats are supported |
| timestamp | boolean | Unsupported | Cast from TimestampType to BooleanType is not supported |
| timestamp | byte | Unsupported | Cast from TimestampType to ByteType is not supported |
| timestamp | date | Compatible | |
| timestamp | decimal | Unsupported | Cast from TimestampType to DecimalType is not supported |
| timestamp | double | Unsupported | Cast from TimestampType to DoubleType is not supported |
| timestamp | float | Unsupported | Cast from TimestampType to FloatType is not supported |
| timestamp | integer | Unsupported | Cast from TimestampType to IntegerType is not supported |
| timestamp | long | Compatible | |
| timestamp | short | Unsupported | Cast from TimestampType to ShortType is not supported |
| timestamp | string | Compatible | |
<!-- prettier-ignore-end -->
<!--END:CAST_LEGACY_TABLE-->
#### TRY Mode
<!--BEGIN:CAST_TRY_TABLE-->
<!-- prettier-ignore-start -->
| From Type | To Type | Support | Notes |
|-|-|-|-|
| binary | string | Compatible | |
| boolean | byte | Compatible | |
| boolean | decimal | Unsupported | Cast from BooleanType to DecimalType is not supported |
| boolean | double | Compatible | |
| boolean | float | Compatible | |
| boolean | integer | Compatible | |
| boolean | long | Compatible | |
| boolean | short | Compatible | |
| boolean | string | Compatible | |
| boolean | timestamp | Unsupported | Cast from BooleanType to TimestampType is not supported |
| byte | binary | Unsupported | Cast from ByteType to BinaryType is not supported |
| byte | boolean | Compatible | |
| byte | decimal | Compatible | |
| byte | double | Compatible | |
| byte | float | Compatible | |
| byte | integer | Compatible | |
| byte | long | Compatible | |
| byte | short | Compatible | |
| byte | string | Compatible | |
| byte | timestamp | Unsupported | Cast from ByteType to TimestampType is not supported |
| date | boolean | Unsupported | Cast from DateType to BooleanType is not supported |
| date | byte | Unsupported | Cast from DateType to ByteType is not supported |
| date | decimal | Unsupported | Cast from DateType to DecimalType is not supported |
| date | double | Unsupported | Cast from DateType to DoubleType is not supported |
| date | float | Unsupported | Cast from DateType to FloatType is not supported |
| date | integer | Unsupported | Cast from DateType to IntegerType is not supported |
| date | long | Unsupported | Cast from DateType to LongType is not supported |
| date | short | Unsupported | Cast from DateType to ShortType is not supported |
| date | string | Compatible | |
| date | timestamp | Unsupported | Cast from DateType to TimestampType is not supported |
| decimal | boolean | Compatible | |
| decimal | byte | Compatible | |
| decimal | double | Compatible | |
| decimal | float | Compatible | |
| decimal | integer | Compatible | |
| decimal | long | Compatible | |
| decimal | short | Compatible | |
| decimal | string | Compatible | There can be formatting differences in some case due to Spark using scientific notation where Comet does not |
| decimal | timestamp | Unsupported | Cast from DecimalType to TimestampType is not supported |
| double | boolean | Compatible | |
| double | byte | Compatible | |
| double | decimal | Incompatible | There can be rounding differences |
| double | float | Compatible | |
| double | integer | Compatible | |
| double | long | Compatible | |
| double | short | Compatible | |
| double | string | Compatible | There can be differences in precision. For example, the input "1.4E-45" will produce 1.0E-45 instead of 1.4E-45 |
| double | timestamp | Unsupported | Cast from DoubleType to TimestampType is not supported |
| float | boolean | Compatible | |
| float | byte | Compatible | |
| float | decimal | Incompatible | There can be rounding differences |
| float | double | Compatible | |
| float | integer | Compatible | |
| float | long | Compatible | |
| float | short | Compatible | |
| float | string | Compatible | There can be differences in precision. For example, the input "1.4E-45" will produce 1.0E-45 instead of 1.4E-45 |
| float | timestamp | Unsupported | Cast from FloatType to TimestampType is not supported |
| integer | binary | Unsupported | Cast from IntegerType to BinaryType is not supported |
| integer | boolean | Compatible | |
| integer | byte | Compatible | |
| integer | decimal | Compatible | |
| integer | double | Compatible | |
| integer | float | Compatible | |
| integer | long | Compatible | |
| integer | short | Compatible | |
| integer | string | Compatible | |
| integer | timestamp | Unsupported | Cast from IntegerType to TimestampType is not supported |
| long | binary | Unsupported | Cast from LongType to BinaryType is not supported |
| long | boolean | Compatible | |
| long | byte | Compatible | |
| long | decimal | Compatible | |
| long | double | Compatible | |
| long | float | Compatible | |
| long | integer | Compatible | |
| long | short | Compatible | |
| long | string | Compatible | |
| long | timestamp | Unsupported | Cast from LongType to TimestampType is not supported |
| short | binary | Unsupported | Cast from ShortType to BinaryType is not supported |
| short | boolean | Compatible | |
| short | byte | Compatible | |
| short | decimal | Compatible | |
| short | double | Compatible | |
| short | float | Compatible | |
| short | integer | Compatible | |
| short | long | Compatible | |
| short | string | Compatible | |
| short | timestamp | Unsupported | Cast from ShortType to TimestampType is not supported |
| string | binary | Compatible | |
| string | boolean | Compatible | |
| string | byte | Compatible | |
| string | date | Compatible | Only supports years between 262143 BC and 262142 AD |
| string | decimal | Incompatible | Does not support fullwidth unicode digits (e.g \\uFF10)
or strings containing null bytes (e.g \\u0000) |
| string | double | Compatible | |
| string | float | Compatible | |
| string | integer | Compatible | |
| string | long | Compatible | |
| string | short | Compatible | |
| string | timestamp | Incompatible | Not all valid formats are supported |
| timestamp | boolean | Unsupported | Cast from TimestampType to BooleanType is not supported |
| timestamp | byte | Unsupported | Cast from TimestampType to ByteType is not supported |
| timestamp | date | Compatible | |
| timestamp | decimal | Unsupported | Cast from TimestampType to DecimalType is not supported |
| timestamp | double | Unsupported | Cast from TimestampType to DoubleType is not supported |
| timestamp | float | Unsupported | Cast from TimestampType to FloatType is not supported |
| timestamp | integer | Unsupported | Cast from TimestampType to IntegerType is not supported |
| timestamp | long | Compatible | |
| timestamp | short | Unsupported | Cast from TimestampType to ShortType is not supported |
| timestamp | string | Compatible | |
<!-- prettier-ignore-end -->
<!--END:CAST_TRY_TABLE-->
#### ANSI Mode
<!--BEGIN:CAST_ANSI_TABLE-->
<!-- prettier-ignore-start -->
| From Type | To Type | Support | Notes |
|-|-|-|-|
| binary | string | Compatible | |
| boolean | byte | Compatible | |
| boolean | decimal | Unsupported | Cast from BooleanType to DecimalType is not supported |
| boolean | double | Compatible | |
| boolean | float | Compatible | |
| boolean | integer | Compatible | |
| boolean | long | Compatible | |
| boolean | short | Compatible | |
| boolean | string | Compatible | |
| boolean | timestamp | Unsupported | Cast from BooleanType to TimestampType is not supported |
| byte | binary | Unsupported | Cast from ByteType to BinaryType is not supported |
| byte | boolean | Compatible | |
| byte | decimal | Compatible | |
| byte | double | Compatible | |
| byte | float | Compatible | |
| byte | integer | Compatible | |
| byte | long | Compatible | |
| byte | short | Compatible | |
| byte | string | Compatible | |
| byte | timestamp | Unsupported | Cast from ByteType to TimestampType is not supported |
| date | boolean | Unsupported | Cast from DateType to BooleanType is not supported |
| date | byte | Unsupported | Cast from DateType to ByteType is not supported |
| date | decimal | Unsupported | Cast from DateType to DecimalType is not supported |
| date | double | Unsupported | Cast from DateType to DoubleType is not supported |
| date | float | Unsupported | Cast from DateType to FloatType is not supported |
| date | integer | Unsupported | Cast from DateType to IntegerType is not supported |
| date | long | Unsupported | Cast from DateType to LongType is not supported |
| date | short | Unsupported | Cast from DateType to ShortType is not supported |
| date | string | Compatible | |
| date | timestamp | Unsupported | Cast from DateType to TimestampType is not supported |
| decimal | boolean | Compatible | |
| decimal | byte | Compatible | |
| decimal | double | Compatible | |
| decimal | float | Compatible | |
| decimal | integer | Compatible | |
| decimal | long | Compatible | |
| decimal | short | Compatible | |
| decimal | string | Compatible | There can be formatting differences in some case due to Spark using scientific notation where Comet does not |
| decimal | timestamp | Unsupported | Cast from DecimalType to TimestampType is not supported |
| double | boolean | Compatible | |
| double | byte | Compatible | |
| double | decimal | Incompatible | There can be rounding differences |
| double | float | Compatible | |
| double | integer | Compatible | |
| double | long | Compatible | |
| double | short | Compatible | |
| double | string | Compatible | There can be differences in precision. For example, the input "1.4E-45" will produce 1.0E-45 instead of 1.4E-45 |
| double | timestamp | Unsupported | Cast from DoubleType to TimestampType is not supported |
| float | boolean | Compatible | |
| float | byte | Compatible | |
| float | decimal | Incompatible | There can be rounding differences |
| float | double | Compatible | |
| float | integer | Compatible | |
| float | long | Compatible | |
| float | short | Compatible | |
| float | string | Compatible | There can be differences in precision. For example, the input "1.4E-45" will produce 1.0E-45 instead of 1.4E-45 |
| float | timestamp | Unsupported | Cast from FloatType to TimestampType is not supported |
| integer | binary | Unsupported | Cast from IntegerType to BinaryType is not supported |
| integer | boolean | Compatible | |
| integer | byte | Compatible | |
| integer | decimal | Compatible | |
| integer | double | Compatible | |
| integer | float | Compatible | |
| integer | long | Compatible | |
| integer | short | Compatible | |
| integer | string | Compatible | |
| integer | timestamp | Unsupported | Cast from IntegerType to TimestampType is not supported |
| long | binary | Unsupported | Cast from LongType to BinaryType is not supported |
| long | boolean | Compatible | |
| long | byte | Compatible | |
| long | decimal | Compatible | |
| long | double | Compatible | |
| long | float | Compatible | |
| long | integer | Compatible | |
| long | short | Compatible | |
| long | string | Compatible | |
| long | timestamp | Unsupported | Cast from LongType to TimestampType is not supported |
| short | binary | Unsupported | Cast from ShortType to BinaryType is not supported |
| short | boolean | Compatible | |
| short | byte | Compatible | |
| short | decimal | Compatible | |
| short | double | Compatible | |
| short | float | Compatible | |
| short | integer | Compatible | |
| short | long | Compatible | |
| short | string | Compatible | |
| short | timestamp | Unsupported | Cast from ShortType to TimestampType is not supported |
| string | binary | Compatible | |
| string | boolean | Compatible | |
| string | byte | Compatible | |
| string | date | Compatible | Only supports years between 262143 BC and 262142 AD |
| string | decimal | Incompatible | Does not support fullwidth unicode digits (e.g \\uFF10)
or strings containing null bytes (e.g \\u0000) |
| string | double | Compatible | |
| string | float | Compatible | |
| string | integer | Compatible | |
| string | long | Compatible | |
| string | short | Compatible | |
| string | timestamp | Incompatible | ANSI mode not supported |
| timestamp | boolean | Unsupported | Cast from TimestampType to BooleanType is not supported |
| timestamp | byte | Unsupported | Cast from TimestampType to ByteType is not supported |
| timestamp | date | Compatible | |
| timestamp | decimal | Unsupported | Cast from TimestampType to DecimalType is not supported |
| timestamp | double | Unsupported | Cast from TimestampType to DoubleType is not supported |
| timestamp | float | Unsupported | Cast from TimestampType to FloatType is not supported |
| timestamp | integer | Unsupported | Cast from TimestampType to IntegerType is not supported |
| timestamp | long | Compatible | |
| timestamp | short | Unsupported | Cast from TimestampType to ShortType is not supported |
| timestamp | string | Compatible | |
<!-- prettier-ignore-end -->
<!--END:CAST_ANSI_TABLE-->
--
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: [PR] chore: improve cast documentation to add support per eval mode [datafusion-comet]
Posted by "coderfender (via GitHub)" <gi...@apache.org>.
coderfender commented on PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056#issuecomment-3727402788
@wForget , please take a look and kickoff CI whenever you get a chance . Thank you
--
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: [PR] chore: improve cast documentation to add support per eval mode [datafusion-comet]
Posted by "coderfender (via GitHub)" <gi...@apache.org>.
coderfender commented on PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056#issuecomment-3730260442
@wForget I hope this is what you were suggesting ? @andygrove Please review whenever you get a chance . Thank you
--
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: [PR] chore : improve_cast_documentation [datafusion-comet]
Posted by "coderfender (via GitHub)" <gi...@apache.org>.
coderfender commented on PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056#issuecomment-3726045759
@parthchandra , @andygrove could you review ? I think adding documentation at an eval mode level would help with tracking our cast efforts.
--
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: [PR] chore: improve cast documentation to add support per eval mode [datafusion-comet]
Posted by "coderfender (via GitHub)" <gi...@apache.org>.
coderfender commented on PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056#issuecomment-3730257351
### Cast Support by Eval Mode
The following tables show cast support levels for each evaluation mode.
**Legend:** C = Compatible, I = Incompatible, U = Unsupported, - = Same type, N = Spark does not support the cast
#### LEGACY Mode
<!--BEGIN:CAST_LEGACY_TABLE-->
<!-- prettier-ignore-start -->
| | binary | boolean | byte | date | decimal | double | float | integer | long | short | string | timestamp |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| binary | - | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | C | N/A |
| boolean | N/A | - | C | N/A | U | C | C | C | C | C | C | U |
| byte | U | C | - | N/A | C | C | C | C | C | C | C | U |
| date | N/A | U | U | - | U | U | U | U | U | U | C | U |
| decimal | N/A | C | C | N/A | - | C | C | C | C | C | C | U |
| double | N/A | C | C | N/A | I | - | C | C | C | C | C | U |
| float | N/A | C | C | N/A | I | C | - | C | C | C | C | U |
| integer | U | C | C | N/A | C | C | C | - | C | C | C | U |
| long | U | C | C | N/A | C | C | C | C | - | C | C | U |
| short | U | C | C | N/A | C | C | C | C | C | - | C | U |
| string | C | C | C | C | I | C | C | C | C | C | - | I |
| timestamp | N/A | U | U | C | U | U | U | U | C | U | C | - |
<!-- prettier-ignore-end -->
**Notes:**
- **decimal -> string**: There can be formatting differences in some case due to Spark using scientific notation where Comet does not
- **double -> decimal**: There can be rounding differences
- **double -> string**: There can be differences in precision. For example, the input "1.4E-45" will produce 1.0E-45 instead of 1.4E-45
- **float -> decimal**: There can be rounding differences
- **float -> string**: There can be differences in precision. For example, the input "1.4E-45" will produce 1.0E-45 instead of 1.4E-45
- **string -> date**: Only supports years between 262143 BC and 262142 AD
- **string -> decimal**: Does not support fullwidth unicode digits (e.g \\uFF10)
or strings containing null bytes (e.g \\u0000)
- **string -> timestamp**: Not all valid formats are supported
<!--END:CAST_LEGACY_TABLE-->
#### TRY Mode
<!--BEGIN:CAST_TRY_TABLE-->
<!-- prettier-ignore-start -->
| | binary | boolean | byte | date | decimal | double | float | integer | long | short | string | timestamp |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| binary | - | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | C | N/A |
| boolean | N/A | - | C | N/A | U | C | C | C | C | C | C | U |
| byte | U | C | - | N/A | C | C | C | C | C | C | C | U |
| date | N/A | U | U | - | U | U | U | U | U | U | C | U |
| decimal | N/A | C | C | N/A | - | C | C | C | C | C | C | U |
| double | N/A | C | C | N/A | I | - | C | C | C | C | C | U |
| float | N/A | C | C | N/A | I | C | - | C | C | C | C | U |
| integer | U | C | C | N/A | C | C | C | - | C | C | C | U |
| long | U | C | C | N/A | C | C | C | C | - | C | C | U |
| short | U | C | C | N/A | C | C | C | C | C | - | C | U |
| string | C | C | C | C | I | C | C | C | C | C | - | I |
| timestamp | N/A | U | U | C | U | U | U | U | C | U | C | - |
<!-- prettier-ignore-end -->
**Notes:**
- **decimal -> string**: There can be formatting differences in some case due to Spark using scientific notation where Comet does not
- **double -> decimal**: There can be rounding differences
- **double -> string**: There can be differences in precision. For example, the input "1.4E-45" will produce 1.0E-45 instead of 1.4E-45
- **float -> decimal**: There can be rounding differences
- **float -> string**: There can be differences in precision. For example, the input "1.4E-45" will produce 1.0E-45 instead of 1.4E-45
- **string -> date**: Only supports years between 262143 BC and 262142 AD
- **string -> decimal**: Does not support fullwidth unicode digits (e.g \\uFF10)
or strings containing null bytes (e.g \\u0000)
- **string -> timestamp**: Not all valid formats are supported
<!--END:CAST_TRY_TABLE-->
#### ANSI Mode
<!--BEGIN:CAST_ANSI_TABLE-->
<!-- prettier-ignore-start -->
| | binary | boolean | byte | date | decimal | double | float | integer | long | short | string | timestamp |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| binary | - | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | C | N/A |
| boolean | N/A | - | C | N/A | U | C | C | C | C | C | C | U |
| byte | U | C | - | N/A | C | C | C | C | C | C | C | U |
| date | N/A | U | U | - | U | U | U | U | U | U | C | U |
| decimal | N/A | C | C | N/A | - | C | C | C | C | C | C | U |
| double | N/A | C | C | N/A | I | - | C | C | C | C | C | U |
| float | N/A | C | C | N/A | I | C | - | C | C | C | C | U |
| integer | U | C | C | N/A | C | C | C | - | C | C | C | U |
| long | U | C | C | N/A | C | C | C | C | - | C | C | U |
| short | U | C | C | N/A | C | C | C | C | C | - | C | U |
| string | C | C | C | C | I | C | C | C | C | C | - | I |
| timestamp | N/A | U | U | C | U | U | U | U | C | U | C | - |
<!-- prettier-ignore-end -->
**Notes:**
- **decimal -> string**: There can be formatting differences in some case due to Spark using scientific notation where Comet does not
- **double -> decimal**: There can be rounding differences
- **double -> string**: There can be differences in precision. For example, the input "1.4E-45" will produce 1.0E-45 instead of 1.4E-45
- **float -> decimal**: There can be rounding differences
- **float -> string**: There can be differences in precision. For example, the input "1.4E-45" will produce 1.0E-45 instead of 1.4E-45
- **string -> date**: Only supports years between 262143 BC and 262142 AD
- **string -> decimal**: Does not support fullwidth unicode digits (e.g \\uFF10)
or strings containing null bytes (e.g \\u0000)
- **string -> timestamp**: ANSI mode not supported
<!--END:CAST_ANSI_TABLE-->
--
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: [PR] chore: improve cast documentation to add support per eval mode [datafusion-comet]
Posted by "coderfender (via GitHub)" <gi...@apache.org>.
coderfender commented on PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056#issuecomment-3727554038
let me go ahead and transpose it
--
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: [PR] chore: improve cast documentation to add support per eval mode [datafusion-comet]
Posted by "coderfender (via GitHub)" <gi...@apache.org>.
coderfender commented on PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056#issuecomment-3727613337
@wForget sure . And we need to make 3 tables (one for each eval mode ? )
--
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: [PR] chore: improve cast documentation to add support per eval mode [datafusion-comet]
Posted by "wForget (via GitHub)" <gi...@apache.org>.
wForget commented on PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056#issuecomment-3727696140
> @wForget sure . And we need to make 3 tables (one for each eval mode ? ) right ?
Yes, I prefer that way; it makes it easier for us to search quickly.
--
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: [PR] chore: improve cast documentation to add support per eval mode [datafusion-comet]
Posted by "coderfender (via GitHub)" <gi...@apache.org>.
coderfender commented on PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056#issuecomment-3732251781
Linking to ANSI epic : https://github.com/apache/datafusion-comet/issues/313
--
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: [PR] chore: improve cast documentation to add support per eval mode [datafusion-comet]
Posted by "andygrove (via GitHub)" <gi...@apache.org>.
andygrove merged PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056
--
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: [PR] chore: improve cast documentation to add support per eval mode [datafusion-comet]
Posted by "wForget (via GitHub)" <gi...@apache.org>.
wForget commented on code in PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056#discussion_r2674605210
##########
spark/src/main/scala/org/apache/comet/GenerateDocs.scala:
##########
@@ -148,11 +148,37 @@ object GenerateDocs {
}
}
w.write("<!-- prettier-ignore-end -->\n".getBytes)
+ } else if (line.trim == "<!--BEGIN:CAST_EVAL_MODE_TABLE-->") {
+ w.write("<!-- prettier-ignore-start -->\n".getBytes)
+ w.write("| From Type | To Type | LEGACY | ANSI | TRY |\n".getBytes)
+ w.write("|-|-|-|-|-|\n".getBytes)
+ for (fromType <- CometCast.supportedTypes) {
Review Comment:
nit: sort typeNames?
--
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: [PR] chore: improve_cast_documentation [datafusion-comet]
Posted by "andygrove (via GitHub)" <gi...@apache.org>.
andygrove commented on code in PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056#discussion_r2674389168
##########
spark/src/main/scala/org/apache/comet/GenerateDocs.scala:
##########
@@ -148,11 +148,37 @@ object GenerateDocs {
}
}
w.write("<!-- prettier-ignore-end -->\n".getBytes)
+ } else if (line.trim == "<!--BEGIN:CAST_EVAL_MODE_TABLE-->") {
+ w.write("<!-- prettier-ignore-start -->\n".getBytes)
+ w.write("| From Type | To Type | LEGACY | ANSI | TRY |\n".getBytes)
+ w.write("|-|-|-|-|-|\n".getBytes)
+ for (fromType <- CometCast.supportedTypes) {
+ for (toType <- CometCast.supportedTypes) {
+ if (Cast.canCast(fromType, toType) && fromType != toType) {
+ val fromTypeName = fromType.typeName.replace("(10,2)", "")
+ val toTypeName = toType.typeName.replace("(10,2)", "")
+ val legacy = supportLevelStr(
+ CometCast.isSupported(fromType, toType, None, CometEvalMode.LEGACY))
+ val ansi = supportLevelStr(
+ CometCast.isSupported(fromType, toType, None, CometEvalMode.ANSI))
+ val tryMode = supportLevelStr(
+ CometCast.isSupported(fromType, toType, None, CometEvalMode.TRY))
+ w.write(s"| $fromTypeName | $toTypeName | $legacy | $ansi | $tryMode |\n".getBytes)
+ }
+ }
+ }
+ w.write("<!-- prettier-ignore-end -->\n".getBytes)
}
}
w.close()
}
+ private def supportLevelStr(level: SupportLevel): String = level match {
+ case Compatible(_) => "Compatible"
+ case Incompatible(_) => "Incompatible"
+ case Unsupported(_) => "Unsupported"
Review Comment:
it may be necessary to show separate tables for each eval mode rather than combine them all in one table once we show the descriptions as well
--
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: [PR] chore: improve_cast_documentation [datafusion-comet]
Posted by "andygrove (via GitHub)" <gi...@apache.org>.
andygrove commented on PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056#issuecomment-3726573046
nit: the PR title shouldn't be in the format of a variable name
--
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: [PR] chore: improve cast documentation to add support per eval mode [datafusion-comet]
Posted by "coderfender (via GitHub)" <gi...@apache.org>.
coderfender commented on code in PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056#discussion_r2687059643
##########
docs/source/user-guide/latest/compatibility.md:
##########
@@ -192,3 +192,108 @@ or strings containing null bytes (e.g \\u0000) |
Any cast not listed in the previous tables is currently unsupported. We are working on adding more. See the
[tracking issue](https://github.com/apache/datafusion-comet/issues/286) for more details.
+
+### Cast Support by Eval Mode
Review Comment:
Sure @andygrove . I was thinking of adding this over first before removing the existing one in a different PR. Let me make changes to remove current config
--
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: [PR] chore: improve cast documentation to add support per eval mode [datafusion-comet]
Posted by "wForget (via GitHub)" <gi...@apache.org>.
wForget commented on PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056#issuecomment-3727551571
This table is too long; perhaps we can display it like spark: https://spark.apache.org/docs/latest/sql-ref-ansi-compliance.html#cast
like:
| From/To| boolean | decimal | ... |
|-|-|-|-|
| boolean | Compatible | Unsupported | |
| decimal | Compatible | Compatible | |
--
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: [PR] chore: improve_cast_documentation [datafusion-comet]
Posted by "coderfender (via GitHub)" <gi...@apache.org>.
coderfender commented on code in PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056#discussion_r2674388967
##########
spark/src/main/scala/org/apache/comet/GenerateDocs.scala:
##########
@@ -148,11 +148,37 @@ object GenerateDocs {
}
}
w.write("<!-- prettier-ignore-end -->\n".getBytes)
+ } else if (line.trim == "<!--BEGIN:CAST_EVAL_MODE_TABLE-->") {
+ w.write("<!-- prettier-ignore-start -->\n".getBytes)
+ w.write("| From Type | To Type | LEGACY | ANSI | TRY |\n".getBytes)
+ w.write("|-|-|-|-|-|\n".getBytes)
+ for (fromType <- CometCast.supportedTypes) {
+ for (toType <- CometCast.supportedTypes) {
+ if (Cast.canCast(fromType, toType) && fromType != toType) {
+ val fromTypeName = fromType.typeName.replace("(10,2)", "")
+ val toTypeName = toType.typeName.replace("(10,2)", "")
+ val legacy = supportLevelStr(
+ CometCast.isSupported(fromType, toType, None, CometEvalMode.LEGACY))
+ val ansi = supportLevelStr(
+ CometCast.isSupported(fromType, toType, None, CometEvalMode.ANSI))
+ val tryMode = supportLevelStr(
+ CometCast.isSupported(fromType, toType, None, CometEvalMode.TRY))
+ w.write(s"| $fromTypeName | $toTypeName | $legacy | $ansi | $tryMode |\n".getBytes)
+ }
+ }
+ }
+ w.write("<!-- prettier-ignore-end -->\n".getBytes)
}
}
w.close()
}
+ private def supportLevelStr(level: SupportLevel): String = level match {
+ case Compatible(_) => "Compatible"
+ case Incompatible(_) => "Incompatible"
+ case Unsupported(_) => "Unsupported"
Review Comment:
Great idea! Let me update code to add a new column and include notes in there
--
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: [PR] chore : improve_cast_documentation [datafusion-comet]
Posted by "coderfender (via GitHub)" <gi...@apache.org>.
coderfender commented on PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056#issuecomment-3726065853
```| From Type | To Type | LEGACY | ANSI | TRY |
|-|-|-|-|-|
| boolean | byte | Compatible | Compatible | Compatible |
| boolean | short | Compatible | Compatible | Compatible |
| boolean | integer | Compatible | Compatible | Compatible |
| boolean | long | Compatible | Compatible | Compatible |
| boolean | float | Compatible | Compatible | Compatible |
| boolean | double | Compatible | Compatible | Compatible |
| boolean | decimal | Unsupported | Unsupported | Unsupported |
| boolean | string | Compatible | Compatible | Compatible |
| boolean | timestamp | Unsupported | Unsupported | Unsupported |
| byte | boolean | Compatible | Compatible | Compatible |
| byte | short | Compatible | Compatible | Compatible |
| byte | integer | Compatible | Compatible | Compatible |
| byte | long | Compatible | Compatible | Compatible |
| byte | float | Compatible | Compatible | Compatible |
| byte | double | Compatible | Compatible | Compatible |
| byte | decimal | Compatible | Compatible | Compatible |
| byte | string | Compatible | Compatible | Compatible |
| byte | binary | Unsupported | Unsupported | Unsupported |
| byte | timestamp | Unsupported | Unsupported | Unsupported |
| short | boolean | Compatible | Compatible | Compatible |
| short | byte | Compatible | Compatible | Compatible |
| short | integer | Compatible | Compatible | Compatible |
| short | long | Compatible | Compatible | Compatible |
| short | float | Compatible | Compatible | Compatible |
| short | double | Compatible | Compatible | Compatible |
| short | decimal | Compatible | Compatible | Compatible |
| short | string | Compatible | Compatible | Compatible |
| short | binary | Unsupported | Unsupported | Unsupported |
| short | timestamp | Unsupported | Unsupported | Unsupported |
| integer | boolean | Compatible | Compatible | Compatible |
| integer | byte | Compatible | Compatible | Compatible |
| integer | short | Compatible | Compatible | Compatible |
| integer | long | Compatible | Compatible | Compatible |
| integer | float | Compatible | Compatible | Compatible |
| integer | double | Compatible | Compatible | Compatible |
| integer | decimal | Compatible | Compatible | Compatible |
| integer | string | Compatible | Compatible | Compatible |
| integer | binary | Unsupported | Unsupported | Unsupported |
| integer | timestamp | Unsupported | Unsupported | Unsupported |
| long | boolean | Compatible | Compatible | Compatible |
| long | byte | Compatible | Compatible | Compatible |
| long | short | Compatible | Compatible | Compatible |
| long | integer | Compatible | Compatible | Compatible |
| long | float | Compatible | Compatible | Compatible |
| long | double | Compatible | Compatible | Compatible |
| long | decimal | Compatible | Compatible | Compatible |
| long | string | Compatible | Compatible | Compatible |
| long | binary | Unsupported | Unsupported | Unsupported |
| long | timestamp | Unsupported | Unsupported | Unsupported |
| float | boolean | Compatible | Compatible | Compatible |
| float | byte | Compatible | Compatible | Compatible |
| float | short | Compatible | Compatible | Compatible |
| float | integer | Compatible | Compatible | Compatible |
| float | long | Compatible | Compatible | Compatible |
| float | double | Compatible | Compatible | Compatible |
| float | decimal | Incompatible | Incompatible | Incompatible |
| float | string | Compatible | Compatible | Compatible |
| float | timestamp | Unsupported | Unsupported | Unsupported |
| double | boolean | Compatible | Compatible | Compatible |
| double | byte | Compatible | Compatible | Compatible |
| double | short | Compatible | Compatible | Compatible |
| double | integer | Compatible | Compatible | Compatible |
| double | long | Compatible | Compatible | Compatible |
| double | float | Compatible | Compatible | Compatible |
| double | decimal | Incompatible | Incompatible | Incompatible |
| double | string | Compatible | Compatible | Compatible |
| double | timestamp | Unsupported | Unsupported | Unsupported |
| decimal | boolean | Compatible | Compatible | Compatible |
| decimal | byte | Compatible | Compatible | Compatible |
| decimal | short | Compatible | Compatible | Compatible |
| decimal | integer | Compatible | Compatible | Compatible |
| decimal | long | Compatible | Compatible | Compatible |
| decimal | float | Compatible | Compatible | Compatible |
| decimal | double | Compatible | Compatible | Compatible |
| decimal | string | Compatible | Compatible | Compatible |
| decimal | timestamp | Unsupported | Unsupported | Unsupported |
| string | boolean | Compatible | Compatible | Compatible |
| string | byte | Compatible | Compatible | Compatible |
| string | short | Compatible | Compatible | Compatible |
| string | integer | Compatible | Compatible | Compatible |
| string | long | Compatible | Compatible | Compatible |
| string | float | Compatible | Compatible | Compatible |
| string | double | Compatible | Compatible | Compatible |
| string | decimal | Incompatible | Incompatible | Incompatible |
| string | binary | Compatible | Compatible | Compatible |
| string | date | Compatible | Compatible | Compatible |
| string | timestamp | Incompatible | Incompatible | Incompatible |
| binary | string | Compatible | Compatible | Compatible |
| date | boolean | Unsupported | Unsupported | Unsupported |
| date | byte | Unsupported | Unsupported | Unsupported |
| date | short | Unsupported | Unsupported | Unsupported |
| date | integer | Unsupported | Unsupported | Unsupported |
| date | long | Unsupported | Unsupported | Unsupported |
| date | float | Unsupported | Unsupported | Unsupported |
| date | double | Unsupported | Unsupported | Unsupported |
| date | decimal | Unsupported | Unsupported | Unsupported |
| date | string | Compatible | Compatible | Compatible |
| date | timestamp | Unsupported | Unsupported | Unsupported |
| timestamp | boolean | Unsupported | Unsupported | Unsupported |
| timestamp | byte | Unsupported | Unsupported | Unsupported |
| timestamp | short | Unsupported | Unsupported | Unsupported |
| timestamp | integer | Unsupported | Unsupported | Unsupported |
| timestamp | long | Compatible | Compatible | Compatible |
| timestamp | float | Unsupported | Unsupported | Unsupported |
| timestamp | double | Unsupported | Unsupported | Unsupported |
| timestamp | decimal | Unsupported | Unsupported | Unsupported |
| timestamp | string | Compatible | Compatible | Compatible |
| timestamp | date | Compatible | Compatible | Compatible |
```
--
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: [PR] chore: improve cast documentation to add support per eval mode [datafusion-comet]
Posted by "coderfender (via GitHub)" <gi...@apache.org>.
coderfender commented on PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056#issuecomment-3732100269
Thank you for the approval @parthchandra , @wForget
--
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: [PR] chore: improve cast documentation to add support per eval mode [datafusion-comet]
Posted by "andygrove (via GitHub)" <gi...@apache.org>.
andygrove commented on code in PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056#discussion_r2686673219
##########
docs/source/user-guide/latest/compatibility.md:
##########
@@ -192,3 +192,108 @@ or strings containing null bytes (e.g \\u0000) |
Any cast not listed in the previous tables is currently unsupported. We are working on adding more. See the
[tracking issue](https://github.com/apache/datafusion-comet/issues/286) for more details.
+
+### Cast Support by Eval Mode
Review Comment:
The new content looks great, but don't we now need to remove the previous section, which shows the support matrix for legacy mode? It looks like we are currently duplicating this information.
--
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: [PR] chore: improve cast documentation to add support per eval mode [datafusion-comet]
Posted by "coderfender (via GitHub)" <gi...@apache.org>.
coderfender commented on PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056#issuecomment-3745541691
@andygrove I removed existing cast documentation . Please take a look whenever you get a chance
New document for ref :
```
<!---
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
# Compatibility Guide
Comet aims to provide consistent results with the version of Apache Spark that is being used.
This guide offers information about areas of functionality where there are known differences.
## Parquet
Comet has the following limitations when reading Parquet files:
- Comet does not support reading decimals encoded in binary format.
- No support for default values that are nested types (e.g., maps, arrays, structs). Literal default values are supported.
## ANSI Mode
Comet will fall back to Spark for the following expressions when ANSI mode is enabled. These expressions can be enabled by setting
`spark.comet.expression.EXPRNAME.allowIncompatible=true`, where `EXPRNAME` is the Spark expression class name. See
the [Comet Supported Expressions Guide](expressions.md) for more information on this configuration setting.
- Average (supports all numeric inputs except decimal types)
- Cast (in some cases)
There is an [epic](https://github.com/apache/datafusion-comet/issues/313) where we are tracking the work to fully implement ANSI support.
## Floating-point Number Comparison
Spark normalizes NaN and zero for floating point numbers for several cases. See `NormalizeFloatingNumbers` optimization rule in Spark.
However, one exception is comparison. Spark does not normalize NaN and zero when comparing values
because they are handled well in Spark (e.g., `SQLOrderingUtil.compareFloats`). But the comparison
functions of arrow-rs used by DataFusion do not normalize NaN and zero (e.g., [arrow::compute::kernels::cmp::eq](https://docs.rs/arrow/latest/arrow/compute/kernels/cmp/fn.eq.html#)).
So Comet adds additional normalization expression of NaN and zero for comparisons, and may still have differences
to Spark in some cases, especially when the data contains both positive and negative zero. This is likely an edge
case that is not of concern for many users. If it is a concern, setting `spark.comet.exec.strictFloatingPoint=true`
will make relevant operations fall back to Spark.
## Incompatible Expressions
Expressions that are not 100% Spark-compatible will fall back to Spark by default and can be enabled by setting
`spark.comet.expression.EXPRNAME.allowIncompatible=true`, where `EXPRNAME` is the Spark expression class name. See
the [Comet Supported Expressions Guide](expressions.md) for more information on this configuration setting.
## Regular Expressions
Comet uses the Rust regexp crate for evaluating regular expressions, and this has different behavior from Java's
regular expression engine. Comet will fall back to Spark for patterns that are known to produce different results, but
this can be overridden by setting `spark.comet.regexp.allowIncompatible=true`.
## Window Functions
Comet's support for window functions is incomplete and known to be incorrect. It is disabled by default and
should not be used in production. The feature will be enabled in a future release. Tracking issue: [#2721](https://github.com/apache/datafusion-comet/issues/2721).
## Cast
Cast operations in Comet fall into three levels of support:
- **C (Compatible)**: The results match Apache Spark
- **I (Incompatible)**: The results may match Apache Spark for some inputs, but there are known issues where some inputs
will result in incorrect results or exceptions. The query stage will fall back to Spark by default. Setting
`spark.comet.expression.Cast.allowIncompatible=true` will allow all incompatible casts to run natively in Comet, but this is not
recommended for production use.
- **U (Unsupported)**: Comet does not provide a native version of this cast expression and the query stage will fall back to
Spark.
- **N/A**: Spark does not support this cast.
### Legacy Mode
<!-- WARNING! DO NOT MANUALLY MODIFY CONTENT BETWEEN THE BEGIN AND END TAGS -->
<!--BEGIN:CAST_LEGACY_TABLE-->
<!-- prettier-ignore-start -->
| | binary | boolean | byte | date | decimal | double | float | integer | long | short | string | timestamp |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| binary | - | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | C | N/A |
| boolean | N/A | - | C | N/A | U | C | C | C | C | C | C | U |
| byte | U | C | - | N/A | C | C | C | C | C | C | C | U |
| date | N/A | U | U | - | U | U | U | U | U | U | C | U |
| decimal | N/A | C | C | N/A | - | C | C | C | C | C | C | U |
| double | N/A | C | C | N/A | I | - | C | C | C | C | C | U |
| float | N/A | C | C | N/A | I | C | - | C | C | C | C | U |
| integer | U | C | C | N/A | C | C | C | - | C | C | C | U |
| long | U | C | C | N/A | C | C | C | C | - | C | C | U |
| short | U | C | C | N/A | C | C | C | C | C | - | C | U |
| string | C | C | C | C | I | C | C | C | C | C | - | I |
| timestamp | N/A | U | U | C | U | U | U | U | C | U | C | - |
<!-- prettier-ignore-end -->
**Notes:**
- **decimal -> string**: There can be formatting differences in some case due to Spark using scientific notation where Comet does not
- **double -> decimal**: There can be rounding differences
- **double -> string**: There can be differences in precision. For example, the input "1.4E-45" will produce 1.0E-45 instead of 1.4E-45
- **float -> decimal**: There can be rounding differences
- **float -> string**: There can be differences in precision. For example, the input "1.4E-45" will produce 1.0E-45 instead of 1.4E-45
- **string -> date**: Only supports years between 262143 BC and 262142 AD
- **string -> decimal**: Does not support fullwidth unicode digits (e.g \\uFF10)
or strings containing null bytes (e.g \\u0000)
- **string -> timestamp**: Not all valid formats are supported
<!--END:CAST_LEGACY_TABLE-->
### Try Mode
<!-- WARNING! DO NOT MANUALLY MODIFY CONTENT BETWEEN THE BEGIN AND END TAGS -->
<!--BEGIN:CAST_TRY_TABLE-->
<!-- prettier-ignore-start -->
| | binary | boolean | byte | date | decimal | double | float | integer | long | short | string | timestamp |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| binary | - | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | C | N/A |
| boolean | N/A | - | C | N/A | U | C | C | C | C | C | C | U |
| byte | U | C | - | N/A | C | C | C | C | C | C | C | U |
| date | N/A | U | U | - | U | U | U | U | U | U | C | U |
| decimal | N/A | C | C | N/A | - | C | C | C | C | C | C | U |
| double | N/A | C | C | N/A | I | - | C | C | C | C | C | U |
| float | N/A | C | C | N/A | I | C | - | C | C | C | C | U |
| integer | U | C | C | N/A | C | C | C | - | C | C | C | U |
| long | U | C | C | N/A | C | C | C | C | - | C | C | U |
| short | U | C | C | N/A | C | C | C | C | C | - | C | U |
| string | C | C | C | C | I | C | C | C | C | C | - | I |
| timestamp | N/A | U | U | C | U | U | U | U | C | U | C | - |
<!-- prettier-ignore-end -->
**Notes:**
- **decimal -> string**: There can be formatting differences in some case due to Spark using scientific notation where Comet does not
- **double -> decimal**: There can be rounding differences
- **double -> string**: There can be differences in precision. For example, the input "1.4E-45" will produce 1.0E-45 instead of 1.4E-45
- **float -> decimal**: There can be rounding differences
- **float -> string**: There can be differences in precision. For example, the input "1.4E-45" will produce 1.0E-45 instead of 1.4E-45
- **string -> date**: Only supports years between 262143 BC and 262142 AD
- **string -> decimal**: Does not support fullwidth unicode digits (e.g \\uFF10)
or strings containing null bytes (e.g \\u0000)
- **string -> timestamp**: Not all valid formats are supported
<!--END:CAST_TRY_TABLE-->
### ANSI Mode
<!-- WARNING! DO NOT MANUALLY MODIFY CONTENT BETWEEN THE BEGIN AND END TAGS -->
<!--BEGIN:CAST_ANSI_TABLE-->
<!-- prettier-ignore-start -->
| | binary | boolean | byte | date | decimal | double | float | integer | long | short | string | timestamp |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| binary | - | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | C | N/A |
| boolean | N/A | - | C | N/A | U | C | C | C | C | C | C | U |
| byte | U | C | - | N/A | C | C | C | C | C | C | C | U |
| date | N/A | U | U | - | U | U | U | U | U | U | C | U |
| decimal | N/A | C | C | N/A | - | C | C | C | C | C | C | U |
| double | N/A | C | C | N/A | I | - | C | C | C | C | C | U |
| float | N/A | C | C | N/A | I | C | - | C | C | C | C | U |
| integer | U | C | C | N/A | C | C | C | - | C | C | C | U |
| long | U | C | C | N/A | C | C | C | C | - | C | C | U |
| short | U | C | C | N/A | C | C | C | C | C | - | C | U |
| string | C | C | C | C | I | C | C | C | C | C | - | I |
| timestamp | N/A | U | U | C | U | U | U | U | C | U | C | - |
<!-- prettier-ignore-end -->
**Notes:**
- **decimal -> string**: There can be formatting differences in some case due to Spark using scientific notation where Comet does not
- **double -> decimal**: There can be rounding differences
- **double -> string**: There can be differences in precision. For example, the input "1.4E-45" will produce 1.0E-45 instead of 1.4E-45
- **float -> decimal**: There can be rounding differences
- **float -> string**: There can be differences in precision. For example, the input "1.4E-45" will produce 1.0E-45 instead of 1.4E-45
- **string -> date**: Only supports years between 262143 BC and 262142 AD
- **string -> decimal**: Does not support fullwidth unicode digits (e.g \\uFF10)
or strings containing null bytes (e.g \\u0000)
- **string -> timestamp**: ANSI mode not supported
<!--END:CAST_ANSI_TABLE-->
See the [tracking issue](https://github.com/apache/datafusion-comet/issues/286) for more details.
```
--
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: [PR] chore: improve cast documentation to add support per eval mode [datafusion-comet]
Posted by "codecov-commenter (via GitHub)" <gi...@apache.org>.
codecov-commenter commented on PR #3056:
URL: https://github.com/apache/datafusion-comet/pull/3056#issuecomment-3726613580
## [Codecov](https://app.codecov.io/gh/apache/datafusion-comet/pull/3056?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report
:x: Patch coverage is `0%` with `21 lines` in your changes missing coverage. Please review.
:white_check_mark: Project coverage is 9.96%. Comparing base ([`f09f8af`](https://app.codecov.io/gh/apache/datafusion-comet/commit/f09f8af64c6599255e116a376f4f008f2fd63b43?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)) to head ([`936d55a`](https://app.codecov.io/gh/apache/datafusion-comet/commit/936d55a8f10bc56d8f1ea7dc9c8bd72d4866f0e1?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)).
:warning: Report is 833 commits behind head on main.
| [Files with missing lines](https://app.codecov.io/gh/apache/datafusion-comet/pull/3056?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Patch % | Lines |
|---|---|---|
| [...src/main/scala/org/apache/comet/GenerateDocs.scala](https://app.codecov.io/gh/apache/datafusion-comet/pull/3056?src=pr&el=tree&filepath=spark%2Fsrc%2Fmain%2Fscala%2Forg%2Fapache%2Fcomet%2FGenerateDocs.scala&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3Bhcmsvc3JjL21haW4vc2NhbGEvb3JnL2FwYWNoZS9jb21ldC9HZW5lcmF0ZURvY3Muc2NhbGE=) | 0.00% | [21 Missing :warning: ](https://app.codecov.io/gh/apache/datafusion-comet/pull/3056?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
<details><summary>Additional details and impacted files</summary>
```diff
@@ Coverage Diff @@
## main #3056 +/- ##
============================================
- Coverage 56.12% 9.96% -46.17%
+ Complexity 976 234 -742
============================================
Files 119 167 +48
Lines 11743 15529 +3786
Branches 2251 2554 +303
============================================
- Hits 6591 1547 -5044
- Misses 4012 13805 +9793
+ Partials 1140 177 -963
```
</details>
[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/apache/datafusion-comet/pull/3056?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
<details><summary> :rocket: New features to boost your workflow: </summary>
- :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems.
</details>
--
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