You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by br...@apache.org on 2020/09/15 15:44:24 UTC
[cassandra] branch trunk updated: Allow zero padding in timestamp
serialization.
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 <ad...@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-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org