Hi P.F ZHAN,
>From the exception you posted, it seems that after changing the behavior of
the Split function, you are affecting the results of BIGQUERY. You should
investigate why you are affecting the results of BIGQUERY, and whether the
results are correct.
Generally, after you change the Calcite code, if it does not compile
successfully, you may use the code that compiled successfully before. So
you run the single test successfully in IDEA.You should check whether the
behavior of the Split function you modified is correct. Best, LakeShen

P.F. ZHAN <[email protected]> 于2023年8月7日周一 15:22写道:

> Sorry, I made a mistake,  used Chinese to describe my question.
>
> Hi, When I was testing the split function with a  case as follows:
> org.apache.calcite.test.SqlOperatorTest#testSplitFunction
>
> > f.checkScalar("SPLIT('h-e-l-l-o', '-')[0]", "h", "VARCHAR");
> >
>
>  I found that when I use "*./gradlew  build*" to build the project happens
> with some errors, but I execute this case in IDEA alone and it is
> successful.
>
> FAILURE   0.3sec, org.apache.calcite.test.CalciteSqlOperatorTest >
> > testSplitFunction()
> >     java.lang.AssertionError: Query: values (SPLIT('h-e-l-l-o', '-')[0])
> >     Expected: is "h"
> >          but: was null
> >         at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:18)
> >         at
> >
> org.apache.calcite.sql.test.ResultCheckers.compareResultSetWithMatcher(ResultCheckers.java:252)
> >         at
> >
> org.apache.calcite.sql.test.ResultCheckers$MatcherResultChecker.checkResult(ResultCheckers.java:321)
> >         at
> >
> org.apache.calcite.test.SqlOperatorTest$TesterImpl.check(SqlOperatorTest.java:12150)
> >         at
> org.apache.calcite.sql.test.SqlTester.check(SqlTester.java:160)
> >         at
> >
> org.apache.calcite.test.SqlOperatorFixtureImpl.lambda$checkScalar$2(SqlOperatorFixtureImpl.java:224)
> >         at
> >
> org.apache.calcite.sql.test.AbstractSqlTester.forEachQuery(AbstractSqlTester.java:446)
> >         at
> >
> org.apache.calcite.test.SqlOperatorFixtureImpl.checkScalar(SqlOperatorFixtureImpl.java:223)
> >         at
> >
> org.apache.calcite.sql.test.SqlOperatorFixture.checkScalar(SqlOperatorFixture.java:238)
> >         at
> >
> org.apache.calcite.test.SqlOperatorTest.testSplitFunction(SqlOperatorTest.java:7657)
> >         at
> >
> org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
> >
>
> I also add a case in the file big-query.iq
>
> SELECT SPLIT("h,e,l,l,o", ',')[1] as result;
> > +------- +
> > | result |
> > +------- +
> > | e |
> > +------- +
> > (1 row)
> >
> > !ok
> >
>
> The error log is as follows:
>
> > FAILURE  27.6sec, org.apache.calcite.test.BabelQuidemTest >
> > test(String)[3], [3] sql/big-query.iq
> >     org.opentest4j.AssertionFailedError: Files differ:
> > ~/calcite/babel/build/quidem/test/sql/big-query.iq
> >  ~/calcite/babel/build/resources/test/sql/big-query.iq
> >     759c759
> >     < +------- +
> >     ---
> >     > +--------+
> >     761,763c761,763
> >     < +------- +
> >     < | e      |
> >     < +------- +
> >     ---
> >     > +--------+
> >     > | h      |
> >     > +--------+
> >
> >         at
> > org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:38)
> >         at org.junit.jupiter.api.Assertions.fail(Assertions.java:135)
> >         at
> org.apache.calcite.test.QuidemTest.checkRun(QuidemTest.java:183)
> >         at org.apache.calcite.test.QuidemTest.test(QuidemTest.java:236)
> >
> >
> On Mon, Aug 7, 2023 at 3:13 PM P.F. ZHAN <[email protected]> wrote:
>
> > 大家好。我在测试 split 函数功能的时候,添加了个 case
> > org.apache.calcite.test.SqlOperatorTest#testSplitFunction
> >
> >> f.checkScalar("SPLIT('h-e-l-l-o', '-')[0]", "h", "VARCHAR");
> >>
> >
> > 我发现我使用 gradlew build 整个项目时会出错,但我单独在 IDEA 里面执行这个 case 是成功的。
> >
> >> FAILURE   0.3sec, org.apache.calcite.test.CalciteSqlOperatorTest >
> >> testSplitFunction()
> >>     java.lang.AssertionError: Query: values (SPLIT('h-e-l-l-o', '-')[0])
> >>     Expected: is "h"
> >>          but: was null
> >>         at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:18)
> >>         at
> >>
> org.apache.calcite.sql.test.ResultCheckers.compareResultSetWithMatcher(ResultCheckers.java:252)
> >>         at
> >>
> org.apache.calcite.sql.test.ResultCheckers$MatcherResultChecker.checkResult(ResultCheckers.java:321)
> >>         at
> >>
> org.apache.calcite.test.SqlOperatorTest$TesterImpl.check(SqlOperatorTest.java:12150)
> >>         at
> org.apache.calcite.sql.test.SqlTester.check(SqlTester.java:160)
> >>         at
> >>
> org.apache.calcite.test.SqlOperatorFixtureImpl.lambda$checkScalar$2(SqlOperatorFixtureImpl.java:224)
> >>         at
> >>
> org.apache.calcite.sql.test.AbstractSqlTester.forEachQuery(AbstractSqlTester.java:446)
> >>         at
> >>
> org.apache.calcite.test.SqlOperatorFixtureImpl.checkScalar(SqlOperatorFixtureImpl.java:223)
> >>         at
> >>
> org.apache.calcite.sql.test.SqlOperatorFixture.checkScalar(SqlOperatorFixture.java:238)
> >>         at
> >>
> org.apache.calcite.test.SqlOperatorTest.testSplitFunction(SqlOperatorTest.java:7657)
> >>         at
> >>
> org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
> >>
> >
> > 我在big-query.iq 中加入下面这段
> >
> >> SELECT SPLIT("h,e,l,l,o", ',')[1] as result;
> >> +------- +
> >> | result |
> >> +------- +
> >> | e |
> >> +------- +
> >> (1 row)
> >>
> >> !ok
> >>
> >
> > 报错如下:
> >
> >> FAILURE  27.6sec, org.apache.calcite.test.BabelQuidemTest >
> >> test(String)[3], [3] sql/big-query.iq
> >>     org.opentest4j.AssertionFailedError: Files differ:
> >> ~/calcite/babel/build/quidem/test/sql/big-query.iq
> >> ~/calcite/babel/build/resources/test/sql/big-query.iq
> >>     759c759
> >>     < +------- +
> >>     ---
> >>     > +--------+
> >>     761,763c761,763
> >>     < +------- +
> >>     < | e      |
> >>     < +------- +
> >>     ---
> >>     > +--------+
> >>     > | h      |
> >>     > +--------+
> >>
> >>         at
> >> org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:38)
> >>         at org.junit.jupiter.api.Assertions.fail(Assertions.java:135)
> >>         at
> >> org.apache.calcite.test.QuidemTest.checkRun(QuidemTest.java:183)
> >>         at org.apache.calcite.test.QuidemTest.test(QuidemTest.java:236)
> >>
> >
>

Reply via email to