Commit Graph

1778 Commits

Author SHA1 Message Date
64ea450ac7 [enhancement](Nereids): add Unit Test for PushdownTopNThroughJoin (#26447) 2023-11-06 16:54:36 +08:00
2cc68381ec [feature](binlog) Add ingest_binlog/http_get_snapshot limit download speed && Add async ingest_binlog (#26323) 2023-11-06 11:14:44 +08:00
11059ca4ed [fix](nereids)SimplifyRange rule may mess up and/or predicate (#26304) 2023-11-03 20:38:07 +08:00
8c3e173553 [fix](nereids)fix bug of select mv in nereids (#26235)
* revert some change from pr26192
* disable some case for nereids
2023-11-03 20:28:55 +08:00
b19198b305 [opt](Nereids) Support to get notdeterministic functions and base tables from plan (#26120)
Support to get notdeterministic functions and  base tables from plan.
These are implemented by Plan Visitor

**table collect useage example as following:**
```
TableCollectorContext collectorContext =
    new PlanVisitors.TableCollectorContext(Sets.newHashSet(TableType.OLAP));
physicalPlan.accept(PlanVisitors.TABLE_COLLECTOR, collectorContext);
```
`collectorContext.getCollectedTables()` has the tables

**nondeterministic functions collect useage example as following:**
```
List<Expression> functionCollectResult = new ArrayList<>();
plan.accept(PlanVisitors.NondeterministicCollector.INSTANCE, collectResult);
```
`functionCollectResult` has the nondeterministic functions
2023-11-03 04:37:46 -05:00
7a0ee04deb [feature](executor)refactor show workload group schema #26100
2 add query queue info
2023-11-03 17:34:48 +08:00
c46fa339d0 [feature](Nereids): make count() avaliable for all data type (#26180)
make count() avaliable for all data type
2023-11-02 17:20:24 +08:00
f1362e0d1e [fix](planner) Fix sample partition table (#25912)
In the past, two conditions needed to be met when sampling a partitioned table: 1. Data is evenly distributed between partitions; 2. Data is evenly distributed between buckets. Finally, the number of sampled rows in each partition and each bucket is the same.

Now, sampling will be proportional to the number of partitioned and bucketed rows.
2023-11-02 15:52:48 +08:00
Pxl
3004dbbc78 [Bug](materialized-view) SelectMaterializedIndexWithAggregate do not … (#26192)
SelectMaterializedIndexWithAggregate do not change plan when match base index
2023-11-02 14:12:22 +08:00
3ce1bdae84 [Feature](Nereids) Add explain tree functionality. (#25446)
Add explain tree functionality which contains fragment ids for profile analysis.
```
mysql> explain tree select sum(l_orderkey) from lineitem, orders where l_orderkey = o_orderkey;
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Explain String(Nereids Planner)                                                                                                                                                                                   |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| [414]:[414: ResultSink]||[Fragment: 0]||VRESULT SINK||   MYSQL_PROTOCAL||                                                                                                                                         |
| --[414]:[414: VAGGREGATE (merge finalize)]||[Fragment: 0]||cardinality=1||                                                                                                                                        |
| ----[411]:[411: VEXCHANGE]||[Fragment: 0]||offset: 0||                                                                                                                                                            |
| ------[411]:[411: DataStreamSink]||[Fragment: 1]||STREAM DATA SINK||  EXCHANGE ID: 411||  UNPARTITIONED                                                                                                           |
| --------[408]:[408: VAGGREGATE (update serialize)]||[Fragment: 1]||cardinality=1||                                                                                                                                |
| ----------[402]:[402: VHASH JOIN]||[Fragment: 1]||join op: INNER JOIN(PARTITIONED)[]||cardinality=593,132,346||                                                                                                   |
| ------------[392]:[392: VEXCHANGE]||[Fragment: 1]||offset: 0||                                                                                                                                                    |
| --------------[392]:[392: DataStreamSink]||[Fragment: 2]||STREAM DATA SINK||  EXCHANGE ID: 392||  HASH_PARTITIONED                                                                                                |
| ----------------[386]:[386: VHIVE_SCAN_NODE]||[Fragment: 2]||table: lineitem||inputSplitNum=144, totalFileSize=16632158739, scanRanges=144||partition=1/1||cardinality=600037902, numNodes=1||pushdown agg=NONE|| |
| ------------[399]:[399: VEXCHANGE]||[Fragment: 1]||offset: 0||                                                                                                                                                    |
| --------------[399]:[399: DataStreamSink]||[Fragment: 3]||STREAM DATA SINK||  EXCHANGE ID: 399||  HASH_PARTITIONED                                                                                                |
| ----------------[393]:[393: VHIVE_SCAN_NODE]||[Fragment: 3]||table: orders||inputSplitNum=48, totalFileSize=3984213353, scanRanges=48||partition=1/1||cardinality=150000000, numNodes=1||pushdown agg=NONE||      |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12 rows in set (0.04 sec)
```
2023-11-02 14:06:24 +08:00
6010be88bd [enhancement](Nereids): optimize GroupExpressionMatching (#26196) 2023-11-01 19:05:08 +08:00
683832230c [Performance](Nereids): pass ConnectContext to avoid ThreadLocal.get() (#26165) 2023-11-01 16:16:42 +08:00
268c69971d [fix](stats) Store max/min by base64 2023-11-01 14:31:35 +08:00
18dabe7386 [fix](compile) fe compile failed when generate doc and FE UT failed (#26164)
1. FE could not compile because below error. Intro by PR #25933
```
[INFO] --- exec:3.1.0:java (doc) @ fe-core ---
...
Failed to generate doc for ignoreRuntimeFilterIds
```

2. fix UT bugs intro by below PRs
> - #25951
> - #26031

3. because fe could not compile, FE UT CI do not work well. So, some UT failed be introduced by the PRs merged after PR #25933 merged. So this PR revert them to fix FE UT

> - Revert "[Bug](materialized-view) SelectMaterializedIndexWithAggregate do not change plan > when match ba… (#26145)"
> This reverts commit 8d7abf60f94d2d1208b71e96b9290ea02122b8d8.

> - Revert "[enhancement](Nereids): optimize GroupExpressionMatching (#26130)"
> This reverts commit 19122b55cd95af097b4ef7b6eb809f37db29765f.

> - Revert "[Performance](Nereids): optimize GroupExpressionMatching (#26084)"
> This reverts commit 0d956e90cf920039b8baa79c170a298be56a128d.
2023-10-31 20:50:44 -05:00
08c78a1135 [Feature](Job)Support manual and refactor some execution logic (#26082)
Supports manually triggered JOBs and Tasks
Optimize JOB&TASK display logic
Refactor the executor to support context passing
2023-10-31 20:35:55 +08:00
0449a240f4 [Fix](from_unixtime) Keep consistent with MySQL & bug fix (#25966)
Bug fix: implicit convert from int32 -> int64 makes negative time stamp valid, so change signature to int64
Consistent: keep consistent with mysql.
2023-10-31 14:31:24 +08:00
588d4c150f [bugfix](DateTimeV2Literal) The start and end dates of daylight saving time vary from year to year, which can lead to different test results at different times (#26083)
The start and end dates of daylight saving time vary depending on the year. Daylight saving time usually starts on the last Sunday in March and ends on the last Sunday in October. During this time, the offset for Europe/London is UTC+1. Outside of daylight saving time, the Europe/London offset is UTC+0.
2023-10-31 13:39:38 +08:00
b3f31f9e1a [enhancement](Nereids): speedup graphsimplifier (#26066)
1. fix some bugs in graphsimplifier
2. remove some time costed code
3. add shape check for graphsimplifier
2023-10-30 20:13:13 +08:00
2a74d9a8c8 [feature](mtmv)(1)remove old mtmv code (#26041)
remove old mtmv code,we will implement mtmv in a new way
2023-10-30 19:49:45 +08:00
365fdd2f4d [feature](backup) add property to remove snapshot before creating repo (#25847)
Doris is not responsible for managing snapshots, but it needs to clear all
snapshots before doing backup/restore regression testing, so a property is
added to indicate that existing snapshots need to be cleared when creating a
repo.

In addition, a regression test case for backup/restore has been added.
2023-10-27 21:03:26 +08:00
d953e5c8f4 [feature](Nereids): Convert topn(x, 1) to max(x) (#26004) 2023-10-27 18:45:21 +08:00
4aebe879a6 [feature](Nereids) support complex project in graph simplifier (#26002)
Reject the edge which has an alias when ordering edge
2023-10-27 14:38:54 +08:00
deb1ad8264 [enhancement](Nereids) add mode no_backslash_escapes (#25822)
add mode [no_backslash_escapes](https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html)
2023-10-27 00:43:32 -05:00
1e39636fbf [fix](nereids) fix wrong result precision for add/sub (#25751) 2023-10-26 08:28:34 -05:00
2679fa4ea7 [improvement](tablet clone) furthur repair replicas should be check even if they are versions catchup (#25551) 2023-10-26 18:14:40 +08:00
1ba8a9bae4 [feature-wip](executor)Fe send topic info to be (#25798) 2023-10-26 15:52:48 +08:00
af3e6f604a [fix](nereids) prune partition bug in pattern ColA <> ColB #25769
in predicate rewrite phase, we eliminate some conjuncts which contains un-interested columns.
for example: T (a, b) partition by (a)
interest cols: a
uninsterest cols: b
for parition prune,
filter "a=1 and a>b" is equivalent to "a=1",
filter "a=1 or a>b" is equivalent to "TRUE"
2023-10-26 12:06:37 +08:00
f322ad277d [fix](nereids) PushdownAliasThroughJoin may lost required columns from parent node (#25835) 2023-10-25 22:03:41 -05:00
0dcbc5ee18 [fix](backup) missing use_path_style properties for minio (#25803)
Follow #25496.
In #25496, I fixed the issue that the aws s3 properties are invalid when passing from FE to BE.
But it missed the `use_path_style` property, which is useful for minio access.
This PR fix it.
2023-10-26 01:19:28 +08:00
018abdb679 [fix](fe-ut) fix npe of fe ut (#25904) 2023-10-25 19:56:00 +08:00
3e21e4bdc2 [feature](CANCEL-ALTER-SYSTEM)decommission backend by ids (#25441)
Issue Number: close #23636
2023-10-25 19:49:38 +08:00
a919ef618d [fix](planner) Fix select table tablet not effective (#25378)
Fix select table tablet not effective, table distributed by random.
If tabletID specified in query does not exist in this partition, skip scan partition.
2023-10-25 18:02:27 +08:00
20fa1eff65 [enhancement](Nereids) Filter no data partition after partition prune (#25456) 2023-10-25 04:37:10 -05:00
8a03a07339 [feature](Nereids): pull up Project under Limit/TopN (#25866)
If project contains expression-eval, we need pull up through limit, it can improve performance.
2023-10-25 16:44:32 +08:00
4f17c2a8b1 [feature](alter backends)backend modify & drop & decommission by ids (#25444) 2023-10-25 14:32:30 +08:00
440345169a [Fix](Nereids) fix column statistic derive in outer join estimation (#25586)
Problem:
When join estimation, upper join output slot statistic ndv would go wrong
Example:
we have two table:
tableA (a1[ndv = 10.0]) tableB(b1[ndv = 0.0], b2[ndv = 10.0])
tableA left join tableB on A.a1 = B.b1. which B.b1 with ndv zero.
the problem is after join estimation, B.b2 changed to 1.0.
Reason:
When estimating outer join, we can assume it behave like inner join. But we estimation then like inner join do
Solved:
When estimation outer join, output slot would update seperatly.
2023-10-24 22:25:20 +08:00
4cd0dae4b3 [improvement](auth) support show all properties (#25645)
support `show all properties`
2023-10-24 17:27:59 +08:00
a2d82220e2 [fix](tablet clone) clone add replica prefer choose the same medium (#25640) 2023-10-24 15:18:32 +08:00
3c0fd5029d [fix](Nereids): support complex project in PushdownTopNThroughJoin (#25748) 2023-10-24 14:52:30 +08:00
09b2593035 [enhancement](Nereids): when rule return original plan, skip copyIn() (#25730) 2023-10-23 12:38:43 +08:00
13780e4827 [fix](nereids)(create-table) fix bug that replication num is not set when create table with no property (#25651)
When executing create partitioned table with Nereids, and replication_num property is not set,
the replication number will be 0, so the tablet will has no replica.
2023-10-21 23:15:08 +08:00
3ffc6f0835 [fix](Nereids) should do read lock on table being insert when analyze (#25619) 2023-10-20 08:09:19 -05:00
ea6309059b [improvement](outfile)support underscore prefix when select outfile (#25395) 2023-10-20 19:56:55 +08:00
fe52988ef8 [improvement](tablet clone) tablet balance ignore deleted partitions (#25499) 2023-10-20 19:40:44 +08:00
ef6bf067ca [refactor](delete) refactor FE DeleteHandler related logic (#25497) 2023-10-20 18:19:56 +08:00
3d1206d325 [date](fix) modify push-down predicate for datev1 type (#25571)
For comparison predicate, two arguments must be cast to datetime and push down to storage if either one is date type. This PR disables predicate push-down for this case.
2023-10-19 14:18:27 +08:00
db16a14970 [fix](backup) fix backup fail on s3 (#25496)
The s3 client properties are not passed to BE correctly.
The test cases will be added later
2023-10-18 13:52:12 +08:00
4d12d8885e [feature](Nereids): graphSimplifier should compare edge1BeforeEdge2 and edge2BeforeEdge1 (#25416) 2023-10-17 14:10:21 +08:00
410441b516 [enhancement](Nereids): remove LAsscom in Bushy Tree RuleSet (#25465)
- Bushy Tree RuleSet don't need LAsscom
- fix bug: rule pattern shouldn't use same name
2023-10-17 11:22:52 +08:00
a194a15442 [improvement](tablet schedule) colocate balance between all groups (#23543) 2023-10-17 09:33:52 +08:00