基于pg driver 的dremio cratedb arp 扩展

发布时间 2023-12-21 21:35:05作者: 荣锋亮

实际上pg 驱动是可以直接链接cratedb 的但是因为默认实现会自动添加一个编码造成生成的sql 在cratedb 运行异常

参考代码

核心是arp 方言处理上,移除了关于编码的处理,实际上与mssql server 处理是一样的,主要代码实际上来自ce 版本的pg 扩展

public SqlCollation getDefaultCollation(SqlKind kind) {
  if (DISABLE_PUSH_COLLATION) {
     return null;
  } else {
     switch(kind) {
     case LITERAL:
     case IDENTIFIER:
        return POSTGRES_BINARY_COLLATION;
     default:
        return null;
     }
  }
}

说明

完整代码在github 上可以参考,处理核心就是移除了对于编码的处理部分,这样就可以解决了,目前基于的dremio 24.3 ,对于低版本的可以
调整依赖自己编译

参考资料

https://github.com/rongfengliang/my-dremio-cratedb-connector