You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "Konstantin Orlov (Jira)" <ji...@apache.org> on 2024/07/15 14:00:00 UTC

[jira] [Created] (CALCITE-6471) Prevent unconditional conversion of sqlNodes to string for null-check messages in SqlToRelConverter

Konstantin Orlov created CALCITE-6471:
-----------------------------------------

             Summary: Prevent unconditional conversion of sqlNodes to string for null-check messages in SqlToRelConverter 
                 Key: CALCITE-6471
                 URL: https://issues.apache.org/jira/browse/CALCITE-6471
             Project: Calcite
          Issue Type: Improvement
          Components: core
    Affects Versions: 1.37.0
            Reporter: Konstantin Orlov


Currently, {{SqlToRelConverter}} contains a few places where {{sqlNode}} is concatenated to some prefix and passed as plain string rather that message supplier as parameter to {{requireNonNull}} method. These are, namely, lines 1019, 4031, and 5344 at commit  29c413a3:

{code:java}
        SqlNode elseOperand =
            requireNonNull(caseNode.getElseOperand(),
                "getElseOperand for " + caseNode);
{code}

{code:java}
  protected RelOptTable getTargetTable(SqlNode call) {
    final SqlValidatorNamespace targetNs = getNamespace(call);
    SqlValidatorNamespace namespace;
    if (targetNs.isWrapperFor(SqlValidatorImpl.DmlNamespace.class)) {
      namespace = targetNs.unwrap(SqlValidatorImpl.DmlNamespace.class);
    } else {
      namespace = targetNs.resolve();
    }
    RelOptTable table = SqlValidatorUtil.getRelOptTable(namespace, catalogReader, null, null);
    return requireNonNull(table, "no table found for " + call);
  }
{code}

{code:java}
          return Pair.of(c, (e, fieldName) -> {
            final int j = requireNonNull(fieldMap.get(fieldName), "field " + fieldName);
            return rexBuilder.makeFieldAccess(e, j);
          });
{code}

We can shave a few microseconds by simply replacing plain string with message supplier.




--
This message was sent by Atlassian Jira
(v8.20.10#820010)