Commit Graph

5033 Commits

Author SHA1 Message Date
8abd00dcd5 [feature-wip](multi-catalog) Add catalog name to information schema. (#10349)
Information schema database need to show catalog name after multi-catalog is supported.
This part is step 1, add catalog name for schemata table.
2022-06-25 11:53:04 +08:00
3757bd521a [feature](nereids)Convert the expression from nereids to stale expr. (#10343)
Add ExpressionConverter.java to convert the expression from nereids to stale expression
2022-06-25 11:16:52 +08:00
7921320124 [fix]Make sure only call once set_dict_encoding_type for each ColumnReader (#10389) 2022-06-25 04:31:19 +08:00
df908873bb [improvement]Use std::iota to set values of _block_rowids in SegmentIterator::_read_columns_by_index (#10386) 2022-06-25 04:30:23 +08:00
89860fd0e3 [opt] delete the redundant parameter of _execute_non_nullable (#10173)
1. This pr is used to delete the redundant parameter of _execute_non_nullable.
2. This modification will not affect the function "element_at".
2022-06-24 19:22:50 +08:00
476be35961 [TYPO] fix typo 'destory' -> 'destroy' (#10373) 2022-06-24 19:11:28 +08:00
e82d8433be [feature](nereids) Integrate nereids into current SQL process framework (#10304)
To integrate the nereids optimizer with new SQLParser and Planner to existing SQL process framework, I abstract a interface which named "Planner" and let the Both planner from nereids and stale optimizer implement it, to disguish it
with origin Planner, I rename the Planner to OriginalPlanner.

As we don't want to impact the existing logic too much, I defined a LogicalPlanAdapter to adapt the logicalPlan that is the output of the new paser to the existing code.

Besides, as the MySQL protocol supports sending multiple statements in one packet, so I add Nereids#SparseSQL method to handle this properly.
2022-06-24 18:26:26 +08:00
8f2b2b4457 add dynamic partition DataProperty (#10338) 2022-06-24 16:57:56 +08:00
8a49c7ef04 [chore] Rename Doris binary output format 2022-06-24 15:30:05 +08:00
9036f93df4 Revert "[improvement](function) optimize substr performance (#10169)" (#10390)
This reverts commit 2335d233f1f52eb64a380b4c9959becdf182b71b.
2022-06-24 14:38:52 +08:00
516f5b1789 [feature-wip](multi-catalog) support to switch catalog (#10381)
Add `switch catalog` stmt with privilege check
2022-06-24 10:42:13 +08:00
f15d84335c [websit][doc]Modify image path (#10361) 2022-06-24 09:12:20 +08:00
ad8da109c3 [community] update PMC & Committer list (#10360) 2022-06-24 09:11:49 +08:00
0cbf39d879 [doc] Fix typo (#10333) 2022-06-24 09:10:59 +08:00
2cc670dba6 [fix](vectorized) Support outer join for vectorized exec engine (#10323)
In a vectorized scenario, the query plan will generate a new tuple for the join node.
This tuple mainly describes the output schema of the join node.
Adding this tuple mainly solves the problem that the input schema of the join node is different from the output schema.
For example:
1. The case where the null side column caused by outer join is converted to nullable.
2. The projection of the outer tuple.
2022-06-24 08:59:30 +08:00
c288bb363a [f][docs] Restore images in new official website. (#10262) 2022-06-24 08:58:29 +08:00
1bd0d7ded5 [typo] Fix typos in comments (#10252) 2022-06-24 08:57:54 +08:00
2335d233f1 [improvement](function) optimize substr performance (#10169)
optimize substr performance about 1.5~2x speedup.
2022-06-24 08:57:31 +08:00
e3d549cdfa [fix](proc) Fix bug that TrashProcDir cannot show backend trash detail normally (#10365) 2022-06-24 08:56:32 +08:00
d5be190cf9 [fix](planner)infer predicate rule infer binary pridicate when two slot do not equal by mistake (#10356)
infer predicate rule infer binary predicate when two slot do not equal by mistake
2022-06-24 08:56:12 +08:00
f06a06d623 [chore](fe)remove java doc period end check in checkstyle (#10329)
We do not generate real java doc. All java doc comments is used to help to understand the code logic more easily.
So we need loose java doc style check. Remove period character check in summary java doc check rule.
2022-06-24 08:55:53 +08:00
b1d9b54805 BetaRowsetReader::next_block does not return 0 rows before eof (#10367) 2022-06-24 07:22:45 +08:00
2e661ac63f [improvement]Support vectorized predicates for dict columns (#10370) 2022-06-24 07:21:26 +08:00
1541dcd919 fix some typo in comments (#10374) 2022-06-24 07:20:08 +08:00
b8d2c96842 [refactor]Remove load_delete job (#10353) 2022-06-24 00:04:38 +08:00
3370c10528 [profile] add more detail profile in segment iterator (#10352) 2022-06-23 15:32:43 +08:00
a5fea86d0a [fix][ldap] fix ldap password null pointer exception. (#10284) 2022-06-23 15:01:18 +08:00
6a54fc2fe5 [feature-wip](multi-catalog)(resubmit) add catalog level privileges (#10345) 2022-06-23 14:10:11 +08:00
f466668d48 [improvement] each tuple starting at aligned address to build with ubsan enabled (#8831)
When I builded doris be with ubsan enabled and enabled vectorization,
be core dump at doris::DecimalV2Value::operator long(). It cored
because accessing on a non-aligned address by sse.

With ubsan enabled, compile generates different assemble code including
sse instruction.

A sender serializes tuples to a contiguous memory area, while a receiver
just copy it. So we should align each tuple offset to 16 bytes.

For compatibility, we should use a config to control it.

BTW: with tools like ubsan, asan, tsan we can find bugs more easily,
e.g. #8815. It is difficult to find the bug without ubsan.

Anyway, we should use modern tools to be more productive.
2022-06-23 14:03:01 +08:00
fa13bef3da [Bug][Vectorized] Fix coredump in other join conjunt is const expr (#10223)
Co-authored-by: lihaopeng <lihaopeng@baidu.com>
2022-06-23 13:27:32 +08:00
e9662e2861 [docs] fix HelpTopic for key words (#10276) 2022-06-23 12:42:49 +08:00
4d444733d3 MOD: sql block rule support exists (#10316) 2022-06-23 12:38:30 +08:00
0c39e1018c [fixbug]opt nullable (#10346)
Co-authored-by: Wang Bo <wangbo36@meituan.com>
2022-06-23 12:37:43 +08:00
d73f170eeb [optimize](storage)optimize date in storage layer (#8967)
* opt date in storage

* code style

Co-authored-by: Wang Bo <wangbo36@meituan.com>
2022-06-23 12:29:10 +08:00
815ea35578 [fix](multi-catalog) should load datasource before loading cluster (#10330)
A temp DataSourceMgr is created when catalog intializes, and will be
updated in the loadCluster process. However, the loadDatasource process
will create a new DataSourceMgr with no cluster updated, and write such
DatasourceMgr to image. Finally, when the doris starts to recover, no
cluster is available.
2022-06-23 10:59:12 +08:00
573ad57467 [doc]Added Iceberg 0.13.2 version support (#10312)
Added 0.13.2 version support
2022-06-23 09:33:26 +08:00
139cd3d11a [Improvement] remove olap filters when use in key ranges (#10278) 2022-06-23 09:12:29 +08:00
ed1e130ef6 [BUGFIX] fix wrong children quantity in debug string (#10348) 2022-06-23 09:10:30 +08:00
274a0f2603 [fix] do not read seq column when reading a compacted rowset (#10344)
SEQ_COL is used on tables with unique key to order data in one transaction(rowset),
when there is only one rowset and the rowset is compacted, rows in the rowset is sorted 
and rows with same keys are resolved by compaction, so a scanner sets direct_mode to 
optimize read iterator to avoid sorting and aggregating, and iterators does not need SEQ_COL. 
However, init_return_columns adds SEQ_COL to return_columns, which is passed to SegmentIterator.
Then segment Iterator would be called via get_next with a block without SEQ_COL, segment iterator 
creates columns included in return_columns but not in the block. SEQ_COL is nullable, segment Iterator 
does not handle it, so a core dump happen.

Actually, in the above case, segment iterator does not need to read SEQ_COL. 
When SEQ_COL is really needed, iterators creates SEQ_COL column in block,
so segment Iterator does not need do create SEQ_COL at all.
2022-06-23 08:44:43 +08:00
46d20818f1 [fix][vectorized] Fix bug the of window function result not match plan nullable (#10340)
Co-authored-by: lihaopeng <lihaopeng@baidu.com>
2022-06-23 08:40:12 +08:00
a2b5020375 [fix](partition-cache) fix result may not write when enable partition cache (#10319)
fix result may not write when enable partition cache
2022-06-22 23:42:46 +08:00
2bd8b0713a [feature](Nereids): cost and stats; (#10199)
feature: cost and stats;

+ Add cost model data struct.
+ Add operator visitor for calculating cost.
+ Add plan context.
2022-06-22 22:46:22 +08:00
8204b41d88 [feature](nereids)temporary disable exploration jobs in cascades (#10290)
Only do implementation in cascades.

In order to achieve the ssb test, at this stage, temporarily comment out the explore rule process in cascades.
It needs to be added in the future.
2022-06-22 20:05:01 +08:00
2a0ac05ce7 [fix] Fix duplicate code for PropertyAnalyzer.analyzeDataProperty() (#10190)
PropertyAnalyzer.analyzeDataProperty(Map<String, String> properties, final DataProperty oldDataProperty) has something not suitable.
Parameter oldDataProperty is the old DataProperty, properties should be used to replace some of its members.
If properties has no some members, old ones need to be left, but not be set to default value.
Function modifyPartitionsProperty() uses analyzeDataProperty(), but create a new DataProperty again, it is duplicate.
2022-06-22 15:28:04 +08:00
98b3306e05 [docs]add key words for helps (#10263)
* add key words for helps

* add key words for helps

* add key words for helps
2022-06-22 14:41:15 +08:00
b913d59560 [docs] aes docs fix (#10251)
* fix aes docs

* update keywords inside aes.md

Co-authored-by: cambyzju <zhuxiaoli01@baidu.com>
2022-06-22 14:40:40 +08:00
200557052a [BUGFIX] wrong answer with with as + two phase agg (#10303) 2022-06-22 14:39:39 +08:00
994feb9dbe [bugfix][compaction][vectorized]fix compaction OOM (#10289) 2022-06-22 14:38:30 +08:00
f7ed2817ad [fix] [ubsan] Fix TCMalloc Hook deadlocks when ThreadContext is initialized (#10310) 2022-06-22 14:37:48 +08:00
0361c5b0cf [TEST] use DB in config file instead of hard coding (#10321) 2022-06-22 14:37:15 +08:00