Hi Jeremy,
if you manage to repro as a unit test in Calcite (as Stamatis suggested)
you can "git bisect" on that specific test to find the right commit.

Best regards,
Alessandro

On Wed, 5 Jan 2022 at 17:12, Jeremy Dyer <[email protected]> wrote:

> I just tried removing the "S7" CASE WHEN portion and now it works. Why is
> that however? Also just for version understanding my previous version was
> Calcite 1.26.0 and this begins to occur at 1.27.0 so I would assume that
> something in [1] diff would be the reason I just don't know where to look?
>
> [1]
> https://github.com/apache/calcite/compare/calcite-1.26.0...calcite-1.27.0
>
> On Wed, Jan 5, 2022 at 10:57 AM Justin Swett <[email protected]>
> wrote:
>
> > Does it only happen with the full SQL statement or can you repro with
> > just one of those columns? S5, S6 and S7 seem like the fields that
> > might be problematic.
> >
> > On Wed, Jan 5, 2022 at 6:31 AM Jeremy Dyer <[email protected]> wrote:
> > >
> > > Hello,
> > >
> > > I am experiencing a java.lang.StackOverFlowError in the HepPlanner [1].
> > The
> > > error is occurring in a unit test that had been working for some time
> > until
> > > I recently upgraded to Calcite 1.29.0. It is very possible I am doing
> > > something wrong in my planner configuration but I find it odd that it
> > > worked before the upgrade? The query is this [2]. Does anyone have
> ideas
> > > how I might resolve this issue?
> > >
> > > - Jeremy Dyer
> > >
> > > [1]
> > >
> >
> https://github.com/apache/calcite/blob/cbfe0609edcc4a843d71497f159e3687a834119e/core/src/main/java/org/apache/calcite/plan/hep/HepPlanner.java#L391
> > >
> > > [2]
> > > SELECT
> > > (CASE WHEN a = 3 THEN 1 END) AS "S1",
> > > (CASE WHEN a > 0 THEN a ELSE 1 END) AS "S2",
> > > (CASE WHEN a = 4 THEN 3 ELSE a + 1 END) AS "S3",
> > > (CASE WHEN a = 3 THEN 1 WHEN a > 0 THEN 2 ELSE a END) AS "S4",
> > > CASE
> > > WHEN (a >= 1 AND a < 2) OR (a > 2) THEN CAST('in-between' AS VARCHAR)
> > ELSE
> > > CAST('out-of-range' AS VARCHAR)
> > > END AS "S5",
> > > CASE
> > > WHEN (a < 2) OR (3 < a AND a < 4) THEN 42 ELSE 47
> > > END AS "S6",
> > > CASE WHEN (1 < a AND a <= 4) THEN 1 ELSE 0 END AS "S7"
> > > FROM df
> >
>

Reply via email to