Commit Graph

5948 Commits

Author SHA1 Message Date
f33d1f7143 [fix](ut) Fix FE ut SelectStmtTest.testDeduplicateOrs (#7481)
Fix UT failure in `SelectStmtTest.testDeduplicateOrs`
2021-12-24 21:36:19 +08:00
2347f128b0 [fix](fe-ut) Fix NPE when start FE in unit test. (#7471)
Before this PR, NPE would be thrown if start FE in a unit test.
2021-12-24 21:33:30 +08:00
91332fa6bd [fix](reader) fix logic error for Tablet::capture_rs_readers (#7469) 2021-12-24 21:32:49 +08:00
43ed54faa1 [docs] The name of hidden column is incorrect in batch-delete-manual.md(#7465) (#7466) 2021-12-24 21:30:57 +08:00
a8a5c0a6a8 [improvement](load) memory usage optimization for load job (#7454)
Reduce memory usage when loading unqualified data
2021-12-24 21:30:28 +08:00
b4ce189646 [improvement](flink-connector) flush data without multi httpclients (#7329) (#7450)
reuse http client to flush data
2021-12-24 21:28:35 +08:00
c596b0362c [docs](docker) Add document of docker dev (#7447)
Add development document using docker
2021-12-24 21:27:39 +08:00
Pxl
bfa6bc3b0a [fix](function) fix aggregate function min() at type varchar (#7437) 2021-12-24 21:27:01 +08:00
Pxl
6d1cf599f8 [fix] DCHECK fail at BitmapValue getSizeInBytes (#7430) 2021-12-24 21:23:58 +08:00
3ba6dcf236 [fix](function) fix round function for inaccuracy (#7421) 2021-12-24 21:23:11 +08:00
Pxl
ff5a0e98b0 [improvement](planner) make BinaryPredicate do not cast date to datetime/varchar (#7045) 2021-12-24 21:22:43 +08:00
3128c7cd37 [fix](ut) fix testPartitionRebalancer ut (#7468) 2021-12-23 23:29:07 +08:00
889e33d53d [docs](seatunnel) Seatunnel Supports Doris connector (#7453) 2021-12-22 23:29:02 +08:00
a8c444d6d5 [fix](sql-rewrite) Rewrite Bigint SlotRef to compare DecimalLiteral in Binary predicate (#7265)
Convert the binary predicate of the form
`<CastExpr<SlotRef(ResultType=BIGINT)>> <op><DecimalLiteral>` 
to the binary predicate of 
`<SlotRef(ResultType=BIGINT)> <new op> <new DecimalLiteral>`, 
thereby allowing the binary predicate The predicate pushes down and completes the bucket clipped.

For query `select * from T where t1 = 2.0`, when the ResultType of column t1 is equal to BIGINT,
in the binary predicate analyze, the type will be unified to DECIMALV2, so the binary predicate will be converted to 
`<CastExpr<SlotRef>> <op In the form of ><DecimalLiteral>`, because Cast wraps the t1 column, it cannot be pushed 
down, resulting in poor performance.We convert it to the equivalent query `select * from T where t1 = 2` to push down 
and improve performance.

SSB test:
1. query `select * from LINEORDER3 where LO_ORDERKEY <2.2`

Performance improvement: `1.587s` -> `0.012s`,
The result and performance of `select * from LINEORDER3 where LO_ORDERKEY <3` are equivalent, and the other comparison methods are the same.

2. query `select * from LINEORDER3 where LO_ORDERKEY = 2.2`
Performance improvement: `0.012s` -> `0.006`.
2021-12-22 23:28:19 +08:00
20ef8a6e21 [feature-wip](remote storage)(step1) use a struct instead of string for parameter path, add basic remote method (#7098)
For the first, we need to make a parameter to discribe the data is local or remote.
At then, we need to support some basic function to support the operation for remote storage.
2021-12-22 22:58:23 +08:00
2ab3a66e7a [docs][community] Remove articles (#7449)
The articles will be moved to https://github.com/apache/incubator-doris-website
And I will modify the READ of incubator-doris-website later
2021-12-21 18:50:09 +08:00
97749ed85b [community][chore] Modify .asf.yaml and fix BE build warning (#7439) 2021-12-21 11:06:12 +08:00
e9049605b6 [fix](flink-connector) Connector should visit the surviving BE nodes (#7435) 2021-12-21 11:05:42 +08:00
695eca8cbc [docs] add bloomfilter index doc (#7318)
* add bloomfilter index doc
2021-12-21 11:05:20 +08:00
HB
560c8b8911 [enhancement] Remove the two lines of duplicate import. (#7331) (#7332)
* [Enhancement] Remove the two lines of duplicate import. (#7331)
2021-12-21 11:04:53 +08:00
998489ac50 [fix](sql-block-rule) move sql block rule check from ConnectProcessor to StmtExecutor (#7407)
SqlBlockRule should block only query stmt. And exclude explain stmt.
2021-12-21 10:25:09 +08:00
30db2cdd19 [fix](cache) Some view stmt cannot be obtained when view in the subquery and add cache key UT (#7375)
1. Fix bug that some view stmt cannot be obtained when view in the subquery
2. Add cache key UT
2021-12-21 10:21:28 +08:00
2d72c039ad [deps](openssl) upgrade openssl to 1.1.1m (#7446)
upgrade openssl to 1.1.1m, ready for support SM2 / SM3 / SM4 national secret (national commercial password) algorithm
2021-12-21 10:09:36 +08:00
7a1bb5b335 log4j upgrade to 2.17.0 (#7440)
Solved the third security vulnerability CVE-2021-45105 that was discovered
2021-12-21 09:28:02 +08:00
6c320dffe5 [community](github) Add .asf.yaml (#7431) 2021-12-20 15:13:24 +08:00
e74e55d2a4 [docs] Fix typos (#7404)
There are a few typos in the document, which have been corrected by me
2021-12-19 18:31:35 +08:00
f6e598dca2 Revert "[improvement](reader) optimize for single rowset reading (#7351)" (#7427)
Reverts apache/incubator-doris#7351

This commit will cause wrong result with agg table.
For example, an agg table `(k1, k2, v1 sum)` with single non-overlapping rowset

`select count(k1) from tbl1;` should using `_direct_agg_key_next_row` instead of `_agg_key_next_row`.

Otherwise it return less rows than expected.(because `_agg_key_next_row` will only do aggregation with `k1`)
2021-12-19 18:31:11 +08:00
e9536a8cf1 [deps](cyrus_sasl) Add -fPIC for cyrus_sasl (#7408) 2021-12-17 13:11:25 +08:00
06c38ce46e [enhancement] Make concurrent_number for routine load task can be larger than be num (#7386)
* [enhancement] Make concurrent_number for routine load task can be larger than be num

Co-authored-by: caiconghui1 <caiconghui1@jd.com>
2021-12-17 11:04:29 +08:00
7d4da7af5c [fix](rpc) fix BE crash in SendRpcResponse when high concurrency (#7413)
The response is accessed when done->Run is called in transmit_data(),
give response a default value to avoid null pointers in high concurrency.
2021-12-16 20:27:24 +08:00
c873c8c162 [fix](lateral view)(subquery) Forbidden directly AGG/SORT on lateral view (#7337)
This PR mainly prohibits operations such as aggregation/sorting/window functions
on lateral views containing subqueries.
For example:
select min(e1) from (select c1 from table group by c1)tmp1 lateral view explode_split(c1, ",") tmp2 as e1
But the query can be written in another way, and the result is the same.
select min(e1) from (select e1 from (select c1 from table group by c1)tmp1 lateral view explode_split(c1, ",") tmp2 as e1) tmp3

The reason is that when the results of a inline view are subjected to a lateral view,
and the outer query performs aggregation or sorting operations on non-table-function columns.
The output slot id of the table function node is empty or has fewer columns.

The essential reason is that when the inner layer contains an inline view,
the outer expression needs to be mapped to the correct tuple through the substitute method
according to the smap instead of the virtual tuple.
But the substitute method of slot ref cannot recurse to its own source exprs.

E.g
SlotRef: c2 <source expr min(c1)> from agg tuple
smap: <c1, c3>
before: c2 <source expr min(c1)>
after: c2 <source expr min(c1)> no changed
2021-12-16 15:42:39 +08:00
0499b2211b [feat](lateral-view) Support execution of lateral view stmt (#7255)
1. Add table function node
2. Add 3 table functions: explode_split, explode_bitmap and explode_json_array
2021-12-16 10:46:15 +08:00
5fed8a94ae [docs](flink-connector) Add instructions for flink doris connector (#7384) 2021-12-16 10:43:21 +08:00
6dd312b21e [docs](website) develop the caseList component (#7402)
Remove user cases to a submenu
2021-12-16 10:41:11 +08:00
2b90967c4c [fix][refactor](broker load) refactor the scheduling logic of broker load (#7371)
1. Refactor the scheduling logic of broker load. Details see #7367 
2. Fix bug that loadedBytes in SHOW LOAD result is wrong.
3. Cancel the thread of LoadTimeoutChecker
   Now for PENDING load jobs, there will be no timeout. And the timeout of a load job
   start when pending load task is scheduled.
4. Fix a bug that the loading task is never submitted to the pool.
   The logic of BlockedPolicy is wrong. We should make sure the task is submitted to the pool,
   or the RejectedExecutionException should be thrown.
5. Now the transaction of a load job will begin in pending task, instead of when submitting the job.
2021-12-16 10:39:22 +08:00
2e334d06da [docs](sql-block-rule) modify document of sql block rule (#7370) 2021-12-16 10:38:54 +08:00
6ede693839 [fix](insert) modify code logic of InsertStmt (#7360)
when entry is null, there will be NullPointerException.
2021-12-16 10:38:05 +08:00
4afdcdb939 [performance](reader) Opt the unique reader to reduce unnecessary compare and function call (#7348) 2021-12-16 10:36:43 +08:00
85521944dd [refactor](olap-scan-node) Refactor olap scannode (#7131)
1. Delete useless variables
2. Add const modifier for read-only function
3. Delete the empty destructor, the compiler will automatically generate it, refer to the 3/5/0 rule: 
    [https://en.cppreference.com/w/cpp/language/rule_of_three]
4. It is recommended to add the override keyword (instead of the virtual keyword) to the subclass virtual function. 
    Override will let the compiler help check and improve security. This is also the reason why C++11 introduces override
2021-12-16 10:33:41 +08:00
549e849400 [improvement](flink-connector) DataSourceFunction read doris supports parallel (#7232)
The previous DataSourceFunction inherited from RichSourceFunction.
As a result, no matter how much the parallelism of flink is set, the parallelism of DataSourceFunction is only 1.
Now modify it to RichParallelSourceFunction.

And when flink has multiple degrees of parallelism, assign the doris data to each parallelism.
For example, read dorisPartitions.size = 10, flink.parallelism = 4
The task is split as follows:
task0: dorisPartitions[0],[4],[8]
task1: dorisPartitions[1],[5],[9]
task2: dorisPartitions[2],[6]
task3: dorisPartitions[3],[7]
2021-12-15 16:21:29 +08:00
c8bc0cf523 [chore][community](github) Remove travis and add github action (#7380)
1. Remove travis
2. Add github action to build extension:
    1. docs
    2. fs_broker
    3. flink/spark/connector
2021-12-15 13:27:37 +08:00
382351b0ee [fix](ut) Fix run fe ut failed, be ut memory leak and build thirdparty failed (#7377) 2021-12-15 11:00:20 +08:00
926540c561 [feature] Support return bitmp/hll data in select statement (#7276)
Support return bitmp/hll data in select statement, this can be used when set show_object_data=true;
2021-12-15 09:48:27 +08:00
e64da03866 [deps](log4j) Upgrade log4j 2 to 2.16.0 (#7394)
Upgrade log4j 2 to 2.16.0, the official strongly recommends upgrading to this version
2021-12-14 15:57:16 +08:00
d9c927fdc6 [improvement](log)(schema change) Add a clear memory description in the log (#7378)
If the memory exceeds the limit when be generates a materialized view or schema change,
a more detailed log about limit and configuration will be prompted..
2021-12-14 15:56:50 +08:00
4e02109926 [refactor][fix](constants-fold) Refactor the code of fold constant mgr and fix some undefined behavior and mem leak (#7373)
1. Fix some memory leaks
2. Remove redundant and invalid code
3. Fix some buggy writes to reduce extra memory copies and return null pointers to string
4. Reframing the naming to make the structure clearer
2021-12-14 15:53:56 +08:00
a6a584a2e7 [doc] update the compilation.md (#7350)
Update the compilation.md, add the docker image version explain.
2021-12-14 15:52:40 +08:00
414c5a8b5a [fix] LRUCache::prune_if may not remove all the entries matching the predicate (#7383)
[fix] LRUCache::prune_if may not remove all the entries matching the predicate

Co-authored-by: gaodayue <gaodayue@bytedance.com>
2021-12-13 21:09:47 +08:00
HB
ef2ea1806e [docs] Improve the chapter on debugging FE in doc. (#7309)
At present, there are defects in the chapter on debugging FE in doc. My colleagues and I stepped on the pit when 
building the debugging environment, so I want to improve this chapter in combination with my own stepping on the pit 
experience.

The following is my explanation of the changes: 

1. mkdir -p ./thirdparty/installed/bin
explain: When I downloaded versions 0.14 and 0.15, there were no files under thirdparty, so I didn't know whether to 
create it myself or what to do. Finally, I decided to create it myself. I think it's necessary to add instructions here.

2. Add installation thrift@0.13.0 Failed handling method. 
explain: My colleagues and I failed to find the installation package when executing the installation command, and finally 
found a solution on GitHub. Therefore, I added the handling method of the problem to avoid other Mac users from 
getting stuck in this place.

3. Fixed an error in the generated code description.
explain: Before I finished building the code, I debugged FE, and I failed all the time. Idea hints that no files can be found. 
Later, after consulting with morningman in wechat group, it was understood that `mvn install -DskipTests` does not 
need to execute `mvn generate-sources` after execution. This is inconsistent with the description in the document and 
needs to be corrected.
2021-12-13 16:26:45 +08:00
e0889aee1e [typo](load) correct the error of ‘EtlJobMgr::get_job_status’ function (#7353) 2021-12-11 16:54:25 +08:00