Dawid Wysakowicz created CALCITE-6342:
-----------------------------------------
Summary: Use highest input precision for datetime with/without
local time zone
Key: CALCITE-6342
URL: https://issues.apache.org/jira/browse/CALCITE-6342
Project: Calcite
Issue Type: Bug
Components: core
Affects Versions: 1.36.0
Reporter: Dawid Wysakowicz
In [CALCITE-5478] it was correctly improved that the precision should be taken
into account when calculating {{leastRestrictive}} type of {{Datetime}} types.
Unfortunately it still does not behave well for a call like:
{{leastRestrictive(TIMESTAMP_LTZ(0), TIMESTAMP(3)}}. It produces
{{TIMESTAMP_LTZ(0)}}.
In my opinion this should produce at least {{TIMESTAMP(3)}}.
I'd suggest modifying the code a little bit to:
{code}
if (type.getSqlTypeName().getFamily() ==
resultType.getSqlTypeName().getFamily()
&& type.getSqlTypeName().allowsPrec()
&& type.getPrecision() != resultType.getPrecision()) {
final int precision =
SqlTypeUtil.maxPrecision(resultType.getPrecision(),
type.getPrecision());
resultType = createSqlType(type.getSqlTypeName(),
precision);
}
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)