package org.openrdf.sail.rdbms.mysql; import java.sql.SQLException; import org.openrdf.sail.rdbms.schema.RdbmsTable; import org.openrdf.sail.rdbms.schema.ValueTableFactory; public class MySqlTable extends RdbmsTable { public MySqlTable(String name) { super(name); } @Override protected String buildCreateTransactionalTable(CharSequence columns) { StringBuilder sb = new StringBuilder(); sb.append("CREATE TABLE ").append(getName()); sb.append(" (\n").append(columns).append(")"); sb.append(" engine = MyISAM"); /* using MyISAM here although it is not transactional, as mixing of InnoDB and MyISAM tables yields bad index selection orders */ return sb.toString(); } @Override protected String buildLongIndex(int sqlType, String... columns) { return "SELECT NULL"; /*StringBuilder sb = new StringBuilder(); sb.append("CREATE INDEX ").append(buildIndexName(columns)); sb.append(" ON ").append(getName()); sb.append(" (value(1024))"); return sb.toString(); */} @Override protected String buildOptimize() throws SQLException { return "SELECT NULL"; // return "OPTIMIZE TABLE " + getName(); } @Override protected String buildDropIndex(String name) { return "SELECT NULL"; /*StringBuilder sb = new StringBuilder(); sb.append("DROP INDEX ").append(name); sb.append(" ON ").append(getName()); return sb.toString();*/ } protected String buildIndex(int sqlType, String... columns) { return "SELECT NULL"; /* StringBuilder sb = new StringBuilder(); sb.append("CREATE " + (sqlType == ValueTableFactory.POINT_TYPE ? "SPATIAL " : "") + "INDEX ").append(buildIndexName(columns)); sb.append(" ON ").append(getName()).append(" ("); for (int i = 0; i < columns.length; i++) { if (i > 0) { sb.append(", "); } sb.append(columns[i]); } sb.append(")"); return sb.toString(); */} }