Giter Club home page Giter Club logo

mysql-virtual-schema's Introduction

MySQL Virtual Schema

Build Status

Quality Gate Status

Security Rating Reliability Rating Maintainability Rating Technical Debt

Code Smells Coverage Duplicated Lines (%) Lines of Code

Overview

The MySQL Virtual Schema provides an abstraction layer that makes an external MySQL database accessible from an Exasol database through regular SQL commands. The contents of the external MySQL database are mapped to virtual tables which look like and can be queried as any regular Exasol table.

If you want to set up a Virtual Schema for a different database system, please head over to the Virtual Schemas Repository.

Features

  • Access a MySQL data source in read only mode from an Exasol database, using a Virtual Schema.

Table of Contents

Information for Users

Find all the documentation in the Virtual Schemas project.

Information for Developers

mysql-virtual-schema's People

Contributors

anastasiiasergienko avatar chiaradiamarcelo avatar ckunki avatar jakobbraun avatar kaklakariada avatar pj-spoelders avatar redcatbear avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mysql-virtual-schema's Issues

๐Ÿ” CVE-2024-25710: org.apache.commons:commons-compress:jar:1.24.0:test

Summary

Loop with Unreachable Exit Condition ('Infinite Loop') vulnerability in Apache Commons Compress.This issue affects Apache Commons Compress: from 1.3 through 1.25.0.

Users are recommended to upgrade to version 1.26.0 which fixes the issue.

CVE: CVE-2024-25710
CWE: CWE-835

References

Check if dialect can support the recently added functions

Situation

We have added a few new functions to the common part recently.
We need to check if the dialect can support them. The list of the new function capabilities to check is:

  • FN_BIT_LROTATE -> missing in MySQL
  • FN_BIT_RROTATE -> missing in MySQL
  • FN_BIT_LSHIFT -> added
  • FN_BIT_RSHIFT -> added
  • FN_FROM_POSIX_TIME-> missing in MySQL
  • FN_HOUR -> added
  • FN_INITCAP -> missing in MySQL
  • FN_AGG_EVERY -> missing in MySQL
  • FN_AGG_SOME -> MySQL has ANY function but it's used only in WHERE clause
  • FN_AGG_MUL_DISTINCT -> missing in MySQL
  • FN_PRED_IS_JSON -> There is a function JSON_SCHEMA_VALID (https://dev.mysql.com/doc/refman/8.0/en/json-validation-functions.html#function_json-schema-valid), but this is not predicate. Mapping won't be implemented until we have integration test for predicates.
  • FN_PRED_IS_NOT_JSON -> missing in MySQL
  • FN_HASHTYPE_MD5 -> missing in MySQL
  • FN_HASHTYPE_SHA1 -> missing in MySQL
  • FN_HASHTYPE_SHA256 -> missing in MySQL
  • FN_HASHTYPE_SHA512 -> missing in MySQL
  • FN_HASHTYPE_TIGER -> missing in MySQL
  • FN_AGG_MUL -> missing in MySQL
  • FN_JSON_VALUE -> (introduced 8.0.21) https://dev.mysql.com/doc/refman/8.0/en/json-search-functions.html#function_json-value. I wouldn't add this as we don't check the source version
  • FN_MIN_SCALE -> missing in MySQL
  • FN_AGG_LISTAGG -> missing in MySQL
  • FN_AGG_LISTAGG_DISTINCT
  • FN_AGG_LISTAGG_SEPARATOR
  • FN_AGG_LISTAGG_ON_OVERFLOW_ERROR
  • FN_AGG_LISTAGG_ON_OVERFLOW_TRUNCATE
  • FN_AGG_LISTAGG_ORDER_BY
  • FN_AGG_COUNT_TUPLE -> missing in MySQL

VSMYSQL CREATE ADAPTER SCRIPT in User Guide

Customer had a problem because of --/ before the line

CREATE OR REPLACE JAVA ADAPTER SCRIPT SCHEMA_FOR_VS_SCRIPT.ADAPTER_SCRIPT_MYSQL AS

as SQL clients other then DB Visualizer might find the script body to send to DB incorrectly in this case.

Please consider adding a remark to the User guide that the comment ('--/') will is ONLY necessary for a DB Visualizer SQL client and not for others.

Fix CVE-2023-42503 in test dependency `org.apache.commons:commons-compress`

Error:  Failed to execute goal org.sonatype.ossindex.maven:ossindex-maven-plugin:3.2.0:audit (default-cli) on project mysql-virtual-schema: Detected 1 vulnerable components:
Error:    org.apache.commons:commons-compress:jar:1.23.0:test; https://ossindex.sonatype.org/component/pkg:maven/org.apache.commons/[email protected]?utm_source=ossindex-client&utm_medium=integration&utm_content=1.8.1
Error:      * [CVE-2023-42503] CWE-20: Improper Input Validation (5.5); https://ossindex.sonatype.org/vulnerability/CVE-2023-42503?component-type=maven&component-name=org.apache.commons%2Fcommons-compress&utm_source=ossindex-client&utm_medium=integration&utm_content=1.8.1

Charset conversion mysql-connector-j-8.0.31.jar

When reading data from virtual schema I get a converison-error from UTF8 to ASCII,. Reading directly from the jdbc-connection works though.

EXA_DB.VIRTUAL_JOINTDB_OFFICE> Select * from(
IMPORT FROM JDBC
AT MYSQL_JOINTDB_JDBC_CONNECTION
STATEMENT 'SELECT * from office.erstattungen_positionen limit 100')
[2022-11-16 10:13:59] 100 rows retrieved starting from 1 in 1 s 85 ms (execution: 1 s 53 ms, fetching: 32 ms)
EXA_DB.VIRTUAL_JOINTDB_OFFICE> Select * from virtual_jointDB_office."erstattungen_positionen" limit 100
[2022-11-16 10:21:58] [42636] ETL-3009: [Column=23 Row=0] [Charset conversion from 'UTF-8' to 'ASCII' failed [Invalid or incomplete multibyte or wide character]] (Session: 1749641517751205888).

On the Source-DB the charset is latin1 (yes i know :(, not my fault^^).

๐Ÿ” CVE-2024-26308: org.apache.commons:commons-compress:jar:1.24.0:test

Summary

Allocation of Resources Without Limits or Throttling vulnerability in Apache Commons Compress.This issue affects Apache Commons Compress: from 1.21 before 1.26.

Users are recommended to upgrade to version 1.26, which fixes the issue.

CVE: CVE-2024-26308
CWE: CWE-770

References

VSMYSQL Update User Guide on Registering the JDBC Driver

Section "Registering the JDBC Driver in EXAOperation" is outdated.

Driver registering should be described via uploading driver mysql-connector-j.jar and a file settings.cfg to bucketfs folder default/drivers/jdbc/, see user guide of VSPG.

Content (see IntegrationTestConstants.java#L19)

DRIVERNAME=MYSQL
JAR=mysql-connector-j.jar
DRIVERMAIN=com.mysql.jdbc.Driver
PREFIX=jdbc:mysql:
NOSECURITY=YES
FETCHSIZE=100000
INSERTSIZE=-1

Test TS(9) MySQL against AWS Aurora

Situation

Aurora is a hosted database on AWS that claims interface compatibility with MySQL and PostGreSQL. After supporting TS(9) in MySQL VS (#48) we should check if that also works with Aurora.

Dependencies

Acceptance Criteria

  • Either a integration test proves that TS(9) works with Aurora too
  • or documentation updated that it is not update

Remove Lombok

Situation

Lombok is more hassle than it's worth. We are removing it step-by-step from all our projects.

Acceptance Criteria

  • Lombok removed
  • All tests green

binary16 columns

some shopsystems like Shopware6 use binary16 columns to store UUIDs as IDs for all the entities and relations.
these can be read as typical uuid-strings in mysql twe following way:
LOWER(CONCAT( SUBSTR(HEX(id), 1, 8), '-', SUBSTR(HEX(id), 9, 4), '-', SUBSTR(HEX(id), 13, 4), '-', SUBSTR(HEX(id), 17, 4), '-', SUBSTR(HEX(id), 21) )) as id
At the moment these columns just get left out when importing the shop-db as a virtual schema.
is there anyway to make these columns availble as varchar-columns in the given format?
or at least as varchar-columns containing the hex-display?

TS(9) support in MySQL VS

Situation

We need to support nanosecond timestamp resolution.

Acceptance Criteria

  • An integration test against Exasol 8 proves that TS(9) is supported

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.