Hi guys,
do you know if we ever supported escaping with our dictionnaries. This test
fails replacing expected ` by ":
@Test
public void testIdentifierEscaping() {
final DBDictionary db = new MySQLDictionary();
db.setConfiguration(new JDBCConfigurationImpl());
final DBIdentifierUtil namingUtil = db.getNamingUtil();
final Table table = new Table();
final DBIdentifier tableId = DBIdentifier.newTable("test forced escaping",
db.getDelimitIdentifiers());
final Schema schema = new Schema();
table.setIdentifier(namingUtil.getValidTableIdentifier(tableId,
schema, 1024));
table.addColumn(namingUtil.getValidColumnIdentifier(
DBIdentifier.newColumn("here-too",
db.getDelimitIdentifiers()), table, 1024, false))
.setType(Types.VARCHAR);
final String sql = db.getCreateTableSQL(table)[0];
assertEquals("CREATE TABLE `test forced escaping` (`here-too`
VARCHAR) ENGINE = innodb", sql);
}
This is all because DBIdentifier#setName methods are static and use a
default escaping (static :s).
Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> | Blog
<https://rmannibucau.metawerx.net/> | Old Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
<https://www.packtpub.com/application-development/java-ee-8-high-performance>