Commit Graph

291 Commits

Author SHA1 Message Date
Fy
c0b56400ed [feature](nereids)support one expression-rewrite rule: inPredicateToEqualTo (#12046)
Add one expression rewrite rule:
rewrite InPredicate to an EqualTo Expression, if there exists exactly one element in InPredicate Options.

Examples:
1. where A in (x) ==> where A = x
2. where A not in (x) ==> where not A = x
2022-08-29 15:54:06 +08:00
3ca6f34c87 [fix](view) Fix view not showing specific lengths for varchar type (#12107) 2022-08-29 12:09:48 +08:00
Pxl
7829c21b20 [Bug](lateral-view) fix some conjunct not work on lateral view #12105 2022-08-29 12:08:20 +08:00
44c4a45f72 [fix](array-type) fix the wrong data when use stream load to import '\N' (#12102)
Co-authored-by: hucheng01 <hucheng01@baidu.com>
2022-08-29 09:53:37 +08:00
2f88dfd7c5 [regression-test](unique) Add tpch sf0.1 test under unique table with zstd (#12122) 2022-08-27 21:39:09 +08:00
f3f17eb222 [Bugfix](load) fix be will coredump when parsing malformed json file using simdjson (#12062)
* [Bugfix](load) fix be will coredump when parsing malformed json file using simdjson
2022-08-26 18:01:19 +08:00
fba2658a1d [fix](array-type) fix the be core dump when use collect_list result to insert (#12045)
Co-authored-by: hucheng01 <hucheng01@baidu.com>
2022-08-26 18:00:43 +08:00
2b3a5b5fdd [fix](array-type) add ARRAY_BOOLEAN support for lots of array functions #12079
Co-authored-by: cambyzju <zhuxiaoli01@baidu.com>
2022-08-26 18:00:29 +08:00
Pxl
3af0745c8f [Bug](function) fix aggFnParams set not correct (#12006) 2022-08-26 14:29:56 +08:00
7b83308ffc [fix](planner) fix rewrite subquery error (#12075) 2022-08-26 14:29:14 +08:00
89d6f1231f [fix](projection)join node should always output at least one column (#12080) 2022-08-26 12:15:51 +08:00
ccff3f5711 [bugfix](light weight schema change) support delete condition in schema change (#11869)
* [bugfix](light weight schema change) support delete condition in schema change


Co-authored-by: yiguolei <yiguolei@gmail.com>
2022-08-26 11:45:55 +08:00
0f4a1e811b [Enhancement](table_function) table function node enhancement (#12038)
* table function node enhancement

* also avoid copy for non-vec table function node

* fix table function node output slots calculation while lateral view involves subquery

Co-authored-by: cambyzju <zhuxiaoli01@baidu.com>
2022-08-26 10:37:15 +08:00
8deead66cd [feature-wip](unique-key-merge-on-write) add pk_uk correctness check case (#12060)
Co-authored-by: yixiutt <yixiu@selectdb.com>
2022-08-26 09:38:38 +08:00
2e216b9359 [fix](ut) fix ctas regression test case (#12076) 2022-08-26 08:12:11 +08:00
588dc5f12a [feature](cold_on_s3) Show remote data usage via SHOW BACKENDS and SHOW TABLETS statements (#11450) 2022-08-25 15:36:15 +08:00
aec24d4da1 [feature](http) get create table stmt for a given query (#11979)
This API can help user to get all create table statement of a given SQL.
So that it will be easier to run the case in other Doris cluster.
See document for details
2022-08-25 15:02:05 +08:00
b505d6cf66 [improvement](doc test) add docs for window_funnel and refine tests (#12059)
add docs for window_funnel and refine tests
2022-08-25 11:26:40 +08:00
6e6de1853c [Bug](ctas): Ctas use default DEFAULT CURRENT_TIMESTAMP insert error (#12056) 2022-08-25 09:00:00 +08:00
0a450d96a5 [Fix] fix cast(array<not_null> as array<>) causes be core dump (#11649) 2022-08-24 22:51:30 +08:00
ec6400f0dc [feature-wip](unique-key-merge-on-write) add regression case (#11731)
Co-authored-by: yixiutt <yixiu@selectdb.com>
2022-08-24 21:27:58 +08:00
5219d2aab0 [fix](union)the result exprs of union node should substitute by child node's smap (#11933)
union node's result exprs should be substitued by child node's smap first, then the following "computePassthrough" method would have correct information to do its job.
2022-08-24 19:43:40 +08:00
d87ab69ead [bug](vectorized) fix bug of tuple is null null side do not set (#12012) 2022-08-24 16:19:43 +08:00
8b4f693ad5 [fix](grouping)fix grouping function bug (#11861) 2022-08-24 15:05:25 +08:00
81b6c8d9f9 [fix](sort)the sort expr nullable info is wrong in some case (#12003) 2022-08-24 14:26:09 +08:00
52be50972f [regression-test](p0) add case for window function at min/max when vectorized (#11989)
Co-authored-by: xiaojunjie <xiaojunjie@baidu.com>
2022-08-24 14:20:18 +08:00
f737ff742e [enhancement](Nereids)support max function (#11795)
- add aggregate function max to Nereids
- add function P0 regression test for Nereids
2022-08-24 10:54:51 +08:00
3abc4f357f [Bug](bitmap) intersect_count function use in string cause ASAN error (#11936) 2022-08-24 08:51:53 +08:00
568f596330 [fix](agg)grouping_id function in having is not correctly substituted (#11834) 2022-08-24 08:50:28 +08:00
477899af8e [fix](having) Fix the with as clause containing having caused a null pointer (#12007) 2022-08-24 08:48:49 +08:00
c72a84f7c5 [fix](join)the hash join node would get the wrong nullable if the child node is cross join node (#11971)
* [fix](join)the hash join node would get the wrong nullable if the child node is cross join node
2022-08-24 08:47:52 +08:00
55fdb555be [bugfix](dict) fix coredump of dict colum range predicate when there is null value (#11967) 2022-08-23 16:07:48 +08:00
05da3d947f [feature-wip](new-scan) add scanner scheduling framework (#11582)
There are currently many types of ScanNodes in Doris. And most of the logic of these ScanNodes is the same, including:

Runtime filter
Predicate pushdown
Scanner generation and scheduling
So I intend to unify the common logic of all ScanNodes.
Different data sources only need to implement different Scanners for data access.
So that the future optimization for scan can be applied to the scan of all data sources,
while also reducing the code duplication.

This PR mainly adds 4 new class:

VScanner
All Scanners' parent class. The subclasses can inherit this class to implement specific data access methods.

VScanNode
The unified ScanNode, and is responsible for common logic including RuntimeFilter, predicate pushdown, Scanner generation and scheduling.

ScannerContext
ScannerContext is responsible for recording the execution status
of a group of Scanners corresponding to a ScanNode.
Including how many scanners are being scheduled, and maintaining
a producer-consumer blocks queue between scanners and scan nodes.

ScannerContext is also the scheduling unit of ScannerScheduler.
ScannerScheduler schedules a ScannerContext at a time,
and submits the Scanners to the scanner thread pool for data scanning.

ScannerScheduler
Unified responsible for all Scanner scheduling tasks

Test:
This work is still in progress and default is disabled.
I tested it with jmeter with 50 concurrency, but currently the scanner is just return without data.
The QPS can reach about 9000.
I can't compare it to origin implement because no data is read for now. I will test it when new olap scanner is ready.
Co-authored-by: morningman <morningman@apache.org>
2022-08-23 08:45:18 +08:00
caec862d91 [feature](Nereids)add type coercion rule for nereids (#11802)
- add an interface ExpectsInputTypes to Expression
- add an interface ImplicitCastInputTypes to Expression
- add a Expression rewrite rule for type coercion
- add a Check Analysis Rule to check whether Plan is Semantically correct

if Expression implements ImplicitCastInputTypes, type coercion rule will automatic rewrite its children that casting it to the most suitable type.
If Expression implements ExpectsInputTypes, Check Analysis will check its children's type whether accepted by expects input types.
2022-08-22 23:06:02 +08:00
68e2b3db44 [regression](rollup) Modify test case (#11960) 2022-08-22 19:18:35 +08:00
Pxl
192cdd4d76 [Bug](cast) change binary predicate finally cast to varchar (#11796) 2022-08-21 10:13:47 +08:00
25b427d0c6 [Bugfix](inpredicate) fix in predicate in group by clause may cause NPE (#11886)
* [bug](inpredicate) fix in predicate in group by clause may cause NPE
2022-08-21 10:03:30 +08:00
d83c11a032 [regression](datev2) add schema change cases for datev2/datetimev2 (#11924) 2022-08-19 21:29:24 +08:00
ffe7af49c8 [fix](array-type) run 'show create table' return null (#11912)
Co-authored-by: hucheng01 <hucheng01@baidu.com>
2022-08-19 21:28:15 +08:00
be7a38e170 [refactor](planner): refactor and replace use NIO (#11645)
* [refactor](planner): refactor equals code in Catalog dir.
2022-08-19 21:26:39 +08:00
f66e42f848 [optimization](array-type) support the decimal/datetime as the nest type of array in print_value (#11784)
Co-authored-by: hucheng01 <hucheng01@baidu.com>
2022-08-19 17:59:09 +08:00
1f9eec5462 [Regression](datev2) Add test cases for datev2/datetimev2 (#11831) 2022-08-19 10:57:55 +08:00
f1ede2aa9d [fix](function) Fix semantic analysis error in window function at first_value (#11855) 2022-08-19 09:13:29 +08:00
Pxl
c0dc51b453 [Bug](Vectorzed alter table)modify schema change cast validate (#11864) 2022-08-18 16:05:48 +08:00
b9dcb60172 [Planner](fix)Fix unexpected index out of bound exception (#11819) 2022-08-18 15:52:54 +08:00
066bc7693e [fix](orderby)disallow hll and bitmap data type in order by list (#11837) 2022-08-18 14:50:25 +08:00
Pxl
cac317430f [Bug](aggregation) fix core dump on 2nd phase aggregate (#11843) 2022-08-18 14:42:34 +08:00
0637c339b1 [fix](array-type) support to insert the largeint in array (#11868)
Co-authored-by: hucheng01 <hucheng01@baidu.com>
2022-08-18 14:41:07 +08:00
cfb90b39c7 (vec-stream-load-json) simdjson throw execption lead to core dump (#11880)
when config::enable_simdjson_parser=true in vec streamload, may lead to core dump when json input invalid format string like '{ "a', or all the fields is null like '{}', this may lead to simdjson lib throw some unhandled expection like `Objects and arrays can only be iterated when they are first encountered`.We should take care of these cases

Signed-off-by: eldenmoon <15605149486@163.com>
2022-08-18 10:27:34 +08:00
6c66bdbf30 [fix](orderby)remove useless null literal in order by (#11821) 2022-08-18 10:10:25 +08:00