You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ddlutils-dev@db.apache.org by to...@apache.org on 2006/01/30 00:14:41 UTC
svn commit: r373389 - in /db/ddlutils/trunk: lib/
src/java/org/apache/ddlutils/platform/oracle/ src/test/
Author: tomdz
Date: Sun Jan 29 15:14:27 2006
New Revision: 373389
URL: http://svn.apache.org/viewcvs?rev=373389&view=rev
Log:
Added Oracle 10 platform
Enhanced/fixed Oracle platforms
Added:
db/ddlutils/trunk/lib/jakarta-oro-2.0.8.jar (with props)
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/oracle/Oracle10Builder.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/oracle/Oracle10ModelReader.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/oracle/Oracle10Platform.java
db/ddlutils/trunk/src/test/jdbc.properties.oracle10
Added: db/ddlutils/trunk/lib/jakarta-oro-2.0.8.jar
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/lib/jakarta-oro-2.0.8.jar?rev=373389&view=auto
==============================================================================
Binary file - no diff available.
Propchange: db/ddlutils/trunk/lib/jakarta-oro-2.0.8.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/oracle/Oracle10Builder.java
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/oracle/Oracle10Builder.java?rev=373389&view=auto
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/oracle/Oracle10Builder.java (added)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/oracle/Oracle10Builder.java Sun Jan 29 15:14:27 2006
@@ -0,0 +1,64 @@
+package org.apache.ddlutils.platform.oracle;
+
+import java.io.IOException;
+
+import org.apache.ddlutils.PlatformInfo;
+import org.apache.ddlutils.model.Column;
+import org.apache.ddlutils.model.Table;
+
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * The SQL builder for Oracle 10.
+ */
+public class Oracle10Builder extends Oracle8Builder
+{
+ /**
+ * Creates a new builder instance.
+ *
+ * @param info The platform info
+ */
+ public Oracle10Builder(PlatformInfo info)
+ {
+ super(info);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void dropTable(Table table) throws IOException
+ {
+ // The only difference to the Oracle 8/9 variant is the purge which prevents the
+ // table from being moved to the recycle bin (which is new in Oracle 10)
+ print("DROP TABLE ");
+ printIdentifier(getTableName(table));
+ print(" CASCADE CONSTRAINTS PURGE");
+ printEndOfStatement();
+
+ Column[] columns = table.getAutoIncrementColumns();
+
+ for (int idx = 0; idx < columns.length; idx++)
+ {
+ print("DROP TRIGGER ");
+ printIdentifier(getConstraintName("trg", table, columns[idx].getName(), null));
+ printEndOfStatement();
+ print("DROP SEQUENCE ");
+ printIdentifier(getConstraintName("seq", table, columns[idx].getName(), null));
+ printEndOfStatement();
+ }
+ }
+}
Added: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/oracle/Oracle10ModelReader.java
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/oracle/Oracle10ModelReader.java?rev=373389&view=auto
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/oracle/Oracle10ModelReader.java (added)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/oracle/Oracle10ModelReader.java Sun Jan 29 15:14:27 2006
@@ -0,0 +1,75 @@
+package org.apache.ddlutils.platform.oracle;
+
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Map;
+
+import org.apache.ddlutils.PlatformInfo;
+import org.apache.ddlutils.model.Table;
+import org.apache.ddlutils.platform.DatabaseMetaDataWrapper;
+
+public class Oracle10ModelReader extends Oracle8ModelReader
+{
+ /**
+ * Creates a new model reader for Oracle 10 databases.
+ *
+ * @param platformInfo The platform specific settings
+ */
+ public Oracle10ModelReader(PlatformInfo platformInfo)
+ {
+ super(platformInfo);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ protected Table readTable(DatabaseMetaDataWrapper metaData, Map values) throws SQLException
+ {
+ // Oracle 10 added the recycle bin which contains dropped database objects not yet purged
+ // Since we don't want entries from the recycle bin, we filter them out
+ PreparedStatement stmt = null;
+ boolean deletedObj = false;
+
+ try
+ {
+ stmt = getConnection().prepareStatement("SELECT * FROM RECYCLEBIN WHERE OBJECT_NAME=?");
+ stmt.setString(1, (String)values.get("TABLE_NAME"));
+
+ ResultSet rs = stmt.executeQuery();
+
+ if (rs.next())
+ {
+ // we found the table in the recycle bin, so its a deleted one which we ignore
+ deletedObj = true;
+ }
+ rs.close();
+ }
+ finally
+ {
+ if (stmt != null)
+ {
+ stmt.close();
+ }
+ }
+
+ return deletedObj ? null : super.readTable(metaData, values);
+ }
+
+}
Added: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/oracle/Oracle10Platform.java
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/oracle/Oracle10Platform.java?rev=373389&view=auto
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/oracle/Oracle10Platform.java (added)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/oracle/Oracle10Platform.java Sun Jan 29 15:14:27 2006
@@ -0,0 +1,48 @@
+package org.apache.ddlutils.platform.oracle;
+
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+/**
+ * The platform for Oracle 10.
+ *
+ * @author Thomas Dudziak
+ * @version $Revision: 231306 $
+ */
+public class Oracle10Platform extends Oracle9Platform
+{
+ /** Database name of this platform. */
+ public static final String DATABASENAME = "Oracle10";
+
+ /**
+ * Creates a new platform instance.
+ */
+ public Oracle10Platform()
+ {
+ super();
+ setSqlBuilder(new Oracle10Builder(getPlatformInfo()));
+ setModelReader(new Oracle10ModelReader(getPlatformInfo()));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public String getName()
+ {
+ return DATABASENAME;
+ }
+}
Added: db/ddlutils/trunk/src/test/jdbc.properties.oracle10
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/test/jdbc.properties.oracle10?rev=373389&view=auto
==============================================================================
--- db/ddlutils/trunk/src/test/jdbc.properties.oracle10 (added)
+++ db/ddlutils/trunk/src/test/jdbc.properties.oracle10 Sun Jan 29 15:14:27 2006
@@ -0,0 +1,31 @@
+# JDBC properties for Oracle10
+# Note: Properties starting with "datasource." will be fed into the datasource instance of the
+# class configured via the datasource.class property
+
+# Use this property to choose the Oracle10 platform (instead of the Oracle8 default one)
+ddlutils.platform=Oracle10
+
+#
+# Using the plain DBCP datasource
+#
+
+#datasource.class=org.apache.commons.dbcp.BasicDataSource
+#datasource.driverClassName=oracle.jdbc.driver.OracleDriver
+#datasource.url=jdbc:oracle:thin:@localhost:1521:test
+#datasource.username=ddlutils
+#datasource.password=ddlutils
+
+#
+# Or the Oracle datasource
+#
+
+datasource.class=oracle.jdbc.pool.OracleDataSource
+datasource.URL=jdbc:oracle:thin:@localhost:1521:test
+datasource.user=ddlutils
+datasource.password=ddlutils
+datasource.connectionCachingEnabled=true
+
+
+# For oracle, we should limit the schema to the one of the user
+# Note that Oracle requires this to be uppercase, even when using delimited identifiers
+ddlutils.schema=DDLUTILS