You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Stabilize CalcitePPLConditionBuiltinFunctionIT on the analytics-engine route
init() seeds two extra docs into state_country_with_null via unconditional
raw PUTs. init() runs as @before before every test method, and the
analytics-engine parquet-backed store is append-only on same-_id PUT, so the
docs accumulated a duplicate per method and inflated row counts across the
suite. Guard the seed on a pre-loadIndex isIndexExist check so it runs exactly
once; behavior is unchanged on the v2/Calcite route (same end state).
Gate the six tests that exercise behaviors the analytics-engine route does
not support with assumeFalse(isAnalyticsParquetIndicesEnabled()):
- isnull/isnotnull on the object/struct parent field big5.aws — objects are
flattened to dotted leaf columns and the struct parent is not a queryable
column, so it resolves to FIELD_NOT_FOUND
- isnull/isnotnull on the nested field nested_simple.address — the route
cannot store nested fields, so the test infra strips them at index
creation (UNSUPPORTED_FIELD_TYPES) and the field resolves to FIELD_NOT_FOUND
- nullif(concat('H', name), ...) over a null name — DataFusion concat treats
NULL as empty string ('H'), whereas v2/Calcite propagates NULL
- earliest('now', utc_timestamp()) — relative-time 'now' and utc_timestamp()
resolve to the same instant on the route (true) but differ on v2 (false)
Results (-Dtests.analytics.parquet_indices=true against the analytics route):
CalcitePPLConditionBuiltinFunctionIT: 6/24 -> 18/24 pass, 6 skip, 0 fail
v2/Calcite route unchanged: 24/24 pass, 0 skip.
Signed-off-by: Kai Huang <ahkcs@amazon.com>
0 commit comments