[ 
https://issues.apache.org/jira/browse/CALCITE-6471?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated CALCITE-6471:
------------------------------------
    Labels: pull-request-available  (was: )

> Improve performance of SqlToRelConverter by preventing unconditional 
> conversion of sqlNodes to string for null-check messages 
> ------------------------------------------------------------------------------------------------------------------------------
>
>                 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
>            Assignee: Konstantin Orlov
>            Priority: Minor
>              Labels: pull-request-available
>
> 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)

Reply via email to