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

[Bug](materialized-view) add limitation for duplicate expr on materialized view #27523

Merged
merged 1 commit into from
Nov 24, 2023

Conversation

BiteTheDDDDt
Copy link
Contributor

Proposed changes

add limitation for duplicate expr on materialized view, duplicate expr will cause planning errors and lead to core dump.

*** Aborted at 1700795758 (unix time) try "date -d @1700795758" if you are using GNU date ***
*** Current BE git commitID: ea1c6b53e6 ***
*** SIGABRT unknown detail explain (@0x446000f3df1) received by PID 998897 (TID 1007038 OR 0x7ff4871ad700) from PID 998897; stack trace: ***
 0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) at /mnt/disk1/xiaolei/incubator-doris/be/src/common/signal_handler.h:417
 1# 0x00007FF914D57400 in /lib64/libc.so.6
 2# __GI_raise in /lib64/libc.so.6
 3# __GI_abort in /lib64/libc.so.6
 4# 0x000055D053A4375D in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be
 5# 0x000055D053A35A6A in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be
 6# google::LogMessage::SendToLog() in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be
 7# google::LogMessage::Flush() in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be
 8# google::LogMessageFatal::~LogMessageFatal() in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be
 9# doris::vectorized::ColumnString const& assert_cast<doris::vectorized::ColumnString const&, doris::vectorized::IColumn const&>(doris::vectorized::IColumn const&) in /mnt/disk1/xiaolei/incubator-doris/output/be/lib/doris_be
10# doris::vectorized::ColumnString::insert_from(doris::vectorized::IColumn const&, unsigned long) at /mnt/disk1/xiaolei/incubator-doris/be/src/vec/columns/column_string.h:166
11# doris::MultiBlockMerger::merge(std::vector<std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> >, std::allocator<std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> > > > const&, doris::RowsetWriter*, unsigned long*) at /mnt/disk1/xiaolei/incubator-doris/be/src/olap/schema_change.cpp:162
12# doris::VSchemaChangeWithSorting::_internal_sorting(std::vector<std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> >, std::allocator<std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> > > > const&, doris::Version const&, long, std::shared_ptr<doris::Tablet>, doris::RowsetTypePB, doris::SegmentsOverlapPB) at /mnt/disk1/xiaolei/incubator-doris/be/src/olap/schema_change.cpp:624
13# doris::VSchemaChangeWithSorting::_inner_process(std::shared_ptr<doris::RowsetReader>, doris::RowsetWriter*, std::shared_ptr<doris::Tablet>, std::shared_ptr<doris::TabletSchema>)::$_1::operator()() const at /mnt/disk1/xiaolei/incubator-doris/be/src/olap/schema_change.cpp:544
14# doris::VSchemaChangeWithSorting::_inner_process(std::shared_ptr<doris::RowsetReader>, doris::RowsetWriter*, std::shared_ptr<doris::Tablet>, std::shared_ptr<doris::TabletSchema>) at /mnt/disk1/xiaolei/incubator-doris/be/src/olap/schema_change.cpp:591
15# doris::SchemaChange::process(std::shared_ptr<doris::RowsetReader>, doris::RowsetWriter*, std::shared_ptr<doris::Tablet>, std::shared_ptr<doris::Tablet>, std::shared_ptr<doris::TabletSchema>) at /mnt/disk1/xiaolei/incubator-doris/be/src/olap/schema_change.h:118
16# doris::SchemaChangeHandler::_convert_historical_rowsets(doris::SchemaChangeHandler::SchemaChangeParams const&) at /mnt/disk1/xiaolei/incubator-doris/be/src/olap/schema_change.cpp:1129
17# doris::SchemaChangeHandler::_do_process_alter_tablet_v2(doris::TAlterTabletReqV2 const&) at /mnt/disk1/xiaolei/incubator-doris/be/src/olap/schema_change.cpp:925
18# doris::SchemaChangeHandler::process_alter_tablet_v2(doris::TAlterTabletReqV2 const&) at /mnt/disk1/xiaolei/incubator-doris/be/src/olap/schema_change.cpp:675
19# doris::EngineAlterTabletTask::execute() at /mnt/disk1/xiaolei/incubator-doris/be/src/olap/task/engine_alter_tablet_task.cpp:51
20# doris::StorageEngine::execute_task(doris::EngineTask*) at /mnt/disk1/xiaolei/incubator-doris/be/src/olap/storage_engine.cpp:1232
21# doris::AlterTableTaskPool::_alter_tablet(doris::TAgentTaskRequest const&, long, doris::TTaskType::type, doris::TFinishTaskRequest*) at /mnt/disk1/xiaolei/incubator-doris/be/src/agent/task_worker_pool.cpp:1792

Further comments

If this is a relatively large or complex change, kick off the discussion at dev@doris.apache.org by explaining why you chose the solution you did and what alternatives you considered, etc...

@BiteTheDDDDt
Copy link
Contributor Author

run buildall

@wm1581066 wm1581066 added dev/2.0.3 usercase Important user case type label labels Nov 24, 2023
@doris-robot
Copy link

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 45.25 seconds
stream load tsv: 569 seconds loaded 74807831229 Bytes, about 125 MB/s
stream load json: 18 seconds loaded 2358488459 Bytes, about 124 MB/s
stream load orc: 65 seconds loaded 1101869774 Bytes, about 16 MB/s
stream load parquet: 32 seconds loaded 861443392 Bytes, about 25 MB/s
insert into select: 29.3 seconds inserted 10000000 Rows, about 341K ops/s
storage size: 17099302180 Bytes

@doris-robot
Copy link

TPC-H test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
Tpch sf100 test result on commit d612f52552a6bac063943063f06d24803cad3879, data reload: false

run tpch-sf100 query with default conf and session variables
q1	4844	4670	4629	4629
q2	369	144	138	138
q3	2026	1947	1859	1859
q4	1370	1233	1226	1226
q5	3943	3912	3986	3912
q6	250	127	128	127
q7	1432	884	878	878
q8	2748	2774	2757	2757
q9	22272	9696	9429	9429
q10	3483	3532	3517	3517
q11	382	243	241	241
q12	456	301	296	296
q13	4534	3878	3789	3789
q14	321	295	294	294
q15	581	528	518	518
q16	669	580	584	580
q17	1125	967	947	947
q18	7869	7380	7359	7359
q19	1680	1670	1654	1654
q20	550	288	298	288
q21	4391	3915	3966	3915
q22	469	371	373	371
Total cold run time: 65764 ms
Total hot run time: 48724 ms

run tpch-sf100 query with default conf and set session variable runtime_filter_mode=off
q1	4575	4580	4563	4563
q2	342	219	256	219
q3	4009	3992	3988	3988
q4	2707	2717	2686	2686
q5	9693	9735	9660	9660
q6	248	121	124	121
q7	3021	2488	2495	2488
q8	4421	4386	4427	4386
q9	12837	12825	12794	12794
q10	4084	4153	4163	4153
q11	780	645	651	645
q12	974	809	813	809
q13	4303	3607	3524	3524
q14	388	342	349	342
q15	566	530	518	518
q16	726	668	683	668
q17	3915	3896	3853	3853
q18	9472	8935	9016	8935
q19	1803	1738	1762	1738
q20	2391	2087	2044	2044
q21	8817	8410	8648	8410
q22	885	798	800	798
Total cold run time: 80957 ms
Total hot run time: 77342 ms

@github-actions github-actions bot added the approved Indicates a PR has been approved by one committer. label Nov 24, 2023
Copy link
Contributor

PR approved by at least one committer and no changes requested.

Copy link
Contributor

PR approved by anyone and no changes requested.

@BiteTheDDDDt BiteTheDDDDt merged commit 33b5406 into apache:master Nov 24, 2023
27 of 30 checks passed
BiteTheDDDDt added a commit that referenced this pull request Nov 24, 2023
…lized view (#27523)

add limitation for duplicate expr on materialized view
xiaokang pushed a commit that referenced this pull request Nov 24, 2023
eldenmoon pushed a commit to eldenmoon/incubator-doris that referenced this pull request Nov 27, 2023
eldenmoon added a commit that referenced this pull request Nov 27, 2023
* [fix](stats) Fix update rows for unique table didn't get updated properly #26968 (#27337)

* [FIX](jsonb) fix jsonb in predict column #27325 (#27424)

* [fix](fe) slots in having clause should be set to need materialized(#27412) (#27429)

* [Bug](insert)fix insert wrong data on mv when stmt have multiple values (#27297) (#27382)

fix insert wrong data on mv when stmt have multiple values

* [fix](fe ut) Fix OlapQueryCacheTest failed (#27305) (#27406)

1.
```
java.lang.NullPointerException: null
        at org.apache.doris.catalog.Env.getCurrentSystemInfo(Env.java:793) ~[classes/:?]
        at org.apache.doris.qe.SimpleScheduler$UpdateBlacklistThread.run(SimpleScheduler.java:206) ~[classes/:?]
        at java.lang.Thread.run(Thread.java:750) ~[?:1.8.0_382]

java.lang.NullPointerException
        at org.apache.doris.qe.OlapQueryCacheTest.setUp(OlapQueryCacheTest.java:226)
```

2.
```
[ERROR] testSqlCacheKeyWithNestedViewForNereids  Time elapsed: 1.962 s  <<< FAILURE!
java.lang.AssertionError: SELECT command denied to user 'testCluster:testUser'@'192.168.1.1' for table 'internal: testCluster:testDb: appevent'
	at org.apache.doris.qe.OlapQueryCacheTest.parseSqlByNereids(OlapQueryCacheTest.java:579)
	at org.apache.doris.qe.OlapQueryCacheTest.testSqlCacheKeyWithNestedViewForNereids(OlapQueryCacheTest.java:1338)
```

3.
```
[ERROR] Tests run: 28, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 113.63 s <<< FAILURE! - in org.apache.doris.qe.OlapQueryCacheTest
[ERROR] testCacheModeTable  Time elapsed: 1.657 s  <<< ERROR!
java.lang.IllegalArgumentException: Value of type org.apache.doris.qe.QueryState incompatible with return type org.apache.doris.system.SystemInfoService of org.apache.doris.catalog.Env#getCurrentSystemInfo()
        at org.apache.doris.qe.OlapQueryCacheTest.setUp(OlapQueryCacheTest.java:156)
```

* [regression test](schema change) add some schema change regression cases (#27112) (#27418)

* [fix](Nereids) result type of add precision is 1 more than expected (#27136) (#27426)

* [fix](Nereids): fill miss slot in having subquery (#27177) (#27394)

* [fix](memory) Fix make_top_consumption_snapshots heap-use-after-free #27434 (#27465)

* [fix](function) make TIMESTAMP function DEPEND_ON_ARGUMENT (#27343) (#27458)

* [fix](test) order by clause in test_map(#27390) (#27391)

pick #27390

* [performance](Planner): optimize getStringValue() in DateLiteral (#27363) (#27470)

- reduce cost of `getStringValue()`
- original code don't consider `microsecond` part in `getStringValue()`

(cherry picked from commit 044a295)

* [Chore](pick) do not push down agg on aggregate column (#27356) (#27498)

* [fix](stats) table not exists error msg not print objects name #27074 (#27463)

* [improve](nereids) support agg function of count(const value) pushdown #26677 (#27499)

support sql: select count(1)-count(not null) from table, the agg of count could push down.

* [test](fe-ut) fix unstable MysqlServerTest (#27459)

Need to find a unbind port for MysqlServerTest

* [opt](MergedIO) no need to merge large columns (#27315) (#27497)

1. Fix a profile bug of `MergeRangeFileReader`, and add a profile `ApplyBytes` to show the total bytes  of ranges.
2. There's no need to merge large columns, because `MergeRangeFileReader` will increase the copy time.

* [improvement](drop tablet)  impr gc shutdown tablet lock (#26151) (#27478)

* [doc](stats) SQL manual for stats (#27461)

* [chore](merge-on-write) disable rowid conversion check for mow table by default (#27482) (#27508)

* [fix](regression)Fix hive p2 case (#27466) (#27511)

* [fix](statistics)Fix auto analyze remove finished job bug #27486 (#27510)

* [Bug](bitmap) Fix heap-use-after-free in the bitmap functions #27411 (#27521)

* [Pick](nereids) Pick: partition prune fails in case of NOT expression (#27047) (#27507)

* [fix](clone) Fix engine_clone file exist (#27361) (#27536)

* [chore](case) adjust timeout of broker load case #27540

* Fix auto analyze doesn't filter unsupported type bug. (#27547)

Fix auto analyze doesn't filter unsupported type bug.
Catch throwable in auto analyze thread for each database, otherwise the thread will quit when one database failed to create jobs and all other databases will not get analyzed.
change FE config item full_auto_analyze_simultaneously_running_task_num to auto_analyze_simultaneously_running_task_num
backport #27559

* [chore](fe plugin) Upgrade dependency to doris 2.0-SNAPSHOT #27522 (#27558)

* [Bug](materialized-view) add limitation for duplicate expr on materialized view (#27523) (#27562)

* [fix](planner)join node should output required slot from parent node #27526 (#27551)

* [branch-2.0](hive) enable hive view by default (#27550)

* [pick](nereids) adjust bc join and shuffle join #27113 (#27566)

* [Fix](hive-transactional-table) Fix NPE when query empty hive transactional table. (#27567)

---------

Co-authored-by: AKIRA <33112463+Kikyou1997@users.noreply.github.com>
Co-authored-by: amory <wangqiannan@selectdb.com>
Co-authored-by: Jerry Hu <mrhhsg@gmail.com>
Co-authored-by: Pxl <pxl290@qq.com>
Co-authored-by: Xinyi Zou <zouxinyi02@gmail.com>
Co-authored-by: Luwei <814383175@qq.com>
Co-authored-by: morrySnow <101034200+morrySnow@users.noreply.github.com>
Co-authored-by: 谢健 <jianxie0@gmail.com>
Co-authored-by: Mryange <59914473+Mryange@users.noreply.github.com>
Co-authored-by: jakevin <jakevingoo@gmail.com>
Co-authored-by: zhangstar333 <87313068+zhangstar333@users.noreply.github.com>
Co-authored-by: Mingyu Chen <morningman@163.com>
Co-authored-by: Ashin Gau <AshinGau@users.noreply.github.com>
Co-authored-by: yujun <yu.jun.reach@gmail.com>
Co-authored-by: Xin Liao <liaoxinbit@126.com>
Co-authored-by: Jibing-Li <64681310+Jibing-Li@users.noreply.github.com>
Co-authored-by: xy720 <22125576+xy720@users.noreply.github.com>
Co-authored-by: minghong <englefly@gmail.com>
Co-authored-by: Jack Drogon <jack.xsuperman@gmail.com>
Co-authored-by: Dongyang Li <hello_stephen@qq.com>
Co-authored-by: zhiqiang <seuhezhiqiang@163.com>
Co-authored-by: starocean999 <40539150+starocean999@users.noreply.github.com>
Co-authored-by: Qi Chen <kaka11.chen@gmail.com>
seawinde pushed a commit to seawinde/doris that referenced this pull request Nov 28, 2023
…lized view (apache#27523)

add limitation for duplicate expr on materialized view
gnehil pushed a commit to gnehil/doris that referenced this pull request Dec 4, 2023
@xiaokang xiaokang mentioned this pull request Dec 4, 2023
XuJianxu pushed a commit to XuJianxu/doris that referenced this pull request Dec 14, 2023
…lized view (apache#27523)

add limitation for duplicate expr on materialized view
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by one committer. dev/2.0.3-merged reviewed usercase Important user case type label
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants