Skip to content

Conversation

@xylaaaaa
Copy link
Contributor

@xylaaaaa xylaaaaa commented Dec 31, 2025

What problem does this PR solve?

Issue Number: close #xxx

Related PR: #xxx

Problem Summary:
Currently, Doris supports multiple Iceberg catalog types (HMS, REST, Hadoop, Glue, DLF, S3Tables) but lacks support for JDBC Catalog. This PR adds support for Iceberg JDBC Catalog, which allows users to store Iceberg metadata in relational databases like PostgreSQL, MySQL, and SQLite.

Key Changes:

  • Added IcebergJdbcMetaStoreProperties class to handle JDBC catalog configurations
  • Added IcebergJdbcExternalCatalog class for JDBC catalog operations
  • Integrated JDBC catalog with existing Iceberg framework (factory registration, Gson serialization)
  • Added support for all storage systems (S3, HDFS, OSS, etc.) with JDBC catalog
  • Added proper S3FileIO configuration for S3-compatible storage

Benefits:

  • Provides an alternative metadata storage option using relational databases
  • Supports database transactions for better concurrency control
  • Easier deployment compared to HMS for users without existing Hive infrastructure
  • Better integration with existing database infrastructure

Release note

Features

  • [Iceberg] Support Iceberg JDBC Catalog for metadata storage in relational databases (PostgreSQL, MySQL, SQLite)

Check List (For Author)

  • 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

Manual Test Steps:

  1. Setup PostgreSQL database with user and database
  2. Create JDBC catalog with PostgreSQL backend and S3 storage
  3. Test database and table operations (CREATE DATABASE/TABLE, INSERT, SELECT)
  4. Verify metadata is correctly stored in PostgreSQL tables
  5. Verify data files are correctly written to S3 storage
  • 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

Copilot AI review requested due to automatic review settings December 31, 2025 02:24
@hello-stephen
Copy link
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?

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds support for Iceberg JDBC Catalog, enabling metadata storage in relational databases (PostgreSQL, MySQL, SQLite) as an alternative to HMS or other catalog types. The implementation follows the existing pattern used by other Iceberg catalog types and integrates seamlessly with Doris's catalog framework.

Key Changes:

  • Added JDBC catalog type with comprehensive property handling and S3-compatible storage support
  • Integrated JDBC catalog into factory registration and serialization infrastructure
  • Added unit tests for property validation and JDBC-specific configuration passthrough

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
IcebergJdbcMetaStoreProperties.java Core implementation handling JDBC catalog properties, URI configuration, and storage integration
IcebergJdbcExternalCatalog.java External catalog class following standard pattern for JDBC catalog type
IcebergJdbcMetaStorePropertiesTest.java Unit tests validating property handling, passthrough, and required field checks
IcebergPropertiesFactory.java Registered "jdbc" catalog type in the factory
IcebergExternalCatalogFactory.java Added JDBC catalog creation in the factory switch statement
GsonUtils.java Registered IcebergJdbcExternalCatalog for JSON serialization
IcebergScanNode.java Added JDBC catalog type to supported scan sources
IcebergExternalCatalog.java Added ICEBERG_JDBC constant definition

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 157 to 191
private static void toFileIOProperties(List<StorageProperties> storagePropertiesList,
Map<String, String> fileIOProperties, Configuration conf) {
for (StorageProperties storageProperties : storagePropertiesList) {
if (storageProperties instanceof AbstractS3CompatibleProperties) {
toS3FileIOProperties((AbstractS3CompatibleProperties) storageProperties, fileIOProperties);
} else if (storageProperties.getHadoopStorageConfig() != null) {
conf.addResource(storageProperties.getHadoopStorageConfig());
}
}
}

private static void toS3FileIOProperties(AbstractS3CompatibleProperties s3Properties,
Map<String, String> options) {
// Set S3FileIO as the FileIO implementation for S3-compatible storage
options.put(CatalogProperties.FILE_IO_IMPL, "org.apache.iceberg.aws.s3.S3FileIO");

if (StringUtils.isNotBlank(s3Properties.getEndpoint())) {
options.put(S3FileIOProperties.ENDPOINT, s3Properties.getEndpoint());
}
if (StringUtils.isNotBlank(s3Properties.getUsePathStyle())) {
options.put(S3FileIOProperties.PATH_STYLE_ACCESS, s3Properties.getUsePathStyle());
}
if (StringUtils.isNotBlank(s3Properties.getRegion())) {
options.put(AwsClientProperties.CLIENT_REGION, s3Properties.getRegion());
}
if (StringUtils.isNotBlank(s3Properties.getAccessKey())) {
options.put(S3FileIOProperties.ACCESS_KEY_ID, s3Properties.getAccessKey());
}
if (StringUtils.isNotBlank(s3Properties.getSecretKey())) {
options.put(S3FileIOProperties.SECRET_ACCESS_KEY, s3Properties.getSecretKey());
}
if (StringUtils.isNotBlank(s3Properties.getSessionToken())) {
options.put(S3FileIOProperties.SESSION_TOKEN, s3Properties.getSessionToken());
}
}
Copy link

Copilot AI Dec 31, 2025

Choose a reason for hiding this comment

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

The methods toFileIOProperties and toS3FileIOProperties are duplicated from IcebergRestProperties with only minor differences (the problematic FILE_IO_IMPL line). Consider extracting these common methods to the AbstractIcebergProperties base class to eliminate code duplication and ensure consistency across all Iceberg catalog implementations. This would make maintenance easier and prevent similar issues in the future.

Copilot uses AI. Check for mistakes.
Comment on lines 170 to 172
// Set S3FileIO as the FileIO implementation for S3-compatible storage
options.put(CatalogProperties.FILE_IO_IMPL, "org.apache.iceberg.aws.s3.S3FileIO");

Copy link

Copilot AI Dec 31, 2025

Choose a reason for hiding this comment

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

Setting FILE_IO_IMPL unconditionally to S3FileIO when S3 storage is detected may break functionality for non-S3 storage types. Looking at IcebergRestProperties, the toS3FileIOProperties method does not set FILE_IO_IMPL and relies on Iceberg's automatic FileIO selection via CatalogUtil.buildIcebergCatalog. This line should be removed to maintain consistency with other catalog implementations and allow Iceberg to handle FileIO selection automatically based on the storage properties provided.

Suggested change
// Set S3FileIO as the FileIO implementation for S3-compatible storage
options.put(CatalogProperties.FILE_IO_IMPL, "org.apache.iceberg.aws.s3.S3FileIO");

Copilot uses AI. Check for mistakes.
private String uri = "";

@ConnectorProperty(
names = {"jdbc.user"},
Copy link
Contributor

Choose a reason for hiding this comment

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

How about adding iceberg. prefix to all properties?

private String jdbcStrictMode;

@ConnectorProperty(
names = {"driver_url"},
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
names = {"driver_url"},
names = {"iceberg.driver-url"},

I know it is diff from JDBC catalog's prop, but we need to keep name consistency within this iceberg jdbc catalog.

private String driverUrl;

@ConnectorProperty(
names = {"driver_class"},
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
names = {"driver_class"},
names = {"iceberg.driver-class"},

private String jdbcPassword;

@ConnectorProperty(
names = {"jdbc.init-catalog-tables"},
Copy link
Contributor

Choose a reason for hiding this comment

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

For init-catalog-tables, schema-version and strict-mode, do we have default values for these config?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

yes,init-catalog-tables=true,schema-version=v0,strict-mode=false

@xylaaaaa
Copy link
Contributor Author

xylaaaaa commented Jan 4, 2026

run buildall

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17595	4234	4088	4088
q2	2004	344	249	249
q3	10130	1243	708	708
q4	10202	879	318	318
q5	7502	2086	1809	1809
q6	182	177	136	136
q7	935	791	648	648
q8	9243	1346	1146	1146
q9	4929	4491	4480	4480
q10	6748	1780	1400	1400
q11	517	326	280	280
q12	678	708	562	562
q13	17768	3809	3057	3057
q14	277	292	273	273
q15	585	520	498	498
q16	680	691	621	621
q17	650	770	543	543
q18	6526	6453	6461	6453
q19	1226	1045	626	626
q20	413	369	272	272
q21	3317	2639	2535	2535
q22	1070	1123	1024	1024
Total cold run time: 103177 ms
Total hot run time: 31726 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4365	4237	4330	4237
q2	329	393	346	346
q3	2345	2794	2461	2461
q4	1436	1868	1475	1475
q5	4451	4497	4287	4287
q6	218	163	128	128
q7	1967	1919	1788	1788
q8	2622	2457	2380	2380
q9	7100	7095	6988	6988
q10	2376	2690	2346	2346
q11	597	467	458	458
q12	699	727	646	646
q13	3652	4041	3290	3290
q14	257	283	251	251
q15	523	484	482	482
q16	609	643	591	591
q17	1125	1291	1384	1291
q18	7263	7371	7372	7371
q19	847	796	806	796
q20	1884	1966	1822	1822
q21	4530	4322	4214	4214
q22	1064	1049	971	971
Total cold run time: 50259 ms
Total hot run time: 48619 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 172056 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 396b7266cbf34ff0368846468f59a60ef4cae239, data reload: false

query5	4741	584	425	425
query6	329	225	209	209
query7	4215	458	263	263
query8	341	231	235	231
query9	8762	2602	2615	2602
query10	523	356	306	306
query11	15188	15366	15024	15024
query12	175	114	110	110
query13	1258	481	378	378
query14	6108	2910	2685	2685
query14_1	2627	2592	2601	2592
query15	199	194	170	170
query16	1011	461	440	440
query17	1105	688	595	595
query18	2436	439	362	362
query19	228	227	202	202
query20	163	115	114	114
query21	215	139	120	120
query22	3948	3888	4022	3888
query23	15783	15646	15367	15367
query23_1	15295	15352	15382	15352
query24	7557	1542	1145	1145
query24_1	1178	1167	1165	1165
query25	528	443	387	387
query26	1257	271	153	153
query27	2781	449	286	286
query28	4579	2131	2099	2099
query29	764	512	420	420
query30	305	240	211	211
query31	813	627	555	555
query32	77	71	71	71
query33	528	331	285	285
query34	896	875	524	524
query35	748	825	705	705
query36	843	884	726	726
query37	139	91	77	77
query38	2771	2671	2683	2671
query39	784	745	737	737
query39_1	700	703	707	703
query40	215	129	111	111
query41	64	61	62	61
query42	102	100	101	100
query43	433	470	417	417
query44	1310	735	738	735
query45	184	188	174	174
query46	850	980	591	591
query47	1382	1483	1303	1303
query48	304	316	241	241
query49	606	441	324	324
query50	633	267	205	205
query51	3819	3832	3799	3799
query52	104	103	94	94
query53	292	320	273	273
query54	279	248	264	248
query55	82	78	74	74
query56	293	291	287	287
query57	1013	993	947	947
query58	266	252	241	241
query59	2174	2269	2025	2025
query60	309	314	294	294
query61	162	180	160	160
query62	406	347	300	300
query63	296	266	271	266
query64	4861	1351	1009	1009
query65	3803	3705	3679	3679
query66	1440	415	320	320
query67	15205	14485	14866	14485
query68	2778	1027	735	735
query69	435	348	311	311
query70	975	973	887	887
query71	314	297	275	275
query72	6043	3481	3684	3481
query73	605	716	304	304
query74	8772	8828	8607	8607
query75	2764	2827	2438	2438
query76	2879	1065	640	640
query77	359	375	280	280
query78	9812	9796	9160	9160
query79	1007	927	596	596
query80	1204	614	561	561
query81	561	263	233	233
query82	423	140	108	108
query83	394	254	234	234
query84	249	124	99	99
query85	913	521	453	453
query86	390	289	319	289
query87	2858	2879	2801	2801
query88	3229	2211	2216	2211
query89	399	332	326	326
query90	1996	161	150	150
query91	173	169	144	144
query92	70	68	63	63
query93	1017	945	530	530
query94	648	324	286	286
query95	579	375	307	307
query96	589	472	210	210
query97	2328	2357	2297	2297
query98	213	201	197	197
query99	571	577	497	497
Total cold run time: 247578 ms
Total hot run time: 172056 ms

@doris-robot
Copy link

ClickBench: Total hot run time: 26.96 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit 396b7266cbf34ff0368846468f59a60ef4cae239, data reload: false

query1	0.06	0.06	0.05
query2	0.09	0.05	0.06
query3	0.26	0.08	0.08
query4	1.60	0.11	0.12
query5	0.28	0.25	0.25
query6	1.14	0.66	0.66
query7	0.03	0.02	0.02
query8	0.05	0.04	0.04
query9	0.56	0.49	0.50
query10	0.55	0.55	0.56
query11	0.15	0.09	0.10
query12	0.15	0.12	0.11
query13	0.61	0.60	0.58
query14	0.97	0.95	0.95
query15	0.79	0.78	0.79
query16	0.38	0.41	0.40
query17	1.06	1.03	1.05
query18	0.23	0.21	0.22
query19	1.85	1.76	1.80
query20	0.02	0.02	0.01
query21	15.45	0.27	0.13
query22	5.44	0.05	0.05
query23	16.19	0.27	0.10
query24	0.94	0.45	0.54
query25	0.08	0.12	0.05
query26	0.16	0.14	0.14
query27	0.06	0.06	0.06
query28	4.51	1.07	0.88
query29	12.62	4.04	3.21
query30	0.28	0.14	0.12
query31	2.82	0.65	0.41
query32	3.23	0.58	0.45
query33	3.00	2.97	2.98
query34	16.63	5.13	4.46
query35	4.52	4.41	4.46
query36	0.68	0.51	0.49
query37	0.10	0.07	0.06
query38	0.07	0.05	0.04
query39	0.05	0.03	0.03
query40	0.16	0.13	0.14
query41	0.09	0.04	0.04
query42	0.04	0.04	0.03
query43	0.04	0.04	0.03
Total cold run time: 97.99 s
Total hot run time: 26.96 s

@hello-stephen
Copy link
Contributor

FE UT Coverage Report

Increment line coverage 33.33% (33/99) 🎉
Increment coverage report
Complete coverage report

@xylaaaaa
Copy link
Contributor Author

xylaaaaa commented Jan 4, 2026

run buildall

@hello-stephen
Copy link
Contributor

FE UT Coverage Report

Increment line coverage 33.33% (33/99) 🎉
Increment coverage report
Complete coverage report

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17642	4390	4113	4113
q2	2011	351	246	246
q3	10167	1266	739	739
q4	10213	850	329	329
q5	7537	2073	1871	1871
q6	201	173	143	143
q7	951	804	657	657
q8	9276	1380	1112	1112
q9	5141	4546	4499	4499
q10	6839	1791	1388	1388
q11	517	295	278	278
q12	729	723	607	607
q13	17771	3833	3097	3097
q14	290	304	270	270
q15	581	529	512	512
q16	669	681	611	611
q17	675	763	599	599
q18	6807	6454	6949	6454
q19	1307	1042	668	668
q20	414	405	279	279
q21	3291	2590	2593	2590
q22	1142	1073	1058	1058
Total cold run time: 104171 ms
Total hot run time: 32120 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4247	4376	4280	4280
q2	364	420	345	345
q3	2368	2802	2383	2383
q4	1420	1855	1409	1409
q5	4593	4248	4322	4248
q6	215	169	129	129
q7	1976	1921	1721	1721
q8	2535	2495	2445	2445
q9	7259	7379	6949	6949
q10	2547	2768	2253	2253
q11	568	512	469	469
q12	701	757	624	624
q13	3439	3847	3092	3092
q14	260	280	263	263
q15	517	485	488	485
q16	602	668	607	607
q17	1134	1383	1394	1383
q18	7497	7390	7130	7130
q19	839	795	848	795
q20	1945	2012	1799	1799
q21	4566	4257	4173	4173
q22	1035	1056	986	986
Total cold run time: 50627 ms
Total hot run time: 47968 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 172679 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 396b7266cbf34ff0368846468f59a60ef4cae239, data reload: false

query5	4700	569	425	425
query6	326	228	211	211
query7	4205	443	270	270
query8	324	245	234	234
query9	8774	2557	2609	2557
query10	507	367	319	319
query11	15189	15230	14749	14749
query12	174	116	113	113
query13	1252	516	405	405
query14	6083	2956	2804	2804
query14_1	2669	2592	2600	2592
query15	199	192	174	174
query16	1011	467	438	438
query17	1091	690	595	595
query18	2462	432	345	345
query19	229	226	199	199
query20	123	115	115	115
query21	215	141	123	123
query22	3946	4036	3912	3912
query23	16003	15768	15326	15326
query23_1	15376	15508	15400	15400
query24	7467	1569	1156	1156
query24_1	1197	1191	1199	1191
query25	554	469	429	429
query26	1244	276	161	161
query27	2751	459	291	291
query28	4588	2144	2134	2134
query29	810	517	422	422
query30	309	241	209	209
query31	826	615	552	552
query32	74	69	63	63
query33	524	338	278	278
query34	903	872	513	513
query35	754	785	695	695
query36	871	871	834	834
query37	131	97	76	76
query38	2725	2683	2718	2683
query39	773	761	722	722
query39_1	703	717	705	705
query40	218	129	116	116
query41	67	61	62	61
query42	103	106	99	99
query43	432	454	452	452
query44	1324	737	726	726
query45	183	183	174	174
query46	833	955	601	601
query47	1335	1387	1361	1361
query48	303	325	229	229
query49	604	410	325	325
query50	642	285	204	204
query51	3727	3759	3773	3759
query52	102	105	93	93
query53	280	321	269	269
query54	278	250	247	247
query55	86	78	70	70
query56	288	289	285	285
query57	945	983	963	963
query58	265	250	276	250
query59	1994	2202	2006	2006
query60	318	315	299	299
query61	164	161	155	155
query62	371	364	324	324
query63	294	267	276	267
query64	4938	1314	982	982
query65	3793	3705	3704	3704
query66	1444	412	298	298
query67	14800	15538	15063	15063
query68	5300	997	711	711
query69	495	337	313	313
query70	1050	938	933	933
query71	370	311	277	277
query72	6114	3421	3450	3421
query73	766	709	309	309
query74	8774	8754	8602	8602
query75	2843	2814	2509	2509
query76	3874	1047	633	633
query77	519	376	274	274
query78	9698	9794	9220	9220
query79	1056	897	594	594
query80	659	589	468	468
query81	501	263	225	225
query82	212	142	113	113
query83	264	256	235	235
query84	250	120	105	105
query85	887	544	452	452
query86	333	321	320	320
query87	2872	2860	2755	2755
query88	3088	2232	2221	2221
query89	397	344	324	324
query90	1981	149	145	145
query91	165	157	138	138
query92	72	68	61	61
query93	966	903	527	527
query94	581	315	298	298
query95	584	366	298	298
query96	594	447	200	200
query97	2312	2347	2261	2261
query98	238	198	190	190
query99	588	574	493	493
Total cold run time: 249844 ms
Total hot run time: 172679 ms

@doris-robot
Copy link

ClickBench: Total hot run time: 26.69 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit 396b7266cbf34ff0368846468f59a60ef4cae239, data reload: false

query1	0.05	0.05	0.05
query2	0.10	0.05	0.04
query3	0.26	0.09	0.09
query4	1.61	0.12	0.11
query5	0.27	0.27	0.26
query6	1.14	0.66	0.64
query7	0.03	0.03	0.02
query8	0.05	0.04	0.04
query9	0.56	0.49	0.49
query10	0.55	0.55	0.56
query11	0.15	0.10	0.10
query12	0.14	0.11	0.10
query13	0.61	0.58	0.59
query14	0.94	0.94	0.94
query15	0.78	0.77	0.76
query16	0.42	0.39	0.39
query17	0.99	1.00	1.09
query18	0.22	0.21	0.21
query19	1.84	1.84	1.81
query20	0.02	0.01	0.01
query21	15.43	0.29	0.15
query22	5.17	0.05	0.04
query23	16.03	0.29	0.10
query24	0.94	0.64	0.18
query25	0.09	0.06	0.09
query26	0.14	0.14	0.13
query27	0.07	0.05	0.05
query28	4.08	1.06	0.87
query29	12.62	4.00	3.24
query30	0.28	0.14	0.13
query31	2.83	0.63	0.40
query32	3.23	0.56	0.46
query33	2.98	3.00	3.00
query34	16.58	5.14	4.44
query35	4.46	4.49	4.43
query36	0.66	0.49	0.50
query37	0.11	0.06	0.06
query38	0.08	0.03	0.04
query39	0.05	0.03	0.03
query40	0.17	0.15	0.13
query41	0.09	0.03	0.03
query42	0.04	0.03	0.02
query43	0.04	0.04	0.03
Total cold run time: 96.9 s
Total hot run time: 26.69 s

@xylaaaaa
Copy link
Contributor Author

xylaaaaa commented Jan 4, 2026

run buildall

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17613	4232	4041	4041
q2	2050	354	238	238
q3	10126	1279	725	725
q4	10216	790	315	315
q5	7534	2105	1824	1824
q6	191	168	137	137
q7	961	789	669	669
q8	9270	1362	1156	1156
q9	4807	4530	4598	4530
q10	6755	1823	1404	1404
q11	511	299	278	278
q12	685	750	634	634
q13	17773	3804	3090	3090
q14	282	310	277	277
q15	586	507	507	507
q16	693	701	624	624
q17	672	767	532	532
q18	6470	6427	6672	6427
q19	1198	1102	644	644
q20	435	413	263	263
q21	3280	2643	2662	2643
q22	1112	1080	1056	1056
Total cold run time: 103220 ms
Total hot run time: 32014 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4377	4428	4211	4211
q2	362	413	331	331
q3	2260	2830	2397	2397
q4	1418	1903	1467	1467
q5	4420	4327	4358	4327
q6	217	168	130	130
q7	1922	1896	1770	1770
q8	2509	2565	2355	2355
q9	7149	7201	7123	7123
q10	2559	2703	2356	2356
q11	554	494	469	469
q12	658	806	685	685
q13	3579	4060	3158	3158
q14	279	272	251	251
q15	514	479	492	479
q16	619	656	584	584
q17	1074	1276	1354	1276
q18	7419	7279	7150	7150
q19	812	763	781	763
q20	1897	1956	1794	1794
q21	4587	4211	4154	4154
q22	1097	1033	1001	1001
Total cold run time: 50282 ms
Total hot run time: 48231 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 175551 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 2f8de368de85f7b8012ea6bf5de241fc66c7f5f7, data reload: false

query5	4393	589	459	459
query6	365	257	235	235
query7	4224	477	284	284
query8	370	285	295	285
query9	8819	2649	2683	2649
query10	545	403	342	342
query11	15175	15058	14727	14727
query12	193	121	120	120
query13	1302	533	409	409
query14	6272	3031	2749	2749
query14_1	2688	2646	2708	2646
query15	204	199	181	181
query16	1019	497	469	469
query17	1176	744	623	623
query18	2507	472	384	384
query19	251	248	229	229
query20	130	122	124	122
query21	216	146	129	129
query22	3999	4124	3958	3958
query23	15989	15734	15685	15685
query23_1	15478	15588	15578	15578
query24	7361	1564	1166	1166
query24_1	1179	1174	1182	1174
query25	588	491	457	457
query26	1264	271	168	168
query27	2747	456	294	294
query28	4572	2161	2152	2152
query29	858	576	482	482
query30	321	249	209	209
query31	785	641	563	563
query32	78	70	74	70
query33	553	377	309	309
query34	892	863	526	526
query35	752	803	725	725
query36	885	947	832	832
query37	136	109	85	85
query38	2647	2748	2678	2678
query39	790	752	747	747
query39_1	721	702	723	702
query40	223	141	125	125
query41	82	79	76	76
query42	105	112	105	105
query43	443	459	429	429
query44	1300	731	736	731
query45	191	194	182	182
query46	848	968	605	605
query47	1470	1434	1359	1359
query48	318	334	258	258
query49	646	442	356	356
query50	649	293	216	216
query51	3725	3807	3740	3740
query52	108	104	100	100
query53	295	326	279	279
query54	317	277	285	277
query55	80	78	78	78
query56	310	318	310	310
query57	1067	1035	952	952
query58	293	269	272	269
query59	2101	2146	2063	2063
query60	339	338	322	322
query61	211	208	201	201
query62	388	361	321	321
query63	313	270	276	270
query64	5359	1558	1204	1204
query65	3797	3703	3731	3703
query66	1500	505	370	370
query67	15583	15762	15310	15310
query68	3347	1040	755	755
query69	505	386	333	333
query70	1084	915	932	915
query71	369	326	301	301
query72	6553	3711	3785	3711
query73	752	703	317	317
query74	8803	8824	8595	8595
query75	2821	2862	2486	2486
query76	3786	1062	651	651
query77	537	392	283	283
query78	9657	9718	9078	9078
query79	1644	839	590	590
query80	695	614	518	518
query81	511	274	240	240
query82	223	152	119	119
query83	286	266	266	266
query84	276	135	116	116
query85	1042	642	593	593
query86	393	329	328	328
query87	2826	2885	2776	2776
query88	3198	2224	2209	2209
query89	407	358	334	334
query90	2201	160	153	153
query91	200	195	187	187
query92	94	73	65	65
query93	1725	892	530	530
query94	592	334	322	322
query95	608	400	326	326
query96	584	465	207	207
query97	2308	2353	2311	2311
query98	227	201	199	199
query99	607	598	539	539
Total cold run time: 252621 ms
Total hot run time: 175551 ms

@doris-robot
Copy link

ClickBench: Total hot run time: 26.79 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit 2f8de368de85f7b8012ea6bf5de241fc66c7f5f7, data reload: false

query1	0.05	0.05	0.04
query2	0.11	0.05	0.05
query3	0.26	0.08	0.08
query4	1.62	0.11	0.11
query5	0.27	0.24	0.25
query6	1.14	0.67	0.66
query7	0.04	0.03	0.03
query8	0.05	0.04	0.04
query9	0.57	0.50	0.49
query10	0.54	0.54	0.56
query11	0.15	0.10	0.10
query12	0.14	0.10	0.11
query13	0.60	0.59	0.59
query14	0.96	0.93	0.95
query15	0.78	0.77	0.76
query16	0.42	0.39	0.40
query17	0.99	1.06	1.04
query18	0.22	0.21	0.21
query19	1.92	1.83	1.88
query20	0.02	0.02	0.01
query21	15.44	0.30	0.14
query22	5.15	0.05	0.06
query23	16.21	0.28	0.10
query24	1.49	0.24	0.18
query25	0.13	0.06	0.08
query26	0.15	0.13	0.12
query27	0.07	0.06	0.05
query28	4.03	1.07	0.87
query29	12.60	3.97	3.25
query30	0.27	0.14	0.12
query31	2.82	0.65	0.41
query32	3.24	0.57	0.45
query33	3.02	3.10	3.05
query34	16.74	5.15	4.43
query35	4.56	4.43	4.45
query36	0.66	0.51	0.50
query37	0.10	0.07	0.06
query38	0.07	0.04	0.04
query39	0.04	0.03	0.03
query40	0.16	0.14	0.12
query41	0.09	0.02	0.03
query42	0.05	0.03	0.03
query43	0.04	0.04	0.04
Total cold run time: 97.98 s
Total hot run time: 26.79 s

@hello-stephen
Copy link
Contributor

FE Regression Coverage Report

Increment line coverage 2.02% (2/99) 🎉
Increment coverage report
Complete coverage report

@xylaaaaa
Copy link
Contributor Author

xylaaaaa commented Jan 5, 2026

run buildall

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17772	4222	4095	4095
q2	2009	358	234	234
q3	10180	1269	714	714
q4	10202	776	306	306
q5	7493	1930	1947	1930
q6	192	173	138	138
q7	897	792	661	661
q8	9298	1367	1187	1187
q9	4945	4560	4515	4515
q10	6775	1815	1410	1410
q11	528	298	282	282
q12	699	736	589	589
q13	17795	3821	3066	3066
q14	291	307	271	271
q15	606	512	497	497
q16	677	676	634	634
q17	690	812	493	493
q18	6573	6503	6318	6318
q19	1096	959	633	633
q20	402	359	255	255
q21	3004	2434	2280	2280
q22	1067	1019	953	953
Total cold run time: 103191 ms
Total hot run time: 31461 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4129	4060	4017	4017
q2	343	394	316	316
q3	2097	2606	2230	2230
q4	1333	1757	1307	1307
q5	4068	4004	4017	4004
q6	217	174	137	137
q7	1861	1769	1630	1630
q8	2793	2522	2429	2429
q9	7406	7173	7114	7114
q10	2581	2782	2290	2290
q11	529	467	465	465
q12	703	777	623	623
q13	3553	4106	3308	3308
q14	296	312	279	279
q15	559	611	541	541
q16	663	691	638	638
q17	1117	1415	1435	1415
q18	7995	7784	7762	7762
q19	831	830	904	830
q20	1985	2044	1956	1956
q21	4904	4252	4141	4141
q22	1091	1016	972	972
Total cold run time: 51054 ms
Total hot run time: 48404 ms

@hello-stephen
Copy link
Contributor

FE UT Coverage Report

Increment line coverage 30.30% (30/99) 🎉
Increment coverage report
Complete coverage report

@doris-robot
Copy link

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

query5	4569	593	433	433
query6	339	219	206	206
query7	4245	456	270	270
query8	325	256	238	238
query9	8834	2681	2677	2677
query10	501	364	333	333
query11	15178	15048	14829	14829
query12	177	114	110	110
query13	1248	494	368	368
query14	6267	2951	2699	2699
query14_1	2657	2599	2621	2599
query15	200	197	172	172
query16	1002	458	450	450
query17	1134	671	593	593
query18	2455	444	349	349
query19	225	228	202	202
query20	122	119	115	115
query21	224	148	122	122
query22	3903	4068	3913	3913
query23	16258	15478	15366	15366
query23_1	15462	15317	15425	15317
query24	7354	1560	1183	1183
query24_1	1195	1167	1212	1167
query25	573	501	428	428
query26	1280	268	162	162
query27	2794	453	297	297
query28	4567	2167	2155	2155
query29	788	562	466	466
query30	309	244	213	213
query31	741	638	563	563
query32	76	72	71	71
query33	534	343	289	289
query34	886	871	524	524
query35	742	805	714	714
query36	863	867	803	803
query37	131	90	78	78
query38	2747	2793	2664	2664
query39	775	763	729	729
query39_1	712	708	704	704
query40	212	132	112	112
query41	65	61	67	61
query42	100	100	99	99
query43	433	478	433	433
query44	1290	729	728	728
query45	182	179	176	176
query46	852	959	601	601
query47	1442	1425	1325	1325
query48	323	333	267	267
query49	603	412	321	321
query50	636	267	210	210
query51	3791	3837	3743	3743
query52	108	115	96	96
query53	294	325	267	267
query54	280	255	243	243
query55	77	76	72	72
query56	280	278	280	278
query57	1038	1038	954	954
query58	269	249	256	249
query59	2144	2173	2074	2074
query60	313	318	300	300
query61	203	156	155	155
query62	389	344	334	334
query63	292	265	271	265
query64	4779	1307	974	974
query65	3839	3760	3753	3753
query66	1424	404	297	297
query67	15013	15545	14769	14769
query68	7718	971	702	702
query69	511	349	307	307
query70	1009	883	958	883
query71	361	286	271	271
query72	6074	3456	3451	3451
query73	748	711	302	302
query74	8772	8730	8627	8627
query75	2798	2830	2454	2454
query76	3809	1040	635	635
query77	530	365	277	277
query78	9633	9792	9116	9116
query79	1379	851	586	586
query80	591	567	459	459
query81	474	263	227	227
query82	210	138	110	110
query83	258	252	243	243
query84	253	122	103	103
query85	878	510	467	467
query86	350	291	318	291
query87	2838	2840	2739	2739
query88	3824	2227	2220	2220
query89	397	347	322	322
query90	2240	151	146	146
query91	168	165	144	144
query92	80	65	65	65
query93	1113	873	526	526
query94	567	329	289	289
query95	560	319	358	319
query96	583	469	207	207
query97	2341	2339	2276	2276
query98	216	194	193	193
query99	582	560	531	531
Total cold run time: 253484 ms
Total hot run time: 172303 ms

@doris-robot
Copy link

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

query1	0.06	0.05	0.05
query2	0.09	0.05	0.04
query3	0.25	0.08	0.08
query4	1.60	0.11	0.11
query5	0.28	0.25	0.26
query6	1.14	0.66	0.64
query7	0.03	0.03	0.02
query8	0.05	0.04	0.04
query9	0.55	0.50	0.50
query10	0.57	0.55	0.56
query11	0.15	0.10	0.11
query12	0.15	0.11	0.12
query13	0.60	0.58	0.59
query14	0.95	0.95	0.95
query15	0.80	0.79	0.79
query16	0.40	0.41	0.39
query17	1.05	1.07	0.98
query18	0.24	0.22	0.22
query19	1.91	1.87	1.87
query20	0.02	0.01	0.01
query21	15.45	0.27	0.13
query22	5.10	0.05	0.04
query23	15.75	0.28	0.10
query24	1.41	1.26	1.16
query25	0.11	0.08	0.10
query26	0.14	0.15	0.13
query27	0.09	0.05	0.07
query28	6.53	1.08	0.88
query29	12.61	4.03	3.21
query30	0.28	0.14	0.12
query31	2.82	0.66	0.40
query32	3.24	0.59	0.46
query33	3.06	3.03	2.98
query34	16.73	5.26	4.46
query35	4.55	4.52	4.49
query36	0.66	0.49	0.50
query37	0.10	0.07	0.06
query38	0.07	0.04	0.03
query39	0.04	0.03	0.03
query40	0.18	0.13	0.14
query41	0.09	0.04	0.03
query42	0.05	0.03	0.03
query43	0.04	0.04	0.04
Total cold run time: 99.99 s
Total hot run time: 27.81 s

@hello-stephen
Copy link
Contributor

FE Regression Coverage Report

Increment line coverage 6.06% (6/99) 🎉
Increment coverage report
Complete coverage report

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants