diff options
Diffstat (limited to 'plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/internal/db/ddl/DBTable.java')
-rw-r--r-- | plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/internal/db/ddl/DBTable.java | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/internal/db/ddl/DBTable.java b/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/internal/db/ddl/DBTable.java index 35dfd9bb66..0d0f2184fe 100644 --- a/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/internal/db/ddl/DBTable.java +++ b/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/internal/db/ddl/DBTable.java @@ -18,7 +18,10 @@ import org.eclipse.net4j.db.ddl.IDBIndex.Type; import org.eclipse.net4j.db.ddl.IDBTable; import org.eclipse.net4j.spi.db.DBSchema; import org.eclipse.net4j.spi.db.DBSchemaElement; +import org.eclipse.net4j.util.StringUtil; +import java.io.IOException; +import java.io.Writer; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -153,6 +156,17 @@ public class DBTable extends DBSchemaElement implements IDBTable throw new DBException("Index exists: " + name); //$NON-NLS-1$ } + if (type == Type.PRIMARY_KEY) + { + for (DBIndex index : getIndices()) + { + if (index.getType() == Type.PRIMARY_KEY) + { + throw new DBException("Primary key exists: " + index); //$NON-NLS-1$ + } + } + } + DBIndex index = new DBIndex(this, name, type, fields, position); indices.add(index); return index; @@ -246,4 +260,22 @@ public class DBTable extends DBSchemaElement implements IDBTable builder.append(")"); //$NON-NLS-1$ return builder.toString(); } + + @Override + public void dump(Writer writer) throws IOException + { + writer.append(" TABLE "); + writer.append(getName()); + writer.append(StringUtil.NL); + + for (DBField field : fields) + { + field.dump(writer); + } + + for (DBIndex index : indices) + { + index.dump(writer); + } + } } |