Skip to content

functions form as char[N], if execute in dble without [N] section will get error #1379

@irene-coming

Description

@irene-coming
  • dble version:
    5.6.29-dble-9.9.9.9-d8a5c79cc4efda58659d7990340fde23777a1558-20190903023556

  • preconditions :
    no

  • configs:

schema.xml



rule.xml



server.xml



  • steps:
    step1. query to dble:
mysql> select concat(a.name, cast(b.pad as char)) from sharding_3_t1 a, sharding_2_t1 b where a.id = b.id;
ERROR 1003 (HY000): join thread error, String index out of range: -1
  • expect result:
    1. step1, query success
  • real result:
    1. query failed
  • supplements:
    1. other similar functions may also have this problem, eg: nchar, need check
    2. dble.log related info:
2019-09-03 05:38:45.576  INFO [complexQueryExecutor0] (com.actiontech.dble.backend.mysql.nio.handler.query.impl.join.JoinHandler.ownThreadJob(JoinHandler.java:235)) - join thread error, String index out of range: -1
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
        at java.lang.String.substring(String.java:1967) ~[?:1.8.0_121]
        at com.actiontech.dble.plan.common.item.function.castfunc.ItemCharTypeCast.valStr(ItemCharTypeCast.java:54) ~[dble-9.9.9.9.jar:?]
        at com.actiontech.dble.plan.common.item.function.strfunc.ItemStrFunc.valInt(ItemStrFunc.java:66) ~[dble-9.9.9.9.jar:?]
        at com.actiontech.dble.plan.common.item.Item.updateNullValue(Item.java:467) ~[dble-9.9.9.9.jar:?]
        at com.actiontech.dble.plan.common.item.function.ItemFunc.isNull(ItemFunc.java:128) ~[dble-9.9.9.9.jar:?]
        at com.actiontech.dble.plan.common.item.function.strfunc.ItemFuncConcat.valStr(ItemFuncConcat.java:29) ~[dble-9.9.9.9.jar:?]
        at com.actiontech.dble.plan.common.item.Item.getRowPacketByte(Item.java:320) ~[dble-9.9.9.9.jar:?]
        at com.actiontech.dble.plan.common.item.ItemRef.getRowPacketByte(ItemRef.java:123) ~[dble-9.9.9.9.jar:?]
        at com.actiontech.dble.backend.mysql.nio.handler.query.impl.SendMakeHandler.rowResponse(SendMakeHandler.java:100) ~[dble-9.9.9.9.jar:?]
        at com.actiontech.dble.backend.mysql.nio.handler.query.impl.join.JoinHandler.connectLeftAndRight(JoinHandler.java:289) ~[dble-9.9.9.9.jar:?]
        at com.actiontech.dble.backend.mysql.nio.handler.query.impl.join.JoinHandler.ownThreadJob(JoinHandler.java:215) [dble-9.9.9.9.jar:?]
        at com.actiontech.dble.backend.mysql.nio.handler.query.OwnThreadDMLHandler$1.run(OwnThreadDMLHandler.java:64) [dble-9.9.9.9.jar:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_121]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_121]
        at java.lang.Thread.run(Thread.java:745) [?:1.8.0_121]

Metadata

Metadata

Assignees

Labels

resolveproblem has been fixed by developer

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions