/** * Builds a String representing the GROUP BY component of the Sql query. * * @param q the Query * @param schema the DatabaseSchema in which to look up metadata * @param state a State object * @return a String * @throws ObjectStoreException if something goes wrong */ protected static String buildGroupBy(Query q, DatabaseSchema schema, State state) throws ObjectStoreException { StringBuffer retval = new StringBuffer(); boolean needComma = false; for (QueryNode node : q.getGroupBy()) { retval.append(needComma ? ", " : " GROUP BY "); needComma = true; if (node instanceof QueryClass) { queryClassToString(retval, (QueryClass) node, q, schema, NO_ALIASES_ALL_FIELDS, state); } else { queryEvaluableToString(retval, (QueryEvaluable) node, q, state); } } return retval.toString(); }
/** * Builds a String representing the GROUP BY component of the Sql query. * * @param q the Query * @param schema the DatabaseSchema in which to look up metadata * @param state a State object * @return a String * @throws ObjectStoreException if something goes wrong */ protected static String buildGroupBy(Query q, DatabaseSchema schema, State state) throws ObjectStoreException { StringBuffer retval = new StringBuffer(); boolean needComma = false; for (QueryNode node : q.getGroupBy()) { retval.append(needComma ? ", " : " GROUP BY "); needComma = true; if (node instanceof QueryClass) { queryClassToString(retval, (QueryClass) node, q, schema, NO_ALIASES_ALL_FIELDS, state); } else { queryEvaluableToString(retval, (QueryEvaluable) node, q, state); } } return retval.toString(); }
/** * Converts a SimpleConstraint object into a String suitable for putting in an SQL query. * * @param state the current SqlGenerator state * @param buffer the StringBuffer to place text into * @param c the SimpleConstraint object * @param q the Query * @throws ObjectStoreException if something goes wrong */ protected static void simpleConstraintToString(State state, StringBuffer buffer, SimpleConstraint c, Query q) throws ObjectStoreException { queryEvaluableToString(buffer, c.getArg1(), q, state); buffer.append(" " + c.getOp().toString()); if (c.getArg2() != null) { buffer.append(" "); queryEvaluableToString(buffer, c.getArg2(), q, state); } }
/** * Converts a SimpleConstraint object into a String suitable for putting in an SQL query. * * @param state the current SqlGenerator state * @param buffer the StringBuffer to place text into * @param c the SimpleConstraint object * @param q the Query * @throws ObjectStoreException if something goes wrong */ protected static void simpleConstraintToString(State state, StringBuffer buffer, SimpleConstraint c, Query q) throws ObjectStoreException { queryEvaluableToString(buffer, c.getArg1(), q, state); buffer.append(" " + c.getOp().toString()); if (c.getArg2() != null) { buffer.append(" "); queryEvaluableToString(buffer, c.getArg2(), q, state); } }
queryEvaluableToString(retval, (QueryEvaluable) node, q, state); if ((kind == QUERY_NORMAL) || (kind == QUERY_FOR_PRECOMP) || (kind == QUERY_FOR_GOFASTER) || (kind == QUERY_FOR_COUNTING)) {
queryEvaluableToString(retval, (QueryEvaluable) node, q, state); if ((kind == QUERY_NORMAL) || (kind == QUERY_FOR_PRECOMP) || (kind == QUERY_FOR_GOFASTER) || (kind == QUERY_FOR_COUNTING)) {
public void testSelectQueryValue() throws Exception { QueryValue v1 = new QueryValue(new Integer(5)); QueryValue v2 = new QueryValue("Hello"); QueryValue v3 = new QueryValue(new Date(1046275720000l)); QueryValue v4 = new QueryValue(Boolean.TRUE); StringBuffer buffer = new StringBuffer(); SqlGenerator.State state = new SqlGenerator.State(); SqlGenerator.queryEvaluableToString(buffer, v1, null, state); SqlGenerator.queryEvaluableToString(buffer, v2, null, state); SqlGenerator.queryEvaluableToString(buffer, v3, null, state); SqlGenerator.queryEvaluableToString(buffer, v4, null, state); assertEquals("5'Hello'1046275720000'true'", buffer.toString()); }
for (QueryEvaluable qe : c.getEvaluables()) { StringBuffer lhsBuffer = new StringBuffer(); queryEvaluableToString(lhsBuffer, qe, q, state); leftHandSide.add(lhsBuffer.toString());
for (QueryEvaluable qe : c.getEvaluables()) { StringBuffer lhsBuffer = new StringBuffer(); queryEvaluableToString(lhsBuffer, qe, q, state); leftHandSide.add(lhsBuffer.toString());
public void testSelectQueryExpressionGreatestLeast() throws Exception { QueryValue v1 = new QueryValue(new Integer(5)); QueryValue v2 = new QueryValue(new Integer(7)); QueryExpression e1 = new QueryExpression(v1, QueryExpression.GREATEST, v2); QueryExpression e2 = new QueryExpression(v1, QueryExpression.LEAST, v2); StringBuffer buffer = new StringBuffer(); SqlGenerator.State state = new SqlGenerator.State(); SqlGenerator.queryEvaluableToString(buffer, e1, null, state); buffer.append(", "); SqlGenerator.queryEvaluableToString(buffer, e2, null, state); assertEquals("GREATEST(5,7), LEAST(5,7)", buffer.toString()); }
public void testSelectQueryExpression() throws Exception { QueryValue v1 = new QueryValue(new Integer(5)); QueryValue v2 = new QueryValue(new Integer(7)); QueryExpression e1 = new QueryExpression(v1, QueryExpression.ADD, v2); QueryExpression e2 = new QueryExpression(v1, QueryExpression.SUBTRACT, v2); QueryExpression e3 = new QueryExpression(v1, QueryExpression.MULTIPLY, v2); QueryExpression e4 = new QueryExpression(v1, QueryExpression.DIVIDE, v2); StringBuffer buffer = new StringBuffer(); SqlGenerator.State state = new SqlGenerator.State(); SqlGenerator.queryEvaluableToString(buffer, e1, null, state); SqlGenerator.queryEvaluableToString(buffer, e2, null, state); SqlGenerator.queryEvaluableToString(buffer, e3, null, state); SqlGenerator.queryEvaluableToString(buffer, e4, null, state); assertEquals("(5 + 7)(5 - 7)(5 * 7)(5 / 7)", buffer.toString()); }
StringBuffer left = new StringBuffer(); if (subQCEval != null) { queryEvaluableToString(left, subQCEval, q, state); } else { queryClassToString(left, subQCClass, q, schema, QUERY_SUBQUERY_CONSTRAINT,
StringBuffer left = new StringBuffer(); if (subQCEval != null) { queryEvaluableToString(left, subQCEval, q, state); } else { queryClassToString(left, subQCClass, q, schema, QUERY_SUBQUERY_CONSTRAINT,
public void testSelectQuerySubstringExpression() throws Exception { QueryValue v1 = new QueryValue("Hello"); QueryValue v2 = new QueryValue(new Integer(3)); QueryValue v3 = new QueryValue(new Integer(5)); QueryExpression e1 = new QueryExpression(v1, v2, v3); StringBuffer buffer = new StringBuffer(); SqlGenerator.State state = new SqlGenerator.State(); SqlGenerator.queryEvaluableToString(buffer, e1, null, state); assertEquals("SUBSTR('Hello', 3, 5)", buffer.toString()); }
String rangeFunction = "int4range("; buffer.append(rangeFunction); queryEvaluableToString(buffer, c.getLeft().getStart(), q, state); buffer.append(", "); queryEvaluableToString(buffer, c.getLeft().getEnd(), q, state); queryEvaluableToString(buffer, c.getRight().getStart(), q, state); buffer.append(", "); queryEvaluableToString(buffer, c.getRight().getEnd(), q, state); if (rangeFunction.startsWith("int")) { buffer.append(", '[]')");
String rangeFunction = "int4range("; buffer.append(rangeFunction); queryEvaluableToString(buffer, c.getLeft().getStart(), q, state); buffer.append(", "); queryEvaluableToString(buffer, c.getLeft().getEnd(), q, state); queryEvaluableToString(buffer, c.getRight().getStart(), q, state); buffer.append(", "); queryEvaluableToString(buffer, c.getRight().getEnd(), q, state); if (rangeFunction.startsWith("int")) { buffer.append(", '[]')");
buffer.append(alias); } else { queryEvaluableToString(buffer, (QueryEvaluable) node, q, state);
buffer.append(alias); } else { queryEvaluableToString(buffer, (QueryEvaluable) node, q, state);
/** * Converts a SubqueryConstraint object into a String suitable for putting in an SQL query. * * @param state the current SqlGenerator state * @param buffer the StringBuffer to place text into * @param c the SubqueryConstraint object * @param q the Query * @param schema the DatabaseSchema in which to look up metadata * @throws ObjectStoreException if something goes wrong */ protected static void subqueryConstraintToString(State state, StringBuffer buffer, SubqueryConstraint c, Query q, DatabaseSchema schema) throws ObjectStoreException { Query subQ = c.getQuery(); QueryEvaluable qe = c.getQueryEvaluable(); QueryClass cls = c.getQueryClass(); if (qe != null) { queryEvaluableToString(buffer, qe, q, state); } else { queryClassToString(buffer, cls, q, schema, QUERY_SUBQUERY_CONSTRAINT, state); } buffer.append(" " + c.getOp().toString() + " (" + generate(subQ, schema, state.getDb(), null, QUERY_SUBQUERY_CONSTRAINT, state.getBagTableNames()) + ")"); }
/** * Converts a SubqueryConstraint object into a String suitable for putting in an SQL query. * * @param state the current SqlGenerator state * @param buffer the StringBuffer to place text into * @param c the SubqueryConstraint object * @param q the Query * @param schema the DatabaseSchema in which to look up metadata * @throws ObjectStoreException if something goes wrong */ protected static void subqueryConstraintToString(State state, StringBuffer buffer, SubqueryConstraint c, Query q, DatabaseSchema schema) throws ObjectStoreException { Query subQ = c.getQuery(); QueryEvaluable qe = c.getQueryEvaluable(); QueryClass cls = c.getQueryClass(); if (qe != null) { queryEvaluableToString(buffer, qe, q, state); } else { queryClassToString(buffer, cls, q, schema, QUERY_SUBQUERY_CONSTRAINT, state); } buffer.append(" " + c.getOp().toString() + " (" + generate(subQ, schema, state.getDb(), null, QUERY_SUBQUERY_CONSTRAINT, state.getBagTableNames()) + ")"); }