Skip to content

Commit

Permalink
Update Ion equality testing
Browse files Browse the repository at this point in the history
  • Loading branch information
jpschorr committed Jan 29, 2025
1 parent a98e7cb commit fbef00f
Show file tree
Hide file tree
Showing 7 changed files with 84 additions and 253 deletions.
9 changes: 5 additions & 4 deletions extension/partiql-extension-ion/src/boxed_ion.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use crate::util::{PartiqlValueTarget, ToPartiqlValue};
use ion_rs::{
AnyEncoding, Element, ElementReader, IonError, IonResult, IonType, OwnedSequenceIterator,
Reader, Sequence, Struct,
AnyEncoding, Element, ElementReader, IonData, IonError, IonResult, IonType,
OwnedSequenceIterator, Reader, Sequence, Struct,
};
use partiql_value::boxed_variant::{
BoxedVariant, BoxedVariantResult, BoxedVariantType, BoxedVariantTypeTag,
Expand Down Expand Up @@ -84,7 +84,7 @@ impl BoxedIonType {
input: BufReader<I>,
) -> BoxedIonResult<BoxedIon> {
let buff = Box::new(input);
BoxedIon::parse(buff, BoxedIonStreamType::Stream)
BoxedIon::parse_unknown(buff)
}
}

Expand Down Expand Up @@ -683,7 +683,8 @@ impl<'a, const NULLS_EQUAL: bool, const NAN_EQUAL: bool> NullableEq
== Value::Boolean(true)
}

_ => l == r,
// Use `IonData` wrapping to opt-in to Ion-value equality semantics
_ => IonData::from(l) == IonData::from(r),
},
_ => false,
};
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
source: extension/partiql-extension-ion/tests/test.rs
expression: "dump_eq::<true, true>()"
expression: "dump_eq::<true, true>(fmt)"
---
`null` = `null`true
`null` = `null`true
Expand Down Expand Up @@ -590,30 +590,14 @@ expression: "dump_eq::<true, true>()"
`0e0` = `-0e0`true
`0.` = `0.`true
`0.` = `0.`true
`0.` = `-0.`true
`0.` = `-0.`true
`0.` = `-0.0`true
`0.` = `0.`true
`0.` = `0.`true
`0.` = `-0.`true
`0.` = `-0.`true
`0.` = `-0.0`true
`-0e0` = `0e0`true
`-0e0` = `-0e0`true
`-0.` = `0.`true
`-0.` = `0.`true
`-0.` = `-0.`true
`-0.` = `-0.`true
`-0.` = `-0.0`true
`-0.` = `0.`true
`-0.` = `0.`true
`-0.` = `-0.`true
`-0.` = `-0.`true
`-0.` = `-0.0`true
`-0.0` = `0.`true
`-0.0` = `0.`true
`-0.0` = `-0.`true
`-0.0` = `-0.`true
`-0.0` = `-0.0`true
`123456.789012` = `123456.789012`true
`null.timestamp` = `null`true
Expand Down Expand Up @@ -646,70 +630,30 @@ expression: "dump_eq::<true, true>()"
`null.timestamp` = `null.sexp`true
`2007-02-23T12:14+00:00` = `2007-02-23T12:14+00:00`true
`2007-02-23T12:14:33.079-08:00` = `2007-02-23T12:14:33.079-08:00`true
`2007-02-23T12:14:33.079-08:00` = `2007-02-23T20:14:33.079+00:00`true
`2007-02-23T12:14:33.079-08:00` = `2007-02-23T20:14:33.079+00:00`true
`2007-02-23T12:14:33.079-08:00` = `2007-02-23T20:14:33.079-00:00`true
`2007-02-23T20:14:33.079+00:00` = `2007-02-23T12:14:33.079-08:00`true
`2007-02-23T20:14:33.079+00:00` = `2007-02-23T20:14:33.079+00:00`true
`2007-02-23T20:14:33.079+00:00` = `2007-02-23T20:14:33.079+00:00`true
`2007-02-23T20:14:33.079+00:00` = `2007-02-23T20:14:33.079-00:00`true
`2007-02-23T20:14:33.079+00:00` = `2007-02-23T12:14:33.079-08:00`true
`2007-02-23T20:14:33.079+00:00` = `2007-02-23T20:14:33.079+00:00`true
`2007-02-23T20:14:33.079+00:00` = `2007-02-23T20:14:33.079+00:00`true
`2007-02-23T20:14:33.079+00:00` = `2007-02-23T20:14:33.079-00:00`true
`2007-02-23T20:14:33.079-00:00` = `2007-02-23T12:14:33.079-08:00`true
`2007-02-23T20:14:33.079-00:00` = `2007-02-23T20:14:33.079+00:00`true
`2007-02-23T20:14:33.079-00:00` = `2007-02-23T20:14:33.079+00:00`true
`2007-02-23T20:14:33.079-00:00` = `2007-02-23T20:14:33.079-00:00`true
`2007-01-01T00:00-00:00` = `2007-01-01T00:00-00:00`true
`2007-01-01T00:00-00:00` = `2007-01-01T`true
`2007-01-01T00:00-00:00` = `2007-01-01T`true
`2007-01-01T00:00-00:00` = `2007-01T`true
`2007-01-01T00:00-00:00` = `2007T`true
`2007-01-01T` = `2007-01-01T00:00-00:00`true
`2007-01-01T` = `2007-01-01T`true
`2007-01-01T` = `2007-01-01T`true
`2007-01-01T` = `2007-01T`true
`2007-01-01T` = `2007T`true
`2007-01-01T` = `2007-01-01T00:00-00:00`true
`2007-01-01T` = `2007-01-01T`true
`2007-01-01T` = `2007-01-01T`true
`2007-01-01T` = `2007-01T`true
`2007-01-01T` = `2007T`true
`2007-01T` = `2007-01-01T00:00-00:00`true
`2007-01T` = `2007-01-01T`true
`2007-01T` = `2007-01-01T`true
`2007-01T` = `2007-01T`true
`2007-01T` = `2007T`true
`2007T` = `2007-01-01T00:00-00:00`true
`2007T` = `2007-01-01T`true
`2007T` = `2007-01-01T`true
`2007T` = `2007-01T`true
`2007T` = `2007T`true
`2007-02-23T` = `2007-02-23T`true
`2007-02-23T` = `2007-02-23T00:00+00:00`true
`2007-02-23T` = `2007-02-23T00:00+00:00`true
`2007-02-23T` = `2007-02-23T00:00:00-00:00`true
`2007-02-23T00:00+00:00` = `2007-02-23T`true
`2007-02-23T00:00+00:00` = `2007-02-23T00:00+00:00`true
`2007-02-23T00:00+00:00` = `2007-02-23T00:00+00:00`true
`2007-02-23T00:00+00:00` = `2007-02-23T00:00:00-00:00`true
`2007-02-23T00:00+00:00` = `2007-02-23T`true
`2007-02-23T00:00+00:00` = `2007-02-23T00:00+00:00`true
`2007-02-23T00:00+00:00` = `2007-02-23T00:00+00:00`true
`2007-02-23T00:00+00:00` = `2007-02-23T00:00:00-00:00`true
`2007-02-23T00:00:00-00:00` = `2007-02-23T`true
`2007-02-23T00:00:00-00:00` = `2007-02-23T00:00+00:00`true
`2007-02-23T00:00:00-00:00` = `2007-02-23T00:00+00:00`true
`2007-02-23T00:00:00-00:00` = `2007-02-23T00:00:00-00:00`true
`2007` = `2007`true
`2000T` = `2000T`true
`2000T` = `2000-01-01T00:00:00+00:00`true
`2000-01-01T00:00:00+00:00` = `2000T`true
`2000-01-01T00:00:00+00:00` = `2000-01-01T00:00:00+00:00`true
`2000-01-01T00:00:00+00:00` = `2000-01-01T00:00:00.000+00:00`true
`2000-01-01T00:00:00.000+00:00` = `2000-01-01T00:00:00+00:00`true
`2000-01-01T00:00:00.000+00:00` = `2000-01-01T00:00:00.000+00:00`true
`2000-01-01T00:00:00.000+00:00` = `2000-01-01T00:00:00.000-00:00`true
`2000-01-01T00:00:00.000-00:00` = `2000-01-01T00:00:00.000+00:00`true
`2000-01-01T00:00:00.000-00:00` = `2000-01-01T00:00:00.000-00:00`true
`null.string` = `null`true
`null.string` = `null`true
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
source: extension/partiql-extension-ion/tests/test.rs
expression: "dump_eq::<true, false>()"
expression: "dump_eq::<true, false>(fmt)"
---
`null` = `null`true
`null` = `null`true
Expand Down Expand Up @@ -589,30 +589,14 @@ expression: "dump_eq::<true, false>()"
`0e0` = `-0e0`true
`0.` = `0.`true
`0.` = `0.`true
`0.` = `-0.`true
`0.` = `-0.`true
`0.` = `-0.0`true
`0.` = `0.`true
`0.` = `0.`true
`0.` = `-0.`true
`0.` = `-0.`true
`0.` = `-0.0`true
`-0e0` = `0e0`true
`-0e0` = `-0e0`true
`-0.` = `0.`true
`-0.` = `0.`true
`-0.` = `-0.`true
`-0.` = `-0.`true
`-0.` = `-0.0`true
`-0.` = `0.`true
`-0.` = `0.`true
`-0.` = `-0.`true
`-0.` = `-0.`true
`-0.` = `-0.0`true
`-0.0` = `0.`true
`-0.0` = `0.`true
`-0.0` = `-0.`true
`-0.0` = `-0.`true
`-0.0` = `-0.0`true
`123456.789012` = `123456.789012`true
`null.timestamp` = `null`true
Expand Down Expand Up @@ -645,70 +629,30 @@ expression: "dump_eq::<true, false>()"
`null.timestamp` = `null.sexp`true
`2007-02-23T12:14+00:00` = `2007-02-23T12:14+00:00`true
`2007-02-23T12:14:33.079-08:00` = `2007-02-23T12:14:33.079-08:00`true
`2007-02-23T12:14:33.079-08:00` = `2007-02-23T20:14:33.079+00:00`true
`2007-02-23T12:14:33.079-08:00` = `2007-02-23T20:14:33.079+00:00`true
`2007-02-23T12:14:33.079-08:00` = `2007-02-23T20:14:33.079-00:00`true
`2007-02-23T20:14:33.079+00:00` = `2007-02-23T12:14:33.079-08:00`true
`2007-02-23T20:14:33.079+00:00` = `2007-02-23T20:14:33.079+00:00`true
`2007-02-23T20:14:33.079+00:00` = `2007-02-23T20:14:33.079+00:00`true
`2007-02-23T20:14:33.079+00:00` = `2007-02-23T20:14:33.079-00:00`true
`2007-02-23T20:14:33.079+00:00` = `2007-02-23T12:14:33.079-08:00`true
`2007-02-23T20:14:33.079+00:00` = `2007-02-23T20:14:33.079+00:00`true
`2007-02-23T20:14:33.079+00:00` = `2007-02-23T20:14:33.079+00:00`true
`2007-02-23T20:14:33.079+00:00` = `2007-02-23T20:14:33.079-00:00`true
`2007-02-23T20:14:33.079-00:00` = `2007-02-23T12:14:33.079-08:00`true
`2007-02-23T20:14:33.079-00:00` = `2007-02-23T20:14:33.079+00:00`true
`2007-02-23T20:14:33.079-00:00` = `2007-02-23T20:14:33.079+00:00`true
`2007-02-23T20:14:33.079-00:00` = `2007-02-23T20:14:33.079-00:00`true
`2007-01-01T00:00-00:00` = `2007-01-01T00:00-00:00`true
`2007-01-01T00:00-00:00` = `2007-01-01T`true
`2007-01-01T00:00-00:00` = `2007-01-01T`true
`2007-01-01T00:00-00:00` = `2007-01T`true
`2007-01-01T00:00-00:00` = `2007T`true
`2007-01-01T` = `2007-01-01T00:00-00:00`true
`2007-01-01T` = `2007-01-01T`true
`2007-01-01T` = `2007-01-01T`true
`2007-01-01T` = `2007-01T`true
`2007-01-01T` = `2007T`true
`2007-01-01T` = `2007-01-01T00:00-00:00`true
`2007-01-01T` = `2007-01-01T`true
`2007-01-01T` = `2007-01-01T`true
`2007-01-01T` = `2007-01T`true
`2007-01-01T` = `2007T`true
`2007-01T` = `2007-01-01T00:00-00:00`true
`2007-01T` = `2007-01-01T`true
`2007-01T` = `2007-01-01T`true
`2007-01T` = `2007-01T`true
`2007-01T` = `2007T`true
`2007T` = `2007-01-01T00:00-00:00`true
`2007T` = `2007-01-01T`true
`2007T` = `2007-01-01T`true
`2007T` = `2007-01T`true
`2007T` = `2007T`true
`2007-02-23T` = `2007-02-23T`true
`2007-02-23T` = `2007-02-23T00:00+00:00`true
`2007-02-23T` = `2007-02-23T00:00+00:00`true
`2007-02-23T` = `2007-02-23T00:00:00-00:00`true
`2007-02-23T00:00+00:00` = `2007-02-23T`true
`2007-02-23T00:00+00:00` = `2007-02-23T00:00+00:00`true
`2007-02-23T00:00+00:00` = `2007-02-23T00:00+00:00`true
`2007-02-23T00:00+00:00` = `2007-02-23T00:00:00-00:00`true
`2007-02-23T00:00+00:00` = `2007-02-23T`true
`2007-02-23T00:00+00:00` = `2007-02-23T00:00+00:00`true
`2007-02-23T00:00+00:00` = `2007-02-23T00:00+00:00`true
`2007-02-23T00:00+00:00` = `2007-02-23T00:00:00-00:00`true
`2007-02-23T00:00:00-00:00` = `2007-02-23T`true
`2007-02-23T00:00:00-00:00` = `2007-02-23T00:00+00:00`true
`2007-02-23T00:00:00-00:00` = `2007-02-23T00:00+00:00`true
`2007-02-23T00:00:00-00:00` = `2007-02-23T00:00:00-00:00`true
`2007` = `2007`true
`2000T` = `2000T`true
`2000T` = `2000-01-01T00:00:00+00:00`true
`2000-01-01T00:00:00+00:00` = `2000T`true
`2000-01-01T00:00:00+00:00` = `2000-01-01T00:00:00+00:00`true
`2000-01-01T00:00:00+00:00` = `2000-01-01T00:00:00.000+00:00`true
`2000-01-01T00:00:00.000+00:00` = `2000-01-01T00:00:00+00:00`true
`2000-01-01T00:00:00.000+00:00` = `2000-01-01T00:00:00.000+00:00`true
`2000-01-01T00:00:00.000+00:00` = `2000-01-01T00:00:00.000-00:00`true
`2000-01-01T00:00:00.000-00:00` = `2000-01-01T00:00:00.000+00:00`true
`2000-01-01T00:00:00.000-00:00` = `2000-01-01T00:00:00.000-00:00`true
`null.string` = `null`true
`null.string` = `null`true
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
source: extension/partiql-extension-ion/tests/test.rs
expression: "dump_eq::<false, true>()"
expression: "dump_eq::<false, true>(fmt)"
---
`nan` = `nan`true
`-inf` = `-inf`true
Expand Down Expand Up @@ -30,98 +30,42 @@ expression: "dump_eq::<false, true>()"
`0e0` = `-0e0`true
`0.` = `0.`true
`0.` = `0.`true
`0.` = `-0.`true
`0.` = `-0.`true
`0.` = `-0.0`true
`0.` = `0.`true
`0.` = `0.`true
`0.` = `-0.`true
`0.` = `-0.`true
`0.` = `-0.0`true
`-0e0` = `0e0`true
`-0e0` = `-0e0`true
`-0.` = `0.`true
`-0.` = `0.`true
`-0.` = `-0.`true
`-0.` = `-0.`true
`-0.` = `-0.0`true
`-0.` = `0.`true
`-0.` = `0.`true
`-0.` = `-0.`true
`-0.` = `-0.`true
`-0.` = `-0.0`true
`-0.0` = `0.`true
`-0.0` = `0.`true
`-0.0` = `-0.`true
`-0.0` = `-0.`true
`-0.0` = `-0.0`true
`123456.789012` = `123456.789012`true
`2007-02-23T12:14+00:00` = `2007-02-23T12:14+00:00`true
`2007-02-23T12:14:33.079-08:00` = `2007-02-23T12:14:33.079-08:00`true
`2007-02-23T12:14:33.079-08:00` = `2007-02-23T20:14:33.079+00:00`true
`2007-02-23T12:14:33.079-08:00` = `2007-02-23T20:14:33.079+00:00`true
`2007-02-23T12:14:33.079-08:00` = `2007-02-23T20:14:33.079-00:00`true
`2007-02-23T20:14:33.079+00:00` = `2007-02-23T12:14:33.079-08:00`true
`2007-02-23T20:14:33.079+00:00` = `2007-02-23T20:14:33.079+00:00`true
`2007-02-23T20:14:33.079+00:00` = `2007-02-23T20:14:33.079+00:00`true
`2007-02-23T20:14:33.079+00:00` = `2007-02-23T20:14:33.079-00:00`true
`2007-02-23T20:14:33.079+00:00` = `2007-02-23T12:14:33.079-08:00`true
`2007-02-23T20:14:33.079+00:00` = `2007-02-23T20:14:33.079+00:00`true
`2007-02-23T20:14:33.079+00:00` = `2007-02-23T20:14:33.079+00:00`true
`2007-02-23T20:14:33.079+00:00` = `2007-02-23T20:14:33.079-00:00`true
`2007-02-23T20:14:33.079-00:00` = `2007-02-23T12:14:33.079-08:00`true
`2007-02-23T20:14:33.079-00:00` = `2007-02-23T20:14:33.079+00:00`true
`2007-02-23T20:14:33.079-00:00` = `2007-02-23T20:14:33.079+00:00`true
`2007-02-23T20:14:33.079-00:00` = `2007-02-23T20:14:33.079-00:00`true
`2007-01-01T00:00-00:00` = `2007-01-01T00:00-00:00`true
`2007-01-01T00:00-00:00` = `2007-01-01T`true
`2007-01-01T00:00-00:00` = `2007-01-01T`true
`2007-01-01T00:00-00:00` = `2007-01T`true
`2007-01-01T00:00-00:00` = `2007T`true
`2007-01-01T` = `2007-01-01T00:00-00:00`true
`2007-01-01T` = `2007-01-01T`true
`2007-01-01T` = `2007-01-01T`true
`2007-01-01T` = `2007-01T`true
`2007-01-01T` = `2007T`true
`2007-01-01T` = `2007-01-01T00:00-00:00`true
`2007-01-01T` = `2007-01-01T`true
`2007-01-01T` = `2007-01-01T`true
`2007-01-01T` = `2007-01T`true
`2007-01-01T` = `2007T`true
`2007-01T` = `2007-01-01T00:00-00:00`true
`2007-01T` = `2007-01-01T`true
`2007-01T` = `2007-01-01T`true
`2007-01T` = `2007-01T`true
`2007-01T` = `2007T`true
`2007T` = `2007-01-01T00:00-00:00`true
`2007T` = `2007-01-01T`true
`2007T` = `2007-01-01T`true
`2007T` = `2007-01T`true
`2007T` = `2007T`true
`2007-02-23T` = `2007-02-23T`true
`2007-02-23T` = `2007-02-23T00:00+00:00`true
`2007-02-23T` = `2007-02-23T00:00+00:00`true
`2007-02-23T` = `2007-02-23T00:00:00-00:00`true
`2007-02-23T00:00+00:00` = `2007-02-23T`true
`2007-02-23T00:00+00:00` = `2007-02-23T00:00+00:00`true
`2007-02-23T00:00+00:00` = `2007-02-23T00:00+00:00`true
`2007-02-23T00:00+00:00` = `2007-02-23T00:00:00-00:00`true
`2007-02-23T00:00+00:00` = `2007-02-23T`true
`2007-02-23T00:00+00:00` = `2007-02-23T00:00+00:00`true
`2007-02-23T00:00+00:00` = `2007-02-23T00:00+00:00`true
`2007-02-23T00:00+00:00` = `2007-02-23T00:00:00-00:00`true
`2007-02-23T00:00:00-00:00` = `2007-02-23T`true
`2007-02-23T00:00:00-00:00` = `2007-02-23T00:00+00:00`true
`2007-02-23T00:00:00-00:00` = `2007-02-23T00:00+00:00`true
`2007-02-23T00:00:00-00:00` = `2007-02-23T00:00:00-00:00`true
`2007` = `2007`true
`2000T` = `2000T`true
`2000T` = `2000-01-01T00:00:00+00:00`true
`2000-01-01T00:00:00+00:00` = `2000T`true
`2000-01-01T00:00:00+00:00` = `2000-01-01T00:00:00+00:00`true
`2000-01-01T00:00:00+00:00` = `2000-01-01T00:00:00.000+00:00`true
`2000-01-01T00:00:00.000+00:00` = `2000-01-01T00:00:00+00:00`true
`2000-01-01T00:00:00.000+00:00` = `2000-01-01T00:00:00.000+00:00`true
`2000-01-01T00:00:00.000+00:00` = `2000-01-01T00:00:00.000-00:00`true
`2000-01-01T00:00:00.000-00:00` = `2000-01-01T00:00:00.000+00:00`true
`2000-01-01T00:00:00.000-00:00` = `2000-01-01T00:00:00.000-00:00`true
`""` = `""`true
`" my string "` = `" my string "`true
Expand Down
Loading

0 comments on commit fbef00f

Please sign in to comment.