Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
Given the query
select distinct * from "hr"."emps"
Optiq gives the error
Caused by: java.lang.ClassCastException: net.hydromatic.optiq.test.JdbcTest$Employee cannot be cast to [Ljava.lang.Object; at net.hydromatic.linq4j.function.Functions$ArrayEqualityComparer.hashCode(Functions.java:491) at net.hydromatic.linq4j.EnumerableDefaults$Wrapped.hashCode(EnumerableDefaults.java:2252) at java.util.HashMap.hash(HashMap.java:338) at java.util.HashMap.put(HashMap.java:611) at java.util.HashSet.add(HashSet.java:219) at net.hydromatic.linq4j.EnumerableDefaults.into(EnumerableDefaults.java:2120) at net.hydromatic.linq4j.DefaultEnumerable.into(DefaultEnumerable.java:325) at net.hydromatic.linq4j.EnumerableDefaults.distinct(EnumerableDefaults.java:405) at net.hydromatic.linq4j.DefaultEnumerable.distinct(DefaultEnumerable.java:193) at Baz.bind(Unknown Source) at net.hydromatic.optiq.jdbc.OptiqPrepare$PrepareResult.getEnumerable(OptiqPrepare.java:270)
Suspect that EnumerableAggregateRel is not generating its input record accessor correctly.
I'll add a test case JdbcTest.testSelectDistinctStar shortly.