zabetak commented on a change in pull request #138:
URL: https://github.com/apache/calcite-avatica/pull/138#discussion_r602418286
##########
File path: core/src/main/java/org/apache/calcite/avatica/Meta.java
##########
@@ -685,7 +686,14 @@ public static CursorFactory deduce(List<ColumnMetaData>
columns,
if (List.class.isAssignableFrom(resultClazz)) {
return LIST;
}
- return record(resultClazz);
+ // columns for MetaImpl internal classes do not match field names,
"record" would fail
+ // can be removed once CALCITE-2489 is merged in Calcite
+ if
(resultClazz.getName().startsWith("org.apache.calcite.avatica.MetaImpl")
+ && !resultClazz.getName().endsWith("MetaTable")) {
+ return ARRAY;
+ }
Review comment:
With or without the if statement the `deduce` method changes behavior
and it might break downstream projects (as it breaks Calcite for instance). I
think it is worth adding a backward compatibility note for the method and the
change in general in `history.md`.
--
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.
For queries about this service, please contact Infrastructure at:
[email protected]