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)