office-gobmx/connectivity
Mike Kaganski 831700824d Simplify getTypes implementations
Change-Id: Ia0f7e8497f628b17a108a4dd8ffebc60745b7d6a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178054
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-12-07 21:55:52 +01:00
..
com/sun/star/sdbcx/comp/hsqldb
inc reduce symbol visibility in --enable-mergelibs=more mode 2024-03-13 08:14:38 +01:00
org/hsqldb/lib
qa loplugin:ostr in connectivity 2024-05-07 08:46:13 +02:00
registry tdf#158056 Connect to MS Access .mdb files by mean of ACE.OLEDB.12.0 provider 2024-04-18 16:19:04 +02:00
source Simplify getTypes implementations 2024-12-07 21:55:52 +01:00
workben tdf#124176 Use pragma once in connectivity 2021-03-23 12:12:27 +01:00
AllLangMoTarget_cnr.mk migrate to boost::gettext 2017-07-21 08:20:50 +01:00
Configuration_ado.mk Move to MPLv2 license headers, with ESC decision and author's permission. 2013-04-22 09:37:38 +01:00
Configuration_calc.mk Move to MPLv2 license headers, with ESC decision and author's permission. 2013-04-22 09:37:38 +01:00
Configuration_dbase.mk Move to MPLv2 license headers, with ESC decision and author's permission. 2013-04-22 09:37:38 +01:00
Configuration_evoab.mk Move to MPLv2 license headers, with ESC decision and author's permission. 2013-04-22 09:37:38 +01:00
Configuration_firebird.mk Make firebird-sdbc install consistent with other drivers. 2013-07-16 16:40:16 +02:00
Configuration_flat.mk Move to MPLv2 license headers, with ESC decision and author's permission. 2013-04-22 09:37:38 +01:00
Configuration_hsqldb.mk Revert "Remove dead HSQLDB driver" 2018-04-12 09:09:37 +02:00
Configuration_jdbc.mk Move to MPLv2 license headers, with ESC decision and author's permission. 2013-04-22 09:37:38 +01:00
Configuration_macab.mk Move to MPLv2 license headers, with ESC decision and author's permission. 2013-04-22 09:37:38 +01:00
Configuration_mysql.mk mysqlc: fix registry configuration 2018-08-27 12:59:58 +02:00
Configuration_mysql_jdbc.mk Revert removal of mysql jdbc connector 2018-10-14 22:16:05 +02:00
Configuration_odbc.mk Move to MPLv2 license headers, with ESC decision and author's permission. 2013-04-22 09:37:38 +01:00
Configuration_postgresql.mk Move to MPLv2 license headers, with ESC decision and author's permission. 2013-04-22 09:37:38 +01:00
Configuration_writer.mk connectivity: add initial writer backend 2017-07-17 10:02:05 +02:00
CppunitTest_connectivity_ado.mk migrate to boost::gettext 2017-07-21 08:20:50 +01:00
CppunitTest_connectivity_commontools.mk Fix some new dependencies on boost_headers 2019-12-06 21:33:55 +01:00
CppunitTest_connectivity_mysql_test.mk connectivity: fix mysql test 2020-06-17 17:54:17 +02:00
CppunitTest_connectivity_sharedresources.mk Pass context and resource string down to boost::locale separately 2021-08-05 09:39:11 +02:00
IwyuFilter_connectivity.yaml Recheck modules [a-c]* with IWYU 2022-01-13 08:26:15 +01:00
Jar_ConnectivityTools.mk tdf#117331 Merge jurt and unoil into ridl 2020-02-04 22:03:54 +01:00
Jar_sdbc_hsqldb.mk Revert "Remove dead HSQLDB driver" 2018-04-12 09:09:37 +02:00
JunitTest_complex.mk Fix many Java subsequentcheck test by using JUH 2018-11-09 07:37:50 +01:00
Library_ado.mk Drop support for Windows versions prior to Windows 10 2024-12-07 12:13:33 +01:00
Library_calc.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
Library_dbase.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
Library_dbpool2.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
Library_dbtools.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
Library_evoab.mk Fix linking Library_evoab 2022-05-30 23:12:27 +02:00
Library_file.mk do not require $(SRCDIR) in every gb_Library_set_precompiled_header 2019-09-23 10:47:25 +02:00
Library_firebird_sdbc.mk tdf#126960, tdf#131330: FB make views editable+refresh auto after creation 2022-01-27 17:35:20 +01:00
Library_flat.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
Library_hsqldb.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
Library_jdbc.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
Library_macab1.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
Library_macabdrv1.mk Yet another fix for missing sqlbison.hxx 2013-05-07 22:10:55 +02:00
Library_mozbootstrap.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
Library_mysql_jdbc.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
Library_mysqlc.mk tdf#150082: LO Base MariaDB/MySQL connector don't accept auth via gssapi... 2024-05-06 09:25:48 +02:00
Library_odbc.mk Refactor ODBC functions code for clarity 2024-07-26 23:20:12 +02:00
Library_postgresql-sdbc-impl.mk openldap: upgrade to release 2.6.4 2023-06-21 12:52:52 +02:00
Library_postgresql-sdbc.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
Library_sdbc2.mk use more officecfg in OSDBCDriverManager 2024-05-15 10:05:45 +02:00
Library_writer.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
Makefile fix Makefile after rebase to current master 2012-05-29 07:24:36 +02:00
Module_connectivity.mk configure: Refactor disabling DB drivers 2021-06-01 20:04:56 +02:00
Package_postgresql-sdbc.mk remove postgresql-sdbc.ini 2020-02-27 09:09:28 +01:00
Rdb_postgresql-sdbc.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
README.md Firebird: add info FDB/FBK use on README 2023-04-30 11:25:03 +02:00

Database Connectivity

Contains database pieces, drivers, etc.

dbaccess builds UI on top of this.

Testing

PostgreSQL

For testing, use:

podman pull postgres:latest
podman run --name=postgres -e POSTGRES_PASSWORD=foobarbaz -p 127.0.0.1:5432:5432 postgres:latest

In Base, Connect to an existing database, select PostgreSQL:

URL: host=127.0.0.1 port=5432 dbname=postgres
User: postgres
Password: foobarbaz

podman stop postgres
podman rm postgres

In order to test SCRAM authentication, create the container like this:

podman run --name=postgres -e POSTGRES_PASSWORD=foobarbaz -e POSTGRES_INITDB_ARGS=--auth-host=scram-sha-256 -e POSTGRES_HOST_AUTH_METHOD=scram-sha-256 -p 127.0.0.1:5432:5432 postgres:latest

MySQL

For mysql_test:

  • The CppunitTest_mysql_test unit test can be used to test the mysqlc library with any versions of mysql or mariadb server of your choice.

  • This test does not run automatically. It can be triggered with setting the environment variable "CONNECTIVITY_TEST_MYSQL_DRIVER".

  • The environment variable should contain a URL of the following format: [user]/[passwd]@sdbc:mysql:mysqlc:[host]:[port]/db_name

  • tl;dr:

    podman pull mariadb/server
    podman run --name=mariadb -e MYSQL_ROOT_PASSWORD=foobarbaz -p 127.0.0.1:3306:3306 mariadb/server
    podman exec -it mariadb /bin/bash -c "echo -e CREATE DATABASE test | /usr/bin/mysql -u root"
    (cd connectivity && make -srj8 CppunitTest_connectivity_mysql_test CONNECTIVITY_TEST_MYSQL_DRIVER="root/foobarbaz@sdbc:mysql:mysqlc:127.0.0.1:3306/test")
    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.