Commit Graph

8276 Commits

Author SHA1 Message Date
3ff409551c [enhencement](netty) bind netty's default logger when launching fe (#14675)
The logger Doris Fe uses is log4j, while netty might use slf4j to choose one logger.
And it's reported some confusing occasions would happen under such circumstance.
And this binding doesn't take effect if move the bind logic to other file or other place within PaloFe.java,
so I have to leave it before the main function.
2022-11-30 11:54:39 +08:00
486a77fec0 [fix](tcmalloc) use low_watermark instead of hard_mem_limit (#14660)
* [fix](tcmalloc) use low_watermark instead of hard_mem_limit

hard_mem_limit is removed.

* format
2022-11-30 11:29:57 +08:00
9272680d00 [feature](multi-catalog) support Jdbc catalog (#14527)
Issue Number: close #xxx

I add jdbc catalog for doris multi-catalog feature.
Currently, the jdbc catalog only supports MYSQL DBMS.

TODO:

support for postgre DB
Support for other databases.
Problem summary
For jdbc catalog, we can create catalog like:

CREATE CATALOG jdbc4 PROPERTIES (
    "type"="jdbc",
    "jdbc.user"="root",
    "jdbc.password"="123456",
    "jdbc.jdbc_url" = "jdbc:mysql://127.0.0.1:13396/demo?yearIsDateType=false",
    "jdbc.driver_url" = "file:/mnt/disk2/ftw/tools/jar/mysql-connector-java-5.1.47/mysql-connector-java-5.1.47.jar",
    "jdbc.driver_class" = "com.mysql.jdbc.Driver"
);
Note:
yearIsDateType is a param of jdbc:
If yearIsDateType configuration property is set to false, then the returned object type is java.sql.Short. If set to true (the default), then the returned object is of type java.sql.Date with the date set to January 1st, at midnight.
To compat with mysql, we force the use of yearIsDateType=false in FE. if user sets yearIsDateType=true, doris FE will force to change yearIsDateType=false.
2022-11-30 11:28:08 +08:00
82f3980774 [feature](Nereids) estimation without column statistics (#14526)
estimate plan cost without column statistics.
change list:
1. remove original StatsCalculator, it is replaced by StatsCalculatorV2. rename StatsCalculatorV2 to StatsCalculator
2. remove FilterSelectivityCalculator, it is replaced by FilterEstimation
3. remove session var:ENABLE_NEREIDS_STATS_DERIVE_V2
4. add ColumnStatistics.isUnKnown, which means the column is not analyzed, and its stats is not accurate.
5. add estimatedRowCount() function for OLAP tables
6. add unit tests for FilterEstimation and StatsCalculator
2022-11-30 11:27:51 +08:00
3a362fab76 [fix](fe)table function node use wrong info for projection (#14667) 2022-11-30 10:41:32 +08:00
Pxl
7a1fde379c [Enhancement](function) optimize for decimal arithmetic calculation (#14674)
* optimize for decimal arithmetic calculation

* Apply suggestions from code review

Co-authored-by: Gabriel <gabrielleebuaa@gmail.com>

Co-authored-by: Gabriel <gabrielleebuaa@gmail.com>
2022-11-30 10:41:03 +08:00
ca90253b09 [config](storage-policy) add a FE config to disable storage policy by default (#14655)
the cold-hot separation feature is still
under development. And seems there are some unsolved feature remains.
So I add a fe config enable_storage_policy, and default is false, to disable the creation and usage of storage policy by default.

So that user can aware that he is using an experimental feature on his own, and it will not be released formally in v1.2.0.

Disable storage policy by default, user can not use or create storage policy. Configured by enable_storage_policy.

Remove property remote_storage_policy, it is duplicate with storage_policy

Change the persist field in DataProperty.java.
And remove remoteCooldownTime from DataProperty, because it can be got from StoragePolicy.
2022-11-30 10:04:33 +08:00
dd7ec8f4ca [improvement](test) add tpch1 orc for hive catalog and refactor some test dir (#14669)
Add tpch 1g orc test case in hive docker

Refactor some suites dir of catalog test cases.

And "-internal" for dlf endpoint, to support access oss with aliyun vpc.
2022-11-30 10:03:58 +08:00
4faca56819 [bug](jsonb) fix INSERT/CAST NULL to JSONB (#14682)
Add NULL -> JSONB in implicitCastMap to support INSERT/CAST NULL to JSONB.
2022-11-30 09:53:16 +08:00
d5ee721621 [improvement](planner)Adjust the field naming rules when creating tables (#14671)
Adjust the field naming rules when creating tables.

The original table field rules are letters or underscores or @ characters as the first letter,
followed by a maximum of 63 characters, and the total cannot exceed 64 characters.
However, in many industries, such as the financial industry, the length of the derived fields often exceeds 64 
characters, so adjust the regular The rules are from 64 characters to 128 characters.
Many users load data from Hive to Doris through appearance or BrokerLoad.
Arabic numerals can be used as the first letter in the Hive table, so the regular rules are adjusted
to support Arabic numerals as the first letter.
2022-11-30 09:45:27 +08:00
b12ac90d8f [tools](tpch) upgrade decimal type to decimalv3 (#14665) 2022-11-30 08:41:06 +08:00
5a2e3869df [regression](test) enable fe and be fuzzy test (#14673) 2022-11-30 08:40:32 +08:00
33cda9f22a [improvement](planner)support like in show catalogs stmt #14678
Co-authored-by: yuleiyang <yuleiyang@tencent.com>
2022-11-30 08:38:42 +08:00
33ad616839 [fix](statistics) Fix potential NPE in ShowStatisticsStmt #14679
When required cache hasn't been loaded yet, cache would always return ColumnStatistics.DEFAULT which not define the max/min literal expr, add judge for that.
2022-11-30 08:38:20 +08:00
898d0d42f1 [improvement](load)add more log for better bug tracing experience for be write (#14424)
Recently when tracing one bug happened in version 1.1.4
I found out there were some places we can add more log for a better tracing.
2022-11-29 22:28:39 +08:00
82579126cf [fix](Dictionary-codec) heap overflow with in-predicate on nullable columns (#14319) (#14641)
Losing segmentid info will mess up the _segment_id_to_value_in_dict_flags map
in InListPredicate, causing two distinct segments to collide and crash the BE
at last.

Signed-off-by: freemandealer <freeman.zhang1992@gmail.com>

Signed-off-by: freemandealer <freeman.zhang1992@gmail.com>
2022-11-29 21:22:18 +08:00
22883e7e08 [fuzzy](test) be fuzzy conf (#14654) 2022-11-29 19:38:40 +08:00
03aa5572da [feature](docker)Add Broker Docker image related files (#14621)
Add Broker Docker image related files
2022-11-29 18:34:10 +08:00
85ce3c37b5 [fix](DOE) fix ES query dsl is wrong after FE restarted. (#14652)
Some of default properties of ES catalog is not persisted in EditLog. So when FE is restarted,
the default properties is lost, such as `elasticsearch.doc_value_scan`, `elasticsearch.keyword_sniff` and so on.
2022-11-29 17:06:48 +08:00
a60490651f [improvement](function) add timezone cache for convert_tz (#14616) 2022-11-29 17:00:54 +08:00
1713af6cd6 [test](java udf)add new java udf case (#14653) 2022-11-29 16:43:53 +08:00
fe95b84c34 [fix](jsonb)fix CAST String to JSONB nullable problem (#14626)
fix CAST String to SONB nullable problem in DEBUG mode.
2022-11-29 16:22:22 +08:00
7a08a799e9 [Vectorized](function) support order by convert_to function (#14555) 2022-11-29 15:22:27 +08:00
facb7cf4e2 [fix](spark load)Temp partition with spark load (#14648)
* [fix](spark load)losing temporary partition item entry

* [fix](spark load)Temp partition with spark load
2022-11-29 15:21:44 +08:00
c5f9fd5619 [fix](spark load)partition column is not duplicate key, spark load IndexOutOfBounds error (#14661)
* [fix](spark load)partition column is not duplicate key,spark load IndexOutOfBoundsException error

Co-authored-by: 张放(vivianv.zhang) <vivianv.zhang@huolala.cn>
2022-11-29 15:21:21 +08:00
3e8b3658c7 [feature-wip](decimalv3) Support basic agg and arithmetic operations for decimal v3 (#14513) 2022-11-29 15:12:41 +08:00
Pxl
82da071b45 [Chore](format) update clang-format version to 15 (#13036)
update clang-format version to 15
2022-11-29 14:46:10 +08:00
97f0d3a756 [Improvement](datatype) disable new types if vectorized engine is disabled (#14561)
* [Imptovement](datatype) disable new types if vectorized engine is disabled

disable datev2/datetimev2/decimalv3 if vectorized engine is disabled
2022-11-29 10:33:46 +08:00
1bddf9ba5c [docs](readme)update the user numbers (#14639) 2022-11-29 10:28:52 +08:00
f7a827c06b [fix](new-scan) fix some bugs about new scan node and readers (#14504)
json reader DCHECK fail because of missing TYPE_STRING

fix bug that if no file is found, the tvf will throw NPE.

The predicate conjuncts can not be pushed down to parquet reader if this is a load task.
Because the predicate should be applied on column of dest table, not on column of source file.

Add a temp property "use_new_load_scan_node" of broker load to make regression test happy.
So that we can use new load scan node for a certain job and avoid setting global FE config.
2022-11-29 10:21:41 +08:00
e1f0fa069c [enhancement](memory) Refactored process memory statistics periodically refresh, and fix catch bad_alloc (#14580) 2022-11-29 10:15:25 +08:00
0daebde223 [fix](java-udf) Disable the corresponding configuration if building BE without Java UDF support (#14303) 2022-11-29 10:12:00 +08:00
wxy
2295ab24b0 [fix](metric) fix jvm_young_size_bytes. (#14562)
Co-authored-by: wangxiangyu@360shuke.com <wangxiangyu@360shuke.com>
2022-11-29 09:10:48 +08:00
7513c82431 [NLJoin](conjuncts) separate join conjuncts and general conjuncts (#14608) 2022-11-29 08:55:54 +08:00
c5eb8ab084 [fix](persiste) make ArithmeticExpr wriable (#14615)
Fix bug that the ArithmeticExpr's write method is not implement, causing FE crash when creating function like:
CREATE ALIAS FUNCTION IF NOT EXISTS mesh_udf_test1(INT,INT) WITH PARAMETER(n,d) AS ROUND(1+floor(n/d));

Add if exists and if not exists for drop and create function

Fix a minor bug that if file does not exist, hdfs() table valued function will throw NPE
2022-11-29 08:55:18 +08:00
daeabcf053 [improvement](vec) optimize the logic for _has_null in ColumnNullable (#14633) 2022-11-29 08:53:30 +08:00
39dd6682f2 [typo](docs)change the metadata directory from palo-meta to doris-meta #14647 2022-11-29 08:52:55 +08:00
e5e94e128d [docs](macOS) Fix the render (#14643) 2022-11-29 08:22:06 +08:00
b51f6ae050 [feature](Nereids)add rule: PruneOlapScanTablet (#14378) 2022-11-29 01:06:14 +08:00
a803e75438 [feature](Nereids) add rule: EliminateGroupByConstants (#14541)
remove group by constants, like:
before apply rule:
select 1, k1, min(k2), max(k3) from t1 group by 1, 2; 
after apply rule:
select 1, k1, min(k2), max(k3) from t1 group by k1;
2022-11-28 22:52:24 +08:00
8d1d144eed [doc](1.2) add version tag for feature in 1.2 (#14624) 2022-11-28 20:39:53 +08:00
0702277196 [improvement](tcmalloc) add moderate mode and avoid oom with a lot of cache (#14374)
ReleaseToSystem aggressively when there are little free memory.
2022-11-28 20:17:51 +08:00
16bc20a357 [opt](nereids)Estimate cost by row, not by data size (#14471)
Since column data size is not always available, estimate plan cost by row count instead of data size.
2022-11-28 19:58:06 +08:00
c7da050da4 [fix](test) tpch_sf1_p1 and tpch_sf1_p1/tpch_sf1 are confusing (#14206) 2022-11-28 19:30:32 +08:00
1e690ea6aa [fix](bitmapfilter) Set bitmap filter waiting time to the query timeout. (#14623)
bitmap filter is precise filter and only filter once, so it must be applied.
2022-11-28 18:57:27 +08:00
529bdfb153 [Fix](function) Fix retention function return wrong value type (#14552)
MySQL [db]> SELECT SUM(a.r[1]) as active_user_num, SUM(a.r[2]) as active_user_num_1day, SUM(a.r[3]) as active_user_num_3day, SUM(a.r[4]) as active_user_num_7day FROM ( SELECT user_id, retention( day = '2022-11-01', day = '2022-11-02', day = '2022-11-04', day = '2022-11-07') as r FROM login_event WHERE (day >= '2022-11-01') AND (day <= '2022-11-21') GROUP BY user_id ) a;
ERROR 1105 (HY000): errCode = 2, detailMessage = sum requires a numeric parameter: sum(%element_extract%(a.r, 1))
2022-11-28 15:56:18 +08:00
73a600fba8 bug fix for outfile (#14550)
Co-authored-by: cambyzju <zhuxiaoli01@baidu.com>
2022-11-28 15:46:41 +08:00
9d087a01f3 [improvement](startup) not print error stack for OLAP_ERR_TABLE_ALREADY_DELETED_ERROR because there are too much errors during startup (#14627)
If there are too much deleted tablets in RocksDB, there are many OLAP_ERR_TABLE_ALREADY_DELETED_ERROR during startup and will try to get error stack. It will cost a lot of time and the start process taks very very long.
Co-authored-by: yiguolei <yiguolei@gmail.com>
2022-11-28 15:43:24 +08:00
f6154a65a6 [docs](macOS) Add compilation guides for macOS (#14634)
* [docs](macOS) Add compilation guides for macOS

* Add to sidebar
2022-11-28 15:13:50 +08:00
d3cb79c629 [regressiontest](fuzzy) modify window function and schema change test to pass fuzzy (#14632)
enable fe fuzzy mode for P0
set parallel instance num = 1 for window function
sleep 1000ms for schema change test or the data result is wrong.
2022-11-28 14:58:27 +08:00