1. 21 10月, 2022 1 次提交
  2. 14 10月, 2022 4 次提交
  3. 13 10月, 2022 1 次提交
    • B
      OB-FIX UP#001: 修复Binary类型的数据校验字符集的问题 (#1086) · 99777b4b
      beifangxiuwhx 提交于
      Description:
      ============
      
      对于Binary类型来说,所有数据的存储看作二进制,是不需要校验字符集的。
      
      但是OB在处理Binary类型的数据操作时,会校验字符集,举个例子,如果你在utf8mb4的表里,往binary写入GBK编码的"你"字,是会报错的。只能以 insert into t values(X'C4E3')方法插入
      
      这对业务从mysql迁移到OB是很痛苦的事情。
      
      Analysis:
      =========
      
      OB的binary类型底层实现和varchar相同,只在DDL阶段会区分binary类型。
      
      出错的原因是在SQL解析阶段(transform_tree)将binary的字段按varchar处理进行字符集编码检查。这是因为在词法语法解析时数据库无从得知当前的字符串是否为binary(目前SQL解析阶段还获取不到实际表结构)
      
      Fix:
      ========
      修复方法:
      
      个人觉得词法语法解析阶段进行字符集检查完全没有必要,后续物理执行计划算子打开时,OB也会对字符集编码进行处理。
      
      因此,建议删除resolve_const函数中的check_well_formed_str
      
      目前来看,这个函数只用来处理SQL解析后的parseNode节点,对后续的SQL逻辑没有侵入。
      
      -------------
      
      wenghaixing@unionpay.com
      99777b4b
  4. 12 10月, 2022 5 次提交
  5. 09 10月, 2022 2 次提交
  6. 04 10月, 2022 13 次提交
  7. 03 10月, 2022 2 次提交
  8. 21 9月, 2022 2 次提交
  9. 20 9月, 2022 3 次提交
  10. 19 9月, 2022 7 次提交