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
21 changes: 15 additions & 6 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.2.1](https://github.com/mag1cfrog/arrow-tiberius/compare/v0.2.0...v0.2.1) - 2026-07-21
## [0.3.0](https://github.com/mag1cfrog/arrow-sql-server/compare/v0.2.1...v0.3.0) - 2026-08-01

### Changed

- rename the package from `arrow-tiberius` to `arrow-sql-server` and the Rust import from `arrow_tiberius` to `arrow_sql_server`
- rename project-owned tracing, environment, SQL object, Docker, test, and benchmark namespaces to Arrow SQL Server forms
- require consumers to update Cargo dependencies and Rust imports directly; no compatibility package, alias, or re-export is provided
- keep existing `arrow-tiberius` releases available on crates.io as historical versions while new releases continue as `arrow-sql-server`

## [0.2.1](https://github.com/mag1cfrog/arrow-sql-server/compare/v0.2.0...v0.2.1) - 2026-07-21

### Added

- expose detailed SQL Server bulk finalization tracing ([#183](https://github.com/mag1cfrog/arrow-tiberius/pull/183))
- expose detailed SQL Server bulk finalization tracing ([#183](https://github.com/mag1cfrog/arrow-sql-server/pull/183))

### Other

- refresh public docs for 0.2 profiles ([#181](https://github.com/mag1cfrog/arrow-tiberius/pull/181))
- refresh public docs for 0.2 profiles ([#181](https://github.com/mag1cfrog/arrow-sql-server/pull/181))

## [0.2.0](https://github.com/mag1cfrog/arrow-tiberius/compare/v0.1.6...v0.2.0) - 2026-07-07
## [0.2.0](https://github.com/mag1cfrog/arrow-sql-server/compare/v0.1.6...v0.2.0) - 2026-07-07

### Added

Expand All @@ -31,13 +40,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- *(ci)* run release-plz with a Rust toolchain compatible with semver checks
- *(write)* allow DirectRawBulk to write non-null Arrow timestamps as SQL Server datetime

## [0.1.6](https://github.com/mag1cfrog/arrow-tiberius/compare/v0.1.5...v0.1.6) - 2026-07-04
## [0.1.6](https://github.com/mag1cfrog/arrow-sql-server/compare/v0.1.5...v0.1.6) - 2026-07-04

### Added

- *(write)* support target-aware timestamp writes for datetime types

## [0.1.5](https://github.com/mag1cfrog/arrow-tiberius/compare/v0.1.4...v0.1.5) - 2026-07-03
## [0.1.5](https://github.com/mag1cfrog/arrow-sql-server/compare/v0.1.4...v0.1.5) - 2026-07-03

### Fixed

Expand Down
9 changes: 5 additions & 4 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,14 @@ panic = "deny"

[package]
name = "arrow-sql-server"
version = "0.2.1"
version = "0.3.0"
edition = "2024"
rust-version = "1.88"
license = "Apache-2.0"
repository = "https://github.com/mag1cfrog/arrow-tiberius"
documentation = "https://docs.rs/arrow-tiberius"
description = "Apache Arrow and SQL Server bridge through Tiberius"
repository = "https://github.com/mag1cfrog/arrow-sql-server"
documentation = "https://docs.rs/arrow-sql-server"
homepage = "https://github.com/mag1cfrog/arrow-sql-server"
description = "High-performance Apache Arrow RecordBatch bulk writer for Microsoft SQL Server."
readme = "README.md"
keywords = ["arrow", "sql-server", "tiberius", "tds"]
categories = ["database"]
Expand Down
28 changes: 14 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# arrow-tiberius
# Arrow SQL Server

[![Crates.io](https://img.shields.io/crates/v/arrow-tiberius.svg)](https://crates.io/crates/arrow-tiberius)
[![Docs.rs](https://docs.rs/arrow-tiberius/badge.svg)](https://docs.rs/arrow-tiberius)
[![Crates.io](https://img.shields.io/crates/v/arrow-sql-server.svg)](https://crates.io/crates/arrow-sql-server)
[![Docs.rs](https://docs.rs/arrow-sql-server/badge.svg)](https://docs.rs/arrow-sql-server)
[![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE)

`arrow-tiberius` bridges Apache Arrow and Microsoft SQL Server through the
Tiberius TDS driver.
Arrow SQL Server is a high-performance Apache Arrow `RecordBatch` bulk writer
for Microsoft SQL Server, built on the Tiberius TDS driver.

The current API focuses on Arrow-to-SQL Server writes:

Expand All @@ -21,7 +21,7 @@ SQL Server-to-Arrow reads are reserved for a later release.

```toml
[dependencies]
arrow-tiberius = "0.2"
arrow-sql-server = "0.3"
```

## Quick Start
Expand All @@ -30,12 +30,12 @@ Plan an Arrow schema and render SQL Server DDL:

```rust
use arrow_schema::{DataType, Field, Schema};
use arrow_tiberius::{
use arrow_sql_server::{
CompatibilityLevel, MssqlProfile, MssqlVersion, PlanOptions, TableName,
create_table_sql_from_mappings,
};

fn main() -> arrow_tiberius::Result<()> {
fn main() -> arrow_sql_server::Result<()> {
let schema = Schema::new(vec![
Field::new("id", DataType::Int64, false),
Field::new("name", DataType::Utf8, true),
Expand All @@ -59,15 +59,15 @@ Write a batch to an existing SQL Server table:

```rust
use arrow_array::RecordBatch;
use arrow_tiberius::{
use arrow_sql_server::{
CompatibilityLevel, MssqlProfile, MssqlVersion, PlanOptions, TableName,
WriteBackend, WriteOptions, connect_mssql_client_from_ado_string,
};

async fn write_batch(
connection_string: &str,
batch: &RecordBatch,
) -> arrow_tiberius::Result<()> {
) -> arrow_sql_server::Result<()> {
let mut client = connect_mssql_client_from_ado_string(connection_string).await?;
let profile = MssqlProfile::new(
MssqlVersion::SqlServer2022,
Expand Down Expand Up @@ -130,7 +130,7 @@ parity tests.

## Observability

`arrow-tiberius` emits structured spans and events through `tracing` for schema
Arrow SQL Server emits structured spans and events through `tracing` for schema
planning, writer initialization, batch writes, direct raw backend summaries,
and writer finish. It never installs a subscriber.

Expand Down Expand Up @@ -169,7 +169,7 @@ Choose the `MssqlProfile` that matches the SQL Server version and database
compatibility level you plan to write against:

```rust
use arrow_tiberius::{CompatibilityLevel, MssqlProfile, MssqlVersion};
use arrow_sql_server::{CompatibilityLevel, MssqlProfile, MssqlVersion};

let profile = MssqlProfile::new(
MssqlVersion::SqlServer2022,
Expand All @@ -183,7 +183,7 @@ version/compatibility-level pairs. Legacy convenience constructors such as
`MssqlProfile::sql_server_2017_compat_100()` remain available for callers that
target those exact environments.

`arrow-tiberius` depends on the published `tiberius-raw-bulk` package as the
Arrow SQL Server depends on the published `tiberius-raw-bulk` package as the
crate name `tiberius` and owns that compatibility boundary internally:

```toml
Expand All @@ -194,7 +194,7 @@ tiberius = { package = "tiberius-raw-bulk", version = "=0.12.3-raw-bulk.15", def
] }
```

Downstream crates should normally depend only on `arrow-tiberius` and construct
Downstream crates should normally depend only on `arrow-sql-server` and construct
SQL Server clients through `connect_mssql_client_from_ado_string` or
`ConnectedMssqlClient`.

Expand Down
2 changes: 1 addition & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Documentation

This directory contains maintained user and maintainer documentation for
`arrow-tiberius`.
Arrow SQL Server.

## User Guides

Expand Down
22 changes: 11 additions & 11 deletions docs/observability.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Observability

This document describes the `arrow-tiberius` tracing contract for applications
This document describes the Arrow SQL Server tracing contract for applications
that plan Arrow schemas, write Arrow `RecordBatch` values to SQL Server, or wrap
those writes inside a higher-level workflow.

`arrow-tiberius` emits spans and events through the [`tracing`] crate. It does
Arrow SQL Server emits spans and events through the [`tracing`] crate. It does
not install a global subscriber, choose an output sink, configure filters, or
send telemetry to a vendor. Applications own subscriber setup and decide where
events go.
Expand All @@ -14,7 +14,7 @@ events go.
## Subscriber Ownership

Library code only emits telemetry. It is silent unless the application has a
subscriber installed by the time `arrow-tiberius` code runs.
subscriber installed by the time Arrow SQL Server code runs.

For a small application or test, one possible setup is:

Expand All @@ -39,7 +39,7 @@ fn init_tracing_for_example() {
Production applications should choose their own subscriber, filter policy, and
export pipeline. For example, a service might send `tracing` data through an
OpenTelemetry layer to Grafana, Datadog, or another backend. That setup belongs
to the application, not to `arrow-tiberius`.
to the application, not to Arrow SQL Server.

## Target And Levels

Expand All @@ -59,7 +59,7 @@ tiberius_raw_bulk::protocol
That protocol target covers lower-level phases such as connection setup, TLS
negotiation, login, bulk-load protocol operations, packet write summaries,
server token summaries, and SQL Browser named-instance resolution. It is emitted
by `tiberius-raw-bulk`, not re-wrapped by `arrow-tiberius`.
by `tiberius-raw-bulk`, not re-wrapped by Arrow SQL Server.

Recommended filters:

Expand Down Expand Up @@ -118,7 +118,7 @@ table, or column names.

## Redaction Contract

`arrow-tiberius` tracing does not emit:
Arrow SQL Server tracing does not emit:

- SQL Server connection strings.
- Passwords, access tokens, or authentication material.
Expand All @@ -142,7 +142,7 @@ paths, not default end-user output.
## Downstream Workflow Spans

Applications should add workflow, source, and output context outside
`arrow-tiberius`. The crate cannot know job ids, source aliases, retry ids,
Arrow SQL Server. The crate cannot know job ids, source aliases, retry ids,
or orchestrator output names.

Use a parent span around writer calls:
Expand Down Expand Up @@ -194,13 +194,13 @@ semantics.

When a workflow writes multiple outputs, create one parent span per output or
per logical workflow step. Keep source-specific context in the application span
or its fields rather than expecting `arrow-tiberius` to infer it.
or its fields rather than expecting Arrow SQL Server to infer it.

## Known Gaps

- `arrow-tiberius` does not install a subscriber or exporter.
- `arrow-tiberius` does not emit row-level telemetry.
- `arrow-tiberius` does not emit raw packet bytes, raw row payload bytes, or
- Arrow SQL Server does not install a subscriber or exporter.
- Arrow SQL Server does not emit row-level telemetry.
- Arrow SQL Server does not emit raw packet bytes, raw row payload bytes, or
arbitrary SQL text.
- Direct raw writer events report safe row and byte summaries. Lower-level
packet summaries are emitted by `tiberius-raw-bulk` protocol tracing.
Expand Down
2 changes: 1 addition & 1 deletion docs/type-mapping.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Arrow to SQL Server Type Mapping

This page documents the current Arrow-to-SQL Server planning surface for
`arrow-tiberius`.
Arrow SQL Server.

The direct raw writer is the primary optimized writer. The baseline writer is
still supported as a compatibility and reference path. The tables below show
Expand Down
4 changes: 2 additions & 2 deletions src/error.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//! Error types for `arrow-tiberius`.
//! Error types for Arrow SQL Server.

use std::fmt::{self, Write as _};

Expand Down Expand Up @@ -109,7 +109,7 @@ impl<'a> ErrorInfo<'a> {
}
}

/// Error type for `arrow-tiberius` operations.
/// Error type for Arrow SQL Server operations.
#[derive(Debug, Snafu)]
#[non_exhaustive]
pub enum Error {
Expand Down
16 changes: 8 additions & 8 deletions src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
//! Apache Arrow and SQL Server bridge through Tiberius.
//! High-performance Apache Arrow `RecordBatch` bulk writer for Microsoft SQL Server.
//!
//! `arrow-tiberius` bridges Apache Arrow and Microsoft SQL Server through the
//! Arrow SQL Server bridges Apache Arrow and Microsoft SQL Server through the
//! Tiberius TDS driver. The crate is designed around a bidirectional boundary:
//! Arrow schemas and [`RecordBatch`] values can be planned and written to SQL
//! Server, and future read-side APIs can map SQL Server metadata and rows back
Expand Down Expand Up @@ -100,7 +100,7 @@
//!
//! ```toml
//! [dependencies]
//! arrow-tiberius = "0.2"
//! arrow-sql-server = "0.3"
//! ```
//!
//! Depending on upstream `tiberius` separately creates a distinct crate type and
Expand All @@ -118,10 +118,10 @@
//!
//! # More Documentation
//!
//! - [Arrow to SQL Server Type Mapping](https://github.com/mag1cfrog/arrow-tiberius/blob/main/docs/type-mapping.md)
//! - [Observability](https://github.com/mag1cfrog/arrow-tiberius/blob/main/docs/observability.md)
//! - [Integration Tests](https://github.com/mag1cfrog/arrow-tiberius/blob/main/docs/integration-tests.md)
//! - [Writer Benchmarks](https://github.com/mag1cfrog/arrow-tiberius/blob/main/docs/benchmarks.md)
//! - [Arrow to SQL Server Type Mapping](https://github.com/mag1cfrog/arrow-sql-server/blob/main/docs/type-mapping.md)
//! - [Observability](https://github.com/mag1cfrog/arrow-sql-server/blob/main/docs/observability.md)
//! - [Integration Tests](https://github.com/mag1cfrog/arrow-sql-server/blob/main/docs/integration-tests.md)
//! - [Writer Benchmarks](https://github.com/mag1cfrog/arrow-sql-server/blob/main/docs/benchmarks.md)

/// Arrow-side schema metadata.
pub mod arrow;
Expand All @@ -131,7 +131,7 @@ pub mod connection;
pub(crate) mod conversion;
/// Structured diagnostics for planning and writing.
pub mod diagnostic;
/// Error types for `arrow-tiberius`.
/// Error types for Arrow SQL Server.
pub mod error;
/// MSSQL-side schema metadata, identifiers, profile, and DDL helpers.
pub mod mssql;
Expand Down
2 changes: 1 addition & 1 deletion xtask/src/main.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//! Repository maintenance tasks for `arrow-tiberius`.
//! Repository maintenance tasks for Arrow SQL Server.

use std::env;
use std::ffi::OsString;
Expand Down