[
https://issues.apache.org/jira/browse/CALCITE-6471?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17866100#comment-17866100
]
Konstantin Orlov commented on CALCITE-6471:
-------------------------------------------
I changed summary a bit. Hope now it's clear
> 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
>
> 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)