Skip to content

[draft] Master catalog spi 03#64095

Closed
morningman wants to merge 16 commits into
apache:masterfrom
morningman:master-catalog-spi-03
Closed

[draft] Master catalog spi 03#64095
morningman wants to merge 16 commits into
apache:masterfrom
morningman:master-catalog-spi-03

Conversation

@morningman
Copy link
Copy Markdown
Contributor

only for testing

@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?

@morningman
Copy link
Copy Markdown
Contributor Author

run buildall

@hello-stephen
Copy link
Copy Markdown
Contributor

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

------ Round 1 ----------------------------------
orders	Doris	NULL	NULL	0	0	0	NULL	0	NULL	NULL	2023-12-26 18:27:23	2023-12-26 18:42:55	NULL	utf-8	NULL	NULL	
============================================
q1	17848	4038	4331	4038
q2	q3	10767	1382	804	804
q4	4684	476	342	342
q5	7588	866	580	580
q6	183	171	138	138
q7	766	845	644	644
q8	9336	1589	1613	1589
q9	5810	4533	4508	4508
q10	6736	1812	1502	1502
q11	427	270	256	256
q12	623	429	286	286
q13	18119	3344	2769	2769
q14	259	265	236	236
q15	q16	821	786	709	709
q17	1007	894	957	894
q18	7138	5765	5723	5723
q19	1410	1290	1068	1068
q20	516	394	261	261
q21	6168	2851	2678	2678
q22	452	372	309	309
Total cold run time: 100658 ms
Total hot run time: 29334 ms

----- Round 2, with runtime_filter_mode=off -----
orders	Doris	NULL	NULL	150000000	42	6422171781	NULL	22778155	NULL	NULL	2023-12-26 18:27:23	2023-12-26 18:42:55	NULL	utf-8	NULL	NULL	
============================================
q1	5079	4679	4743	4679
q2	q3	4828	5276	4688	4688
q4	2120	2170	1375	1375
q5	4744	4850	4674	4674
q6	232	172	124	124
q7	1838	1735	1569	1569
q8	2358	2082	2018	2018
q9	7812	7786	7320	7320
q10	4710	4643	4230	4230
q11	527	383	350	350
q12	720	727	519	519
q13	3125	3363	2728	2728
q14	269	271	263	263
q15	q16	674	695	596	596
q17	1265	1249	1274	1249
q18	7264	6706	6811	6706
q19	1139	1097	1135	1097
q20	2227	2210	1968	1968
q21	5241	4520	4376	4376
q22	529	439	418	418
Total cold run time: 56701 ms
Total hot run time: 50947 ms

@hello-stephen
Copy link
Copy Markdown
Contributor

TPC-DS: Total hot run time: 169151 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 aec4030966a337957069f1282b55d026205babac, data reload: false

query5	4337	638	477	477
query6	441	207	189	189
query7	4881	566	310	310
query8	381	226	198	198
query9	8716	4010	3995	3995
query10	442	304	255	255
query11	5908	2382	2121	2121
query12	153	109	100	100
query13	1272	605	427	427
query14	6393	5333	5072	5072
query14_1	4374	4355	4398	4355
query15	204	199	174	174
query16	1016	455	455	455
query17	1107	698	553	553
query18	2616	479	333	333
query19	205	182	140	140
query20	115	106	104	104
query21	215	140	121	121
query22	13621	13568	13343	13343
query23	17324	16471	16163	16163
query23_1	16226	16193	16259	16193
query24	7489	1760	1307	1307
query24_1	1324	1284	1313	1284
query25	578	487	401	401
query26	1289	316	174	174
query27	2730	560	342	342
query28	4422	2054	2026	2026
query29	1091	620	497	497
query30	328	237	205	205
query31	1119	1082	949	949
query32	120	63	60	60
query33	541	330	272	272
query34	1200	1091	651	651
query35	758	777	693	693
query36	1406	1368	1266	1266
query37	159	107	93	93
query38	3153	3156	3041	3041
query39	927	912	902	902
query39_1	875	873	870	870
query40	226	127	107	107
query41	72	69	71	69
query42	98	99	96	96
query43	316	320	285	285
query44	
query45	197	193	180	180
query46	1081	1175	780	780
query47	2336	2356	2231	2231
query48	424	420	305	305
query49	649	487	379	379
query50	982	342	262	262
query51	4367	4368	4210	4210
query52	92	91	79	79
query53	250	276	209	209
query54	302	238	210	210
query55	79	77	73	73
query56	248	237	243	237
query57	1423	1415	1316	1316
query58	261	243	231	231
query59	1573	1635	1437	1437
query60	293	265	242	242
query61	232	155	154	154
query62	684	652	590	590
query63	233	196	182	182
query64	2530	779	624	624
query65	
query66	1768	461	336	336
query67	29630	29671	29515	29515
query68	
query69	413	319	270	270
query70	969	982	944	944
query71	303	224	213	213
query72	3138	2677	2381	2381
query73	886	755	424	424
query74	5075	4916	4745	4745
query75	2639	2543	2285	2285
query76	2336	1164	796	796
query77	353	373	294	294
query78	12350	12308	11915	11915
query79	1478	1083	757	757
query80	744	457	410	410
query81	488	287	246	246
query82	576	156	125	125
query83	350	279	258	258
query84	254	141	114	114
query85	940	532	446	446
query86	411	314	291	291
query87	3380	3376	3206	3206
query88	3670	2769	2745	2745
query89	445	377	326	326
query90	1862	179	187	179
query91	178	160	139	139
query92	66	63	58	58
query93	1436	1511	912	912
query94	618	362	325	325
query95	667	458	347	347
query96	1033	807	365	365
query97	2698	2685	2543	2543
query98	214	209	207	207
query99	1151	1171	1047	1047
Total cold run time: 251271 ms
Total hot run time: 169151 ms

@hello-stephen
Copy link
Copy Markdown
Contributor

FE UT Coverage Report

Increment line coverage 45.50% (86/189) 🎉
Increment coverage report
Complete coverage report

@morningman
Copy link
Copy Markdown
Contributor Author

run buildall

@hello-stephen
Copy link
Copy Markdown
Contributor

FE Regression Coverage Report

Increment line coverage 11.11% (21/189) 🎉
Increment coverage report
Complete coverage report

@morningman
Copy link
Copy Markdown
Contributor Author

run buildall

@hello-stephen
Copy link
Copy Markdown
Contributor

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

------ Round 1 ----------------------------------
orders	Doris	NULL	NULL	0	0	0	NULL	0	NULL	NULL	2023-12-26 18:27:23	2023-12-26 18:42:55	NULL	utf-8	NULL	NULL	
============================================
q1	17698	4072	4037	4037
q2	q3	10813	1428	834	834
q4	4689	483	354	354
q5	7560	876	580	580
q6	184	175	137	137
q7	789	865	639	639
q8	9418	1652	1792	1652
q9	6118	4560	4518	4518
q10	6877	1850	1544	1544
q11	429	274	251	251
q12	636	428	287	287
q13	18213	3371	2760	2760
q14	273	262	246	246
q15	q16	833	791	712	712
q17	1004	846	1005	846
q18	7014	5732	5647	5647
q19	1293	1259	1051	1051
q20	539	409	266	266
q21	6402	2889	2762	2762
q22	470	391	324	324
Total cold run time: 101252 ms
Total hot run time: 29447 ms

----- Round 2, with runtime_filter_mode=off -----
orders	Doris	NULL	NULL	150000000	42	6422171781	NULL	22778155	NULL	NULL	2023-12-26 18:27:23	2023-12-26 18:42:55	NULL	utf-8	NULL	NULL	
============================================
q1	5044	4813	4835	4813
q2	q3	4972	5291	4722	4722
q4	2107	2222	1398	1398
q5	4881	5190	4700	4700
q6	236	180	129	129
q7	1862	1755	1581	1581
q8	2428	2192	2104	2104
q9	7988	7778	7446	7446
q10	4764	4684	4239	4239
q11	539	385	353	353
q12	719	738	526	526
q13	3056	3368	2744	2744
q14	285	276	257	257
q15	q16	685	699	629	629
q17	1289	1251	1260	1251
q18	7125	6951	7005	6951
q19	1091	1115	1130	1115
q20	2233	2233	1932	1932
q21	5300	4600	4433	4433
q22	526	486	415	415
Total cold run time: 57130 ms
Total hot run time: 51738 ms

@morningman
Copy link
Copy Markdown
Contributor Author

run buildall

@hello-stephen
Copy link
Copy Markdown
Contributor

TPC-DS: Total hot run time: 170249 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 c8d09fce31a53a3165dcba92f862addbb20e247f, data reload: false

query5	4335	643	507	507
query6	477	201	202	201
query7	4827	566	302	302
query8	380	220	204	204
query9	8765	4051	4050	4050
query10	454	323	273	273
query11	5971	2357	2150	2150
query12	168	105	102	102
query13	1299	636	445	445
query14	6425	5403	5102	5102
query14_1	4382	4391	4362	4362
query15	205	195	181	181
query16	1020	453	433	433
query17	1117	709	564	564
query18	2454	473	342	342
query19	197	184	141	141
query20	126	113	107	107
query21	228	142	116	116
query22	13746	13774	13538	13538
query23	17382	16533	16202	16202
query23_1	16322	16288	16304	16288
query24	7628	1806	1285	1285
query24_1	1288	1288	1301	1288
query25	544	451	407	407
query26	1299	330	169	169
query27	2701	534	327	327
query28	4501	2023	2042	2023
query29	1111	632	508	508
query30	319	235	204	204
query31	1111	1085	970	970
query32	104	64	60	60
query33	560	337	268	268
query34	1191	1187	658	658
query35	757	803	687	687
query36	1422	1405	1238	1238
query37	157	122	93	93
query38	3199	3142	3075	3075
query39	931	916	919	916
query39_1	901	868	903	868
query40	232	132	115	115
query41	71	71	70	70
query42	101	102	99	99
query43	325	327	287	287
query44	
query45	206	194	182	182
query46	1114	1214	752	752
query47	2358	2378	2204	2204
query48	397	410	304	304
query49	652	487	377	377
query50	1002	367	260	260
query51	4410	4303	4262	4262
query52	92	98	85	85
query53	252	269	197	197
query54	296	233	223	223
query55	83	81	76	76
query56	267	247	257	247
query57	1447	1412	1324	1324
query58	259	227	232	227
query59	1589	1648	1459	1459
query60	312	270	253	253
query61	189	190	226	190
query62	702	665	571	571
query63	229	189	181	181
query64	2578	805	624	624
query65	
query66	1792	471	380	380
query67	29865	29792	29625	29625
query68	
query69	429	294	266	266
query70	992	963	903	903
query71	300	219	230	219
query72	3055	2683	2386	2386
query73	844	763	458	458
query74	5153	4970	4765	4765
query75	2663	2580	2256	2256
query76	2341	1151	753	753
query77	348	374	282	282
query78	12476	12516	11954	11954
query79	1472	1030	792	792
query80	593	476	408	408
query81	457	285	247	247
query82	575	161	120	120
query83	358	273	248	248
query84	259	146	113	113
query85	865	530	436	436
query86	373	309	288	288
query87	3373	3333	3177	3177
query88	3614	2783	2743	2743
query89	438	383	327	327
query90	1969	183	182	182
query91	179	166	141	141
query92	63	59	61	59
query93	1455	1454	914	914
query94	560	351	309	309
query95	712	467	349	349
query96	1072	821	343	343
query97	2743	2696	2533	2533
query98	219	250	216	216
query99	1175	1176	1024	1024
Total cold run time: 252397 ms
Total hot run time: 170249 ms

@hello-stephen
Copy link
Copy Markdown
Contributor

FE UT Coverage Report

Increment line coverage 45.26% (86/190) 🎉
Increment coverage report
Complete coverage report

@hello-stephen
Copy link
Copy Markdown
Contributor

FE Regression Coverage Report

Increment line coverage 10.14% (22/217) 🎉
Increment coverage report
Complete coverage report

@morningman
Copy link
Copy Markdown
Contributor Author

run buildall

@morningman morningman closed this Jun 4, 2026
@morningman morningman reopened this Jun 4, 2026
@morningman
Copy link
Copy Markdown
Contributor Author

run buildall

@hello-stephen
Copy link
Copy Markdown
Contributor

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

------ Round 1 ----------------------------------
orders	Doris	NULL	NULL	0	0	0	NULL	0	NULL	NULL	2023-12-26 18:27:23	2023-12-26 18:42:55	NULL	utf-8	NULL	NULL	
============================================
q1	17753	4098	4111	4098
q2	q3	10795	1449	848	848
q4	4685	483	348	348
q5	7589	880	598	598
q6	185	177	137	137
q7	797	871	638	638
q8	9381	1735	1693	1693
q9	5846	4535	4525	4525
q10	6727	1864	1548	1548
q11	436	264	251	251
q12	639	424	294	294
q13	18206	3413	2815	2815
q14	271	270	243	243
q15	q16	822	773	718	718
q17	938	952	979	952
q18	7149	5706	5445	5445
q19	1336	1313	1061	1061
q20	536	417	265	265
q21	5827	2663	2405	2405
q22	441	364	300	300
Total cold run time: 100359 ms
Total hot run time: 29182 ms

----- Round 2, with runtime_filter_mode=off -----
orders	Doris	NULL	NULL	150000000	42	6422171781	NULL	22778155	NULL	NULL	2023-12-26 18:27:23	2023-12-26 18:42:55	NULL	utf-8	NULL	NULL	
============================================
q1	4469	4396	4318	4318
q2	q3	4501	4951	4323	4323
q4	2102	2263	1396	1396
q5	4501	4360	4363	4360
q6	229	174	127	127
q7	1782	1929	1991	1929
q8	2642	2185	2250	2185
q9	8147	8306	7945	7945
q10	4879	4782	4301	4301
q11	589	418	425	418
q12	801	758	534	534
q13	3289	3665	3035	3035
q14	300	293	274	274
q15	q16	711	742	640	640
q17	1335	1318	1522	1318
q18	7923	7322	7249	7249
q19	1177	1127	1088	1088
q20	2220	2241	1955	1955
q21	5269	4583	4537	4537
q22	515	458	413	413
Total cold run time: 57381 ms
Total hot run time: 52345 ms

@hello-stephen
Copy link
Copy Markdown
Contributor

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

------ Round 1 ----------------------------------
orders	Doris	NULL	NULL	0	0	0	NULL	0	NULL	NULL	2023-12-26 18:27:23	2023-12-26 18:42:55	NULL	utf-8	NULL	NULL	
============================================
q1	17686	3960	3983	3960
q2	q3	10819	1366	825	825
q4	4694	478	353	353
q5	7573	864	608	608
q6	187	173	136	136
q7	776	876	644	644
q8	9336	1574	1628	1574
q9	5879	4510	4507	4507
q10	6701	1804	1543	1543
q11	441	277	254	254
q12	627	428	302	302
q13	18119	3375	2762	2762
q14	262	265	242	242
q15	q16	818	773	710	710
q17	988	894	934	894
q18	6865	5805	5631	5631
q19	1330	1222	1101	1101
q20	526	405	274	274
q21	6245	2868	2601	2601
q22	459	377	322	322
Total cold run time: 100331 ms
Total hot run time: 29243 ms

----- Round 2, with runtime_filter_mode=off -----
orders	Doris	NULL	NULL	150000000	42	6422171781	NULL	22778155	NULL	NULL	2023-12-26 18:27:23	2023-12-26 18:42:55	NULL	utf-8	NULL	NULL	
============================================
q1	5124	4673	4738	4673
q2	q3	4853	5274	4683	4683
q4	2124	2164	1387	1387
q5	4754	4902	4725	4725
q6	259	180	132	132
q7	1913	1770	1522	1522
q8	2432	2084	2119	2084
q9	7901	7486	7361	7361
q10	4726	4841	4228	4228
q11	524	383	350	350
q12	736	734	524	524
q13	3009	3366	2804	2804
q14	272	269	248	248
q15	q16	670	686	613	613
q17	1269	1238	1239	1238
q18	7214	7027	6806	6806
q19	1087	1087	1117	1087
q20	2222	2204	1941	1941
q21	5239	4515	4357	4357
q22	532	468	446	446
Total cold run time: 56860 ms
Total hot run time: 51209 ms

@hello-stephen
Copy link
Copy Markdown
Contributor

TPC-DS: Total hot run time: 168942 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 32827d30e9eec21c61471d70ac3d568b6cfa2771, data reload: false

query5	4317	646	488	488
query6	466	202	184	184
query7	4861	556	296	296
query8	380	220	219	219
query9	8788	4024	4060	4024
query10	452	312	252	252
query11	5888	2368	2235	2235
query12	155	103	96	96
query13	1263	606	405	405
query14	6355	5384	5044	5044
query14_1	4398	4379	4336	4336
query15	205	194	177	177
query16	988	448	422	422
query17	935	687	555	555
query18	2451	469	353	353
query19	217	190	150	150
query20	111	107	112	107
query21	228	146	119	119
query22	13570	13535	13405	13405
query23	17457	16576	16296	16296
query23_1	16298	16355	16288	16288
query24	7426	1814	1339	1339
query24_1	1322	1319	1321	1319
query25	594	500	420	420
query26	1282	331	170	170
query27	2680	560	346	346
query28	4505	2065	2024	2024
query29	1106	631	514	514
query30	313	240	204	204
query31	1117	1087	967	967
query32	116	66	61	61
query33	556	337	257	257
query34	1200	1135	654	654
query35	761	789	710	710
query36	1405	1418	1232	1232
query37	155	109	96	96
query38	3221	3142	3032	3032
query39	933	937	914	914
query39_1	887	897	886	886
query40	231	130	107	107
query41	71	67	69	67
query42	98	97	97	97
query43	318	333	285	285
query44	
query45	200	189	180	180
query46	1113	1196	757	757
query47	2397	2367	2239	2239
query48	368	394	305	305
query49	642	488	373	373
query50	999	352	264	264
query51	4335	4312	4270	4270
query52	90	92	79	79
query53	246	278	195	195
query54	292	251	216	216
query55	81	77	73	73
query56	247	237	233	233
query57	1448	1442	1317	1317
query58	255	222	229	222
query59	1603	1766	1455	1455
query60	294	245	226	226
query61	152	160	157	157
query62	701	654	578	578
query63	230	182	181	181
query64	2551	794	634	634
query65	
query66	1801	458	343	343
query67	29792	29735	28873	28873
query68	
query69	414	289	268	268
query70	1003	951	945	945
query71	315	222	204	204
query72	3017	2727	2474	2474
query73	858	820	429	429
query74	5136	4941	4785	4785
query75	2665	2584	2231	2231
query76	2329	1170	814	814
query77	348	366	283	283
query78	12484	12399	11808	11808
query79	1485	1086	714	714
query80	585	477	393	393
query81	453	281	242	242
query82	569	160	120	120
query83	358	273	252	252
query84	311	147	117	117
query85	883	552	449	449
query86	363	308	268	268
query87	3393	3360	3169	3169
query88	3651	2766	2742	2742
query89	431	377	331	331
query90	1959	181	178	178
query91	176	166	162	162
query92	66	64	58	58
query93	1476	1415	907	907
query94	548	356	283	283
query95	698	494	343	343
query96	1056	826	347	347
query97	2701	2692	2581	2581
query98	209	210	208	208
query99	1138	1174	1033	1033
Total cold run time: 251441 ms
Total hot run time: 168942 ms

@hello-stephen
Copy link
Copy Markdown
Contributor

TPC-DS: Total hot run time: 168867 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 df74a162f37b78d165896111e66e2adbeb41c9e2, data reload: false

query5	4321	626	474	474
query6	437	204	178	178
query7	4816	548	292	292
query8	368	219	206	206
query9	8780	4041	4048	4041
query10	447	303	271	271
query11	5911	2346	2164	2164
query12	151	105	96	96
query13	1283	611	426	426
query14	6390	5416	5065	5065
query14_1	4412	4772	4383	4383
query15	215	199	182	182
query16	1049	462	446	446
query17	1157	725	590	590
query18	2710	499	355	355
query19	219	197	148	148
query20	121	111	105	105
query21	221	143	124	124
query22	13682	13541	13409	13409
query23	17393	16495	16215	16215
query23_1	16197	16254	16249	16249
query24	7464	1757	1306	1306
query24_1	1300	1319	1340	1319
query25	548	442	385	385
query26	1337	314	165	165
query27	2617	544	346	346
query28	4454	2037	2072	2037
query29	1091	605	475	475
query30	319	234	197	197
query31	1137	1082	943	943
query32	126	59	66	59
query33	511	312	253	253
query34	1166	1142	657	657
query35	758	780	676	676
query36	1354	1374	1240	1240
query37	151	102	90	90
query38	3208	3166	3013	3013
query39	947	922	899	899
query39_1	876	873	881	873
query40	227	127	105	105
query41	67	64	63	63
query42	98	92	93	92
query43	316	326	284	284
query44	
query45	194	186	181	181
query46	1090	1210	762	762
query47	2420	2439	2230	2230
query48	418	426	299	299
query49	630	478	357	357
query50	1016	375	259	259
query51	4356	4265	4248	4248
query52	88	89	76	76
query53	246	271	192	192
query54	272	213	199	199
query55	79	75	72	72
query56	235	258	220	220
query57	1438	1412	1316	1316
query58	257	217	213	213
query59	1599	1617	1463	1463
query60	286	248	234	234
query61	149	157	155	155
query62	710	661	589	589
query63	231	181	189	181
query64	2500	797	614	614
query65	
query66	1728	470	347	347
query67	29007	29659	29500	29500
query68	
query69	446	308	271	271
query70	1003	981	942	942
query71	303	228	198	198
query72	2894	2659	2368	2368
query73	887	764	427	427
query74	5160	4952	4795	4795
query75	2664	2570	2249	2249
query76	2360	1158	790	790
query77	356	381	281	281
query78	12389	12317	11763	11763
query79	1305	1055	753	753
query80	543	471	383	383
query81	446	286	237	237
query82	240	154	121	121
query83	274	284	250	250
query84	258	142	111	111
query85	835	529	425	425
query86	339	299	306	299
query87	3352	3356	3192	3192
query88	3662	2788	2760	2760
query89	418	386	327	327
query90	2209	181	178	178
query91	176	163	137	137
query92	66	60	64	60
query93	1457	1462	934	934
query94	514	322	316	316
query95	681	401	350	350
query96	1112	844	330	330
query97	2689	2707	2562	2562
query98	208	211	218	211
query99	1182	1179	1034	1034
Total cold run time: 250094 ms
Total hot run time: 168867 ms

@hello-stephen
Copy link
Copy Markdown
Contributor

FE UT Coverage Report

Increment line coverage 45.26% (86/190) 🎉
Increment coverage report
Complete coverage report

@hello-stephen
Copy link
Copy Markdown
Contributor

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

------ Round 1 ----------------------------------
orders	Doris	NULL	NULL	0	0	0	NULL	0	NULL	NULL	2023-12-26 18:27:23	2023-12-26 18:42:55	NULL	utf-8	NULL	NULL	
============================================
q1	17906	4121	4061	4061
q2	q3	10832	1397	809	809
q4	4686	471	351	351
q5	7557	878	580	580
q6	189	173	139	139
q7	785	841	666	666
q8	9363	1655	1612	1612
q9	5852	4563	4480	4480
q10	6747	1799	1555	1555
q11	434	267	277	267
q12	640	435	291	291
q13	18104	3380	2774	2774
q14	261	262	239	239
q15	q16	820	771	705	705
q17	993	1004	974	974
q18	6835	5795	5527	5527
q19	1320	1282	1119	1119
q20	543	401	274	274
q21	6371	2815	2685	2685
q22	461	377	317	317
Total cold run time: 100699 ms
Total hot run time: 29425 ms

----- Round 2, with runtime_filter_mode=off -----
orders	Doris	NULL	NULL	150000000	42	6422171781	NULL	22778155	NULL	NULL	2023-12-26 18:27:23	2023-12-26 18:42:55	NULL	utf-8	NULL	NULL	
============================================
q1	5151	4751	5030	4751
q2	q3	4874	5307	4745	4745
q4	2135	2158	1393	1393
q5	4902	4927	4754	4754
q6	233	181	132	132
q7	1832	1749	1646	1646
q8	2443	2139	2121	2121
q9	7959	7812	7421	7421
q10	4766	4659	4240	4240
q11	529	390	356	356
q12	727	744	528	528
q13	3065	3373	2768	2768
q14	272	277	249	249
q15	q16	688	715	616	616
q17	1287	1268	1250	1250
q18	7378	7049	6701	6701
q19	1131	1086	1133	1086
q20	2208	2224	1961	1961
q21	5295	4571	4442	4442
q22	503	471	438	438
Total cold run time: 57378 ms
Total hot run time: 51598 ms

@hello-stephen
Copy link
Copy Markdown
Contributor

TPC-DS: Total hot run time: 168454 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 6bde56289905c680e0398f39d61895d9ffe813d5, data reload: false

query5	4340	628	482	482
query6	482	200	187	187
query7	4823	570	312	312
query8	378	216	210	210
query9	8801	4044	4084	4044
query10	453	310	272	272
query11	6000	2379	2161	2161
query12	161	106	101	101
query13	1292	596	426	426
query14	6384	5374	5016	5016
query14_1	4363	4362	4335	4335
query15	205	198	171	171
query16	979	435	430	430
query17	932	686	636	636
query18	2437	474	332	332
query19	197	178	141	141
query20	111	107	109	107
query21	220	138	117	117
query22	13547	13594	13341	13341
query23	17319	16613	16111	16111
query23_1	16332	16238	16398	16238
query24	7615	1794	1331	1331
query24_1	1370	1320	1325	1320
query25	584	466	405	405
query26	1314	319	166	166
query27	2664	565	371	371
query28	4577	2031	2032	2031
query29	1111	635	506	506
query30	307	236	198	198
query31	1141	1079	965	965
query32	125	61	61	61
query33	534	333	266	266
query34	1226	1151	657	657
query35	758	768	696	696
query36	1462	1404	1253	1253
query37	169	106	94	94
query38	3274	3160	3058	3058
query39	956	926	887	887
query39_1	894	885	869	869
query40	282	125	106	106
query41	70	67	69	67
query42	98	98	95	95
query43	322	323	286	286
query44	
query45	203	188	189	188
query46	1080	1218	759	759
query47	2395	2392	2269	2269
query48	419	430	298	298
query49	649	491	373	373
query50	1006	371	254	254
query51	4386	4311	4207	4207
query52	90	90	79	79
query53	250	281	207	207
query54	289	227	229	227
query55	81	78	75	75
query56	255	237	227	227
query57	1450	1417	1325	1325
query58	269	231	224	224
query59	1595	1709	1443	1443
query60	293	257	253	253
query61	219	157	154	154
query62	697	656	592	592
query63	234	185	180	180
query64	2563	785	617	617
query65	
query66	1802	468	348	348
query67	29753	28965	28887	28887
query68	
query69	419	313	259	259
query70	1018	931	924	924
query71	310	219	213	213
query72	3221	2670	2382	2382
query73	873	761	426	426
query74	5172	4928	4799	4799
query75	2650	2564	2235	2235
query76	2424	1179	800	800
query77	343	382	290	290
query78	12402	12372	11885	11885
query79	1374	1025	795	795
query80	634	473	401	401
query81	462	279	237	237
query82	808	157	124	124
query83	346	273	249	249
query84	304	144	112	112
query85	880	538	430	430
query86	377	292	299	292
query87	3394	3384	3171	3171
query88	3636	2711	2718	2711
query89	447	381	327	327
query90	1928	181	188	181
query91	178	162	135	135
query92	66	61	58	58
query93	1478	1515	815	815
query94	566	350	308	308
query95	680	382	423	382
query96	1049	850	355	355
query97	2721	2697	2599	2599
query98	214	211	202	202
query99	1156	1156	1027	1027
Total cold run time: 252602 ms
Total hot run time: 168454 ms

@hello-stephen
Copy link
Copy Markdown
Contributor

FE Regression Coverage Report

Increment line coverage 11.58% (22/190) 🎉
Increment coverage report
Complete coverage report

morningman and others added 16 commits June 4, 2026 21:25
This multi-month refactor needs persistent state for progress, decisions,
risks, and cross-session agent handoff. Establishes a file-based tracking
system including dashboard, ADR decision log, deviation log, risk register,
per-stage task files, per-connector tracking, and an agent collaboration
playbook covering context budget / subagent usage / handoff norms. Closes
18 design decisions (D-001..D-018) and registers 14 risks (R-001..R-014).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…T27) (apache#63582)

## Summary

Lands the P0 SPI baseline for the catalog-SPI migration (master plan
§3.1 / RFC §2.1), with zero impact on the already-migrated JDBC + ES
connectors.

- **Batch 0** (commits 1-2): SPI types + fe-core bridges —
`ConnectorMetaInvalidator`, `ConnectorTransaction`,
`ConnectorMvccSnapshot`, `ExternalMetaCacheInvalidator`,
`ConnectorMvccSnapshotAdapter`, `PluginDrivenTransactionManager`
generalization.
- **Batch 1** (commit 3): DDL + Partition SPI —
`ConnectorCreateTableRequest` + 4 spec POJOs, 4 new defaults on
`ConnectorTableOps`, 3 new fields on `ConnectorPartitionInfo`, fe-core
converter, `PluginDrivenExternalCatalog.createTable` routing.
- **Batch 2** (commit 4): Import-gate + unit tests —
`tools/check-connector-imports.sh` wired through exec-maven-plugin;
`FakeConnectorPlugin` covering every default fall-through; routing tests
for the invalidator; converter tests for all 4 partition styles + 2
bucket flavors.

## Commits

- `[feat](connector) add P0 batch 0 SPI baseline: MetaInvalidator /
Transaction / MvccSnapshot` (T03-T08)
- `[feat](connector) wire P0 batch 0 SPI into fe-core` (T09-T12)
- `[feat](connector) add P0 batch 1 SPI: CreateTableRequest +
listPartitions` (T13-T20)
- `[feat](connector) add P0 batch 2 gate + unit tests` (T21-T23,
T26-T27)

## Test plan

- [x] `mvn -pl
fe-connector/fe-connector-api,fe-connector/fe-connector-spi -am compile`
— SPI modules compile
- [x] `mvn -pl fe-core -am compile -Dmaven.build.cache.enabled=false` —
fe-core compile
- [x] `mvn -pl fe-core checkstyle:check` — 0 violations
- [x] `mvn -pl fe-connector validate` — import gate runs and passes
(baseline clean)
- [x] `mvn -pl fe-core -am test
-Dtest='FakeConnectorPluginTest,ExternalMetaCacheInvalidatorTest,CreateTableInfoToConnectorRequestConverterTest,ConnectorPluginManagerTest,ConnectorSessionImplTest'`
— 39/39 green
- [x] `mvn -pl
fe-connector/fe-connector-jdbc,fe-connector/fe-connector-es -am compile`
— downstream connectors compile unchanged
- [ ] JDBC regression-test suite (T24) — to be exercised by this PR's CI
pipeline
- [ ] ES regression-test suite (T25) — to be exercised by this PR's CI
pipeline

## Tracking

Full plan, decisions, and risk log live under `plan-doc/` in the repo
(introduced by 6315983, already on the base branch). Per-task
status: `plan-doc/tasks/P0-spi-foundation.md`.

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…pache#63641)

## Summary

P1 batch A — close out scan-node SPI consolidation while keeping
migration-period fallbacks in place. Three surgical changes route
`PluginDrivenExternalTable` first in the nereids translator hot paths so
already-migrated SPI connectors (JDBC, ES) take the SPI route, while the
existing `instanceof XExternalTable` chains remain as fallbacks for
connectors still pending migration (P3–P7).

- **T3** — `PhysicalPlanTranslator.visitPhysicalFileScan`: move the
existing `PluginDrivenExternalTable` branch from position 8 to position
1; the 7 connector-specific branches (HMS / Iceberg / Paimon / Trino /
MaxCompute / LakeSoul / RemoteDoris) stay in place as migration-period
fallbacks
- **T4** — `PhysicalPlanTranslator.visitPhysicalHudiScan`: add a
`PluginDrivenExternalTable` branch routed to
`PluginDrivenScanNode.create(...)`, threading `tableSnapshot` +
`scanParams` through `FileQueryScanNode` setters; `incrementalRelation`
flagged as a P3 Hudi SPI extension TODO. The new branch is unreachable
today (`PhysicalHudiScan` is only built for `HMSExternalTable +
DLAType.HUDI`), so this is groundwork for P3 with zero current-day
runtime impact
- **T5** — `LogicalFileScan`: in `computeOutput()`, add a
`PluginDrivenExternalTable` branch calling new helper
`computePluginDrivenOutput()` — same shape as `computeIcebergOutput`,
using `getFullSchema()` + virtualColumns; in
`supportPruneNestedColumn()`, add an explicit `PluginDrivenExternalTable
→ false` branch. Both behaviorally equivalent for JDBC/ES today since
they have no hidden cols and no virtualColumns

P1 batch B (T1 — delete 13 legacy `Jdbc*Client` + `JdbcFieldSchema`) is
deferred to P8 because the 3 fe-core callers —
`PostgresResourceValidator`, `StreamingJobUtils`,
`CdcStreamTableValuedFunction` — are live CDC streaming code that
requires SPI extension for `getPrimaryKeys` / `getColumnsFromJdbc` /
`listTables`, which is out of P1 surgical scope.

Background and tracking docs live in `plan-doc/` (Master Plan §3.2 P1,
tasks/P1-scan-node-cleanup.md, decisions log).

## Test plan

- [x] `mvn -pl fe-core -am compile -Dmaven.build.cache.enabled=false` →
BUILD SUCCESS
- [x] `mvn -pl fe-core checkstyle:check` → 0 violations
- [x] JDBC + ES regression-test passing — baseline established in P0 /
PR apache#63582
- [ ] PR CI green on this PR
- [ ] Manual scan-node smoke for an SPI connector — JDBC `SELECT *`
should fall into the new `PluginDrivenExternalTable` branch first

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Add P2 task file with 13 tasks across 5 batches (A SPI 补齐 / B fe-core
桥接 / C 翻闸 / D 清旧 / E 测试+文档), refresh PROGRESS / HANDOFF /
connectors/trino-connector.md with the post-P1 recon findings (10 .java
in fe-core/datasource/trinoconnector, 5 live external callers, 1 reverse
instanceof, fe-connector-trino SPI ~95% with gaps in validateProperties,
preCreateValidation, pushdown ops) and the two open-question rulings
(pushdown stays in P2 batch A; GsonUtils 402/457/476 class-token entries
get deleted together with the new string-name redirect).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…or batch A

T01 - TrinoConnectorProvider.validateProperties enforces the required
trino.connector.name property at CREATE CATALOG time (ported from
fe-core TrinoConnectorExternalCatalog.checkProperties). TrinoDorisConnector
adds preCreateValidation that calls ensureInitialized() so plugin loading
and connector-factory resolution happen at catalog creation rather than
on the first SELECT.

T02 - TrinoConnectorDorisMetadata implements applyFilter and
applyProjection. applyFilter reuses the existing TrinoPredicateConverter
to translate the Doris ConnectorExpression into a Trino TupleDomain,
invokes Trino native applyFilter, and wraps the returned table handle
into a new TrinoTableHandle that retains the original column maps.
applyProjection builds Trino Variable projections + column assignments
from the SPI ConnectorColumnHandle list, invokes Trino native
applyProjection, and returns a ProjectionApplicationResult with
column-ref projections and assignments for future SPI consumers.

remainingFilter is conservatively returned as the original expression
to match legacy fe-core behavior where conjuncts are not stripped and
BE re-evaluates them; refining this to map Trino residual TupleDomain
back to a ConnectorExpression is left as a follow-up.

Strictly fe-connector-trino side; no fe-core changes (batch B will
handle GsonUtils redirect, gsonPostProcess logType migration, and
engine-name branches).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
… for batch B

T03 - GsonUtils replaces the three legacy registerSubtype entries for
TrinoConnectorExternalCatalog / Database / Table with registerCompatibleSubtype
mappings onto PluginDrivenExternalCatalog / Database / Table. The HANDOFF
originally framed T03 as "add-only" and deferred deletion to T10, but
RuntimeTypeAdapterFactory enforces label uniqueness in both registerSubtype
and registerCompatibleSubtype - having both bindings simultaneously throws
IllegalArgumentException at static init. ES/JDBC did the equivalent
replacement atomically in 5c32565; mirror that pattern here. T10 in
batch D no longer needs to touch GsonUtils - just the directory removal.

T04 - PluginDrivenExternalCatalog.gsonPostProcess extracts a
legacyLogTypeToCatalogType helper. The previous code used
logType.name().toLowerCase(Locale.ROOT) generically, which produces
"trino_connector" for Type.TRINO_CONNECTOR but CatalogFactory expects
"trino-connector" (hyphen). ES/JDBC happen to match lowercase-name by
coincidence. The helper maps TRINO_CONNECTOR explicitly and falls back to
name().toLowerCase() for the existing connectors. Future connectors with
diverging factory keys (e.g., MaxCompute) add cases here.

T05 - The original task description was based on a non-existent API
(ExternalCatalog.registerCompatibleSubtype). The only registerCompatibleSubtype
surface is on RuntimeTypeAdapterFactory in GsonUtils, which T03 already
edits. T05 is satisfied by T03 transitively; the task entry is preserved
for traceability but marked as redundant.

T06 - PluginDrivenExternalTable.getEngine and getEngineTableTypeName each
get a case "trino-connector" branch. getEngine returns
TRINO_CONNECTOR_EXTERNAL_TABLE.toEngineName() which is null because
TableType.toEngineName has no case for TRINO_CONNECTOR_EXTERNAL_TABLE -
this matches the pre-migration display where the legacy
TrinoConnectorExternalTable also fell through to a null engine string.
getEngineTableTypeName returns the enum .name(), preserving the legacy
table-type label across SHOW TABLE STATUS and information_schema.

Together these enable image deserialization to redirect legacy trino
catalogs / databases / tables onto the PluginDrivenExternal* hierarchy
with a correctly backfilled "type" property and preserved engine-name
display. CatalogFactory still routes case "trino-connector" to the
legacy factory until batch C T07 flips SPI_READY_TYPES; the intermediate
window between this commit and T07 means newly created trino catalogs
will fail to serialize (no registerSubtype anymore), so batch B and C
must land back-to-back before any deployment.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Capture the post-batch-B state and lay out the next session step-by-step:
batch C T07 SPI_READY flip is a one-line edit but must be followed
immediately by batch D so the regression window between the deleted
GsonUtils registerSubtype and the still-legacy CatalogFactory routing
closes quickly. Record the three HANDOFF description corrections found
this session (T03 cannot be add-only, T05 was duplicate of T03, T04
name-to-string mapping needed an explicit helper, T06 returns null per
legacy) so the next agent does not retread them. Mark batch A and
batch B complete in connectors/trino-connector.md and PROGRESS session
status; refresh the commit list with 31fb91c5bd3 and dfd48725c76.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… from fe-core

- T08 PhysicalPlanTranslator: drop instanceof TrinoConnectorExternalTable scan branch
  (PluginDrivenExternalTable SPI branch already handles trino-connector)
- T09 CatalogFactory: drop legacy case "trino-connector" (SPI_READY_TYPES routes it now)
- T10 remove datasource/trinoconnector/ (10 files) + legacy TrinoConnectorPredicateTest
- ExternalCatalog: TRINO_CONNECTOR db-build case -> PluginDrivenExternalDatabase (mirror JDBC)

Retain image-compat enums (InitCatalogLog.Type.TRINO_CONNECTOR,
TableType.TRINO_CONNECTOR_EXTERNAL_TABLE), GsonUtils label redirects, and the
MetastoreProperties trino-connector entry.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Cover the plugin-free converters of the Trino connector SPI bridge:
- TrinoPredicateConverterTest: ConnectorExpression pushdown trees -> Trino
  TupleDomain (EQ/range/NE/IN/IS [NOT] NULL/AND/OR, Slice encoding) plus
  graceful degradation to TupleDomain.all() on null/unsupported input
- TrinoTypeMappingTest: Trino SPI type -> Doris ConnectorType (scalars,
  decimal precision/scale, timestamp precision clamp, array/map/struct,
  unsupported-type failure)
- TrinoConnectorProviderTest: validateProperties fails fast when the required
  trino.connector.name property is missing/empty (T01)

29 tests, JUnit 5; no Trino plugin/cluster needed. Plugin-dependent paths
remain covered by the external_table_p0/p2 trino_connector regression suites.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Flip P2 trino-connector tracking to code-complete (batches C/D/E):
- tasks/P2 + PROGRESS: T07-T11,T13 ✅, T12 🟡 deferred; refresh stale
  post-rebase hashes; add 2026-06-04 phase/progress-log entries
- connectors/trino-connector.md: 100%; playbook steps 7/10/11/13 ✅
- deviations-log: record DV-001 (batch D missed ExternalCatalog db-route +
  legacy test), DV-002 (T11 no-mock / json+schema dropped), DV-003 (T12
  deferred), DV-004 (docs-next lives in website repo)
- HANDOFF: rewrite for P2-complete; PR pending branch-base alignment
  (catalog-spi-03 on master vs branch-catalog-spi at P1); note the
  rebase stale-DorisParser / clean-fe-core build gotcha

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…torContext environment

The trino-connector plugin runs in an isolated classloader (ConnectorPluginManager makes only org.apache.doris.connector/filesystem parent-first), so it loads its own bundled org.apache.doris.common.Config with default values and never sees fe.conf. Reading Config.trino_connector_plugin_dir inside the plugin always resolved to the default DORIS_HOME/plugins/connectors, so the FE scanned an empty dir and every trino-connector catalog failed with 'Cannot find Trino ConnectorFactory'.

Publish trino_connector_plugin_dir through DefaultConnectorContext.getEnvironment() (read with fe-core's real Config) and resolve it in the plugin from the environment map, mirroring how the JDBC connector receives jdbc_drivers_dir. TrinoScanPlanProvider now reuses the initialized bootstrap singleton instead of re-resolving.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…e resolves

The BE JNI reader re-adds the 'trino.' prefix to every entry of trinoConnectorOptions (TRINO_CONNECTOR_OPTION_PREFIX), then the BE Java scanner strips one 'trino.' and reads connector.name from the result. TrinoScanPlanProvider.serializeOptions was sending session.getCatalogProperties() (the full, trino.-prefixed catalog properties), so the key arrived as trino.connector.name and BE's remove("connector.name") returned null, throwing 'NullPointerException: name is null' in ConnectorName.<init> on query.

Send the stripped trino.* properties (dorisConnector.getTrinoProperties(), which includes connector.name), matching the legacy TrinoConnectorScanNode, and preserve the catalog's create_time (part of BE's connector cache key).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ordering

Two regressions from the catalog-spi trino connector rewrite, both caught by external_table_p0/trino_connector regression tests:

1. desc <table> reported Key=false for every column because TrinoConnectorDorisMetadata built ConnectorColumn without isKey. External trino tables follow the Doris convention of marking all columns as key, so pass isKey=true (matches legacy TrinoConnectorExternalTable / JdbcClient). Fixes the desc_all_types_null mismatch in trino_{pg,mysql,clickhouse,sqlserver,oracle,kafka_base}.

2. Hive scans failed with JNI ArrayIndexOutOfBoundsException ("Index N out of bounds for length N, cur path: connector://virtual") because the column handles/metadata serialized to BE used the full, HashMap-unordered column map instead of the projected columns in projection order. Use the projected handle returned by applyProjection, serialize only the projected columns in order, and use LinkedHashMap for projection assignments so Trino getRecordSet() handle-vs-columns verify passes. Fixes trino_hive_{parquet,orc,other,schema_evolution,tablesample_p0,serde_prop,different_parquet_types,prepare_hive_data_in_case}.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…om fe-core

Legacy trino-connector code under fe-core was removed in T08-T10, but the io.trino:trino-main compile dependency in fe-core/pom.xml was left behind. fe-core no longer references any io.trino.* class (zero imports across main and test sources), so it was a dead declared dependency.

Verified: clean fe-core + 'mvn -pl fe-core -am test-compile' recompiles 4658 main + 1222 test sources against the trino-less classpath, BUILD SUCCESS.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@morningman morningman force-pushed the master-catalog-spi-03 branch from 6bde562 to c4ac2c5 Compare June 4, 2026 13:26
@morningman
Copy link
Copy Markdown
Contributor Author

run buildall

@hello-stephen
Copy link
Copy Markdown
Contributor

FE UT Coverage Report

Increment line coverage 45.26% (86/190) 🎉
Increment coverage report
Complete coverage report

@hello-stephen
Copy link
Copy Markdown
Contributor

FE Regression Coverage Report

Increment line coverage 10.00% (19/190) 🎉
Increment coverage report
Complete coverage report

@morningman morningman closed this Jun 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants