…ate oracles (sqlancer#15,17,18,22)
Four self-contained, reader-safe oracles (every projected wire value toString-wrapped
so the client-v2 RowBinary reader never sees a raw container/Variant/AggregateFunction
column; default-on, --flag gated):
- sqlancer#15 MapTupleContainer Map/Tuple/Array extractions == Java ground truth (private fixture)
- sqlancer#17 GeoMetamorphic pointInPolygon/polygonArea/greatCircleDistance/intersection
metamorphic identities, integer coords, 1e-6 float tolerance
- sqlancer#18 VariantSubcolumn Variant/Dynamic/JSON subcolumn roundtrip (toString-wrapped reads
only; raw-column projection emission stays gated off per plan)
- sqlancer#22 AggregateStateExpansion finalizeAggregation(arrayReduce('<agg>State',groupArray(x)))==<agg>(x)
for sum/min/max/uniqExact/quantileExact/groupArray + AggregatingMergeTree arm
Young-type unavailability (Variant/JSON/Dynamic/geo) tolerated to IgnoreMe. Wired into
factory/options/run-sqlancer.sh; mvn compile green. Probe-on-head: geo function names
(polygonAreaCartesian etc.), Variant subcolumn syntax (v.Int64 vs variantElement),
arrayReduce/finalizeAggregation signatures.
See duckdb/duckdb#649.