From de3075b23f177aa8541de261cc26cec038a2af59 Mon Sep 17 00:00:00 2001 From: Anthony Dodd Date: Wed, 14 Aug 2024 09:46:47 -0500 Subject: [PATCH] WIP: --- extension/src/stats_agg.rs | 20 +++++++++++++++----- extension/src/type_builder.rs | 6 +++++- tools/build | 4 ++-- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/extension/src/stats_agg.rs b/extension/src/stats_agg.rs index a5bf05e6..a86bdb69 100644 --- a/extension/src/stats_agg.rs +++ b/extension/src/stats_agg.rs @@ -1644,13 +1644,23 @@ mod tests { let control = state.unwrap(); let buffer = stats1d_trans_serialize(Inner::from(control.clone()).internal().unwrap()); - let buffer = pgrx::varlena::varlena_to_byte_slice(buffer.0.cast_mut_ptr()); + let slice_for_test = + pgrx::varlena::varlena_to_byte_slice(buffer.0.cast_mut_ptr::()); + println!( + "debug serializer output after return:\n{:?}", + slice_for_test + ); - let expected = pgrx::varlena::rust_byte_slice_to_bytea(buffer); - let new_state = - stats1d_trans_deserialize_inner(bytea(pg_sys::Datum::from(expected.as_ptr()))); + // let expected = pgrx::varlena::rust_byte_slice_to_bytea(buffer); + // let new_state = + // stats1d_trans_deserialize_inner(bytea(pg_sys::Datum::from(expected.as_ptr()))); + let new_state = stats1d_trans_deserialize_inner(buffer); - assert_eq!(&*new_state, &*control); + assert_eq!( + &*new_state, &*control, + "unexpected difference in bytes output, got:\n{:?}\nexpected:\n{:?}", + &*new_state, &*control + ); } } diff --git a/extension/src/type_builder.rs b/extension/src/type_builder.rs index e5766183..7ec51264 100644 --- a/extension/src/type_builder.rs +++ b/extension/src/type_builder.rs @@ -362,7 +362,11 @@ macro_rules! do_serialize { let len = writer.position().try_into().expect("serialized size too large"); ::pgrx::set_varsize(writer.get_mut().as_mut_ptr() as *mut _, len); } - $crate::raw::bytea::from(pg_sys::Datum::from(writer.into_inner().as_mut_ptr())) + + let raw_bytes = writer.into_inner(); + println!("debug serializer output:\n{:?}", raw_bytes); + crate::raw::bytea::from(pg_sys::Datum::from(raw_bytes.as_mut_ptr())) + // $crate::raw::bytea::from(pg_sys::Datum::from(writer.into_inner().as_mut_ptr())) } }; } diff --git a/tools/build b/tools/build index 0b1a6682..a7d38b9b 100755 --- a/tools/build +++ b/tools/build @@ -104,9 +104,9 @@ while [ $# -gt 0 ]; do $nop cargo fetch export RUSTC_BOOTSTRAP=1 export __CARGO_TEST_CHANNEL_OVERRIDE_DO_NOT_USE_THIS=nightly - export RUSTFLAGS='-Z sanitizer=memory' + # export RUSTFLAGS='-Z sanitizer=memory' rustup component add rust-src --toolchain 1.74.0-x86_64-unknown-linux-gnu - $nop cargo test -Zbuild-std --profile $profile --target --target x86_64-unknown-linux-gnu --features "$pg pg_test" --no-default-features -- stats_agg::tests + $nop cargo test -Zbuild-std --profile $profile --target --target x86_64-unknown-linux-gnu --features "$pg pg_test" --no-default-features -- --nocapture stats_agg::tests ;; install)