Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM mcr.microsoft.com/devcontainers/dotnet:1-9.0-bookworm-slim AS dotnet
FROM mcr.microsoft.com/devcontainers/dotnet:2-10.0-noble AS dotnet

#====================================================================

Expand All @@ -10,7 +10,7 @@ USER vscode
COPY --chown=vscode:vscode . /tmp/build/

# Populate the nuget cache with all of our dependencies
RUN for project in /tmp/build/csharp*; do \
RUN for project in /tmp/build/?sharp*; do \
dotnet restore $project; \
done

Expand Down
32 changes: 16 additions & 16 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup .NET SDK v9.0.x
- name: Setup .NET SDK v10.0.x
uses: actions/setup-dotnet@v5
with:
dotnet-version: 9.0.x
dotnet-version: 10.0.x
- name: Code formating check
run: |
dotnet tool restore
Expand Down Expand Up @@ -126,10 +126,10 @@ jobs:
run: brew install bison

# .NET Setup (and also MSBuild for Windows).
- name: Setup .NET SDK v9.0.x
- name: Setup .NET SDK v10.0.x
uses: actions/setup-dotnet@v5
with:
dotnet-version: 9.0.x
dotnet-version: 10.0.x
- name: Setup MSBuild
if: runner.os == 'Windows'
uses: microsoft/setup-msbuild@v2
Expand Down Expand Up @@ -193,10 +193,10 @@ jobs:
run: |
mkdir bin
cp -rv artifacts/*-native-library/* bin/
- name: Setup .NET SDK v9.0.x
- name: Setup .NET SDK v10.0.x
uses: actions/setup-dotnet@v5
with:
dotnet-version: 9.0.x
dotnet-version: 10.0.x
- name: Get version
id: get-version
shell: pwsh
Expand Down Expand Up @@ -235,7 +235,7 @@ jobs:
- windows-2022
- windows-2025
- windows-11-arm
dotnet: [net6.0, net8.0, net9.0]
dotnet: [net8.0, net9.0, net10.0]
include:
- os: windows-2022
dotnet: net472
Expand All @@ -255,20 +255,20 @@ jobs:
with:
name: nuget-package
path: nuget
- name: Setup .NET SDK v6.0.x
if: matrix.dotnet == 'net6.0'
uses: actions/setup-dotnet@v5
with:
dotnet-version: 6.0.x
- name: Setup .NET SDK v8.0.x
if: matrix.dotnet == 'net8.0'
uses: actions/setup-dotnet@v5
with:
dotnet-version: 8.0.x
- name: Setup .NET SDK v9.0.x
if: matrix.dotnet == 'net9.0'
uses: actions/setup-dotnet@v5
with:
dotnet-version: 9.0.x
- name: Setup .NET SDK v10.0.x
uses: actions/setup-dotnet@v5
with:
dotnet-version: 10.0.x
- name: Add local NuGet feed
run: |
dotnet new nugetconfig
Expand Down Expand Up @@ -298,10 +298,10 @@ jobs:
name: nuget-package
path: nuget

- name: Setup .NET SDK v8.0.x
- name: Setup .NET SDK v10.0.x
uses: actions/setup-dotnet@v5
with:
dotnet-version: 8.0.x
dotnet-version: 10.0.x

- name: Add local NuGet feed
run: |
Expand Down Expand Up @@ -367,10 +367,10 @@ jobs:
with:
name: nuget-package
path: nuget
- name: Setup .NET SDK v9.0.x
- name: Setup .NET SDK v10.0.x
uses: actions/setup-dotnet@v5
with:
dotnet-version: 9.0.x
dotnet-version: 10.0.x
# if version contains "-" treat it as pre-release
# example: 1.0.0-beta1
- name: Create release
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/devcontainer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
strategy:
fail-fast: false
matrix:
runner: [ubuntu-latest, ubuntu-22.04-arm64]
runner: [ubuntu-latest, ubuntu-24.04-arm]
runs-on: ${{ matrix.runner }}
steps:
- name: Set up Docker Buildx
Expand Down
2 changes: 1 addition & 1 deletion csharp.benchmark/ParquetSharp.Benchmark.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<LangVersion>9.0</LangVersion>
<LangVersion>10.0</LangVersion>
<Nullable>enable</Nullable>
<AssemblyName>ParquetSharp.Benchmark</AssemblyName>
<RootNamespace>ParquetSharp.Benchmark</RootNamespace>
Expand Down
6 changes: 3 additions & 3 deletions csharp.test/ParquetSharp.Test.csproj
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net8.0</TargetFrameworks>
<TargetFrameworks>net10.0</TargetFrameworks>
<!-- Avoid building for other frameworks when testing locally. -->
<!-- This is to speed up the build process and avoid errors when the required runtimes are not installed. -->
<TargetFrameworks Condition="'$(CI)' == 'true'">$(TargetFrameworks);net6.0;net9.0</TargetFrameworks>
<TargetFrameworks Condition="'$(CI)' == 'true'">$(TargetFrameworks);net8.0;net9.0</TargetFrameworks>
<TargetFrameworks Condition="'$(CI)' == 'true' AND '$(OS)'=='Windows_NT'">$(TargetFrameworks);net472</TargetFrameworks>
<LangVersion>9.0</LangVersion>
<LangVersion>10.0</LangVersion>
<Nullable>enable</Nullable>
<AssemblyName>ParquetSharp.Test</AssemblyName>
<RootNamespace>ParquetSharp.Test</RootNamespace>
Expand Down
5 changes: 2 additions & 3 deletions csharp/ColumnReader.cs
Original file line number Diff line number Diff line change
Expand Up @@ -227,10 +227,9 @@ public long ReadBatch(long batchSize, Span<TValue> values, out long valuesRead)

public unsafe long ReadBatch(long batchSize, Span<short> defLevels, Span<short> repLevels, Span<TValue> values, out long valuesRead)
{
if (values == null) throw new ArgumentNullException(nameof(values));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if (values.Length < batchSize) throw new ArgumentOutOfRangeException(nameof(values), "batchSize is larger than length of values");
if (defLevels != null && defLevels.Length < batchSize) throw new ArgumentOutOfRangeException(nameof(defLevels), "batchSize is larger than length of defLevels");
if (repLevels != null && repLevels.Length < batchSize) throw new ArgumentOutOfRangeException(nameof(repLevels), "batchSize is larger than length of repLevels");
if (!defLevels.IsEmpty && defLevels.Length < batchSize) throw new ArgumentOutOfRangeException(nameof(defLevels), "batchSize is larger than length of defLevels");
if (!repLevels.IsEmpty && repLevels.Length < batchSize) throw new ArgumentOutOfRangeException(nameof(repLevels), "batchSize is larger than length of repLevels");

var type = typeof(TValue);

Expand Down
10 changes: 2 additions & 8 deletions csharp/ColumnWriter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -284,14 +284,12 @@ public void WriteBatch(ReadOnlySpan<TValue> values)
/// <remarks>
/// The lengths of <paramref name="defLevels"/> and <paramref name="repLevels"/> must be at least <paramref name="numValues"/>.
/// </remarks>
/// <exception cref="ArgumentNullException">Thrown if <paramref name="values"/> is null.</exception>
/// <exception cref="ArgumentOutOfRangeException">Thrown if <paramref name="numValues"/> is larger
/// than the length of <paramref name="defLevels"/> or <paramref name="repLevels"/>.</exception>
public unsafe void WriteBatch(int numValues, ReadOnlySpan<short> defLevels, ReadOnlySpan<short> repLevels, ReadOnlySpan<TValue> values)
{
if (values == null) throw new ArgumentNullException(nameof(values));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if (defLevels != null && defLevels.Length < numValues) throw new ArgumentOutOfRangeException(nameof(defLevels), "numValues is larger than length of defLevels");
if (repLevels != null && repLevels.Length < numValues) throw new ArgumentOutOfRangeException(nameof(repLevels), "numValues is larger than length of repLevels");
if (!defLevels.IsEmpty && defLevels.Length < numValues) throw new ArgumentOutOfRangeException(nameof(defLevels), "numValues is larger than length of defLevels");
if (!repLevels.IsEmpty && repLevels.Length < numValues) throw new ArgumentOutOfRangeException(nameof(repLevels), "numValues is larger than length of repLevels");

var type = typeof(TValue);

Expand Down Expand Up @@ -363,10 +361,6 @@ public unsafe void WriteBatchSpaced(
int numValues, ReadOnlySpan<short> defLevels, ReadOnlySpan<short> repLevels,
ReadOnlySpan<byte> validBits, long validBitsOffset, ReadOnlySpan<TValue> values)
{
if (values == null) throw new ArgumentNullException(nameof(values));
if (defLevels == null) throw new ArgumentNullException(nameof(defLevels));
if (repLevels == null) throw new ArgumentNullException(nameof(repLevels));
if (validBits == null) throw new ArgumentNullException(nameof(validBits));
Comment on lines -366 to -369
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

//if (values.Length < numValues) throw new ArgumentOutOfRangeException("numValues is larger than length of values");
if (defLevels.Length < numValues) throw new ArgumentOutOfRangeException(nameof(defLevels), "numValues is larger than length of defLevels");
if (repLevels.Length < numValues) throw new ArgumentOutOfRangeException(nameof(repLevels), "numValues is larger than length of repLevels");
Expand Down
4 changes: 2 additions & 2 deletions csharp/ParquetSharp.csproj
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net6;net471;netstandard2.1</TargetFrameworks>
<LangVersion>9.0</LangVersion>
<TargetFrameworks>net8.0;net471;netstandard2.1</TargetFrameworks>
<LangVersion>10.0</LangVersion>
<Nullable>enable</Nullable>
<AssemblyName>ParquetSharp</AssemblyName>
<RootNamespace>ParquetSharp</RootNamespace>
Expand Down
11 changes: 0 additions & 11 deletions csharp/PublicAPI.Shipped.txt
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,6 @@ ParquetSharp.Arrow.SchemaManifest.SchemaFields.get -> System.Collections.Generic
ParquetSharp.BsonLogicalType
ParquetSharp.ByteArray
ParquetSharp.ByteArray.ByteArray() -> void
ParquetSharp.ByteArray.ByteArray(System.IntPtr pointer, int length) -> void
ParquetSharp.ByteArray.Equals(ParquetSharp.ByteArray other) -> bool
ParquetSharp.ByteArrayReaderCache<TPhysical, TLogical>
ParquetSharp.ByteArrayReaderCache<TPhysical, TLogical>.Add(TPhysical physical, TLogical logical) -> TLogical
Expand Down Expand Up @@ -398,7 +397,6 @@ ParquetSharp.FileMetaData.WriterVersion.get -> ParquetSharp.ApplicationVersion!
ParquetSharp.FixedLenByteArray
ParquetSharp.FixedLenByteArray.Equals(ParquetSharp.FixedLenByteArray other) -> bool
ParquetSharp.FixedLenByteArray.FixedLenByteArray() -> void
ParquetSharp.FixedLenByteArray.FixedLenByteArray(System.IntPtr pointer) -> void
ParquetSharp.Float16LogicalType
ParquetSharp.IColumnDescriptorVisitor<TReturn>
ParquetSharp.IColumnDescriptorVisitor<TReturn>.OnColumnDescriptor<TPhysical, TLogical, TElement>() -> TReturn
Expand All @@ -419,11 +417,8 @@ ParquetSharp.IntLogicalType
ParquetSharp.IntLogicalType.BitWidth.get -> int
ParquetSharp.IntLogicalType.IsSigned.get -> bool
ParquetSharp.IO.Buffer
ParquetSharp.IO.Buffer.Buffer(System.IntPtr data, long size) -> void
ParquetSharp.IO.Buffer.Capacity.get -> long
ParquetSharp.IO.Buffer.Data.get -> System.IntPtr
ParquetSharp.IO.Buffer.Dispose() -> void
ParquetSharp.IO.Buffer.MutableData.get -> System.IntPtr
ParquetSharp.IO.Buffer.Size.get -> long
ParquetSharp.IO.Buffer.ToArray() -> byte[]!
ParquetSharp.IO.BufferOutputStream
Expand All @@ -441,11 +436,9 @@ ParquetSharp.IO.ManagedRandomAccessFile.ManagedRandomAccessFile(System.IO.Stream
ParquetSharp.IO.OutputStream
ParquetSharp.IO.OutputStream.Dispose() -> void
ParquetSharp.IO.OutputStream.OutputStream() -> void
ParquetSharp.IO.OutputStream.OutputStream(System.IntPtr handle) -> void
ParquetSharp.IO.RandomAccessFile
ParquetSharp.IO.RandomAccessFile.Dispose() -> void
ParquetSharp.IO.RandomAccessFile.RandomAccessFile() -> void
ParquetSharp.IO.RandomAccessFile.RandomAccessFile(System.IntPtr handle) -> void
ParquetSharp.IO.ResizableBuffer
ParquetSharp.JsonLogicalType
ParquetSharp.ListLogicalType
Expand Down Expand Up @@ -477,7 +470,6 @@ ParquetSharp.LogicalReadConverterFactory.LogicalReadConverterFactory() -> void
ParquetSharp.LogicalType
ParquetSharp.LogicalType.Dispose() -> void
ParquetSharp.LogicalType.Equals(ParquetSharp.LogicalType? other) -> bool
ParquetSharp.LogicalType.LogicalType(System.IntPtr handle) -> void
ParquetSharp.LogicalType.Type.get -> ParquetSharp.LogicalTypeEnum
ParquetSharp.LogicalTypeEnum
ParquetSharp.LogicalTypeEnum.Bson = 13 -> ParquetSharp.LogicalTypeEnum
Expand Down Expand Up @@ -686,7 +678,6 @@ ParquetSharp.Schema.Node.Equals(ParquetSharp.Schema.Node? other) -> bool
ParquetSharp.Schema.Node.FieldId.get -> int
ParquetSharp.Schema.Node.LogicalType.get -> ParquetSharp.LogicalType!
ParquetSharp.Schema.Node.Name.get -> string!
ParquetSharp.Schema.Node.Node(System.IntPtr handle) -> void
ParquetSharp.Schema.Node.NodeType.get -> ParquetSharp.Schema.NodeType
ParquetSharp.Schema.Node.Parent.get -> ParquetSharp.Schema.Node?
ParquetSharp.Schema.Node.Path.get -> ParquetSharp.Schema.ColumnPath!
Expand Down Expand Up @@ -813,14 +804,12 @@ readonly ParquetSharp.ApplicationVersion.Patch -> int
readonly ParquetSharp.ApplicationVersion.PreRelease -> string!
readonly ParquetSharp.ApplicationVersion.Unknown -> string!
readonly ParquetSharp.ByteArray.Length -> int
readonly ParquetSharp.ByteArray.Pointer -> System.IntPtr
readonly ParquetSharp.Column.Length -> int
readonly ParquetSharp.Column.LogicalSystemType -> System.Type!
readonly ParquetSharp.Column.LogicalTypeOverride -> ParquetSharp.LogicalType?
readonly ParquetSharp.Column.Name -> string!
readonly ParquetSharp.Date.Days -> int
readonly ParquetSharp.DateTimeNanos.Ticks -> long
readonly ParquetSharp.FixedLenByteArray.Pointer -> System.IntPtr
readonly ParquetSharp.Int96.A -> int
readonly ParquetSharp.Int96.B -> int
readonly ParquetSharp.Int96.C -> int
Expand Down
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PublicAPIAnalyzers in .NET 10.0 required me to move those symbols into the individual framework-dependent PublicAPI.Shipped.txt files. I am not entirely sure why, but I couldn't make the project build without these changes.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like it affected anything involving System.IntPtr. Weird.

Original file line number Diff line number Diff line change
@@ -1,8 +1,19 @@
#nullable enable
ParquetSharp.ByteArray.ByteArray(nint pointer, int length) -> void
ParquetSharp.FixedLenByteArray.FixedLenByteArray(nint pointer) -> void
ParquetSharp.IO.Buffer.Buffer(nint data, long size) -> void
ParquetSharp.IO.Buffer.Data.get -> nint
ParquetSharp.IO.Buffer.MutableData.get -> nint
ParquetSharp.IO.OutputStream.OutputStream(nint handle) -> void
ParquetSharp.IO.RandomAccessFile.RandomAccessFile(nint handle) -> void
ParquetSharp.LogicalType.LogicalType(nint handle) -> void
ParquetSharp.LogicalTypeFactory.DateAsDateOnly.get -> bool
ParquetSharp.LogicalTypeFactory.DateAsDateOnly.set -> void
ParquetSharp.LogicalTypeFactory.TimeAsTimeOnly.get -> bool
ParquetSharp.LogicalTypeFactory.TimeAsTimeOnly.set -> void
ParquetSharp.Schema.Node.Node(nint handle) -> void
readonly ParquetSharp.ByteArray.Pointer -> nint
readonly ParquetSharp.FixedLenByteArray.Pointer -> nint
static ParquetSharp.LogicalRead.ConvertDateOnly(System.ReadOnlySpan<int> source, System.ReadOnlySpan<short> defLevels, System.Span<System.DateOnly?> destination, short definedLevel) -> void
static ParquetSharp.LogicalRead.ConvertDateOnly(System.ReadOnlySpan<int> source, System.Span<System.DateOnly> destination) -> void
static ParquetSharp.LogicalRead.ConvertHalf(System.ReadOnlySpan<ParquetSharp.FixedLenByteArray> source, System.ReadOnlySpan<short> defLevels, System.Span<System.Half?> destination, short definedLevel) -> void
Expand Down
11 changes: 11 additions & 0 deletions csharp/PublicAPI/net471/PublicAPI.Shipped.txt
Original file line number Diff line number Diff line change
@@ -1 +1,12 @@
#nullable enable
ParquetSharp.ByteArray.ByteArray(System.IntPtr pointer, int length) -> void
ParquetSharp.FixedLenByteArray.FixedLenByteArray(System.IntPtr pointer) -> void
ParquetSharp.IO.Buffer.Buffer(System.IntPtr data, long size) -> void
ParquetSharp.IO.Buffer.Data.get -> System.IntPtr
ParquetSharp.IO.Buffer.MutableData.get -> System.IntPtr
ParquetSharp.IO.OutputStream.OutputStream(System.IntPtr handle) -> void
ParquetSharp.IO.RandomAccessFile.RandomAccessFile(System.IntPtr handle) -> void
ParquetSharp.LogicalType.LogicalType(System.IntPtr handle) -> void
ParquetSharp.Schema.Node.Node(System.IntPtr handle) -> void
readonly ParquetSharp.ByteArray.Pointer -> System.IntPtr
readonly ParquetSharp.FixedLenByteArray.Pointer -> System.IntPtr
39 changes: 39 additions & 0 deletions csharp/PublicAPI/net8.0/PublicAPI.Shipped.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#nullable enable
ParquetSharp.ByteArray.ByteArray(nint pointer, int length) -> void
ParquetSharp.FixedLenByteArray.FixedLenByteArray(nint pointer) -> void
ParquetSharp.IO.Buffer.Buffer(nint data, long size) -> void
ParquetSharp.IO.Buffer.Data.get -> nint
ParquetSharp.IO.Buffer.MutableData.get -> nint
ParquetSharp.IO.OutputStream.OutputStream(nint handle) -> void
ParquetSharp.IO.RandomAccessFile.RandomAccessFile(nint handle) -> void
ParquetSharp.LogicalType.LogicalType(nint handle) -> void
ParquetSharp.LogicalTypeFactory.DateAsDateOnly.get -> bool
ParquetSharp.LogicalTypeFactory.DateAsDateOnly.set -> void
ParquetSharp.LogicalTypeFactory.TimeAsTimeOnly.get -> bool
ParquetSharp.LogicalTypeFactory.TimeAsTimeOnly.set -> void
ParquetSharp.Schema.Node.Node(nint handle) -> void
readonly ParquetSharp.ByteArray.Pointer -> nint
readonly ParquetSharp.FixedLenByteArray.Pointer -> nint
static ParquetSharp.LogicalRead.ConvertDateOnly(System.ReadOnlySpan<int> source, System.ReadOnlySpan<short> defLevels, System.Span<System.DateOnly?> destination, short definedLevel) -> void
static ParquetSharp.LogicalRead.ConvertDateOnly(System.ReadOnlySpan<int> source, System.Span<System.DateOnly> destination) -> void
static ParquetSharp.LogicalRead.ConvertHalf(System.ReadOnlySpan<ParquetSharp.FixedLenByteArray> source, System.ReadOnlySpan<short> defLevels, System.Span<System.Half?> destination, short definedLevel) -> void
static ParquetSharp.LogicalRead.ConvertHalf(System.ReadOnlySpan<ParquetSharp.FixedLenByteArray> source, System.Span<System.Half> destination) -> void
static ParquetSharp.LogicalRead.ConvertTimeOnlyMicros(System.ReadOnlySpan<long> source, System.ReadOnlySpan<short> defLevels, System.Span<System.TimeOnly?> destination, short definedLevel) -> void
static ParquetSharp.LogicalRead.ConvertTimeOnlyMicros(System.ReadOnlySpan<long> source, System.Span<System.TimeOnly> destination) -> void
static ParquetSharp.LogicalRead.ConvertTimeOnlyMillis(System.ReadOnlySpan<int> source, System.ReadOnlySpan<short> defLevels, System.Span<System.TimeOnly?> destination, short definedLevel) -> void
static ParquetSharp.LogicalRead.ConvertTimeOnlyMillis(System.ReadOnlySpan<int> source, System.Span<System.TimeOnly> destination) -> void
static ParquetSharp.LogicalRead.ToDateOnly(int source) -> System.DateOnly
static ParquetSharp.LogicalRead.ToHalf(ParquetSharp.FixedLenByteArray source) -> System.Half
static ParquetSharp.LogicalRead.ToTimeOnlyMicros(long source) -> System.TimeOnly
static ParquetSharp.LogicalRead.ToTimeOnlyMillis(int source) -> System.TimeOnly
static ParquetSharp.LogicalWrite.ConvertDateOnly(System.ReadOnlySpan<System.DateOnly> source, System.Span<int> destination) -> void
static ParquetSharp.LogicalWrite.ConvertDateOnly(System.ReadOnlySpan<System.DateOnly?> source, System.Span<short> defLevels, System.Span<int> destination, short nullLevel) -> void
static ParquetSharp.LogicalWrite.ConvertHalf(System.ReadOnlySpan<System.Half> source, System.Span<ParquetSharp.FixedLenByteArray> destination, ParquetSharp.ByteBuffer! byteBuffer) -> void
static ParquetSharp.LogicalWrite.ConvertHalf(System.ReadOnlySpan<System.Half?> source, System.Span<short> defLevels, System.Span<ParquetSharp.FixedLenByteArray> destination, short nullLevel, ParquetSharp.ByteBuffer! byteBuffer) -> void
static ParquetSharp.LogicalWrite.ConvertTimeOnlyMicros(System.ReadOnlySpan<System.TimeOnly> source, System.Span<long> destination) -> void
static ParquetSharp.LogicalWrite.ConvertTimeOnlyMicros(System.ReadOnlySpan<System.TimeOnly?> source, System.Span<short> defLevels, System.Span<long> destination, short nullLevel) -> void
static ParquetSharp.LogicalWrite.ConvertTimeOnlyMillis(System.ReadOnlySpan<System.TimeOnly> source, System.Span<int> destination) -> void
static ParquetSharp.LogicalWrite.ConvertTimeOnlyMillis(System.ReadOnlySpan<System.TimeOnly?> source, System.Span<short> defLevels, System.Span<int> destination, short nullLevel) -> void
static ParquetSharp.LogicalWrite.FromDateOnly(System.DateOnly source) -> int
static ParquetSharp.LogicalWrite.FromTimeOnlyMicros(System.TimeOnly source) -> long
static ParquetSharp.LogicalWrite.FromTimeOnlyMillis(System.TimeOnly source) -> int
1 change: 1 addition & 0 deletions csharp/PublicAPI/net8.0/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#nullable enable
11 changes: 11 additions & 0 deletions csharp/PublicAPI/netstandard2.1/PublicAPI.Shipped.txt
Original file line number Diff line number Diff line change
@@ -1 +1,12 @@
#nullable enable
ParquetSharp.ByteArray.ByteArray(System.IntPtr pointer, int length) -> void
ParquetSharp.FixedLenByteArray.FixedLenByteArray(System.IntPtr pointer) -> void
ParquetSharp.IO.Buffer.Buffer(System.IntPtr data, long size) -> void
ParquetSharp.IO.Buffer.Data.get -> System.IntPtr
ParquetSharp.IO.Buffer.MutableData.get -> System.IntPtr
ParquetSharp.IO.OutputStream.OutputStream(System.IntPtr handle) -> void
ParquetSharp.IO.RandomAccessFile.RandomAccessFile(System.IntPtr handle) -> void
ParquetSharp.LogicalType.LogicalType(System.IntPtr handle) -> void
ParquetSharp.Schema.Node.Node(System.IntPtr handle) -> void
readonly ParquetSharp.ByteArray.Pointer -> System.IntPtr
readonly ParquetSharp.FixedLenByteArray.Pointer -> System.IntPtr
Loading
Loading