Commit Graph

7417 Commits

Author SHA1 Message Date
8543167195 [Nereids](Variant) Implement variant type and support new sub column access method (#30348)
* [Nereids](Variant) Implement variant type in Variant and support new sub column access method

The query SELECT v["a"]["b"] from simple_var WHERE cast(v["a"]["b"] as int) = 1

1. During the binding stage, the expression element_at(var, "xxx") is transformed into a SlotReference with a specified path. This conversion is tracked in the StatementContext, where the parent slot is the primary key and the paths are secondary keys. This structure, known as subColumnSlotRefMap in the StatementContext, helps to eliminate duplicates of the same slot derived from identical paths.

2. A new rule, BindSlotWithPaths, is introduced in the analysis stage. This rule is responsible for converting slots with paths into their respective slot suppliers. To ensure that slots with paths are correctly associated with the appropriate LogicalOlapScan, an additional mapping, slotToRelation, is added to the StatementContext. This mapping links the top-level slot to its corresponding relation (i.e., LogicalOlapScan). Consequently, subsequent slots with paths can determine the correct LogicalOlapScan to merge with and modify accordingly.
2024-01-27 09:09:02 +08:00
Pxl
1c449d3204 [Improvement](priv) move check priv out of analyze (#30403)
move check priv out of analyze
2024-01-27 09:09:02 +08:00
9aa3cdfa1b Change auto analyze max table width default value to 100. (#30395) 2024-01-27 09:08:29 +08:00
4bdc2cde2a [chore](Nereids) enable nereids if update from doris 1.x (#30369) 2024-01-27 09:08:29 +08:00
a954bab81a [fix](function) fix error result in time_to_sec and timediff (#30248) 2024-01-27 09:08:29 +08:00
09ae37dcc5 [pipelineX](localexchange) Adjust local exchange plan rule (#30393) 2024-01-27 09:08:29 +08:00
9857a38b63 [fix](fe) Fix BackendHbResponse serialization compatibility problem (#30441)
* Similar to https://github.com/apache/doris/pull/30337

* Between branch-1.2-lts and branch-2.1, `FrontendHbResponse` has upgrade
  compatiblity problem, because `arrowFlightSqlPort` field, only metaVerserion
  less than FeMetaVersion.VERSION_121 will call `BackendHbResponse.readField`

* Introduced by https://github.com/apache/doris/pull/24314
2024-01-26 17:58:14 +08:00
2ae02efd46 [BugFix](MutilCatalog) fix local file system unavailable in iceberg hadoop catalog (#26769)
create catalog in local test/dev env like below:
create catalog iceberg PROPERTIES ('type'='iceberg','iceberg.catalog.type' = 'hadoop', 'warehouse' = '/export/workspace/warehouse');

we will get error: "Unrecognized 'warehouse' location format because name service is required."
2024-01-25 23:56:39 +08:00
7938531d1e [feature](load) enable memtable on sink node by default (#30372) 2024-01-25 21:37:33 +08:00
ce0b4fed6d [feat](log) Update RestApiExceptionHandler log level from debug to warn (#30306)
* When meeting RestApiExceptionHandler, we have insufficient information
  for finding out the call stack
2024-01-25 21:37:33 +08:00
3ffd5b8e9a [fix](Nereids) some special expression should not be constant (#30305) 2024-01-25 21:37:10 +08:00
4681958cf7 [improvement](replica) set replica drop write editlog (#30345)
* set replica drop write editlog

* update test
2024-01-25 21:37:10 +08:00
e8a20d8899 [fix](meta) remove default_cluster prefix in recover db log (#30350) 2024-01-25 21:33:51 +08:00
92d4ce31ae [improve](routine-load) optimize error msg when failed to fetch Kafka info #30298 2024-01-25 21:33:50 +08:00
0f81ecf415 [feat](Nereids): eliminate inner join by pk fk when comparing mv (#30258) 2024-01-25 21:33:50 +08:00
0a5c375068 [fix](Nereids): when predicate contains right output, don't convert outer to anti join (#30276) 2024-01-25 21:33:50 +08:00
bb021668c9 [feat](log) Add more log about cost time for dropTable (#30284)
* In some p0 test cases we have found dropTable cost more than
  5 seconds, so add more time cost log
2024-01-25 14:32:39 +08:00
f87484d6b3 [fix](Nereids) fix create array function type coercion (#30329) 2024-01-25 13:24:52 +08:00
081da1299a [fix](fe) Fix FrontendHbResponse serialization compatibility problem (#30337)
* Between branch-1.2-lts and branch-2.1, `FrontendHbResponse` has upgrade
  compatiblity problem, because `arrowFlightSqlPort` field, only metaVerserion
  less than FeMetaVersion.VERSION_121 will call `FrontendHbResponse.readField`

* Introduced by https://github.com/apache/doris/pull/24314
2024-01-25 13:24:52 +08:00
Pxl
5b462194d1 [Feature](materialized-view) support rewrite case when to if on legacy planner to make mv work (#30320)
support rewrite case when to if on legacy planner to make mv work
2024-01-25 13:24:52 +08:00
3d22f9cfc8 [feature](replica) Add drop replica safely on backend (#30303) 2024-01-25 13:24:52 +08:00
bee6ae73c7 [minor](Nereids): enable PushDownTopNDistinctThroughJoin (#30275) 2024-01-25 13:24:52 +08:00
2e6a00690f [Fix](smooth-upgrade) fix unnecessary high version of smooth upgrade (#30283)
fix unnecessary high version of smooth upgrade
2024-01-25 13:24:09 +08:00
0287651114 [fix](char) fix char column type not check lenght (#30266) 2024-01-25 13:24:09 +08:00
86d7a8be44 [improvement](statistics nereids)Nereids support select mv. (#30267) 2024-01-25 13:24:09 +08:00
63cf2777f9 [improvement](statistics)Catch load column stats exception, avoid print too much stack info to fe.out #30315 2024-01-25 13:24:09 +08:00
83ea486b15 [fix](Nereids): Except just can merge with left deep shape (#30270) 2024-01-25 13:24:09 +08:00
Pxl
7e60369ba2 [Feature](materialized-view) support create mv with count(*) (#30313)
support create mv with count(*)
2024-01-25 13:24:09 +08:00
2951f9a2c7 [fix](Nereids) relation in constraints should be multi parts (#30293) 2024-01-25 13:24:09 +08:00
7e1a986fa1 [feat](Nereids): eliminate left outer join by unique when comparing mv (#30228) 2024-01-25 13:24:09 +08:00
cd70f45ce2 [test](ut) added UT cases for show build index (#29561)
Added UT case for show build index flow
2024-01-25 13:24:09 +08:00
ca5a314765 [fix](function) make STRLEFT and STRRIGHT and SUBSTR function DEPEND_ON_ARGUMENT (#28352)
make STRLEFT and STRRIGHT function DEPEND_ON_ARGUMENT
2024-01-25 13:23:59 +08:00
88fdb2677d [fix](catalog) fix Uninitialized connection pool parameters in hmsjdbcclient (#30262) 2024-01-25 13:23:59 +08:00
2f68aac885 [Improvement](Nereids) Support to query rewrite by materialized view when join input has aggregate (#30230)
Support to query rewrite by materialized view when join input has aggregate, the aggregate should be simple
For example as following:
The materialized view def is 
>            select
>              l_linenumber,
>              count(distinct l_orderkey),
>              sum(case when l_orderkey in (1,2,3) then l_suppkey * l_linenumber else 0 end),
>              max(case when l_orderkey in (4, 5) then (l_quantity *2 + part_supp_a.qty_max) * 0.88 else 100 end),
>              avg(case when l_partkey in (2, 3, 4) then l_discount + o_totalprice + part_supp_a.qty_sum else 50 end)
>            from lineitem
>            left join orders on l_orderkey = o_orderkey
>            left join 
>              (select ps_partkey, ps_suppkey, sum(ps_availqty) qty_sum, max(ps_availqty) qty_max,
>                min(ps_availqty) qty_min,
>                avg(ps_supplycost) cost_avg
>                from partsupp
>                group by ps_partkey,ps_suppkey) part_supp_a
>              on l_partkey = part_supp_a.ps_partkey
>                and l_suppkey = part_supp_a.ps_suppkey
>            group by l_linenumber;

when query is like following, it can be rewritten by mv above
>            select
>              l_linenumber,
>              sum(case when l_orderkey in (1,2,3) then l_suppkey * l_linenumber else 0 end),
>              avg(case when l_partkey in (2, 3, 4) then l_discount + o_totalprice + part_supp_a.qty_sum else 50 end)
>            from lineitem
>            left join orders on l_orderkey = o_orderkey
>            left join 
>              (select ps_partkey, ps_suppkey, sum(ps_availqty) qty_sum, max(ps_availqty) qty_max,
>                min(ps_availqty) qty_min,
>                avg(ps_supplycost) cost_avg
>                from partsupp
>                group by ps_partkey,ps_suppkey) part_supp_a
>              on l_partkey = part_supp_a.ps_partkey
>                and l_suppkey = part_supp_a.ps_suppkey
>            group by l_linenumber;
2024-01-25 13:23:59 +08:00
f85b04c2c6 [fix](datatype) fixed decimal type implicit cast handling in BinaryPredicate (#30181) 2024-01-25 13:23:12 +08:00
79d178ca54 [test](ut) added UT cases for show create materialized view (#29563) 2024-01-25 13:23:12 +08:00
c7360fd014 [feature](function) support ip function named ipv4_cidr_to_range(addr, cidr) (#29819)
* support ip function ipv4_cidr_to_range

* fix ipv4_cidr_to_range function only support ipv4 type
2024-01-24 10:02:03 +08:00
dde5ed5231 [fix](fe-memory) Fix fe schema change high memory usage (#30231)
Signed-off-by: Jack Drogon <jack.xsuperman@gmail.com>
2024-01-24 10:02:03 +08:00
040ace126c [fix](Nereids) group by key should be required (#30273) 2024-01-24 10:01:14 +08:00
2b3e7589b7 [fix](nereids)group by expr may be lost in EliminateGroupByConstant rule (#30274) 2024-01-24 10:01:14 +08:00
4af3fd2a2e [fix](Nereids) fix bug in case-when/if stats estimation (#30265) 2024-01-24 10:00:25 +08:00
72f4e7e2d1 [security] Don't print token (#30227) 2024-01-24 09:59:45 +08:00
b98acf2d90 [fix](mtmv)mtmv default open enableNereidsDML #30235 2024-01-24 09:59:45 +08:00
4cbacb5b39 [enhancement](recover) Support skipping bad tablet in select by session variable (#30241)
In some scenarios, user has a huge amount of data and only a single replica was specified when creating the table, if one of the tablet is damaged, the table will not be able to be select. If the user does not care about the integrity of the data, they can use this variable to temporarily skip the bad tablet for querying and load the remaining data into a new table.
2024-01-24 09:59:43 +08:00
1b9f1f6483 [feature](Planner): Push down TopNDistinct through Join (#30216)
Push down TopNDistinct through Outer/Cross Join
2024-01-24 09:59:13 +08:00
f4a10c3fbc [enhancement](Nereids): add builder for hyper graph (#30061) 2024-01-24 09:58:31 +08:00
9a8bcf2b1b [fix](planner) row policy rewriter generate wrong plan on join table ref (#30233) 2024-01-23 14:11:54 +08:00
bc03354be8 [improvement](jdbc catalog) Optimize the Close logic of JDBC client (#30236)
Optimize the Close logic of the JDBC client so that the Jdbc Catalog can correctly cancel the running query when the query is cancelled.
2024-01-23 13:22:14 +08:00
2499ca6d89 [Enhancement](plan) Optimize preagg for aggregate function (#28886) 2024-01-23 13:22:14 +08:00
Pxl
1e74ad3f3b [Feature](materialized-view) support predicate apprear both on key and value mv column (#30215)
support predicate apprear both on key and value mv column
2024-01-23 13:22:14 +08:00