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: 4 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@
"name": "Check arrow2-0-16",
"run": "cargo check -p marrow --features arrow2-0-16"
},
{
"name": "Check arrow-55",
"run": "cargo check -p marrow --features arrow-55"
},
{
"name": "Check arrow-54",
"run": "cargo check -p marrow --features arrow-54"
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,10 @@
"name": "Check arrow2-0-16",
"run": "cargo check -p marrow --features arrow2-0-16"
},
{
"name": "Check arrow-55",
"run": "cargo check -p marrow --features arrow-55"
},
{
"name": "Check arrow-54",
"run": "cargo check -p marrow --features arrow-54"
Expand Down
68 changes: 64 additions & 4 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions Changes.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Change log

## 0.2.3

- Add `arrow=55` support

## 0.2.2

- Add helpers to work with bit arrays
Expand Down
11 changes: 8 additions & 3 deletions marrow/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
edition = "2021"

name = "marrow"
version = "0.2.2"
version = "0.2.3"
authors = ["Christopher Prohm <mail@cprohm.de>"]
description = "Minimalist Arrow interop"
readme = "../Readme.md"
Expand All @@ -13,7 +13,7 @@ rust-version = "1.70.0"

[package.metadata.docs.rs]
# arrow-version:replace: features = ["arrow2-0-17", "arrow-{version}", "serde"]
features = ["arrow2-0-17", "arrow-54", "serde"]
features = ["arrow2-0-17", "arrow-55", "serde"]

[features]
default = []
Expand All @@ -23,6 +23,7 @@ serde = ["dep:serde"]

# support for different arrow versions
# arrow-version:insert: arrow-{version} = ["dep:arrow-array-{version}", "dep:arrow-schema-{version}", "dep:arrow-data-{version}", "dep:arrow-buffer-{version}"]
arrow-55 = ["dep:arrow-array-55", "dep:arrow-schema-55", "dep:arrow-data-55", "dep:arrow-buffer-55"]
arrow-54 = ["dep:arrow-array-54", "dep:arrow-schema-54", "dep:arrow-data-54", "dep:arrow-buffer-54"]
arrow-53 = ["dep:arrow-array-53", "dep:arrow-schema-53", "dep:arrow-data-53", "dep:arrow-buffer-53"]
arrow-52 = ["dep:arrow-array-52", "dep:arrow-schema-52", "dep:arrow-data-52", "dep:arrow-buffer-52"]
Expand Down Expand Up @@ -53,6 +54,7 @@ half = { version = "2", default-features = false }
serde = { version = "1.0", default-features = false, features = ["std", "derive"], optional = true }

# arrow-version:insert: arrow-array-{version} = {{ package = "arrow-array", version = "{version}", optional = true, default-features = false }}
arrow-array-55 = { package = "arrow-array", version = "55", optional = true, default-features = false }
arrow-array-54 = { package = "arrow-array", version = "54", optional = true, default-features = false }
arrow-array-53 = { package = "arrow-array", version = "53", optional = true, default-features = false }
arrow-array-52 = { package = "arrow-array", version = "52", optional = true, default-features = false }
Expand All @@ -73,6 +75,7 @@ arrow-array-38 = { package = "arrow-array", version = "38", optional = true, def
arrow-array-37 = { package = "arrow-array", version = "37", optional = true, default-features = false }

# arrow-version:insert: arrow-buffer-{version} = {{ package = "arrow-buffer", version = "{version}", optional = true, default-features = false }}
arrow-buffer-55 = { package = "arrow-buffer", version = "55", optional = true, default-features = false }
arrow-buffer-54 = { package = "arrow-buffer", version = "54", optional = true, default-features = false }
arrow-buffer-53 = { package = "arrow-buffer", version = "53", optional = true, default-features = false }
arrow-buffer-52 = { package = "arrow-buffer", version = "52", optional = true, default-features = false }
Expand All @@ -93,6 +96,7 @@ arrow-buffer-38 = { package = "arrow-buffer", version = "38", optional = true, d
arrow-buffer-37 = { package = "arrow-buffer", version = "37", optional = true, default-features = false }

# arrow-version:insert: arrow-data-{version} = {{ package = "arrow-data", version="{version}", optional = true, default-features = false }}
arrow-data-55 = { package = "arrow-data", version="55", optional = true, default-features = false }
arrow-data-54 = { package = "arrow-data", version="54", optional = true, default-features = false }
arrow-data-53 = { package = "arrow-data", version="53", optional = true, default-features = false }
arrow-data-52 = { package = "arrow-data", version="52", optional = true, default-features = false }
Expand All @@ -113,6 +117,7 @@ arrow-data-38 = { package = "arrow-data", version="38", optional = true, default
arrow-data-37 = { package = "arrow-data", version="37", optional = true, default-features = false }

# arrow-version:insert: arrow-schema-{version} = {{ package = "arrow-schema", version = "{version}", optional = true, default-features = false }}
arrow-schema-55 = { package = "arrow-schema", version = "55", optional = true, default-features = false }
arrow-schema-54 = { package = "arrow-schema", version = "54", optional = true, default-features = false }
arrow-schema-53 = { package = "arrow-schema", version = "53", optional = true, default-features = false }
arrow-schema-52 = { package = "arrow-schema", version = "52", optional = true, default-features = false }
Expand All @@ -133,4 +138,4 @@ arrow-schema-38 = { package = "arrow-schema", version = "38", optional = true, d
arrow-schema-37 = { package = "arrow-schema", version = "37", optional = true, default-features = false }

arrow2-0-17 = { package = "arrow2", version = "0.17", optional = true, default-features = false }
arrow2-0-16 = { package = "arrow2", version = "0.16", optional = true, default-features = false }
arrow2-0-16 = { package = "arrow2", version = "0.16", optional = true, default-features = false }
9 changes: 5 additions & 4 deletions marrow/src/array.rs
Original file line number Diff line number Diff line change
Expand Up @@ -79,19 +79,20 @@ pub enum Array {
///
/// Interval arrays are not supported for `arrow2`.
MonthDayNanoInterval(PrimitiveArray<MonthDayNanoInterval>),
/// A `[u8]` array with `i32` offsets of strings
/// A `[u8]` array with `i32` offsets interpreted as strings
Utf8(BytesArray<i32>),
/// A `[u8]` array with `i64` offsets of strings
/// A `[u8]` array with `i64` offsets interpreted as strings
LargeUtf8(BytesArray<i64>),
/// TODO
/// A `[u8]` array interpreted as strings with support for small inlined slices and references
/// to external buffers
Utf8View(BytesViewArray),
/// A `[u8]` array with `i32` offsets
Binary(BytesArray<i32>),
/// A `[u8]` array with `i64` offsets
LargeBinary(BytesArray<i64>),
/// A `[u8; N]` array with `i32` offsets
FixedSizeBinary(FixedSizeBinaryArray),
/// TODO
/// A `[u8]` array with support for small inlined slices and references to external buffers
BinaryView(BytesViewArray),
/// An `i128` array of decimals
Decimal128(DecimalArray<i128>),
Expand Down
4 changes: 3 additions & 1 deletion marrow/src/datatypes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,7 @@ pub enum DataType {
Binary,
/// Byte arrays stored with `i64` offsets
LargeBinary,
/// Bytes stored with ì32` offsets or inline for small values
/// Bytes stored with `u32` offsets or inline for small values
BinaryView,
/// Byte arrays with fixed length
FixedSizeBinary(i32),
Expand Down Expand Up @@ -243,6 +243,8 @@ pub enum DataType {
/// Lists with a fixed number of element with `i32` offsets
FixedSizeList(Box<Field>, i32),
/// Maps
///
/// The field should be a struct field with two children for the keys and values.
Map(Box<Field>, bool),
/// Deduplicated values
///
Expand Down
5 changes: 5 additions & 0 deletions marrow/src/impl_arrow/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
#![cfg_attr(any(), rustfmt::skip)]

// arrow-version:insert: #[cfg(feature = "arrow-{version}")]{\n}mod arrow_{version} {{{\n} use {{arrow_array_{version} as arrow_array, arrow_buffer_{version} as arrow_buffer, arrow_data_{version} as arrow_data, arrow_schema_{version} as arrow_schema}};{\n} include!("impl_api_53.rs");{\n}}}
#[cfg(feature = "arrow-55")]
mod arrow_55 {
use {arrow_array_55 as arrow_array, arrow_buffer_55 as arrow_buffer, arrow_data_55 as arrow_data, arrow_schema_55 as arrow_schema};
include!("impl_api_53.rs");
}
#[cfg(feature = "arrow-54")]
mod arrow_54 {
use {arrow_array_54 as arrow_array, arrow_buffer_54 as arrow_buffer, arrow_data_54 as arrow_data, arrow_schema_54 as arrow_schema};
Expand Down
1 change: 1 addition & 0 deletions marrow/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@
//! | Feature | Arrow Version |
//! |---------------|---------------|
// arrow-version:insert: //! | `arrow-{version}` | `arrow={version}` |
//! | `arrow-55` | `arrow=55` |
//! | `arrow-54` | `arrow=54` |
//! | `arrow-53` | `arrow=53` |
//! | `arrow-52` | `arrow=52` |
Expand Down
3 changes: 3 additions & 0 deletions test_with_arrow/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ edition = "2021"
[features]

# arrow-version:insert: arrow-{version} = ["marrow/arrow-{version}", "dep:arrow-array-{version}", "dep:arrow-schema-{version}"]
arrow-55 = ["marrow/arrow-55", "dep:arrow-array-55", "dep:arrow-schema-55"]
arrow-54 = ["marrow/arrow-54", "dep:arrow-array-54", "dep:arrow-schema-54"]
arrow-53 = ["marrow/arrow-53", "dep:arrow-array-53", "dep:arrow-schema-53"]
arrow-52 = ["marrow/arrow-52", "dep:arrow-array-52", "dep:arrow-schema-52"]
Expand Down Expand Up @@ -36,6 +37,7 @@ serde_json = "1"
chrono = { version = "0.4", default-features = false }

# arrow-version:insert: arrow-array-{version} = {{ package = "arrow-array", version="{version}", optional = true, default-features = false }}
arrow-array-55 = { package = "arrow-array", version="55", optional = true, default-features = false }
arrow-array-54 = { package = "arrow-array", version="54", optional = true, default-features = false }
arrow-array-53 = { package = "arrow-array", version = "53.3.0", optional = true, default-features = false }
arrow-array-52 = { package = "arrow-array", version = "52", optional = true, default-features = false }
Expand All @@ -56,6 +58,7 @@ arrow-array-38 = { package = "arrow-array", version="38", optional = true, defau
arrow-array-37 = { package = "arrow-array", version="37", optional = true, default-features = false }

# arrow-version:insert: arrow-schema-{version} = {{ package = "arrow-schema", version = "{version}", optional = true, default-features = false, features = ["serde"] }}
arrow-schema-55 = { package = "arrow-schema", version = "55", optional = true, default-features = false, features = ["serde"] }
arrow-schema-54 = { package = "arrow-schema", version = "54", optional = true, default-features = false, features = ["serde"] }
arrow-schema-53 = { package = "arrow-schema", version = "53.3.0", optional = true, default-features = false, features = ["serde"] }
arrow-schema-52 = { package = "arrow-schema", version = "52", optional = true, default-features = false, features = ["serde"] }
Expand Down
1 change: 1 addition & 0 deletions test_with_arrow/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ macro_rules! define_test_module {
}

// arrow-version:insert: define_test_module!("arrow-{version}", arrow_{version}, arrow_array_{version}, arrow_schema_{version}, utils, arrays, data_types,struct_arrays, fixed_size_binary_arrays, intervals, union_arrays, views);
define_test_module!("arrow-55", arrow_55, arrow_array_55, arrow_schema_55, utils, arrays, data_types,struct_arrays, fixed_size_binary_arrays, intervals, union_arrays, views);
define_test_module!("arrow-54", arrow_54, arrow_array_54, arrow_schema_54, utils, arrays, data_types,struct_arrays, fixed_size_binary_arrays, intervals, union_arrays, views);
define_test_module!("arrow-53", arrow_53, arrow_array_53, arrow_schema_53, utils, arrays, data_types,struct_arrays, fixed_size_binary_arrays, intervals, union_arrays, views);
define_test_module!("arrow-52", arrow_52, arrow_array_52, arrow_schema_52, utils, arrays, data_types,struct_arrays, fixed_size_binary_arrays, intervals, union_arrays);
Expand Down
8 changes: 5 additions & 3 deletions x.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@

all_arrow_features = [
# arrow-version:insert: "arrow-{version}",
"arrow-55",
"arrow-55",
"arrow-54",
"arrow-53",
"arrow-52",
Expand Down Expand Up @@ -145,7 +147,7 @@ def _workflow_check_steps():

@cmd(help="Format the code")
def format():
_sh(f"{python} -m black {_q(__file__)}")
_sh(f"uv run --with 'ruff==0.11.5' ruff format {_q(__file__)}")
_sh("cargo fmt")

# the impl files are not found by cargo fmt
Expand Down Expand Up @@ -201,8 +203,8 @@ def doc(private=False, open=False):
f"""
cargo doc
--features {default_features}
{'--document-private-items' if private else ''}
{'--open' if open else ''}
{"--document-private-items" if private else ""}
{"--open" if open else ""}
""",
)

Expand Down