2.1.7 stream load 报错: can not cast from origin type bitmap to target type=varchar(65533)

Viewed 70

版本:
doris-2.1.7-rc03

问题描述:
建表语句中包含bitmap类型,导入时使用to_bitmap提供值,但会报语法错误

建表:

create table test_load_bitmap
(tiny_1  TINYINT,
 small_1 SMALLINT,
 bit_1 bitmap BITMAP_UNION
);

加载:

curl --location-trusted -u root:123456abc_  \
-H"columns:bit_1= to_bitmap(small_1)" \
-T ./file   \
http://fe_ip:fe_http_port/api/db/test_load_bitmap/_stream_load

报错:

{
    "TxnId": 50630,
    "Label": "4a3c7994-4d20-478a-bd66-96d255c24f3c",
    "Comment": "",
    "TwoPhaseCommit": "false",
    "Status": "Fail",
    "Message": "[ANALYSIS_ERROR]TStatus: errCode = 2, detailMessage = can not cast from origin type bitmap to target type=varchar(65533)",
    "NumberTotalRows": 0,
    "NumberLoadedRows": 0,
    "NumberFilteredRows": 0,
    "NumberUnselectedRows": 0,
    "LoadBytes": 0,
    "LoadTimeMs": 0,
    "BeginTxnTimeMs": 1,
    "StreamLoadPutTimeMs": 8,
    "ReadDataTimeMs": 0,
    "WriteDataTimeMs": 0,
    "ReceiveDataTimeMs": 0,
    "CommitAndPublishTimeMs": 0
}

我的问题:
我的用法应该符合stream load和bitmap的使用规范,这个报错应该不合理,能否修复?
是否有其它手段可以规避该问题?

1 Answers

可以加一个别名来规避,比如
报错header : columns:id,h,arr_x,arr=to_bitmap(arr_x)
正常执行header: columns:id,h,arr,arr=to_bitmap(arr_x)
建表字段
id BIGINT ,
h VARCHAR(10) ,
arr BITMAP BITMAP_UNION

另外这个问题已经修复了(预期2.1.8合入),修复pr https://github.com/apache/doris/pull/44968