Skip to content

Commit

Permalink
[fix](ctas) fix show load throw NPE after ctas (apache#17937)
Browse files Browse the repository at this point in the history
Missing userinfo

java.lang.NullPointerException: null
        at org.apache.doris.load.loadv2.LoadJob.getShowInfo(LoadJob.java:816) ~[doris-fe.jar:1.2-SNAPSHOT]
        at org.apache.doris.load.loadv2.LoadManager.getLoadJobInfosByDb(LoadManager.java:557) ~[doris-fe.jar:1.2-SNAPSHOT]
        at org.apache.doris.qe.ShowExecutor.handleShowLoad(ShowExecutor.java:1094) ~[doris-fe.jar:1.2-SNAPSHOT]
        at org.apache.doris.qe.ShowExecutor.execute(ShowExecutor.java:280) ~[doris-fe.jar:1.2-SNAPSHOT]
        at org.apache.doris.qe.StmtExecutor.handleShow(StmtExecutor.java:1862) ~[doris-fe.jar:1.2-SNAPSHOT]
        at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:619) ~[doris-fe.jar:1.2-SNAPSHOT]
        at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:435) ~[doris-fe.jar:1.2-SNAPSHOT]
        at org.apache.doris.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:414) ~[doris-fe.jar:1.2-SNAPSHOT]
        at org.apache.doris.qe.ConnectProcessor.dispatch(ConnectProcessor.java:558) ~[doris-fe.jar:1.2-SNAPSHOT]
        at org.apache.doris.qe.ConnectProcessor.processOnce(ConnectProcessor.java:799) ~[doris-fe.jar:1.2-SNAPSHOT]
        at org.apache.doris.mysql.ReadListener.lambda$handleEvent$0(ReadListener.java:52) ~[doris-fe.jar:1.2-SNAPSHOT]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[?:1.8.0_131]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[?:1.8.0_131]
        at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_131]
  • Loading branch information
morningman authored Mar 21, 2023
1 parent bae9d8d commit 11a0ae9
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2020,6 +2020,7 @@ private void handleCtasStmt() {
if (MysqlStateType.OK.equals(context.getState().getStateType())) {
try {
parsedStmt = ctasStmt.getInsertStmt();
parsedStmt.setUserInfo(context.getCurrentUserIdentity());
execute();
if (MysqlStateType.ERR.equals(context.getState().getStateType())) {
LOG.warn("CTAS insert data error, stmt={}", ctasStmt.toSql());
Expand Down
17 changes: 14 additions & 3 deletions regression-test/suites/ddl_p0/test_ctas.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@
// under the License.

suite("test_ctas") {
def dbname = "test_ctas";
sql """drop database if exists ${dbname}"""
sql """create database ${dbname}"""
sql """use ${dbname}"""
sql """clean label from ${dbname}"""

try {
sql """
CREATE TABLE IF NOT EXISTS `test_ctas` (
Expand Down Expand Up @@ -77,9 +83,9 @@ suite("test_ctas") {
)
"""

sql """ insert into test_ctas_json_object(c1, v1, v2) values ('r1', 1.1, 1.2),('r2', 2.1, 2.2) """
sql """ insert into test_ctas_json_object(c1, v1, v2) values ('r1', 1.1, 1.2),('r2', 2.1, 2.2) """

sql """
sql """
CREATE TABLE IF NOT EXISTS `test_ctas_json_object1`
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
Expand All @@ -88,14 +94,19 @@ suite("test_ctas") {
) as select c1, json_object('title', 'Amount', 'value', v1) from test_ctas_json_object;
"""

qt_select """select * from test_ctas_json_object1 order by c1;"""
qt_select """select * from test_ctas_json_object1 order by c1;"""

sql """create table a properties("replication_num"="1") as select null as c;"""
test {
sql "select * from a"
result([[null]])
}

test {
sql """show load from ${dbname}"""
rowNum 6
}

} finally {
sql """ DROP TABLE IF EXISTS test_ctas """

Expand Down

0 comments on commit 11a0ae9

Please sign in to comment.