[Registry-dev] svn commit r14848 -
branches/registry/1_0/modules/core/src/main/java/org/wso2/registry/jdbc/dao
svn at wso2.org
svn at wso2.org
Sat Mar 15 08:46:18 PDT 2008
Author: glen
Date: Sat Mar 15 08:46:15 2008
New Revision: 14848
Log:
Use SQL joins instead of manual coding and re-querying to get child/parent paths
Hopefully this should improve performance some.
Modified:
branches/registry/1_0/modules/core/src/main/java/org/wso2/registry/jdbc/dao/VersionedResourceDAO.java
Modified: branches/registry/1_0/modules/core/src/main/java/org/wso2/registry/jdbc/dao/VersionedResourceDAO.java
==============================================================================
--- branches/registry/1_0/modules/core/src/main/java/org/wso2/registry/jdbc/dao/VersionedResourceDAO.java (original)
+++ branches/registry/1_0/modules/core/src/main/java/org/wso2/registry/jdbc/dao/VersionedResourceDAO.java Sat Mar 15 08:46:15 2008
@@ -353,12 +353,12 @@
return -1;
}
- public String[] getChildPaths(long artifcatID, long versionNumber,
+ public String[] getChildPaths(long artifactID, long versionNumber,
Connection connection) throws SQLException {
- String selectSql = "SELECT DAID, DVN FROM DEPENDENCY WHERE AID=? AND VN=?";
+ String selectSql = "SELECT A.PATH, D.DVN FROM DEPENDENCY D, ARTIFACTS A WHERE D.AID=? AND D.VN=? AND A.AID=D.DAID";
PreparedStatement s = connection.prepareStatement(selectSql);
- s.setLong(1, artifcatID);
+ s.setLong(1, artifactID);
s.setLong(2, versionNumber);
ResultSet result = s.executeQuery();
@@ -366,16 +366,18 @@
//to see whether the patent node is there in the table , if not need to add that
while (result.next()) {
- long daid = result.getLong("DAID");
- long childVersion = result.getLong("DVN");
- String SQL = "SELECT PATH FROM ARTIFACTS WHERE AID=?";
- PreparedStatement ps = connection.prepareStatement(SQL);
- ps.setLong(1, daid);
- ResultSet pathResult = ps.executeQuery();
- if (pathResult.next()) {
- String path = pathResult.getString("PATH") + "?v=" + childVersion;
- dependencyPathList.add(path);
- }
+ String path = result.getString("PATH") + "?v=" + result.getLong("DVN");
+ dependencyPathList.add(path);
+//
+// long daid = result.getLong("DAID");
+// long childVersion = result.getLong("DVN");
+// String SQL = "SELECT PATH FROM ARTIFACTS WHERE AID=?";
+// PreparedStatement ps = connection.prepareStatement(SQL);
+// ps.setLong(1, daid);
+// ResultSet pathResult = ps.executeQuery();
+// if (pathResult.next()) {
+// String path = pathResult.getString("PATH") + "?v=" + childVersion;
+// }
}
return (String[]) (dependencyPathList.toArray(new String[dependencyPathList.size()]));
}
@@ -389,7 +391,7 @@
if (versionNumber == -1) {
return null;
}
- String selectSql = "SELECT AID , VN FROM DEPENDENCY WHERE DAID=? AND DVN=?";
+ String selectSql = "SELECT A.PATH, D.VN FROM ARTIFACTS A, DEPENDENCY D WHERE D.DAID=? AND D.DVN=? AND A.AID=D.AID";
PreparedStatement s = connection.prepareStatement(selectSql);
s.setLong(1, resourceID);
s.setLong(2, versionNumber);
@@ -399,16 +401,17 @@
//to see whether the patent node is there in the table , if not need to add that
if (result.next()) {
- long aid = result.getLong("AID");
- long parentVersionNumber = result.getLong("VN");
- String SQL = "SELECT PATH FROM ARTIFACTS WHERE AID=?";
- PreparedStatement ps = connection.prepareStatement(SQL);
- ps.setLong(1, aid);
- ResultSet pathResult = ps.executeQuery();
- if (pathResult.next()) {
- String path = pathResult.getString("PATH");
- parentPath = path + "?v=" + parentVersionNumber;
- }
+ parentPath = result.getString("PATH") + "?v=" + result.getLong("VN");
+// long aid = result.getLong("AID");
+// long parentVersionNumber = result.getLong("VN");
+// String SQL = "SELECT PATH FROM ARTIFACTS WHERE AID=?";
+// PreparedStatement ps = connection.prepareStatement(SQL);
+// ps.setLong(1, aid);
+// ResultSet pathResult = ps.executeQuery();
+// if (pathResult.next()) {
+// String path = pathResult.getString("PATH");
+// parentPath = path + "?v=" + parentVersionNumber;
+// }
}
return parentPath;
}
@@ -416,7 +419,8 @@
public String[] getLatestChildPaths(long resourceID, long versionNumber,
Connection connection) throws SQLException {
- String selectSql = "SELECT DAID, DVN FROM DEPENDENCY WHERE AID=? AND VN=?";
+// String selectSql = "SELECT DAID, DVN FROM DEPENDENCY WHERE AID=? AND VN=?";
+ String selectSql = "SELECT A.PATH FROM ARTIFACTS A, DEPENDENCY D WHERE D.AID=? AND D.VN=? AND A.AID=D.DAID";
PreparedStatement s = connection.prepareStatement(selectSql);
s.setLong(1, resourceID);
s.setLong(2, versionNumber);
@@ -426,15 +430,17 @@
//to see whether the patent node is there in the table , if not need to add that
while (result.next()) {
- long daid = result.getLong("DAID");
- String SQL = "SELECT PATH FROM ARTIFACTS WHERE AID=?";
- PreparedStatement ps = connection.prepareStatement(SQL);
- ps.setLong(1, daid);
- ResultSet pathResult = ps.executeQuery();
- if (pathResult.next()) {
- String path = pathResult.getString("PATH");
- dependencyPathList.add(path);
- }
+ String path = result.getString("PATH");
+ dependencyPathList.add(path);
+// long daid = result.getLong("DAID");
+// String SQL = "SELECT PATH FROM ARTIFACTS WHERE AID=?";
+// PreparedStatement ps = connection.prepareStatement(SQL);
+// ps.setLong(1, daid);
+// ResultSet pathResult = ps.executeQuery();
+// if (pathResult.next()) {
+// String path = pathResult.getString("PATH");
+// dependencyPathList.add(path);
+// }
}
return (String[]) (dependencyPathList.toArray(new String[dependencyPathList.size()]));
}
More information about the Registry-dev
mailing list