
# 8.3.0.x补丁新增功能及解决问题
 #### 8.3.0.110
表18.3.0.110新增功能/解决问题列表 
| 类别                                                         | 功能或问题描述                                                                                              | 问题原因                                                                          | 问题出现版本    | 修复建议              |
|:---|:---|:---|:---|:---|
| 新增功能                                                       | 新安装集群默认打开全局死锁检测功能，之前版本默认没有打开。                                                                        | -                                                                             | -         | -                 |
| 解决问题  | 当一个常用表达式（Common Table Expressions，简称CTE）仅被另一个CTE引用多次时可能触发空指针访问导致故障。                                  | 当一个CTE仅被另一个CTE引用多次时，计划递归遍历逻辑错误导致访问空指针，产生集群故障。                                 | 8.3.0.101 | 升级到8.3.0.110及以上版本 |
| 解决问题  | 列存表查询语句中出现多结果集函数时，执行该语句会报错Set-returning function is not supported in vector engine。                  | 非表的scan算子上的向量化执行引擎不支持多结果集函数。                                                  | 8.3.0.101 | 升级到8.3.0.110及以上版本 |
| 解决问题  | 集群低版本升级到8.3.0版本时，线程池功能失效。                                                                            | 集群低版本升级到8.3.0时，需要根据当前硬件配置设置max_stream_pool，因为默认单位识别异常，导致max_stream_pool被设置为0。 | 8.3.0.101 | 升级到8.3.0.110及以上版本 |
| 解决问题  | 使用parquet外表查询报错The parameter destMax is too small or parameter count is larger than macro parameter。 | parquet外表的string类型字段的缓冲区空间管理错位，导致大于1K的字段内存分配不够，引起业务报错。                        | 8.3.0.101 | 升级到8.3.0.110及以上版本 |
| 解决问题  | 正在数据重分布的冷热表进行分区交换操作时报错Multi-temperature table only support column partition table。                   | 重分布过程中创建的临时表引用了原表的冷热表属性，导致临时表创建失败。                                            | 8.3.0.101 | 升级到8.3.0.110及以上版本 |
   
#### 8.3.0.108
表28.3.0.108新增功能/解决问题列表 
| 类别   | 功能或问题描述         | 问题原因                                | 问题出现版本    | 修复建议              |
|:---|:---|:---|:---|:---|
| 新增功能 | 无               | -                                   | -         | -                 |
| 解决问题 | copy并发入库出现锁超时报错 | RecoverFromDelta放锁时错误使用加锁接口，导致锁未释放。 | 8.3.0.105 | 升级到8.3.0.108及以上版本 |
   
#### 8.3.0.105
表38.3.0.105新增功能/解决问题列表 
| 类别   | 功能或问题描述                                          | 问题原因                                                                         | 问题出现版本        | 修复建议              |
|:---|:---|:---|:---|:---|
| 新增功能 | 无                                                | -                                                                            | -             | -                 |
| 解决问题 | 多count distinct走share scan出现结果集错误                | sharescan计划生成时，CTE子查询误用了上层的等价类信息，造成分布列判断错误，生成计划缺少数据重分布算子                     | 8.3.0.105以前版本 | 升级到8.3.0.105及以上版本 |
| 解决问题 | 升级到8.3.0版本后系统表autovacuum未生效                      | 升级8.3.0前做过容灾迁移，容灾迁移会先设置autovacuum_max_workers为0，再修改成原来的默认值3，导致升级后未将该值设为预期的值6 | 8.3.0.105以前版本 | 升级到8.3.0.105及以上版本 |
| 解决问题 | 修复UDF在recv接收数据时，可能存在超时后error为EAGAIN但没有被捕获直接报错的问题 | 当cn_retry开启时，socket recv 20s超时后，EAGAIN的错误码没有被捕获，直接走到报错逻辑                     | 8.3.0.105以前版本 | 升级到8.3.0.105及以上版本 |
   
#### 8.3.0.103
表48.3.0.103新增功能/解决问题列表 
| 类别   | 功能或问题描述                                         | 问题原因                                                                                                                   | 问题出现版本        | 修复建议              |
|:---|:---|:---|:---|:---|
| 新增功能 | json/jsonb支持向量化。                                | -                                                                                                                      | -             | -                 |
| 解决问题 | 使用ORC外表场景偶发产生core问题。                            | ORC外表foreign scan查询条件下推，在查询约束条件为bool类型表达式判断，且在表达式中存在隐式转换，且为is null条件时，偶现内部类型转换异常，内存越界(RelabelType强转var)。               | 8.3.0.103以前版本 | 升级到8.3.0.103及以上版本 |
| 解决问题 | 执行1000万 batch upsert并发冲突更新场景时出现cstore buffer报错。 | cstore buffers的缓存淘汰机制为clock sweep，当前clock sweep最多为三秒三圈，因此存在无法淘汰大量使用CU（Usage Count \> 3)，从而出现内存可用，但报cstore buffer过小的错误。 | 8.3.0.103以前版本 | 升级到8.3.0.103及以上版本 |
| 解决问题 | 实时入库场景下，入库性能长稳，但是任务停止后delta表的空间一直不释放。           | hstore opt表的delete记录可能残留，导致空间一直无法释放。                                                                                   | 8.3.0.103以前版本 | 升级到8.3.0.103及以上版本 |
   
#### 8.3.0.101
表58.3.0.101新增功能/解决问题列表 
| 类别   | 功能或问题描述                                                                                                                     | 问题原因                                                    | 问题出现版本    | 修复建议                     |
|:---|:---|:---|:---|:---|
| 新增功能 | vacuum full适配binlog表。                                                                                                       | -                                                       | -         | -                        |
| 解决问题 | analyze语句报错Could not open file "pg_clog/000000000075"                                                                       | 列存表进行vacuumfull后可能提前回收clog，导致主备切换后进行analyze时无法访问clog文件。 | 8.3.0.100 |  升级到8.3.0.101及以上版本 |
| 解决问题 | 使用\\parallel on高并发下创建job报错duplicate key value violates unique constraint "pg_jobs_id_index" ，Key(job_id)=() already exists。 | 获取job_id处的锁未成功加上，导致并发时取到相同job_id报错。                     | 8.3.0.100 |  升级到8.3.0.101及以上版本 |
| 解决问题 | 多个nodegroup场景下，重分布不支持跳过指定表，导致缩容失败。                                                                                          | 重分布不支持跳过指定表。                                            | 8.3.0.100 |  升级到8.3.0.101及以上版本 |
| 解决问题 | 执行Hstore用例，网卡故障时，因为内存为超大负数，导致用例执行失败。                                                                                        | 临时变量声明后，未赋值导致参数值非预期，后续再去扣减内存，内存出现超大负数。                  | 8.3.0.100 |  升级到8.3.0.101及以上版本 |
   
