Commit Graph

16260 Commits

Author SHA1 Message Date
0a853be3d1 [fix](storage medium) show create table don't print empty storage medium #29650 2024-01-12 11:46:29 +08:00
b7a819bd24 [Fix](typo) Fix analyzeGroupCommitDataBytes typo #29640 2024-01-12 11:46:29 +08:00
Pxl
7738eca6da [Bug](stream-load) fix stream load failed on table with rollup (#29665)
fix stream load failed on table with rollup
2024-01-12 11:46:29 +08:00
9cbb55d49b [fix](Nereids) create double literal when create decimal literal failed (#28959)
FIX
1. remove float and double literal toString and getStringValue introduced by
  PR #23504 and PR #23271
  These functions lead to wrong cast result of double and float literal
2. fix compute signature for datetimev2 always produce scale 6
3. fix stats calculator failed when generate node stats with two same column
4. constant fold on fe failed when cast double to integral

TODO
after fix the first problem, some mv matching not work well, fix them later
- test_dup_mv_div
- test_dup_mv_json
- test_tcu
2024-01-12 11:46:29 +08:00
67986a8a6f [fix](case) external case, specify networks (#29699)
Co-authored-by: stephen <hello-stephen@qq.com>
2024-01-12 11:46:29 +08:00
aec373e2a0 [fix](regression) remove a buggy fault-injection case which make BE crash (#29673)
Signed-off-by: freemandealer <freeman.zhang1992@gmail.com>
2024-01-12 11:46:29 +08:00
da182a8b6f [feature](nereids)print nereids node id in explain (#29238)
* print nereids id in explain
2024-01-12 11:44:21 +08:00
e4707154fa [opt](statistics) create or update table stats after alter column stats.
Create or update table stats after alter column stats.
Set flag to disable auto analyze for the table after user inject column stats.
2024-01-12 11:44:21 +08:00
abb7640d37 [debug](timeout) add more log in scanner ctx to find timeout problem #29704
Co-authored-by: yiguolei <yiguolei@gmail.com>
2024-01-12 11:44:21 +08:00
fda001b6d3 [Improvement](nereids) Support join derivation when mv rewrite (#29609)
materialized view def is as following:
>            select l_linenumber, o_custkey
>           from orders
>            left join lineitem on lineitem.L_ORDERKEY = orders.O_ORDERKEY
>            where o_custkey = 1;

when query is as following, it can be rewritten by mv above
it requires that query has reject null filters on the join right input, 
current supported filter are  "=", "<", "<=", ">", ">=", "<=>" 
>            select IFNULL(orders.O_CUSTKEY, 0) as custkey_not_null,
>           case when l_linenumber in (1,2,3) then l_linenumber else o_custkey end as case_when
>            from orders
>            inner join lineitem on orders.O_ORDERKEY = lineitem.L_ORDERKEY
>            where o_custkey = 1 and l_linenumber > 0;
2024-01-12 11:44:21 +08:00
34fe5ee38b [feat](Nereids) support show constraint command (#29667)
show constraints from t1;
+------+-------------+-----------------------------------------+
| Name | Type        | Definition                              |
+------+-------------+-----------------------------------------+
| fk   | FOREIGN KEY | FOREIGN KEY (id) REFERENCES cir.t1 (id) |
| uk   | UNIQUE      | UNIQUE (id)                             |
| pk   | PRIMARY KEY | PRIMARY KEY (id)                        |
+------+-------------+-----------------------------------------+
2024-01-12 11:44:21 +08:00
be56bf06cf [feature](function) support ip function named is_ip_address_in_range(addr, cidr) (#29681) 2024-01-12 11:44:21 +08:00
7357ca62af [improvement](statistics)Only write editlog for manual analyze task, don't need to do so for auto tasks. #29685
Only write editlog for manual analyze task, don't need to do so for auto tasks to reduce writing editlog.
Add error message to job info while task failed.
2024-01-12 11:44:21 +08:00
xy
374c638788 [improvement](executor) improve readability and efficiency of the checks (#29696)
Co-authored-by: xingying01 <xingying01@corp.netease.com>
2024-01-12 11:44:21 +08:00
bff7f3f980 [fix](regression) change reference of s3 in p1 via getS3url #29693 2024-01-12 11:44:21 +08:00
2959219b4d [Enhancement](wal) Add fault injection case for wal back pressure (#29689) 2024-01-12 11:44:21 +08:00
78aabc3492 [session](shared) disable shared scan in default (#29703) 2024-01-12 11:44:21 +08:00
87a6def862 [Fix](index tool) fix inverted index tool memory leak (#29701) 2024-01-12 11:44:21 +08:00
028e59efab [refactor](Nereids): unify all replaceNamedExpressions (#28228)
Use a unified function `replaceNamedExpressions ` instead of implementing it yourself repeatedly.
2024-01-12 11:44:21 +08:00
0c7c9485b6 [Fix](nereids) Fix get ralated partition table when nodata (#29453)
Support to create partition materialized view using nodata table
Such as the table def as following:
>        CREATE TABLE `test_no_data` (
>         `user_id` LARGEINT NOT NULL COMMENT '"用户id"',
>         `date` DATE NOT NULL COMMENT '"数据灌入日期时间"',
>         `num` SMALLINT NOT NULL COMMENT '"数量"'
>        ) ENGINE=OLAP
>        DUPLICATE KEY(`user_id`, `date`, `num`)
>        COMMENT 'OLAP'
>        PARTITION BY RANGE(`date`)
>        (PARTITION p201701_1000 VALUES [('0000-01-01'), ('2017-02-01')),
>        PARTITION p201702_2000 VALUES [('2017-02-01'), ('2017-03-01')),
>        PARTITION p201703_all VALUES [('2017-03-01'), ('2017-04-01')))
>        DISTRIBUTED BY HASH(`user_id`) BUCKETS 2
>        PROPERTIES ('replication_num' = '1') ;

when table test_no_data has no data, it also support to create partition materialized view as following:
>        CREATE MATERIALIZED VIEW no_data_partition_mv
>            BUILD IMMEDIATE REFRESH AUTO ON MANUAL
>            partition by(`date`)
>            DISTRIBUTED BY RANDOM BUCKETS 2
>            PROPERTIES ('replication_num' = '1')
>            AS
>           SELECT * FROM test_no_data where date > '2017-05-01';
>
2024-01-12 11:44:21 +08:00
28695249ea [Fix](nereids) Fix partition check failure (#29642)
Optimize mv rewrite partition check logic and fix check failure and
add more relevant explain info.
2024-01-12 11:44:21 +08:00
d50c8b6d3a [Improvement](nereids) Query rewrite by mv support bitmap_union and bitmap_union_count roll up (#29418)
Query rewrite by mv support bitmap_union and bitmap_union_count roll up, aggregate functions which supports roll up is listed as following:

| 查询中函数            | 物化视图中函数      | 函数上卷后              |
|------------------|--------------|--------------------|
| max              | max          | max                |
| min              | min          | min                |
| sum              | sum          | sum                |
| count            | count        | sum                |
| count(distinct ) | bitmap_union | bitmap_union_count |
| bitmap_union | bitmap_union | bitmap_union|
| bitmap_union_count | bitmap_union | bitmap_union_count |

this depends on  https://github.com/apache/doris/pull/29256
2024-01-12 11:44:21 +08:00
0a55376a48 [fix](regression-test) fix non stable case test_bitmap_index (#29592)
Wrong wait getJobState make this case not stable.

Master && Branch2.0 both have this problem.
2024-01-12 11:44:21 +08:00
161134913d [fix](regression-test) fix non stable case test_unique_table_like (#29643)
test_unique_table.groovy and test_unique_table_like.groovy both use database test_unique_db.

If they run at the same time, we may got the following errors:

java.sql.SQLException: errCode = 2, detailMessage = There are still some transactions in the COMMITTED state waiting to be completed. The database [default_cluster:test_unique_db] cannot be dropped. If you want to forcibly drop(cannot be recovered), please use "DROP database FORCE".

Both Master & Branch2.0 have this problem.
2024-01-12 11:44:21 +08:00
1d834571ab [doc](fix) K8s doc modify catalog and add helm doc (#29604) 2024-01-12 11:44:21 +08:00
87023d3b7a [Fix](inverted index) fix memory leak in inverted index when encountering fault (#29676) 2024-01-12 11:44:21 +08:00
1ca4d8bf10 [improve](docs) add Flink write metrics doc (#29578) 2024-01-12 11:44:21 +08:00
75631c89fa [Fix](thirdparty) fix that BE can not start when use JDK17 (#29570)
An error occurred when starting BE with JDK17

```java
Exception: java.lang.StackOverflowError thrown from the UncaughtExceptionHandler in thread "process reaper"
```

This error occurs when BE's java code calls Runtime.exec() to fork the child process.
It turned out that Doris was calling the `glog` library in the C++ layer to cause this problem.


The solution comes from: https://github.com/google/glog/issues/975
2024-01-12 11:44:21 +08:00
0b51532dfc [doc](release) update release process related to maven (#29467) 2024-01-12 11:44:21 +08:00
9f73f77d12 [fix](pipeline) incorrect result caused by missing output block of union operator (#29677) 2024-01-12 11:44:21 +08:00
aa4de6f39a (feature)[pipelineX]Make operator_id negative in pipelineX (#29649)
"operator_id" should be invisible, but the local shuffle is a planned operator in the BE (Backend), without a plan node ID. We use it in profiles and other places, and there might be duplicates. Therefore, we switch it to a negative number here to distinguish it as a plan node ID.
2024-01-12 11:44:21 +08:00
2ca90b2bf1 [Refactor](dialect) Add sql dialect converter plugins (#28890)
The current logic for SQL dialect conversion is all in the `fe-core` module, which may lead to the following issues:
- Changes to the dialect conversion logic may occur frequently, requiring users to upgrade the Doris version frequently within the fe-core module, leading to a longer change cycle.
- The cost of customized development is high, requiring users to replace the fe-core JAR package.

Turning it into a plugin can address the above issues properly.
2024-01-12 11:44:20 +08:00
28dca66c06 Fix BE UT macOS compile (#29663) 2024-01-12 11:44:20 +08:00
40badbf5c5 Fix analyze empty external NPE bug. (#29675) 2024-01-12 11:41:21 +08:00
54d2528c69 [Fix](Nereids) fix fe ut failed cause of getting statement context (#29683)
Problem:
fe ut failed cause of null pointer error
Cause:
fe ut getting statement context from connection context failed
Resolved:
add null pointer judgement
2024-01-12 11:41:06 +08:00
a2da434e3b [refactor](Nereids): refactor PredicatePropagation & support to infer Equal Condition (#29644) 2024-01-12 11:40:57 +08:00
8fc9c18c85 [improvement](jdbc catalog) Put the jdbc connection pool parameters into catalog properties (#29195) 2024-01-12 11:40:28 +08:00
30e46ee5ad [Fix](Job)Fixed the problem of not deleting JOB during DROP JOB metadata playback (#29543) 2024-01-12 11:40:19 +08:00
78fc38f53e [typo](docs) fix the unit of default value of thrift_connect_timeout_seconds (#29626) 2024-01-12 11:40:08 +08:00
3cd1c7745a [fix](jdbc catalog) Fix the precision of decimal type mapping to 0 (#29407) 2024-01-12 11:39:57 +08:00
c10bcb666d [Fix](Nereids) change log level of warning of converting error to debug (#29660)
Co-authored-by: libinfeng <libinfeng@selectdb.com>
2024-01-12 11:39:49 +08:00
eea657a610 [rf](nereids)prune rf for external db according to jump count (#29634)
* prune some rf for external db
2024-01-12 11:37:16 +08:00
c9e2f1934a [opt](file cache) make the cache queue percentage configurable (#29537) 2024-01-12 11:36:58 +08:00
97ed06a92c [regression-test](Variant) fix unstable case (#29648) 2024-01-12 11:36:45 +08:00
b59a8c9365 [feature](Nereids): refresh view hypergraph after inferring join (#29469) 2024-01-12 11:36:21 +08:00
0126b09c11 [fix](Nereids): fix shape of eliminate_inner regression test (#29613) 2024-01-12 11:36:03 +08:00
971bc804ac [fix](Nereids) update and delete may produce exprs with same exprid (#29656) 2024-01-12 11:35:49 +08:00
847898bf26 [fix](Nereids) delete using should support sql without where (#29518) 2024-01-12 11:35:29 +08:00
ddaa645a4f [improvement](statistics) Force to use zonemap for collecting string type min max. (#29631)
Force to use zonemap for collecting string type min max.
String type is not using zonemap for min max, because zonemap value at BE side is truncated at 512 bytes which may cause the value not accurate. But it's OK for statisitcs min max, and this could also avoid scan whole table while sampling.
2024-01-12 11:34:07 +08:00
9791a63212 [opt](match_phrase) Optimizing match_phrase with a new algorithm (#29444)
Based on the latest Lucene algorithm
2024-01-12 11:33:44 +08:00