You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by ba...@apache.org on 2005/06/06 21:19:36 UTC
svn commit: r180459 [2/2] - in /incubator/derby/code/trunk/java:
engine/org/apache/derby/catalog/ engine/org/apache/derby/catalog/types/
engine/org/apache/derby/iapi/reference/
engine/org/apache/derby/iapi/services/io/
engine/org/apache/derby/iapi/sql/compile/
engine/org/apache/derby/iapi/sql/dictionary/
engine/org/apache/derby/impl/sql/catalog/
engine/org/apache/derby/impl/sql/compile/
engine/org/apache/derby/impl/sql/execute/ engine/org/apache/derby/loc/
testing/org/apache/derbyTesting/functionTests/master/
testing/org/apache/derbyTesting/functionTests/master/DerbyNet/
testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/
testing/org/apache/derbyTesting/functionTests/tests/lang/
testing/org/apache/derbyTesting/functionTests/tests/tools/
tools/org/apache/derby/impl/tools/dblook/ tools/org/apache/derby/loc/
tools/org/apache/derby/tools/
Modified: incubator/derby/code/trunk/java/tools/org/apache/derby/impl/tools/dblook/DB_StoredProcedure.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/tools/org/apache/derby/impl/tools/dblook/DB_StoredProcedure.java?rev=180459&r1=180458&r2=180459&view=diff
==============================================================================
--- incubator/derby/code/trunk/java/tools/org/apache/derby/impl/tools/dblook/DB_StoredProcedure.java (original)
+++ incubator/derby/code/trunk/java/tools/org/apache/derby/impl/tools/dblook/DB_StoredProcedure.java Mon Jun 6 12:19:34 2005
@@ -34,7 +34,6 @@
// Prepared statements use throughout the DDL
// generation process.
- private static PreparedStatement getSpecificInfoQuery;
/* ************************************************
* Generate the DDL for all stored procedures in a given
@@ -47,17 +46,6 @@
public static void doStoredProcedures(Connection conn)
throws SQLException {
- // Note: it is safe to cast the long varchar column "javaclassname"
- // to varchar(128) because it is defined to correspond to the
- // 'aliasid' column for a given stored procedure; since the aliasid
- // column is varchar(128), javaclassname can't be any larger. We
- // have to do this cast because DB2 mode doesn't allow equality
- // checks between long varchar columns. Note also: the check for
- // aliastype='S' must come first for this cast to be "safe".
- getSpecificInfoQuery = conn.prepareStatement("SELECT ALIAS, " +
- "SYSTEMALIAS FROM SYS.SYSALIASES WHERE ALIASTYPE='S' AND " +
- "(CAST (JAVACLASSNAME AS VARCHAR(128))) = ?");
-
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT ALIAS, ALIASINFO, " +
"ALIASID, SCHEMAID, JAVACLASSNAME, SYSTEMALIAS FROM SYS.SYSALIASES " +
@@ -95,7 +83,6 @@
rs.close();
stmt.close();
- getSpecificInfoQuery.close();
return;
}
@@ -130,21 +117,53 @@
proc.append(params.substring(0, params.indexOf("(")));
proc.append("' ");
- // Specific name (when implemented...)
- getSpecificInfoQuery.setString(1, aProc.getString(3));
- ResultSet specificRS = getSpecificInfoQuery.executeQuery();
- if (specificRS.next()) {
- if (!specificRS.getBoolean(2)) {
- // only process it if it's not a system alias.
- proc.append("SPECIFIC ");
- proc.append(specificRS.getString(1));
+ return proc.toString();
+
+ }
+
+ /* ************************************************
+ * Generate the DDL for all synonyms in a given
+ * database. On successul return, the DDL for the stored procedures
+ * has been written to output via Logs.java.
+ * @param conn Connection to the source database.
+ * @return
+ ****/
+ public static void doSynonyms(Connection conn) throws SQLException
+ {
+ Statement stmt = conn.createStatement();
+ ResultSet rs = stmt.executeQuery("SELECT ALIAS, SCHEMAID, " +
+ "ALIASINFO, SYSTEMALIAS FROM SYS.SYSALIASES A WHERE ALIASTYPE='S'");
+
+ boolean firstTime = true;
+ while (rs.next()) {
+ if (rs.getBoolean(4))
+ // it's a system alias, so we ignore it.
+ continue;
+
+ String aliasSchema = dblook.lookupSchemaId(rs.getString(2));
+ if (dblook.isIgnorableSchema(aliasSchema))
+ continue;
+
+ if (firstTime) {
+ Logs.reportString("----------------------------------------------");
+ Logs.reportMessage("DBLOOK_SynonymHeader");
+ Logs.reportString("----------------------------------------------\n");
}
- }
- specificRS.close();
+ String aliasName = rs.getString(1);
+ String aliasFullName = dblook.addQuotes(
+ dblook.expandDoubleQuotes(aliasName));
+ aliasFullName = aliasSchema + "." + aliasFullName;
- return proc.toString();
+ Logs.writeToNewDDL("CREATE SYNONYM "+aliasFullName+" FOR "+rs.getString(3));
+ Logs.writeStmtEndToNewDDL();
+ Logs.writeNewlineToNewDDL();
+ firstTime = false;
+ }
- }
+ rs.close();
+ stmt.close();
+ return;
+ }
}
Modified: incubator/derby/code/trunk/java/tools/org/apache/derby/loc/toolsmessages.properties
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/tools/org/apache/derby/loc/toolsmessages.properties?rev=180459&r1=180458&r2=180459&view=diff
==============================================================================
--- incubator/derby/code/trunk/java/tools/org/apache/derby/loc/toolsmessages.properties (original)
+++ incubator/derby/code/trunk/java/tools/org/apache/derby/loc/toolsmessages.properties Mon Jun 6 12:19:34 2005
@@ -211,6 +211,7 @@
DBLOOK_ForeignHeader=foreign
DBLOOK_SchemasHeader=DDL Statements for schemas
DBLOOK_StoredProcHeader=DDL Statements for stored procedures
+DBLOOK_SynonymHeader=DDL Statements for Synonyms
DBLOOK_TriggersHeader=DDL Statements for triggers
DBLOOK_ViewsHeader=DDL Statements for views
DBLOOK_Jar_Note=\
Modified: incubator/derby/code/trunk/java/tools/org/apache/derby/tools/dblook.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/tools/org/apache/derby/tools/dblook.java?rev=180459&r1=180458&r2=180459&view=diff
==============================================================================
--- incubator/derby/code/trunk/java/tools/org/apache/derby/tools/dblook.java (original)
+++ incubator/derby/code/trunk/java/tools/org/apache/derby/tools/dblook.java Mon Jun 6 12:19:34 2005
@@ -528,6 +528,7 @@
DB_Table.doTables(this.conn, tableIdToNameMap);
DB_Index.doIndexes(this.conn);
+ DB_StoredProcedure.doSynonyms(this.conn);
DB_Key.doKeys(this.conn);
DB_Check.doChecks(this.conn);