diff --git a/src/main/java/typewriter/h2/H2.java b/src/main/java/typewriter/h2/H2.java index c177ee53..b1d7ed66 100644 --- a/src/main/java/typewriter/h2/H2.java +++ b/src/main/java/typewriter/h2/H2.java @@ -54,6 +54,14 @@ public class H2 extends Dialect { private H2() { } + /** + * {@inheritDoc} + */ + @Override + public String quote() { + return "\""; + } + /** * {@inheritDoc} */ diff --git a/src/main/java/typewriter/rdb/RDB.java b/src/main/java/typewriter/rdb/RDB.java index b382edce..4db97e0a 100644 --- a/src/main/java/typewriter/rdb/RDB.java +++ b/src/main/java/typewriter/rdb/RDB.java @@ -97,7 +97,7 @@ public RDB(Class type, String name, Dialect dialect, String url) { Map rows = new HashMap(); try (Connection connection = provider.get()) { DatabaseMetaData meta = connection.getMetaData(); - try (ResultSet columns = meta.getColumns(null, null, tableName.replaceAll(dialect.quote(), ""), null)) { + try (ResultSet columns = meta.getColumns(null, null, this.name, null)) { while (columns.next()) { rows.put(columns.getString("COLUMN_NAME"), columns.getString("TYPE_NAME")); } @@ -130,8 +130,8 @@ private RDB(Model model, String name, Dialect dialect, WiseSupplier, ?, Q>> Q createEmptyDB(Class type); + default , ?, Q>> Q createEmptyDB(Class type) { + return createEmptyDB(type, type.getName()); + } + + /** + * Create the {@link QueryExecutor} for test. + * + * @param + * @param type + * @return + */ + , ?, Q>> Q createEmptyDB(Class type, String name); /** * Create the {@link QueryExecutor} for test with initial models. diff --git a/src/test/java/typewriter/duck/AbnormalTableNameTest.java b/src/test/java/typewriter/duck/AbnormalTableNameTest.java new file mode 100644 index 00000000..905958fa --- /dev/null +++ b/src/test/java/typewriter/duck/AbnormalTableNameTest.java @@ -0,0 +1,15 @@ +/* + * Copyright (C) 2024 The TYPEWRITER Development Team + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + */ +package typewriter.duck; + +import typewriter.api.AbnormalTableNameTestSet; + +public class AbnormalTableNameTest extends DuckTestBase implements AbnormalTableNameTestSet { +} \ No newline at end of file diff --git a/src/test/java/typewriter/duck/DuckTestBase.java b/src/test/java/typewriter/duck/DuckTestBase.java index 933e30ea..4e9bc2d3 100644 --- a/src/test/java/typewriter/duck/DuckTestBase.java +++ b/src/test/java/typewriter/duck/DuckTestBase.java @@ -36,7 +36,7 @@ void release() { * {@inheritDoc} */ @Override - public , ?, Q>> Q createEmptyDB(Class type) { - return (Q) new RDB(type, type.getName(), RDB.DuckDB, db); + public , ?, Q>> Q createEmptyDB(Class type, String name) { + return (Q) new RDB(type, name, RDB.DuckDB, db); } } \ No newline at end of file diff --git a/src/test/java/typewriter/h2/AbnormalTableNameTest.java b/src/test/java/typewriter/h2/AbnormalTableNameTest.java new file mode 100644 index 00000000..363e81e5 --- /dev/null +++ b/src/test/java/typewriter/h2/AbnormalTableNameTest.java @@ -0,0 +1,15 @@ +/* + * Copyright (C) 2024 The TYPEWRITER Development Team + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + */ +package typewriter.h2; + +import typewriter.api.AbnormalTableNameTestSet; + +public class AbnormalTableNameTest extends H2TestBase implements AbnormalTableNameTestSet { +} \ No newline at end of file diff --git a/src/test/java/typewriter/h2/H2TestBase.java b/src/test/java/typewriter/h2/H2TestBase.java index 3215c3f3..de1fd18f 100644 --- a/src/test/java/typewriter/h2/H2TestBase.java +++ b/src/test/java/typewriter/h2/H2TestBase.java @@ -36,7 +36,7 @@ void release() { * {@inheritDoc} */ @Override - public , ?, Q>> Q createEmptyDB(Class type) { - return (Q) new RDB(type, type.getName(), RDB.H2, db); + public , ?, Q>> Q createEmptyDB(Class type, String name) { + return (Q) new RDB(type, name, RDB.H2, db); } } \ No newline at end of file diff --git a/src/test/java/typewriter/maria/AbnormalTableNameTest.java b/src/test/java/typewriter/maria/AbnormalTableNameTest.java new file mode 100644 index 00000000..b5c25db9 --- /dev/null +++ b/src/test/java/typewriter/maria/AbnormalTableNameTest.java @@ -0,0 +1,15 @@ +/* + * Copyright (C) 2024 The TYPEWRITER Development Team + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + */ +package typewriter.maria; + +import typewriter.api.AbnormalTableNameTestSet; + +public class AbnormalTableNameTest extends MariaDBTestBase implements AbnormalTableNameTestSet { +} \ No newline at end of file diff --git a/src/test/java/typewriter/maria/MariaDBTestBase.java b/src/test/java/typewriter/maria/MariaDBTestBase.java index ce1b93c5..7f5aabde 100644 --- a/src/test/java/typewriter/maria/MariaDBTestBase.java +++ b/src/test/java/typewriter/maria/MariaDBTestBase.java @@ -84,7 +84,7 @@ void release() throws ManagedProcessException { * {@inheritDoc} */ @Override - public , ?, Q>> Q createEmptyDB(Class type) { - return (Q) new RDB(type, type.getName(), RDB.MariaDB, url); + public , ?, Q>> Q createEmptyDB(Class type, String name) { + return (Q) new RDB(type, name, RDB.MariaDB, url); } } \ No newline at end of file diff --git a/src/test/java/typewriter/mongo/AbnormalTableNameTest.java b/src/test/java/typewriter/mongo/AbnormalTableNameTest.java new file mode 100644 index 00000000..f7c18245 --- /dev/null +++ b/src/test/java/typewriter/mongo/AbnormalTableNameTest.java @@ -0,0 +1,15 @@ +/* + * Copyright (C) 2024 The TYPEWRITER Development Team + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + */ +package typewriter.mongo; + +import typewriter.api.AbnormalTableNameTestSet; + +public class AbnormalTableNameTest extends MongoTestBase implements AbnormalTableNameTestSet { +} \ No newline at end of file diff --git a/src/test/java/typewriter/mongo/MongoTestBase.java b/src/test/java/typewriter/mongo/MongoTestBase.java index 80550172..16e3a893 100644 --- a/src/test/java/typewriter/mongo/MongoTestBase.java +++ b/src/test/java/typewriter/mongo/MongoTestBase.java @@ -46,7 +46,7 @@ void teardown() { * {@inheritDoc} */ @Override - public , ?, Q>> Q createEmptyDB(Class type) { + public , ?, Q>> Q createEmptyDB(Class type, String name) { return (Q) new Mongo(type, client); } diff --git a/src/test/java/typewriter/sqlite/AbnormalTableNameTest.java b/src/test/java/typewriter/sqlite/AbnormalTableNameTest.java new file mode 100644 index 00000000..43ad7e44 --- /dev/null +++ b/src/test/java/typewriter/sqlite/AbnormalTableNameTest.java @@ -0,0 +1,15 @@ +/* + * Copyright (C) 2024 The TYPEWRITER Development Team + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + */ +package typewriter.sqlite; + +import typewriter.api.AbnormalTableNameTestSet; + +public class AbnormalTableNameTest extends SQLiteTestBase implements AbnormalTableNameTestSet { +} \ No newline at end of file diff --git a/src/test/java/typewriter/sqlite/SQLiteTestBase.java b/src/test/java/typewriter/sqlite/SQLiteTestBase.java index 19a1728e..a5fef2d5 100644 --- a/src/test/java/typewriter/sqlite/SQLiteTestBase.java +++ b/src/test/java/typewriter/sqlite/SQLiteTestBase.java @@ -36,7 +36,7 @@ void release() { * {@inheritDoc} */ @Override - public , ?, Q>> Q createEmptyDB(Class type) { - return (Q) new RDB(type, type.getName(), RDB.SQLite, db); + public , ?, Q>> Q createEmptyDB(Class type, String name) { + return (Q) new RDB(type, name, RDB.SQLite, db); } } \ No newline at end of file