use of net.sf.jsqlparser.statement.create.table.Index in project JSqlParser by JSQLParser.
the class CreateTableTest method testCreateTableUnlogged.
public void testCreateTableUnlogged() throws JSQLParserException {
String statement = "CREATE UNLOGGED TABLE mytab (mycol a (10, 20) c nm g, mycol2 mypar1 mypar2 (23,323,3) asdf ('23','123') dasd, " + "PRIMARY KEY (mycol2, mycol)) type = myisam";
CreateTable createTable = (CreateTable) parserManager.parse(new StringReader(statement));
assertEquals(2, createTable.getColumnDefinitions().size());
assertTrue(createTable.isUnlogged());
assertEquals("mycol", ((ColumnDefinition) createTable.getColumnDefinitions().get(0)).getColumnName());
assertEquals("mycol2", ((ColumnDefinition) createTable.getColumnDefinitions().get(1)).getColumnName());
assertEquals("PRIMARY KEY", ((Index) createTable.getIndexes().get(0)).getType());
assertEquals("mycol", ((Index) createTable.getIndexes().get(0)).getColumnsNames().get(1));
assertEquals(statement, "" + createTable);
}
use of net.sf.jsqlparser.statement.create.table.Index in project JSqlParser by JSQLParser.
the class CreateTableTest method testCreateTable.
public void testCreateTable() throws JSQLParserException {
String statement = "CREATE TABLE mytab (mycol a (10, 20) c nm g, mycol2 mypar1 mypar2 (23,323,3) asdf ('23','123') dasd, " + "PRIMARY KEY (mycol2, mycol)) type = myisam";
CreateTable createTable = (CreateTable) parserManager.parse(new StringReader(statement));
assertEquals(2, createTable.getColumnDefinitions().size());
assertFalse(createTable.isUnlogged());
assertEquals("mycol", ((ColumnDefinition) createTable.getColumnDefinitions().get(0)).getColumnName());
assertEquals("mycol2", ((ColumnDefinition) createTable.getColumnDefinitions().get(1)).getColumnName());
assertEquals("PRIMARY KEY", ((Index) createTable.getIndexes().get(0)).getType());
assertEquals("mycol", ((Index) createTable.getIndexes().get(0)).getColumnsNames().get(1));
assertEquals(statement, "" + createTable);
}
use of net.sf.jsqlparser.statement.create.table.Index in project JSqlParser by JSQLParser.
the class CreateIndexDeParser method deParse.
public void deParse(CreateIndex createIndex) {
Index index = createIndex.getIndex();
buffer.append("CREATE ");
if (index.getType() != null) {
buffer.append(index.getType());
buffer.append(" ");
}
buffer.append("INDEX ");
buffer.append(index.getName());
buffer.append(" ON ");
buffer.append(createIndex.getTable().getFullyQualifiedName());
if (index.getColumnsNames() != null) {
buffer.append(" (");
for (Iterator iter = index.getColumnsNames().iterator(); iter.hasNext(); ) {
String columnName = (String) iter.next();
buffer.append(columnName);
if (iter.hasNext()) {
buffer.append(", ");
}
}
buffer.append(")");
}
}
use of net.sf.jsqlparser.statement.create.table.Index in project JSqlParser by JSQLParser.
the class CreateTableDeParser method deParse.
public void deParse(CreateTable createTable) {
buffer.append("CREATE ");
if (createTable.isUnlogged()) {
buffer.append("UNLOGGED ");
}
String params = PlainSelect.getStringList(createTable.getCreateOptionsStrings(), false, false);
if (!"".equals(params)) {
buffer.append(params).append(' ');
}
buffer.append("TABLE ");
if (createTable.isIfNotExists()) {
buffer.append("IF NOT EXISTS ");
}
buffer.append(createTable.getTable().getFullyQualifiedName());
if (createTable.getSelect() != null) {
buffer.append(" AS ");
if (createTable.isSelectParenthesis()) {
buffer.append("(");
}
buffer.append(createTable.getSelect().toString());
if (createTable.isSelectParenthesis()) {
buffer.append(")");
}
} else {
if (createTable.getColumnDefinitions() != null) {
buffer.append(" (");
for (Iterator<ColumnDefinition> iter = createTable.getColumnDefinitions().iterator(); iter.hasNext(); ) {
ColumnDefinition columnDefinition = iter.next();
buffer.append(columnDefinition.getColumnName());
buffer.append(" ");
buffer.append(columnDefinition.getColDataType().toString());
if (columnDefinition.getColumnSpecStrings() != null) {
for (String s : columnDefinition.getColumnSpecStrings()) {
buffer.append(" ");
buffer.append(s);
}
}
if (iter.hasNext()) {
buffer.append(", ");
}
}
if (createTable.getIndexes() != null) {
for (Iterator<Index> iter = createTable.getIndexes().iterator(); iter.hasNext(); ) {
buffer.append(", ");
Index index = iter.next();
buffer.append(index.toString());
}
}
buffer.append(")");
}
}
params = PlainSelect.getStringList(createTable.getTableOptionsStrings(), false, false);
if (!"".equals(params)) {
buffer.append(' ').append(params);
}
}
use of net.sf.jsqlparser.statement.create.table.Index in project herddb by diennea.
the class SQLPlanner method buildCreateIndexStatement.
private Statement buildCreateIndexStatement(String defaultTableSpace, CreateIndex s) throws StatementExecutionException {
try {
String tableSpace = s.getTable().getSchemaName();
if (tableSpace == null) {
tableSpace = defaultTableSpace;
}
String tableName = s.getTable().getName();
String indexName = s.getIndex().getName().toLowerCase();
String indexType = convertIndexType(s.getIndex().getType());
herddb.model.Index.Builder builder = herddb.model.Index.builder().name(indexName).uuid(UUID.randomUUID().toString()).type(indexType).table(tableName).tablespace(tableSpace);
AbstractTableManager tableDefinition = manager.getTableSpaceManager(tableSpace).getTableManager(tableName);
if (tableDefinition == null) {
throw new TableDoesNotExistException("no such table " + tableName + " in tablespace " + tableSpace);
}
for (String columnName : s.getIndex().getColumnsNames()) {
columnName = columnName.toLowerCase();
Column column = tableDefinition.getTable().getColumn(columnName);
if (column == null) {
throw new StatementExecutionException("no such column " + columnName + " on table " + tableName + " in tablespace " + tableSpace);
}
builder.column(column.name, column.type);
}
CreateIndexStatement statement = new CreateIndexStatement(builder.build());
return statement;
} catch (IllegalArgumentException err) {
throw new StatementExecutionException("bad index definition: " + err.getMessage(), err);
}
}
Aggregations