[exo-jcr-commits] exo-jcr SVN: r1148 - in jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation: db and 1 other directory.
do-not-reply at jboss.org
do-not-reply at jboss.org
Tue Dec 22 11:44:55 EST 2009
Author: sergiykarpenko
Date: 2009-12-22 11:44:55 -0500 (Tue, 22 Dec 2009)
New Revision: 1148
Modified:
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/DBConstants.java
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/NewJDBCStorageConnection.java
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MultiDbJDBCConnection.java
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SingleDbJDBCConnection.java
Log:
EXOJCR-302: GET_PROPERTIES_BY_PARENTID fixed and FIND_REFERENCE_PROPERTIES query added
Modified: jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/DBConstants.java
===================================================================
--- jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/DBConstants.java 2009-12-22 16:31:07 UTC (rev 1147)
+++ jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/DBConstants.java 2009-12-22 16:44:55 UTC (rev 1148)
@@ -119,6 +119,8 @@
*/
protected String FIND_REFERENCES;
+ protected String FIND_REFERENCE_PROPERTIES;
+
/**
* FIND_VALUES_BY_PROPERTYID.
*/
Modified: jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/NewJDBCStorageConnection.java
===================================================================
--- jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/NewJDBCStorageConnection.java 2009-12-22 16:31:07 UTC (rev 1147)
+++ jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/NewJDBCStorageConnection.java 2009-12-22 16:44:55 UTC (rev 1148)
@@ -636,21 +636,17 @@
checkIfOpened();
try
{
- ResultSet prop = findChildPropertiesByParentIdentifier(getInternalId(parent.getIdentifier()));
+
+ ResultSet resultSet = getChildPropertiesByParentIdentifier(getInternalId(parent.getIdentifier()));
List<PropertyData> children = new ArrayList<PropertyData>();
- while (prop.next())
- children.add((PropertyData)itemData(parent.getQPath(), prop, I_CLASS_PROPERTY, null));
+ if (resultSet.next())
+ {
+ while (!resultSet.isAfterLast())
+ children.add(loadPropertyRecord(resultSet, parent.getQPath()));
+ }
return children;
- //TODO mine
- // ResultSet prop = getChildPropertiesByParentIdentifier(getInternalId(parent.getIdentifier()));
- // List<PropertyData> children = new ArrayList<PropertyData>();
- // while (prop.next())
- // children.add(loadPropertyRecord(prop, parent.getQPath()));
- //
- // return children;
-
}
catch (SQLException e)
{
@@ -723,6 +719,15 @@
{
references.add((PropertyData)itemData(null, refProps, I_CLASS_PROPERTY, null));
}
+
+ ResultSet resultSet = findReferenceProperties(getInternalId(nodeIdentifier));
+ references = new ArrayList<PropertyData>(); //List<PropertyData>
+ if (resultSet.next())
+ {
+ while (!resultSet.isAfterLast())
+ references.add(loadPropertyRecord(resultSet, null));
+ }
+
return references;
}
catch (SQLException e)
@@ -2262,4 +2267,6 @@
protected abstract ResultSet findChildNodesByParentIdentifierNew(String parentIdentifier) throws SQLException;
protected abstract ResultSet getChildPropertiesByParentIdentifier(String parentIdentifier) throws SQLException;
+
+ protected abstract ResultSet findReferenceProperties(String parentIdentifier) throws SQLException;
}
Modified: jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MultiDbJDBCConnection.java
===================================================================
--- jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MultiDbJDBCConnection.java 2009-12-22 16:31:07 UTC (rev 1147)
+++ jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MultiDbJDBCConnection.java 2009-12-22 16:44:55 UTC (rev 1148)
@@ -71,6 +71,8 @@
protected PreparedStatement findReferences;
+ protected PreparedStatement findReferenceProperties;
+
protected PreparedStatement findValuesByPropertyId;
protected PreparedStatement findValuesDataByPropertyId;
@@ -206,6 +208,11 @@
"select P.ID, P.PARENT_ID, P.VERSION, P.P_TYPE, P.P_MULTIVALUED, P.NAME" + " from JCR_MREF R, JCR_MITEM P"
+ " where R.NODE_ID=? and P.ID=R.PROPERTY_ID and P.I_CLASS=2";
+ FIND_REFERENCE_PROPERTIES =
+ "select P.ID, P.PARENT_ID, P.VERSION, P.P_TYPE, P.P_MULTIVALUED, P.NAME, V.ORDER_NUM, V.DATA, V.STORAGE_DESC"
+ + " from JCR_MREF R, JCR_MITEM P, JCR_MVALUE V"
+ + " where R.NODE_ID=? and P.ID=R.PROPERTY_ID and P.I_CLASS=2 and V.PROPERTY_ID=P.ID order by P.ID, V.ORDER_NUM";
+
FIND_VALUES_BY_PROPERTYID =
"select PROPERTY_ID, ORDER_NUM, DATA, STORAGE_DESC from JCR_MVALUE where PROPERTY_ID=? order by ORDER_NUM";
@@ -226,9 +233,14 @@
FIND_PROPERTIES_BY_PARENTID = "select * from JCR_MITEM" + " where I_CLASS=2 and PARENT_ID=?" + " order by ID";
+ //TODO this query is incorrect because property may have not value
+ // GET_PROPERTIES_BY_PARENTID =
+ // "select I.*, V.ORDER_NUM, V.DATA, V.STORAGE_DESC from JCR_MITEM I, JCR_MVALUE V"
+ // + " where I.I_CLASS=2 and I.PARENT_ID=? and V.PROPERTY_ID=I.ID order by I.ID";
+
GET_PROPERTIES_BY_PARENTID =
- "select I.*, V.ORDER_NUM, V.DATA, V.STORAGE_DESC from JCR_MITEM I, JCR_MVALUE V"
- + " where I.I_CLASS=2 and I.PARENT_ID=? and V.PROPERTY_ID=I.ID order by I.ID";
+ "select I.*, V.ORDER_NUM, V.DATA, V.STORAGE_DESC from JCR_MITEM I LEFT OUTER JOIN JCR_MVALUE V ON (V.PROPERTY_ID=I.ID)"
+ + " where I.I_CLASS=2 and I.PARENT_ID=? order by ID, ORDER_NUM";
INSERT_NODE =
"insert into JCR_MITEM(ID, PARENT_ID, NAME, VERSION, I_CLASS, I_INDEX, N_ORDER_NUM) VALUES(?,?,?,?,"
@@ -662,4 +674,16 @@
getPropertiesByParentId.setString(1, parentIdentifier);
return getPropertiesByParentId.executeQuery();
}
+
+ @Override
+ protected ResultSet findReferenceProperties(String nodeIdentifier) throws SQLException
+ {
+ if (findReferenceProperties == null)
+ findReferenceProperties = dbConnection.prepareStatement(FIND_REFERENCE_PROPERTIES);
+ else
+ findReferenceProperties.clearParameters();
+
+ findReferenceProperties.setString(1, nodeIdentifier);
+ return findReferenceProperties.executeQuery();
+ }
}
Modified: jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SingleDbJDBCConnection.java
===================================================================
--- jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SingleDbJDBCConnection.java 2009-12-22 16:31:07 UTC (rev 1147)
+++ jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SingleDbJDBCConnection.java 2009-12-22 16:44:55 UTC (rev 1148)
@@ -634,4 +634,11 @@
return null;
}
+ @Override
+ protected ResultSet findReferenceProperties(String parentIdentifier) throws SQLException
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
More information about the exo-jcr-commits
mailing list