This is an automated email from the ASF dual-hosted git repository.
mihaibudiu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/calcite.git
The following commit(s) were added to refs/heads/main by this push:
new 3774ade072 [CALCITE-7526] Incorrect TIMESTAMP WITH TIME ZONE produces
wrong error message
3774ade072 is described below
commit 3774ade07252ec5b9561c70bf64b9d264e1efabc
Author: Mihai Budiu <[email protected]>
AuthorDate: Thu May 14 11:52:14 2026 -0700
[CALCITE-7526] Incorrect TIMESTAMP WITH TIME ZONE produces wrong error
message
Signed-off-by: Mihai Budiu <[email protected]>
---
.../apache/calcite/util/TimestampWithTimeZoneString.java | 2 +-
.../test/java/org/apache/calcite/rex/RexProgramTest.java | 14 ++++++++++++++
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git
a/core/src/main/java/org/apache/calcite/util/TimestampWithTimeZoneString.java
b/core/src/main/java/org/apache/calcite/util/TimestampWithTimeZoneString.java
index 5816b12a65..52e9eb6d4f 100644
---
a/core/src/main/java/org/apache/calcite/util/TimestampWithTimeZoneString.java
+++
b/core/src/main/java/org/apache/calcite/util/TimestampWithTimeZoneString.java
@@ -68,7 +68,7 @@ public TimestampWithTimeZoneString(String v) {
if (pos == -1) {
throw RESOURCE.illegalLiteral("TIMESTAMP WITH LOCAL TIME ZONE", v,
- RESOURCE.badFormat(TIMESTAMP_FORMAT_STRING).str()).ex();
+ RESOURCE.badFormat(TIMESTAMP_FORMAT_STRING + "
zone").str()).ex();
}
String tsStr = v.substring(0, pos);
diff --git a/core/src/test/java/org/apache/calcite/rex/RexProgramTest.java
b/core/src/test/java/org/apache/calcite/rex/RexProgramTest.java
index 3faf9173d6..01da3e6772 100644
--- a/core/src/test/java/org/apache/calcite/rex/RexProgramTest.java
+++ b/core/src/test/java/org/apache/calcite/rex/RexProgramTest.java
@@ -3413,6 +3413,20 @@ private SqlOperator getNoDeterministicOperator() {
assertThat(timestampLTZChar1.equals(timestampLTZChar4), is(true));
}
+ /** Test case for <a
href="https://issues.apache.org/jira/browse/CALCITE-7526">[CALCITE-7526]
+ * Incorrect TIMESTAMP WITH TIME ZONE produces wrong error message</a>. */
+ @Test void testMalformedTimezone() {
+ try {
+ new
TimestampWithTimeZoneString("2011-07-20T10:34:56America/Los_Angeles");
+ } catch (Exception ex) {
+ assertThat(
+ ex.getMessage(), is("Illegal TIMESTAMP WITH LOCAL TIME ZONE literal "
+ + "'2011-07-20T10:34:56America/Los_Angeles': not in format
'yyyy-MM-dd HH:mm:ss zone'"));
+ return;
+ }
+ fail("Should not be reached");
+ }
+
@Test void testSimplifyLiterals() {
final RexLiteral literalAbc = rexBuilder.makeLiteral("abc");
final RexLiteral literalDef = rexBuilder.makeLiteral("def");