public SelectBuilder select(String selectClauseSQL) { return new SelectBuilder(this, selectClauseSQL); }
private Optional<Long> selectMaxSnapshotPrimaryKey(long globalIdPk, Session session) { Optional<Long> maxPrimaryKey = session .select("MAX(" + SNAPSHOT_PK + ")") .from(tableNameProvider.getSnapshotTableNameWithSchema()) .and(SNAPSHOT_GLOBAL_ID_FK, globalIdPk) .queryName("select max snapshot's PK") .queryForOptionalLong(); if (maxPrimaryKey.isPresent() && maxPrimaryKey.get() == 0){ return Optional.empty(); } return maxPrimaryKey; }
private Select build() { return new Select("SELECT " + getQueryName(), getParameters(), rawSql); }
List<CommitPropertyDTO> findCommitPropertiesOfSnaphots(Collection<Long> commitPKs, Session session) { if (commitPKs.isEmpty()) { return Collections.emptyList(); } return session.select(COMMIT_PROPERTY_COMMIT_FK + ", " + COMMIT_PROPERTY_NAME + ", " + COMMIT_PROPERTY_VALUE) .from(tableNameProvider.getCommitPropertyTableNameWithSchema()) .queryName("commit properties") .and(COMMIT_PROPERTY_COMMIT_FK + " in (" + Joiner.on(",").join(commitPKs) + ")") .executeQuery(resultSet -> new CommitPropertyDTO( resultSet.getLong(COMMIT_PROPERTY_COMMIT_FK), resultSet.getString(COMMIT_PROPERTY_NAME), resultSet.getString(COMMIT_PROPERTY_VALUE))); } }
List<CdoSnapshotSerialized> run() { selectBuilder.orderByDesc(SNAPSHOT_PK); selectBuilder.limit(queryParams.limit(), queryParams.skip()); return selectBuilder.executeQuery(cdoSnapshotMapper); }
boolean isCommitPersisted(CommitId commitId, Session session) { long count = session.select("count(*)") .from(getCommitTableNameWithSchema()) .and(COMMIT_COMMIT_ID, commitId.valueAsNumber()) .queryForLong("isCommitPersisted"); return count > 0; }
void addSnapshotPkFilter(long snapshotPk) { selectBuilder.and(SNAPSHOT_PK, snapshotPk); }
private Optional<BigDecimal> selectMaxCommitId(Session session) { return session.select("MAX(" + COMMIT_COMMIT_ID + ")") .from(getCommitTableNameWithSchema()) .queryForOptionalBigDecimal("max CommitId"); } }
public SnapshotQuery(TableNameProvider tableNames, QueryParams queryParams, Session session) { this.selectBuilder = session .select( SNAPSHOT_STATE + ", " + SNAPSHOT_TYPE + ", " + SNAPSHOT_VERSION + ", " + SNAPSHOT_CHANGED + ", " + SNAPSHOT_MANAGED_TYPE + ", " + COMMIT_PK + ", " + COMMIT_AUTHOR + ", " + COMMIT_COMMIT_DATE + ", " + COMMIT_COMMIT_DATE_INSTANT + ", " + COMMIT_COMMIT_ID + ", " + "g." + GLOBAL_ID_LOCAL_ID + ", " + "g." + GLOBAL_ID_FRAGMENT + ", " + "g." + GLOBAL_ID_OWNER_ID_FK + ", " + "o." + GLOBAL_ID_LOCAL_ID + " owner_" + GLOBAL_ID_LOCAL_ID + ", " + "o." + GLOBAL_ID_FRAGMENT + " owner_" + GLOBAL_ID_FRAGMENT + ", " + "o." + GLOBAL_ID_TYPE_NAME + " owner_" + GLOBAL_ID_TYPE_NAME ) .from( tableNames.getSnapshotTableNameWithSchema() + " INNER JOIN " + tableNames.getCommitTableNameWithSchema() + " ON " + COMMIT_PK + " = " + SNAPSHOT_COMMIT_FK + " INNER JOIN " + tableNames.getGlobalIdTableNameWithSchema() + " g ON g." + GLOBAL_ID_PK + " = " + SNAPSHOT_GLOBAL_ID_FK + " LEFT OUTER JOIN " + tableNames.getGlobalIdTableNameWithSchema() + " o ON o." + GLOBAL_ID_PK + " = g." + GLOBAL_ID_OWNER_ID_FK) .queryName("snapshots"); this.queryParams = queryParams; this.tableNameProvider = tableNames; applyQueryParams(); }
void addSnapshotIdentifiersFilter(List<SnapshotDbIdentifier> snapshotDbIdentifiers) { selectBuilder.append("and ("); snapshotDbIdentifiers.forEach(si -> selectBuilder.append("("+SNAPSHOT_GLOBAL_ID_FK+" = ? AND "+SNAPSHOT_VERSION+" = ?) OR", longParam(si.getGlobalIdPk()), longParam(si.getVer())) ); selectBuilder.append(" false)"); }
public <T> List<T> executeQuery(ObjectMapper<T> objectMapper) { return session.executeQuery(build(), objectMapper); } }
List<CommitPropertyDTO> findCommitPropertiesOfSnaphots(Collection<Long> commitPKs, Session session) { if (commitPKs.isEmpty()) { return Collections.emptyList(); } return session.select(COMMIT_PROPERTY_COMMIT_FK + ", " + COMMIT_PROPERTY_NAME + ", " + COMMIT_PROPERTY_VALUE) .from(tableNameProvider.getCommitPropertyTableNameWithSchema()) .queryName("commit properties") .and(COMMIT_PROPERTY_COMMIT_FK + " in (" + Joiner.on(",").join(commitPKs) + ")") .executeQuery(resultSet -> new CommitPropertyDTO( resultSet.getLong(COMMIT_PROPERTY_COMMIT_FK), resultSet.getString(COMMIT_PROPERTY_NAME), resultSet.getString(COMMIT_PROPERTY_VALUE))); } }
List<CdoSnapshotSerialized> run() { selectBuilder.orderByDesc(SNAPSHOT_PK); selectBuilder.limit(queryParams.limit(), queryParams.skip()); return selectBuilder.executeQuery(cdoSnapshotMapper); }
boolean isCommitPersisted(CommitId commitId, Session session) { long count = session.select("count(*)") .from(getCommitTableNameWithSchema()) .and(COMMIT_COMMIT_ID, commitId.valueAsNumber()) .queryForLong("isCommitPersisted"); return count > 0; }
void addSnapshotPkFilter(long snapshotPk) { selectBuilder.and(SNAPSHOT_PK, snapshotPk); }
private Optional<BigDecimal> selectMaxCommitId(Session session) { return session.select("MAX(" + COMMIT_COMMIT_ID + ")") .from(getCommitTableNameWithSchema()) .queryForOptionalBigDecimal("max CommitId"); } }
private Select build() { return new Select("SELECT " + getQueryName(), getParameters(), rawSql); }
public SnapshotQuery(TableNameProvider tableNames, QueryParams queryParams, Session session) { this.selectBuilder = session .select( SNAPSHOT_STATE + ", " + SNAPSHOT_TYPE + ", " + SNAPSHOT_VERSION + ", " + SNAPSHOT_CHANGED + ", " + SNAPSHOT_MANAGED_TYPE + ", " + COMMIT_PK + ", " + COMMIT_AUTHOR + ", " + COMMIT_COMMIT_DATE + ", " + COMMIT_COMMIT_DATE_INSTANT + ", " + COMMIT_COMMIT_ID + ", " + "g." + GLOBAL_ID_LOCAL_ID + ", " + "g." + GLOBAL_ID_FRAGMENT + ", " + "g." + GLOBAL_ID_OWNER_ID_FK + ", " + "o." + GLOBAL_ID_LOCAL_ID + " owner_" + GLOBAL_ID_LOCAL_ID + ", " + "o." + GLOBAL_ID_FRAGMENT + " owner_" + GLOBAL_ID_FRAGMENT + ", " + "o." + GLOBAL_ID_TYPE_NAME + " owner_" + GLOBAL_ID_TYPE_NAME ) .from( tableNames.getSnapshotTableNameWithSchema() + " INNER JOIN " + tableNames.getCommitTableNameWithSchema() + " ON " + COMMIT_PK + " = " + SNAPSHOT_COMMIT_FK + " INNER JOIN " + tableNames.getGlobalIdTableNameWithSchema() + " g ON g." + GLOBAL_ID_PK + " = " + SNAPSHOT_GLOBAL_ID_FK + " LEFT OUTER JOIN " + tableNames.getGlobalIdTableNameWithSchema() + " o ON o." + GLOBAL_ID_PK + " = g." + GLOBAL_ID_OWNER_ID_FK) .queryName("snapshots"); this.queryParams = queryParams; this.tableNameProvider = tableNames; applyQueryParams(); }
void addSnapshotIdentifiersFilter(List<SnapshotDbIdentifier> snapshotDbIdentifiers) { selectBuilder.append("and ("); snapshotDbIdentifiers.forEach(si -> selectBuilder.append("("+SNAPSHOT_GLOBAL_ID_FK+" = ? AND "+SNAPSHOT_VERSION+" = ?) OR", longParam(si.getGlobalIdPk()), longParam(si.getVer())) ); selectBuilder.append(" false)"); }