StarRocks / starrocks

StarRocks, a Linux Foundation project, is a next-generation sub-second MPP OLAP database for full analytics scenarios, including multi-dimensional analytics, real-time analytics, and ad-hoc queries.
https://starrocks.io
Apache License 2.0
8.67k stars 1.75k forks source link

unknown error when update primary table #10009

Closed tiannan-sr closed 2 years ago

tiannan-sr commented 2 years ago

Steps to reproduce the behavior (Required)

  1. create primary table:

    create table pri_tbl(
    col_tinyint tinyint
    ,col_date date
    ,col_char char(10)
    ,col_string string
    ,col_smallint smallint
    ,col_timestamp datetime
    ,col_varchar varchar(100)
    ,col_boolean boolean
    ,col_int int
    ,col_bigint bigint
    ,col_float float
    ,col_double double
    ,col_decimal decimal(38,18)
    ,col_largeint largeint
    ,col_array array<string>
    ,col_json json)
    ENGINE=OLAP
    primary KEY(col_tinyint,col_date)
    DISTRIBUTED BY HASH(col_tinyint) BUCKETS 3
    PROPERTIES ("replication_num" = "3");
  2. update:

    mysql> update pri_tbl set col_array = ['231','4321','42']  where col_date < '2022-10-10';
    ERROR 1064 (HY000): Unknown error

fe.warn.log:

2022-08-15 20:01:32,067 WARN (starrocks-mysql-nio-pool-138|64520) [StmtExecutor.execute():490] execute Exception, sql update pri_tbl set col_array = ['231','4321','42']  where col_date < '2022-10-10'
java.lang.NullPointerException: null
        at com.starrocks.analysis.CastExpr.analyze(CastExpr.java:156) ~[starrocks-fe.jar:?]
        at com.starrocks.analysis.CastExpr.<init>(CastExpr.java:62) ~[starrocks-fe.jar:?]
        at com.starrocks.sql.analyzer.UpdateAnalyzer.analyze(UpdateAnalyzer.java:68) ~[starrocks-fe.jar:?]
        at com.starrocks.sql.analyzer.Analyzer$AnalyzerVisitor.visitUpdateStatement(Analyzer.java:234) ~[starrocks-fe.jar:?]
        at com.starrocks.sql.analyzer.Analyzer$AnalyzerVisitor.visitUpdateStatement(Analyzer.java:80) ~[starrocks-fe.jar:?]
        at com.starrocks.analysis.UpdateStmt.accept(UpdateStmt.java:55) ~[starrocks-fe.jar:?]
        at com.starrocks.sql.ast.AstVisitor.visit(AstVisitor.java:126) ~[starrocks-fe.jar:?]
        at com.starrocks.sql.analyzer.Analyzer$AnalyzerVisitor.analyze(Analyzer.java:82) ~[starrocks-fe.jar:?]
        at com.starrocks.sql.analyzer.Analyzer.analyze(Analyzer.java:77) ~[starrocks-fe.jar:?]
        at com.starrocks.sql.StatementPlanner.plan(StatementPlanner.java:43) ~[starrocks-fe.jar:?]
        at com.starrocks.qe.StmtExecutor.execute(StmtExecutor.java:347) ~[starrocks-fe.jar:?]
        at com.starrocks.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:316) ~[starrocks-fe.jar:?]
        at com.starrocks.qe.ConnectProcessor.dispatch(ConnectProcessor.java:429) ~[starrocks-fe.jar:?]
        at com.starrocks.qe.ConnectProcessor.processOnce(ConnectProcessor.java:667) ~[starrocks-fe.jar:?]
        at com.starrocks.mysql.nio.ReadListener.lambda$handleEvent$0(ReadListener.java:55) ~[starrocks-fe.jar:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_322]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_322]
        at java.lang.Thread.run(Thread.java:750) [?:1.8.0_322]

Expected behavior (Required)

Real behavior (Required)

StarRocks version (Required)

decster commented 2 years ago

may relate to https://github.com/StarRocks/starrocks/issues/7886