2bafc7384b
and cid#1545841 COPY_INSTEAD_OF_MOVE cid#1554682 COPY_INSTEAD_OF_MOVE cid#1554686 COPY_INSTEAD_OF_MOVE cid#1554715 COPY_INSTEAD_OF_MOVE cid#1554750 COPY_INSTEAD_OF_MOVE cid#1554759 COPY_INSTEAD_OF_MOVE cid#1554770 COPY_INSTEAD_OF_MOVE cid#1554779 COPY_INSTEAD_OF_MOVE cid#1554794 COPY_INSTEAD_OF_MOVE cid#1554800 COPY_INSTEAD_OF_MOVE cid#1554826 COPY_INSTEAD_OF_MOVE cid#1554836 COPY_INSTEAD_OF_MOVE cid#1554862 COPY_INSTEAD_OF_MOVE cid#1554865 COPY_INSTEAD_OF_MOVE cid#1554872 COPY_INSTEAD_OF_MOVE cid#1554883 COPY_INSTEAD_OF_MOVE cid#1554906 COPY_INSTEAD_OF_MOVE cid#1554921 COPY_INSTEAD_OF_MOVE cid#1554926 COPY_INSTEAD_OF_MOVE cid#1554946 COPY_INSTEAD_OF_MOVE cid#1554956 COPY_INSTEAD_OF_MOVE cid#1554970 COPY_INSTEAD_OF_MOVE cid#1554986 COPY_INSTEAD_OF_MOVE cid#1554991 COPY_INSTEAD_OF_MOVE cid#1555013 COPY_INSTEAD_OF_MOVE cid#1555037 COPY_INSTEAD_OF_MOVE cid#1555050 COPY_INSTEAD_OF_MOVE cid#1555057 COPY_INSTEAD_OF_MOVE cid#1555066 COPY_INSTEAD_OF_MOVE cid#1555067 COPY_INSTEAD_OF_MOVE cid#1555083 COPY_INSTEAD_OF_MOVE cid#1555097 COPY_INSTEAD_OF_MOVE cid#1555135 COPY_INSTEAD_OF_MOVE cid#1555140 COPY_INSTEAD_OF_MOVE cid#1555146 COPY_INSTEAD_OF_MOVE cid#1555148 COPY_INSTEAD_OF_MOVE cid#1555149 COPY_INSTEAD_OF_MOVE cid#1555155 COPY_INSTEAD_OF_MOVE cid#1555157 COPY_INSTEAD_OF_MOVE cid#1555168 COPY_INSTEAD_OF_MOVE cid#1555195 COPY_INSTEAD_OF_MOVE cid#1555196 COPY_INSTEAD_OF_MOVE cid#1555237 COPY_INSTEAD_OF_MOVE Change-Id: I90531c19c28dca77fe99c72efdfc0972c311da98 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175377 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> |
||
---|---|---|
.. | ||
com/sun/star/sdbcx/comp/hsqldb | ||
inc | ||
org/hsqldb/lib | ||
qa | ||
registry | ||
source | ||
workben | ||
AllLangMoTarget_cnr.mk | ||
Configuration_ado.mk | ||
Configuration_calc.mk | ||
Configuration_dbase.mk | ||
Configuration_evoab.mk | ||
Configuration_firebird.mk | ||
Configuration_flat.mk | ||
Configuration_hsqldb.mk | ||
Configuration_jdbc.mk | ||
Configuration_macab.mk | ||
Configuration_mysql.mk | ||
Configuration_mysql_jdbc.mk | ||
Configuration_odbc.mk | ||
Configuration_postgresql.mk | ||
Configuration_writer.mk | ||
CppunitTest_connectivity_ado.mk | ||
CppunitTest_connectivity_commontools.mk | ||
CppunitTest_connectivity_mysql_test.mk | ||
CppunitTest_connectivity_sharedresources.mk | ||
IwyuFilter_connectivity.yaml | ||
Jar_ConnectivityTools.mk | ||
Jar_sdbc_hsqldb.mk | ||
JunitTest_complex.mk | ||
Library_ado.mk | ||
Library_calc.mk | ||
Library_dbase.mk | ||
Library_dbpool2.mk | ||
Library_dbtools.mk | ||
Library_evoab.mk | ||
Library_file.mk | ||
Library_firebird_sdbc.mk | ||
Library_flat.mk | ||
Library_hsqldb.mk | ||
Library_jdbc.mk | ||
Library_macab1.mk | ||
Library_macabdrv1.mk | ||
Library_mozbootstrap.mk | ||
Library_mysql_jdbc.mk | ||
Library_mysqlc.mk | ||
Library_odbc.mk | ||
Library_postgresql-sdbc-impl.mk | ||
Library_postgresql-sdbc.mk | ||
Library_sdbc2.mk | ||
Library_writer.mk | ||
Makefile | ||
Module_connectivity.mk | ||
Package_postgresql-sdbc.mk | ||
Rdb_postgresql-sdbc.mk | ||
README.md |
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.