Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
8c438d8
bump substrait submodule to v0.99.0
anasik Aug 2, 2026
7923417
target net10, update Protobuf and Grpc packages
anasik Aug 2, 2026
8407535
add .editorconfig
anasik Aug 2, 2026
4445c4d
migrate sln to slnx, add test project, add ci workflow
anasik Aug 2, 2026
11e7189
Fix namespace in Relation/*
anasik Aug 3, 2026
8667ae5
Filescoped namespace and fixed import
anasik Aug 3, 2026
6fc9661
Simple and Compound Types
anasik Aug 3, 2026
5c7abea
trailing newline false
anasik Aug 3, 2026
dc9755a
remove trailing /n
anasik Aug 3, 2026
8195f41
Fix bad namespace import in SubstraitRelVisitorTests.cs
anasik Aug 3, 2026
627cf91
Add default implementations in ITypeVisitor
anasik Aug 7, 2026
6ec4b90
Rename namespaces from Substrait.Core.Type to Substrait.Core.Types fo…
anasik Aug 7, 2026
4b4441e
Apply suggestion from @nielspardon
anasik Aug 8, 2026
f13942a
Argument Validation in TypeCreator
anasik Aug 8, 2026
492e47d
Update CI configuration and add project files for code style enforcement
anasik Aug 7, 2026
d5ce487
Add missing newlines at the end of multiple files
anasik Aug 7, 2026
2dc1d2d
upgrade to xunit v3, drop coverlet
anasik Aug 7, 2026
cfab686
Make SubstraitRelVisitor's Visit/Fallback overridable and use Argumen…
anasik Aug 8, 2026
0f6812d
Return concrete types from every TypeCreator factory method instead…
anasik Aug 8, 2026
52ec562
Enable compilation of Protobuf files in Substrait.Core.csproj
anasik Aug 8, 2026
0173627
remove trailing /n
anasik Aug 8, 2026
fa4793e
⏺ Fix Struct/Func to defensively copy Fields/ParameterTypes on init, …
anasik Aug 8, 2026
82db270
Add missing type-system tests from review
anasik Aug 8, 2026
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
15 changes: 15 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
root = true

[*]
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

[*.cs]
charset = utf-8-bom
indent_style = space
indent_size = 2

[*.{csproj,props,targets,slnx,json,yml,yaml}]
indent_style = space
indent_size = 2
Comment thread
anasik marked this conversation as resolved.
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
* text=auto eol=lf
*.png binary
39 changes: 39 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: CI

on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build-and-test:
runs-on: ubuntu-latest
Comment thread
anasik marked this conversation as resolved.
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
with:
submodules: recursive

- uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4
with:
dotnet-version: "10.0.x"

- name: Restore
run: dotnet restore substrait-csharp.slnx

- name: Check code style
run: dotnet format substrait-csharp.slnx --verify-no-changes
Comment thread
anasik marked this conversation as resolved.

- name: Build
run: dotnet build substrait-csharp.slnx --no-restore --configuration Release

- name: Test
run: dotnet test substrait-csharp.slnx --no-build --configuration Release
Comment thread
anasik marked this conversation as resolved.
6 changes: 6 additions & 0 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<Project>
<PropertyGroup>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
<AnalysisLevel>latest-recommended</AnalysisLevel>
</PropertyGroup>
</Project>
6 changes: 6 additions & 0 deletions global.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"sdk": {
"version": "10.0.100",
"rollForward": "latestMinor"
}
}
13 changes: 6 additions & 7 deletions src/Substrait.Core/Relation/Aggregate.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
namespace Substrait.Relation
namespace Substrait.Core.Relation;

/// <summary>
/// The AGGREGATE relational operator representing GROUP BY semantics, <see cref="Protobuf.AggregateRel"/>
/// </summary>
public class Aggregate : Rel
{
/// <summary>
/// The AGGREGATE relational operator representing GROUP BY semantics, <see cref="Protobuf.AggregateRel"/>
/// </summary>
public class Aggregate : Rel
{
}
}
13 changes: 6 additions & 7 deletions src/Substrait.Core/Relation/Fetch.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
namespace Substrait.Relation
namespace Substrait.Core.Relation;

/// <summary>
/// The FETCH relational operator representing LIMIT or TOP semantics, <see cref="Protobuf.FetchRel"/>
/// </summary>
public class Fetch : Rel
{
/// <summary>
/// The FETCH relational operator representing LIMIT or TOP semantics, <see cref="Protobuf.FetchRel"/>
/// </summary>
public class Fetch : Rel
{
}
}
13 changes: 6 additions & 7 deletions src/Substrait.Core/Relation/Filter.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
namespace Substrait.Relation
namespace Substrait.Core.Relation;

/// <summary>
/// The FILTER relational operator, <see cref="Protobuf.FilterRel"/>
/// </summary>
public class Filter : Rel
{
/// <summary>
/// The FILTER relational operator, <see cref="Protobuf.FilterRel"/>
/// </summary>
public class Filter : Rel
{
}
}
13 changes: 6 additions & 7 deletions src/Substrait.Core/Relation/Join.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
namespace Substrait.Relation
namespace Substrait.Core.Relation;

/// <summary>
/// The binary JOIN relational operator, <see cref="Protobuf.JoinRel"/>
/// </summary>
public class Join : Rel
{
/// <summary>
/// The binary JOIN relational operator, <see cref="Protobuf.JoinRel"/>
/// </summary>
public class Join : Rel
{
}
}
13 changes: 6 additions & 7 deletions src/Substrait.Core/Relation/Project.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
namespace Substrait.Relation
namespace Substrait.Core.Relation;

/// <summary>
/// The PROJECT relational operator representing calculated expressions of fields, <see cref="Protobuf.ProjectRel"/>
/// </summary>
public class Project : Rel
{
/// <summary>
/// The PROJECT relational operator representing calculated expressions of fields, <see cref="Protobuf.ProjectRel"/>
/// </summary>
public class Project : Rel
{
}
}
13 changes: 6 additions & 7 deletions src/Substrait.Core/Relation/Read.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
namespace Substrait.Relation
namespace Substrait.Core.Relation;

/// <summary>
/// The READ relational operator representing data scan, <see cref="Protobuf.ReadRel"/>
/// </summary>
public class Read : Rel
{
/// <summary>
/// The READ relational operator representing data scan, <see cref="Protobuf.ReadRel"/>
/// </summary>
public class Read : Rel
{
}
}
13 changes: 6 additions & 7 deletions src/Substrait.Core/Relation/Rel.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
namespace Substrait.Relation
namespace Substrait.Core.Relation;

/// <summary>
/// Base type for all relational operators, <see cref="Protobuf.Rel"/>
/// </summary>
public abstract class Rel
{
/// <summary>
/// Base type for all relational operators, <see cref="Protobuf.Rel"/>
/// </summary>
abstract public class Rel
{
}
}
13 changes: 6 additions & 7 deletions src/Substrait.Core/Relation/Sort.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
namespace Substrait.Relation
namespace Substrait.Core.Relation;

/// <summary>
/// The SORT relational operator representing ORDER BY semantics, <see cref="Protobuf.SortRel"/>
/// </summary>
public class Sort : Rel
{
/// <summary>
/// The SORT relational operator representing ORDER BY semantics, <see cref="Protobuf.SortRel"/>
/// </summary>
public class Sort : Rel
{
}
}
8 changes: 4 additions & 4 deletions src/Substrait.Core/Substrait.Core.csproj
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
Comment thread
anasik marked this conversation as resolved.
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<ProtoBufNet_Debug>True</ProtoBufNet_Debug>
</PropertyGroup>

<ItemGroup>
<Protobuf Include="../../substrait/proto/substrait/**/*.proto" ProtoRoot="../../substrait/proto/" CompileOutputs="false" OutputDir="generated/proto/" GrpcServices="None" />
<Protobuf Include="../../substrait/proto/substrait/**/*.proto" ProtoRoot="../../substrait/proto/" CompileOutputs="true" OutputDir="generated/proto/" GrpcServices="None" />
</ItemGroup>


<ItemGroup>
<PackageReference Include="Google.Protobuf" Version="3.21.10" />
<PackageReference Include="Grpc.Tools" Version="2.50.0">
<PackageReference Include="Google.Protobuf" Version="3.35.1" />
<PackageReference Include="Grpc.Tools" Version="2.83.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
Expand Down
Loading