Mysql
 sql >> Baza danych >  >> RDS >> Mysql

jooq rozszerza istniejący dialekt. Zaadoptuj dialekt MySQL do dialektu Apache Hive

Niestety rozszerzenie jOOQ o pełną obsługę nowego dialektu SQL nie jest bardzo proste. API jOOQ rozrosło się z biegiem czasu, obsługując wielki zestaw standardowych i specyficznych dla dostawcy wariantów składni SQL. Chociaż dialekt Apache Hive może wydawać się podobny do MySQL, prawdopodobnie istnieje wiele subtelnych różnic, które należałoby zaimplementować w wewnętrznych elementach jOOQ. Odmienna implementacja klauzuli LIMIT .. OFFSET to tylko jeden problem. To powiedziawszy, generalnie nie jest dobrym pomysłem używanie jOOQ z "nieznanym" lub "nieobsługiwanym" dialektem.

Rozwiązanie:na krótką metę

Na krótką metę prawdopodobnie będziesz musiał załatać wyrenderowany kod SQL jOOQ. Najlepszą techniką do tego jest użycie ExecuteListener, jak udokumentowano tutaj:

Po otrzymaniu zdarzenia „renderEnd()” będziesz mógł uzyskać dostęp do renderowanego kodu SQL i modyfikować go za pomocą wyrażeń regularnych lub dowolnej preferowanej techniki.

Rozwiązanie:na dłuższą metę

Na dłuższą metę może być lepszym rozwiązaniem, jeśli / kiedy #2337 jest zaimplementowany (ale prawdopodobnie tego nie zaimplementujemy)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Importowanie pliku csv z wartościami null do phpmyadmina

  2. MySQL Wildcard dla =- czy istnieje?

  3. Znajdowanie min w kolumnie, w której dwie inne kolumny mają wartość zero

  4. Czy ograniczenie UNIQUE automatycznie tworzy INDEKS w polu (polach)?

  5. Czy możliwe jest przechwycenie nieprawidłowej wartości w MySQL, gdy pojawia się błąd ograniczenia klucza obcego?