[
https://issues.apache.org/jira/browse/CALCITE-6383?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17841062#comment-17841062
]
Julian Hyde commented on CALCITE-6383:
--------------------------------------
Pr looks good except than you can’t use “*” for emphasis in javadoc. It is html
not markdown.
> The class SameOperandTypeChecker is incorrectly documented
> ----------------------------------------------------------
>
> Key: CALCITE-6383
> URL: https://issues.apache.org/jira/browse/CALCITE-6383
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.36.0
> Reporter: Mihai Budiu
> Priority: Minor
> Labels: pull-request-available
>
> The SameOperandTypeChecker claims that it checks whether operands have the
> same type (the class name suggests this, as does the JavaDoc).
> {code:java}
> /**
> * Parameter type-checking strategy where all operand types must be the same.
> */
> public class SameOperandTypeChecker implements SqlSingleOperandTypeChecker {
> {code}
> But the code does something this:
> {code:java}
> for (int i : operandList) {
> if (prev >= 0) {
> if (!SqlTypeUtil.isComparable(types[i], types[prev])) {
> {code}
> The documentation for isComparable says:
> {code:java}
> /**
> * Returns whether two types are comparable. They need to be scalar types of
> * the same family, or struct types whose fields are pairwise comparable.
> {code}
> Thus the class only checks that the operands have the same type *family*, not
> the same *type*.
> I am not sure what the right fix is, though, since changing the class name
> would be a pretty big breaking change. But I suspect this confusion is a
> source of a few bugs. An instance is [CALCITE-6382]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)