ArrowQuery.Interop 1.0.9

dotnet add package ArrowQuery.Interop --version 1.0.9
                    
NuGet\Install-Package ArrowQuery.Interop -Version 1.0.9
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ArrowQuery.Interop" Version="1.0.9" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ArrowQuery.Interop" Version="1.0.9" />
                    
Directory.Packages.props
<PackageReference Include="ArrowQuery.Interop" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ArrowQuery.Interop --version 1.0.9
                    
#r "nuget: ArrowQuery.Interop, 1.0.9"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ArrowQuery.Interop@1.0.9
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ArrowQuery.Interop&version=1.0.9
                    
Install as a Cake Addin
#tool nuget:?package=ArrowQuery.Interop&version=1.0.9
                    
Install as a Cake Tool

using System; using System.IO; using System.Collections.Generic; using Apache.Arrow; using Apache.Arrow.Ipc; using ArrowQuery.Interop; using Apache.Arrow.Types;

class Program { static void Main(string[] args) { // Create sample Arrow data in memory var idArray = new Int32Array.Builder().Append(1).Append(2).Append(3).Build(); var nameArray = new StringArray.Builder().Append("Alice").Append("Bob").Append("Carol").Build(); var cityArray = new StringArray.Builder().Append("New York").Append("Los Angeles").Append("Chicago").Build();

    var fields1 = new List<Field>
    {
        new Field("id", Int32Type.Default, false),
        new Field("name", StringType.Default, false)
    };


    var fields2 = new List<Field>
    {
        new Field("id", Int32Type.Default, false),
        new Field("city", StringType.Default, false)
    };

    var schema1 = new Schema(fields1, new Dictionary<string, string>());

    var schema2 = new Schema(fields2, new Dictionary<string, string>());

    var recordBatch1 = new RecordBatch.Builder()
        .Append("id", true, idArray)
        .Append("name", true, nameArray)
        .Build();

    var recordBatch2 = new RecordBatch.Builder()
        .Append("id", true, idArray)
        .Append("city", true, cityArray)
        .Build();

    Apache.Arrow.Compression.CompressionCodecFactory factory = new Apache.Arrow.Compression.CompressionCodecFactory();

    var options = new IpcOptions
    {
        CompressionCodec = CompressionCodecType.Zstd,
        CompressionLevel = 3,
        CompressionCodecFactory = factory,
    };

    // Serialize to Arrow IPC bytes
    byte[] arrowBytes1;
    using (var ms = new MemoryStream())
    using (var writer = new ArrowStreamWriter(ms, schema1, false, options))
    {
        writer.WriteRecordBatchAsync(recordBatch1).GetAwaiter().GetResult();
        writer.WriteEndAsync().GetAwaiter().GetResult();
        arrowBytes1 = ms.ToArray();
    }

    byte[] arrowBytes2;
    using (var ms = new MemoryStream())
    using (var writer = new ArrowStreamWriter(ms, schema2, false, options))
    {
        writer.WriteRecordBatchAsync(recordBatch2).GetAwaiter().GetResult();
        writer.WriteEndAsync().GetAwaiter().GetResult();
        arrowBytes2 = ms.ToArray();
    }

    using (ArrowQuery.Interop.ArrowDatabase arrowDb = new ArrowDatabase())
    {
        arrowDb.AddTable(arrowBytes1, "batch1");
        arrowDb.AddTable(arrowBytes2, "batch2");
        string sql = "SELECT b1.*, b2.* FROM batch1 b1 join batch2 b2 ON b1.id=b2.id";
        var json = arrowDb.Query(sql);
        Console.WriteLine("Query Result (JSON):");
        Console.WriteLine(json);
    }
}

}

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.9 232 5/22/2025
1.0.8 202 5/1/2025