office-gobmx/connectivity
Julien Nabet 6bb6e59ca2 tdf#145205: Mysql/MariaDB, display BIT instead of DATE when its a BIT field
Beware, we just want to display the right info here, BIT management in Mysql/MariaDB
needs some work

There are 2 parts in this patch:
1)
-    if (sType.equalsIgnoreAsciiCase("bit") || sType.equalsIgnoreAsciiCase("bool")
-        || sType.equalsIgnoreAsciiCase("boolean"))
+    if (sType.equalsIgnoreAsciiCase("bit"))
+        return css::sdbc::DataType::BIT;
+    if (sType.equalsIgnoreAsciiCase("bool") || sType.equalsIgnoreAsciiCase("boolean"))
allows to display BIT instead of DATE when editing the table

2)
-            return css::sdbc::DataType::VARCHAR;
+            return css::sdbc::DataType::BIT;
allows to show a checkbox instead of a field where you can type anything when opening the table

Change-Id: Id50882bfab97cc43a1904bfc6eb7256904732bba
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125429
Tested-by: Jenkins
Reviewed-by: Lionel Mamane <lionel@mamane.lu>
2021-11-18 10:47:43 +01:00
..
com/sun/star/sdbcx/comp/hsqldb
inc
org/hsqldb/lib
qa
registry
source tdf#145205: Mysql/MariaDB, display BIT instead of DATE when its a BIT field 2021-11-18 10:47:43 +01:00
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