Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

jooq estende o dialeto existente. Adote o dialeto do MySQL para o dialeto do Hive do Apache


Infelizmente, estender o jOOQ para oferecer suporte completo a um novo dialeto SQL não é muito simples. A API do jOOQ cresceu ao longo do tempo, suportando um grande conjunto de variantes de sintaxe SQL padrão e específicas do fornecedor. Embora o dialeto do Apache Hive possa parecer semelhante ao MySQL, provavelmente existem muitas diferenças sutis que precisariam ser implementadas nos componentes internos do jOOQ. A implementação diferente da cláusula LIMIT .. OFFSET é apenas um problema. Dito isso, geralmente não é uma boa ideia usar o jOOQ com um dialeto "desconhecido" ou "não suportado".

Solução:a curto prazo


A curto prazo, você provavelmente terá que corrigir o SQL renderizado do jOOQ. A melhor técnica para isso é usar um ExecuteListener conforme documentado aqui:

Ao receber um evento "renderEnd()", você poderá acessar o SQL renderizado e modificá-lo usando expressões regulares ou qualquer técnica que preferir.

Solução:a longo prazo


A longo prazo, pode haver uma solução melhor se / quando #2337 está implementado (mas provavelmente não implementaremos isso)