/** * PUBLIC: * TimesTen uses the Oracle syntax for getting the current timestamp. */ @Override public ValueReadQuery getTimestampQuery() { if (this.timestampQuery == null) { this.timestampQuery = new ValueReadQuery(); this.timestampQuery.setSQLString("SELECT SYSDATE FROM DUAL"); } return this.timestampQuery; }
@Override public ValueReadQuery getTimestampQuery() { if (timestampQuery == null) { timestampQuery = new ValueReadQuery(); timestampQuery.setSQLString("SELECT CURRENT_TIMESTAMP()"); timestampQuery.setAllowNativeSQLQuery(true); } return timestampQuery; }
@Override public ValueReadQuery getTimestampQuery() { if (this.timestampQuery == null) { this.timestampQuery = new ValueReadQuery("SELECT CURRENT_TIMESTAMP FROM RDB$DATABASE"); this.timestampQuery.setAllowNativeSQLQuery(true); } return this.timestampQuery; }
/** * INTERNAL: * Produce a DataReadQuery which updates(!) the sequence number in the db * and returns it. * @param qualifiedSeqName known by TimesTen to be a defined sequence */ @Override public ValueReadQuery buildSelectQueryForSequenceObject(String qualifiedSeqName, Integer size) { return new ValueReadQuery("SELECT " + qualifiedSeqName + ".NEXTVAL FROM DUAL"); }
protected ValueReadQuery buildSelectQuery() { ValueReadQuery query = new ValueReadQuery(); query.addArgument(getNameFieldName()); StringWriter writer = new StringWriter(); writer.write("SELECT " + getCounterFieldName()); writer.write(" FROM " + getQualifiedTableName()); writer.write(" WHERE " + getNameFieldName()); writer.write(" = #" + getNameFieldName()); query.setSQLString(writer.toString()); return query; }
protected ValueReadQuery buildSelectQuery(String seqName, Integer size) { ValueReadQuery selectQuery = new ValueReadQuery(); selectQuery.dontBindAllParameters(); StringWriter writer = new StringWriter(selectStringBufferSize + seqName.length()); writer.write(selectString1); writer.write(seqName); selectQuery.setSQLString(writer.toString()); return selectQuery; }
/** * INTERNAL: * Get the ref for the object. * This is required for use by Refs, there might be a better way to do it when objID are supported. * (i.e. getting it from the object or identity map). */ public Ref getRef(Object object, AbstractSession session) { SQLSelectStatement statement = new SQLSelectStatement(); statement.addTable(getTables().firstElement());// Assumed only one for obj-rel descriptors. statement.getFields().addElement(new org.eclipse.persistence.expressions.ExpressionBuilder().ref()); statement.setWhereClause(getObjectBuilder().buildPrimaryKeyExpressionFromObject(object, session)); statement.setRequiresAliases(true); statement.normalize(session, this); ValueReadQuery valueQuery = new ValueReadQuery(); valueQuery.setSQLStatement(statement); valueQuery.checkPrepare(session, new DatabaseRecord(), true); // Must return unwrapped Ref on WLS. valueQuery.getCall().setIsNativeConnectionRequired(true); Ref ref = (Ref)session.executeQuery(valueQuery); return ref; }
/** * INTERNAL: */ protected Object select(Accessor accessor, AbstractSession writeSession, String seqName, Integer size) { ValueReadQuery query = getSelectQuery(); if (query != null) { if (accessor != null) { // PERF: Prepare the query before being cloned. // Also BUG: SQLCall could not be prepared concurrently by different queries. // Setting user define allow custom SQL query to be prepared without translation row. query.setIsUserDefined(true); query.checkPrepare(writeSession, null); query = (ValueReadQuery)query.clone(); query.setAccessor(accessor); } } else { query = buildSelectQuery(seqName, size); if (accessor != null) { query.setAccessor(accessor); } } Vector args = createArguments(query, seqName, size); query.setIsUserDefinedSQLCall(false); if (args != null) { return writeSession.executeQuery(query, args); } else { return writeSession.executeQuery(query); } }
/** * Support sequencing through sequence file. */ protected ValueReadQuery buildSelectQuery() { ValueReadQuery query = new ValueReadQuery(); query.addArgument("sequence-name"); XQueryInteraction interaction = new XQueryInteraction(); interaction.setFunctionName("select-sequence"); interaction.setProperty("fileName", "sequence.xml"); interaction.setXQueryString("sequence[sequence-name='#sequence-name']/sequence-count"); query.setCall(interaction); return query; }
descriptor.getAllFields().add(rowId); final ValueReadQuery rowIdQuery = new ValueReadQuery(); rowIdQuery.setName(ROWID); SQLSelectStatement sqlStatement = new SQLSelectStatement(); sqlStatement.setWhereClause(descriptor.getObjectBuilder().getPrimaryKeyExpression()); sqlStatement.addField(rowId); sqlStatement.addTable(descriptor.getTables().get(0)); rowIdQuery.setSQLStatement(sqlStatement); sqlStatement.normalize(session, null);
query = new ValueReadQuery(); query.setSQLStatement(selectStatement); } else { query = ((CursoredStreamPolicy)this.policy).getSizeQuery();
/** * INTERNAL: * Get the ref for the object. * This is required for use by Refs, there might be a better way to do it when objID are supported. * (i.e. getting it from the object or identity map). */ public Ref getRef(Object object, AbstractSession session) { SQLSelectStatement statement = new SQLSelectStatement(); statement.addTable(getTables().firstElement());// Assumed only one for obj-rel descriptors. statement.getFields().addElement(new org.eclipse.persistence.expressions.ExpressionBuilder().ref()); statement.setWhereClause(getObjectBuilder().buildPrimaryKeyExpressionFromObject(object, session)); statement.setRequiresAliases(true); statement.normalize(session, this); ValueReadQuery valueQuery = new ValueReadQuery(); valueQuery.setSQLStatement(statement); valueQuery.prepareCall(session, new DatabaseRecord()); // Must return unwrapped Ref on WLS. valueQuery.getCall().setIsNativeConnectionRequired(true); Ref ref = (Ref)session.executeQuery(valueQuery); return ref; }
/** * Access do not support millisecond well, truncate the millisecond from the timestamp */ public java.sql.Timestamp getTimestampFromServer(AbstractSession session, String sessionName) { if (getTimestampQuery() == null) { java.sql.Timestamp currentTime = new java.sql.Timestamp(System.currentTimeMillis()); currentTime.setNanos(0); return currentTime; } else { getTimestampQuery().setSessionName(sessionName); return (java.sql.Timestamp)session.executeQuery(getTimestampQuery()); } }
@Override public ValueReadQuery getTimestampQuery() { if (this.timestampQuery == null) { this.timestampQuery = new ValueReadQuery(); this.timestampQuery.setSQLString("CALL CURRENT_TIMESTAMP"); this.timestampQuery.setAllowNativeSQLQuery(true); } return this.timestampQuery; }
/** * INTERNAL: DB2 added SEQUENCE support as of (I believe) v8. */ @Override public ValueReadQuery buildSelectQueryForSequenceObject(String qualifiedSeqName, Integer size) { return new ValueReadQuery("VALUES(NEXT VALUE FOR " + qualifiedSeqName + ")"); }
protected ValueReadQuery buildSelectQuery() { ValueReadQuery query = new ValueReadQuery(); query.addArgument(getNameFieldName()); StringWriter writer = new StringWriter(); writer.write("SELECT " + getCounterFieldName()); writer.write(" FROM " + getQualifiedTableName()); writer.write(" WHERE " + getNameFieldName()); writer.write(" = #" + getNameFieldName()); query.setSQLString(writer.toString()); return query; }
protected ValueReadQuery buildSelectQuery(String seqName, Integer size) { ValueReadQuery selectQuery = new ValueReadQuery(); selectQuery.dontBindAllParameters(); StringWriter writer = new StringWriter(selectStringBufferSize + seqName.length()); writer.write(selectString1); writer.write(seqName); selectQuery.setSQLString(writer.toString()); return selectQuery; }
/** * INTERNAL: * Get the ref for the object. * This is required for use by Refs, there might be a better way to do it when objID are supported. * (i.e. getting it from the object or identity map). */ public Ref getRef(Object object, AbstractSession session) { SQLSelectStatement statement = new SQLSelectStatement(); statement.addTable(getTables().firstElement());// Assumed only one for obj-rel descriptors. statement.getFields().addElement(new org.eclipse.persistence.expressions.ExpressionBuilder().ref()); statement.setWhereClause(getObjectBuilder().buildPrimaryKeyExpressionFromObject(object, session)); statement.setRequiresAliases(true); statement.normalize(session, this); ValueReadQuery valueQuery = new ValueReadQuery(); valueQuery.setSQLStatement(statement); valueQuery.checkPrepare(session, new DatabaseRecord(), true); // Must return unwrapped Ref on WLS. valueQuery.getCall().setIsNativeConnectionRequired(true); Ref ref = (Ref)session.executeQuery(valueQuery); return ref; }
/** * INTERNAL: */ protected Object select(Accessor accessor, AbstractSession writeSession, String seqName, Integer size) { ValueReadQuery query = getSelectQuery(); if (query != null) { if (accessor != null) { // PERF: Prepare the query before being cloned. // Also BUG: SQLCall could not be prepared concurrently by different queries. // Setting user define allow custom SQL query to be prepared without translation row. query.setIsUserDefined(true); query.checkPrepare(writeSession, null); query = (ValueReadQuery)query.clone(); query.setAccessor(accessor); } } else { query = buildSelectQuery(seqName, size); if (accessor != null) { query.setAccessor(accessor); } } Vector args = createArguments(query, seqName, size); query.setIsUserDefinedSQLCall(false); if (args != null) { return writeSession.executeQuery(query, args); } else { return writeSession.executeQuery(query); } }
/** * Support sequencing through sequence file. */ @Override protected ValueReadQuery buildSelectQuery() { ValueReadQuery query = new ValueReadQuery(); query.addArgument("sequence-name"); XQueryInteraction interaction = new XQueryInteraction(); interaction.setFunctionName("select-sequence"); interaction.setProperty("fileName", "sequence.xml"); interaction.setXQueryString("sequence[sequence-name='#sequence-name']/sequence-count"); query.setCall(interaction); return query; }