Skip to content

[fix](fe) Skip table snapshot resolution for external views - #69836

Merged
Gabriel39 merged 2 commits into
apache:masterfrom
hubgeter:fix/external-view-mvcc-snapshot
Nov 3, 2026
Merged

Gabriel39 merged 2 commits into
apache:masterfrom
hubgeter:fix/external-view-mvcc-snapshot

Conversation

@hubgeter

@hubgeter hubgeter commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

What problem does this PR solve?

External views currently resolve a table handle when loading the statement snapshot, before their SQL is expanded. Skip that table-only path for known views; their base tables retain normal snapshot pinning.

Reject unsupported view scan parameters such as @branch and @tag instead of silently ignoring the requested selector.

Release note

Avoid table metadata requests for external views during snapshot binding, and reject unsupported view scan parameters.

Check List (For Author)

For this update: Checkstyle passed for both changed Java files. Selector-rejection unit tests were added but not run locally.

  • Test

    • Regression test
    • Unit Test
    • Manual test (add detailed scripts or steps below)
    • No need to test or manual test. Explain why:
      • This is a refactor/code format and no logic has been changed.
      • Previous test can cover this change.
      • No code files have been changed.
      • Other reason
  • Behavior changed:

    • No.
    • Yes.
  • Does this need documentation?

    • No.
    • Yes.

Check List (For Reviewer who merge this PR)

  • Confirm the release note
  • Confirm test cases
  • Confirm document
  • Add branch pick label

### What problem does this PR solve?

Related PR: apache#69829

Problem Summary: External views resolve a table handle during statement snapshot
loading before their SQL is expanded. A catalog can serve a view while rejecting
table requests for the same name. Skip table snapshot materialization for known
views and keep normal snapshot pinning for their base tables.

### Release note

Avoid table metadata requests for external views during snapshot binding.

### Check List (For Author)

- Test: 138 FE unit tests passed; Checkstyle passed for both changed Java files; Polaris E2E not run.
- Behavior changed: Yes, known views skip table snapshot resolution.
- Does this need documentation: No.
@hello-stephen

Copy link
Copy Markdown
Contributor

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.

Please clearly describe your PR:

  1. What problem was fixed (it's best to include specific error reporting information). How it was fixed.
  2. Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
  3. What features were added. Why was this function added?
  4. Which code was refactored and why was this part of the code refactored?
  5. Which functions were optimized and what is the difference before and after the optimization?

@hubgeter

Copy link
Copy Markdown
Contributor Author

run buildall

@hubgeter

Copy link
Copy Markdown
Contributor Author

/review

@github-actions

Copy link
Copy Markdown
Contributor

Codex automated review failed and did not complete.

Error: Selected model is at capacity. Please try a different model.
Workflow run: https://github.com/apache/doris/actions/runs/40853903008

Please inspect the workflow logs and rerun the review after the underlying issue is resolved.

@hello-stephen

Copy link
Copy Markdown
Contributor

FE UT Coverage Report

Increment line coverage 100.00% (3/3) 🎉
Increment coverage report
Complete coverage report

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-H: Total hot run time: 28980 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit cd2facafd8566957976f251b248cfc4d41dd0f62, data reload: false

------ Round 1 ----------------------------------
============================================
q1	17652	5195	5074	5074
q2	2171	319	262	262
q3	10222	1377	837	837
q4	4677	462	336	336
q5	7445	808	536	536
q6	186	185	154	154
q7	768	813	605	605
q8	9253	1380	1131	1131
q9	5517	4261	4233	4233
q10	6824	1289	1026	1026
q11	432	254	225	225
q12	643	407	310	310
q13	18089	3736	3085	3085
q14	285	280	254	254
q15	q16	727	745	661	661
q17	1225	756	574	574
q18	7064	6193	6124	6124
q19	1245	972	604	604
q20	399	355	229	229
q21	6085	2451	2529	2451
q22	386	332	269	269
Total cold run time: 101295 ms
Total hot run time: 28980 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	5966	5959	6164	5959
q2	754	623	604	604
q3	5622	5781	5370	5370
q4	2037	2155	1641	1641
q5	5652	5826	5623	5623
q6	233	186	146	146
q7	2262	2058	1795	1795
q8	2988	2757	2683	2683
q9	7964	7481	7479	7479
q10	3646	3569	3113	3113
q11	579	408	378	378
q12	675	677	523	523
q13	3392	3613	3064	3064
q14	286	297	272	272
q15	q16	663	685	631	631
q17	7733	7059	6880	6880
q18	12938	12209	12826	12209
q19	969	866	846	846
q20	2159	2141	1916	1916
q21	5814	4700	4925	4700
q22	487	458	408	408
Total cold run time: 72819 ms
Total hot run time: 66240 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 151119 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit cd2facafd8566957976f251b248cfc4d41dd0f62, data reload: false

query5	4314	571	442	442
query6	428	217	195	195
query7	4813	439	237	237
query8	325	163	172	163
query9	8773	3228	3245	3228
query10	512	317	256	256
query11	5936	3851	3570	3570
query12	162	93	89	89
query13	1249	455	330	330
query14	6132	3921	3663	3663
query14_1	3435	3386	3419	3386
query15	210	201	183	183
query16	956	416	433	416
query17	866	684	537	537
query18	2449	430	322	322
query19	208	174	145	145
query20	91	88	92	88
query21	213	133	111	111
query22	12951	12965	12756	12756
query23	13527	12880	12368	12368
query23_1	12470	12612	12444	12444
query24	7411	823	482	482
query24_1	493	485	498	485
query25	540	428	357	357
query26	1259	255	143	143
query27	2771	452	277	277
query28	4611	2046	2041	2041
query29	1574	602	457	457
query30	315	229	186	186
query31	1018	940	827	827
query32	152	101	93	93
query33	538	307	235	235
query34	919	851	519	519
query35	755	756	667	667
query36	814	815	726	726
query37	134	102	85	85
query38	1798	1747	1675	1675
query39	806	787	737	737
query39_1	725	722	742	722
query40	222	121	95	95
query41	74	71	69	69
query42	92	84	86	84
query43	355	360	313	313
query44	1322	714	735	714
query45	183	180	192	180
query46	826	973	574	574
query47	2886	2902	2697	2697
query48	295	313	224	224
query49	574	406	287	287
query50	672	282	217	217
query51	10270	10516	10187	10187
query52	82	78	71	71
query53	192	211	158	158
query54	237	191	185	185
query55	72	68	64	64
query56	230	215	212	212
query57	1662	1628	1561	1561
query58	292	268	254	254
query59	2187	2134	1985	1985
query60	293	240	227	227
query61	152	145	151	145
query62	388	348	285	285
query63	199	160	156	156
query64	2738	926	774	774
query65	3349	3265	3283	3265
query66	1782	414	304	304
query67	20394	20135	19884	19884
query68	3074	1033	618	618
query69	391	286	262	262
query70	859	780	787	780
query71	302	249	207	207
query72	2802	2542	2367	2367
query73	521	529	307	307
query74	4639	4478	4350	4350
query75	2339	2283	1908	1908
query76	2339	1036	594	594
query77	346	381	303	303
query78	9731	9782	9236	9236
query79	1001	864	541	541
query80	926	416	374	374
query81	581	320	267	267
query82	910	134	105	105
query83	274	197	187	187
query84	310	128	106	106
query85	1010	422	374	374
query86	358	242	230	230
query87	1995	1921	1830	1830
query88	3797	2798	2774	2774
query89	342	277	236	236
query90	1745	168	161	161
query91	175	153	131	131
query92	104	90	90	90
query93	1020	1015	585	585
query94	522	314	279	279
query95	571	391	330	330
query96	688	513	241	241
query97	2431	2430	2321	2321
query98	171	153	152	152
query99	775	768	651	651
Total cold run time: 235440 ms
Total hot run time: 151119 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
ClickBench: Total hot run time: 24.4 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit cd2facafd8566957976f251b248cfc4d41dd0f62, data reload: false

query1	0.01	0.01	0.00
query2	0.10	0.04	0.04
query3	0.27	0.08	0.08
query4	1.61	0.09	0.09
query5	0.23	0.24	0.24
query6	1.17	0.67	0.68
query7	0.03	0.00	0.01
query8	0.05	0.04	0.04
query9	0.42	0.35	0.35
query10	0.57	0.61	0.61
query11	0.20	0.13	0.14
query12	0.18	0.15	0.14
query13	0.49	0.49	0.47
query14	1.02	1.02	1.03
query15	0.63	0.62	0.61
query16	0.34	0.35	0.34
query17	1.11	1.18	1.13
query18	0.20	0.18	0.19
query19	2.02	2.05	2.05
query20	0.02	0.01	0.02
query21	15.50	0.20	0.14
query22	4.86	0.06	0.04
query23	16.27	0.33	0.13
query24	3.18	0.56	0.46
query25	0.16	0.04	0.06
query26	1.39	0.22	0.16
query27	0.08	0.03	0.06
query28	3.30	0.77	0.35
query29	12.51	4.24	3.33
query30	0.28	0.13	0.10
query31	2.78	0.56	0.32
query32	3.22	0.59	0.50
query33	3.21	3.28	3.18
query34	15.30	3.95	3.36
query35	3.34	3.35	3.30
query36	0.57	0.43	0.45
query37	0.11	0.06	0.06
query38	0.04	0.04	0.03
query39	0.04	0.03	0.03
query40	0.18	0.16	0.13
query41	0.09	0.03	0.02
query42	0.04	0.03	0.03
query43	0.04	0.03	0.03
Total cold run time: 97.16 s
Total hot run time: 24.4 s

@hello-stephen

Copy link
Copy Markdown
Contributor

FE Regression Coverage Report

Increment line coverage 100.00% (3/3) 🎉
Increment coverage report
Complete coverage report

@hubgeter
hubgeter marked this pull request as ready for review October 30, 2026 06:31
@hubgeter

Copy link
Copy Markdown
Contributor Author

/review

@github-actions

Copy link
Copy Markdown
Contributor

Codex automated review failed and did not complete.

Error: Selected model is at capacity. Please try a different model.
Workflow run: https://github.com/apache/doris/actions/runs/41014682888

Please inspect the workflow logs and rerun the review after the underlying issue is resolved.

@hubgeter

Copy link
Copy Markdown
Contributor Author

/review

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed PR 69836 at head cd2facafd8566957976f251b248cfc4d41dd0f62. The plain external-view path now avoids table-handle resolution before view expansion; the empty pin is safe for that path because BindRelation expands the view and schema warmup uses the view definition. No new lock, protocol, persistence, or lifecycle issue was found, and there are no existing inline blocking findings or additional user focus points.

One correctness issue is reported inline: relation-scoped @branch/@tag selectors are silently dropped for plugin views, so an Iceberg view reference can read the default/latest view body instead of rejecting or honoring the requested ref. The added unit test covers the three snapshot overloads but does not cover this selector path.

This was a static-only review; builds and tests were not run. Convergence is false at the round-3 cap because the required independent subagent did not return after repeated model-capacity failures; the main-agent coverage and verified finding are still delivered per the bounded contract.

Review did not converge after 3 rounds. This automated review cannot pass the review check.

Formal convergence could not be established because the required independent review subagent failed to return after repeated model-capacity errors. Main-agent coverage is complete through the round-3 final sweep; one verified inline finding is delivered.

Optional<MvccSnapshot> latestSnapshotFence) {
// Views have no table snapshot. BindRelation expands their SQL and pins the base tables;
// resolving a table handle here would load the view name through the table API.
if (isView()) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P1] Preserve or reject view @branch/@tag selectors: BindRelation calls loadSnapshots before expanding a plugin view, and its view guard rejects only TableSnapshot. With this early return, Iceberg @branch/@tag never reaches resolveTimeTravel, and the returned LogicalSubQueryAlias carries no selector, so SELECT ... FROM view@branch('b') silently reads the default/latest view body. Reject these selectors for views (as for FOR VERSION/TIME) or propagate them to the expanded base relations; do not drop them.

@hello-stephen

Copy link
Copy Markdown
Contributor

FE Regression Coverage Report

Increment line coverage 0.45% (3/660) 🎉
Increment coverage report
Complete coverage report

Gabriel39 added a commit that referenced this pull request Nov 2, 2026
### What problem does this PR solve?

Related PR: #69836

Selecting an external Iceberg REST view can fail during query binding
with `BadRequestException: ... is not an Iceberg compatible table`, even
when the catalog supports reading the view definition.

`BindRelation` loads statement snapshots before expanding the view SQL.
The snapshot loader calls
`PluginDrivenExternalTable.resolveConnectorTableHandle`, which
unconditionally asks the connector for a table handle using the view
name. A REST catalog can reject that table request with HTTP 400 instead
of reporting a missing table. The Iceberg connector only converts
`NoSuchTableException` to an empty handle, so the error escapes before
the existing view-existence fallback can run.

Resolve the object's view classification before requesting a table
handle. Known views return no table handle and retain the live
view-existence check, so a view deleted outside Doris still invalidates
its cached lookup. Snapshot loading can then return an empty view pin
and continue to view expansion; the referenced base tables keep their
normal snapshot handling. Ordinary table handles and table-load errors
retain their existing behavior.

This addresses the shared handle-resolution boundary, including callers
outside the snapshot loader. #69836 proposes skipping the
snapshot-loader entry instead.

### Release note

Fix external view queries failing when an Iceberg REST catalog rejects
table metadata requests for view names.

### Check List (For Author)

- Test
    - [ ] Regression test
    - [x] Unit Test
    - [ ] Manual test
    - [ ] No need to test or manual test.
- Behavior changed:
    - [ ] No.
- [x] Yes. External views no longer issue a table-handle request during
resolution.
- Does this need documentation?
    - [x] No.
    - [ ] Yes.

Validation:
- `run-fe-ut.sh --run` with `PluginDrivenExternalViewHandleTest`,
`PluginDrivenExternalTableTest`, `PluginDrivenMvccExternalTableTest`,
and `PluginDrivenMissingTableTest`: **164 tests passed**, with no
failures, errors, or skips.
- Before the fix, both view cases failed with the reproduced
table-endpoint error; the ordinary table cases passed.
- `mvn checkstyle:check -pl fe-core`: **0 violations**.
- `git diff --check` passed.

No live Databricks integration test was run.
### What problem does this PR solve?

Related PR: apache#69836

Problem Summary: The external-view snapshot shortcut ignores relation scan
parameters such as @Branch and @tag. BindRelation then expands the default view
SQL without honoring or rejecting the requested selector. Reject scan parameters
before returning the empty view snapshot, while retaining the ordinary-view
shortcut and existing base-table pinning.

### Release note

Reject unsupported scan parameters on external views instead of silently
ignoring branch, tag, incremental-read, or options selectors.

### Check List (For Author)

- Test: Checkstyle passed for both changed Java files. Negative unit coverage
  added for both loadSnapshot overloads and latest-fence calls; not run locally
  in accordance with the requested validation scope.
- Behavior changed: Yes, unsupported scan parameters on views produce an error.
- Does this need documentation: No.
@hubgeter

hubgeter commented Nov 2, 2026

Copy link
Copy Markdown
Contributor Author

run buildall

@hubgeter

hubgeter commented Nov 2, 2026

Copy link
Copy Markdown
Contributor Author

/review

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed PR 69836 at head 4a08890b18f91ee9cfc07b1e0b5b3d9f6773ea4a against base 2a4191c1dc94e789e1725d6cb345f46c31a17272. The change meets its stated goal: every loadSnapshot overload reaches the new view guard, plain external views receive an empty pin without table-handle resolution, and any relation TableScanParams (@branch, @tag, @incr, or @options) is rejected before connector time-travel resolution. BindRelation separately rejects FOR VERSION/TIME AS OF on plugin views, and the added unit tests cover all selector kinds plus the overloads with and without a latest fence.

Critical checkpoints: data/version correctness is preserved because the view is expanded as a LogicalSubQueryAlias and the expanded base relations retain their own MVCC pins; the empty view pin is not used by PluginDrivenScanNode as a physical scan. The synchronized isView initialization/reset lifecycle and selector-keyed StatementContext paths were traced with no new lock, persistence, protocol, configuration, or lifecycle issue. Functional parallel paths and schema-cache fallback were reviewed. The changed tests were inspected but not executed, consistent with this static-only review.

The existing inline P1 comment 4421581161 was independently revalidated and dismissed for this head: the current scanParams.isPresent() branch now throws before a selector can be silently dropped, so it is not included in existing_blocking_comment_ids. No additional user focus points were supplied.

No verified new findings. Review convergence was reached in round 1 after the main risk scan and two independent subagent reviews returned NO_NEW_VALUABLE_FINDINGS.

Review converged after 1 round(s).

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-H: Total hot run time: 28695 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit 4a08890b18f91ee9cfc07b1e0b5b3d9f6773ea4a, data reload: false

------ Round 1 ----------------------------------
============================================
q1	17599	5118	5022	5022
q2	2157	314	261	261
q3	10232	1399	827	827
q4	4682	457	340	340
q5	7441	787	534	534
q6	175	181	151	151
q7	740	791	616	616
q8	9259	1319	1053	1053
q9	5492	4204	4190	4190
q10	6830	1294	1015	1015
q11	433	243	223	223
q12	647	394	273	273
q13	18105	3656	3077	3077
q14	263	272	243	243
q15	q16	733	718	665	665
q17	1201	753	594	594
q18	7074	6201	6112	6112
q19	1115	963	594	594
q20	419	338	224	224
q21	5541	2426	2400	2400
q22	404	338	281	281
Total cold run time: 100542 ms
Total hot run time: 28695 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	5991	5893	6087	5893
q2	782	626	621	621
q3	6013	5828	5400	5400
q4	2004	2155	1560	1560
q5	5870	5755	5657	5657
q6	257	202	150	150
q7	2249	2002	1769	1769
q8	3011	2624	2610	2610
q9	7622	7495	7484	7484
q10	3617	3577	3175	3175
q11	591	407	395	395
q12	665	681	514	514
q13	3341	3660	3094	3094
q14	277	288	269	269
q15	q16	659	668	620	620
q17	7758	6981	6880	6880
q18	12913	12172	12860	12172
q19	913	788	776	776
q20	2137	2132	1908	1908
q21	5730	4613	4729	4613
q22	485	438	405	405
Total cold run time: 72885 ms
Total hot run time: 65965 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 151099 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit 4a08890b18f91ee9cfc07b1e0b5b3d9f6773ea4a, data reload: false

query5	4308	583	432	432
query6	422	222	195	195
query7	4808	457	229	229
query8	309	166	144	144
query9	8753	3173	3120	3120
query10	498	310	262	262
query11	6008	3819	3559	3559
query12	147	91	86	86
query13	1249	456	358	358
query14	6128	3911	3585	3585
query14_1	3457	3457	3409	3409
query15	200	198	185	185
query16	952	499	427	427
query17	874	686	550	550
query18	2447	422	310	310
query19	199	166	134	134
query20	86	84	83	83
query21	211	131	106	106
query22	13065	12965	12792	12792
query23	13643	12971	12464	12464
query23_1	12604	12643	12487	12487
query24	7314	833	476	476
query24_1	511	479	493	479
query25	540	422	364	364
query26	1247	262	137	137
query27	2763	438	275	275
query28	4634	2032	2047	2032
query29	1579	605	468	468
query30	306	226	181	181
query31	1007	925	814	814
query32	162	93	92	92
query33	516	306	245	245
query34	948	852	512	512
query35	728	745	642	642
query36	810	823	750	750
query37	131	105	95	95
query38	1803	1736	1681	1681
query39	787	797	744	744
query39_1	723	746	728	728
query40	224	119	103	103
query41	71	67	72	67
query42	88	85	84	84
query43	361	369	316	316
query44	1311	709	734	709
query45	182	181	170	170
query46	849	997	574	574
query47	2807	2933	2601	2601
query48	297	304	217	217
query49	575	389	287	287
query50	678	271	209	209
query51	10815	10498	10450	10450
query52	76	79	70	70
query53	185	205	145	145
query54	245	187	195	187
query55	71	63	63	63
query56	238	212	203	203
query57	1654	1593	1559	1559
query58	294	279	248	248
query59	2142	2153	1969	1969
query60	267	238	223	223
query61	152	147	139	139
query62	385	336	283	283
query63	187	152	155	152
query64	2749	989	759	759
query65	3318	3318	3270	3270
query66	1798	418	303	303
query67	20297	20182	19932	19932
query68	3186	995	631	631
query69	386	296	248	248
query70	866	771	757	757
query71	303	229	208	208
query72	2906	2676	2325	2325
query73	534	524	299	299
query74	4627	4492	4338	4338
query75	2370	2275	1926	1926
query76	2398	1009	585	585
query77	364	374	276	276
query78	9677	9702	9280	9280
query79	1002	916	549	549
query80	831	420	339	339
query81	576	320	264	264
query82	892	133	105	105
query83	288	194	182	182
query84	317	131	106	106
query85	973	439	389	389
query86	383	235	233	233
query87	1977	1942	1822	1822
query88	3840	2799	2785	2785
query89	341	292	238	238
query90	1737	175	176	175
query91	171	151	132	132
query92	103	89	82	82
query93	1014	1036	588	588
query94	529	306	269	269
query95	572	331	317	317
query96	684	502	241	241
query97	2470	2460	2310	2310
query98	157	148	145	145
query99	773	757	670	670
Total cold run time: 236246 ms
Total hot run time: 151099 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
ClickBench: Total hot run time: 24.25 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit 4a08890b18f91ee9cfc07b1e0b5b3d9f6773ea4a, data reload: false

query1	0.01	0.00	0.01
query2	0.10	0.06	0.05
query3	0.27	0.08	0.08
query4	1.61	0.10	0.10
query5	0.23	0.24	0.24
query6	1.17	0.67	0.67
query7	0.03	0.01	0.01
query8	0.06	0.04	0.03
query9	0.40	0.34	0.35
query10	0.57	0.58	0.58
query11	0.21	0.15	0.15
query12	0.18	0.15	0.14
query13	0.49	0.49	0.50
query14	1.03	1.02	1.00
query15	0.61	0.61	0.60
query16	0.34	0.34	0.35
query17	1.11	1.12	1.15
query18	0.20	0.19	0.19
query19	2.08	1.97	2.03
query20	0.02	0.01	0.01
query21	15.52	0.20	0.13
query22	4.83	0.05	0.05
query23	16.26	0.31	0.12
query24	2.93	0.50	0.42
query25	0.13	0.06	0.06
query26	1.07	0.20	0.15
query27	0.04	0.06	0.05
query28	3.33	0.78	0.36
query29	12.49	4.18	3.28
query30	0.28	0.13	0.11
query31	2.77	0.55	0.32
query32	3.22	0.60	0.49
query33	3.10	3.18	3.12
query34	15.44	4.02	3.38
query35	3.31	3.33	3.32
query36	0.57	0.44	0.42
query37	0.09	0.07	0.06
query38	0.05	0.04	0.04
query39	0.04	0.04	0.03
query40	0.16	0.15	0.14
query41	0.08	0.03	0.03
query42	0.04	0.03	0.03
query43	0.04	0.03	0.04
Total cold run time: 96.51 s
Total hot run time: 24.25 s

@924060929 924060929 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

External views execute by expanding their SQL and binding the underlying tables. Previously, snapshot loading could resolve the view name through the table metadata API before expansion. This change returns an empty view pin and rejects unsupported scan parameters while preserving independent snapshot pinning for the expanded base tables.

Independent static review of head 4a08890 against base 2a4191c found no blocking FE issues. I traced the shared snapshot entry, statement snapshot maps, view expansion, schema fallback, and related tests. The selector-loss issue in discussion_r4421581161 is fixed by the current scanParams rejection. APPROVE within the FE scope.

No builds or tests were run during this review. The supplied current-head CI snapshot reports successful P0, FE UT, external regression, compilation, and CheckStyle checks, but check_coverage_fe failed. Required-check policy was not supplied; this approval does not establish merge readiness.

Automated FE-focused static review (gpt-6.1-sol, high). No build or tests were run.

@Gabriel39
Gabriel39 merged commit 3763f09 into apache:master Nov 3, 2026
43 of 44 checks passed
@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

PR approved by anyone and no changes requested.

@github-actions github-actions Bot added reviewed approved Indicates a PR has been approved by one committer. labels Nov 3, 2026
@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

PR approved by at least one committer and no changes requested.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by one committer. dev/4.2.x dev/4.2.x-conflict reviewed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants