You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by "eldenmoon (via GitHub)" <gi...@apache.org> on 2026/05/17 09:38:37 UTC

[PR] [fix](be) Preserve Variant decimal precision [doris]

eldenmoon opened a new pull request, #63322:
URL: https://github.com/apache/doris/pull/63322

   
   ### What problem does this PR solve?
   
   Issue Number: CIR-20240
   
   Related PR: None
   
   Problem Summary: Variant JSON parsing materialized high precision decimal-like numbers as double before typed decimal paths were cast, which lost precision. Preserve raw numeric tokens for decimal-sensitive Variant path extraction and cast typed decimal paths from exact text while keeping Variant nullable array structure.
   
   ### Release note
   
   Fix Variant typed decimal precision loss when parsing high precision JSON numbers.
   
   ### Check List (For Author)
   
   - Test:
       - Build: BUILD_TYPE=ASAN USE_MEM_TRACKER=ON ./build.sh --be --fe
       - Unit Test: ./run-be-ut.sh --run --filter='JsonParserTest.*:ColumnVariantTest.parse_high_precision_decimal_for_typed_path'
       - Regression test: env -u http_proxy -u https_proxy -u HTTP_PROXY -u HTTPS_PROXY -u all_proxy -u ALL_PROXY NO_PROXY=127.0.0.1,localhost,10.26.20.3 no_proxy=127.0.0.1,localhost,10.26.20.3 ./run-regression-test.sh --conf tmp/regression-conf.auto.groovy --run -d variant_p0/predefine -s test_variant_high_precision_decimal
       - Format Check: build-support/clang-format.sh; build-support/check-format.sh
       - Static Check: build-support/run-clang-tidy.sh --build-dir be/ut_build_ASAN (attempted; failed due existing/environment diagnostics including missing stddef.h and unrelated existing readability-function-size warnings)
   - Behavior changed: Yes (Variant typed decimal paths cast preserved raw JSON number text instead of rounded double for precision-sensitive numeric tokens)
   - Does this need documentation: No
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4475102521

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4473927372

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4474149636

   /review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470942286

   
   <details>
   <summary>TPC-DS: <b>Total hot run time: 169474 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
   TPC-DS sf100 test result on commit 3dd972bebfba3e772374972a1829da943aea8361, data reload: false
   
   query5	4320	659	536	536
   query6	336	222	197	197
   query7	4241	576	311	311
   query8	328	237	233	233
   query9	8804	4071	4011	4011
   query10	443	337	290	290
   query11	5770	2421	2270	2270
   query12	185	133	129	129
   query13	1303	581	419	419
   query14	5931	5417	4990	4990
   query14_1	4338	4323	4334	4323
   query15	215	202	180	180
   query16	1026	454	413	413
   query17	1135	714	588	588
   query18	2713	480	349	349
   query19	222	205	155	155
   query20	142	131	131	131
   query21	213	143	115	115
   query22	13752	13636	13340	13340
   query23	17114	16388	16009	16009
   query23_1	16245	16194	16140	16140
   query24	7494	1776	1321	1321
   query24_1	1335	1331	1302	1302
   query25	576	513	442	442
   query26	1101	327	176	176
   query27	2691	548	349	349
   query28	4465	1929	1972	1929
   query29	1000	647	528	528
   query30	307	252	200	200
   query31	1129	1081	960	960
   query32	100	80	74	74
   query33	565	366	307	307
   query34	1166	1162	646	646
   query35	768	792	677	677
   query36	1368	1375	1215	1215
   query37	154	109	96	96
   query38	3233	3126	3074	3074
   query39	923	926	919	919
   query39_1	887	879	877	877
   query40	232	156	132	132
   query41	72	70	70	70
   query42	111	112	111	111
   query43	326	331	287	287
   query44	
   query45	216	207	205	205
   query46	1072	1187	754	754
   query47	2358	2370	2198	2198
   query48	417	405	304	304
   query49	650	513	417	417
   query50	974	347	257	257
   query51	4294	4312	4240	4240
   query52	110	110	98	98
   query53	258	281	208	208
   query54	333	286	280	280
   query55	95	93	93	93
   query56	315	319	318	318
   query57	1416	1420	1315	1315
   query58	321	282	268	268
   query59	1623	1656	1508	1508
   query60	333	337	329	329
   query61	190	221	158	158
   query62	663	625	570	570
   query63	247	207	210	207
   query64	2105	815	649	649
   query65	
   query66	1638	473	366	366
   query67	29998	29979	29816	29816
   query68	
   query69	452	341	320	320
   query70	1067	1017	1018	1017
   query71	309	280	264	264
   query72	3016	2732	2459	2459
   query73	873	760	398	398
   query74	5070	4896	4726	4726
   query75	2664	2593	2246	2246
   query76	2288	1133	770	770
   query77	390	415	338	338
   query78	12247	12205	11669	11669
   query79	1460	1027	745	745
   query80	1297	547	452	452
   query81	507	281	238	238
   query82	1238	167	125	125
   query83	318	276	249	249
   query84	274	144	110	110
   query85	939	528	450	450
   query86	448	319	315	315
   query87	3430	3441	3209	3209
   query88	3526	2677	2673	2673
   query89	449	383	341	341
   query90	1884	183	181	181
   query91	179	177	165	165
   query92	80	78	71	71
   query93	1472	1422	874	874
   query94	726	346	307	307
   query95	678	477	353	353
   query96	1025	794	358	358
   query97	2724	2706	2561	2561
   query98	238	232	226	226
   query99	1147	1108	1002	1002
   Total cold run time: 253890 ms
   Total hot run time: 169474 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on code in PR #63322:
URL: https://github.com/apache/doris/pull/63322#discussion_r3256689390


##########
be/src/core/data_type_serde/data_type_variant_serde.cpp:
##########
@@ -108,11 +104,11 @@ Status DataTypeVariantSerDe::serialize_one_cell_to_json(const IColumn& column, i
 
 Status DataTypeVariantSerDe::deserialize_one_cell_from_json(IColumn& column, Slice& slice,
                                                             const FormatOptions& options) const {
-    ParseConfig parse_config;
-    parse_config.check_duplicate_json_path = config::variant_enable_duplicate_json_path_check;
-    StringRef json_ref(slice.data, slice.size);
-    RETURN_IF_CATCH_EXCEPTION(
-            variant_util::parse_json_to_variant(column, json_ref, nullptr, parse_config));
+    auto& variant = assert_cast<ColumnVariant&>(column);
+    Field field = Field::create_field<TYPE_STRING>(String(slice.data, slice.size));
+    VariantMap object;

Review Comment:
   This serde is also used by the generic cast path, not only by stream load. `cast_from_string_to_generic()` calls `serde->deserialize_one_cell_from_json()` for `CAST(string AS VARIANT)`, and existing suites rely on `cast('{"a":1}' as variant)['a']` exposing subpaths. With this change the same input is always inserted as a root `TYPE_STRING`, so query-time casts no longer parse the JSON object and subpath access like `c1['a']` returns missing/null instead of `1`. This is distinct from the direct Variant stream-load concern because it affects expression evaluation without the later storage-layer `parse_and_materialize_variant_columns()` pass. Please keep the old parse behavior for casts/generic serde callers and restrict raw-root preservation to the load path that can materialize later, and add a regression for `cast('{"a":1}' as variant)['a']`.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on code in PR #63322:
URL: https://github.com/apache/doris/pull/63322#discussion_r3254617911


##########
be/src/format/json/new_json_reader.cpp:
##########
@@ -1139,6 +1139,16 @@ Status NewJsonReader::_simdjson_write_data_to_column(simdjson::ondemand::value&
     }
 
     auto primitive_type = type_desc->get_primitive_type();
+    if (_is_load && primitive_type == TYPE_VARIANT) {
+        std::string_view json_str = simdjson::to_json_string(value);
+        Slice slice {json_str.data(), json_str.size()};
+        auto variant_options = _serde_options;
+        variant_options.variant_read_raw_json = true;
+        RETURN_IF_ERROR(data_serde->deserialize_one_cell_from_json(*data_column_ptr, slice,
+                                                                   variant_options));
+        return Status::OK();

Review Comment:
   This early return skips the common nullable-column tail at lines 1326-1329, so a non-null value loaded into a nullable `VARIANT` column inserts one row into the nested `ColumnVariant` but never appends `0` to the `ColumnNullable` null map. A normal stream load into a schema like the new regression table (`v variant ... NULL`) will leave the nullable column with mismatched nested/null-map sizes, which can trip consistency checks or corrupt later reads. Please keep the raw-Variant branch on the existing path that reaches the final null-map append, or append the null-map entry before returning, and add a nullable Variant stream-load case that validates the column remains consistent.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471565342

   
   <details>
   <summary>TPC-H: <b>Total hot run time: 31453 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
   Tpch sf100 test result on commit b2ec8138ab58c2542048d496e500a78733c50214, 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	17610	3863	3847	3847
   q2	q3	10801	1346	812	812
   q4	4689	479	342	342
   q5	7605	2333	2078	2078
   q6	238	180	139	139
   q7	956	785	630	630
   q8	9361	1803	1662	1662
   q9	5209	4925	4915	4915
   q10	6385	2072	1814	1814
   q11	435	266	245	245
   q12	624	424	299	299
   q13	18134	3414	2779	2779
   q14	266	253	238	238
   q15	q16	820	772	712	712
   q17	936	866	950	866
   q18	6898	5765	5551	5551
   q19	1313	1383	1094	1094
   q20	528	406	367	367
   q21	6266	2915	2740	2740
   q22	463	376	323	323
   Total cold run time: 99537 ms
   Total hot run time: 31453 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	4777	4539	4596	4539
   q2	q3	4838	5259	4639	4639
   q4	2122	2225	1407	1407
   q5	4758	4830	4716	4716
   q6	234	176	129	129
   q7	1869	1805	1527	1527
   q8	2374	2042	2030	2030
   q9	7614	7484	7206	7206
   q10	4489	4410	3998	3998
   q11	523	383	347	347
   q12	700	714	509	509
   q13	3051	3376	2797	2797
   q14	284	273	249	249
   q15	q16	678	699	605	605
   q17	1260	1256	1240	1240
   q18	7507	6778	6871	6778
   q19	1118	1090	1073	1073
   q20	2200	2219	1944	1944
   q21	5318	4682	4501	4501
   q22	522	469	411	411
   Total cold run time: 56236 ms
   Total hot run time: 50645 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470736287

   
   <details>
   <summary>TPC-H: <b>Total hot run time: 31185 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
   Tpch sf100 test result on commit 85fcf569e2cba61ca79f53700ba241f8851c2bd3, 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	17718	3918	3857	3857
   q2	q3	10842	1415	838	838
   q4	4713	478	342	342
   q5	8135	2249	2134	2134
   q6	339	179	136	136
   q7	981	794	649	649
   q8	9406	1710	1619	1619
   q9	7007	4996	4893	4893
   q10	6448	2147	1830	1830
   q11	439	277	242	242
   q12	693	426	295	295
   q13	18184	3414	2777	2777
   q14	276	257	230	230
   q15	q16	824	763	709	709
   q17	963	945	959	945
   q18	7005	5736	5602	5602
   q19	1167	1237	1123	1123
   q20	509	416	264	264
   q21	5698	2620	2405	2405
   q22	428	360	295	295
   Total cold run time: 101775 ms
   Total hot run time: 31185 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	4200	4126	4123	4123
   q2	q3	4485	4902	4284	4284
   q4	2099	2212	1395	1395
   q5	4391	4261	4644	4261
   q6	264	196	145	145
   q7	2018	1850	1645	1645
   q8	2440	2112	2168	2112
   q9	7799	7811	7688	7688
   q10	4508	4461	4238	4238
   q11	576	410	383	383
   q12	788	732	510	510
   q13	3267	3675	2930	2930
   q14	301	315	291	291
   q15	q16	723	745	655	655
   q17	1321	1349	1311	1311
   q18	7849	7407	6706	6706
   q19	1158	1079	1076	1076
   q20	2228	2206	1924	1924
   q21	5315	4650	4477	4477
   q22	534	474	407	407
   Total cold run time: 56264 ms
   Total hot run time: 50561 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471220081

   
   <details>
   <summary>TPC-DS: <b>Total hot run time: 169031 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
   TPC-DS sf100 test result on commit 149c7f4f34ee4e10b9562d7dfea1bc11ad5227ea, data reload: false
   
   query5	4350	668	515	515
   query6	331	214	200	200
   query7	4238	546	317	317
   query8	319	223	213	213
   query9	8807	4036	4055	4036
   query10	454	336	301	301
   query11	5773	2359	2201	2201
   query12	180	129	129	129
   query13	1288	629	456	456
   query14	5963	5357	5025	5025
   query14_1	4335	4363	4347	4347
   query15	207	199	183	183
   query16	1013	436	427	427
   query17	1157	716	583	583
   query18	2487	495	351	351
   query19	211	203	162	162
   query20	145	139	129	129
   query21	217	141	116	116
   query22	13628	13493	13452	13452
   query23	17193	16336	16103	16103
   query23_1	16165	16204	16152	16152
   query24	7431	1797	1309	1309
   query24_1	1320	1318	1310	1310
   query25	578	505	440	440
   query26	1308	329	177	177
   query27	2685	546	348	348
   query28	4454	1958	1959	1958
   query29	1044	661	536	536
   query30	323	240	204	204
   query31	1145	1055	935	935
   query32	85	73	75	73
   query33	538	352	287	287
   query34	1172	1149	652	652
   query35	756	781	681	681
   query36	1326	1363	1157	1157
   query37	158	100	88	88
   query38	3186	3137	3038	3038
   query39	913	935	893	893
   query39_1	861	881	881	881
   query40	231	154	125	125
   query41	67	63	63	63
   query42	112	113	109	109
   query43	332	330	296	296
   query44	
   query45	208	204	195	195
   query46	1073	1175	713	713
   query47	2337	2385	2193	2193
   query48	400	413	292	292
   query49	627	501	386	386
   query50	964	342	256	256
   query51	4352	4406	4255	4255
   query52	105	108	97	97
   query53	264	298	211	211
   query54	326	291	252	252
   query55	93	96	90	90
   query56	326	321	306	306
   query57	1436	1433	1330	1330
   query58	303	288	260	260
   query59	1628	1662	1418	1418
   query60	332	327	320	320
   query61	155	156	155	155
   query62	650	641	569	569
   query63	247	205	209	205
   query64	2400	833	626	626
   query65	
   query66	1708	485	359	359
   query67	29340	29349	29865	29349
   query68	
   query69	457	345	305	305
   query70	1022	984	956	956
   query71	326	279	273	273
   query72	2922	2705	2426	2426
   query73	833	761	417	417
   query74	5088	4878	4743	4743
   query75	2673	2577	2248	2248
   query76	2270	1139	798	798
   query77	400	415	338	338
   query78	12134	11924	11575	11575
   query79	1235	1046	734	734
   query80	602	541	461	461
   query81	446	283	240	240
   query82	242	157	120	120
   query83	270	277	248	248
   query84	253	131	111	111
   query85	847	519	436	436
   query86	359	365	308	308
   query87	3378	3348	3263	3263
   query88	3540	2654	2662	2654
   query89	421	387	338	338
   query90	2181	185	184	184
   query91	184	168	141	141
   query92	79	77	76	76
   query93	1439	1419	891	891
   query94	546	349	302	302
   query95	659	376	412	376
   query96	997	817	344	344
   query97	2697	2695	2585	2585
   query98	232	225	227	225
   query99	1094	1113	968	968
   Total cold run time: 250564 ms
   Total hot run time: 169031 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471220489

   /review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4474705442

   /review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470934918

   
   <details>
   <summary>TPC-DS: <b>Total hot run time: 169122 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
   TPC-DS sf100 test result on commit 9a398bd168d5dc2f4047719bccd4b533f710ea0b, data reload: false
   
   query5	4327	663	528	528
   query6	325	218	204	204
   query7	4234	542	296	296
   query8	322	258	224	224
   query9	8843	4016	4009	4009
   query10	446	336	293	293
   query11	5827	2389	2190	2190
   query12	202	128	129	128
   query13	1249	587	425	425
   query14	5912	5336	5033	5033
   query14_1	4299	4318	4299	4299
   query15	209	201	186	186
   query16	998	441	428	428
   query17	931	697	580	580
   query18	2443	482	350	350
   query19	224	211	183	183
   query20	133	137	132	132
   query21	218	141	115	115
   query22	13589	13495	13368	13368
   query23	17306	16304	16104	16104
   query23_1	16244	16166	16161	16161
   query24	7520	1769	1307	1307
   query24_1	1279	1307	1305	1305
   query25	570	495	432	432
   query26	1315	317	172	172
   query27	2709	563	344	344
   query28	4560	1972	1928	1928
   query29	975	652	521	521
   query30	306	239	202	202
   query31	1114	1060	949	949
   query32	86	80	74	74
   query33	545	360	312	312
   query34	1191	1164	632	632
   query35	772	781	676	676
   query36	1354	1321	1164	1164
   query37	157	104	95	95
   query38	3223	3102	3034	3034
   query39	940	914	890	890
   query39_1	872	877	898	877
   query40	232	149	131	131
   query41	74	74	70	70
   query42	111	112	110	110
   query43	328	335	294	294
   query44	
   query45	212	206	200	200
   query46	1051	1180	713	713
   query47	2366	2365	2251	2251
   query48	410	410	317	317
   query49	661	506	403	403
   query50	957	358	249	249
   query51	4320	4323	4264	4264
   query52	107	106	98	98
   query53	260	280	203	203
   query54	326	298	267	267
   query55	96	96	87	87
   query56	310	324	312	312
   query57	1428	1438	1343	1343
   query58	314	277	272	272
   query59	1576	1651	1441	1441
   query60	323	324	304	304
   query61	157	154	150	150
   query62	683	614	548	548
   query63	243	203	206	203
   query64	2409	812	634	634
   query65	
   query66	1726	464	344	344
   query67	30017	29935	29730	29730
   query68	
   query69	470	345	305	305
   query70	1000	1012	1002	1002
   query71	313	270	267	267
   query72	3005	2730	2396	2396
   query73	846	724	420	420
   query74	5050	4859	4718	4718
   query75	2669	2585	2273	2273
   query76	2299	1143	742	742
   query77	385	400	331	331
   query78	12097	12097	11596	11596
   query79	1423	1065	737	737
   query80	710	553	442	442
   query81	456	282	238	238
   query82	1399	157	121	121
   query83	334	286	253	253
   query84	310	181	113	113
   query85	877	534	454	454
   query86	389	334	321	321
   query87	3383	3352	3235	3235
   query88	3501	2680	2657	2657
   query89	451	379	339	339
   query90	1891	179	176	176
   query91	178	165	149	149
   query92	84	81	71	71
   query93	1471	1388	960	960
   query94	559	343	317	317
   query95	685	494	369	369
   query96	1006	785	342	342
   query97	2709	2717	2568	2568
   query98	235	229	248	229
   query99	1112	1107	975	975
   Total cold run time: 252774 ms
   Total hot run time: 169122 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470912196

   
   <details>
   <summary>TPC-H: <b>Total hot run time: 31044 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
   Tpch sf100 test result on commit 3dd972bebfba3e772374972a1829da943aea8361, 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	17632	3816	3797	3797
   q2	q3	10760	1415	870	870
   q4	4687	471	349	349
   q5	7633	2286	2093	2093
   q6	375	183	139	139
   q7	959	769	620	620
   q8	9538	1702	1534	1534
   q9	7081	4993	4947	4947
   q10	6464	2086	1789	1789
   q11	440	283	247	247
   q12	698	431	298	298
   q13	18180	3458	2769	2769
   q14	263	260	234	234
   q15	q16	821	779	708	708
   q17	1022	959	974	959
   q18	6979	5791	5533	5533
   q19	1201	1228	1092	1092
   q20	519	406	264	264
   q21	5730	2552	2493	2493
   q22	438	363	309	309
   Total cold run time: 101420 ms
   Total hot run time: 31044 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	4202	4107	4117	4107
   q2	q3	4501	5023	4324	4324
   q4	2100	2213	1407	1407
   q5	4533	4325	4474	4325
   q6	281	201	151	151
   q7	2063	1769	1673	1673
   q8	2489	2108	2194	2108
   q9	7835	7855	7709	7709
   q10	4566	4493	4061	4061
   q11	808	421	380	380
   q12	716	738	505	505
   q13	3324	3787	2922	2922
   q14	284	292	276	276
   q15	q16	736	749	671	671
   q17	1358	1312	1370	1312
   q18	7957	7401	6942	6942
   q19	1117	1105	1096	1096
   q20	2237	2217	1916	1916
   q21	5310	4581	4492	4492
   q22	538	457	414	414
   Total cold run time: 56955 ms
   Total hot run time: 50791 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470970037

   
   <details>
   <summary>TPC-H: <b>Total hot run time: 31302 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
   Tpch sf100 test result on commit 47d2d8e39a7486d4aec3c55d15f426a812f9df4c, 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	17854	4033	3981	3981
   q2	q3	10772	1424	809	809
   q4	4679	477	351	351
   q5	7601	2237	2134	2134
   q6	263	192	144	144
   q7	961	788	633	633
   q8	9358	1775	1650	1650
   q9	6838	4933	4916	4916
   q10	6435	2099	1780	1780
   q11	432	278	243	243
   q12	718	426	296	296
   q13	18213	3397	2764	2764
   q14	265	256	240	240
   q15	q16	817	767	703	703
   q17	984	974	958	958
   q18	6877	5774	5611	5611
   q19	1239	1252	1146	1146
   q20	512	412	258	258
   q21	5767	2577	2379	2379
   q22	427	363	306	306
   Total cold run time: 101012 ms
   Total hot run time: 31302 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	4370	4232	4213	4213
   q2	q3	4534	4939	4378	4378
   q4	2092	2207	1387	1387
   q5	4398	4308	4630	4308
   q6	264	206	154	154
   q7	1991	1886	1584	1584
   q8	2473	2162	2137	2137
   q9	7723	7882	7763	7763
   q10	4537	4477	4188	4188
   q11	584	413	377	377
   q12	713	744	542	542
   q13	3334	3630	3011	3011
   q14	316	321	311	311
   q15	q16	730	724	673	673
   q17	1385	1335	1384	1335
   q18	8085	7307	6752	6752
   q19	1161	1090	1100	1090
   q20	2212	2217	1936	1936
   q21	5315	4642	4460	4460
   q22	536	478	430	430
   Total cold run time: 56753 ms
   Total hot run time: 51029 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471250567

   
   <details>
   <summary>TPC-H: <b>Total hot run time: 31380 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
   Tpch sf100 test result on commit 6d77c2e151db0215a94add25f0ed9e0300fa3649, 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	17667	4058	4099	4058
   q2	q3	10791	1420	804	804
   q4	4679	466	352	352
   q5	7557	2267	2148	2148
   q6	378	175	139	139
   q7	985	764	679	679
   q8	9374	1690	1549	1549
   q9	6793	4930	4934	4930
   q10	6463	2127	1808	1808
   q11	435	269	244	244
   q12	690	433	290	290
   q13	18213	3302	2805	2805
   q14	275	255	243	243
   q15	q16	828	768	717	717
   q17	1023	974	934	934
   q18	6914	5870	5656	5656
   q19	1300	1228	1066	1066
   q20	524	422	265	265
   q21	5795	2634	2385	2385
   q22	435	354	308	308
   Total cold run time: 101119 ms
   Total hot run time: 31380 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	4281	4214	4305	4214
   q2	q3	4532	4940	4301	4301
   q4	2117	2176	1401	1401
   q5	4387	4299	4632	4299
   q6	247	200	143	143
   q7	2012	1806	1696	1696
   q8	2494	2122	2150	2122
   q9	7786	7855	7792	7792
   q10	4539	4510	4122	4122
   q11	636	422	386	386
   q12	707	749	512	512
   q13	3309	3654	2958	2958
   q14	300	297	291	291
   q15	q16	727	723	661	661
   q17	1425	1351	1368	1351
   q18	7999	7528	6945	6945
   q19	1151	1099	1108	1099
   q20	2212	2215	1936	1936
   q21	5346	4697	4491	4491
   q22	522	472	406	406
   Total cold run time: 56729 ms
   Total hot run time: 51126 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470181486

   /review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471465480

   # BE UT Coverage Report
   Increment line coverage `72.04% (304/422)` :tada:
   
   [Increment coverage report](http://coverage.selectdb-in.cc/coverage/95ccafea2253112ebae2ad285d71df8be7689d9b_95ccafea2253112ebae2ad285d71df8be7689d9b/increment_report/index.html)
   [Complete coverage report](http://coverage.selectdb-in.cc/coverage/95ccafea2253112ebae2ad285d71df8be7689d9b_95ccafea2253112ebae2ad285d71df8be7689d9b/report/index.html)
   | Category          | Coverage           |
   |-------------------|--------------------|
   | Function Coverage | 53.51% (20659/38607) |
   | Line Coverage     | 37.17% (195318/525439) |
   | Region Coverage   | 33.56% (152947/455703) |
   | Branch Coverage   | 34.60% (66716/192829) |


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4474456881

   /review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4475844996

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470179390

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470319139

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470763987

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471037436

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471499463

   
   <details>
   <summary>TPC-H: <b>Total hot run time: 30776 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
   Tpch sf100 test result on commit 45d9060c080f192ecb190462a4b01b6485daad2a, 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	17637	3846	3878	3846
   q2	q3	10745	1410	812	812
   q4	4688	475	352	352
   q5	7634	2237	2071	2071
   q6	240	177	138	138
   q7	940	776	639	639
   q8	9392	1666	1578	1578
   q9	6581	4902	4886	4886
   q10	6432	2123	1771	1771
   q11	433	271	248	248
   q12	693	422	291	291
   q13	18247	3329	2784	2784
   q14	264	254	232	232
   q15	q16	823	771	703	703
   q17	972	940	935	935
   q18	6815	5835	5529	5529
   q19	1238	1165	1089	1089
   q20	505	392	269	269
   q21	5620	2596	2303	2303
   q22	426	359	300	300
   Total cold run time: 100325 ms
   Total hot run time: 30776 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	4247	4107	4074	4074
   q2	q3	4542	4868	4334	4334
   q4	2113	2171	1372	1372
   q5	4366	4252	4227	4227
   q6	222	174	133	133
   q7	2061	1857	1706	1706
   q8	2536	2084	2035	2035
   q9	7781	7743	7732	7732
   q10	4530	4478	4088	4088
   q11	617	427	373	373
   q12	711	736	532	532
   q13	3480	3639	3034	3034
   q14	280	311	291	291
   q15	q16	747	739	675	675
   q17	1373	1335	1302	1302
   q18	7950	7343	7098	7098
   q19	1099	1077	1125	1077
   q20	2229	2222	1941	1941
   q21	5280	4647	4455	4455
   q22	549	454	406	406
   Total cold run time: 56713 ms
   Total hot run time: 50885 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on code in PR #63322:
URL: https://github.com/apache/doris/pull/63322#discussion_r3256376020


##########
be/src/util/json/json_parser.cpp:
##########
@@ -84,8 +89,29 @@ void JSONDataParser<ParserImpl>::traverse(const Element& element, ParseContext&
         // we should set has_nested_in_flatten to false when traverse array finished for next array otherwise it will be true for next array
         ctx.has_nested_in_flatten = false;
     } else {
-        appendValueIfNotDuplicate(ctx, ctx.builder.get_parts(), getValueAsField(element));
+        appendValueIfNotDuplicate(ctx, ctx.builder.get_parts(),
+                                  getValueAsField(element, shouldPreserveNumberAsString(ctx)));
+    }

Review Comment:
   The raw-number decision is only used on the scalar `Field` path. When an array contains objects and `deprecated_enable_flatten_nested` is false, the branch above serializes the whole array with `traverseArrayAsJsonb()` instead of recursing to leaf paths; `writeValueAsJsonb()` still writes floating-point numbers via `writer.writeDouble(element.getDouble())`. A predefined decimal path inside an array of objects, for example `items.price` with JSON `{"items":[{"price":999999999999999999999999999.999999999}]}`, can therefore be rounded before the storage-layer nested expansion/materialization casts it to decimal. Please preserve raw numeric text in the JSONB serialization path for configured decimal typed paths as well, or avoid routing those typed paths through lossy JSONB serialization, and add a regression with a predefined decimal inside an array of objects.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on code in PR #63322:
URL: https://github.com/apache/doris/pull/63322#discussion_r3256580700


##########
be/src/exec/common/variant_util.cpp:
##########
@@ -104,6 +104,44 @@
 
 namespace doris::variant_util {
 
+static bool is_decimal_typed_path_column(const TabletColumn& column) {
+    if (column.is_array_type()) {
+        CHECK_EQ(column.get_sub_columns().size(), 1);
+        return is_decimal_typed_path_column(*column.get_sub_columns()[0]);
+    }
+    return is_decimal(TabletColumn::get_primitive_type_by_field_type(column.type()));
+}
+
+static void configure_decimal_number_preserve_paths(const TabletColumn& column,

Review Comment:
   This helper is only applied from `parse_and_materialize_variant_columns()`, after the input block already contains a scalar-root Variant that still needs materialization. A direct JSON stream load into a Variant column with an object value, for example `{"id":2,"v":{"number_1":999999999999999999999999999.999999999}}`, goes through `DataTypeVariantSerDe::deserialize_one_cell_from_json()`, where `ParseConfig` is created without the tablet schema's decimal typed paths. That parse builds a non-scalar `ColumnVariant`, so the later writer path hits `if (!var.is_scalar_variant()) continue;` and never reaches this configured materialization path. The new regression only stream-loads `v` as an escaped JSON string, which exercises scalar-root materialization, not the direct object path. Please propagate the schema-derived decimal preserve paths to direct Variant JSON deserialization as well, or keep object-valued stream-loads as raw scalar JSON until this materialization step, and add a reg
 ression where the stream-load file contains `v` as an object rather than a string.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4474825492

   /review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4474824733

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on code in PR #63322:
URL: https://github.com/apache/doris/pull/63322#discussion_r3254468041


##########
be/src/util/json/json_parser.h:
##########
@@ -39,8 +39,47 @@
 
 namespace doris {
 
+inline bool should_preserve_json_number_as_string(std::string_view raw_number) {
+    size_t significant_digits = 0;
+    size_t fractional_digits = 0;
+    bool seen_nonzero_digit = false;
+    bool seen_dot = false;
+    bool seen_exponent = false;
+
+    for (size_t i = 0; i < raw_number.size(); ++i) {
+        const char ch = raw_number[i];
+        if (ch == 'e' || ch == 'E') {
+            seen_exponent = true;
+            if (i + 1 < raw_number.size() &&
+                (raw_number[i + 1] == '-' || raw_number[i + 1] == '+')) {
+                ++i;
+            }
+            continue;
+        }
+        if (seen_exponent) {
+            continue;
+        }
+        if (ch == '.') {
+            seen_dot = true;
+            continue;
+        }
+        if (ch < '0' || ch > '9') {
+            continue;
+        }
+        if (seen_dot) {
+            ++fractional_digits;
+        }
+        if (ch != '0' || seen_nonzero_digit) {
+            seen_nonzero_digit = true;
+            ++significant_digits;
+        }
+    }
+
+    return significant_digits > 15 || fractional_digits >= 10;
+}

Review Comment:
   This heuristic still lets typed decimal paths lose precision for scientific-notation tokens because it stops counting once it sees `e`/`E` and never accounts for the exponent magnitude. For example, with a `decimalv3(38,10)` typed path, `9.999999999e27` has only 10 mantissa significant digits and 9 fractional digits before the exponent, so this returns false; `getValueAsField()` then stores a `TYPE_DOUBLE`, and the later decimal cast uses the rounded double instead of the original JSON token. Please preserve the raw token for exponent-form decimal typed-path numbers as well, or preserve raw numeric text for all double typed-path values before casting to decimal.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470612315

   /review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470508551

   /review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471451200

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4474525624

   /review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471220496

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471350370

   /review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4473927544

   /review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4474456379

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4477200478

   
   <details>
   <summary>TPC-DS: <b>Total hot run time: 168919 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
   TPC-DS sf100 test result on commit 1f40adb4feed235b8c3c5c6e215682a37a4efb68, data reload: false
   
   query5	4333	663	516	516
   query6	330	215	210	210
   query7	4250	569	304	304
   query8	330	232	213	213
   query9	8817	3977	3979	3977
   query10	448	335	294	294
   query11	5772	2361	2245	2245
   query12	181	129	127	127
   query13	1302	618	447	447
   query14	5982	5378	5067	5067
   query14_1	4359	4340	4366	4340
   query15	228	202	188	188
   query16	1044	461	431	431
   query17	1172	724	571	571
   query18	2682	476	348	348
   query19	210	198	160	160
   query20	137	130	129	129
   query21	225	145	118	118
   query22	13671	13626	13449	13449
   query23	17220	16342	16020	16020
   query23_1	16249	16184	16150	16150
   query24	7399	1739	1275	1275
   query24_1	1292	1281	1299	1281
   query25	541	472	416	416
   query26	1300	320	176	176
   query27	2684	587	354	354
   query28	4417	2017	1964	1964
   query29	987	611	492	492
   query30	312	238	200	200
   query31	1101	1070	930	930
   query32	90	76	74	74
   query33	540	349	283	283
   query34	1179	1121	666	666
   query35	747	760	676	676
   query36	1329	1320	1150	1150
   query37	156	111	105	105
   query38	3215	3106	3053	3053
   query39	915	943	901	901
   query39_1	903	879	888	879
   query40	222	144	126	126
   query41	97	63	61	61
   query42	110	107	108	107
   query43	322	332	288	288
   query44	
   query45	210	205	196	196
   query46	1074	1204	710	710
   query47	2278	2398	2188	2188
   query48	394	396	291	291
   query49	637	494	383	383
   query50	977	348	236	236
   query51	4293	4279	4193	4193
   query52	106	104	94	94
   query53	263	286	207	207
   query54	302	286	261	261
   query55	96	88	85	85
   query56	309	322	303	303
   query57	1421	1397	1339	1339
   query58	294	269	267	267
   query59	1549	1625	1424	1424
   query60	322	333	306	306
   query61	160	157	156	156
   query62	675	640	562	562
   query63	241	201	205	201
   query64	2426	810	630	630
   query65	
   query66	1701	488	354	354
   query67	29481	29980	29332	29332
   query68	
   query69	465	343	301	301
   query70	1021	1003	1029	1003
   query71	303	278	268	268
   query72	2971	2688	2386	2386
   query73	871	762	424	424
   query74	5070	4878	4738	4738
   query75	2670	2588	2256	2256
   query76	2317	1127	733	733
   query77	395	408	334	334
   query78	12116	12099	11681	11681
   query79	1262	1035	747	747
   query80	594	536	444	444
   query81	452	279	254	254
   query82	238	159	125	125
   query83	282	288	255	255
   query84	272	143	117	117
   query85	955	623	538	538
   query86	361	333	327	327
   query87	3392	3396	3203	3203
   query88	3512	2671	2668	2668
   query89	431	404	343	343
   query90	2243	182	181	181
   query91	195	189	157	157
   query92	80	83	77	77
   query93	1458	1407	926	926
   query94	544	317	331	317
   query95	700	414	452	414
   query96	1082	769	355	355
   query97	2711	2716	2612	2612
   query98	240	239	231	231
   query99	1143	1101	990	990
   Total cold run time: 251255 ms
   Total hot run time: 168919 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470881569

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470904349

   
   <details>
   <summary>TPC-H: <b>Total hot run time: 31177 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
   Tpch sf100 test result on commit 9a398bd168d5dc2f4047719bccd4b533f710ea0b, 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	17633	3973	3914	3914
   q2	q3	10790	1404	820	820
   q4	4686	475	351	351
   q5	7549	2282	2136	2136
   q6	235	182	143	143
   q7	941	789	614	614
   q8	9367	1660	1637	1637
   q9	5134	4935	4983	4935
   q10	6389	2096	1801	1801
   q11	448	274	249	249
   q12	631	431	299	299
   q13	18109	3358	2765	2765
   q14	261	257	234	234
   q15	q16	815	772	712	712
   q17	928	896	953	896
   q18	7106	5812	5546	5546
   q19	1285	1347	1041	1041
   q20	531	404	266	266
   q21	6161	2744	2518	2518
   q22	438	369	300	300
   Total cold run time: 99437 ms
   Total hot run time: 31177 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	4198	4129	4193	4129
   q2	q3	4575	4926	4316	4316
   q4	2130	2225	1397	1397
   q5	4429	4310	4335	4310
   q6	239	188	140	140
   q7	2281	1985	1717	1717
   q8	2606	2323	2330	2323
   q9	8096	7773	7734	7734
   q10	4569	4482	4072	4072
   q11	582	427	424	424
   q12	748	741	555	555
   q13	3255	3677	2948	2948
   q14	307	304	286	286
   q15	q16	709	753	676	676
   q17	1398	1381	1440	1381
   q18	8287	7407	7510	7407
   q19	1192	1146	1095	1095
   q20	2223	2218	1914	1914
   q21	5413	4755	4706	4706
   q22	538	486	436	436
   Total cold run time: 57775 ms
   Total hot run time: 51966 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470319367

   /review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470808046

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on code in PR #63322:
URL: https://github.com/apache/doris/pull/63322#discussion_r3255002040


##########
be/src/util/json/simd_json_parser.h:
##########
@@ -38,143 +72,400 @@ class SimdJSONParser {
     class Element {
     public:
         ALWAYS_INLINE Element() {} /// NOLINT
-        ALWAYS_INLINE Element(const simdjson::dom::element& element_)
-                : element(element_) {} /// NOLINT
+        ALWAYS_INLINE explicit Element(const simdjson::dom::element& element_)
+                : dom_element(element_) {}                                 /// NOLINT
+        ALWAYS_INLINE explicit Element(const Node* node_) : node(node_) {} /// NOLINT
         ALWAYS_INLINE bool isInt64() const {
-            return element.type() == simdjson::dom::element_type::INT64;
+            return node ? node->type == Node::Type::INT64
+                        : dom_element.type() == simdjson::dom::element_type::INT64;
         }
         ALWAYS_INLINE bool isUInt64() const {
-            return element.type() == simdjson::dom::element_type::UINT64;
+            return node ? node->type == Node::Type::UINT64
+                        : dom_element.type() == simdjson::dom::element_type::UINT64;
         }
+        ALWAYS_INLINE bool isInt128() const { return node && node->type == Node::Type::INT128; }
         ALWAYS_INLINE bool isDouble() const {
-            return element.type() == simdjson::dom::element_type::DOUBLE;
+            return node ? node->type == Node::Type::DOUBLE
+                        : dom_element.type() == simdjson::dom::element_type::DOUBLE;
         }
         ALWAYS_INLINE bool isString() const {
-            return element.type() == simdjson::dom::element_type::STRING;
+            return node ? node->type == Node::Type::STRING
+                        : dom_element.type() == simdjson::dom::element_type::STRING;
         }
         ALWAYS_INLINE bool isArray() const {
-            return element.type() == simdjson::dom::element_type::ARRAY;
+            return node ? node->type == Node::Type::ARRAY
+                        : dom_element.type() == simdjson::dom::element_type::ARRAY;
         }
         ALWAYS_INLINE bool isObject() const {
-            return element.type() == simdjson::dom::element_type::OBJECT;
+            return node ? node->type == Node::Type::OBJECT
+                        : dom_element.type() == simdjson::dom::element_type::OBJECT;
         }
         ALWAYS_INLINE bool isBool() const {
-            return element.type() == simdjson::dom::element_type::BOOLEAN;
+            return node ? node->type == Node::Type::BOOL
+                        : dom_element.type() == simdjson::dom::element_type::BOOLEAN;
         }
         ALWAYS_INLINE bool isNull() const {
-            return element.type() == simdjson::dom::element_type::NULL_VALUE;
+            return node ? node->type == Node::Type::NULL_VALUE
+                        : dom_element.type() == simdjson::dom::element_type::NULL_VALUE;
+        }
+        ALWAYS_INLINE Int64 getInt64() const {
+            return node ? node->int64_value : dom_element.get_int64().value_unsafe();
+        }
+        ALWAYS_INLINE double getDouble() const {
+            return node ? node->double_value : dom_element.get_double().value_unsafe();
+        }
+        ALWAYS_INLINE bool getBool() const {
+            return node ? node->bool_value : dom_element.get_bool().value_unsafe();
         }
-        ALWAYS_INLINE Int64 getInt64() const { return element.get_int64().value_unsafe(); }
-        ALWAYS_INLINE double getDouble() const { return element.get_double().value_unsafe(); }
-        ALWAYS_INLINE bool getBool() const { return element.get_bool().value_unsafe(); }
         ALWAYS_INLINE std::string_view getString() const {
-            return element.get_string().value_unsafe();
+            return node ? std::string_view(node->string_value)
+                        : dom_element.get_string().value_unsafe();
+        }
+        ALWAYS_INLINE UInt64 getUInt64() const {
+            return node ? node->uint64_value : dom_element.get_uint64().value_unsafe();
+        }
+        ALWAYS_INLINE Int128 getInt128() const {
+            assert(node != nullptr);
+            return node->int128_value;
+        }
+        ALWAYS_INLINE std::string_view getRawNumber() const {
+            assert(node != nullptr);
+            return node->raw_number;
         }
-        ALWAYS_INLINE UInt64 getUInt64() const { return element.get_uint64().value_unsafe(); }
         ALWAYS_INLINE Array getArray() const;
         ALWAYS_INLINE Object getObject() const;
 
     private:
-        simdjson::dom::element element;
+        simdjson::dom::element dom_element;
+        const Node* node = nullptr;
     };
     /// References an array in a JSON document.
     class Array {
     public:
         class Iterator {
         public:
-            ALWAYS_INLINE Iterator(const simdjson::dom::array::iterator& it_)
-                    : it(it_) {} /// NOLINT
-            ALWAYS_INLINE Element operator*() const { return *it; }
+            using DomIterator = simdjson::dom::array::iterator;
+            using NodeIterator = std::vector<Node>::const_iterator;
+            ALWAYS_INLINE explicit Iterator(const DomIterator& it_) : it(it_) {} /// NOLINT
+            ALWAYS_INLINE explicit Iterator(NodeIterator it_) : it(it_) {}       /// NOLINT
+            ALWAYS_INLINE Element operator*() const {
+                if (const auto* node_it = std::get_if<NodeIterator>(&it)) {
+                    return Element(&**node_it);
+                }
+                return Element(*std::get<DomIterator>(it));
+            }
             ALWAYS_INLINE Iterator& operator++() {
-                ++it;
+                if (auto* node_it = std::get_if<NodeIterator>(&it)) {
+                    ++(*node_it);
+                } else {
+                    ++std::get<DomIterator>(it);
+                }
                 return *this;
             }
             ALWAYS_INLINE friend bool operator!=(const Iterator& left, const Iterator& right) {
-                return left.it != right.it;
+                if (const auto* left_node_it = std::get_if<NodeIterator>(&left.it)) {
+                    return *left_node_it != std::get<NodeIterator>(right.it);
+                }
+                return std::get<DomIterator>(left.it) != std::get<DomIterator>(right.it);
             }
 
         private:
-            simdjson::dom::array::iterator it;
+            std::variant<DomIterator, NodeIterator> it;
         };
-        ALWAYS_INLINE Array(const simdjson::dom::array& array_) : array(array_) {} /// NOLINT
-        ALWAYS_INLINE Iterator begin() const { return array.begin(); }
-        ALWAYS_INLINE Iterator end() const { return array.end(); }
-        ALWAYS_INLINE size_t size() const { return array.size(); }
+        ALWAYS_INLINE explicit Array(const simdjson::dom::array& array_)
+                : dom_array(array_) {}                                                   /// NOLINT
+        ALWAYS_INLINE explicit Array(const std::vector<Node>* array_) : array(array_) {} /// NOLINT
+        ALWAYS_INLINE Iterator begin() const {
+            return array ? Iterator(array->begin()) : Iterator(dom_array.begin());
+        }
+        ALWAYS_INLINE Iterator end() const {
+            return array ? Iterator(array->end()) : Iterator(dom_array.end());
+        }
+        ALWAYS_INLINE size_t size() const { return array ? array->size() : dom_array.size(); }
         ALWAYS_INLINE Element operator[](size_t index) const {
             assert(index < size());
-            return array.at(index).value_unsafe();
+            return array ? Element(&(*array)[index]) : Element(dom_array.at(index).value_unsafe());
         }
 
     private:
-        simdjson::dom::array array;
+        simdjson::dom::array dom_array;
+        const std::vector<Node>* array = nullptr;
     };
     using KeyValuePair = std::pair<std::string_view, Element>;
     /// References an object in a JSON document.
     class Object {
     public:
         class Iterator {
         public:
-            ALWAYS_INLINE Iterator(const simdjson::dom::object::iterator& it_)
-                    : it(it_) {} /// NOLINT
+            using DomIterator = simdjson::dom::object::iterator;
+            ALWAYS_INLINE explicit Iterator(const std::vector<std::string>* keys_,
+                                            const std::vector<Node>* values_, size_t index_)
+                    : it(index_), keys(keys_), values(values_) {}                /// NOLINT
+            ALWAYS_INLINE explicit Iterator(const DomIterator& it_) : it(it_) {} /// NOLINT
             ALWAYS_INLINE KeyValuePair operator*() const {
-                const auto& res = *it;
-                return {res.key, res.value};
+                if (const auto* index = std::get_if<size_t>(&it)) {
+                    return {(*keys)[*index], Element(&(*values)[*index])};
+                }
+                const auto& res = *std::get<DomIterator>(it);
+                return {res.key, Element(res.value)};
             }
             ALWAYS_INLINE Iterator& operator++() {
-                ++it;
+                if (auto* index = std::get_if<size_t>(&it)) {
+                    ++(*index);
+                } else {
+                    ++std::get<DomIterator>(it);
+                }
                 return *this;
             }
             ALWAYS_INLINE Iterator operator++(int) {
                 auto res = *this;
-                ++it;
+                ++(*this);
                 return res;
             } /// NOLINT
             ALWAYS_INLINE friend bool operator!=(const Iterator& left, const Iterator& right) {
-                return left.it != right.it;
+                if (const auto* left_index = std::get_if<size_t>(&left.it)) {
+                    return *left_index != std::get<size_t>(right.it);
+                }
+                return std::get<DomIterator>(left.it) != std::get<DomIterator>(right.it);
             }
             ALWAYS_INLINE friend bool operator==(const Iterator& left, const Iterator& right) {
                 return !(left != right);
             }
 
         private:
-            simdjson::dom::object::iterator it;
+            std::variant<DomIterator, size_t> it;
+            const std::vector<std::string>* keys = nullptr;
+            const std::vector<Node>* values = nullptr;
         };
-        ALWAYS_INLINE Object(const simdjson::dom::object& object_) : object(object_) {} /// NOLINT
-        ALWAYS_INLINE Iterator begin() const { return object.begin(); }
-        ALWAYS_INLINE Iterator end() const { return object.end(); }
-        ALWAYS_INLINE size_t size() const { return object.size(); }
+        ALWAYS_INLINE explicit Object(const simdjson::dom::object& object_)
+                : dom_object(object_) {} /// NOLINT
+        ALWAYS_INLINE explicit Object(const std::vector<std::string>* keys_,
+                                      const std::vector<Node>* values_)
+                : keys(keys_), values(values_) {} /// NOLINT
+        ALWAYS_INLINE Iterator begin() const {
+            return values ? Iterator(keys, values, 0) : Iterator(dom_object.begin());
+        }
+        ALWAYS_INLINE Iterator end() const {
+            return values ? Iterator(keys, values, size()) : Iterator(dom_object.end());
+        }
+        ALWAYS_INLINE size_t size() const { return values ? values->size() : dom_object.size(); }
         /// Optional: Provides access to an object's element by index.
         KeyValuePair operator[](size_t index) const {
             assert(index < size());
-            auto it = object.begin();
+            if (values) {
+                return {(*keys)[index], Element(&(*values)[index])};
+            }
+            auto it = dom_object.begin();
             while (index--) {
                 ++it;
             }
             const auto& res = *it;
-            return {res.key, res.value};
+            return {res.key, Element(res.value)};
         }
 
     private:
-        simdjson::dom::object object;
+        simdjson::dom::object dom_object;
+        const std::vector<std::string>* keys = nullptr;
+        const std::vector<Node>* values = nullptr;
     };
     /// Parses a JSON document, returns the reference to its root element if succeeded.
-    bool parse(const char* data, size_t size, Element& result) {
-        auto document = parser.parse(data, size);
-        if (document.error()) {
+    bool parse(const char* data, size_t size, Element& result, bool preserve_raw_numbers = false) {
+        if (!preserve_raw_numbers) {
+            auto document = dom_parser.parse(data, size);
+            if (document.error()) {
+                return false;
+            }
+            result = Element(document.value_unsafe());
+            return true;
+        }
+
+        return parse_ondemand(data, size, result);
+    }
+
+private:
+    bool parse_ondemand(const char* data, size_t size, Element& result) {
+        simdjson::padded_string padded_json(data, size);
+        simdjson::ondemand::document document;
+        auto error = ondemand_parser.iterate(padded_json).get(document);
+        if (error) {
+            return false;
+        }
+        root = Node();
+        if (!build_node(document, &root)) {
             return false;
         }
-        result = document.value_unsafe();
+        result = Element(&root);
         return true;
     }
 
-private:
-    simdjson::dom::parser parser;
+    static std::string_view trim_raw_number(std::string_view raw_number) {
+        auto is_space = [](char ch) { return ch == ' ' || ch == '\t' || ch == '\n' || ch == '\r'; };
+        while (!raw_number.empty() && is_space(raw_number.front())) {
+            raw_number.remove_prefix(1);
+        }
+        while (!raw_number.empty() && is_space(raw_number.back())) {
+            raw_number.remove_suffix(1);
+        }
+        return raw_number;
+    }
+
+    template <typename RawNumber>
+    static bool assign_raw_number(RawNumber&& raw_number, std::string* out) {
+        if constexpr (std::is_same_v<std::decay_t<RawNumber>, std::string_view>) {
+            *out = std::string(trim_raw_number(raw_number));
+            return true;
+        } else {
+            std::string_view raw_number_view;
+            auto error = std::move(raw_number).get(raw_number_view);
+            if (error) {
+                return false;
+            }
+            *out = std::string(trim_raw_number(raw_number_view));
+            return true;
+        }
+    }
+
+    template <typename Value>
+    bool build_array_node(Value& value, Node* out) {
+        simdjson::ondemand::array array;
+        auto error = value.get_array().get(array);
+        if (error) {
+            return false;
+        }
+        out->type = Node::Type::ARRAY;
+        for (auto element_result : array) {
+            simdjson::ondemand::value element;
+            error = std::move(element_result).get(element);
+            if (error) {
+                return false;
+            }
+            Node element_node;
+            if (!build_node(element, &element_node)) {
+                return false;
+            }
+            out->array_values.push_back(std::move(element_node));
+        }
+        return true;
+    }
+
+    template <typename Value>
+    bool build_object_node(Value& value, Node* out) {
+        simdjson::ondemand::object object;
+        auto error = value.get_object().get(object);
+        if (error) {
+            return false;
+        }
+        out->type = Node::Type::OBJECT;
+        for (auto field_result : object) {
+            simdjson::ondemand::field field;
+            error = std::move(field_result).get(field);
+            if (error) {
+                return false;
+            }
+            std::string_view key;
+            error = field.unescaped_key().get(key);
+            if (error) {
+                return false;
+            }
+            std::string key_copy(key);
+            simdjson::ondemand::value field_value = field.value();
+            Node field_node;
+            if (!build_node(field_value, &field_node)) {
+                return false;
+            }
+            out->object_keys.push_back(std::move(key_copy));
+            out->object_values.push_back(std::move(field_node));
+        }
+        return true;
+    }
+
+    template <typename Value>
+    bool build_number_node(Value& value, Node* out) {
+        simdjson::ondemand::number_type number_type;
+        auto error = value.get_number_type().get(number_type);
+        if (error) {
+            return false;
+        }
+        switch (number_type) {
+        case simdjson::ondemand::number_type::signed_integer:
+            out->type = Node::Type::INT64;
+            error = value.get_int64().get(out->int64_value);
+            return !error;
+        case simdjson::ondemand::number_type::unsigned_integer:
+            out->type = Node::Type::UINT64;
+            error = value.get_uint64().get(out->uint64_value);
+            return !error;
+        case simdjson::ondemand::number_type::floating_point_number:
+            if (!assign_raw_number(value.raw_json_token(), &out->raw_number)) {
+                return false;
+            }
+            out->type = Node::Type::DOUBLE;
+            error = value.get_double().get(out->double_value);
+            return !error;
+        case simdjson::ondemand::number_type::big_integer: {
+            if (!assign_raw_number(value.raw_json_token(), &out->raw_number)) {
+                return false;
+            }
+            out->type = Node::Type::INT128;
+            StringParser::ParseResult parse_result;
+            out->int128_value = StringParser::string_to_int<Int128>(
+                    out->raw_number.data(), out->raw_number.size(), &parse_result);
+            return parse_result == StringParser::PARSE_SUCCESS;
+        }

Review Comment:
   This `big_integer` branch still requires every raw-preservation parse to fit the token into `Int128` before `JSONDataParser` can check whether the current path is a typed decimal path. A Variant path declared as `decimalv3(76,0)`/Decimal256 can validly contain an integer larger than `Int128`, for example `340282366920938463463374607431768211456`; with a schema typed path this should be preserved as raw text and cast to Decimal256, but `string_to_int<Int128>()` fails here, `build_node()` returns false, and the whole JSON is treated as parse failure/fallback instead. Please keep the raw token for `big_integer` nodes without requiring an Int128 conversion on paths that may be decimal-preserved, or defer the Int128 conversion until the consumer actually needs a LargeInt, and add a Decimal256 integer regression case.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470611937

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471275786

   
   <details>
   <summary>TPC-DS: <b>Total hot run time: 170186 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
   TPC-DS sf100 test result on commit 6d77c2e151db0215a94add25f0ed9e0300fa3649, data reload: false
   
   query5	4315	663	516	516
   query6	331	221	197	197
   query7	4278	553	296	296
   query8	323	230	225	225
   query9	8832	4064	4025	4025
   query10	456	344	288	288
   query11	5863	2411	2205	2205
   query12	175	127	121	121
   query13	1330	640	432	432
   query14	6024	5415	5108	5108
   query14_1	4414	4396	4377	4377
   query15	210	205	176	176
   query16	1014	448	417	417
   query17	1025	706	590	590
   query18	2484	495	348	348
   query19	236	205	161	161
   query20	135	132	129	129
   query21	220	146	117	117
   query22	13773	13494	13421	13421
   query23	17140	16530	16119	16119
   query23_1	16389	16401	16291	16291
   query24	7614	1746	1280	1280
   query24_1	1326	1296	1264	1264
   query25	559	473	428	428
   query26	1368	319	175	175
   query27	2641	560	343	343
   query28	4458	1921	1923	1921
   query29	1006	621	490	490
   query30	328	241	198	198
   query31	1102	1055	959	959
   query32	87	76	74	74
   query33	540	348	294	294
   query34	1158	1222	642	642
   query35	765	776	691	691
   query36	1359	1333	1152	1152
   query37	157	106	92	92
   query38	3250	3150	3074	3074
   query39	950	941	894	894
   query39_1	889	882	903	882
   query40	252	158	130	130
   query41	72	69	70	69
   query42	117	113	111	111
   query43	340	335	304	304
   query44	
   query45	217	204	208	204
   query46	1102	1185	737	737
   query47	2337	2330	2156	2156
   query48	411	428	301	301
   query49	657	524	402	402
   query50	982	363	251	251
   query51	4446	4314	4212	4212
   query52	107	106	96	96
   query53	261	285	209	209
   query54	331	286	268	268
   query55	94	92	88	88
   query56	324	325	325	325
   query57	1419	1383	1267	1267
   query58	311	285	274	274
   query59	1607	1695	1486	1486
   query60	343	333	322	322
   query61	183	184	182	182
   query62	670	632	554	554
   query63	243	205	214	205
   query64	2500	882	693	693
   query65	
   query66	1738	493	362	362
   query67	30381	30091	30122	30091
   query68	
   query69	485	352	307	307
   query70	1016	986	1040	986
   query71	320	280	281	280
   query72	3047	2657	2420	2420
   query73	860	811	436	436
   query74	5086	4925	4737	4737
   query75	2700	2591	2261	2261
   query76	2284	1149	764	764
   query77	402	419	333	333
   query78	12160	12161	11651	11651
   query79	1479	1022	699	699
   query80	1242	557	496	496
   query81	510	279	244	244
   query82	1355	158	122	122
   query83	359	277	261	261
   query84	302	138	110	110
   query85	937	539	455	455
   query86	452	351	320	320
   query87	3438	3379	3237	3237
   query88	3593	2649	2632	2632
   query89	458	382	336	336
   query90	1796	181	185	181
   query91	180	177	142	142
   query92	82	88	77	77
   query93	1508	1417	879	879
   query94	681	329	308	308
   query95	689	395	434	395
   query96	985	793	353	353
   query97	2674	2671	2575	2575
   query98	239	230	228	228
   query99	1134	1089	986	986
   Total cold run time: 255506 ms
   Total hot run time: 170186 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470493827

   
   <details>
   <summary>TPC-H: <b>Total hot run time: 31205 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
   Tpch sf100 test result on commit 832ca14461bc0faf4fbf9b0d2a91c7df1111f393, 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	17647	3855	3817	3817
   q2	q3	10758	1360	803	803
   q4	4705	479	344	344
   q5	8069	2303	2126	2126
   q6	386	176	138	138
   q7	955	770	647	647
   q8	9675	1690	1594	1594
   q9	7088	4964	4934	4934
   q10	6460	2120	1810	1810
   q11	441	280	248	248
   q12	697	429	298	298
   q13	18232	3396	2793	2793
   q14	264	262	237	237
   q15	q16	813	772	701	701
   q17	920	886	1021	886
   q18	6905	5624	5516	5516
   q19	1194	1440	1122	1122
   q20	498	409	275	275
   q21	6230	2743	2613	2613
   q22	462	380	303	303
   Total cold run time: 102399 ms
   Total hot run time: 31205 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	4623	4679	4591	4591
   q2	q3	4865	5289	4606	4606
   q4	2148	2317	1468	1468
   q5	4825	4698	4662	4662
   q6	233	173	127	127
   q7	1866	1744	1380	1380
   q8	2208	1925	1905	1905
   q9	7222	7185	7156	7156
   q10	4557	4422	3997	3997
   q11	536	384	352	352
   q12	716	721	512	512
   q13	3012	3393	2779	2779
   q14	266	276	251	251
   q15	q16	676	703	625	625
   q17	1264	1234	1229	1229
   q18	7313	6907	6764	6764
   q19	1145	1134	1105	1105
   q20	2205	2211	1938	1938
   q21	5329	4666	4504	4504
   q22	518	454	420	420
   Total cold run time: 55527 ms
   Total hot run time: 50371 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470493289

   
   <details>
   <summary>TPC-H: <b>Total hot run time: 31294 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
   Tpch sf100 test result on commit 43b1a1432eb96745bdb80b377765e638551b4e56, 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	17684	3930	3838	3838
   q2	q3	10778	1358	779	779
   q4	4686	474	339	339
   q5	7570	2248	2114	2114
   q6	389	176	138	138
   q7	938	783	619	619
   q8	9482	1809	1632	1632
   q9	7044	4914	4867	4867
   q10	6442	2094	1812	1812
   q11	441	276	250	250
   q12	693	422	296	296
   q13	18244	3462	2833	2833
   q14	271	255	235	235
   q15	q16	823	776	706	706
   q17	977	938	927	927
   q18	6849	5646	5541	5541
   q19	1187	1270	1238	1238
   q20	533	418	278	278
   q21	6104	2833	2542	2542
   q22	456	370	310	310
   Total cold run time: 101591 ms
   Total hot run time: 31294 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	4695	4548	4689	4548
   q2	q3	4887	5278	4672	4672
   q4	2120	2217	1431	1431
   q5	4873	4738	4655	4655
   q6	235	183	129	129
   q7	1888	1691	1578	1578
   q8	2404	1935	1920	1920
   q9	7305	7282	7213	7213
   q10	4521	4430	3956	3956
   q11	544	383	383	383
   q12	709	721	507	507
   q13	2993	3495	2787	2787
   q14	270	287	247	247
   q15	q16	677	709	624	624
   q17	1272	1229	1251	1229
   q18	7358	6840	6842	6840
   q19	1152	1085	1127	1085
   q20	2219	2219	1937	1937
   q21	5365	4717	4535	4535
   q22	529	472	411	411
   Total cold run time: 56016 ms
   Total hot run time: 50687 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4475505434

   /review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon closed pull request #63322: [fix](be) Preserve Variant predefined decimal precision
URL: https://github.com/apache/doris/pull/63322


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471451190

   /review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470517569

   
   <details>
   <summary>TPC-DS: <b>Total hot run time: 171161 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
   TPC-DS sf100 test result on commit 832ca14461bc0faf4fbf9b0d2a91c7df1111f393, data reload: false
   
   query5	4338	652	527	527
   query6	338	237	216	216
   query7	4226	581	309	309
   query8	335	239	225	225
   query9	8815	4112	4075	4075
   query10	451	354	296	296
   query11	5778	2350	2218	2218
   query12	182	132	125	125
   query13	1276	623	441	441
   query14	6019	5455	5122	5122
   query14_1	4490	4438	4434	4434
   query15	218	212	185	185
   query16	983	480	460	460
   query17	1160	755	636	636
   query18	2502	507	377	377
   query19	229	214	170	170
   query20	137	150	131	131
   query21	226	145	125	125
   query22	13891	13611	13330	13330
   query23	17171	16328	16064	16064
   query23_1	16248	16273	16231	16231
   query24	7515	1801	1316	1316
   query24_1	1345	1325	1336	1325
   query25	591	520	483	483
   query26	1346	329	173	173
   query27	2721	555	344	344
   query28	4414	1969	1944	1944
   query29	948	641	508	508
   query30	303	235	198	198
   query31	1113	1080	947	947
   query32	91	78	74	74
   query33	534	356	303	303
   query34	1182	1159	663	663
   query35	772	796	694	694
   query36	1328	1324	1177	1177
   query37	152	104	94	94
   query38	3216	3172	3076	3076
   query39	931	927	893	893
   query39_1	875	876	866	866
   query40	248	150	129	129
   query41	67	63	64	63
   query42	111	110	111	110
   query43	331	346	291	291
   query44	
   query45	209	202	196	196
   query46	1053	1185	732	732
   query47	2274	2272	2200	2200
   query48	384	408	287	287
   query49	634	502	386	386
   query50	1034	358	246	246
   query51	4352	4329	4204	4204
   query52	108	112	97	97
   query53	264	286	205	205
   query54	310	268	255	255
   query55	96	91	86	86
   query56	310	311	300	300
   query57	1398	1403	1272	1272
   query58	300	278	280	278
   query59	1607	1626	1454	1454
   query60	329	328	320	320
   query61	163	162	159	159
   query62	667	646	547	547
   query63	260	204	216	204
   query64	2406	802	651	651
   query65	
   query66	1707	494	368	368
   query67	30012	30072	30026	30026
   query68	
   query69	456	350	317	317
   query70	1047	1070	1017	1017
   query71	306	278	276	276
   query72	3031	2929	2458	2458
   query73	850	792	434	434
   query74	5061	4985	4714	4714
   query75	2691	2606	2264	2264
   query76	2806	1161	777	777
   query77	399	421	345	345
   query78	12182	12305	11616	11616
   query79	1438	994	740	740
   query80	668	549	461	461
   query81	457	277	243	243
   query82	1416	160	120	120
   query83	371	275	264	264
   query84	267	146	112	112
   query85	883	543	458	458
   query86	389	327	311	311
   query87	3462	3375	3227	3227
   query88	3579	2685	2663	2663
   query89	440	397	340	340
   query90	1979	195	192	192
   query91	183	179	144	144
   query92	80	76	76	76
   query93	1504	1429	942	942
   query94	539	360	325	325
   query95	662	483	359	359
   query96	1042	781	326	326
   query97	2706	2702	2576	2576
   query98	244	234	234	234
   query99	1136	1090	968	968
   Total cold run time: 254164 ms
   Total hot run time: 171161 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470515240

   
   <details>
   <summary>TPC-H: <b>Total hot run time: 30897 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
   Tpch sf100 test result on commit 7885a6ce76862cca4cd5fd9cc18bd2d7185fb161, 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	17624	3801	3808	3801
   q2	q3	10822	1327	851	851
   q4	4680	469	357	357
   q5	7595	2284	2081	2081
   q6	240	177	137	137
   q7	929	754	651	651
   q8	9422	1780	1582	1582
   q9	6585	4875	4841	4841
   q10	6446	2111	1809	1809
   q11	438	264	242	242
   q12	699	429	291	291
   q13	18190	3354	2742	2742
   q14	268	254	234	234
   q15	q16	814	781	702	702
   q17	950	969	987	969
   q18	6741	5630	5556	5556
   q19	1181	1349	1052	1052
   q20	529	410	258	258
   q21	5902	2593	2437	2437
   q22	432	368	304	304
   Total cold run time: 100487 ms
   Total hot run time: 30897 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	4170	4076	4055	4055
   q2	q3	4480	4864	4305	4305
   q4	2090	2193	1375	1375
   q5	4317	4301	4236	4236
   q6	232	186	142	142
   q7	2099	1928	1768	1768
   q8	2488	2175	2103	2103
   q9	8040	7818	7854	7818
   q10	4638	4567	4118	4118
   q11	600	417	385	385
   q12	930	785	559	559
   q13	3296	3552	2995	2995
   q14	291	300	271	271
   q15	q16	717	763	628	628
   q17	1336	1298	1299	1298
   q18	7931	7265	7050	7050
   q19	1160	1067	1110	1067
   q20	2216	2191	1930	1930
   q21	5220	4542	4384	4384
   q22	508	455	405	405
   Total cold run time: 56759 ms
   Total hot run time: 50892 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4472197391

   # BE Regression && UT Coverage Report
   Increment line coverage `78.53% (373/475)` :tada:
   
   [Increment coverage report](http://coverage.selectdb-in.cc/coverage/63322_b2ec8138ab58c2542048d496e500a78733c50214_merge/increment_report/index.html)
   [Complete coverage report](http://coverage.selectdb-in.cc/coverage/63322_b2ec8138ab58c2542048d496e500a78733c50214_merge/report/index.html)
   | Category          | Coverage           |
   |-------------------|--------------------|
   | Function Coverage | 73.62% (27837/37810) |
   | Line Coverage     | 57.60% (301865/524098) |
   | Region Coverage   | 54.90% (252633/460156) |
   | Branch Coverage   | 56.38% (109135/193587) |


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471159728

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471301313

   
   <details>
   <summary>TPC-DS: <b>Total hot run time: 168730 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
   TPC-DS sf100 test result on commit 95ccafea2253112ebae2ad285d71df8be7689d9b, data reload: false
   
   query5	4335	655	509	509
   query6	325	212	198	198
   query7	4229	522	299	299
   query8	324	233	258	233
   query9	8820	3970	3966	3966
   query10	444	334	293	293
   query11	5803	2417	2187	2187
   query12	176	130	123	123
   query13	1265	598	428	428
   query14	5878	5330	4983	4983
   query14_1	4290	4300	4314	4300
   query15	208	203	178	178
   query16	1056	425	411	411
   query17	975	737	599	599
   query18	2481	483	362	362
   query19	220	230	161	161
   query20	136	133	134	133
   query21	212	136	120	120
   query22	13578	13442	13366	13366
   query23	17163	16228	15996	15996
   query23_1	16072	16100	16157	16100
   query24	7496	1709	1315	1315
   query24_1	1305	1304	1314	1304
   query25	548	477	416	416
   query26	1306	313	168	168
   query27	2729	542	326	326
   query28	4481	1921	1921	1921
   query29	975	608	489	489
   query30	300	238	198	198
   query31	1110	1057	934	934
   query32	88	76	71	71
   query33	554	343	288	288
   query34	1171	1129	626	626
   query35	743	788	671	671
   query36	1336	1345	1162	1162
   query37	152	104	90	90
   query38	3178	3125	3036	3036
   query39	933	926	892	892
   query39_1	873	889	875	875
   query40	237	148	128	128
   query41	72	69	69	69
   query42	114	113	112	112
   query43	319	323	286	286
   query44	
   query45	211	204	204	204
   query46	1100	1193	732	732
   query47	2348	2351	2192	2192
   query48	400	426	294	294
   query49	669	521	405	405
   query50	997	358	253	253
   query51	4316	4223	4217	4217
   query52	106	109	96	96
   query53	262	284	211	211
   query54	336	302	289	289
   query55	96	92	88	88
   query56	308	333	315	315
   query57	1417	1416	1326	1326
   query58	302	288	282	282
   query59	1535	1655	1449	1449
   query60	330	325	327	325
   query61	187	179	185	179
   query62	671	635	572	572
   query63	248	202	212	202
   query64	2476	866	692	692
   query65	
   query66	1763	502	366	366
   query67	29409	30019	29838	29838
   query68	
   query69	457	349	310	310
   query70	1058	964	976	964
   query71	304	280	307	280
   query72	3006	2657	2419	2419
   query73	818	749	418	418
   query74	5063	4880	4731	4731
   query75	2672	2601	2259	2259
   query76	2284	1153	762	762
   query77	395	408	340	340
   query78	12213	12153	11689	11689
   query79	1500	1014	753	753
   query80	645	541	456	456
   query81	447	282	244	244
   query82	1353	158	119	119
   query83	350	285	253	253
   query84	307	140	106	106
   query85	886	542	465	465
   query86	388	336	307	307
   query87	3402	3321	3222	3222
   query88	3542	2682	2641	2641
   query89	452	389	351	351
   query90	1958	174	181	174
   query91	182	172	146	146
   query92	77	81	78	78
   query93	1549	1476	831	831
   query94	542	330	297	297
   query95	717	474	347	347
   query96	1075	767	361	361
   query97	2679	2670	2569	2569
   query98	232	226	227	226
   query99	1132	1084	998	998
   Total cold run time: 251895 ms
   Total hot run time: 168730 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471288351

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471288352

   /review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471332709

   
   <details>
   <summary>TPC-H: <b>Total hot run time: 31342 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
   Tpch sf100 test result on commit 1e5d7d35ae5f95302d9c310ad534a8d0cafd09d5, 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	17595	3915	4019	3915
   q2	q3	10759	1411	807	807
   q4	4680	472	343	343
   q5	7544	2344	2126	2126
   q6	241	196	147	147
   q7	950	798	642	642
   q8	9669	1672	1574	1574
   q9	5275	5011	5098	5011
   q10	6390	2077	1795	1795
   q11	480	274	249	249
   q12	643	434	295	295
   q13	18107	3412	2722	2722
   q14	270	254	238	238
   q15	q16	822	765	701	701
   q17	953	960	854	854
   q18	6955	5649	5555	5555
   q19	1299	1260	1030	1030
   q20	541	568	316	316
   q21	6016	2830	2694	2694
   q22	480	384	328	328
   Total cold run time: 99669 ms
   Total hot run time: 31342 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	4954	4621	4529	4529
   q2	q3	4863	5262	4579	4579
   q4	2117	2232	1398	1398
   q5	4737	4810	4690	4690
   q6	236	175	131	131
   q7	1915	1820	1518	1518
   q8	2353	2139	2183	2139
   q9	7873	7617	7318	7318
   q10	4489	4400	3983	3983
   q11	534	414	359	359
   q12	711	730	505	505
   q13	3030	3436	2827	2827
   q14	277	278	253	253
   q15	q16	675	694	622	622
   q17	1267	1237	1262	1237
   q18	7346	6938	6742	6742
   q19	1135	1097	1127	1097
   q20	2203	2218	1949	1949
   q21	5392	4690	4661	4661
   q22	522	460	416	416
   Total cold run time: 56629 ms
   Total hot run time: 50953 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471350382

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470383598

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471373313

   
   <details>
   <summary>TPC-DS: <b>Total hot run time: 169675 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
   TPC-DS sf100 test result on commit 1e5d7d35ae5f95302d9c310ad534a8d0cafd09d5, data reload: false
   
   query5	4320	667	531	531
   query6	340	227	203	203
   query7	4223	567	306	306
   query8	328	234	227	227
   query9	8845	4055	4018	4018
   query10	452	341	303	303
   query11	5754	2423	2211	2211
   query12	178	128	128	128
   query13	1266	607	428	428
   query14	6031	5395	5028	5028
   query14_1	4330	4380	4353	4353
   query15	213	200	182	182
   query16	1019	439	442	439
   query17	942	721	575	575
   query18	2448	485	358	358
   query19	211	203	161	161
   query20	134	142	126	126
   query21	216	137	120	120
   query22	13560	13639	13387	13387
   query23	17242	16446	15978	15978
   query23_1	16203	16173	16160	16160
   query24	7407	1733	1292	1292
   query24_1	1302	1320	1306	1306
   query25	566	484	434	434
   query26	1316	335	192	192
   query27	2684	573	337	337
   query28	4569	1953	1907	1907
   query29	993	630	526	526
   query30	309	243	207	207
   query31	1114	1067	943	943
   query32	105	79	79	79
   query33	548	363	335	335
   query34	1180	1148	648	648
   query35	768	773	670	670
   query36	1303	1349	1092	1092
   query37	151	107	92	92
   query38	3242	3138	3078	3078
   query39	936	916	901	901
   query39_1	897	877	879	877
   query40	229	165	135	135
   query41	83	74	63	63
   query42	111	112	109	109
   query43	331	329	303	303
   query44	
   query45	208	196	192	192
   query46	1048	1168	734	734
   query47	2330	2263	2125	2125
   query48	405	432	285	285
   query49	628	496	377	377
   query50	963	345	274	274
   query51	4396	4239	4231	4231
   query52	116	113	96	96
   query53	256	285	207	207
   query54	324	263	263	263
   query55	95	91	85	85
   query56	301	306	310	306
   query57	1389	1374	1281	1281
   query58	335	271	276	271
   query59	1556	1598	1442	1442
   query60	312	327	319	319
   query61	195	162	153	153
   query62	664	639	545	545
   query63	239	204	210	204
   query64	2445	854	652	652
   query65	
   query66	1745	463	357	357
   query67	30068	30008	29412	29412
   query68	
   query69	469	333	300	300
   query70	952	1013	1013	1013
   query71	311	267	271	267
   query72	3168	2765	2418	2418
   query73	852	737	423	423
   query74	5079	4897	4758	4758
   query75	2698	2607	2256	2256
   query76	2259	1164	794	794
   query77	418	421	326	326
   query78	12247	11912	11595	11595
   query79	1261	1043	739	739
   query80	596	550	461	461
   query81	456	279	245	245
   query82	242	161	120	120
   query83	274	281	248	248
   query84	288	134	115	115
   query85	890	527	441	441
   query86	368	346	357	346
   query87	3368	3386	3243	3243
   query88	3532	2680	2692	2680
   query89	430	388	337	337
   query90	2156	187	183	183
   query91	178	169	138	138
   query92	78	76	73	73
   query93	1568	1439	887	887
   query94	548	352	281	281
   query95	689	486	342	342
   query96	1028	797	341	341
   query97	2679	2727	2580	2580
   query98	236	227	223	223
   query99	1093	1104	990	990
   Total cold run time: 251776 ms
   Total hot run time: 169675 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470761620

   
   <details>
   <summary>TPC-DS: <b>Total hot run time: 169308 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
   TPC-DS sf100 test result on commit 85fcf569e2cba61ca79f53700ba241f8851c2bd3, data reload: false
   
   query5	4330	653	516	516
   query6	326	233	201	201
   query7	4239	617	316	316
   query8	330	236	225	225
   query9	8820	4007	4015	4007
   query10	444	330	286	286
   query11	5857	2424	2222	2222
   query12	189	127	130	127
   query13	1326	592	431	431
   query14	6182	5334	5019	5019
   query14_1	4304	4351	4309	4309
   query15	211	203	182	182
   query16	1010	464	441	441
   query17	1116	709	602	602
   query18	2704	496	348	348
   query19	215	200	166	166
   query20	143	130	127	127
   query21	218	141	114	114
   query22	13535	13517	13550	13517
   query23	17296	16446	16140	16140
   query23_1	16130	16321	16148	16148
   query24	7470	1774	1292	1292
   query24_1	1300	1303	1308	1303
   query25	579	509	440	440
   query26	1311	318	176	176
   query27	2678	580	341	341
   query28	4442	1961	1957	1957
   query29	1039	630	527	527
   query30	306	247	205	205
   query31	1132	1062	944	944
   query32	98	82	82	82
   query33	541	366	306	306
   query34	1197	1122	654	654
   query35	772	780	683	683
   query36	1346	1319	1173	1173
   query37	164	119	97	97
   query38	3249	3132	3059	3059
   query39	933	915	902	902
   query39_1	884	896	886	886
   query40	231	149	127	127
   query41	72	73	72	72
   query42	111	112	113	112
   query43	327	329	284	284
   query44	
   query45	224	204	197	197
   query46	1129	1234	740	740
   query47	2372	2291	2207	2207
   query48	397	445	297	297
   query49	647	504	416	416
   query50	1043	360	251	251
   query51	4347	4261	4238	4238
   query52	110	110	96	96
   query53	263	293	210	210
   query54	322	284	278	278
   query55	99	92	91	91
   query56	325	326	320	320
   query57	1416	1403	1313	1313
   query58	306	278	278	278
   query59	1574	1633	1479	1479
   query60	326	344	320	320
   query61	191	212	149	149
   query62	681	626	564	564
   query63	243	200	207	200
   query64	2346	792	636	636
   query65	
   query66	1664	481	359	359
   query67	30041	29861	29881	29861
   query68	
   query69	455	338	304	304
   query70	1055	1002	947	947
   query71	312	278	268	268
   query72	2994	2685	2448	2448
   query73	835	784	447	447
   query74	5075	4890	4754	4754
   query75	2700	2597	2236	2236
   query76	2318	1157	763	763
   query77	409	414	337	337
   query78	12172	12104	11573	11573
   query79	1437	1024	764	764
   query80	1302	543	448	448
   query81	528	276	245	245
   query82	1048	155	120	120
   query83	354	274	252	252
   query84	312	143	114	114
   query85	937	535	488	488
   query86	455	343	343	343
   query87	3502	3355	3178	3178
   query88	3574	2691	2647	2647
   query89	451	384	338	338
   query90	1953	184	180	180
   query91	182	167	137	137
   query92	78	80	80	80
   query93	1556	1496	830	830
   query94	727	362	319	319
   query95	688	482	347	347
   query96	1022	793	373	373
   query97	2734	2674	2553	2553
   query98	232	232	233	232
   query99	1127	1082	982	982
   Total cold run time: 254607 ms
   Total hot run time: 169308 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470763984

   /review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on code in PR #63322:
URL: https://github.com/apache/doris/pull/63322#discussion_r3254488698


##########
be/src/exec/common/variant_util.cpp:
##########
@@ -2247,6 +2285,7 @@ Status parse_and_materialize_variant_columns(Block& block, const TabletSchema& t
         }
         // if doc mode is not enabled, no need to parse to doc value column
         if (!column.variant_enable_doc_mode()) {
+            configure_decimal_number_preserve_paths(column, &configs[i]);
             configs[i].parse_to = ParseConfig::ParseTo::OnlySubcolumns;

Review Comment:
   This only configures raw-number preservation for non-doc-mode Variant columns. Doc-mode Variant columns can still have predefined typed paths (for example the existing `variant_p0/doc_mode/predefine` suites use `default_variant_enable_doc_mode = true` with `MATCH_NAME` paths), and that insert path sets `ParseTo::OnlyDocValueColumn` below. In that mode `parse_json_to_variant()` still serializes each field into the doc-value binary column from `getValueAsField()` without these decimal paths configured, so a high-precision `decimalv3` typed path is stored from the rounded `TYPE_DOUBLE` and later materialization/cast cannot recover the original token. Please configure the decimal preserve paths before the doc-mode split as well, and add a doc-mode predefined decimal regression case.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470516966

   
   <details>
   <summary>TPC-DS: <b>Total hot run time: 168854 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
   TPC-DS sf100 test result on commit 43b1a1432eb96745bdb80b377765e638551b4e56, data reload: false
   
   query5	4341	657	522	522
   query6	321	211	201	201
   query7	4207	549	301	301
   query8	332	247	220	220
   query9	8841	4007	3999	3999
   query10	451	352	292	292
   query11	5792	2419	2222	2222
   query12	188	128	124	124
   query13	1264	585	417	417
   query14	5939	5330	5015	5015
   query14_1	4328	4286	4331	4286
   query15	229	201	184	184
   query16	985	457	434	434
   query17	933	710	621	621
   query18	2451	494	375	375
   query19	223	225	174	174
   query20	139	137	128	128
   query21	220	143	119	119
   query22	13655	13480	13397	13397
   query23	17232	16455	15923	15923
   query23_1	16054	16198	16067	16067
   query24	7627	1831	1308	1308
   query24_1	1316	1287	1307	1287
   query25	557	501	439	439
   query26	1314	317	174	174
   query27	2680	578	335	335
   query28	4478	1969	1942	1942
   query29	1031	649	522	522
   query30	298	250	206	206
   query31	1111	1060	930	930
   query32	107	80	73	73
   query33	536	374	300	300
   query34	1154	1136	635	635
   query35	769	789	694	694
   query36	1333	1343	1104	1104
   query37	157	105	93	93
   query38	3230	3121	3032	3032
   query39	922	936	904	904
   query39_1	883	865	883	865
   query40	237	154	130	130
   query41	76	73	70	70
   query42	115	112	117	112
   query43	327	329	304	304
   query44	
   query45	214	195	190	190
   query46	1050	1209	728	728
   query47	2335	2337	2196	2196
   query48	403	445	303	303
   query49	637	492	388	388
   query50	1003	342	257	257
   query51	4392	4299	4289	4289
   query52	104	107	101	101
   query53	257	289	203	203
   query54	323	272	265	265
   query55	100	90	92	90
   query56	311	312	293	293
   query57	1414	1385	1289	1289
   query58	300	263	269	263
   query59	1528	1606	1435	1435
   query60	321	326	314	314
   query61	156	154	150	150
   query62	670	625	539	539
   query63	242	203	208	203
   query64	2415	820	654	654
   query65	
   query66	1767	469	358	358
   query67	29934	29866	29840	29840
   query68	
   query69	466	340	315	315
   query70	1034	1015	932	932
   query71	304	275	282	275
   query72	2976	2691	2373	2373
   query73	854	786	428	428
   query74	5079	4887	4738	4738
   query75	2670	2581	2259	2259
   query76	2302	1121	775	775
   query77	392	404	334	334
   query78	12170	11989	11617	11617
   query79	1481	1056	738	738
   query80	772	561	457	457
   query81	469	274	238	238
   query82	1362	156	119	119
   query83	350	274	254	254
   query84	306	142	110	110
   query85	928	534	451	451
   query86	420	336	329	329
   query87	3380	3397	3203	3203
   query88	3526	2662	2622	2622
   query89	447	389	337	337
   query90	1899	181	180	180
   query91	179	165	139	139
   query92	82	80	74	74
   query93	1488	1489	865	865
   query94	598	338	312	312
   query95	691	466	339	339
   query96	987	780	329	329
   query97	2700	2701	2561	2561
   query98	240	234	230	230
   query99	1126	1089	983	983
   Total cold run time: 252772 ms
   Total hot run time: 168854 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471763320

   # BE UT Coverage Report
   Increment line coverage `71.58% (330/461)` :tada:
   
   [Increment coverage report](http://coverage.selectdb-in.cc/coverage/45d9060c080f192ecb190462a4b01b6485daad2a_45d9060c080f192ecb190462a4b01b6485daad2a/increment_report/index.html)
   [Complete coverage report](http://coverage.selectdb-in.cc/coverage/45d9060c080f192ecb190462a4b01b6485daad2a_45d9060c080f192ecb190462a4b01b6485daad2a/report/index.html)
   | Category          | Coverage           |
   |-------------------|--------------------|
   | Function Coverage | 53.51% (20661/38609) |
   | Line Coverage     | 37.17% (195329/525461) |
   | Region Coverage   | 33.56% (152929/455729) |
   | Branch Coverage   | 34.60% (66729/192847) |


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4474628414

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4475936922

   /review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4475103411

   /review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4475505367

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "Copilot (via GitHub)" <gi...@apache.org>.
Copilot commented on code in PR #63322:
URL: https://github.com/apache/doris/pull/63322#discussion_r3254419851


##########
be/src/util/json/simd_json_parser.h:
##########
@@ -20,71 +20,82 @@
 
 #pragma once
 
-#include <rapidjson/document.h>
 #include <simdjson.h>
 
+#include <memory>
+#include <string>
+#include <string_view>
+#include <type_traits>
+#include <utility>
+#include <vector>
+

Review Comment:
   simd_json_parser.h uses assert() in Array::operator[] and Object::operator[] but the header does not include <cassert>, so compilation can fail depending on include order. Add #include <cassert> in this header to make it self-contained.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470266529

   /review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4475845011

   /review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470516561

   
   <details>
   <summary>TPC-DS: <b>Total hot run time: 170350 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
   TPC-DS sf100 test result on commit 9ccf680bcc7622c4472bb012526de8e07acd5055, data reload: false
   
   query5	4295	634	514	514
   query6	317	215	192	192
   query7	4215	539	328	328
   query8	320	226	217	217
   query9	8826	4049	4044	4044
   query10	450	336	311	311
   query11	5804	2355	2171	2171
   query12	179	125	127	125
   query13	1264	651	414	414
   query14	5918	5308	5013	5013
   query14_1	4345	4306	4303	4303
   query15	207	197	181	181
   query16	1030	486	463	463
   query17	1107	703	603	603
   query18	2727	479	344	344
   query19	215	200	156	156
   query20	138	139	128	128
   query21	214	137	118	118
   query22	13577	13590	13332	13332
   query23	17161	16496	16137	16137
   query23_1	16285	16302	16230	16230
   query24	7813	1766	1288	1288
   query24_1	1310	1285	1290	1285
   query25	561	488	414	414
   query26	1307	309	173	173
   query27	2706	554	347	347
   query28	4435	1938	1942	1938
   query29	969	626	508	508
   query30	305	242	195	195
   query31	1107	1073	934	934
   query32	87	76	72	72
   query33	541	373	297	297
   query34	1165	1157	661	661
   query35	769	787	686	686
   query36	1346	1361	1183	1183
   query37	145	111	92	92
   query38	3210	3126	3054	3054
   query39	935	943	906	906
   query39_1	887	875	876	875
   query40	230	144	125	125
   query41	66	65	61	61
   query42	109	111	107	107
   query43	325	325	286	286
   query44	
   query45	213	202	196	196
   query46	1069	1166	724	724
   query47	2385	2339	2216	2216
   query48	398	420	300	300
   query49	655	521	411	411
   query50	980	352	257	257
   query51	4345	4315	4234	4234
   query52	108	108	99	99
   query53	260	288	222	222
   query54	335	284	274	274
   query55	98	91	86	86
   query56	308	316	317	316
   query57	1435	1429	1321	1321
   query58	307	284	283	283
   query59	1566	1662	1455	1455
   query60	323	336	322	322
   query61	182	178	175	175
   query62	669	650	556	556
   query63	257	211	214	211
   query64	2424	843	670	670
   query65	
   query66	1693	501	373	373
   query67	29911	29904	29795	29795
   query68	
   query69	470	372	321	321
   query70	1064	994	1000	994
   query71	308	274	273	273
   query72	3225	2684	2406	2406
   query73	857	725	396	396
   query74	5053	4887	4718	4718
   query75	2671	2586	2226	2226
   query76	2284	1144	733	733
   query77	397	397	337	337
   query78	12050	12202	11578	11578
   query79	1472	985	746	746
   query80	1331	541	505	505
   query81	536	279	237	237
   query82	1091	160	123	123
   query83	344	272	248	248
   query84	260	136	109	109
   query85	932	542	449	449
   query86	447	373	302	302
   query87	3506	3349	3205	3205
   query88	3506	2653	2603	2603
   query89	448	390	338	338
   query90	1875	171	174	171
   query91	178	168	137	137
   query92	78	76	71	71
   query93	1577	1471	820	820
   query94	708	350	304	304
   query95	700	402	347	347
   query96	1077	790	353	353
   query97	2784	2747	2612	2612
   query98	238	239	227	227
   query99	1107	1144	1025	1025
   Total cold run time: 254353 ms
   Total hot run time: 170350 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470492567

   
   <details>
   <summary>TPC-H: <b>Total hot run time: 31288 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
   Tpch sf100 test result on commit 9ccf680bcc7622c4472bb012526de8e07acd5055, 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	17710	3972	3884	3884
   q2	q3	10805	1389	829	829
   q4	4686	479	344	344
   q5	7561	2298	2145	2145
   q6	362	178	139	139
   q7	971	774	652	652
   q8	9641	1721	1729	1721
   q9	6702	4974	4944	4944
   q10	6470	2150	1828	1828
   q11	454	273	247	247
   q12	700	420	295	295
   q13	18248	3545	2804	2804
   q14	264	255	237	237
   q15	q16	823	776	705	705
   q17	934	877	947	877
   q18	6949	5687	5721	5687
   q19	1250	1270	1064	1064
   q20	496	418	255	255
   q21	5749	2580	2326	2326
   q22	444	377	305	305
   Total cold run time: 101219 ms
   Total hot run time: 31288 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	4201	4114	4127	4114
   q2	q3	4514	4886	4366	4366
   q4	2138	2196	1421	1421
   q5	4426	4305	4617	4305
   q6	249	193	146	146
   q7	2061	1850	1599	1599
   q8	2493	2099	2144	2099
   q9	7794	7881	7766	7766
   q10	4558	4497	4326	4326
   q11	617	456	385	385
   q12	758	732	535	535
   q13	3258	3683	3044	3044
   q14	292	318	294	294
   q15	q16	720	768	658	658
   q17	1308	1322	1317	1317
   q18	7812	7413	6904	6904
   q19	1127	1086	1102	1086
   q20	2233	2233	1938	1938
   q21	5373	4660	4564	4564
   q22	529	474	406	406
   Total cold run time: 56461 ms
   Total hot run time: 51273 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470913351

   
   <details>
   <summary>TPC-H: <b>Total hot run time: 31478 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
   Tpch sf100 test result on commit c34c703b31a24812923fba9197fe4db35efe1ccb, 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	17710	4078	4033	4033
   q2	q3	10771	1374	799	799
   q4	4683	467	343	343
   q5	7667	2220	2093	2093
   q6	323	188	142	142
   q7	896	777	631	631
   q8	9424	1695	1678	1678
   q9	6930	4909	4918	4909
   q10	6522	2212	1842	1842
   q11	447	290	263	263
   q12	690	483	301	301
   q13	18202	3443	2739	2739
   q14	268	259	247	247
   q15	q16	820	764	714	714
   q17	976	935	912	912
   q18	6864	5733	5474	5474
   q19	1167	1472	1205	1205
   q20	542	429	290	290
   q21	6170	2812	2551	2551
   q22	455	395	312	312
   Total cold run time: 101527 ms
   Total hot run time: 31478 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	4942	4849	5060	4849
   q2	q3	4808	5226	4646	4646
   q4	2265	2249	1376	1376
   q5	4949	4815	4699	4699
   q6	235	182	134	134
   q7	1852	1729	1605	1605
   q8	2575	2074	2006	2006
   q9	7307	7317	7271	7271
   q10	4450	4392	3964	3964
   q11	560	419	382	382
   q12	703	716	504	504
   q13	3021	3446	2805	2805
   q14	283	270	251	251
   q15	q16	688	706	606	606
   q17	1266	1242	1244	1242
   q18	7617	6753	7028	6753
   q19	1117	1083	1121	1083
   q20	2224	2215	1938	1938
   q21	5430	4753	4577	4577
   q22	545	473	412	412
   Total cold run time: 56837 ms
   Total hot run time: 51103 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470881546

   /review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on code in PR #63322:
URL: https://github.com/apache/doris/pull/63322#discussion_r3256322828


##########
be/src/util/json/json_parser.h:
##########
@@ -53,16 +55,31 @@ Field getValueAsField(const Element& element) {
     if (element.isUInt64()) {
         return Field::create_field<TYPE_LARGEINT>(static_cast<int128_t>(element.getUInt64()));
     }
+    if (element.isInt128()) {
+        if (preserve_number_as_string) {
+            return Field::create_field<TYPE_STRING>(String(element.getRawNumber()));
+        }
+        return Field::create_field<TYPE_LARGEINT>(element.getInt128());
+    }
+    if (element.isBigInteger()) {
+        if (preserve_number_as_string) {
+            return Field::create_field<TYPE_STRING>(String(element.getRawNumber()));
+        }
+        return {};
+    }

Review Comment:
   When raw preservation is enabled for any decimal typed path in the Variant column, the whole document is parsed through the ondemand `Node` tree. For an unrelated path containing a JSON integer larger than UInt64, `isBigInteger()` reaches this branch with `preserve_number_as_string == false` and returns a null `Field`, so a value that used to be present in an untyped path is silently stored as NULL/missing just because another path in the schema needs decimal preservation. For example, with a decimal typed path `a`, loading `{"a": 1.23, "b": 340282366920938463463374607431768211456}` loses `b`. Please preserve non-decimal big integers as a string (or otherwise keep the previous behavior) instead of returning null, and add a regression where a decimal typed path coexists with an unrelated oversized integer path.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470179388

   
   Thank you for your contribution to Apache Doris.
   Don't know what should be done next? See [How to process your PR](https://cwiki.apache.org/confluence/display/DORIS/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?
       


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470550270

   
   <details>
   <summary>TPC-DS: <b>Total hot run time: 168668 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
   TPC-DS sf100 test result on commit 7885a6ce76862cca4cd5fd9cc18bd2d7185fb161, data reload: false
   
   query5	4310	656	525	525
   query6	333	224	209	209
   query7	4240	590	300	300
   query8	322	258	213	213
   query9	8805	3959	3978	3959
   query10	447	327	294	294
   query11	5769	2359	2214	2214
   query12	187	130	133	130
   query13	1266	631	431	431
   query14	5938	5333	5005	5005
   query14_1	4320	4306	4337	4306
   query15	219	202	177	177
   query16	992	444	413	413
   query17	1009	728	584	584
   query18	2448	482	351	351
   query19	207	201	174	174
   query20	133	135	125	125
   query21	209	137	118	118
   query22	13545	13656	13407	13407
   query23	17150	16323	15973	15973
   query23_1	16131	16195	16102	16102
   query24	7518	1781	1315	1315
   query24_1	1320	1260	1307	1260
   query25	541	472	415	415
   query26	1313	317	169	169
   query27	2746	540	339	339
   query28	4500	1946	1928	1928
   query29	994	613	507	507
   query30	313	247	197	197
   query31	1115	1057	954	954
   query32	85	74	70	70
   query33	533	346	280	280
   query34	1155	1123	627	627
   query35	773	783	676	676
   query36	1337	1311	1182	1182
   query37	162	105	92	92
   query38	3238	3122	3056	3056
   query39	929	923	909	909
   query39_1	886	884	880	880
   query40	236	151	131	131
   query41	74	70	70	70
   query42	112	115	114	114
   query43	326	327	288	288
   query44	
   query45	218	203	193	193
   query46	1075	1188	742	742
   query47	2371	2392	2145	2145
   query48	402	394	305	305
   query49	645	499	394	394
   query50	985	344	245	245
   query51	4327	4241	4176	4176
   query52	105	109	97	97
   query53	265	291	209	209
   query54	333	281	280	280
   query55	96	91	86	86
   query56	317	321	318	318
   query57	1397	1409	1313	1313
   query58	306	289	285	285
   query59	1545	1680	1416	1416
   query60	333	337	321	321
   query61	184	180	180	180
   query62	680	644	556	556
   query63	245	210	213	210
   query64	2491	872	705	705
   query65	
   query66	1724	505	372	372
   query67	30020	29840	29695	29695
   query68	
   query69	471	348	309	309
   query70	1033	1011	938	938
   query71	307	283	274	274
   query72	3114	2618	2415	2415
   query73	826	763	400	400
   query74	5067	4918	4717	4717
   query75	2658	2573	2266	2266
   query76	2287	1141	816	816
   query77	404	406	338	338
   query78	12120	12067	11718	11718
   query79	1467	1068	723	723
   query80	1312	540	467	467
   query81	527	283	238	238
   query82	980	196	126	126
   query83	343	274	247	247
   query84	310	136	113	113
   query85	919	530	461	461
   query86	464	343	332	332
   query87	3398	3402	3202	3202
   query88	3554	2668	2640	2640
   query89	447	386	340	340
   query90	1925	183	182	182
   query91	179	167	148	148
   query92	79	79	75	75
   query93	1567	1406	869	869
   query94	710	346	304	304
   query95	694	377	340	340
   query96	1012	753	327	327
   query97	2666	2725	2550	2550
   query98	249	226	245	226
   query99	1103	1102	980	980
   Total cold run time: 253475 ms
   Total hot run time: 168668 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471274644

   
   <details>
   <summary>TPC-H: <b>Total hot run time: 30935 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
   Tpch sf100 test result on commit 95ccafea2253112ebae2ad285d71df8be7689d9b, 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	17920	3941	3909	3909
   q2	q3	10782	1407	802	802
   q4	4687	471	356	356
   q5	7587	2266	2101	2101
   q6	232	174	138	138
   q7	936	788	632	632
   q8	9386	1753	1569	1569
   q9	5075	4879	4869	4869
   q10	6401	2134	1817	1817
   q11	431	270	240	240
   q12	624	440	302	302
   q13	18084	3369	2686	2686
   q14	260	254	235	235
   q15	q16	825	773	710	710
   q17	991	865	909	865
   q18	6860	5716	5726	5716
   q19	1361	1212	1097	1097
   q20	533	410	266	266
   q21	6103	2624	2324	2324
   q22	418	360	301	301
   Total cold run time: 99496 ms
   Total hot run time: 30935 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	4158	4115	4082	4082
   q2	q3	4467	4892	4283	4283
   q4	2117	2189	1385	1385
   q5	4372	4261	4273	4261
   q6	225	177	130	130
   q7	1733	2140	1821	1821
   q8	2590	2148	2122	2122
   q9	7911	8092	7663	7663
   q10	4548	4501	4042	4042
   q11	552	408	375	375
   q12	728	720	525	525
   q13	3298	3687	2951	2951
   q14	315	310	274	274
   q15	q16	718	733	636	636
   q17	1330	1296	1290	1290
   q18	8015	7320	7179	7179
   q19	1163	1131	1159	1131
   q20	2200	2215	1932	1932
   q21	5288	4573	4439	4439
   q22	516	464	415	415
   Total cold run time: 56244 ms
   Total hot run time: 50936 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471644158

   
   <details>
   <summary>TPC-DS: <b>Total hot run time: 169664 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
   TPC-DS sf100 test result on commit b2ec8138ab58c2542048d496e500a78733c50214, data reload: false
   
   query5	4313	653	512	512
   query6	335	218	193	193
   query7	4309	568	305	305
   query8	324	233	226	226
   query9	8814	3969	4001	3969
   query10	443	345	293	293
   query11	5785	2438	2223	2223
   query12	179	129	123	123
   query13	1271	636	446	446
   query14	5982	5352	5043	5043
   query14_1	4398	4297	4331	4297
   query15	213	207	181	181
   query16	987	433	426	426
   query17	938	707	585	585
   query18	2446	507	347	347
   query19	208	201	152	152
   query20	136	132	130	130
   query21	212	136	119	119
   query22	13723	13770	13339	13339
   query23	17210	16383	16012	16012
   query23_1	16176	16112	16232	16112
   query24	7414	1755	1308	1308
   query24_1	1292	1299	1311	1299
   query25	579	483	413	413
   query26	1313	311	170	170
   query27	2708	563	337	337
   query28	4525	1946	1939	1939
   query29	1000	615	494	494
   query30	305	239	199	199
   query31	1124	1060	939	939
   query32	86	73	69	69
   query33	543	349	296	296
   query34	1156	1115	638	638
   query35	775	786	678	678
   query36	1327	1308	1162	1162
   query37	150	103	91	91
   query38	3207	3132	3069	3069
   query39	933	926	888	888
   query39_1	898	886	867	867
   query40	224	146	123	123
   query41	66	62	66	62
   query42	112	110	111	110
   query43	319	326	286	286
   query44	
   query45	208	205	192	192
   query46	1090	1177	720	720
   query47	2333	2378	2235	2235
   query48	413	422	284	284
   query49	644	482	386	386
   query50	911	343	255	255
   query51	4317	4295	4276	4276
   query52	104	103	94	94
   query53	253	279	209	209
   query54	306	266	264	264
   query55	93	90	91	90
   query56	302	299	299	299
   query57	1455	1402	1324	1324
   query58	295	268	270	268
   query59	1584	1605	1440	1440
   query60	326	324	331	324
   query61	180	181	183	181
   query62	712	619	564	564
   query63	244	199	204	199
   query64	2441	799	671	671
   query65	
   query66	1711	483	354	354
   query67	30082	29352	29297	29297
   query68	
   query69	450	340	296	296
   query70	1064	955	979	955
   query71	310	270	259	259
   query72	3027	2703	2505	2505
   query73	847	760	439	439
   query74	5104	4967	4778	4778
   query75	2695	2621	2297	2297
   query76	2279	1175	791	791
   query77	394	419	341	341
   query78	12190	12097	11548	11548
   query79	1223	1013	748	748
   query80	616	589	495	495
   query81	457	278	246	246
   query82	239	166	123	123
   query83	281	282	254	254
   query84	292	143	113	113
   query85	948	629	532	532
   query86	359	365	324	324
   query87	3379	3363	3218	3218
   query88	3507	2685	2667	2667
   query89	413	393	339	339
   query90	2202	178	179	178
   query91	180	168	141	141
   query92	77	78	73	73
   query93	1439	1449	845	845
   query94	541	348	321	321
   query95	656	471	353	353
   query96	1069	809	329	329
   query97	2713	2688	2609	2609
   query98	241	236	230	230
   query99	1129	1087	943	943
   Total cold run time: 251826 ms
   Total hot run time: 169664 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4474525628

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on code in PR #63322:
URL: https://github.com/apache/doris/pull/63322#discussion_r3254523071


##########
be/src/exprs/function/cast/cast_to_decimal.h:
##########
@@ -703,10 +718,16 @@ class CastToImpl<Mode, DataTypeString, ToDataType> : public CastToBase {
         } else if constexpr (Mode == CastModeType::StrictMode) {
             // WON'T write nulls to nullable_col_to, just raise errors. null_map is only used to skip invalid rows
             RETURN_IF_ERROR(serde->from_string_strict_mode_batch(
-                    *col_from, nullable_col_to->get_nested_column(), {}, null_map));

Review Comment:
   This starts feeding a nullable source null map into `DataTypeDecimalSerDe::from_string_strict_mode_batch()`, but that serde advances `current_offset` only after parsing a row and simply `continue`s when `null_map[i]` is true. Null positions in `ColumnNullable` are allowed to carry arbitrary nested string payloads, so after a skipped null with non-empty payload the next non-null row is parsed from the wrong byte range. This can corrupt/fail typed Variant decimal materialization when a nullable string subcolumn is cast to decimal. Please either fix the decimal serde to advance offsets for skipped rows or avoid this strict batch path with nullable string payloads, and add a nullable/missing typed decimal case.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470808028

   /review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471179889

   
   <details>
   <summary>TPC-H: <b>Total hot run time: 31352 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
   Tpch sf100 test result on commit 149c7f4f34ee4e10b9562d7dfea1bc11ad5227ea, 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	17759	3966	3900	3900
   q2	q3	10766	1343	837	837
   q4	4679	465	345	345
   q5	7536	2240	2097	2097
   q6	267	178	141	141
   q7	936	797	614	614
   q8	9352	1727	1620	1620
   q9	6522	4905	4924	4905
   q10	6459	2117	1784	1784
   q11	438	270	246	246
   q12	696	429	301	301
   q13	18214	3303	2815	2815
   q14	266	257	235	235
   q15	q16	815	763	707	707
   q17	933	907	980	907
   q18	6937	5804	5725	5725
   q19	1200	1226	1111	1111
   q20	509	411	256	256
   q21	5656	2640	2497	2497
   q22	425	368	309	309
   Total cold run time: 100365 ms
   Total hot run time: 31352 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	4309	4285	4233	4233
   q2	q3	4487	4952	4278	4278
   q4	2098	2203	1380	1380
   q5	4425	4280	4307	4280
   q6	225	179	137	137
   q7	2316	1925	1657	1657
   q8	2481	2174	2086	2086
   q9	7957	7838	7717	7717
   q10	4511	4525	4094	4094
   q11	596	586	381	381
   q12	705	734	524	524
   q13	3436	3609	3060	3060
   q14	291	295	266	266
   q15	q16	752	737	668	668
   q17	1370	1334	1343	1334
   q18	8021	7486	6862	6862
   q19	1105	1078	1095	1078
   q20	2224	2217	1940	1940
   q21	5362	4696	4576	4576
   q22	541	485	423	423
   Total cold run time: 57212 ms
   Total hot run time: 50974 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4475057793

   # BE UT Coverage Report
   Increment line coverage `78.95% (285/361)` :tada:
   
   [Increment coverage report](http://coverage.selectdb-in.cc/coverage/67a3b9fc0f89c62477627b265b9cc140f1c12659_67a3b9fc0f89c62477627b265b9cc140f1c12659/increment_report/index.html)
   [Complete coverage report](http://coverage.selectdb-in.cc/coverage/67a3b9fc0f89c62477627b265b9cc140f1c12659_67a3b9fc0f89c62477627b265b9cc140f1c12659/report/index.html)
   | Category          | Coverage           |
   |-------------------|--------------------|
   | Function Coverage | 53.51% (20659/38606) |
   | Line Coverage     | 37.18% (195356/525397) |
   | Region Coverage   | 33.55% (152903/455767) |
   | Branch Coverage   | 34.60% (66720/192818) |


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4477109938

   
   <details>
   <summary>TPC-H: <b>Total hot run time: 31157 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
   Tpch sf100 test result on commit 1f40adb4feed235b8c3c5c6e215682a37a4efb68, 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	17640	3885	3854	3854
   q2	q3	10825	1329	777	777
   q4	4689	476	344	344
   q5	7582	2291	2064	2064
   q6	241	177	136	136
   q7	937	763	636	636
   q8	9346	1899	1551	1551
   q9	5077	4886	4985	4886
   q10	6375	2077	1812	1812
   q11	441	271	249	249
   q12	629	429	295	295
   q13	18073	3391	2773	2773
   q14	262	264	231	231
   q15	q16	813	787	706	706
   q17	989	893	1031	893
   q18	6918	5786	5449	5449
   q19	1318	1279	1126	1126
   q20	533	398	291	291
   q21	6554	2792	2765	2765
   q22	468	383	319	319
   Total cold run time: 99710 ms
   Total hot run time: 31157 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	4748	4562	4445	4445
   q2	q3	4879	5345	4607	4607
   q4	2114	2185	1429	1429
   q5	4732	4843	4631	4631
   q6	236	182	126	126
   q7	1856	1770	1579	1579
   q8	2405	2033	2008	2008
   q9	7789	7608	7134	7134
   q10	4469	4416	4032	4032
   q11	520	377	347	347
   q12	718	719	520	520
   q13	3022	3398	2794	2794
   q14	271	272	243	243
   q15	q16	683	694	609	609
   q17	1258	1228	1212	1212
   q18	7226	6776	6830	6776
   q19	1093	1109	1111	1109
   q20	2237	2194	1924	1924
   q21	5274	4603	4496	4496
   q22	542	477	422	422
   Total cold run time: 56072 ms
   Total hot run time: 50443 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470339162

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470339154

   /review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470383868

   /review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on code in PR #63322:
URL: https://github.com/apache/doris/pull/63322#discussion_r3254568675


##########
be/src/util/json/simd_json_parser.h:
##########
@@ -94,87 +106,234 @@ class SimdJSONParser {
             }
 
         private:
-            simdjson::dom::array::iterator it;
+            std::vector<Node>::const_iterator it;
         };
-        ALWAYS_INLINE Array(const simdjson::dom::array& array_) : array(array_) {} /// NOLINT
-        ALWAYS_INLINE Iterator begin() const { return array.begin(); }
-        ALWAYS_INLINE Iterator end() const { return array.end(); }
-        ALWAYS_INLINE size_t size() const { return array.size(); }
+        ALWAYS_INLINE explicit Array(const std::vector<Node>* array_) : array(array_) {} /// NOLINT
+        ALWAYS_INLINE Iterator begin() const { return Iterator(array->begin()); }
+        ALWAYS_INLINE Iterator end() const { return Iterator(array->end()); }
+        ALWAYS_INLINE size_t size() const { return array->size(); }
         ALWAYS_INLINE Element operator[](size_t index) const {
             assert(index < size());
-            return array.at(index).value_unsafe();
+            return Element(&(*array)[index]);
         }
 
     private:
-        simdjson::dom::array array;
+        const std::vector<Node>* array = nullptr;
     };
     using KeyValuePair = std::pair<std::string_view, Element>;
     /// References an object in a JSON document.
     class Object {
     public:
         class Iterator {
         public:
-            ALWAYS_INLINE Iterator(const simdjson::dom::object::iterator& it_)
-                    : it(it_) {} /// NOLINT
+            ALWAYS_INLINE explicit Iterator(const std::vector<std::string>* keys_,
+                                            const std::vector<Node>* values_, size_t index_)
+                    : keys(keys_), values(values_), index(index_) {} /// NOLINT
             ALWAYS_INLINE KeyValuePair operator*() const {
-                const auto& res = *it;
-                return {res.key, res.value};
+                return {(*keys)[index], Element(&(*values)[index])};
             }
             ALWAYS_INLINE Iterator& operator++() {
-                ++it;
+                ++index;
                 return *this;
             }
             ALWAYS_INLINE Iterator operator++(int) {
                 auto res = *this;
-                ++it;
+                ++index;
                 return res;
             } /// NOLINT
             ALWAYS_INLINE friend bool operator!=(const Iterator& left, const Iterator& right) {
-                return left.it != right.it;
+                return left.index != right.index;
             }
             ALWAYS_INLINE friend bool operator==(const Iterator& left, const Iterator& right) {
                 return !(left != right);
             }
 
         private:
-            simdjson::dom::object::iterator it;
+            const std::vector<std::string>* keys = nullptr;
+            const std::vector<Node>* values = nullptr;
+            size_t index = 0;
         };
-        ALWAYS_INLINE Object(const simdjson::dom::object& object_) : object(object_) {} /// NOLINT
-        ALWAYS_INLINE Iterator begin() const { return object.begin(); }
-        ALWAYS_INLINE Iterator end() const { return object.end(); }
-        ALWAYS_INLINE size_t size() const { return object.size(); }
+        ALWAYS_INLINE explicit Object(const std::vector<std::string>* keys_,
+                                      const std::vector<Node>* values_)
+                : keys(keys_), values(values_) {} /// NOLINT
+        ALWAYS_INLINE Iterator begin() const { return Iterator(keys, values, 0); }
+        ALWAYS_INLINE Iterator end() const { return Iterator(keys, values, size()); }
+        ALWAYS_INLINE size_t size() const { return values->size(); }
         /// Optional: Provides access to an object's element by index.
         KeyValuePair operator[](size_t index) const {
             assert(index < size());
-            auto it = object.begin();
-            while (index--) {
-                ++it;
-            }
-            const auto& res = *it;
-            return {res.key, res.value};
+            return {(*keys)[index], Element(&(*values)[index])};
         }
 
     private:
-        simdjson::dom::object object;
+        const std::vector<std::string>* keys = nullptr;
+        const std::vector<Node>* values = nullptr;
     };
     /// Parses a JSON document, returns the reference to its root element if succeeded.
     bool parse(const char* data, size_t size, Element& result) {
-        auto document = parser.parse(data, size);
-        if (document.error()) {
+        simdjson::padded_string padded_json(data, size);
+        simdjson::ondemand::document document;
+        auto error = parser.iterate(padded_json).get(document);
+        if (error) {
             return false;
         }
-        result = document.value_unsafe();
+        root = Node();
+        if (!build_node(document, &root)) {
+            return false;
+        }
+        result = Element(&root);
         return true;
     }
 
 private:
-    simdjson::dom::parser parser;
+    template <typename RawNumber>
+    static bool assign_raw_number(RawNumber&& raw_number, std::string* out) {
+        if constexpr (std::is_same_v<std::decay_t<RawNumber>, std::string_view>) {
+            *out = std::string(raw_number);
+            return true;
+        } else {
+            std::string_view raw_number_view;
+            auto error = std::move(raw_number).get(raw_number_view);
+            if (error) {
+                return false;
+            }
+            *out = std::string(raw_number_view);
+            return true;
+        }

Review Comment:
   This now eagerly materializes a second recursive JSON tree for every parse, copying every object key, string value, raw numeric token, and allocating vectors for every object/array before `JSONDataParser` traverses it. That happens even when `ParseConfig` has no decimal typed paths, so ordinary Variant ingestion pays a large CPU/memory cost and the allocations are in `std::string`/`std::vector` outside the existing column memory accounting. The raw-number preservation should stay on the hot path only when needed, or preserve raw numeric text without copying the whole document for untyped/non-decimal parses.



##########
be/src/util/json/simd_json_parser.h:
##########
@@ -94,87 +106,234 @@ class SimdJSONParser {
             }
 
         private:
-            simdjson::dom::array::iterator it;
+            std::vector<Node>::const_iterator it;
         };
-        ALWAYS_INLINE Array(const simdjson::dom::array& array_) : array(array_) {} /// NOLINT
-        ALWAYS_INLINE Iterator begin() const { return array.begin(); }
-        ALWAYS_INLINE Iterator end() const { return array.end(); }
-        ALWAYS_INLINE size_t size() const { return array.size(); }
+        ALWAYS_INLINE explicit Array(const std::vector<Node>* array_) : array(array_) {} /// NOLINT
+        ALWAYS_INLINE Iterator begin() const { return Iterator(array->begin()); }
+        ALWAYS_INLINE Iterator end() const { return Iterator(array->end()); }
+        ALWAYS_INLINE size_t size() const { return array->size(); }
         ALWAYS_INLINE Element operator[](size_t index) const {
             assert(index < size());
-            return array.at(index).value_unsafe();
+            return Element(&(*array)[index]);
         }
 
     private:
-        simdjson::dom::array array;
+        const std::vector<Node>* array = nullptr;
     };
     using KeyValuePair = std::pair<std::string_view, Element>;
     /// References an object in a JSON document.
     class Object {
     public:
         class Iterator {
         public:
-            ALWAYS_INLINE Iterator(const simdjson::dom::object::iterator& it_)
-                    : it(it_) {} /// NOLINT
+            ALWAYS_INLINE explicit Iterator(const std::vector<std::string>* keys_,
+                                            const std::vector<Node>* values_, size_t index_)
+                    : keys(keys_), values(values_), index(index_) {} /// NOLINT
             ALWAYS_INLINE KeyValuePair operator*() const {
-                const auto& res = *it;
-                return {res.key, res.value};
+                return {(*keys)[index], Element(&(*values)[index])};
             }
             ALWAYS_INLINE Iterator& operator++() {
-                ++it;
+                ++index;
                 return *this;
             }
             ALWAYS_INLINE Iterator operator++(int) {
                 auto res = *this;
-                ++it;
+                ++index;
                 return res;
             } /// NOLINT
             ALWAYS_INLINE friend bool operator!=(const Iterator& left, const Iterator& right) {
-                return left.it != right.it;
+                return left.index != right.index;
             }
             ALWAYS_INLINE friend bool operator==(const Iterator& left, const Iterator& right) {
                 return !(left != right);
             }
 
         private:
-            simdjson::dom::object::iterator it;
+            const std::vector<std::string>* keys = nullptr;
+            const std::vector<Node>* values = nullptr;
+            size_t index = 0;
         };
-        ALWAYS_INLINE Object(const simdjson::dom::object& object_) : object(object_) {} /// NOLINT
-        ALWAYS_INLINE Iterator begin() const { return object.begin(); }
-        ALWAYS_INLINE Iterator end() const { return object.end(); }
-        ALWAYS_INLINE size_t size() const { return object.size(); }
+        ALWAYS_INLINE explicit Object(const std::vector<std::string>* keys_,
+                                      const std::vector<Node>* values_)
+                : keys(keys_), values(values_) {} /// NOLINT
+        ALWAYS_INLINE Iterator begin() const { return Iterator(keys, values, 0); }
+        ALWAYS_INLINE Iterator end() const { return Iterator(keys, values, size()); }
+        ALWAYS_INLINE size_t size() const { return values->size(); }
         /// Optional: Provides access to an object's element by index.
         KeyValuePair operator[](size_t index) const {
             assert(index < size());
-            auto it = object.begin();
-            while (index--) {
-                ++it;
-            }
-            const auto& res = *it;
-            return {res.key, res.value};
+            return {(*keys)[index], Element(&(*values)[index])};
         }
 
     private:
-        simdjson::dom::object object;
+        const std::vector<std::string>* keys = nullptr;
+        const std::vector<Node>* values = nullptr;
     };
     /// Parses a JSON document, returns the reference to its root element if succeeded.
     bool parse(const char* data, size_t size, Element& result) {
-        auto document = parser.parse(data, size);
-        if (document.error()) {
+        simdjson::padded_string padded_json(data, size);
+        simdjson::ondemand::document document;
+        auto error = parser.iterate(padded_json).get(document);
+        if (error) {
             return false;
         }
-        result = document.value_unsafe();
+        root = Node();
+        if (!build_node(document, &root)) {
+            return false;
+        }
+        result = Element(&root);
         return true;
     }
 
 private:
-    simdjson::dom::parser parser;
+    template <typename RawNumber>
+    static bool assign_raw_number(RawNumber&& raw_number, std::string* out) {
+        if constexpr (std::is_same_v<std::decay_t<RawNumber>, std::string_view>) {
+            *out = std::string(raw_number);
+            return true;
+        } else {
+            std::string_view raw_number_view;
+            auto error = std::move(raw_number).get(raw_number_view);
+            if (error) {
+                return false;
+            }
+            *out = std::string(raw_number_view);
+            return true;
+        }
+    }
+
+    template <typename Value>
+    bool build_array_node(Value& value, Node* out) {
+        simdjson::ondemand::array array;
+        auto error = value.get_array().get(array);
+        if (error) {
+            return false;
+        }
+        out->type = Node::Type::ARRAY;
+        for (auto element_result : array) {
+            simdjson::ondemand::value element;
+            error = std::move(element_result).get(element);
+            if (error) {
+                return false;
+            }
+            Node element_node;
+            if (!build_node(element, &element_node)) {
+                return false;
+            }
+            out->array_values.push_back(std::move(element_node));
+        }
+        return true;
+    }
+
+    template <typename Value>
+    bool build_object_node(Value& value, Node* out) {
+        simdjson::ondemand::object object;
+        auto error = value.get_object().get(object);
+        if (error) {
+            return false;
+        }
+        out->type = Node::Type::OBJECT;
+        for (auto field_result : object) {
+            simdjson::ondemand::field field;
+            error = std::move(field_result).get(field);
+            if (error) {
+                return false;
+            }
+            std::string_view key;
+            error = field.unescaped_key().get(key);
+            if (error) {
+                return false;
+            }
+            simdjson::ondemand::value field_value = field.value();
+            Node field_node;
+            if (!build_node(field_value, &field_node)) {
+                return false;
+            }
+            out->object_keys.emplace_back(key);
+            out->object_values.push_back(std::move(field_node));
+        }
+        return true;
+    }
+
+    template <typename Value>
+    bool build_number_node(Value& value, Node* out) {
+        if (!assign_raw_number(value.raw_json_token(), &out->raw_number)) {
+            return false;
+        }
+        simdjson::ondemand::number_type number_type;
+        auto error = value.get_number_type().get(number_type);
+        if (error) {
+            return false;
+        }
+        switch (number_type) {
+        case simdjson::ondemand::number_type::signed_integer:
+            out->type = Node::Type::INT64;
+            error = value.get_int64().get(out->int64_value);
+            return !error;
+        case simdjson::ondemand::number_type::unsigned_integer:
+            out->type = Node::Type::UINT64;

Review Comment:
   `key` comes from `field.unescaped_key()`, whose returned view can point at simdjson's string buffer for escaped keys. This code does not copy it until after `build_node(field_value, ...)`, and building the value can parse another escaped string/key and reuse that buffer. For input such as `{"a\\nb": {"x": "escaped\\tvalue"}}`, the key view can be overwritten before `emplace_back(key)`, so the Variant path stored for the object field is corrupted or mismatched. Please copy `key` into `object_keys` before descending into the value, then append the value node, and add an escaped-key case.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470508386

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470943300

   
   <details>
   <summary>TPC-DS: <b>Total hot run time: 169036 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
   TPC-DS sf100 test result on commit c34c703b31a24812923fba9197fe4db35efe1ccb, data reload: false
   
   query5	4346	656	514	514
   query6	339	222	193	193
   query7	4240	567	320	320
   query8	333	236	216	216
   query9	8844	4090	4086	4086
   query10	466	351	303	303
   query11	5783	2354	2168	2168
   query12	181	130	126	126
   query13	1322	622	454	454
   query14	6049	5391	5094	5094
   query14_1	4440	4525	4363	4363
   query15	219	206	182	182
   query16	1016	452	497	452
   query17	1164	729	605	605
   query18	2497	499	375	375
   query19	225	212	163	163
   query20	138	136	131	131
   query21	216	144	134	134
   query22	13641	13608	13345	13345
   query23	17342	16331	16028	16028
   query23_1	16176	16101	16130	16101
   query24	7352	1749	1280	1280
   query24_1	1310	1307	1308	1307
   query25	583	513	454	454
   query26	1310	312	180	180
   query27	2726	570	338	338
   query28	4453	1964	1950	1950
   query29	1019	649	511	511
   query30	313	244	201	201
   query31	1120	1071	954	954
   query32	90	83	76	76
   query33	573	361	297	297
   query34	1154	1134	636	636
   query35	767	785	674	674
   query36	1326	1373	1118	1118
   query37	165	114	90	90
   query38	3216	3181	3021	3021
   query39	929	929	903	903
   query39_1	891	862	877	862
   query40	235	146	123	123
   query41	66	66	62	62
   query42	109	108	107	107
   query43	325	327	283	283
   query44	
   query45	211	198	193	193
   query46	1063	1150	737	737
   query47	2264	2244	2195	2195
   query48	399	397	297	297
   query49	625	502	395	395
   query50	972	350	255	255
   query51	4410	4258	4228	4228
   query52	105	105	98	98
   query53	250	286	209	209
   query54	317	285	254	254
   query55	92	91	83	83
   query56	295	321	303	303
   query57	1394	1380	1315	1315
   query58	293	266	264	264
   query59	1554	1598	1447	1447
   query60	318	329	315	315
   query61	159	158	151	151
   query62	684	633	569	569
   query63	239	199	211	199
   query64	2406	817	639	639
   query65	
   query66	1739	471	369	369
   query67	29910	29970	29801	29801
   query68	
   query69	465	338	308	308
   query70	970	981	1000	981
   query71	307	281	269	269
   query72	3092	2745	2387	2387
   query73	805	788	414	414
   query74	5072	4900	4738	4738
   query75	2681	2588	2252	2252
   query76	2308	1128	776	776
   query77	397	408	332	332
   query78	12125	12214	11606	11606
   query79	1414	1061	722	722
   query80	653	536	452	452
   query81	454	277	243	243
   query82	1378	154	127	127
   query83	323	271	256	256
   query84	266	141	110	110
   query85	861	532	456	456
   query86	404	348	311	311
   query87	3400	3441	3221	3221
   query88	3495	2671	2594	2594
   query89	451	382	340	340
   query90	1958	181	185	181
   query91	175	168	139	139
   query92	82	73	73	73
   query93	1601	1418	879	879
   query94	544	345	311	311
   query95	690	396	343	343
   query96	1045	804	312	312
   query97	2671	2657	2529	2529
   query98	245	225	234	225
   query99	1116	1090	970	970
   Total cold run time: 253132 ms
   Total hot run time: 169036 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471003543

   
   <details>
   <summary>TPC-DS: <b>Total hot run time: 169412 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
   TPC-DS sf100 test result on commit 47d2d8e39a7486d4aec3c55d15f426a812f9df4c, data reload: false
   
   query5	4326	648	514	514
   query6	351	220	199	199
   query7	4215	555	301	301
   query8	337	236	222	222
   query9	8836	3994	4006	3994
   query10	455	343	300	300
   query11	5791	2413	2196	2196
   query12	188	132	157	132
   query13	1273	612	414	414
   query14	6047	5343	5033	5033
   query14_1	4331	4332	4295	4295
   query15	211	204	186	186
   query16	992	449	416	416
   query17	1136	716	594	594
   query18	2450	486	348	348
   query19	211	196	161	161
   query20	138	135	131	131
   query21	217	142	125	125
   query22	13743	13596	13382	13382
   query23	17262	16415	16018	16018
   query23_1	16457	16432	16235	16235
   query24	7524	1749	1300	1300
   query24_1	1319	1307	1327	1307
   query25	605	521	446	446
   query26	1322	315	177	177
   query27	2700	580	352	352
   query28	4456	1984	1966	1966
   query29	1267	632	516	516
   query30	313	241	203	203
   query31	1146	1072	945	945
   query32	87	79	80	79
   query33	560	372	303	303
   query34	1194	1121	641	641
   query35	767	794	682	682
   query36	1341	1327	1155	1155
   query37	157	111	96	96
   query38	3209	3150	3031	3031
   query39	930	938	913	913
   query39_1	909	899	894	894
   query40	232	153	127	127
   query41	71	70	68	68
   query42	115	114	110	110
   query43	328	321	290	290
   query44	
   query45	217	205	206	205
   query46	1079	1240	752	752
   query47	2303	2314	2142	2142
   query48	418	419	310	310
   query49	655	512	401	401
   query50	1051	355	256	256
   query51	4314	4319	4228	4228
   query52	110	113	97	97
   query53	260	287	213	213
   query54	340	287	286	286
   query55	99	95	88	88
   query56	332	328	325	325
   query57	1414	1397	1300	1300
   query58	318	286	266	266
   query59	1584	1630	1419	1419
   query60	338	372	327	327
   query61	149	157	153	153
   query62	664	618	563	563
   query63	243	206	210	206
   query64	2467	791	648	648
   query65	
   query66	1728	467	354	354
   query67	30001	29896	29844	29844
   query68	
   query69	451	349	308	308
   query70	1003	1004	971	971
   query71	315	283	270	270
   query72	3003	2686	2406	2406
   query73	860	783	431	431
   query74	5065	4931	4708	4708
   query75	2680	2607	2248	2248
   query76	2279	1126	795	795
   query77	407	426	352	352
   query78	12224	12102	11681	11681
   query79	1470	1039	726	726
   query80	1324	574	456	456
   query81	499	285	236	236
   query82	1269	159	126	126
   query83	346	272	259	259
   query84	268	144	110	110
   query85	926	542	445	445
   query86	435	346	319	319
   query87	3454	3332	3161	3161
   query88	3542	2692	2646	2646
   query89	459	386	331	331
   query90	1803	181	181	181
   query91	178	172	139	139
   query92	78	75	73	73
   query93	1490	1411	851	851
   query94	681	352	302	302
   query95	662	371	439	371
   query96	1047	753	344	344
   query97	2675	2670	2550	2550
   query98	237	227	242	227
   query99	1128	1123	968	968
   Total cold run time: 255001 ms
   Total hot run time: 169412 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471037422

   /review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471159735

   /review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471340150

   # BE UT Coverage Report
   Increment line coverage `72.04% (304/422)` :tada:
   
   [Increment coverage report](http://coverage.selectdb-in.cc/coverage/6d77c2e151db0215a94add25f0ed9e0300fa3649_6d77c2e151db0215a94add25f0ed9e0300fa3649/increment_report/index.html)
   [Complete coverage report](http://coverage.selectdb-in.cc/coverage/6d77c2e151db0215a94add25f0ed9e0300fa3649_6d77c2e151db0215a94add25f0ed9e0300fa3649/report/index.html)
   | Category          | Coverage           |
   |-------------------|--------------------|
   | Function Coverage | 53.51% (20659/38607) |
   | Line Coverage     | 37.17% (195304/525439) |
   | Region Coverage   | 33.55% (152875/455703) |
   | Branch Coverage   | 34.60% (66711/192829) |


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4471566814

   
   <details>
   <summary>TPC-DS: <b>Total hot run time: 169135 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
   TPC-DS sf100 test result on commit 45d9060c080f192ecb190462a4b01b6485daad2a, data reload: false
   
   query5	4345	633	524	524
   query6	344	215	204	204
   query7	4308	568	299	299
   query8	325	230	220	220
   query9	8828	4060	4025	4025
   query10	478	351	311	311
   query11	5832	2375	2237	2237
   query12	187	132	129	129
   query13	1320	625	419	419
   query14	5986	5345	5039	5039
   query14_1	4378	4355	4361	4355
   query15	215	203	180	180
   query16	995	439	456	439
   query17	1164	751	598	598
   query18	2727	483	356	356
   query19	232	218	167	167
   query20	152	136	131	131
   query21	221	142	118	118
   query22	13605	13473	13341	13341
   query23	17244	16193	15908	15908
   query23_1	16300	16343	16467	16343
   query24	7897	1790	1338	1338
   query24_1	1327	1357	1333	1333
   query25	609	513	471	471
   query26	1315	345	179	179
   query27	2673	552	344	344
   query28	4437	1990	1926	1926
   query29	1028	644	516	516
   query30	309	247	202	202
   query31	1117	1068	940	940
   query32	89	77	81	77
   query33	536	356	294	294
   query34	1166	1136	650	650
   query35	761	785	711	711
   query36	1317	1341	1248	1248
   query37	154	105	91	91
   query38	3186	3161	3061	3061
   query39	921	909	902	902
   query39_1	871	872	865	865
   query40	231	148	124	124
   query41	65	63	61	61
   query42	112	108	105	105
   query43	321	318	286	286
   query44	
   query45	206	201	191	191
   query46	1045	1209	718	718
   query47	2321	2315	2180	2180
   query48	401	405	274	274
   query49	653	488	378	378
   query50	940	357	257	257
   query51	4296	4249	4194	4194
   query52	105	105	92	92
   query53	248	286	207	207
   query54	307	264	247	247
   query55	93	88	87	87
   query56	318	312	322	312
   query57	1403	1376	1293	1293
   query58	291	270	255	255
   query59	1554	1604	1406	1406
   query60	313	322	300	300
   query61	160	159	153	153
   query62	658	631	556	556
   query63	251	205	215	205
   query64	2390	803	621	621
   query65	
   query66	1673	473	344	344
   query67	29963	29917	29797	29797
   query68	
   query69	467	374	303	303
   query70	983	998	958	958
   query71	305	272	269	269
   query72	3181	2637	2438	2438
   query73	848	747	454	454
   query74	5038	4890	4748	4748
   query75	2668	2585	2250	2250
   query76	2278	1131	757	757
   query77	410	408	333	333
   query78	12132	12020	11601	11601
   query79	1486	1015	697	697
   query80	1340	553	460	460
   query81	524	286	238	238
   query82	1026	153	119	119
   query83	355	269	249	249
   query84	263	142	114	114
   query85	916	534	460	460
   query86	450	334	313	313
   query87	3469	3387	3199	3199
   query88	3488	2677	2656	2656
   query89	450	387	334	334
   query90	1920	170	175	170
   query91	178	177	145	145
   query92	78	79	73	73
   query93	1558	1397	848	848
   query94	735	327	305	305
   query95	695	390	446	390
   query96	984	776	323	323
   query97	2676	2667	2553	2553
   query98	236	230	223	223
   query99	1121	1080	981	981
   Total cold run time: 254662 ms
   Total hot run time: 169135 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4470266101

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant decimal precision [doris]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on code in PR #63322:
URL: https://github.com/apache/doris/pull/63322#discussion_r3254422945


##########
be/src/util/json/json_parser.h:
##########
@@ -54,15 +93,19 @@ Field getValueAsField(const Element& element) {
         return Field::create_field<TYPE_LARGEINT>(static_cast<int128_t>(element.getUInt64()));
     }
     if (element.isDouble()) {
+        if (auto raw_number = element.getRawNumber();
+            should_preserve_json_number_as_string(raw_number)) {
+            return Field::create_field<TYPE_STRING>(String(raw_number));
+        }

Review Comment:
   This changes the parsed Field type for any JSON number that happens to have more than 15 significant digits or at least 10 fractional digits, even when the Variant path is not declared as a typed decimal path. For example, inserting `{"a": 1.2345678901}` into a normal `variant` column now stores/exposes `a` as `TYPE_STRING` instead of `TYPE_DOUBLE`, so `variant_type(v['a'])`, serialization, comparison behavior, and later least-common-type merging can change for existing untyped Variant data. The precision fix should preserve the raw token separately and only use it when casting to a decimal typed path, or otherwise keep the JSON number's Variant type numeric for untyped paths.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4474149471

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4474628800

   /review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on code in PR #63322:
URL: https://github.com/apache/doris/pull/63322#discussion_r3256580937


##########
be/src/util/json/json_parser.cpp:
##########
@@ -84,8 +89,29 @@ void JSONDataParser<ParserImpl>::traverse(const Element& element, ParseContext&
         // we should set has_nested_in_flatten to false when traverse array finished for next array otherwise it will be true for next array
         ctx.has_nested_in_flatten = false;
     } else {
-        appendValueIfNotDuplicate(ctx, ctx.builder.get_parts(), getValueAsField(element));
+        appendValueIfNotDuplicate(ctx, ctx.builder.get_parts(),
+                                  getValueAsField(element, shouldPreserveNumberAsString(ctx)));
+    }

Review Comment:
   这个线程描述的是 nested array/object 的 JSONB serialization path。CIR-20240 这次按最小修复范围只处理 Variant predefined decimal materialization 和 JSON reader 测试覆盖,不扩展到 JSONB;用户也明确要求 JSONB 先不处理,后续需要单独设计 schema-aware/JSONB 路径。



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "eldenmoon (via GitHub)" <gi...@apache.org>.
eldenmoon commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4474705089

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4476853399

   
   <details>
   <summary>TPC-H: <b>Total hot run time: 31211 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
   Tpch sf100 test result on commit 38f5b5def0cb7c4f587fcaad2726d59ac1f7ce4b, 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	17677	3828	3809	3809
   q2	q3	10757	1390	808	808
   q4	4680	479	352	352
   q5	7589	2266	2149	2149
   q6	248	180	140	140
   q7	937	780	642	642
   q8	9373	1785	1596	1596
   q9	5138	4932	4909	4909
   q10	6402	2096	1794	1794
   q11	440	277	242	242
   q12	633	429	288	288
   q13	18138	3365	2833	2833
   q14	268	253	235	235
   q15	q16	822	777	708	708
   q17	883	865	904	865
   q18	7046	5913	5508	5508
   q19	1176	1163	1074	1074
   q20	510	405	264	264
   q21	6290	2822	2669	2669
   q22	467	393	326	326
   Total cold run time: 99474 ms
   Total hot run time: 31211 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	4805	4577	4576	4576
   q2	q3	4956	5317	4565	4565
   q4	2138	2240	1417	1417
   q5	4708	4890	4613	4613
   q6	226	181	131	131
   q7	1809	1764	1584	1584
   q8	2403	2071	2059	2059
   q9	7689	7455	7081	7081
   q10	4486	4385	3931	3931
   q11	523	379	347	347
   q12	714	729	515	515
   q13	2979	3408	2783	2783
   q14	275	273	249	249
   q15	q16	678	691	596	596
   q17	1262	1239	1235	1235
   q18	7227	6608	6766	6608
   q19	1148	1073	1128	1073
   q20	2211	2205	1934	1934
   q21	5298	4637	4488	4488
   q22	546	476	408	408
   Total cold run time: 56081 ms
   Total hot run time: 50193 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [fix](be) Preserve Variant predefined decimal precision [doris]

Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #63322:
URL: https://github.com/apache/doris/pull/63322#issuecomment-4476938786

   
   <details>
   <summary>TPC-DS: <b>Total hot run time: 169559 ms</b></summary>
   
   ```
   machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
   scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
   TPC-DS sf100 test result on commit 38f5b5def0cb7c4f587fcaad2726d59ac1f7ce4b, data reload: false
   
   query5	4323	640	511	511
   query6	329	228	209	209
   query7	4276	591	303	303
   query8	321	234	223	223
   query9	8838	3968	4002	3968
   query10	442	336	295	295
   query11	5867	2363	2213	2213
   query12	181	128	121	121
   query13	1284	613	439	439
   query14	6050	5316	5009	5009
   query14_1	4275	4307	4284	4284
   query15	217	206	178	178
   query16	990	449	451	449
   query17	1112	723	594	594
   query18	2456	491	348	348
   query19	213	192	165	165
   query20	140	130	127	127
   query21	216	144	118	118
   query22	13506	13532	13296	13296
   query23	17357	16406	16032	16032
   query23_1	16134	16086	16169	16086
   query24	7482	1793	1287	1287
   query24_1	1328	1285	1332	1285
   query25	600	499	448	448
   query26	1356	312	173	173
   query27	2735	577	347	347
   query28	4469	1936	1967	1936
   query29	1014	655	553	553
   query30	307	236	204	204
   query31	1149	1054	951	951
   query32	86	77	73	73
   query33	550	364	306	306
   query34	1178	1155	645	645
   query35	789	796	678	678
   query36	1353	1317	1224	1224
   query37	158	110	97	97
   query38	3217	3183	3065	3065
   query39	935	942	909	909
   query39_1	914	877	890	877
   query40	232	155	128	128
   query41	73	71	69	69
   query42	114	113	118	113
   query43	322	327	288	288
   query44	
   query45	212	204	201	201
   query46	1072	1193	725	725
   query47	2347	2323	2247	2247
   query48	432	421	314	314
   query49	655	503	406	406
   query50	1029	365	250	250
   query51	4359	4347	4306	4306
   query52	107	105	95	95
   query53	254	278	206	206
   query54	339	285	275	275
   query55	94	92	90	90
   query56	319	329	320	320
   query57	1417	1418	1339	1339
   query58	309	284	278	278
   query59	1557	1637	1412	1412
   query60	345	332	328	328
   query61	210	149	150	149
   query62	667	628	567	567
   query63	240	195	202	195
   query64	2452	815	642	642
   query65	
   query66	1732	476	364	364
   query67	30011	29945	29751	29751
   query68	
   query69	470	343	305	305
   query70	1027	980	993	980
   query71	299	272	265	265
   query72	3245	2711	2382	2382
   query73	810	741	435	435
   query74	5081	4905	4736	4736
   query75	2677	2600	2252	2252
   query76	2279	1151	767	767
   query77	409	408	337	337
   query78	12190	12164	11587	11587
   query79	1477	1032	727	727
   query80	647	536	451	451
   query81	460	273	242	242
   query82	1356	162	124	124
   query83	358	277	249	249
   query84	266	147	115	115
   query85	889	549	464	464
   query86	390	327	312	312
   query87	3492	3361	3204	3204
   query88	3523	2653	2641	2641
   query89	454	385	340	340
   query90	1964	182	174	174
   query91	179	164	147	147
   query92	79	80	76	76
   query93	1412	1436	844	844
   query94	553	326	304	304
   query95	664	408	436	408
   query96	1089	824	372	372
   query97	2696	2697	2582	2582
   query98	236	230	225	225
   query99	1099	1114	1019	1019
   Total cold run time: 253819 ms
   Total hot run time: 169559 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org