/******************************************************************************* * Copyright (c) 2004, 2007-2009 IBM Corporation and Cambridge Semantics Incorporated. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Created by: Generated Source from org.openanzo.jdbc.utils.opgen.jet * * Contributors: * IBM Corporation - initial API and implementation * Cambridge Semantics Incorporated - Fork to Anzo *******************************************************************************/ package org.openanzo.datasource.nodecentric.sql; // allow for all types that can be returned from a resultset /** * GlitterRdbWrapper provides wrappers around SQL queries and transforms ResultSets into java objects * * @author Generated Source from org.openanzo.jdbc.utils.opgen.jet */ public class GlitterRdbWrapper { private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(GlitterRdbWrapper.class); static final long CUTOFF=5; /** *Constant "insertGraphIfValid" used to reference prepared statement Glitter.insertGraphIfValid * * <code> * INSERT INTO {0}{1} (ID) SELECT DISTINCT S.SUBJECT FROM {2} S WHERE S.METADATA = 1 AND S.SUBJECT = {4} AND S.PREDICATE = {5} AND S.OBJECT IN ({3}) AND S.COMMITTED<=0 * </code> */ public static final String insertGraphIfValid = "Glitter.insertGraphIfValid"; /** *Constant "insertGraphSysAdmin" used to reference prepared statement Glitter.insertGraphSysAdmin * * <code> * INSERT INTO {0}{1} (ID) VALUES(?) * </code> */ public static final String insertGraphSysAdmin = "Glitter.insertGraphSysAdmin"; /** *Constant "insertQueryDataset" used to reference prepared statement Glitter.insertQueryDataset * * <code> * INSERT INTO QUERY_GRAPHS (ID,DSID) VALUES(?,?) * </code> */ public static final String insertQueryDataset = "Glitter.insertQueryDataset"; /** *Constant "selectQueryDatasets" used to reference prepared statement Glitter.selectQueryDatasets * * <code> * SELECT ID,DSID FROM QUERY_GRAPHS ORDER BY DSID * </code> */ public static final String selectQueryDatasets = "Glitter.selectQueryDatasets"; /** *Constant "insertGraphsFromQueryDataset" used to reference prepared statement Glitter.insertGraphsFromQueryDataset * * <code> * INSERT INTO {0}{1} (ID) SELECT ID FROM QUERY_GRAPHS WHERE DSID=? * </code> */ public static final String insertGraphsFromQueryDataset = "Glitter.insertGraphsFromQueryDataset"; /** *Constant "purgeQueryDataset" used to reference prepared statement Glitter.purgeQueryDataset * * <code> * DELETE FROM QUERY_GRAPHS WHERE DSID=? * </code> */ public static final String purgeQueryDataset = "Glitter.purgeQueryDataset"; /** *Constant "insertAllValidGraphs" used to reference prepared statement Glitter.insertAllValidGraphs * * <code> * INSERT INTO {0}{1} (ID) SELECT DISTINCT S.SUBJECT FROM {2} S WHERE S.METADATA = 1 AND S.PREDICATE = {4} AND S.OBJECT IN ({3}) AND S.SUBJECT NOT IN ({5},{6},{7},{8}) AND S.COMMITTED<=0 * </code> */ public static final String insertAllValidGraphs = "Glitter.insertAllValidGraphs"; /** *Constant "insertAllValidNamedGraphs" used to reference prepared statement Glitter.insertAllValidNamedGraphs * * <code> * INSERT INTO {0}{1} (ID) SELECT DISTINCT S.SUBJECT FROM {2} S WHERE S.METADATA = 1 AND S.PREDICATE = {4} AND S.OBJECT IN ({3}) AND S.SUBJECT != S.NAMEDGRAPHID AND S.SUBJECT NOT IN ({5},{6}) AND S.COMMITTED<=0 * </code> */ public static final String insertAllValidNamedGraphs = "Glitter.insertAllValidNamedGraphs"; /** *Constant "insertAllValidMetadataGraphs" used to reference prepared statement Glitter.insertAllValidMetadataGraphs * * <code> * INSERT INTO {0}{1} (ID) SELECT DISTINCT S.SUBJECT FROM {2} S WHERE S.METADATA = 1 AND S.PREDICATE = {4} AND S.OBJECT IN ({3}) AND S.SUBJECT = S.NAMEDGRAPHID AND S.SUBJECT NOT IN ({5},{6}) AND S.COMMITTED<=0 * </code> */ public static final String insertAllValidMetadataGraphs = "Glitter.insertAllValidMetadataGraphs"; /** *Constant "insertValidDatasetGraphs" used to reference prepared statement Glitter.insertValidDatasetGraphs * * <code> * INSERT INTO {0}{1} (ID) SELECT DISTINCT DS.OBJECT FROM {2} S, {2} DS WHERE DS.NAMEDGRAPHID = {4} AND DS.SUBJECT = {5} AND DS.PREDICATE = {6} AND DS.COMMITTED<=0 AND DS.METADATA=0 AND S.METADATA = 1 AND S.SUBJECT = DS.OBJECT AND S.PREDICATE = {7} AND S.OBJECT IN ({3}) AND S.COMMITTED<=0 * </code> */ public static final String insertValidDatasetGraphs = "Glitter.insertValidDatasetGraphs"; /** *Constant "insertValidDatasetGraphsSysadmin" used to reference prepared statement Glitter.insertValidDatasetGraphsSysadmin * * <code> * INSERT INTO {0}{1} (ID) SELECT DISTINCT DS.OBJECT FROM {2} DS WHERE DS.NAMEDGRAPHID = ? AND DS.SUBJECT = ? AND DS.PREDICATE = ? AND DS.COMMITTED<=0 AND DS.METADATA=0 * </code> */ public static final String insertValidDatasetGraphsSysadmin = "Glitter.insertValidDatasetGraphsSysadmin"; /** *Constant "copyDistinctDatasetIds" used to reference prepared statement Glitter.copyDistinctDatasetIds * * <code> * INSERT INTO {0}{2} SELECT DISTINCT ID FROM {0}{1} * </code> */ public static final String copyDistinctDatasetIds = "Glitter.copyDistinctDatasetIds"; /** *Constant "insertTempDatasetGraph" used to reference prepared statement Glitter.insertTempDatasetGraph * * <code> * INSERT INTO {0}TEMPGRAPHS VALUES (?) * </code> */ public static final String insertTempDatasetGraph = "Glitter.insertTempDatasetGraph"; /** *Constant "insertAllNamedGraphs" used to reference prepared statement Glitter.insertAllNamedGraphs * * <code> * INSERT INTO {0}{1} (ID) SELECT DISTINCT NG.ID FROM NAMEDGRAPHS NG WHERE (COMMITTED=0 AND HEND IS NULL) OR (COMMITTED<0 AND HEND IS NOT NULL) UNION SELECT DISTINCT NG.ID FROM NAMEDGRAPHS_NR NG WHERE COMMITTED<=0 * </code> */ public static final String insertAllNamedGraphs = "Glitter.insertAllNamedGraphs"; /** *Constant "insertAllMetadataGraphs" used to reference prepared statement Glitter.insertAllMetadataGraphs * * <code> * INSERT INTO {0}{1} (ID) SELECT DISTINCT NG.METAID FROM NAMEDGRAPHS NG WHERE (COMMITTED=0 AND HEND IS NULL) OR (COMMITTED<0 AND HEND IS NOT NULL) UNION SELECT DISTINCT NG.METAID FROM NAMEDGRAPHS_NR NG WHERE COMMITTED<=0 * </code> */ public static final String insertAllMetadataGraphs = "Glitter.insertAllMetadataGraphs"; /** *Constant "countRows" used to reference prepared statement Glitter.countRows * * <code> * SELECT COUNT(1) FROM {0}{1} * </code> */ public static final String countRows = "Glitter.countRows"; /** *Constant "containsRevisionedGraph" used to reference prepared statement Glitter.containsRevisionedGraph * * <code> * SELECT COUNT(1) FROM {0}{1} TG,NAMEDGRAPHS NG WHERE TG.ID = ? and (TG.ID=NG.METAID OR TG.ID=NG.ID) AND ((NG.HEND IS NULL AND COMMITTED=0) OR(NG.HEND IS NOT NULL AND COMMITTED <0)) * </code> */ public static final String containsRevisionedGraph = "Glitter.containsRevisionedGraph"; /** *Constant "containsNonRevisionedGraph" used to reference prepared statement Glitter.containsNonRevisionedGraph * * <code> * SELECT COUNT(1) FROM {0}{1} TG,NAMEDGRAPHS_NR NG WHERE TG.ID = ? and (TG.ID=NG.METAID OR TG.ID=NG.ID) AND COMMITTED <=0 * </code> */ public static final String containsNonRevisionedGraph = "Glitter.containsNonRevisionedGraph"; /** *Constant "datasetPartContainsGraph" used to reference prepared statement Glitter.datasetPartContainsGraph * * <code> * SELECT COUNT(1) FROM {0}{1} WHERE ID = ? * </code> */ public static final String datasetPartContainsGraph = "Glitter.datasetPartContainsGraph"; /** *Constant "selectNamedGraphs" used to reference prepared statement Glitter.selectNamedGraphs * * <code> * SELECT {1}{0}.ID FROM {1}{0} WHERE {1}{0}.ID IN (SELECT NG.ID FROM NAMEDGRAPHS NG ((NG.HEND IS NULL AND COMMITTED=0) OR(NG.HEND IS NOT NULL AND COMMITTED <0))) * </code> */ public static final String selectNamedGraphs = "Glitter.selectNamedGraphs"; /** *Constant "selectMetadataGraphs" used to reference prepared statement Glitter.selectMetadataGraphs * * <code> * SELECT {1}{0}.ID FROM {1}{0} WHERE {1}{0}.ID IN (SELECT NG.METAID FROM NAMEDGRAPHS NG ((NG.HEND IS NULL AND COMMITTED=0) OR(NG.HEND IS NOT NULL AND COMMITTED <0))) * </code> */ public static final String selectMetadataGraphs = "Glitter.selectMetadataGraphs"; /** *Constant "countValidRevisionedGraphs" used to reference prepared statement Glitter.countValidRevisionedGraphs * * <code> * SELECT COUNT(1) FROM GLITTERUNIT WHERE EXISTS(SELECT {1}{0}.ID FROM {1}{0},NAMEDGRAPHS NG WHERE (NG.ID ={1}{0}.ID OR NG.METAID={1}{0}.ID) AND ((NG.HEND IS NULL AND COMMITTED=0) OR(NG.HEND IS NOT NULL AND COMMITTED <0))) * </code> */ public static final String countValidRevisionedGraphs = "Glitter.countValidRevisionedGraphs"; /** *Constant "countValidNonRevisionedGraphs" used to reference prepared statement Glitter.countValidNonRevisionedGraphs * * <code> * SELECT COUNT(1) FROM GLITTERUNIT WHERE EXISTS (SELECT {1}{0}.ID FROM {1}{0},NAMEDGRAPHS_NR NG WHERE (NG.ID ={1}{0}.ID OR NG.METAID={1}{0}.ID) AND NG.COMMITTED<=0) * </code> */ public static final String countValidNonRevisionedGraphs = "Glitter.countValidNonRevisionedGraphs"; /** *Constant "countValidRevisionedGraphsInSet" used to reference prepared statement Glitter.countValidRevisionedGraphsInSet * * <code> * SELECT COUNT(1) FROM GLITTERUNIT WHERE EXISTS( SELECT NG.ID FROM QUERY_GRAPHS,NAMEDGRAPHS NG WHERE QUERY_GRAPHS.DSID=? AND (NG.ID =QUERY_GRAPHS.ID OR NG.METAID=QUERY_GRAPHS.ID) AND ((NG.HEND IS NULL AND NG.COMMITTED=0) OR(NG.HEND IS NOT NULL AND NG.COMMITTED <0)) ) * </code> */ public static final String countValidRevisionedGraphsInSet = "Glitter.countValidRevisionedGraphsInSet"; /** *Constant "countValidNonRevisionedGraphsInSet" used to reference prepared statement Glitter.countValidNonRevisionedGraphsInSet * * <code> * SELECT COUNT(1) FROM GLITTERUNIT WHERE EXISTS( SELECT NG.ID FROM QUERY_GRAPHS,NAMEDGRAPHS_NR NG WHERE QUERY_GRAPHS.DSID=? AND (NG.ID =QUERY_GRAPHS.ID OR NG.METAID=QUERY_GRAPHS.ID) AND NG.COMMITTED <=0 ) * </code> */ public static final String countValidNonRevisionedGraphsInSet = "Glitter.countValidNonRevisionedGraphsInSet"; /** *Constant "selectUntimelyGraphs" used to reference prepared statement Glitter.selectUntimelyGraphs * * <code> * SELECT TMP1.ID FROM {0}{1} TMP1 LEFT JOIN (SELECT NG.ID FROM NAMEDGRAPHS NG, {0}{2} TMP2 WHERE NG.ID = TMP2.ID AND ? >= NG.HSTART AND (NG.HEND IS NULL OR ? < NG.HEND) )AS TMP2 ON TMP1.ID=TMP2.ID WHERE TMP2.ID IS NULL * </code> */ public static final String selectUntimelyGraphs = "Glitter.selectUntimelyGraphs"; /** *Constant "selectUntimelyMetadataGraphs" used to reference prepared statement Glitter.selectUntimelyMetadataGraphs * * <code> * SELECT TMP1.ID FROM {0}{1} TMP1 LEFT JOIN (SELECT DISTINCT NG.METAID FROM NAMEDGRAPHS NG, {0}{2} TMP2 WHERE NG.METAID = TMP2.ID AND ? >= NG.HSTART AND (NG.HEND IS NULL OR ? < NG.HEND) )AS TMP2 ON TMP1.ID=TMP2.METAID WHERE TMP2.METAID IS NULL * </code> */ public static final String selectUntimelyMetadataGraphs = "Glitter.selectUntimelyMetadataGraphs"; /** *Constant "selectGraphs" used to reference prepared statement Glitter.selectGraphs * * <code> * SELECT TG.ID AS GRAPH FROM {0}{1} TG * </code> */ public static final String selectGraphs = "Glitter.selectGraphs"; /** *Constant "insertIdToTempTable" used to reference prepared statement Glitter.insertIdToTempTable * * <code> * INSERT INTO {0}{1} (ID) VALUES(?) * </code> */ public static final String insertIdToTempTable = "Glitter.insertIdToTempTable"; /** * Runs the insertGraphIfValid prepared statement. * <code> * INSERT INTO {0}{1} (ID) SELECT DISTINCT S.SUBJECT FROM {2} S WHERE S.METADATA = 1 AND S.SUBJECT = {4} AND S.PREDICATE = {5} AND S.OBJECT IN ({3}) AND S.COMMITTED<=0 * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param sessionPrefix template parameter *@param insertTable template parameter *@param statementsTable template parameter *@param roleSql template parameter *@param graphId template parameter *@param canBeReadById template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int insertGraphIfValid (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String sessionPrefix, String insertTable, String statementsTable, String roleSql, String graphId, String canBeReadById) throws org.openanzo.jdbc.utils.RdbException{ java.sql.Statement stmt = null; //long startTimer=System.currentTimeMillis(); try { String sql= stmtProvider.getSQL(insertGraphIfValid, new String[] {sessionPrefix, insertTable, statementsTable, roleSql, graphId, canBeReadById}); stmt=connection.createStatement(); int counter = 0; try{ counter=stmt.executeUpdate(sql); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ counter=stmt.executeUpdate(sql); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } return counter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"insertGraphIfValid",stmtProvider.getSqlString(insertGraphIfValid) ,"",""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"insertTable="+((insertTable!=null)?insertTable.toString():"null") + "," +"statementsTable="+((statementsTable!=null)?statementsTable.toString():"null") + "," +"roleSql="+((roleSql!=null)?roleSql.toString():"null") + "," +"graphId="+((graphId!=null)?graphId.toString():"null") + "," +"canBeReadById="+((canBeReadById!=null)?canBeReadById.toString():"null")); } finally { if (stmt != null) { try { stmt.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing statement",sqle); } } //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[insertGraphIfValid]"+endtimer); } } /** *Batch operation for adding parameters to the InsertGraphIfValid prepared statement */ public static class BatchInsertGraphIfValid extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the InsertGraphIfValid prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param insertTable template parameter *@param statementsTable template parameter *@param roleSql template parameter *@param graphId template parameter *@param canBeReadById template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchInsertGraphIfValid(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String insertTable, String statementsTable, String roleSql, String graphId, String canBeReadById) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,insertGraphIfValid,new String[] {sessionPrefix, insertTable, statementsTable, roleSql, graphId, canBeReadById}); } /** * Sets the input parameters for the insertGraphIfValid prepared statement. * *@throws org.openanzo.jdbc.utils.RdbException */ public void addEntry () throws org.openanzo.jdbc.utils.RdbException { try{ ps.clearParameters(); ps.addBatch(); }catch(java.sql.SQLException sqle){ throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle); } } } /** * Runs the insertGraphSysAdmin prepared statement. * <code> * INSERT INTO {0}{1} (ID) VALUES(?) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param graphId template parameter * *@param sessionPrefix template parameter *@param insertTable template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int insertGraphSysAdmin (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long graphId, String sessionPrefix, String insertTable) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(insertGraphSysAdmin, new String[] {sessionPrefix, insertTable},connection); int argc = 1; ps.setLong(argc++, graphId); int counter = 0; try{ counter=ps.executeUpdate(); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ counter=ps.executeUpdate(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } return counter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"insertGraphSysAdmin",stmtProvider.getSqlString(insertGraphSysAdmin) ,""+ "graphId="+(graphId),""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"insertTable="+((insertTable!=null)?insertTable.toString():"null")); } finally { if (ps != null) { try { ps.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle); } } //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[insertGraphSysAdmin]"+endtimer); } } /** *Batch operation for adding parameters to the InsertGraphSysAdmin prepared statement */ public static class BatchInsertGraphSysAdmin extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the InsertGraphSysAdmin prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param insertTable template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchInsertGraphSysAdmin(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String insertTable) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,insertGraphSysAdmin,new String[] {sessionPrefix, insertTable}); } /** * Sets the input parameters for the insertGraphSysAdmin prepared statement. * *@param graphId template parameter *@throws org.openanzo.jdbc.utils.RdbException */ public void addEntry (long graphId) throws org.openanzo.jdbc.utils.RdbException { try{ ps.clearParameters(); int argc = 1; ps.setLong(argc++, graphId); ps.addBatch(); }catch(java.sql.SQLException sqle){ throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle); } } } /** * Runs the insertQueryDataset prepared statement. * <code> * INSERT INTO QUERY_GRAPHS (ID,DSID) VALUES(?,?) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param graphId template parameter *@param datasetId template parameter * *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int insertQueryDataset (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long graphId, long datasetId) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(insertQueryDataset, new String[] {},connection); int argc = 1; ps.setLong(argc++, graphId); ps.setLong(argc++, datasetId); int counter = 0; try{ counter=ps.executeUpdate(); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ counter=ps.executeUpdate(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } return counter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"insertQueryDataset",stmtProvider.getSqlString(insertQueryDataset) ,""+ "graphId="+(graphId) + "," +"datasetId="+(datasetId),""); } finally { if (ps != null) { try { ps.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle); } } //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[insertQueryDataset]"+endtimer); } } /** *Batch operation for adding parameters to the InsertQueryDataset prepared statement */ public static class BatchInsertQueryDataset extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the InsertQueryDataset prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * * @throws org.openanzo.jdbc.utils.RdbException */ public BatchInsertQueryDataset(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,insertQueryDataset,new String[] {}); } /** * Sets the input parameters for the insertQueryDataset prepared statement. * *@param graphId template parameter *@param datasetId template parameter *@throws org.openanzo.jdbc.utils.RdbException */ public void addEntry (long graphId, long datasetId) throws org.openanzo.jdbc.utils.RdbException { try{ ps.clearParameters(); int argc = 1; ps.setLong(argc++, graphId); ps.setLong(argc++, datasetId); ps.addBatch(); }catch(java.sql.SQLException sqle){ throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle); } } } /** * Transformer that transforms the rows in the result set for the selectQueryDatasets prepared statement. */ static final org.openanzo.jdbc.utils.Transformer<SelectQueryDatasetsResult> transformSelectQueryDatasets = new org.openanzo.jdbc.utils.Transformer<SelectQueryDatasetsResult>(){ public SelectQueryDatasetsResult transform(java.sql.ResultSet rs) { SelectQueryDatasetsResult result = new SelectQueryDatasetsResult(); try { result.graphId=rs.getLong(1); } catch (java.sql.SQLException e) { log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:graphId",e); throw new org.apache.commons.collections.FunctorException(e); } try { result.datasetId=rs.getLong(2); } catch (java.sql.SQLException e) { log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:datasetId",e); throw new org.apache.commons.collections.FunctorException(e); } return result; } }; /** * Runs the selectQueryDatasets prepared statement. * <code> * SELECT ID,DSID FROM QUERY_GRAPHS ORDER BY DSID * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@return org.openanzo.jdbc.utils.ClosableIterator *@throws org.openanzo.jdbc.utils.RdbException */ public static org.openanzo.jdbc.utils.ClosableIterator<SelectQueryDatasetsResult> selectQueryDatasets (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(selectQueryDatasets, new String[] {},connection); java.sql.ResultSet rs = null; try{ rs = ps.executeQuery(); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ rs = ps.executeQuery(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } org.openanzo.jdbc.utils.ClosableIterator<SelectQueryDatasetsResult> iter = new org.openanzo.jdbc.utils.ResultSetIterator<SelectQueryDatasetsResult>(rs, ps, stmtProvider, transformSelectQueryDatasets); return iter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"selectQueryDatasets",stmtProvider.getSqlString(selectQueryDatasets) ,"",""); } finally { //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[selectQueryDatasets]"+endtimer); } } /** *Default implementation of SelectQueryDatasetsResult */ public static class SelectQueryDatasetsResult { /**Value for the "graphId" result value*/ private long graphId; /**Value for the "datasetId" result value*/ private long datasetId; /** *Get GraphId value *@return GraphId value */ public long getGraphId() { return this.graphId; } /** *Get DatasetId value *@return DatasetId value */ public long getDatasetId() { return this.datasetId; } } /** * Runs the insertGraphsFromQueryDataset prepared statement. * <code> * INSERT INTO {0}{1} (ID) SELECT ID FROM QUERY_GRAPHS WHERE DSID=? * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param dsId template parameter * *@param sessionPrefix template parameter *@param insertTable template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int insertGraphsFromQueryDataset (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long dsId, String sessionPrefix, String insertTable) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(insertGraphsFromQueryDataset, new String[] {sessionPrefix, insertTable},connection); int argc = 1; ps.setLong(argc++, dsId); int counter = 0; try{ counter=ps.executeUpdate(); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ counter=ps.executeUpdate(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } return counter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"insertGraphsFromQueryDataset",stmtProvider.getSqlString(insertGraphsFromQueryDataset) ,""+ "dsId="+(dsId),""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"insertTable="+((insertTable!=null)?insertTable.toString():"null")); } finally { if (ps != null) { try { ps.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle); } } //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[insertGraphsFromQueryDataset]"+endtimer); } } /** *Batch operation for adding parameters to the InsertGraphsFromQueryDataset prepared statement */ public static class BatchInsertGraphsFromQueryDataset extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the InsertGraphsFromQueryDataset prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param insertTable template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchInsertGraphsFromQueryDataset(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String insertTable) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,insertGraphsFromQueryDataset,new String[] {sessionPrefix, insertTable}); } /** * Sets the input parameters for the insertGraphsFromQueryDataset prepared statement. * *@param dsId template parameter *@throws org.openanzo.jdbc.utils.RdbException */ public void addEntry (long dsId) throws org.openanzo.jdbc.utils.RdbException { try{ ps.clearParameters(); int argc = 1; ps.setLong(argc++, dsId); ps.addBatch(); }catch(java.sql.SQLException sqle){ throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle); } } } /** * Runs the purgeQueryDataset prepared statement. * <code> * DELETE FROM QUERY_GRAPHS WHERE DSID=? * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param dsId template parameter * *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int purgeQueryDataset (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long dsId) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(purgeQueryDataset, new String[] {},connection); int argc = 1; ps.setLong(argc++, dsId); int counter = 0; try{ counter=ps.executeUpdate(); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ counter=ps.executeUpdate(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } return counter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"purgeQueryDataset",stmtProvider.getSqlString(purgeQueryDataset) ,""+ "dsId="+(dsId),""); } finally { if (ps != null) { try { ps.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle); } } //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[purgeQueryDataset]"+endtimer); } } /** *Batch operation for adding parameters to the PurgeQueryDataset prepared statement */ public static class BatchPurgeQueryDataset extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the PurgeQueryDataset prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * * @throws org.openanzo.jdbc.utils.RdbException */ public BatchPurgeQueryDataset(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,purgeQueryDataset,new String[] {}); } /** * Sets the input parameters for the purgeQueryDataset prepared statement. * *@param dsId template parameter *@throws org.openanzo.jdbc.utils.RdbException */ public void addEntry (long dsId) throws org.openanzo.jdbc.utils.RdbException { try{ ps.clearParameters(); int argc = 1; ps.setLong(argc++, dsId); ps.addBatch(); }catch(java.sql.SQLException sqle){ throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle); } } } /** * Runs the insertAllValidGraphs prepared statement. * <code> * INSERT INTO {0}{1} (ID) SELECT DISTINCT S.SUBJECT FROM {2} S WHERE S.METADATA = 1 AND S.PREDICATE = {4} AND S.OBJECT IN ({3}) AND S.SUBJECT NOT IN ({5},{6},{7},{8}) AND S.COMMITTED<=0 * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param sessionPrefix template parameter *@param insertTable template parameter *@param statementsTable template parameter *@param roleSql template parameter *@param canBeReadById template parameter *@param ngDatasetId template parameter *@param ngDatasetMetadataId template parameter *@param mgDatasetId template parameter *@param mgDatasetMetadataId template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int insertAllValidGraphs (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String sessionPrefix, String insertTable, String statementsTable, String roleSql, String canBeReadById, String ngDatasetId, String ngDatasetMetadataId, String mgDatasetId, String mgDatasetMetadataId) throws org.openanzo.jdbc.utils.RdbException{ java.sql.Statement stmt = null; //long startTimer=System.currentTimeMillis(); try { String sql= stmtProvider.getSQL(insertAllValidGraphs, new String[] {sessionPrefix, insertTable, statementsTable, roleSql, canBeReadById, ngDatasetId, ngDatasetMetadataId, mgDatasetId, mgDatasetMetadataId}); stmt=connection.createStatement(); int counter = 0; try{ counter=stmt.executeUpdate(sql); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ counter=stmt.executeUpdate(sql); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } return counter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"insertAllValidGraphs",stmtProvider.getSqlString(insertAllValidGraphs) ,"",""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"insertTable="+((insertTable!=null)?insertTable.toString():"null") + "," +"statementsTable="+((statementsTable!=null)?statementsTable.toString():"null") + "," +"roleSql="+((roleSql!=null)?roleSql.toString():"null") + "," +"canBeReadById="+((canBeReadById!=null)?canBeReadById.toString():"null") + "," +"ngDatasetId="+((ngDatasetId!=null)?ngDatasetId.toString():"null") + "," +"ngDatasetMetadataId="+((ngDatasetMetadataId!=null)?ngDatasetMetadataId.toString():"null") + "," +"mgDatasetId="+((mgDatasetId!=null)?mgDatasetId.toString():"null") + "," +"mgDatasetMetadataId="+((mgDatasetMetadataId!=null)?mgDatasetMetadataId.toString():"null")); } finally { if (stmt != null) { try { stmt.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing statement",sqle); } } //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[insertAllValidGraphs]"+endtimer); } } /** *Batch operation for adding parameters to the InsertAllValidGraphs prepared statement */ public static class BatchInsertAllValidGraphs extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the InsertAllValidGraphs prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param insertTable template parameter *@param statementsTable template parameter *@param roleSql template parameter *@param canBeReadById template parameter *@param ngDatasetId template parameter *@param ngDatasetMetadataId template parameter *@param mgDatasetId template parameter *@param mgDatasetMetadataId template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchInsertAllValidGraphs(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String insertTable, String statementsTable, String roleSql, String canBeReadById, String ngDatasetId, String ngDatasetMetadataId, String mgDatasetId, String mgDatasetMetadataId) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,insertAllValidGraphs,new String[] {sessionPrefix, insertTable, statementsTable, roleSql, canBeReadById, ngDatasetId, ngDatasetMetadataId, mgDatasetId, mgDatasetMetadataId}); } /** * Sets the input parameters for the insertAllValidGraphs prepared statement. * *@throws org.openanzo.jdbc.utils.RdbException */ public void addEntry () throws org.openanzo.jdbc.utils.RdbException { try{ ps.clearParameters(); ps.addBatch(); }catch(java.sql.SQLException sqle){ throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle); } } } /** * Runs the insertAllValidNamedGraphs prepared statement. * <code> * INSERT INTO {0}{1} (ID) SELECT DISTINCT S.SUBJECT FROM {2} S WHERE S.METADATA = 1 AND S.PREDICATE = {4} AND S.OBJECT IN ({3}) AND S.SUBJECT != S.NAMEDGRAPHID AND S.SUBJECT NOT IN ({5},{6}) AND S.COMMITTED<=0 * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param sessionPrefix template parameter *@param insertTable template parameter *@param statementsTable template parameter *@param roleSql template parameter *@param canBeReadById template parameter *@param ngDatasetId template parameter *@param mgDatasetId template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int insertAllValidNamedGraphs (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String sessionPrefix, String insertTable, String statementsTable, String roleSql, String canBeReadById, String ngDatasetId, String mgDatasetId) throws org.openanzo.jdbc.utils.RdbException{ java.sql.Statement stmt = null; //long startTimer=System.currentTimeMillis(); try { String sql= stmtProvider.getSQL(insertAllValidNamedGraphs, new String[] {sessionPrefix, insertTable, statementsTable, roleSql, canBeReadById, ngDatasetId, mgDatasetId}); stmt=connection.createStatement(); int counter = 0; try{ counter=stmt.executeUpdate(sql); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ counter=stmt.executeUpdate(sql); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } return counter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"insertAllValidNamedGraphs",stmtProvider.getSqlString(insertAllValidNamedGraphs) ,"",""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"insertTable="+((insertTable!=null)?insertTable.toString():"null") + "," +"statementsTable="+((statementsTable!=null)?statementsTable.toString():"null") + "," +"roleSql="+((roleSql!=null)?roleSql.toString():"null") + "," +"canBeReadById="+((canBeReadById!=null)?canBeReadById.toString():"null") + "," +"ngDatasetId="+((ngDatasetId!=null)?ngDatasetId.toString():"null") + "," +"mgDatasetId="+((mgDatasetId!=null)?mgDatasetId.toString():"null")); } finally { if (stmt != null) { try { stmt.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing statement",sqle); } } //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[insertAllValidNamedGraphs]"+endtimer); } } /** *Batch operation for adding parameters to the InsertAllValidNamedGraphs prepared statement */ public static class BatchInsertAllValidNamedGraphs extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the InsertAllValidNamedGraphs prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param insertTable template parameter *@param statementsTable template parameter *@param roleSql template parameter *@param canBeReadById template parameter *@param ngDatasetId template parameter *@param mgDatasetId template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchInsertAllValidNamedGraphs(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String insertTable, String statementsTable, String roleSql, String canBeReadById, String ngDatasetId, String mgDatasetId) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,insertAllValidNamedGraphs,new String[] {sessionPrefix, insertTable, statementsTable, roleSql, canBeReadById, ngDatasetId, mgDatasetId}); } /** * Sets the input parameters for the insertAllValidNamedGraphs prepared statement. * *@throws org.openanzo.jdbc.utils.RdbException */ public void addEntry () throws org.openanzo.jdbc.utils.RdbException { try{ ps.clearParameters(); ps.addBatch(); }catch(java.sql.SQLException sqle){ throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle); } } } /** * Runs the insertAllValidMetadataGraphs prepared statement. * <code> * INSERT INTO {0}{1} (ID) SELECT DISTINCT S.SUBJECT FROM {2} S WHERE S.METADATA = 1 AND S.PREDICATE = {4} AND S.OBJECT IN ({3}) AND S.SUBJECT = S.NAMEDGRAPHID AND S.SUBJECT NOT IN ({5},{6}) AND S.COMMITTED<=0 * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param sessionPrefix template parameter *@param insertTable template parameter *@param statementsTable template parameter *@param roleSql template parameter *@param canBeReadById template parameter *@param ngDatasetMetadataId template parameter *@param mgDatasetMetadataId template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int insertAllValidMetadataGraphs (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String sessionPrefix, String insertTable, String statementsTable, String roleSql, String canBeReadById, String ngDatasetMetadataId, String mgDatasetMetadataId) throws org.openanzo.jdbc.utils.RdbException{ java.sql.Statement stmt = null; //long startTimer=System.currentTimeMillis(); try { String sql= stmtProvider.getSQL(insertAllValidMetadataGraphs, new String[] {sessionPrefix, insertTable, statementsTable, roleSql, canBeReadById, ngDatasetMetadataId, mgDatasetMetadataId}); stmt=connection.createStatement(); int counter = 0; try{ counter=stmt.executeUpdate(sql); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ counter=stmt.executeUpdate(sql); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } return counter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"insertAllValidMetadataGraphs",stmtProvider.getSqlString(insertAllValidMetadataGraphs) ,"",""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"insertTable="+((insertTable!=null)?insertTable.toString():"null") + "," +"statementsTable="+((statementsTable!=null)?statementsTable.toString():"null") + "," +"roleSql="+((roleSql!=null)?roleSql.toString():"null") + "," +"canBeReadById="+((canBeReadById!=null)?canBeReadById.toString():"null") + "," +"ngDatasetMetadataId="+((ngDatasetMetadataId!=null)?ngDatasetMetadataId.toString():"null") + "," +"mgDatasetMetadataId="+((mgDatasetMetadataId!=null)?mgDatasetMetadataId.toString():"null")); } finally { if (stmt != null) { try { stmt.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing statement",sqle); } } //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[insertAllValidMetadataGraphs]"+endtimer); } } /** *Batch operation for adding parameters to the InsertAllValidMetadataGraphs prepared statement */ public static class BatchInsertAllValidMetadataGraphs extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the InsertAllValidMetadataGraphs prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param insertTable template parameter *@param statementsTable template parameter *@param roleSql template parameter *@param canBeReadById template parameter *@param ngDatasetMetadataId template parameter *@param mgDatasetMetadataId template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchInsertAllValidMetadataGraphs(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String insertTable, String statementsTable, String roleSql, String canBeReadById, String ngDatasetMetadataId, String mgDatasetMetadataId) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,insertAllValidMetadataGraphs,new String[] {sessionPrefix, insertTable, statementsTable, roleSql, canBeReadById, ngDatasetMetadataId, mgDatasetMetadataId}); } /** * Sets the input parameters for the insertAllValidMetadataGraphs prepared statement. * *@throws org.openanzo.jdbc.utils.RdbException */ public void addEntry () throws org.openanzo.jdbc.utils.RdbException { try{ ps.clearParameters(); ps.addBatch(); }catch(java.sql.SQLException sqle){ throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle); } } } /** * Runs the insertValidDatasetGraphs prepared statement. * <code> * INSERT INTO {0}{1} (ID) SELECT DISTINCT DS.OBJECT FROM {2} S, {2} DS WHERE DS.NAMEDGRAPHID = {4} AND DS.SUBJECT = {5} AND DS.PREDICATE = {6} AND DS.COMMITTED<=0 AND DS.METADATA=0 AND S.METADATA = 1 AND S.SUBJECT = DS.OBJECT AND S.PREDICATE = {7} AND S.OBJECT IN ({3}) AND S.COMMITTED<=0 * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param sessionPrefix template parameter *@param insertTable template parameter *@param statementsTable template parameter *@param roleSql template parameter *@param datasetId template parameter *@param datasetIdRepeated template parameter *@param datasetGraphPropertyId template parameter *@param canBeReadById template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int insertValidDatasetGraphs (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String sessionPrefix, String insertTable, String statementsTable, String roleSql, String datasetId, String datasetIdRepeated, String datasetGraphPropertyId, String canBeReadById) throws org.openanzo.jdbc.utils.RdbException{ java.sql.Statement stmt = null; //long startTimer=System.currentTimeMillis(); try { String sql= stmtProvider.getSQL(insertValidDatasetGraphs, new String[] {sessionPrefix, insertTable, statementsTable, roleSql, datasetId, datasetIdRepeated, datasetGraphPropertyId, canBeReadById}); stmt=connection.createStatement(); int counter = 0; try{ counter=stmt.executeUpdate(sql); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ counter=stmt.executeUpdate(sql); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } return counter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"insertValidDatasetGraphs",stmtProvider.getSqlString(insertValidDatasetGraphs) ,"",""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"insertTable="+((insertTable!=null)?insertTable.toString():"null") + "," +"statementsTable="+((statementsTable!=null)?statementsTable.toString():"null") + "," +"roleSql="+((roleSql!=null)?roleSql.toString():"null") + "," +"datasetId="+((datasetId!=null)?datasetId.toString():"null") + "," +"datasetIdRepeated="+((datasetIdRepeated!=null)?datasetIdRepeated.toString():"null") + "," +"datasetGraphPropertyId="+((datasetGraphPropertyId!=null)?datasetGraphPropertyId.toString():"null") + "," +"canBeReadById="+((canBeReadById!=null)?canBeReadById.toString():"null")); } finally { if (stmt != null) { try { stmt.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing statement",sqle); } } //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[insertValidDatasetGraphs]"+endtimer); } } /** *Batch operation for adding parameters to the InsertValidDatasetGraphs prepared statement */ public static class BatchInsertValidDatasetGraphs extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the InsertValidDatasetGraphs prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param insertTable template parameter *@param statementsTable template parameter *@param roleSql template parameter *@param datasetId template parameter *@param datasetIdRepeated template parameter *@param datasetGraphPropertyId template parameter *@param canBeReadById template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchInsertValidDatasetGraphs(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String insertTable, String statementsTable, String roleSql, String datasetId, String datasetIdRepeated, String datasetGraphPropertyId, String canBeReadById) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,insertValidDatasetGraphs,new String[] {sessionPrefix, insertTable, statementsTable, roleSql, datasetId, datasetIdRepeated, datasetGraphPropertyId, canBeReadById}); } /** * Sets the input parameters for the insertValidDatasetGraphs prepared statement. * *@throws org.openanzo.jdbc.utils.RdbException */ public void addEntry () throws org.openanzo.jdbc.utils.RdbException { try{ ps.clearParameters(); ps.addBatch(); }catch(java.sql.SQLException sqle){ throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle); } } } /** * Runs the insertValidDatasetGraphsSysadmin prepared statement. * <code> * INSERT INTO {0}{1} (ID) SELECT DISTINCT DS.OBJECT FROM {2} DS WHERE DS.NAMEDGRAPHID = ? AND DS.SUBJECT = ? AND DS.PREDICATE = ? AND DS.COMMITTED<=0 AND DS.METADATA=0 * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param datasetId template parameter *@param datasetIdRepeated template parameter *@param datasetGraphPropertyId template parameter * *@param sessionPrefix template parameter *@param insertTable template parameter *@param statementsTable template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int insertValidDatasetGraphsSysadmin (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long datasetId, long datasetIdRepeated, long datasetGraphPropertyId, String sessionPrefix, String insertTable, String statementsTable) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(insertValidDatasetGraphsSysadmin, new String[] {sessionPrefix, insertTable, statementsTable},connection); int argc = 1; ps.setLong(argc++, datasetId); ps.setLong(argc++, datasetIdRepeated); ps.setLong(argc++, datasetGraphPropertyId); int counter = 0; try{ counter=ps.executeUpdate(); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ counter=ps.executeUpdate(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } return counter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"insertValidDatasetGraphsSysadmin",stmtProvider.getSqlString(insertValidDatasetGraphsSysadmin) ,""+ "datasetId="+(datasetId) + "," +"datasetIdRepeated="+(datasetIdRepeated) + "," +"datasetGraphPropertyId="+(datasetGraphPropertyId),""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"insertTable="+((insertTable!=null)?insertTable.toString():"null") + "," +"statementsTable="+((statementsTable!=null)?statementsTable.toString():"null")); } finally { if (ps != null) { try { ps.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle); } } //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[insertValidDatasetGraphsSysadmin]"+endtimer); } } /** *Batch operation for adding parameters to the InsertValidDatasetGraphsSysadmin prepared statement */ public static class BatchInsertValidDatasetGraphsSysadmin extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the InsertValidDatasetGraphsSysadmin prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param insertTable template parameter *@param statementsTable template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchInsertValidDatasetGraphsSysadmin(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String insertTable, String statementsTable) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,insertValidDatasetGraphsSysadmin,new String[] {sessionPrefix, insertTable, statementsTable}); } /** * Sets the input parameters for the insertValidDatasetGraphsSysadmin prepared statement. * *@param datasetId template parameter *@param datasetIdRepeated template parameter *@param datasetGraphPropertyId template parameter *@throws org.openanzo.jdbc.utils.RdbException */ public void addEntry (long datasetId, long datasetIdRepeated, long datasetGraphPropertyId) throws org.openanzo.jdbc.utils.RdbException { try{ ps.clearParameters(); int argc = 1; ps.setLong(argc++, datasetId); ps.setLong(argc++, datasetIdRepeated); ps.setLong(argc++, datasetGraphPropertyId); ps.addBatch(); }catch(java.sql.SQLException sqle){ throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle); } } } /** * Runs the copyDistinctDatasetIds prepared statement. * <code> * INSERT INTO {0}{2} SELECT DISTINCT ID FROM {0}{1} * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param sessionPrefix template parameter *@param sourceTable template parameter *@param destinationTable template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int copyDistinctDatasetIds (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String sessionPrefix, String sourceTable, String destinationTable) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(copyDistinctDatasetIds, new String[] {sessionPrefix, sourceTable, destinationTable},connection); int counter = 0; try{ counter=ps.executeUpdate(); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ counter=ps.executeUpdate(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } return counter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"copyDistinctDatasetIds",stmtProvider.getSqlString(copyDistinctDatasetIds) ,"",""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"sourceTable="+((sourceTable!=null)?sourceTable.toString():"null") + "," +"destinationTable="+((destinationTable!=null)?destinationTable.toString():"null")); } finally { if (ps != null) { try { ps.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle); } } //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[copyDistinctDatasetIds]"+endtimer); } } /** *Batch operation for adding parameters to the CopyDistinctDatasetIds prepared statement */ public static class BatchCopyDistinctDatasetIds extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the CopyDistinctDatasetIds prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param sourceTable template parameter *@param destinationTable template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchCopyDistinctDatasetIds(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String sourceTable, String destinationTable) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,copyDistinctDatasetIds,new String[] {sessionPrefix, sourceTable, destinationTable}); } /** * Sets the input parameters for the copyDistinctDatasetIds prepared statement. * *@throws org.openanzo.jdbc.utils.RdbException */ public void addEntry () throws org.openanzo.jdbc.utils.RdbException { try{ ps.clearParameters(); ps.addBatch(); }catch(java.sql.SQLException sqle){ throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle); } } } /** * Runs the insertTempDatasetGraph prepared statement. * <code> * INSERT INTO {0}TEMPGRAPHS VALUES (?) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param id template parameter * *@param sessionPrefix template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int insertTempDatasetGraph (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long id, String sessionPrefix) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(insertTempDatasetGraph, new String[] {sessionPrefix},connection); int argc = 1; ps.setLong(argc++, id); int counter = 0; try{ counter=ps.executeUpdate(); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ counter=ps.executeUpdate(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } return counter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"insertTempDatasetGraph",stmtProvider.getSqlString(insertTempDatasetGraph) ,""+ "id="+(id),""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null")); } finally { if (ps != null) { try { ps.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle); } } //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[insertTempDatasetGraph]"+endtimer); } } /** *Batch operation for adding parameters to the InsertTempDatasetGraph prepared statement */ public static class BatchInsertTempDatasetGraph extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the InsertTempDatasetGraph prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchInsertTempDatasetGraph(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,insertTempDatasetGraph,new String[] {sessionPrefix}); } /** * Sets the input parameters for the insertTempDatasetGraph prepared statement. * *@param id template parameter *@throws org.openanzo.jdbc.utils.RdbException */ public void addEntry (long id) throws org.openanzo.jdbc.utils.RdbException { try{ ps.clearParameters(); int argc = 1; ps.setLong(argc++, id); ps.addBatch(); }catch(java.sql.SQLException sqle){ throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle); } } } /** * Runs the insertAllNamedGraphs prepared statement. * <code> * INSERT INTO {0}{1} (ID) SELECT DISTINCT NG.ID FROM NAMEDGRAPHS NG WHERE (COMMITTED=0 AND HEND IS NULL) OR (COMMITTED<0 AND HEND IS NOT NULL) UNION SELECT DISTINCT NG.ID FROM NAMEDGRAPHS_NR NG WHERE COMMITTED<=0 * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param sessionPrefix template parameter *@param insertTable template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int insertAllNamedGraphs (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String sessionPrefix, String insertTable) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(insertAllNamedGraphs, new String[] {sessionPrefix, insertTable},connection); int counter = 0; try{ counter=ps.executeUpdate(); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ counter=ps.executeUpdate(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } return counter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"insertAllNamedGraphs",stmtProvider.getSqlString(insertAllNamedGraphs) ,"",""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"insertTable="+((insertTable!=null)?insertTable.toString():"null")); } finally { if (ps != null) { try { ps.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle); } } //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[insertAllNamedGraphs]"+endtimer); } } /** *Batch operation for adding parameters to the InsertAllNamedGraphs prepared statement */ public static class BatchInsertAllNamedGraphs extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the InsertAllNamedGraphs prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param insertTable template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchInsertAllNamedGraphs(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String insertTable) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,insertAllNamedGraphs,new String[] {sessionPrefix, insertTable}); } /** * Sets the input parameters for the insertAllNamedGraphs prepared statement. * *@throws org.openanzo.jdbc.utils.RdbException */ public void addEntry () throws org.openanzo.jdbc.utils.RdbException { try{ ps.clearParameters(); ps.addBatch(); }catch(java.sql.SQLException sqle){ throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle); } } } /** * Runs the insertAllMetadataGraphs prepared statement. * <code> * INSERT INTO {0}{1} (ID) SELECT DISTINCT NG.METAID FROM NAMEDGRAPHS NG WHERE (COMMITTED=0 AND HEND IS NULL) OR (COMMITTED<0 AND HEND IS NOT NULL) UNION SELECT DISTINCT NG.METAID FROM NAMEDGRAPHS_NR NG WHERE COMMITTED<=0 * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param sessionPrefix template parameter *@param insertTable template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int insertAllMetadataGraphs (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String sessionPrefix, String insertTable) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(insertAllMetadataGraphs, new String[] {sessionPrefix, insertTable},connection); int counter = 0; try{ counter=ps.executeUpdate(); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ counter=ps.executeUpdate(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } return counter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"insertAllMetadataGraphs",stmtProvider.getSqlString(insertAllMetadataGraphs) ,"",""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"insertTable="+((insertTable!=null)?insertTable.toString():"null")); } finally { if (ps != null) { try { ps.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle); } } //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[insertAllMetadataGraphs]"+endtimer); } } /** *Batch operation for adding parameters to the InsertAllMetadataGraphs prepared statement */ public static class BatchInsertAllMetadataGraphs extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the InsertAllMetadataGraphs prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param insertTable template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchInsertAllMetadataGraphs(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String insertTable) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,insertAllMetadataGraphs,new String[] {sessionPrefix, insertTable}); } /** * Sets the input parameters for the insertAllMetadataGraphs prepared statement. * *@throws org.openanzo.jdbc.utils.RdbException */ public void addEntry () throws org.openanzo.jdbc.utils.RdbException { try{ ps.clearParameters(); ps.addBatch(); }catch(java.sql.SQLException sqle){ throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle); } } } /** * Runs the countRows prepared statement. * <code> * SELECT COUNT(1) FROM {0}{1} * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param sessionPrefix template parameter *@param tableName template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int countRows (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String sessionPrefix, String tableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(countRows, new String[] {sessionPrefix, tableName},connection); java.sql.ResultSet rs = null; try { try{ rs = ps.executeQuery(); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ rs = ps.executeQuery(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } if(!rs.next()) return 0; int val = rs.getInt(1); return val; } finally { if(rs != null) { try { rs.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing result set",sqle); } } } } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"countRows",stmtProvider.getSqlString(countRows) ,"",""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"tableName="+((tableName!=null)?tableName.toString():"null")); } finally { if (ps != null) { try { ps.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle); } } //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[countRows]"+endtimer); } } /** * Runs the containsRevisionedGraph prepared statement. * <code> * SELECT COUNT(1) FROM {0}{1} TG,NAMEDGRAPHS NG WHERE TG.ID = ? and (TG.ID=NG.METAID OR TG.ID=NG.ID) AND ((NG.HEND IS NULL AND COMMITTED=0) OR(NG.HEND IS NOT NULL AND COMMITTED <0)) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param id template parameter * *@param sessionPrefix template parameter *@param tableName template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int containsRevisionedGraph (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long id, String sessionPrefix, String tableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(containsRevisionedGraph, new String[] {sessionPrefix, tableName},connection); int argc = 1; ps.setLong(argc++, id); java.sql.ResultSet rs = null; try { try{ rs = ps.executeQuery(); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ rs = ps.executeQuery(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } if(!rs.next()) return 0; int val = rs.getInt(1); return val; } finally { if(rs != null) { try { rs.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing result set",sqle); } } } } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"containsRevisionedGraph",stmtProvider.getSqlString(containsRevisionedGraph) ,""+ "id="+(id),""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"tableName="+((tableName!=null)?tableName.toString():"null")); } finally { if (ps != null) { try { ps.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle); } } //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[containsRevisionedGraph]"+endtimer); } } /** * Runs the containsNonRevisionedGraph prepared statement. * <code> * SELECT COUNT(1) FROM {0}{1} TG,NAMEDGRAPHS_NR NG WHERE TG.ID = ? and (TG.ID=NG.METAID OR TG.ID=NG.ID) AND COMMITTED <=0 * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param id template parameter * *@param sessionPrefix template parameter *@param tableName template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int containsNonRevisionedGraph (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long id, String sessionPrefix, String tableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(containsNonRevisionedGraph, new String[] {sessionPrefix, tableName},connection); int argc = 1; ps.setLong(argc++, id); java.sql.ResultSet rs = null; try { try{ rs = ps.executeQuery(); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ rs = ps.executeQuery(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } if(!rs.next()) return 0; int val = rs.getInt(1); return val; } finally { if(rs != null) { try { rs.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing result set",sqle); } } } } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"containsNonRevisionedGraph",stmtProvider.getSqlString(containsNonRevisionedGraph) ,""+ "id="+(id),""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"tableName="+((tableName!=null)?tableName.toString():"null")); } finally { if (ps != null) { try { ps.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle); } } //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[containsNonRevisionedGraph]"+endtimer); } } /** * Runs the datasetPartContainsGraph prepared statement. * <code> * SELECT COUNT(1) FROM {0}{1} WHERE ID = ? * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param id template parameter * *@param sessionPrefix template parameter *@param tableName template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int datasetPartContainsGraph (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long id, String sessionPrefix, String tableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(datasetPartContainsGraph, new String[] {sessionPrefix, tableName},connection); int argc = 1; ps.setLong(argc++, id); java.sql.ResultSet rs = null; try { try{ rs = ps.executeQuery(); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ rs = ps.executeQuery(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } if(!rs.next()) return 0; int val = rs.getInt(1); return val; } finally { if(rs != null) { try { rs.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing result set",sqle); } } } } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"datasetPartContainsGraph",stmtProvider.getSqlString(datasetPartContainsGraph) ,""+ "id="+(id),""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"tableName="+((tableName!=null)?tableName.toString():"null")); } finally { if (ps != null) { try { ps.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle); } } //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[datasetPartContainsGraph]"+endtimer); } } /** * Transformer that transforms the rows in the result set for the selectNamedGraphs prepared statement. */ static final org.openanzo.jdbc.utils.Transformer<Long> transformSelectNamedGraphs = new org.openanzo.jdbc.utils.Transformer<Long>(){ public Long transform(java.sql.ResultSet rs) { try { Long val = rs.getLong(1); return val; } catch (java.sql.SQLException e) { log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set value:Long",e); throw new org.apache.commons.collections.FunctorException(e); } } }; /** * Runs the selectNamedGraphs prepared statement. * <code> * SELECT {1}{0}.ID FROM {1}{0} WHERE {1}{0}.ID IN (SELECT NG.ID FROM NAMEDGRAPHS NG ((NG.HEND IS NULL AND COMMITTED=0) OR(NG.HEND IS NOT NULL AND COMMITTED <0))) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param tableName template parameter *@param sessionPrefix template parameter *@return org.openanzo.jdbc.utils.ClosableIterator *@throws org.openanzo.jdbc.utils.RdbException */ public static org.openanzo.jdbc.utils.ClosableIterator<Long> selectNamedGraphs (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String tableName, String sessionPrefix) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(selectNamedGraphs, new String[] {tableName, sessionPrefix},connection); java.sql.ResultSet rs = null; try{ rs = ps.executeQuery(); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ rs = ps.executeQuery(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } org.openanzo.jdbc.utils.ClosableIterator<Long> iter = new org.openanzo.jdbc.utils.ResultSetIterator<Long>(rs, ps, stmtProvider, transformSelectNamedGraphs); return iter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"selectNamedGraphs",stmtProvider.getSqlString(selectNamedGraphs) ,"",""+ "tableName="+((tableName!=null)?tableName.toString():"null") + "," +"sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null")); } finally { //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[selectNamedGraphs]"+endtimer); } } /** * Transformer that transforms the rows in the result set for the selectMetadataGraphs prepared statement. */ static final org.openanzo.jdbc.utils.Transformer<Long> transformSelectMetadataGraphs = new org.openanzo.jdbc.utils.Transformer<Long>(){ public Long transform(java.sql.ResultSet rs) { try { Long val = rs.getLong(1); return val; } catch (java.sql.SQLException e) { log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set value:Long",e); throw new org.apache.commons.collections.FunctorException(e); } } }; /** * Runs the selectMetadataGraphs prepared statement. * <code> * SELECT {1}{0}.ID FROM {1}{0} WHERE {1}{0}.ID IN (SELECT NG.METAID FROM NAMEDGRAPHS NG ((NG.HEND IS NULL AND COMMITTED=0) OR(NG.HEND IS NOT NULL AND COMMITTED <0))) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param tableName template parameter *@param sessionPrefix template parameter *@return org.openanzo.jdbc.utils.ClosableIterator *@throws org.openanzo.jdbc.utils.RdbException */ public static org.openanzo.jdbc.utils.ClosableIterator<Long> selectMetadataGraphs (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String tableName, String sessionPrefix) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(selectMetadataGraphs, new String[] {tableName, sessionPrefix},connection); java.sql.ResultSet rs = null; try{ rs = ps.executeQuery(); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ rs = ps.executeQuery(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } org.openanzo.jdbc.utils.ClosableIterator<Long> iter = new org.openanzo.jdbc.utils.ResultSetIterator<Long>(rs, ps, stmtProvider, transformSelectMetadataGraphs); return iter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"selectMetadataGraphs",stmtProvider.getSqlString(selectMetadataGraphs) ,"",""+ "tableName="+((tableName!=null)?tableName.toString():"null") + "," +"sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null")); } finally { //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[selectMetadataGraphs]"+endtimer); } } /** * Runs the countValidRevisionedGraphs prepared statement. * <code> * SELECT COUNT(1) FROM GLITTERUNIT WHERE EXISTS(SELECT {1}{0}.ID FROM {1}{0},NAMEDGRAPHS NG WHERE (NG.ID ={1}{0}.ID OR NG.METAID={1}{0}.ID) AND ((NG.HEND IS NULL AND COMMITTED=0) OR(NG.HEND IS NOT NULL AND COMMITTED <0))) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param tableName template parameter *@param sessionPrefix template parameter *@return long *@throws org.openanzo.jdbc.utils.RdbException */ public static long countValidRevisionedGraphs (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String tableName, String sessionPrefix) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(countValidRevisionedGraphs, new String[] {tableName, sessionPrefix},connection); java.sql.ResultSet rs = null; try { try{ rs = ps.executeQuery(); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ rs = ps.executeQuery(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } if(!rs.next()) return 0; long val = rs.getLong(1); return val; } finally { if(rs != null) { try { rs.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing result set",sqle); } } } } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"countValidRevisionedGraphs",stmtProvider.getSqlString(countValidRevisionedGraphs) ,"",""+ "tableName="+((tableName!=null)?tableName.toString():"null") + "," +"sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null")); } finally { if (ps != null) { try { ps.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle); } } //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[countValidRevisionedGraphs]"+endtimer); } } /** * Runs the countValidNonRevisionedGraphs prepared statement. * <code> * SELECT COUNT(1) FROM GLITTERUNIT WHERE EXISTS (SELECT {1}{0}.ID FROM {1}{0},NAMEDGRAPHS_NR NG WHERE (NG.ID ={1}{0}.ID OR NG.METAID={1}{0}.ID) AND NG.COMMITTED<=0) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param tableName template parameter *@param sessionPrefix template parameter *@return long *@throws org.openanzo.jdbc.utils.RdbException */ public static long countValidNonRevisionedGraphs (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String tableName, String sessionPrefix) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(countValidNonRevisionedGraphs, new String[] {tableName, sessionPrefix},connection); java.sql.ResultSet rs = null; try { try{ rs = ps.executeQuery(); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ rs = ps.executeQuery(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } if(!rs.next()) return 0; long val = rs.getLong(1); return val; } finally { if(rs != null) { try { rs.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing result set",sqle); } } } } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"countValidNonRevisionedGraphs",stmtProvider.getSqlString(countValidNonRevisionedGraphs) ,"",""+ "tableName="+((tableName!=null)?tableName.toString():"null") + "," +"sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null")); } finally { if (ps != null) { try { ps.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle); } } //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[countValidNonRevisionedGraphs]"+endtimer); } } /** * Runs the countValidRevisionedGraphsInSet prepared statement. * <code> * SELECT COUNT(1) FROM GLITTERUNIT WHERE EXISTS( SELECT NG.ID FROM QUERY_GRAPHS,NAMEDGRAPHS NG WHERE QUERY_GRAPHS.DSID=? AND (NG.ID =QUERY_GRAPHS.ID OR NG.METAID=QUERY_GRAPHS.ID) AND ((NG.HEND IS NULL AND NG.COMMITTED=0) OR(NG.HEND IS NOT NULL AND NG.COMMITTED <0)) ) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param dsId template parameter * *@return long *@throws org.openanzo.jdbc.utils.RdbException */ public static long countValidRevisionedGraphsInSet (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, Long dsId) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(countValidRevisionedGraphsInSet, new String[] {},connection); int argc = 1; if(dsId == null) { ps.setNull(argc++, java.sql.Types.BIGINT); } else { ps.setLong(argc++, dsId); } java.sql.ResultSet rs = null; try { try{ rs = ps.executeQuery(); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ rs = ps.executeQuery(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } if(!rs.next()) return 0; long val = rs.getLong(1); return val; } finally { if(rs != null) { try { rs.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing result set",sqle); } } } } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"countValidRevisionedGraphsInSet",stmtProvider.getSqlString(countValidRevisionedGraphsInSet) ,""+ "dsId="+((dsId!=null)?dsId.toString():"null"),""); } finally { if (ps != null) { try { ps.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle); } } //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[countValidRevisionedGraphsInSet]"+endtimer); } } /** * Runs the countValidNonRevisionedGraphsInSet prepared statement. * <code> * SELECT COUNT(1) FROM GLITTERUNIT WHERE EXISTS( SELECT NG.ID FROM QUERY_GRAPHS,NAMEDGRAPHS_NR NG WHERE QUERY_GRAPHS.DSID=? AND (NG.ID =QUERY_GRAPHS.ID OR NG.METAID=QUERY_GRAPHS.ID) AND NG.COMMITTED <=0 ) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param dsId template parameter * *@return long *@throws org.openanzo.jdbc.utils.RdbException */ public static long countValidNonRevisionedGraphsInSet (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, Long dsId) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(countValidNonRevisionedGraphsInSet, new String[] {},connection); int argc = 1; if(dsId == null) { ps.setNull(argc++, java.sql.Types.BIGINT); } else { ps.setLong(argc++, dsId); } java.sql.ResultSet rs = null; try { try{ rs = ps.executeQuery(); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ rs = ps.executeQuery(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } if(!rs.next()) return 0; long val = rs.getLong(1); return val; } finally { if(rs != null) { try { rs.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing result set",sqle); } } } } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"countValidNonRevisionedGraphsInSet",stmtProvider.getSqlString(countValidNonRevisionedGraphsInSet) ,""+ "dsId="+((dsId!=null)?dsId.toString():"null"),""); } finally { if (ps != null) { try { ps.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle); } } //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[countValidNonRevisionedGraphsInSet]"+endtimer); } } /** * Transformer that transforms the rows in the result set for the selectUntimelyGraphs prepared statement. */ static final org.openanzo.jdbc.utils.Transformer<Long> transformSelectUntimelyGraphs = new org.openanzo.jdbc.utils.Transformer<Long>(){ public Long transform(java.sql.ResultSet rs) { try { Long val = rs.getLong(1); return val; } catch (java.sql.SQLException e) { log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set value:Long",e); throw new org.apache.commons.collections.FunctorException(e); } } }; /** * Runs the selectUntimelyGraphs prepared statement. * <code> * SELECT TMP1.ID FROM {0}{1} TMP1 LEFT JOIN (SELECT NG.ID FROM NAMEDGRAPHS NG, {0}{2} TMP2 WHERE NG.ID = TMP2.ID AND ? >= NG.HSTART AND (NG.HEND IS NULL OR ? < NG.HEND) )AS TMP2 ON TMP1.ID=TMP2.ID WHERE TMP2.ID IS NULL * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param lastTransactionTime1 template parameter *@param lastTransactionTime2 template parameter * *@param sessionPrefix template parameter *@param tempgraph1 template parameter *@param tempgraph2 template parameter *@return org.openanzo.jdbc.utils.ClosableIterator *@throws org.openanzo.jdbc.utils.RdbException */ public static org.openanzo.jdbc.utils.ClosableIterator<Long> selectUntimelyGraphs (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, Long lastTransactionTime1, Long lastTransactionTime2, String sessionPrefix, String tempgraph1, String tempgraph2) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(selectUntimelyGraphs, new String[] {sessionPrefix, tempgraph1, tempgraph2},connection); int argc = 1; if(lastTransactionTime1 == null) { ps.setNull(argc++, java.sql.Types.BIGINT); } else { ps.setLong(argc++, lastTransactionTime1); } if(lastTransactionTime2 == null) { ps.setNull(argc++, java.sql.Types.BIGINT); } else { ps.setLong(argc++, lastTransactionTime2); } java.sql.ResultSet rs = null; try{ rs = ps.executeQuery(); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ rs = ps.executeQuery(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } org.openanzo.jdbc.utils.ClosableIterator<Long> iter = new org.openanzo.jdbc.utils.ResultSetIterator<Long>(rs, ps, stmtProvider, transformSelectUntimelyGraphs); return iter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"selectUntimelyGraphs",stmtProvider.getSqlString(selectUntimelyGraphs) ,""+ "lastTransactionTime1="+((lastTransactionTime1!=null)?lastTransactionTime1.toString():"null") + "," +"lastTransactionTime2="+((lastTransactionTime2!=null)?lastTransactionTime2.toString():"null"),""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"tempgraph1="+((tempgraph1!=null)?tempgraph1.toString():"null") + "," +"tempgraph2="+((tempgraph2!=null)?tempgraph2.toString():"null")); } finally { //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[selectUntimelyGraphs]"+endtimer); } } /** * Transformer that transforms the rows in the result set for the selectUntimelyMetadataGraphs prepared statement. */ static final org.openanzo.jdbc.utils.Transformer<Long> transformSelectUntimelyMetadataGraphs = new org.openanzo.jdbc.utils.Transformer<Long>(){ public Long transform(java.sql.ResultSet rs) { try { Long val = rs.getLong(1); return val; } catch (java.sql.SQLException e) { log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set value:Long",e); throw new org.apache.commons.collections.FunctorException(e); } } }; /** * Runs the selectUntimelyMetadataGraphs prepared statement. * <code> * SELECT TMP1.ID FROM {0}{1} TMP1 LEFT JOIN (SELECT DISTINCT NG.METAID FROM NAMEDGRAPHS NG, {0}{2} TMP2 WHERE NG.METAID = TMP2.ID AND ? >= NG.HSTART AND (NG.HEND IS NULL OR ? < NG.HEND) )AS TMP2 ON TMP1.ID=TMP2.METAID WHERE TMP2.METAID IS NULL * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param lastTransactionTime1 template parameter *@param lastTransactionTime2 template parameter * *@param sessionPrefix template parameter *@param tempgraph1 template parameter *@param tempgraph2 template parameter *@return org.openanzo.jdbc.utils.ClosableIterator *@throws org.openanzo.jdbc.utils.RdbException */ public static org.openanzo.jdbc.utils.ClosableIterator<Long> selectUntimelyMetadataGraphs (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, Long lastTransactionTime1, Long lastTransactionTime2, String sessionPrefix, String tempgraph1, String tempgraph2) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(selectUntimelyMetadataGraphs, new String[] {sessionPrefix, tempgraph1, tempgraph2},connection); int argc = 1; if(lastTransactionTime1 == null) { ps.setNull(argc++, java.sql.Types.BIGINT); } else { ps.setLong(argc++, lastTransactionTime1); } if(lastTransactionTime2 == null) { ps.setNull(argc++, java.sql.Types.BIGINT); } else { ps.setLong(argc++, lastTransactionTime2); } java.sql.ResultSet rs = null; try{ rs = ps.executeQuery(); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ rs = ps.executeQuery(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } org.openanzo.jdbc.utils.ClosableIterator<Long> iter = new org.openanzo.jdbc.utils.ResultSetIterator<Long>(rs, ps, stmtProvider, transformSelectUntimelyMetadataGraphs); return iter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"selectUntimelyMetadataGraphs",stmtProvider.getSqlString(selectUntimelyMetadataGraphs) ,""+ "lastTransactionTime1="+((lastTransactionTime1!=null)?lastTransactionTime1.toString():"null") + "," +"lastTransactionTime2="+((lastTransactionTime2!=null)?lastTransactionTime2.toString():"null"),""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"tempgraph1="+((tempgraph1!=null)?tempgraph1.toString():"null") + "," +"tempgraph2="+((tempgraph2!=null)?tempgraph2.toString():"null")); } finally { //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[selectUntimelyMetadataGraphs]"+endtimer); } } /** * Transformer that transforms the rows in the result set for the selectGraphs prepared statement. */ static final org.openanzo.jdbc.utils.Transformer<Long> transformSelectGraphs = new org.openanzo.jdbc.utils.Transformer<Long>(){ public Long transform(java.sql.ResultSet rs) { try { Long val = rs.getLong(1); return val; } catch (java.sql.SQLException e) { log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set value:Long",e); throw new org.apache.commons.collections.FunctorException(e); } } }; /** * Runs the selectGraphs prepared statement. * <code> * SELECT TG.ID AS GRAPH FROM {0}{1} TG * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param sessionPrefix template parameter *@param tempTable template parameter *@return org.openanzo.jdbc.utils.ClosableIterator *@throws org.openanzo.jdbc.utils.RdbException */ public static org.openanzo.jdbc.utils.ClosableIterator<Long> selectGraphs (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String sessionPrefix, String tempTable) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(selectGraphs, new String[] {sessionPrefix, tempTable},connection); java.sql.ResultSet rs = null; try{ rs = ps.executeQuery(); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ rs = ps.executeQuery(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } org.openanzo.jdbc.utils.ClosableIterator<Long> iter = new org.openanzo.jdbc.utils.ResultSetIterator<Long>(rs, ps, stmtProvider, transformSelectGraphs); return iter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"selectGraphs",stmtProvider.getSqlString(selectGraphs) ,"",""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"tempTable="+((tempTable!=null)?tempTable.toString():"null")); } finally { //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[selectGraphs]"+endtimer); } } /** * Runs the insertIdToTempTable prepared statement. * <code> * INSERT INTO {0}{1} (ID) VALUES(?) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param id template parameter * *@param sessionPrefix template parameter *@param insertTable template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int insertIdToTempTable (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long id, String sessionPrefix, String insertTable) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(insertIdToTempTable, new String[] {sessionPrefix, insertTable},connection); int argc = 1; ps.setLong(argc++, id); int counter = 0; try{ counter=ps.executeUpdate(); }catch(java.sql.SQLException sqle){ if(sqle.getErrorCode()==1205){ int retries=0; while(retries<5){ try { Thread.sleep(5000); }catch(InterruptedException ie) { throw sqle; } try{ counter=ps.executeUpdate(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } return counter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"insertIdToTempTable",stmtProvider.getSqlString(insertIdToTempTable) ,""+ "id="+(id),""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"insertTable="+((insertTable!=null)?insertTable.toString():"null")); } finally { if (ps != null) { try { ps.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle); } } //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[insertIdToTempTable]"+endtimer); } } /** *Batch operation for adding parameters to the InsertIdToTempTable prepared statement */ public static class BatchInsertIdToTempTable extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the InsertIdToTempTable prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param insertTable template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchInsertIdToTempTable(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String insertTable) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,insertIdToTempTable,new String[] {sessionPrefix, insertTable}); } /** * Sets the input parameters for the insertIdToTempTable prepared statement. * *@param id template parameter *@throws org.openanzo.jdbc.utils.RdbException */ public void addEntry (long id) throws org.openanzo.jdbc.utils.RdbException { try{ ps.clearParameters(); int argc = 1; ps.setLong(argc++, id); ps.addBatch(); }catch(java.sql.SQLException sqle){ throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle); } } } }