[ 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)