Impala Public Jenkins has posted comments on this change. ( http://gerrit.cloudera.org:8080/24968 )
Change subject: IMPALA-15447: Iceberg scan telemetry (Stream A + B) ...................................................................... Patch Set 1: (83 comments) gerrit-auto-critic failed. You can reproduce it locally using command: python3 bin/jenkins/critique-gerrit-review.py --dryrun To run it, you might need a virtual env with Python3's venv installed. http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java File fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java: http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@39 PS1, Line 39: import org.apache.impala.thrift.TUniqueId; unused import: org.apache.impala.thrift.TUniqueId http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@47 PS1, Line 47: * <p>Iceberg's {@code ScanReport} (Stream A) carries a table's pushed-down filter and scan metrics, line too long (100 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@48 PS1, Line 48: * but joins and ORDER BY live in the engine's query plan, one layer above the scan, so the scan report line too long (103 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@49 PS1, Line 49: * cannot see them. This collector runs once per query, right after {@code Planner.createPlans}, where line too long (102 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@50 PS1, Line 50: * the whole plan and the query id are both in hand. It walks the plan, extracts the equi-join keys and line too long (103 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@51 PS1, Line 51: * ORDER BY columns that resolve to Iceberg tables, and POSTs a per-table query-shape event through the line too long (103 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@52 PS1, Line 52: * same {@code iceberg-telemetry} client the scan reports use — tagged with the <b>identical</b> query line too long (102 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@55 PS1, Line 55: * <p>It calls the telemetry library <b>reflectively</b> (no compile-time dependency), exactly like line too long (99 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@56 PS1, Line 56: * {@link IcebergScanPlanner} loads its side reporter via {@code CatalogUtil.loadMetricsReporter}; the line too long (102 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@57 PS1, Line 57: * library's {@code QueryShapeReporter.report(Map, String, String, List)} takes only JDK types. Config line too long (102 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@58 PS1, Line 58: * is sourced from the same JVM system properties ({@code metrics-reporter-impl}, {@code metrics.*}) set line too long (104 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@59 PS1, Line 59: * via Cloudera Manager. Entirely best-effort: it never throws into, or blocks, query planning, and line too long (99 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@64 PS1, Line 64: private static final Logger LOG = LoggerFactory.getLogger(IcebergQueryShapeCollector.class); line too long (94 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@66 PS1, Line 66: private static final String TELEMETRY_CLASS = "com.acme.iceberg.telemetry.QueryShapeReporter"; line too long (96 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@69 PS1, Line 69: // Resolved once per JVM: the reflective handle to QueryShapeReporter.report, or null if the line too long (94 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@77 PS1, Line 77: * Collect the query shape from a finished plan and POST it. {@code planRoots} are the fragment roots line too long (103 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@78 PS1, Line 78: * from {@code Planner.createPlans}; {@code queryCtx} supplies the query id. Never throws. line too long (92 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@94 PS1, Line 94: return; // no joins/sorts on Iceberg tables → nothing to enrich (scan report suffices) line too long (94 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@110 PS1, Line 110: LOG.warn("Iceberg query-shape collection failed; skipping (query planning unaffected)", t); line too long (97 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@114 PS1, Line 114: // ------------------------------------------------------------------------------- plan walk line too long (94 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@131 PS1, Line 131: /** Each equi-join key column is a clustering/bucketing candidate on BOTH tables it joins. */ line too long (95 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@171 PS1, Line 171: byTable.computeIfAbsent(r.table, TableAcc::new).addOrder(r.column, direction, nullOrder); line too long (95 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@176 PS1, Line 176: * Resolve an expression to the ({@code Iceberg table name}, {@code column}) of the scan slot it line too long (98 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@203 PS1, Line 203: /** The Iceberg table name, matching {@code ScanReport.tableName()} (= {@code Table.name()}). */ line too long (98 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@216 PS1, Line 216: // --------------------------------------------------------------------------------- config line too long (93 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@231 PS1, Line 231: // Only wire up when a side reporter is configured, matching IcebergScanPlanner.loadCatalogReporter. line too long (104 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@240 PS1, Line 240: LOG.info("Iceberg query-shape (Stream B) reporting enabled via {}", TELEMETRY_CLASS); line too long (91 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@243 PS1, Line 243: LOG.warn("Iceberg query-shape reporter '{}' not available; Stream B disabled", TELEMETRY_CLASS, t); line too long (105 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@251 PS1, Line 251: if (key.equals(CatalogProperties.METRICS_REPORTER_IMPL) || key.startsWith("metrics.")) { line too long (94 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergQueryShapeCollector.java@258 PS1, Line 258: // --------------------------------------------------------------------------- small holders line too long (94 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java File fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java: http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@181 PS1, Line 181: // Compose-don't-override (production_query_engine_reporting.md §3.5). The InMemoryMetricsReporter line too long (100 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@182 PS1, Line 182: // above is load-bearing — its scanReport() feeds addIcebergScanMetricsToProfile() — so it is KEPT. line too long (101 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@183 PS1, Line 183: // Impala's frontend never goes through the Iceberg catalog's reporter path, so there is no line too long (93 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@184 PS1, Line 184: // instance to reuse: we REBUILD the catalog-configured SPI reporter with the same factory the line too long (96 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@185 PS1, Line 185: // catalog uses (CatalogUtil.loadMetricsReporter), memoized once per JVM (calling it per scan would line too long (101 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@186 PS1, Line 186: // build a new reporter + HTTP client every scan). Config is sourced from JVM system properties set line too long (101 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@190 PS1, Line 190: // When 'metrics-reporter-impl' is unset, catalogReporter() is null and behavior is byte-for-byte line too long (99 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@214 PS1, Line 214: if (key.equals(CatalogProperties.METRICS_REPORTER_IMPL) || key.startsWith("metrics.")) { line too long (94 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@219 PS1, Line 219: // loadMetricsReporter builds the no-arg instance AND calls initialize(props) for us. line too long (91 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@224 PS1, Line 224: LOG.warn("Failed to load Iceberg metrics reporter '{}'; scan reporting disabled", impl, t); line too long (97 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@230 PS1, Line 230: * Compose the kept InMemory reporter with the catalog-configured side reporter (if any) so scan line too long (98 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@231 PS1, Line 231: * reports reach the collector without discarding the InMemory feed used for the query profile. line too long (97 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@238 PS1, Line 238: // combine()'s composite already try/catches each reporter, so a reporting failure never fails line too long (98 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@239 PS1, Line 239: // the query; TelemetryMetricsReporter is additionally non-blocking so it never slows planning. line too long (99 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@244 PS1, Line 244: * Metadata stamped onto every scan report for this query (WI2, Stream A). Its {@code query-id} is line too long (100 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@246 PS1, Line 246: * {@code Frontend.createExecRequest}), so the two streams correlate on {@code source.query_id} line too long (97 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@258 PS1, Line 258: // query id not available at this point — scan report still posts, just uncorrelated. line too long (91 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1332 PS1, Line 1332: * Fast path (no planFiles(), see production_query_engine_reporting.md §4): planFiles() never ran, line too long (100 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1333 PS1, Line 1333: * so no ScanReport was produced and Stream A would be empty for this query. Synthesize a FAITHFUL line too long (100 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1334 PS1, Line 1334: * one from the file descriptors and conjuncts that setFileDescriptorsBasedOnFileStore() and analysis line too long (103 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1335 PS1, Line 1335: * already produced -- microseconds of work over in-memory structures, no manifest IO -- and hand it line too long (102 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1336 PS1, Line 1336: * ONLY to the telemetry side reporter. The InMemory reporter and the query profile are deliberately line too long (102 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1338 PS1, Line 1338: * Frontend.fillProfileNodeWithIcebergScanMetrics NPEs on a null totalPlanningDuration, which a line too long (97 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1339 PS1, Line 1339: * synthesized report would carry). No-ops when no side reporter is configured (default = today's line too long (99 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1340 PS1, Line 1340: * behavior) or for metadata-table scans, and never throws or blocks the planning thread. line too long (91 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1344 PS1, Line 1344: if (side == null) return; // telemetry off -> today's behavior line too long (101 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1345 PS1, Line 1345: if (!(tblRef_.getTable() instanceof FeIcebergTable)) return; // skip IcebergMetadataTable scans line too long (99 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1346 PS1, Line 1346: if (snapshotId_ == -1) return; // empty table: nothing scanned line too long (96 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1351 PS1, Line 1351: long totalBytes = sumFileSizes(dataFilesWithoutDeletes_) + sumFileSizes(dataFilesWithDeletes_); line too long (101 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1353 PS1, Line 1353: // ScanMetrics.of(DefaultMetricsContext) registers EVERY counter; fromScanMetrics() then emits line too long (100 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1354 PS1, Line 1354: // each one (value 0 when untouched, since DefaultMetricsContext counters are never NOOP, so line too long (98 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1355 PS1, Line 1355: // CounterResult.fromCounter does not drop them). Thus skipped-data-files serializes as 0 line too long (95 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1356 PS1, Line 1356: // explicitly -- truthful here: the fast path ran no manifest pruning, so no data file was line too long (96 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1362 PS1, Line 1362: // m.skippedDataFiles() left at 0 -> skipped_files = 0 (accurate: fast path prunes nothing). line too long (98 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1370 PS1, Line 1370: .filter(buildResidualFilter()) // REAL predicate tree -> collector derives {col,op} line too long (104 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1374 PS1, Line 1374: .putAllMetadata(scanReportMetadata()) // engine-name + query-id -> correlates w/ Stream B line too long (103 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1377 PS1, Line 1377: side.report(report); // enqueue-and-return; non-blocking, never throws line too long (101 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1390 PS1, Line 1390: * Build the synthesized report's filter by converting this query's conjuncts (on the fast path these line too long (103 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1391 PS1, Line 1391: * are exactly conjuncts_ == nonIdentityConjuncts_, none of which were pushed to Iceberg) with the line too long (100 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1392 PS1, Line 1392: * SAME IcebergPredicateConverter the push-down path uses, and AND-combining them. The collector walks line too long (104 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1394 PS1, Line 1394: * segment IN (...) -> {col:segment, op:in}. Read-only: a fresh converter, no mutation of line too long (91 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1395 PS1, Line 1395: * impalaIcebergPredicateMapping_ or any planner state, so the produced plan is unchanged. Predicates line too long (103 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1396 PS1, Line 1396: * the converter cannot express are dropped from the filter only (counters are unaffected). Falls back line too long (104 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1406 PS1, Line 1406: if (r.isFailed() || r.getIcebergExpression() == null) continue; // keep FULLY + PARTIALLY line too long (97 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java@1410 PS1, Line 1410: // Skip anything that won't convert; affects derived predicates only, not counters. line too long (91 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/service/Frontend.java File fe/src/main/java/org/apache/impala/service/Frontend.java: http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/service/Frontend.java@2097 PS1, Line 2097: // Stream B (query-shape): emit join keys + ORDER BY per Iceberg table for auto-clustering, line too long (95 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/service/Frontend.java@2098 PS1, Line 2098: // correlated with the scan reports on the same query id (production_query_engine_reporting.md line too long (98 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/service/Frontend.java@2099 PS1, Line 2099: // WI5). Best-effort — never throws or blocks planning; no-ops when telemetry is not configured. line too long (100 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/util/IcebergUtil.java File fe/src/main/java/org/apache/impala/util/IcebergUtil.java: http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/util/IcebergUtil.java@671 PS1, Line 671: * As {@link #planFiles(FeIcebergTable, List, TimeTravelSpec, MetricsReporter)}, but stamps line too long (93 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/util/IcebergUtil.java@673 PS1, Line 673: * {@code ScanReport.metadata()} (Iceberg copies {@code scan.option(k,v)} into the report's metadata line too long (102 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/util/IcebergUtil.java@674 PS1, Line 674: * map — see {@code SnapshotScan.doPlanFiles}). This is how the engine's own query id reaches Stream A line too long (104 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/util/IcebergUtil.java@675 PS1, Line 675: * (production_query_engine_reporting.md WI2), so the scan reports for a query correlate with that line too long (100 > 90) http://gerrit.cloudera.org:8080/#/c/24968/1/fe/src/main/java/org/apache/impala/util/IcebergUtil.java@676 PS1, Line 676: * query's query-shape event on {@code source.query_id}. Metadata is only meaningful when a line too long (93 > 90) -- To view, visit http://gerrit.cloudera.org:8080/24968 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2a290d79ec467a663af32efcce4bcdfebd7d9287 Gerrit-Change-Number: 24968 Gerrit-PatchSet: 1 Gerrit-Owner: Anonymous Coward <[email protected]> Gerrit-Reviewer: Impala Public Jenkins <[email protected]> Gerrit-Comment-Date: Mon, 28 Sep 2026 19:57:33 +0000 Gerrit-HasComments: Yes
