[
https://issues.apache.org/jira/browse/CALCITE-5712?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Min-Seok Kim updated CALCITE-5712:
----------------------------------
Description:
The MyFilterableTable class is not functioning properly when used in
conjunction with coroutines (kotest) and logback. The issue can be reproduced
by following the steps outlined in the GitHub repository provided:
[https://github.com/emesday/filterabletable-coroutine/blob/main/src/test/kotlin/MinimalTest.kt]
{code:java}
class MyFilterableTable : AbstractTable(), FilterableTable {
override fun getRowType(typeFactory: RelDataTypeFactory): RelDataType {
return typeFactory.createStructType(
listOf(typeFactory.createSqlType(SqlTypeName.BIGINT),
typeFactory.createSqlType(SqlTypeName.VARCHAR)),
listOf("ID", "NAME")
)
} override fun scan(root: DataContext?, filters: MutableList<RexNode>?):
Enumerable<Array<Any?>> {
return Linq4j.asEnumerable(arrayOf(arrayOf(1L, "John")))
}
}
{code}
*Steps to Reproduce:*
# Clone the GitHub repository
[https://github.com/emesday/filterabletable-coroutine]
# USE_LOGBACK=true ./gradlew test -i
## this executes MinimalTest in src/test/kotlin/MinimalTest.kt
*Expected Behavior:*
The MyFilterableTable class should work correctly with coroutines (kotest) and
logback.
*Actual Behavior:*
The MyFilterableTable class fails to function as expected when used in
combination with coroutines (kotest) and logback. The failure message in the
test case is as follows:
{code:java}
MinimalTest > MyFilterableTable fails FAILED
java.lang.AssertionError: RelSubset [rel#78:RelSubset#2.ENUMERABLE.[]] has
wrong best cost {130.0 rows, 216.0 cpu, 0.0 io}. Correct cost is {150.5 rows,
150.505 cpu, 0.0 io}
at org.apache.calcite.util.Litmus.lambda$static$0(Litmus.java:31) {code}
*Additional Information:*
* Note that the MyScannableTable class is not affected by this issue.
* When using only kotest without coroutines (just threads) or only logback,
the MyFilterableTable class works correctly.
!image-2023-05-19-16-08-36-456.png|width=234,height=38!
Please feel free to make any necessary adjustments or additions to the provided
information.
was:
The MyFilterableTable class is not functioning properly when used in
conjunction with coroutines (kotest) and logback. The issue can be reproduced
by following the steps outlined in the GitHub repository provided:
[https://github.com/emesday/filterabletable-coroutine/blob/main/src/test/kotlin/MinimalTest.kt]
{code:java}
class MyFilterableTable : AbstractTable(), FilterableTable {
override fun getRowType(typeFactory: RelDataTypeFactory): RelDataType {
return typeFactory.createStructType(
listOf(typeFactory.createSqlType(SqlTypeName.BIGINT),
typeFactory.createSqlType(SqlTypeName.VARCHAR)),
listOf("ID", "NAME")
)
} override fun scan(root: DataContext?, filters: MutableList<RexNode>?):
Enumerable<Array<Any?>> {
return Linq4j.asEnumerable(arrayOf(arrayOf(1L, "John")))
}
}
{code}
*Steps to Reproduce:*
# Clone the GitHub repository
[https://github.com/emesday/filterabletable-coroutine]
# USE_LOGBACK=true ./gradlew test -i
## this executes MinimalTest in src/test/kotlin/MinimalTest.kt
*Expected Behavior:*
The MyFilterableTable class should work correctly with coroutines (kotest) and
logback.
*Actual Behavior:*
The MyFilterableTable class fails to function as expected when used in
combination with coroutines (kotest) and logback. The failure message in the
test case is as follows:
{code:java}
MinimalTest > MyFilterableTable fails FAILED
java.lang.AssertionError: RelSubset [rel#78:RelSubset#2.ENUMERABLE.[]] has
wrong best cost {130.0 rows, 216.0 cpu, 0.0 io}. Correct cost is {150.5 rows,
150.505 cpu, 0.0 io}
at org.apache.calcite.util.Litmus.lambda$static$0(Litmus.java:31) {code}
*Additional Information:*
* Note that the MyScannableTable class is not affected by this issue.
* When using only kotest (no couroutine) or only logback, the
MyFilterableTable class works correctly.
Please feel free to make any necessary adjustments or additions to the provided
information.
> FilterableTable with Kotlin coroutine(kotest) and logback fails.
> ----------------------------------------------------------------
>
> Key: CALCITE-5712
> URL: https://issues.apache.org/jira/browse/CALCITE-5712
> Project: Calcite
> Issue Type: Bug
> Environment: Operating System: macOS Ventura 13.3.1(22E261)
> JDK Version: openjdk version "17.0.5" 2022-10-18 LTS
> Reporter: Min-Seok Kim
> Priority: Major
> Attachments: image-2023-05-19-16-08-16-411.png,
> image-2023-05-19-16-08-24-243.png, image-2023-05-19-16-08-36-456.png
>
>
> The MyFilterableTable class is not functioning properly when used in
> conjunction with coroutines (kotest) and logback. The issue can be reproduced
> by following the steps outlined in the GitHub repository provided:
> [https://github.com/emesday/filterabletable-coroutine/blob/main/src/test/kotlin/MinimalTest.kt]
> {code:java}
> class MyFilterableTable : AbstractTable(), FilterableTable {
> override fun getRowType(typeFactory: RelDataTypeFactory): RelDataType {
> return typeFactory.createStructType(
> listOf(typeFactory.createSqlType(SqlTypeName.BIGINT),
> typeFactory.createSqlType(SqlTypeName.VARCHAR)),
> listOf("ID", "NAME")
> )
> } override fun scan(root: DataContext?, filters:
> MutableList<RexNode>?): Enumerable<Array<Any?>> {
> return Linq4j.asEnumerable(arrayOf(arrayOf(1L, "John")))
> }
> }
> {code}
> *Steps to Reproduce:*
> # Clone the GitHub repository
> [https://github.com/emesday/filterabletable-coroutine]
> # USE_LOGBACK=true ./gradlew test -i
> ## this executes MinimalTest in src/test/kotlin/MinimalTest.kt
> *Expected Behavior:*
> The MyFilterableTable class should work correctly with coroutines (kotest)
> and logback.
> *Actual Behavior:*
> The MyFilterableTable class fails to function as expected when used in
> combination with coroutines (kotest) and logback. The failure message in the
> test case is as follows:
> {code:java}
> MinimalTest > MyFilterableTable fails FAILED
> java.lang.AssertionError: RelSubset [rel#78:RelSubset#2.ENUMERABLE.[]]
> has wrong best cost {130.0 rows, 216.0 cpu, 0.0 io}. Correct cost is {150.5
> rows, 150.505 cpu, 0.0 io}
> at org.apache.calcite.util.Litmus.lambda$static$0(Litmus.java:31)
> {code}
> *Additional Information:*
> * Note that the MyScannableTable class is not affected by this issue.
> * When using only kotest without coroutines (just threads) or only logback,
> the MyFilterableTable class works correctly.
>
> !image-2023-05-19-16-08-36-456.png|width=234,height=38!
> Please feel free to make any necessary adjustments or additions to the
> provided information.
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)