1、problem:I ran into an 'Unexpected exception: null' error when submitting an 
update sql to dorisDB.
2、env:Deployed the latest doris version(2.0.2) .Using the upsert feature by 
setting up parameters like enable_unique_key_merge_on_write = true and set 
enable_unique_key_partial_update=true in the Unique model.
3、Error occurred when using the update sql to modify data with full unique keys.
Update sql can be executed successfully,when using part of then unique keys or 
any none unique key or mixed.
4、
1)table ddl:
CREATE TABLE mtstate (
id varchar(100) NOT NULL,
type int(11) NOT NULL,
date datetime NULL,
remark varchar(100) NULL COMMENT,
action_time datetime NULL
) ENGINE=OLAP
UNIQUE KEY(id, type)
COMMENT 'OLAP'
DISTRIBUTED BY HASH(id, type) BUCKETS 10
PROPERTIES (
"replication_allocation" = "tag.location.default: 3",
"is_being_synced" = "false",
"storage_format" = "V2",
"enable_unique_key_merge_on_write" = "true",
"light_schema_change" = "true",
"store_row_column" = "true",
"disable_auto_compaction" = "false",
"enable_single_replica_compaction" = "false"
);

successful :update mtstate t set t.remark ='898989' where t.id 
='380133091267784704' and t.type =3 and t.date ='2023-11-12 00:00:00';
update mtstate t set t.remark ='898989' where t.id ='380133091267784704' and 
t.date ='2023-11-12 00:00:00';
update mtstate t set t.remark ='898989' where t.id ='380133091267784704' ;
etc.
3)failed : update mtstate t set t.remark ='898989' where t.id 
='380133091267784704' and t.type =3;

5、error info
1)mysql client:
SQL 错误 [1105] [HY000]: errCode = 2, detailMessage = Unexpected exception: null。
2)fe.log
2023-11-13 11:26:45,128 INFO (mysql-nio-pool-9|1234) 
[DatabaseTransactionMgr.beginTransaction():351] begin transaction: txn id 
27988117 with label insert_ab22aaf8ce44464c_b674210e829cba2b from coordinator 
FE: 10.12.42.77, listener id: -1
2023-11-13 11:26:45,198 WARN (mysql-nio-pool-9|1234) 
[StmtExecutor.analyze():992] Analyze failed. stmt[1299, 
ab22aaf8ce44464c-b674210e829cba2b]
java.lang.NullPointerException: null
at 
org.apache.doris.planner.OriginalPlanner.createPlanFragments(OriginalPlanner.java:239)
 ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.planner.OriginalPlanner.plan(OriginalPlanner.java:101) 
~[doris-fe.jar:1.2-SNAPSHOT]
at 
org.apache.doris.qe.StmtExecutor.analyzeAndGenerateQueryPlan(StmtExecutor.java:1141)
 ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.analyze(StmtExecutor.java:975) 
~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.executeByLegacy(StmtExecutor.java:673) 
~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:451) 
~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:422) 
~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.handleUpdateStmt(StmtExecutor.java:2160) 
~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.executeByLegacy(StmtExecutor.java:744) 
~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:448) 
~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:422) 
~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:435) 
~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.ConnectProcessor.dispatch(ConnectProcessor.java:583) 
~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.ConnectProcessor.processOnce(ConnectProcessor.java:834) 
~[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:1149) 
~[?:1.8.0_162]
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
~[?:1.8.0_162]
at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_162]
2023-11-13 11:26:45,198 WARN (mysql-nio-pool-9|1234) 
[StmtExecutor.executeByLegacy():776] execute Exception. stmt[1299, 
ab22aaf8ce44464c-b674210e829cba2b]
org.apache.doris.common.AnalysisException: errCode = 2, detailMessage = 
Unexpected exception: null
at org.apache.doris.qe.StmtExecutor.analyze(StmtExecutor.java:993) 
~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.executeByLegacy(StmtExecutor.java:673) 
~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:451) 
~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:422) 
~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.handleUpdateStmt(StmtExecutor.java:2160) 
~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.executeByLegacy(StmtExecutor.java:744) 
~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:448) 
~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:422) 
~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:435) 
~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.ConnectProcessor.dispatch(ConnectProcessor.java:583) 
~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.ConnectProcessor.processOnce(ConnectProcessor.java:834) 
~[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:1149) 
~[?:1.8.0_162]
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
~[?:1.8.0_162]
at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_162]


6、Is there anthing wrong with it?
Insert sql proceeded very smoothly, by the way.And can partly update the column.
thanks!!

Reply via email to