LibreOffice HSQLDB formátum importálása

LibreOffice logó A LibreOffice programcsomag Base nevű programja egy kényelmes grafikus felületet biztosít egy, a háttérben futó adatbázis-kezelő alkalmazására. A háttérben többféle adatbázis-kezelő rendszer futhat. Lehet ez beágyazott adatbázis: HyperSQL (HSQLDB) vagy Firebird, illetve lehet külső rendszerhez is kapcsolódni. A utóbbi hónapokban a munkám a Base beágyazott adatbázisait érinti.

Alapértelmezettként a program HyperSQL adatbázist használ, ha a felhasználó beépített adatbázist hoz létre. Ez több szempontból – Java runtime függőségként jelentkezik, Java /C++ áthívások szükségesek – szerencsétlen, ezért a TDF úgy döntött, hogy a jövőben a Firebird adatbázist helyeznék előtérbe. Kitettek egy pályázati kiírást, ami lehetővé teszi a HyperSQL adatbázisok importálását Firebird adatbázisba.

A fent említett tendert a Collabora elvállalta, és a teendőket a következő részfeladatokra osztottuk:

  1. A Firebird driver jelentősebb hibáinak kijavítása,
  2. Az adatbázis séma importálása,
  3. Az adatbázis – bináris állományban tárolt – adatainak importálása,
  4. Az új elemek integrálása, tesztek írása, stb.

Első feladatként tehát rendberaktuk a Firebird drivert, ami magába foglalta a legfontosabb hibák kijavítását (pl. tdf#70425), és a hiányzó típusok implementálását (tdf#104734).

A séma importálásához egy új könyvtárat hoztam létre „dbahsql” névvel. A HyperSQL adatbázis-kezelő rendszer a sémát egy szövegfájlban tárolja SQL utasítások formájában. A könyvtár ezeket az utasításokat olvassa ki, és átalakítja úgy, hogy a Firebird elfogadja őket. Például van egy-két adattípus, amit a két rendszer máshogy oldott meg ( a LONGVARCHAR típust például a BLOB típusnak egy speciális verziójával lehet létrehozni Firebird esetén).

A bináris adatok importálása, és a tesztelés egyelőre még csak a jövő zenéje.

További információkat és a jövőbeni fejleményeket a blogomon lehet megtalálni, angol nyelven. Ugyanezt a témát itt ecsetelgetem.

Ezúton köszönöm, hogy Bunth Tamás beszámolt a LibreOffice-on végzett munkájáról!