Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion plugin/trino-memsql/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>2.7.2</version>
</dependency>

<!-- Trino SPI -->
Expand Down
13 changes: 13 additions & 0 deletions plugin/trino-mysql/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,19 @@
<scope>test</scope>
</dependency>

<!-- org.testcontainers:mariadb depends on the MariaDB driver -->
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>mariadb</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>mysql</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,22 @@
*/
package io.trino.plugin.mysql;

import io.trino.plugin.jdbc.JdbcPlugin;
import com.google.common.collect.ImmutableList;
import io.trino.plugin.jdbc.JdbcConnectorFactory;
import io.trino.plugin.jdbc.credential.CredentialProviderModule;
import io.trino.spi.Plugin;
import io.trino.spi.connector.ConnectorFactory;

import static io.airlift.configuration.ConfigurationAwareModule.combine;

public class MySqlPlugin
extends JdbcPlugin
implements Plugin
{
public MySqlPlugin()
@Override
public Iterable<ConnectorFactory> getConnectorFactories()
{
super("mysql", new MySqlClientModule());
return ImmutableList.of(
new JdbcConnectorFactory("mysql", combine(new CredentialProviderModule(), new MySqlClientModule())),
new JdbcConnectorFactory("mariadb", combine(new CredentialProviderModule(), new MySqlClientModule())));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@
import static io.trino.SystemSessionProperties.USE_MARK_DISTINCT;
import static io.trino.spi.type.VarcharType.VARCHAR;
import static io.trino.testing.MaterializedResult.resultBuilder;
import static io.trino.testing.TestingSession.testSessionBuilder;
import static io.trino.testing.assertions.Assert.assertEquals;
import static java.lang.String.format;
import static org.assertj.core.api.Assertions.assertThat;
Expand Down Expand Up @@ -169,7 +168,7 @@ public void testDescribeTable()
public void testShowCreateTable()
{
assertThat(computeActual("SHOW CREATE TABLE orders").getOnlyValue())
.isEqualTo("CREATE TABLE mysql.tpch.orders (\n" +
.isEqualTo("CREATE TABLE " + getSession().getCatalog().orElseThrow() + ".tpch.orders (\n" +
" orderkey bigint,\n" +
" custkey bigint,\n" +
" orderstatus varchar(255),\n" +
Expand Down Expand Up @@ -213,43 +212,38 @@ public void testInsert()
@Test
public void testNameEscaping()
{
Session session = testSessionBuilder()
.setCatalog("mysql")
.setSchema(getSession().getSchema().get())
.build();

assertFalse(getQueryRunner().tableExists(session, "test_table"));
assertFalse(getQueryRunner().tableExists(getSession(), "test_table"));

assertUpdate(session, "CREATE TABLE test_table AS SELECT 123 x", 1);
assertTrue(getQueryRunner().tableExists(session, "test_table"));
assertUpdate("CREATE TABLE test_table AS SELECT 123 x", 1);
assertTrue(getQueryRunner().tableExists(getSession(), "test_table"));

assertQuery(session, "SELECT * FROM test_table", "SELECT 123");
assertQuery("SELECT * FROM test_table", "SELECT 123");

assertUpdate(session, "DROP TABLE test_table");
assertFalse(getQueryRunner().tableExists(session, "test_table"));
assertUpdate("DROP TABLE test_table");
assertFalse(getQueryRunner().tableExists(getSession(), "test_table"));
}

@Test
public void testMySqlTinyint()
public void testTinyint()
{
onRemoteDatabase().execute("CREATE TABLE tpch.mysql_test_tinyint1 (c_tinyint tinyint(1))");
onRemoteDatabase().execute("CREATE TABLE tpch.test_tinyint1 (c_tinyint tinyint(1))");

MaterializedResult actual = computeActual("SHOW COLUMNS FROM mysql_test_tinyint1");
MaterializedResult actual = computeActual("SHOW COLUMNS FROM test_tinyint1");
MaterializedResult expected = MaterializedResult.resultBuilder(getSession(), VARCHAR, VARCHAR, VARCHAR, VARCHAR)
.row("c_tinyint", "tinyint", "", "")
.build();

assertEquals(actual, expected);

onRemoteDatabase().execute("INSERT INTO tpch.mysql_test_tinyint1 VALUES (127), (-128)");
MaterializedResult materializedRows = computeActual("SELECT * FROM tpch.mysql_test_tinyint1 WHERE c_tinyint = 127");
onRemoteDatabase().execute("INSERT INTO tpch.test_tinyint1 VALUES (127), (-128)");
MaterializedResult materializedRows = computeActual("SELECT * FROM tpch.test_tinyint1 WHERE c_tinyint = 127");
assertEquals(materializedRows.getRowCount(), 1);
MaterializedRow row = getOnlyElement(materializedRows);

assertEquals(row.getFields().size(), 1);
assertEquals(row.getField(0), (byte) 127);

assertUpdate("DROP TABLE mysql_test_tinyint1");
assertUpdate("DROP TABLE test_tinyint1");
}

@Test
Expand Down
Loading