apurtell opened a new pull request, #2538: URL: https://github.com/apache/phoenix/pull/2538
Sweep tests for remaining EXPLAIN improvement issues: - `GlobalIndexCheckerIT`: A functional index match overwrites the index rule. We need to be able to support `'/* rule, matches <expr> */'` Disclose both via a new first class `functionalMatch` field in `ExplainPlanAttributes`. `recordDecision()` keeps rule as reason and records `functionalMatch = matches(<expr>)` independently. - `GlobalIndexCheckerIT`: When `CONSISTENCY`=`EVENTUAL`, a companion CDC index for the user index is auto-created, so at the `noIndexQuery` point in `testPhoenixRowTimestamp`, the `NO_INDEX` hint rejects two candidates, not one. Distinguish with `GlobalIndexCheckerIT.isEventualConsistency()`, default `false`, overridden where required. - `UncoveredGlobalIndexRegionScanner`, `UncoveredGlobalIndexRegionScanner2`: Re-baseline tests after functional match disclosure changes. Add a private hint-aware helper to discriminate between plain and functional index matches. - `LoggingSingleConnectionLimiterIT`: Restore the region/host info dropped from connection activity log. Region locations were added to `ExplainPlanAttributes` only when requested with `EXPLAIN ... REGIONS`. The structured attributes should contain the data regardless, keeping the conditional logic at the output layer. --- Unrelated / environment / pre-existing / out of scope: - `SecureUserConnectionsIT` — Kerberos: `Illegal principal name [email protected]` (local login env, not the branch). - `UpdateCacheIT` — `OutOfMemoryError` in regionserver threads (fork resource pressure; flaky under load). - `UpgradeIT.testMergeViewIndexSequences` — `SequenceNotFoundException` in the upgrade path. - `UpgradeNamespaceIT.testMapMultiTenantTableToNamespaceDuringUpgrade` — upgrade/namespace assertion. - `PartialSystemCatalogIndexIT.testIndexesOfViewAndIndexHeadersCondition` — `DECODE_VIEW_INDEX_ID` column-not-found (syscat view-index headers). - `GlobalConnectionTenantTableIT` - `PhoenixConnection.getTable(tenantId, name, Long timestamp)` documents `null` timestamp as valid and the cache-hit path handles it, but the cache-miss path calls `getTableNoCache(PName, String, long)`, unboxing the `null` `Long` → NPE. Also in `testGetTableFromCache:136` two `getTable(..., null)` calls don't return the same cached instance, and `testGetTenantViewAtTimestamp:97` has point-in-time `getTimeStamp()` mismatch. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
