office-gobmx/connectivity
Julien Nabet e43573aae0 tdf#146432: fix crash with REGEXP_REPLACE() executed in query editor to MariaDB
See bt here:
https://bugs.documentfoundation.org/attachment.cgi?id=177292

Noticing:
warn:legacy.osl:7697:7697:connectivity/source/drivers/mysqlc/mysqlc_general.cxx:188: mysqlToOOOType: unhandled case, falling back to VARCHAR
I found REGEXP_REPLACE returned a MYSQL_TYPE_LONG_BLOB and some locations should be taught about it.

Also, let's also deal with MYSQL_TYPE_TINY_BLOB and MYSQL_TYPE_MEDIUM_BLOB

Change-Id: Ib7fd6ef747ce1b1851c788d2bb5a1d4ec673aee1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127919
Reviewed-by: Lionel Mamane <lionel@mamane.lu>
Tested-by: Jenkins
2022-01-04 19:07:29 +01:00
..
com/sun/star/sdbcx/comp/hsqldb
inc
org/hsqldb/lib
qa
registry
source tdf#146432: fix crash with REGEXP_REPLACE() executed in query editor to MariaDB 2022-01-04 19:07:29 +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 Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +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 Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
Library_file.mk
Library_firebird_sdbc.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +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
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 Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
Library_odbc.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
Library_postgresql-sdbc-impl.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01: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 Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
Library_writer.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
Makefile
Module_connectivity.mk
Package_postgresql-sdbc.mk
Rdb_postgresql-sdbc.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
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