创建视图,字段类型显示问题

【详述】
– 创建视图,多表union的视图
create view rx_bd_test.tmp_test_001 as
select
custom
, null as user_id
from rx_bd_1000000.dwd_fact_event_0preset_paid_17
union
select
null as custom
,user_id
from rx_bd_1000000.dwd_fact_event_0preset_share_get_data_15
;

– 查询视图的列属性
show columns from rx_bd_test.tmp_test_001;

image

发现对于user_id的字段类型是null_type,并没有根据 rx_bd_1000000.dwd_fact_event_0preset_share_get_data_15 这个表的user_id来判断类型。

这个问题有可能解决吗?这边需要获取字段类型来做对应的计算操作。

【业务影响】
【StarRocks版本】2.4.0
【集群规模】例如:3fe+5be

您好,我测试了下。往对应column写入数据之后会推断出对应的类型。您也可以测试验证下。

不会啊,我插入一条数据也没有变化,还是null_type

您执行下show create table table_name;看下呢

视图创建:updated_at 在test_08表里有,在sql_type3表没有
create view rx_bd_test.tmp_test_002 as
select
event
, null as updated_at
from rx_bd_1000000.sql_type3
union
select
null as event
,updated_at
from rx_bd_1000000.test_08
;

– 向test_08里添加一条信息
INSERT INTO rx_bd_1000000.test_08
(time, plat_id, app_id, channel_id, updated_at, #num, updater, bb, dd, #app_id, #user_id)
VALUES(‘2022-10-14’, ‘1’, 0, 0, ‘2022-10-14 10:00:00’, 0.0, ‘’, ‘’, ‘1’, ’ ', ‘’);

– select * from rx_bd_1000000.test_08;

– select * from rx_bd_test.tmp_test_002;
image

– show create view rx_bd_test.tmp_test_002;

– show columns from rx_bd_test.tmp_test_002;

目前我这边看的话,没有变化

我重新从头测试一边,类型还是null_type

你是什么版本?我是2.4.0

我这面使用的是2.4.1,您可以升级之后再次测试下。

不太好升级。目前业务都是线上跑的。能帮忙在 2.4.0 上测试一下吗?

修复在 UNION ALL 之上建立的 view 中,当 UNION ALL 输入列有常量 NULL,则 view 的 schema 错误,正常情况下列的类型是 UNION ALL 所有输入列的类型,但实际上是 NULL_TYPE 的问题。#13917

麻烦确认下,我提的问题是否是这个bug?