connectivity/README.md |   16 ++++++++++++++++
 1 file changed, 16 insertions(+)

New commits:
commit 723a0a067daaefb8b082fc849713ee6502ec9231
Author:     Julien Nabet <serval2...@yahoo.fr>
AuthorDate: Sun Apr 30 10:35:33 2023 +0200
Commit:     Julien Nabet <serval2...@yahoo.fr>
CommitDate: Sun Apr 30 11:25:03 2023 +0200

    Firebird: add info FDB/FBK use on README
    
    Thank you again Mike for this info!
    
    Change-Id: Iab02f486035de48636d84148a045e86b24307a95
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151218
    Tested-by: Julien Nabet <serval2...@yahoo.fr>
    Reviewed-by: Julien Nabet <serval2...@yahoo.fr>

diff --git a/connectivity/README.md b/connectivity/README.md
index af57e1566daf..a2c27677c3a4 100644
--- a/connectivity/README.md
+++ b/connectivity/README.md
@@ -48,3 +48,19 @@ the environment variable "CONNECTIVITY_TEST_MYSQL_DRIVER".
     podman stop mariadb
     podman rm mariadb
 ```
+
+### Firebird
+
+Firebird has two primary file types:
+
+- Databases - FDB files. These are version-specific, platform-specific, 
optimized for performance, and thus incompatible between versions. These are 
what those comments are about. Initially, when FB integration was considered, 
these files were evaluated for ODBs, but were rejected because of the said 
incompatibility - even when the version is the same, it will differ on big 
endian architecture and little endian one. The problem discussed in those 
comments is when people open stand-alone FDBs that are shipped e.g. with FB 
installation itself, not when people open ODBs.
+
+- Database backups - FBKs. These are what we use inside ODBs. These are 
designed to be compatible, independent of architecture; and later versions of 
FB are always able to open FBKs created in older FB versions.
+
+Our embedded FB is used like this:
+- FBK is extracted from ODB;
+- Embedded FB extracts the compatible FBK into an incompatible FDB (specific 
to this version of embedded FB DLL);
+- FB works with this temporary FDB;
+- When saving ODB, embedded FB backups the FDB into FBK again, and that is 
stored inside the ODB.
+
+It, indeed, creates additional performance penalty, but makes the ODB readable 
by all the future LO versions, no matter what future FB version they embed.

Reply via email to