Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/org.eclipse.net4j.db.oracle/src/org/eclipse/net4j/db/oracle/OracleAdapter.java57
-rw-r--r--plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/spi/db/DBAdapter.java14
2 files changed, 11 insertions, 60 deletions
diff --git a/plugins/org.eclipse.net4j.db.oracle/src/org/eclipse/net4j/db/oracle/OracleAdapter.java b/plugins/org.eclipse.net4j.db.oracle/src/org/eclipse/net4j/db/oracle/OracleAdapter.java
index 2b05c4ba3a..39c74fc049 100644
--- a/plugins/org.eclipse.net4j.db.oracle/src/org/eclipse/net4j/db/oracle/OracleAdapter.java
+++ b/plugins/org.eclipse.net4j.db.oracle/src/org/eclipse/net4j/db/oracle/OracleAdapter.java
@@ -14,25 +14,18 @@ package org.eclipse.net4j.db.oracle;
import org.eclipse.net4j.db.DBException;
import org.eclipse.net4j.db.DBType;
import org.eclipse.net4j.db.ddl.IDBField;
-import org.eclipse.net4j.db.ddl.IDBIndex;
-import org.eclipse.net4j.db.ddl.IDBTable;
-import org.eclipse.net4j.db.oracle.internal.bundle.OM;
import org.eclipse.net4j.spi.db.DBAdapter;
-import org.eclipse.net4j.util.om.trace.ContextTracer;
import javax.sql.DataSource;
import java.sql.Driver;
import java.sql.SQLException;
-import java.sql.Statement;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class OracleAdapter extends DBAdapter
{
- private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG_SQL, DBAdapter.class);
-
public static final String NAME = "oracle"; //$NON-NLS-1$
public static final String VERSION = "11.1.0.7"; //$NON-NLS-1$
@@ -59,56 +52,6 @@ public class OracleAdapter extends DBAdapter
}
}
- @Override
- protected void createIndex(IDBIndex index, Statement statement, int num) throws SQLException
- {
- IDBTable table = index.getTable();
- StringBuilder builder = new StringBuilder();
- builder.append("CREATE "); //$NON-NLS-1$
- if (index.getType() == IDBIndex.Type.UNIQUE || index.getType() == IDBIndex.Type.PRIMARY_KEY)
- {
- builder.append("UNIQUE "); //$NON-NLS-1$
- }
-
- builder.append("INDEX I"); //$NON-NLS-1$
- builder.append(System.currentTimeMillis());
-
- try
- {
- Thread.sleep(1);
- }
- catch (InterruptedException ex)
- {
- OM.LOG.error(ex);
- return;
- }
-
- builder.append("_");
- builder.append(num);
- builder.append(" ON "); //$NON-NLS-1$
- builder.append(table);
- builder.append(" ("); //$NON-NLS-1$
- IDBField[] fields = index.getFields();
- for (int i = 0; i < fields.length; i++)
- {
- if (i != 0)
- {
- builder.append(", "); //$NON-NLS-1$
- }
-
- addIndexField(builder, fields[i]);
- }
-
- builder.append(")"); //$NON-NLS-1$
- String sql = builder.toString();
- if (TRACER.isEnabled())
- {
- TRACER.trace(sql);
- }
-
- statement.execute(sql);
- }
-
public String[] getReservedWords()
{
List<String> list = new ArrayList<String>(Arrays.asList(getSQL92ReservedWords()));
diff --git a/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/spi/db/DBAdapter.java b/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/spi/db/DBAdapter.java
index 420e86cfca..2c98301a2d 100644
--- a/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/spi/db/DBAdapter.java
+++ b/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/spi/db/DBAdapter.java
@@ -83,6 +83,8 @@ public abstract class DBAdapter implements IDBAdapter
private Set<String> reservedWords;
+ private int indexCounter;
+
public DBAdapter(String name, String version)
{
this.name = name;
@@ -303,9 +305,7 @@ public abstract class DBAdapter implements IDBAdapter
}
builder.append("INDEX "); //$NON-NLS-1$
- builder.append(table);
- builder.append("_idx"); //$NON-NLS-1$
- builder.append(num);
+ builder.append(getIndexNameFor(index, num));
builder.append(" ON "); //$NON-NLS-1$
builder.append(table);
builder.append(" ("); //$NON-NLS-1$
@@ -330,6 +330,14 @@ public abstract class DBAdapter implements IDBAdapter
statement.execute(sql);
}
+ /**
+ * @since 4.2
+ */
+ protected String getIndexNameFor(IDBIndex index, int num)
+ {
+ return "I" + System.currentTimeMillis() + "_" + ++indexCounter;
+ }
+
protected void addIndexField(StringBuilder builder, IDBField field)
{
builder.append(field);

Back to the top