Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[opt](optimizer) Remove unused code for unify code #38922

Open
wants to merge 203 commits into
base: branch-3.0
Choose a base branch
from

Conversation

liutang123
Copy link
Contributor

Proposed changes

Now, Agg's child predicates will not spread to agg. For example:
select a, sum(b)
from (
select a,b from t where a = 1 and b = 2
) t
group by a
a = 1 in scan can be propagated to a of agg.
But b = 2 in scan can not be propagated to sum(b) of agg.

Issue Number: #38905

@doris-robot
Copy link

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR

Since 2024-03-18, the Document has been moved to doris-website.
See Doris Document.

@liutang123 liutang123 requested a review from 924060929 August 6, 2024 03:22
@liutang123
Copy link
Contributor Author

run buildall

bobhan1 and others added 27 commits August 11, 2024 17:40
Add txn insert case of mv and auto partition
…false (apache#38135)

explain shape plan select * from table2 where Null;
explain shape plan select * from table2 where false; 
in this case, null literal can be regard as same as false literal
…se, so i fix it (apache#38275)

## Proposed changes

Issue Number: close #xxx

Add afs to the scheme options so broker can recognize afs location, and
change default afs impl to pure java implementation.
…ache#38293)

## Proposed changes

Issue Number: close #xxx

<!--Describe your changes.-->

---------

Co-authored-by: stephen <[email protected]>
Followup apache#38244
fix some unstable fe ut after set `use_meta_cache` as true
…istics (apache#38303)

## Proposed changes
 make dryrun result set collect multi batch's QueryStatistics
…pache#37896)

```sql
mysql> desc t_nullable;
+-------------+------+------+-------+---------+-------+
| Field       | Type | Null | Key   | Default | Extra |
+-------------+------+------+-------+---------+-------+
| m1          | INT  | Yes  | true  | NULL    |       |
| m2          | INT  | Yes  | true  | NULL    |       |
| key_string1 | TEXT | Yes  | false | NULL    | NONE  |
| key_string2 | TEXT | Yes  | false | NULL    | NONE  |
| key_string3 | TEXT | Yes  | false | NULL    | NONE  |
| key_int64_1 | INT  | Yes  | false | NULL    | NONE  |
| key_int64_2 | INT  | Yes  | false | NULL    | NONE  |
| key_int64_3 | INT  | Yes  | false | NULL    | NONE  |
| key_int64_4 | INT  | Yes  | false | NULL    | NONE  |
| key_int64_5 | INT  | Yes  | false | NULL    | NONE  |
+-------------+------+------+-------+---------+-------+
10 rows in set (0.00 sec)

mysql> select count(*) from t_nullable;
+------------+
| count(*)   |
+------------+
| 1000000000 |
+------------+
1 row in set (0.12 sec)
```
master
```sql
mysql> select  CAST((key_int64_1)  as  double),CAST((key_int64_2)  as  double),CAST((key_int64_3)  as  double),CAST((key_int64_4)  as  double),CAST((key_int64_5)  as  double),  min(m1)  from  t_nullable  group  by  CAST((key_int64_1)  as  double),CAST((key_int64_2)  as  double),CAST((key_int64_3)  as  double),CAST((key_int64_4)  as  double),CAST((key_int64_5)  as  double);
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+-----------------------------+---------+
| cast(key_int64_1 as DOUBLE) | cast(key_int64_2 as DOUBLE) | cast(key_int64_3 as DOUBLE) | cast(key_int64_4 as DOUBLE) | cast(key_int64_5 as DOUBLE) | min(m1) |
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+-----------------------------+---------+
|                           5 |                           6 |                           7 |                           8 |                           9 |       5 |
|                           2 |                           3 |                           4 |                           5 |                           6 |       2 |
|                           6 |                           7 |                           8 |                           9 |                          10 |       6 |
|                          10 |                          11 |                          12 |                          13 |                          14 |      10 |
|                           4 |                           5 |                           6 |                           7 |                           8 |       4 |
|                           1 |                           2 |                           3 |                           4 |                           5 |       1 |
|                           7 |                           8 |                           9 |                          10 |                          11 |       7 |
|                           9 |                          10 |                          11 |                          12 |                          13 |       9 |
|                           8 |                           9 |                          10 |                          11 |                          12 |       8 |
|                           3 |                           4 |                           5 |                           6 |                           7 |       3 |
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+-----------------------------+---------+
10 rows in set (1.79 sec)

mysql> set parallel_pipeline_task_num=1;
Query OK, 0 rows affected (0.02 sec)

mysql> select  CAST((key_int64_1)  as  double),CAST((key_int64_2)  as  double),CAST((key_int64_3)  as  double),CAST((key_int64_4)  as  double),CAST((key_int64_5)  as  double),  min(m1)  from  t_nullable  group  by  CAST((key_int64_1)  as  double),CAST((key_int64_2)  as  double),CAST((key_int64_3)  as  double),CAST((key_int64_4)  as  double),CAST((key_int64_5)  as  double);
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+-----------------------------+---------+
| cast(key_int64_1 as DOUBLE) | cast(key_int64_2 as DOUBLE) | cast(key_int64_3 as DOUBLE) | cast(key_int64_4 as DOUBLE) | cast(key_int64_5 as DOUBLE) | min(m1) |
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+-----------------------------+---------+
|                           7 |                           8 |                           9 |                          10 |                          11 |       7 |
|                           5 |                           6 |                           7 |                           8 |                           9 |       5 |
|                           6 |                           7 |                           8 |                           9 |                          10 |       6 |
|                           1 |                           2 |                           3 |                           4 |                           5 |       1 |
|                           4 |                           5 |                           6 |                           7 |                           8 |       4 |
|                          10 |                          11 |                          12 |                          13 |                          14 |      10 |
|                           3 |                           4 |                           5 |                           6 |                           7 |       3 |
|                           2 |                           3 |                           4 |                           5 |                           6 |       2 |
|                           9 |                          10 |                          11 |                          12 |                          13 |       9 |
|                           8 |                           9 |                          10 |                          11 |                          12 |       8 |
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+-----------------------------+---------+
10 rows in set (15.24 sec)
```


now
```sql
mysql> select  CAST((key_int64_1)  as  double),CAST((key_int64_2)  as  double),CAST((key_int64_3)  as  double),CAST((key_int64_4)  as  double),CAST((key_int64_5)  as  double),  min(m1)  from  t_nullable  group  by  CAST((key_int64_1)  as  double),CAST((key_int64_2)  as  double),CAST((key_int64_3)  as  double),CAST((key_int64_4)  as  double),CAST((key_int64_5)  as  double);
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+-----------------------------+---------+
| cast(key_int64_1 as DOUBLE) | cast(key_int64_2 as DOUBLE) | cast(key_int64_3 as DOUBLE) | cast(key_int64_4 as DOUBLE) | cast(key_int64_5 as DOUBLE) | min(m1) |
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+-----------------------------+---------+
|                           7 |                           8 |                           9 |                          10 |                          11 |       7 |
|                           1 |                           2 |                           3 |                           4 |                           5 |       1 |
|                           8 |                           9 |                          10 |                          11 |                          12 |       8 |
|                           6 |                           7 |                           8 |                           9 |                          10 |       6 |
|                           3 |                           4 |                           5 |                           6 |                           7 |       3 |
|                           5 |                           6 |                           7 |                           8 |                           9 |       5 |
|                           2 |                           3 |                           4 |                           5 |                           6 |       2 |
|                           4 |                           5 |                           6 |                           7 |                           8 |       4 |
|                          10 |                          11 |                          12 |                          13 |                          14 |      10 |
|                           9 |                          10 |                          11 |                          12 |                          13 |       9 |
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+-----------------------------+---------+
10 rows in set (1.28 sec)
```
```
mysql> set parallel_pipeline_task_num=1;
Query OK, 0 rows affected (0.00 sec)
```
```sql
mysql> select  CAST((key_int64_1)  as  double),CAST((key_int64_2)  as  double),CAST((key_int64_3)  as  double),CAST((key_int64_4)  as  double),CAST((key_int64_5)  as  double),  min(m1)  from  t_nullable  group  by  CAST((key_int64_1)  as  double),CAST((key_int64_2)  as  double),CAST((key_int64_3)  as  double),CAST((key_int64_4)  as  double),CAST((key_int64_5)  as  double);
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+-----------------------------+---------+
| cast(key_int64_1 as DOUBLE) | cast(key_int64_2 as DOUBLE) | cast(key_int64_3 as DOUBLE) | cast(key_int64_4 as DOUBLE) | cast(key_int64_5 as DOUBLE) | min(m1) |
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+-----------------------------+---------+
|                           6 |                           7 |                           8 |                           9 |                          10 |       6 |
|                           5 |                           6 |                           7 |                           8 |                           9 |       5 |
|                           4 |                           5 |                           6 |                           7 |                           8 |       4 |
|                          10 |                          11 |                          12 |                          13 |                          14 |      10 |
|                           7 |                           8 |                           9 |                          10 |                          11 |       7 |
|                           1 |                           2 |                           3 |                           4 |                           5 |       1 |
|                           2 |                           3 |                           4 |                           5 |                           6 |       2 |
|                           3 |                           4 |                           5 |                           6 |                           7 |       3 |
|                           9 |                          10 |                          11 |                          12 |                          13 |       9 |
|                           8 |                           9 |                          10 |                          11 |                          12 |       8 |
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+-----------------------------+---------+
10 rows in set (13.26 sec)
```

about 20% improvement
…#38370)

The serialized BackupMeta has a fixed meta version, and using the
corresponding version for deserialization is essential to ensure
metadata compatibility. This PR fixes the issue where BackupMeta was
deserialized without setting the meta version.
## Proposed changes
if you want to get the profile of the query just executed, it not
neccessary to find the query_id now.
this is useful to get profiles in shell script, for example, we want to
get all profiles of tpcds queries (103 query profile) in a shell script.

before:
curl
http://root:@127.0.0.1:8030/api/profile/text?query_id=990cc3b19e464e03-a3af05a997eb4091
> profile
after:
curl http://root:@127.0.0.1:8030/api/profile/text > profilex

Issue Number: close #xxx

<!--Describe your changes.-->
add `Default Catalog` column in load/query profile summary
Compare primary key without sequence column is expensive,
if full key is exact_match, the primary key without sequence column
should also the same,
do not need to compare again.
…rialized view (apache#37396)

Identify the column in async materialized view definition. If it
selected a column from a sync materialized view, find the real column
from the olap table and check if it is the partition column of the olap
table.
…o store runtime filters (apache#38085)

## Proposed changes
use shared ptr to instead object pool to store runtime filters
## Proposed changes
1. fix some not standard usages
2. remove an useless cmake flag
…e#38104)

throw table name/alias conflict exception to keep same behavior with mysql

for example:
```sql
select * from test.a b, test.b
```

error:
```
Not unique table/alias: 'b'
```
…use partial update (apache#38229)

For primary key tables and unique_key_partial_update enabled:
1. for `insert into table values(xxx)`, we should try full column insert
instead of partial update;
2. If `insert into table(cols)` include all columns except the
AUTO_INCREMENT column, we should use full column insert;
## Proposed changes

1. add timetravel for nereids.

```
select * from tb FOR TIME AS OF "2024-07-24 19:58:43";
select * from tb FOR TIME AS OF "20240724195843";
```
2. Add ugi authentication to the thread pool
1. Previously, if the root path of the HDFS URI started with two
slashes, the outfile would be successfully exported without errors, but
the exported path would not be the expected path.
Currently, we will delete repeated '/' which specified by users in FE.

2. move the test case for outfile HDFS from p2 to p0.
## Proposed changes

Issue Number: close #xxx

<!--Describe your changes.-->
1. Bvar add Process Memory Status, Memory Tracker, Arbitrator Memory
Status, Jemalloc Status, etc.
2. Memory Tracker(label=`sum_of_all_trackers`) add reserved memory.
…ize_rows` (apache#38221)

support modifying arrow flight result sink buffer rows size with
parameters, default 4096 * 8.

we want to return a larger batch at a time, when large amounts of data.
zddr and others added 23 commits August 12, 2024 01:04
mv1 is MTMV

mysql> SHOW FULL TABLES WHERE Table_type =  'BASE TABLE';
+--------------+------------+
| Tables_in_zd | Table_type |
+--------------+------------+
| mv1          | BASE TABLE |
| com3         | BASE TABLE |
+--------------+------------+
… and v2 (apache#39149)

## Proposed changes

1. reversed Index v1 and v2 have different column names
…job (apache#39121)

Improvement:   don't balance tablets that have unfished alter job.

Also fix partition rebalancer may balance colocate tablets.
… return wrong result (apache#39026)

two point have changed:
1. in batch_assign function: 
const std::string& string_value = column.stringval();
if call **insert(&string_value)**, will cast as string_ref:
reinterpret_cast<const **StringRef***>(data), this maybe error;
```
    void insert(const void* data) override {
        if (data == nullptr) {
            _contains_null = true;
            return;
        }

        const auto* value = reinterpret_cast<const StringRef*>(data);
        std::string str_value(value->data, value->size);
        _set.insert(str_value);
    }
```

2. in batch_copy function, will cast void_value as T*
but the it->get_value() return is StringRef, so need change T as
StringRef
```
template <typename T>
void batch_copy(PInFilter* filter, HybridSetBase::IteratorBase* it,
                void (*set_func)(PColumnValue*, const T*)) {
    while (it->has_next()) {
        const void* void_value = it->get_value();
        auto origin_value = reinterpret_cast<const T*>(void_value);
        set_func(filter->add_values(), origin_value);
        it->next();
    }
}
```
…ws have error (apache#39100)

1. fix the _sorted_partition_input_rows calculate have error, it's
should only update the rows which have been emplace into hash table, not
include the rows which is pass through.

2. add some counter in profile could get some info of about input/output
rows have been do partition-topn.
1. Add a new FE config `max_meta_object_cache_num` to control the meta
number of db/table in external catalog
2. Shorten the expire time of some cache to make data more refresh
…s is set to cancelled but the table state is still SCHEMA_CHANGE (apache#39164)

## Proposed changes

Set job cancel state after table state changed to normal.
…e#39141)

Verify that the database table has been created by adding the database
table to the SQL in the health check script.
## Proposed changes
Added the computeSignature function for millisecond/microsecond
calculation functions to generate parameters and return values with the
appropriate precision.
Modified the microSecondsAdd function, which was used for constant
folding, because constant folding uses the precision of the parameters
for calculation. However, for millisecond/microsecond calculations, it
is necessary to set the precision to the maximum to ensure correct
display.


before
```
mysql> SELECT MICROSECONDS_SUB('2010-11-30 23:50:50', 2);
+-------------------------------------------------------------------+
| microseconds_sub(cast('2010-11-30 23:50:50' as DATETIMEV2(0)), 2) |
+-------------------------------------------------------------------+
| 2010-11-30 23:50:49                                               |
+-------------------------------------------------------------------+
```
now
```
mysql> SELECT MICROSECONDS_SUB('2010-11-30 23:50:50', 2);
+-------------------------------------------------------------------+
| microseconds_sub(cast('2010-11-30 23:50:50' as DATETIMEV2(0)), 2) |
+-------------------------------------------------------------------+
| 2010-11-30 23:50:49.999998                                        |
+-------------------------------------------------------------------+
```


<!--Describe your changes.-->
## Proposed changes

Undefined behavior occurs if there is a null value in the list.

```
/root/doris/be/src/vec/common/string_ref.h:271:54: runtime error: null pointer passed as argument 2, which is declared to never be null
/var/local/ldb-toolchain/bin/../usr/include/string.h:64:33: note: nonnull attribute specified here
#0 0x5616d072245d in doris::StringRef::eq(doris::StringRef const&) const /root/doris/be/src/vec/common/string_ref.h:271:41
apache#1 0x5616d072245d in doris::StringRef::operator==(doris::StringRef const&) const /root/doris/be/src/vec/common/string_ref.h:274:60
apache#2 0x5616d072245d in doris::FixedContainer::find(doris::StringRef const&) const /root/doris/be/src/exprs/hybrid_set.h:76:36
apache#3 0x5616d072245d in void doris::StringValueSet>::_find_batch(doris::vectorized::IColumn const&, unsigned long, doris::vectorized::PODArray, 16ul, 15ul> const*, doris::vectorized::PODArray, 16ul, 15ul>&) /root/doris/be/src/exprs/hybrid_set.h:688:63
apache#4 0x5616d0747857 in doris::vectorized::FunctionIn::execute_impl(doris::FunctionContext*, doris::vectorized::Block&, std::vector> const&, unsigned long, unsigned long) const /root/doris/be/src/vec/functions/in.h:170:21
apache#5 0x5616c741fa3a in doris::vectorized::DefaultExecutable::execute_impl(doris::FunctionContext*, doris::vectorized::Block&, std::vector> const&, unsigned long, unsigned long) const /root/doris/be/src/vec/functions/function.h:462:26
apache#6 0x5616cbb5b650 in doris::vectorized::PreparedFunctionImpl::_execute_skipped_constant_deal(doris::FunctionContext*, doris::vectorized::Block&, std::vector> const&, unsigned long, unsigned long, bool) const /root/doris/be/src/vec/functions/function.cpp
apache#7 0x5616cbb4e14e in doris::vectorized::PreparedFunctionImpl::execute_without_low_cardinality_columns(doris::FunctionContext*, doris::vectorized::Block&, std::vector> const&, unsigned long, unsigned long, bool) const /root/doris/be/src/vec/functions/function.cpp:244:12
apache#8 0x5616cbb4e3c2 in doris::vectorized::PreparedFunctionImpl::execute(doris::FunctionContext*, doris::vectorized::Block&, std::vector> const&, unsigned long, unsigned long, bool) const /root/doris/be/src/vec/functions/function.cpp:250:12
apache#9 0x5616c741cd68 in doris::vectorized::IFunctionBase::execute(doris::FunctionContext*, doris::vectorized::Block&, std::vector> const&, unsigned long, unsigned long, bool) const /root/doris/be/src/vec/functions/function.h:190:19
apache#10 0x5616c74cf712 in doris::vectorized::VInPredicate::execute(doris::vectorized::VExprContext*, doris::vectorized::Block*, int*) /root/doris/be/src/vec/exprs/vin_predicate.cpp:130:5
apache#11 0x5616c740d5c0 in doris::vectorized::VectorizedFnCall::_do_execute(doris::vectorized::VExprContext*, doris::vectorized::Block*, int*, std::vector>&) /root/doris/be/src/vec/exprs/vectorized_fn_call.cpp:183:9
apache#12 0x5616c740ecf5 in doris::vectorized::VectorizedFnCall::execute(doris::vectorized::VExprContext*, doris::vectorized::Block*, int*) /root/doris/be/src/vec/exprs/vectorized_fn_call.cpp:215:12
apache#13 0x5616c7462e24 in doris::vectorized::VCompoundPred::execute(doris::vectorized::VExprContext*, doris::vectorized::Block*, int*) /root/doris/be/src/vec/exprs/vcompound_pred.h:127:38
apache#14 0x5616c74bccec in doris::vectorized::VExprContext::execute(doris::vectorized::Block*, int*) /root/doris/be/src/vec/exprs/vexpr_context.cpp:54:5
apache#15 0x5616c74c1dcc in doris::vectorized::VExprContext::execute_conjuncts(std::vector, std::allocator>> const&, std::vector, 16ul, 15ul>, std::allocator, 16ul, 15ul>>> const*, bool, doris::vectorized::Block*, doris::vectorized::PODArray, 16ul, 15ul>, bool) /root/doris/be/src/vec/exprs/vexpr_context.cpp:169:9
apache#16 0x5616c74c5108 in doris::vectorized::VExprContext::execute_conjuncts_and_filter_block(std::vector, std::allocator>> const&, doris::vectorized::Block*, std::vector>&, int, doris::vectorized::PODArray, 16ul, 15ul>&) /root/doris/be/src/vec/exprs/vexpr_context.cpp:322:5
apache#17 0x5616ad8a7f1a in doris::segment_v2::SegmentIterator::_execute_common_expr(unsigned short*, unsigned short&, doris::vectorized::Block*) /root/doris/be/src/olap/rowset/segment_v2/segment_iterator.cpp:2680:5
apache#18 0x5616ad89e86e in doris::segment_v2::SegmentIterator::_next_batch_internal(doris::vectorized::Block*) /root/doris/be/src/olap/rowset/segment_v2/segment_iterator.cpp:2582:25
apache#19 0x5616ad892f5c in doris::segment_v2::SegmentIterator::next_batch(doris::vectorized::Block*)::$_0::operator()() const /root/doris/be/src/olap/rowset/segment_v2/segment_iterator.cpp:2315:9
apache#20 0x5616ad892f5c in doris::segment_v2::SegmentIterator::next_batch(doris::vectorized::Block*) /root/doris/be/src/olap/rowset/segment_v2/segment_iterator.cpp:2314:19
apache#21 0x5616ad6dd9cc in doris::segment_v2::LazyInitSegmentIterator::next_batch(doris::vectorized::Block*) /root/doris/be/src/olap/rowset/segment_v2/lazy_init_segment_iterator.h:44:33
apache#22 0x5616ad269d67 in doris::BetaRowsetReader::next_block(doris::vectorized::Block*) /root/doris/be/src/olap/rowset/beta_rowset_reader.cpp:380:29
apache#23 0x5616de6de110 in doris::vectorized::VCollectIterator::Level0Iterator::_refresh() /root/doris/be/src/vec/olap/vcollect_iterator.h
apache#24 0x5616de6c967f in doris::vectorized::VCollectIterator::Level0Iterator::refresh_current_row() /root/doris/be/src/vec/olap/vcollect_iterator.cpp:514:24
apache#25 0x5616de6ca8a6 in doris::vectorized::VCollectIterator::Level0Iterator::ensure_first_row_ref() /root/doris/be/src/vec/olap/vcollect_iterator.cpp:493:14
apache#26 0x5616de6d7008 in doris::vectorized::VCollectIterator::Level1Iterator::ensure_first_row_ref() /root/doris/be/src/vec/olap/vcollect_iterator.cpp:692:27
apache#27 0x5616de6bd200 in doris::vectorized::VCollectIterator::build_heap(std::vector, std::allocator>>&) /root/doris/be/src/vec/olap/vcollect_iterator.cpp:186:9
apache#28 0x5616de651b6c in doris::vectorized::BlockReader::_init_collect_iter(doris::TabletReader::ReaderParams const&) /root/doris/be/src/vec/olap/block_reader.cpp:157:5
apache#29 0x5616de65526f in doris::vectorized::BlockReader::init(doris::TabletReader::ReaderParams const&) /root/doris/be/src/vec/olap/block_reader.cpp:229:19
apache#30 0x5616e175a0f9 in doris::vectorized::NewOlapScanner::open(doris::RuntimeState*) /root/doris/be/src/vec/exec/scan/new_olap_scanner.cpp:237:32
apache#31 0x5616c736ad34 in doris::vectorized::ScannerScheduler::_scanner_scan(std::shared_ptr, std::shared_ptr) /root/doris/be/src/vec/exec/scan/scanner_scheduler.cpp:236:5
apache#32 0x5616c736f05e in doris::vectorized::ScannerScheduler::submit(std::shared_ptr, std::shared_ptr)::$_1::operator()() const::'lambda'()::operator()() const::'lambda'()::operator()() const /root/doris/be/src/vec/exec/scan/scanner_scheduler.cpp:176:21
apache#33 0x5616c736f05e in doris::vectorized::ScannerScheduler::submit(std::shared_ptr, std::shared_ptr)::$_1::operator()() const::'lambda'()::operator()() const /root/doris/be/src/vec/exec/scan/scanner_scheduler.cpp:175:31
apache#34 0x5616c736f05e in void std::_invoke_impl, std::shared_ptr)::$_1::operator()() const::'lambda'()&>(std::_invoke_other, doris::vectorized::ScannerScheduler::submit(std::shared_ptr, std::shared_ptr)::$_1::operator()() const::'lambda'()&) /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61:14
apache#35 0x5616c736f05e in std::enable_if, std::shared_ptr)::$1::operator()() const::'lambda'()&>, void>::type std::_invoke_r, std::shared_ptr)::$_1::operator()() const::'lambda'()&>(doris::vectorized::ScannerScheduler::submit(std::shared_ptr, std::shared_ptr)::$_1::operator()() const::'lambda'()&) /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:111:2
apache#36 0x5616c736f05e in std::_Function_handler, std::shared_ptr)::$_1::operator()() const::'lambda'()>::_M_invoke(std::_Any_data const&) /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291:9
apache#37 0x5616aeed6a3b in doris::ThreadPool::dispatch_thread() /root/doris/be/src/util/threadpool.cpp:543:24
apache#38 0x5616aeeae4f7 in doris::Thread::supervise_thread(void*) /root/doris/be/src/util/thread.cpp:498:5
apache#39 0x7f7e663e3ac2 in start_thread nptl/pthread_create.c:442:8
apache#40 0x7f7e6647584f misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /root/doris/be/src/vec/common/string_ref.h:271:54 in
```
## Proposed changes
Add schema table workload_group_privileges.

```
mysql [information_schema]>desc workload_group_privileges;
+---------------------+--------------+------+-------+---------+-------+
| Field               | Type         | Null | Key   | Default | Extra |
+---------------------+--------------+------+-------+---------+-------+
| GRANTEE             | varchar(64)  | Yes  | false | NULL    |       |
| WORKLOAD_GROUP_NAME | varchar(256) | Yes  | false | NULL    |       |
| PRIVILEGE_TYPE      | varchar(64)  | Yes  | false | NULL    |       |
| IS_GRANTABLE        | varchar(3)   | Yes  | false | NULL    |       |
+---------------------+--------------+------+-------+---------+-------+
4 rows in set (0.01 sec)


```
## Proposed changes

Resolve conflicts by merging apache#38436 and apache#38403

<!--Describe your changes.-->
1. txn load is not supported for mow in cloud mode
2. the `txn_insert_with_schema_change` wait for some specified state of
schema change, rather than schema change is done
…eberg writer. (apache#38987)

## Proposed changes

[Fix] (multi-catalog) Fix not throw error when call close() in
hive/iceberg writer.

When the file writer closes(), it will sync buffer to commit. Therefore,
sometimes data is written only when close() is called, which can expose
some errors. For example, hdfs_file_writer. Therefore, this error needs
to be captured in the entire close process.
…ng (apache#38807)

## Proposed changes

Support doris's `char`/`varchar` to iceberg's `string`.
Now, Agg's child predicates will  not spread to agg.
For example:
select a, sum(b)
from (
 select a,b from t where a = 1 and b = 2
) t
group by a
`a = 1` in scan can be propagated to `a` of agg.
But `b = 2` in scan can not be propagated to `sum(b)` of agg.
@924060929
Copy link
Contributor

wrong based?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.