From 04cdee5660096717f2fd09c88ab09f91a8e5c7fd Mon Sep 17 00:00:00 2001 From: Adam Reeve Date: Thu, 8 Aug 2024 21:16:38 +1200 Subject: [PATCH] Promote 16.1.0-beta3 to stable release (#477) --- csharp/DateTimeNanos.cs | 74 ++++--------------- csharp/ParquetSharp.csproj | 2 +- csharp/PublicAPI/net471/PublicAPI.Shipped.txt | 7 -- csharp/PublicAPI/net6/PublicAPI.Shipped.txt | 7 -- .../netstandard2.1/PublicAPI.Shipped.txt | 7 -- 5 files changed, 14 insertions(+), 83 deletions(-) diff --git a/csharp/DateTimeNanos.cs b/csharp/DateTimeNanos.cs index 885ed66a..8ff7eab9 100644 --- a/csharp/DateTimeNanos.cs +++ b/csharp/DateTimeNanos.cs @@ -10,16 +10,6 @@ namespace ParquetSharp [StructLayout(LayoutKind.Sequential)] public readonly struct DateTimeNanos : IEquatable, IComparable, IComparable { - /// - /// Minimum DateTime representable: 1677-09-21 00:12:43. - /// - public static readonly DateTime MinDateTimeValue = new DateTimeNanos(long.MinValue).DateTime; - - /// - /// Maximum DateTime representable: 2262-04-11 23:47:16. - /// - public static readonly DateTime MaxDateTimeValue = new DateTimeNanos(long.MaxValue).DateTime; - public DateTimeNanos(long ticks) { Ticks = ticks; @@ -27,15 +17,7 @@ public DateTimeNanos(long ticks) public DateTimeNanos(DateTime dateTime) { - Ticks = DotnetTicksToNanosSinceEpoch(dateTime.Ticks); - } - - /// - /// Make a new object from a specified dotnet ticks value - /// - public static DateTimeNanos FromDotnetTicks(long dotnetTicks) - { - return new DateTimeNanos(DotnetTicksToNanosSinceEpoch(dotnetTicks)); + Ticks = (dateTime.Ticks - DateTimeOffset) * (1_000_000L / TimeSpan.TicksPerMillisecond); } /// @@ -46,7 +28,7 @@ public static DateTimeNanos FromDotnetTicks(long dotnetTicks) /// /// Convert to System.DateTime with reduced precision. /// - public DateTime DateTime => new(NanosSinceEpochToDotnetTicks(Ticks)); + public DateTime DateTime => new DateTime(DateTimeOffset + Ticks / (1_000_000L / TimeSpan.TicksPerMillisecond)); public bool Equals(DateTimeNanos other) { @@ -78,36 +60,6 @@ public int CompareTo(DateTimeNanos other) return Ticks.CompareTo(other.Ticks); } - public static bool operator ==(DateTimeNanos left, DateTimeNanos right) - { - return left.Ticks == right.Ticks; - } - - public static bool operator !=(DateTimeNanos left, DateTimeNanos right) - { - return left.Ticks != right.Ticks; - } - - public static bool operator <(DateTimeNanos left, DateTimeNanos right) - { - return left.Ticks < right.Ticks; - } - - public static bool operator <=(DateTimeNanos left, DateTimeNanos right) - { - return left.Ticks <= right.Ticks; - } - - public static bool operator >=(DateTimeNanos left, DateTimeNanos right) - { - return left.Ticks >= right.Ticks; - } - - public static bool operator >(DateTimeNanos left, DateTimeNanos right) - { - return left.Ticks > right.Ticks; - } - /// /// Converts this DateTimeNanos object to a string using a default formatting string with nanosecond precision /// and the current culture's formatting conventions. @@ -137,18 +89,18 @@ public string ToString(string? format, IFormatProvider? formatProvider = null) return DateTime.ToString(adjustedFormat, formatProvider); } - private const long DateTimeOffsetTicks = 621355968000000000; // new DateTime(1970, 01, 01).Ticks - private const string DefaultFormat = "yyyy-MM-dd HH:mm:ss.fffffffff"; - private const long NanosPerTick = 1_000_000L / TimeSpan.TicksPerMillisecond; + /// + /// Minimum DateTime representable: 1677-09-21 00:12:43. + /// + public static readonly DateTime MinDateTimeValue = new DateTimeNanos(long.MinValue).DateTime; - private static long DotnetTicksToNanosSinceEpoch(long dotnetTicks) - { - return (dotnetTicks - DateTimeOffsetTicks) * NanosPerTick; - } + /// + /// Maximum DateTime representable: 2262-04-11 23:47:16. + /// + public static readonly DateTime MaxDateTimeValue = new DateTimeNanos(long.MaxValue).DateTime; - private static long NanosSinceEpochToDotnetTicks(long nanosSinceEpoch) - { - return DateTimeOffsetTicks + nanosSinceEpoch / NanosPerTick; - } + private const long DateTimeOffset = 621355968000000000; // new DateTime(1970, 01, 01).Ticks + + private const string DefaultFormat = "yyyy-MM-dd HH:mm:ss.fffffffff"; } } diff --git a/csharp/ParquetSharp.csproj b/csharp/ParquetSharp.csproj index afab5993..a3dd9da4 100644 --- a/csharp/ParquetSharp.csproj +++ b/csharp/ParquetSharp.csproj @@ -12,7 +12,7 @@ true true 1591; - 16.1.0-beta3 + 16.1.0 G-Research G-Research ParquetSharp diff --git a/csharp/PublicAPI/net471/PublicAPI.Shipped.txt b/csharp/PublicAPI/net471/PublicAPI.Shipped.txt index e5710357..495a61c1 100644 --- a/csharp/PublicAPI/net471/PublicAPI.Shipped.txt +++ b/csharp/PublicAPI/net471/PublicAPI.Shipped.txt @@ -831,13 +831,6 @@ static ParquetSharp.Arrow.ArrowReaderProperties.GetDefault() -> ParquetSharp.Arr static ParquetSharp.Arrow.ArrowWriterProperties.GetDefault() -> ParquetSharp.Arrow.ArrowWriterProperties! static ParquetSharp.Column.CreateSchemaNode(ParquetSharp.Column![]! columns, ParquetSharp.LogicalTypeFactory! logicalTypeFactory, string! nodeName = "schema") -> ParquetSharp.Schema.GroupNode! static ParquetSharp.Column.CreateSchemaNode(ParquetSharp.Column![]! columns, string! nodeName = "schema") -> ParquetSharp.Schema.GroupNode! -static ParquetSharp.DateTimeNanos.FromDotnetTicks(long dotnetTicks) -> ParquetSharp.DateTimeNanos -static ParquetSharp.DateTimeNanos.operator !=(ParquetSharp.DateTimeNanos left, ParquetSharp.DateTimeNanos right) -> bool -static ParquetSharp.DateTimeNanos.operator <(ParquetSharp.DateTimeNanos left, ParquetSharp.DateTimeNanos right) -> bool -static ParquetSharp.DateTimeNanos.operator <=(ParquetSharp.DateTimeNanos left, ParquetSharp.DateTimeNanos right) -> bool -static ParquetSharp.DateTimeNanos.operator ==(ParquetSharp.DateTimeNanos left, ParquetSharp.DateTimeNanos right) -> bool -static ParquetSharp.DateTimeNanos.operator >(ParquetSharp.DateTimeNanos left, ParquetSharp.DateTimeNanos right) -> bool -static ParquetSharp.DateTimeNanos.operator >=(ParquetSharp.DateTimeNanos left, ParquetSharp.DateTimeNanos right) -> bool static ParquetSharp.DefaultWriterProperties.Compression.get -> ParquetSharp.Compression? static ParquetSharp.DefaultWriterProperties.Compression.set -> void static ParquetSharp.DefaultWriterProperties.CompressionLevel.get -> int? diff --git a/csharp/PublicAPI/net6/PublicAPI.Shipped.txt b/csharp/PublicAPI/net6/PublicAPI.Shipped.txt index ec2b4181..7861e51d 100644 --- a/csharp/PublicAPI/net6/PublicAPI.Shipped.txt +++ b/csharp/PublicAPI/net6/PublicAPI.Shipped.txt @@ -835,13 +835,6 @@ static ParquetSharp.Arrow.ArrowReaderProperties.GetDefault() -> ParquetSharp.Arr static ParquetSharp.Arrow.ArrowWriterProperties.GetDefault() -> ParquetSharp.Arrow.ArrowWriterProperties! static ParquetSharp.Column.CreateSchemaNode(ParquetSharp.Column![]! columns, ParquetSharp.LogicalTypeFactory! logicalTypeFactory, string! nodeName = "schema") -> ParquetSharp.Schema.GroupNode! static ParquetSharp.Column.CreateSchemaNode(ParquetSharp.Column![]! columns, string! nodeName = "schema") -> ParquetSharp.Schema.GroupNode! -static ParquetSharp.DateTimeNanos.FromDotnetTicks(long dotnetTicks) -> ParquetSharp.DateTimeNanos -static ParquetSharp.DateTimeNanos.operator !=(ParquetSharp.DateTimeNanos left, ParquetSharp.DateTimeNanos right) -> bool -static ParquetSharp.DateTimeNanos.operator <(ParquetSharp.DateTimeNanos left, ParquetSharp.DateTimeNanos right) -> bool -static ParquetSharp.DateTimeNanos.operator <=(ParquetSharp.DateTimeNanos left, ParquetSharp.DateTimeNanos right) -> bool -static ParquetSharp.DateTimeNanos.operator ==(ParquetSharp.DateTimeNanos left, ParquetSharp.DateTimeNanos right) -> bool -static ParquetSharp.DateTimeNanos.operator >(ParquetSharp.DateTimeNanos left, ParquetSharp.DateTimeNanos right) -> bool -static ParquetSharp.DateTimeNanos.operator >=(ParquetSharp.DateTimeNanos left, ParquetSharp.DateTimeNanos right) -> bool static ParquetSharp.DefaultWriterProperties.Compression.get -> ParquetSharp.Compression? static ParquetSharp.DefaultWriterProperties.Compression.set -> void static ParquetSharp.DefaultWriterProperties.CompressionLevel.get -> int? diff --git a/csharp/PublicAPI/netstandard2.1/PublicAPI.Shipped.txt b/csharp/PublicAPI/netstandard2.1/PublicAPI.Shipped.txt index e5710357..495a61c1 100644 --- a/csharp/PublicAPI/netstandard2.1/PublicAPI.Shipped.txt +++ b/csharp/PublicAPI/netstandard2.1/PublicAPI.Shipped.txt @@ -831,13 +831,6 @@ static ParquetSharp.Arrow.ArrowReaderProperties.GetDefault() -> ParquetSharp.Arr static ParquetSharp.Arrow.ArrowWriterProperties.GetDefault() -> ParquetSharp.Arrow.ArrowWriterProperties! static ParquetSharp.Column.CreateSchemaNode(ParquetSharp.Column![]! columns, ParquetSharp.LogicalTypeFactory! logicalTypeFactory, string! nodeName = "schema") -> ParquetSharp.Schema.GroupNode! static ParquetSharp.Column.CreateSchemaNode(ParquetSharp.Column![]! columns, string! nodeName = "schema") -> ParquetSharp.Schema.GroupNode! -static ParquetSharp.DateTimeNanos.FromDotnetTicks(long dotnetTicks) -> ParquetSharp.DateTimeNanos -static ParquetSharp.DateTimeNanos.operator !=(ParquetSharp.DateTimeNanos left, ParquetSharp.DateTimeNanos right) -> bool -static ParquetSharp.DateTimeNanos.operator <(ParquetSharp.DateTimeNanos left, ParquetSharp.DateTimeNanos right) -> bool -static ParquetSharp.DateTimeNanos.operator <=(ParquetSharp.DateTimeNanos left, ParquetSharp.DateTimeNanos right) -> bool -static ParquetSharp.DateTimeNanos.operator ==(ParquetSharp.DateTimeNanos left, ParquetSharp.DateTimeNanos right) -> bool -static ParquetSharp.DateTimeNanos.operator >(ParquetSharp.DateTimeNanos left, ParquetSharp.DateTimeNanos right) -> bool -static ParquetSharp.DateTimeNanos.operator >=(ParquetSharp.DateTimeNanos left, ParquetSharp.DateTimeNanos right) -> bool static ParquetSharp.DefaultWriterProperties.Compression.get -> ParquetSharp.Compression? static ParquetSharp.DefaultWriterProperties.Compression.set -> void static ParquetSharp.DefaultWriterProperties.CompressionLevel.get -> int?