Commit Graph

8289 Commits

Author SHA1 Message Date
5171a77f9e [fix](Nereids): merge Offset in Limit Translator (#29100) 2023-12-28 15:32:45 +08:00
14c902b504 [fix](regression test) fix test_alter_colocate_table (#29009) 2023-12-28 15:09:21 +08:00
31b3be456c add workload scheduler in be (#29116) 2023-12-28 15:04:22 +08:00
Pxl
c98489fc09 [Feature](materialized-view) support visitBitmapUnion mv rewrite (#29200)
* support visitBitmapUnion rewrite

* add case
2023-12-28 14:56:33 +08:00
29a7c0d677 [pipelineX](scan) ignore storage data distribution by default (#29192) 2023-12-28 14:54:09 +08:00
4f2d54d462 [fix](DatabaseTransactionMgr) Fix clean label bug which may cause inconsitent editlog operation (#29198) 2023-12-28 14:17:35 +08:00
f816d13c56 [feature](Nereids): eliminate groupby (#28615) 2023-12-28 14:00:41 +08:00
bc08535285 [fix](Nereids) throw readable exception when meet unsupport sup-query (#29147) 2023-12-28 13:26:09 +08:00
8a169b9906 [case](regression) Test enable pipeline load (#28172)
Co-authored-by: qinhao <qinhao@newland.com.cn>
2023-12-28 10:49:19 +08:00
1284975b9b [Improve](Job) Create task adds concurrency control (#29144) 2023-12-28 10:24:39 +08:00
f4c5ce260b [fix](statistics)Fix rowCount==0 while analyzing bug (#28969)
Sample analyzing need to get row count by using table.getRowCount(). This method is not updated in real time, which may cause the sample task to scan whole table.
This pr is to fix this. Set the flag that indicate the analyze job is for an empty table and skip scan the table. Meanwhile, don't reset updatedRows in this case.

Set hugeTableAutoAnalyzeIntervalInMillis = 0 because all default huge table size has been set to 0.
2023-12-27 23:04:37 +08:00
0bff387577 [fix](tablet stat) fix tablet stat thread block #29151 2023-12-27 22:02:42 +08:00
d96278ab21 [bug](fix) show create table show comment error (#28346) 2023-12-27 21:17:20 +08:00
abbd2cedff [fix](Nereids) merge limit should use bottom phase (#29142) 2023-12-27 21:04:00 +08:00
9715db61d4 [FIX](complextype)fix count func with complex type (#28873) 2023-12-27 20:38:44 +08:00
4269041563 [enhancement](Nereids): catch exception when calling getConstraintMap for external map (#29112) 2023-12-27 16:45:03 +08:00
2d2f14bc75 [fix](paimon) use SlotDescriptor to parse the required fields (#28990)
Before this PR, Paimon has created the schema of `VectorTable` by accessing meta information. However, once the schema of `VectorTable` in java is not same as `Block` in c++, BE will crashed, and there is no good way to troubleshoot errors.
2023-12-27 15:45:53 +08:00
0607760efa [typo](resource) fix create odbc resource error msg (#29019) 2023-12-27 15:30:52 +08:00
e0014308bd [fix](load) Recycle progress before removing bulk load job (#29066) 2023-12-27 15:17:04 +08:00
578a7dadc1 [improvement](statistics)Use key column id to query column statistic table. (#28885)
Use id as where predicate to load column statistic cache. This could improve performance, because id is the first order key in column statistics table.
2023-12-27 14:38:55 +08:00
0ac9b3d113 [Fix](Job)cancel task is not cleared from running task (#29114) 2023-12-27 13:59:12 +08:00
51bd402b58 [fix](planner) Fix delete statement on MOR unique table (#28968)
add conditions for mor table removed in #26776
2023-12-27 12:59:15 +08:00
e33395a0ee [fix](paimon)Remove the static attribute of the source for paimon (#29032) 2023-12-27 12:57:39 +08:00
6ed09c3f46 [fix](mtmv)add log for resolve pending task (#29078) 2023-12-27 12:36:17 +08:00
0b5fe681e4 [fix](paimon) read batch by doris' batch size (#29039) 2023-12-27 12:35:17 +08:00
17f92155d7 [opt](Nerieds) add infer props to expression (#28953) 2023-12-27 12:21:25 +08:00
8e358617c7 [opt](nereids)expr normalize after filter pushdown (#28743)
normalize expression after filter push down
2023-12-27 11:37:36 +08:00
576a2b33cb [fix](nereids) "not is null" stats estimation fix (#28860)
* fix not is null stats
2023-12-27 11:36:12 +08:00
58e7ad82b5 [feature](Nereids): support infer join when comapring mv (#28988) 2023-12-27 10:40:44 +08:00
a4e69f7272 [improvement](statistics)Remove retry load when load stats cache fail (#28904)
Remove retry load when load stats cache fail. This case usually happens when BE is down or BE OOM, retry doesn't work in these cases and may increase BE work load.
2023-12-27 09:59:34 +08:00
f6850f8cdb Revert "[feature](load) enable memtable on sink node by default (#28963)" (#29090)
This reverts commit 17917a0adb57ac337dfd41e8853b1aa87c9d5acd.
2023-12-26 22:20:49 +08:00
c82155614b [Bug] optimize the collection import Lists dependency packge #28523 (#28579) 2023-12-26 18:45:22 +08:00
ffc6596cef [refactor](create tablet) default create tablet round robin (#28911) 2023-12-26 17:36:05 +08:00
6440fbfab6 [feature](scan) Implement parallel scanning by dividing the tablets based on the row range (#28967)
* [feature](scan) parallel scann on dup/mow mode

* fix bugs
2023-12-26 17:18:41 +08:00
1964a77d6c [enhencement](config) change default memtable size & loadStreamPerNode & default load parallelism (#28977)
We change memtable size from 200MB to 100MB to achieve smoother flush
performance. We change loadStreamPerNode from 20 to 60 to avoid stream
rpc to be the bottleneck when enable memtable_on_sink_node. We change
default s3&broker load parallelsim to make the most of CPUs on moderm
multi-core systems.

Signed-off-by: freemandealer <freeman.zhang1992@gmail.com>
2023-12-26 16:22:52 +08:00
d672e321cc [feature](Nereids) support values inline table in query (#28972) 2023-12-26 15:51:08 +08:00
3ea9ff7d4a [opt](Nereids) let inverted index work with top opt (#29000) 2023-12-26 15:50:56 +08:00
f371528ada [fix](Nereids) generating function should not folding to NullLiteral (#29003)
should not fold table generating function to null when do constant folding.
we should remove Generate node and replaced it by project later.
2023-12-26 15:25:19 +08:00
983f851fb8 [fix](Nereids) runtime filter push down failed (#28997)
project child not always NamedExpression

failed msg
```
org.apache.doris.common.AnalysisException: errCode = 2, detailMessage = class org.apache.doris.nereids.trees.expressions.literal.VarcharLiteral cannot be cast to class org.apache.doris.nereids.trees.expressions.NamedExpression (org.apache.doris.nereids.trees.expressions.literal.VarcharLiteral and org.apache.doris.nereids.trees.expressions.NamedExpression are in unnamed module of loader 'app')
    at org.apache.doris.qe.StmtExecutor.executeByNereids(StmtExecutor.java:623) ~[classes/:?]
    at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:478) ~[classes/:?]
    at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:457) ~[classes/:?]
    at org.apache.doris.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:245) ~[classes/:?]
    at org.apache.doris.qe.MysqlConnectProcessor.handleQuery(MysqlConnectProcessor.java:166) ~[classes/:?]
    at org.apache.doris.qe.MysqlConnectProcessor.dispatch(MysqlConnectProcessor.java:193) ~[classes/:?]
    at org.apache.doris.qe.MysqlConnectProcessor.processOnce(MysqlConnectProcessor.java:246) ~[classes/:?]
    at org.apache.doris.mysql.ReadListener.lambda$handleEvent$0(ReadListener.java:52) ~[classes/:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
    at java.lang.Thread.run(Thread.java:829) ~[?:?]
Caused by: java.lang.ClassCastException: class org.apache.doris.nereids.trees.expressions.literal.VarcharLiteral cannot be cast to class org.apache.doris.nereids.trees.expressions.NamedExpression (org.apache.doris.nereids.trees.expressions.literal.VarcharLiteral and org.apache.doris.nereids.trees.expressions.NamedExpression are in unnamed module of loader 'app')
    at org.apache.doris.nereids.trees.plans.physical.PhysicalSetOperation.pushDownRuntimeFilter(PhysicalSetOperation.java:178) ~[classes/:?]
    at org.apache.doris.nereids.trees.plans.physical.PhysicalHashJoin.pushDownRuntimeFilter(PhysicalHashJoin.java:229) ~[classes/:?]
    at org.apache.doris.nereids.processor.post.RuntimeFilterGenerator.pushDownRuntimeFilterCommon(RuntimeFilterGenerator.java:386) ~[classes/:?]
```
2023-12-26 14:13:43 +08:00
10623ad671 [improvement](jdbc catalog) Optimize connection pool caching logic (#28859)
In the old caching logic, we only used jdbcurl, user, and password as cache keys. This may cause the old link to be still used when replacing the jar package, so we should concatenate all the parameters required for the connection pool as the key.
2023-12-26 14:12:37 +08:00
a8688509c9 [opt](Nereids) support cast bewteen numeric and boolean in FE (#29006) 2023-12-26 14:11:34 +08:00
00bb099fdd [hotfix](jdbc catalog) fix load table and column names npe (#28865)
This fix is for the npe situation that occurs when FE of non-Master nodes initializes Jdbc Catalog metadata.
2023-12-26 14:11:14 +08:00
509cfea99a [feature](Load)(step2)support nereids load job schedule (#26356)
We will  Integrate new load job manager into  new job scheduling framework so that the insert into task can be scheduled after the broker load sql  is converted to insert into TVF(table value function) sql.

issue: https://github.com/apache/doris/issues/24221

Now support:
1. load data by tvf insert into sql, but just for simple load(columns need to be defined in the table)
2. show load stmt
- job id, label name, job state, time info
- simple progress
3. cancel load from db
4. support that enable new load through Config.enable_nereids_load
5. can replay job after restarting doris

TODO:
- support partition insert job
- support show statistics from BE
- support multiple task and collect task statistic
- support transactional task
- need add ut case
2023-12-26 12:29:05 +08:00
b8fd55b0cf [feature](Nereids) support table valued function http_stream (#29004) 2023-12-26 11:47:04 +08:00
065eb9a72b [feature](nereids)support partition property in nereids (#28982) 2023-12-26 11:19:04 +08:00
f30e50676e [opt](scanner) optimize the number of threads of scanners (#28640)
1. Remove `doris_max_remote_scanner_thread_pool_thread_num`, use `doris_scanner_thread_pool_thread_num` only.
2. Set the default value `doris_scanner_thread_pool_thread_num` as `std::max(48, CpuInfo::num_cores() * 4)`
2023-12-26 10:24:12 +08:00
7434de9ed8 [improvement](nereids) Get partition related table disable nullable field and complete agg matched pattern mv rules. (#28973)
* [improvement] (nereids) Get partition related table disable nullable field and modify regression test, complete agg mv rules.

* make filed not null to create partition mv
2023-12-26 00:29:42 +08:00
2aea47c0a9 [fix](mtmv)add log for resolve pending task (#28999)
* add lock for resolve pending task

* add lock for resolve pending task
2023-12-26 00:29:28 +08:00
17f3ca7349 [fix](planner)should save original select list item before analyze (#28187)
* [fix](planner)should save original select list item before analyze

* fix test case

* fix failed case
2023-12-25 23:06:45 +08:00
c2c5df9341 [opt](assert_num_rows) support filter in AssertNumRows operator and fix some explain (#28935)
* NEED

* Update pipeline x

* fix pipelinex compile
2023-12-25 22:47:23 +08:00