Skip to content
This repository has been archived by the owner on Feb 18, 2024. It is now read-only.

Commit

Permalink
Cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
jorgecarleitao committed Feb 17, 2022
1 parent 5050ded commit 8b1c081
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 74 deletions.
2 changes: 1 addition & 1 deletion arrow-odbc-integration-testing/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ edition = "2021"
arrow2 = { path = "../", default-features = false, features = ["io_odbc"] }
lazy_static = "1.4.0"
# Function name macro is used to ensure unique table names in test
stdext = "0.3.1"
stdext = "0.3.1"
11 changes: 0 additions & 11 deletions arrow-odbc-integration-testing/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,3 @@ services:
environment:
- MSSQL_SA_PASSWORD=My@Test@Password1
command: ["/opt/mssql/bin/sqlservr", "--accept-eula", "--reset-sa-password"]

dev:
build: .
volumes:
- .:/workspace:cached

# Overrides default command so things don't shut down after the process ends.
command: sleep infinity

# Runs app on the same network as the database container, allows "forwardPorts" in devcontainer.json function.
network_mode: service:mssql
30 changes: 0 additions & 30 deletions arrow-odbc-integration-testing/dockerfile

This file was deleted.

76 changes: 44 additions & 32 deletions src/io/odbc/deserialize.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,38 +28,52 @@ pub fn deserialize(column: AnyColumnView, data_type: DataType) -> Box<dyn Array>
AnyColumnView::Date(_) => todo!(),
AnyColumnView::Time(_) => todo!(),
AnyColumnView::Timestamp(_) => todo!(),
AnyColumnView::F64(values) => Box::new(p(data_type, values)) as _,
AnyColumnView::F32(values) => Box::new(p(data_type, values)) as _,
AnyColumnView::I8(values) => Box::new(p(data_type, values)) as _,
AnyColumnView::I16(values) => Box::new(p(data_type, values)) as _,
AnyColumnView::I32(values) => Box::new(p(data_type, values)) as _,
AnyColumnView::I64(values) => Box::new(p(data_type, values)) as _,
AnyColumnView::U8(values) => Box::new(p(data_type, values)) as _,
AnyColumnView::F64(values) => Box::new(primitive(data_type, values)) as _,
AnyColumnView::F32(values) => Box::new(primitive(data_type, values)) as _,
AnyColumnView::I8(values) => Box::new(primitive(data_type, values)) as _,
AnyColumnView::I16(values) => Box::new(primitive(data_type, values)) as _,
AnyColumnView::I32(values) => Box::new(primitive(data_type, values)) as _,
AnyColumnView::I64(values) => Box::new(primitive(data_type, values)) as _,
AnyColumnView::U8(values) => Box::new(primitive(data_type, values)) as _,
AnyColumnView::Bit(values) => Box::new(bool(data_type, values)) as _,
AnyColumnView::NullableDate(_) => todo!(),
AnyColumnView::NullableTime(_) => todo!(),
AnyColumnView::NullableTimestamp(_) => todo!(),
AnyColumnView::NullableF64(slice) => {
Box::new(p_optional(data_type, slice.values(), slice.indicators())) as _
}
AnyColumnView::NullableF32(slice) => {
Box::new(p_optional(data_type, slice.values(), slice.indicators())) as _
}
AnyColumnView::NullableI8(slice) => {
Box::new(p_optional(data_type, slice.values(), slice.indicators())) as _
}
AnyColumnView::NullableI16(slice) => {
Box::new(p_optional(data_type, slice.values(), slice.indicators())) as _
}
AnyColumnView::NullableI32(slice) => {
Box::new(p_optional(data_type, slice.values(), slice.indicators())) as _
}
AnyColumnView::NullableI64(slice) => {
Box::new(p_optional(data_type, slice.values(), slice.indicators())) as _
}
AnyColumnView::NullableU8(slice) => {
Box::new(p_optional(data_type, slice.values(), slice.indicators())) as _
}
AnyColumnView::NullableF64(slice) => Box::new(primitive_optional(
data_type,
slice.values(),
slice.indicators(),
)) as _,
AnyColumnView::NullableF32(slice) => Box::new(primitive_optional(
data_type,
slice.values(),
slice.indicators(),
)) as _,
AnyColumnView::NullableI8(slice) => Box::new(primitive_optional(
data_type,
slice.values(),
slice.indicators(),
)) as _,
AnyColumnView::NullableI16(slice) => Box::new(primitive_optional(
data_type,
slice.values(),
slice.indicators(),
)) as _,
AnyColumnView::NullableI32(slice) => Box::new(primitive_optional(
data_type,
slice.values(),
slice.indicators(),
)) as _,
AnyColumnView::NullableI64(slice) => Box::new(primitive_optional(
data_type,
slice.values(),
slice.indicators(),
)) as _,
AnyColumnView::NullableU8(slice) => Box::new(primitive_optional(
data_type,
slice.values(),
slice.indicators(),
)) as _,
AnyColumnView::NullableBit(slice) => {
Box::new(bool_optional(data_type, slice.values(), slice.indicators())) as _
}
Expand All @@ -70,11 +84,11 @@ fn bitmap(values: &[isize]) -> Option<Bitmap> {
MutableBitmap::from_trusted_len_iter(values.iter().map(|x| *x != -1)).into()
}

fn p<T: NativeType>(data_type: DataType, values: &[T]) -> PrimitiveArray<T> {
fn primitive<T: NativeType>(data_type: DataType, values: &[T]) -> PrimitiveArray<T> {
PrimitiveArray::from_data(data_type, values.to_vec().into(), None)
}

fn p_optional<T: NativeType>(
fn primitive_optional<T: NativeType>(
data_type: DataType,
values: &[T],
indicators: &[isize],
Expand Down Expand Up @@ -126,8 +140,6 @@ fn binary_generic(
values.extend_from_slice(&slice[offset..offset + len])
});

// this O(N) check is not necessary

(offsets.into(), values.into(), validity.into())
}

Expand Down

0 comments on commit 8b1c081

Please sign in to comment.