This is an automated email from the ASF dual-hosted git repository. brandonwilliams pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git
The following commit(s) were added to refs/heads/trunk by this push: new 07f8db3 Allow zero padding in timestamp serialization. 07f8db3 is described below commit 07f8db31ae10a3883c06194642354feb711e361c Author: Adam Holmberg <adam.holmb...@datastax.com> AuthorDate: Fri Sep 11 16:15:23 2020 -0500 Allow zero padding in timestamp serialization. Patch by Adam Holmberg, reviewed by brandonwilliams for CASSANDRA-16105 --- CHANGES.txt | 1 + .../cassandra/serializers/TimestampSerializer.java | 4 ++-- .../serializers/TimestampSerializerTest.java | 23 ++++++++++++++++++++++ 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index fa28101..5d8a9fb 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0-beta3 + * Allow zero padding in timestamp serialization (CASSANDRA-16105) * Add byte array backed cells (CASSANDRA-15393) * Correctly handle pending ranges with adjacent range movements (CASSANDRA-14801) * Avoid adding locahost when streaming trivial ranges (CASSANDRA-16099) diff --git a/src/java/org/apache/cassandra/serializers/TimestampSerializer.java b/src/java/org/apache/cassandra/serializers/TimestampSerializer.java index b6b712b..ab048d0 100644 --- a/src/java/org/apache/cassandra/serializers/TimestampSerializer.java +++ b/src/java/org/apache/cassandra/serializers/TimestampSerializer.java @@ -47,8 +47,8 @@ public class TimestampSerializer extends TypeSerializer<Date> final String[] dateTimeFormats = new String[] { - "yyyy-MM-dd'T'HH:mm[:ss]", - "yyyy-MM-dd HH:mm[:ss]" + "y-M-d'T'H:m[:s]", + "y-M-d H:m[:s]" }; final String[] offsetFormats = new String[] { diff --git a/test/unit/org/apache/cassandra/serializers/TimestampSerializerTest.java b/test/unit/org/apache/cassandra/serializers/TimestampSerializerTest.java index 0cb365a..e9ae266 100644 --- a/test/unit/org/apache/cassandra/serializers/TimestampSerializerTest.java +++ b/test/unit/org/apache/cassandra/serializers/TimestampSerializerTest.java @@ -144,6 +144,29 @@ public class TimestampSerializerTest } @Test + public void testZeroPadding() // CASSANDRA-16105 + { + long expected = ONE_HOUR + ONE_MINUTE + ONE_SECOND; + validateStringTimestamp("1970-01-01 01:01:01Z", expected); + validateStringTimestamp("1970-1-1 1:1:1Z", expected); + validateStringTimestamp("1970-01-01 01:01:01", BASE_OFFSET + expected); + validateStringTimestamp("1970-1-1 1:1:1", BASE_OFFSET + expected); + + expected = -31556905139000L; + validateStringTimestamp("0970-01-01 01:01:01Z", expected); + validateStringTimestamp("970-1-1 1:1:1Z", expected); + + expected = 10*ONE_MINUTE + 100L; + validateStringTimestamp("1970-01-01T0:0000000010:0.1Z", expected); + validateStringTimestamp("0001970-01-01T0:010:0.1Z", expected); + validateStringTimestamp("1970-1-1T0:10:0.1Z", expected); + validateStringTimestamp("1970-0001-0001T0:010:0.1Z", expected); + + validateStringTimestamp("1970-1-01T1:1Z", ONE_HOUR + ONE_MINUTE); + validateStringTimestamp("1970-1-01T1:1", BASE_OFFSET + ONE_HOUR + ONE_MINUTE); + } + + @Test public void testInvalidTimezones() { List<String> timestamps = new ArrayList<String>( --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org