sql >> Base de Datos >  >> RDS >> Mysql

jooq extiende el dialecto existente. Adoptar el dialecto de MySQL al dialecto de apache Hive

Desafortunadamente, extender jOOQ para admitir completamente un nuevo dialecto SQL no es muy sencillo. La API de jOOQ ha crecido mucho con el tiempo y es compatible con un gran conjunto de variantes de sintaxis SQL estándar y específicas del proveedor. Si bien el dialecto de Apache Hive puede parecer similar a MySQL, probablemente haya muchas diferencias sutiles que deberían implementarse en las partes internas de jOOQ. La implementación diferente de la cláusula LIMIT .. OFFSET es solo un problema. Dicho esto, generalmente no es una buena idea usar jOOQ con un dialecto "desconocido" o "no admitido".

Solución:A corto plazo

A corto plazo, probablemente tendrá que parchear el SQL renderizado de jOOQ. La mejor técnica para esto es usar un ExecuteListener como se documenta aquí:

Al recibir un evento "renderEnd()", podrá acceder al SQL renderizado y modificarlo usando expresiones regulares o cualquier técnica que prefiera.

Solución:A largo plazo

A la larga, puede haber una mejor solución si / cuando #2337 está implementado (pero probablemente no lo implementaremos)