Search in sources :

Example 1 with WhereClause

use of org.umlg.sqlg.sql.parse.WhereClause in project sqlg by pietermartin.

the class SqlgUtil method setParametersOnStatement.

public static void setParametersOnStatement(SqlgGraph sqlgGraph, LinkedList<SchemaTableTree> schemaTableTreeStack, PreparedStatement preparedStatement, int parameterIndex) throws SQLException {
    Multimap<String, Object> keyValueMap = LinkedListMultimap.create();
    for (SchemaTableTree schemaTableTree : schemaTableTreeStack) {
        for (HasContainer hasContainer : schemaTableTree.getHasContainers()) {
            if (!sqlgGraph.getSqlDialect().supportsBulkWithinOut() || !isBulkWithinAndOut(sqlgGraph, hasContainer)) {
                WhereClause whereClause = WhereClause.from(hasContainer.getPredicate());
                whereClause.putKeyValueMap(hasContainer, keyValueMap);
            }
        }
        for (AndOrHasContainer andOrHasContainer : schemaTableTree.getAndOrHasContainers()) {
            andOrHasContainer.setParameterOnStatement(keyValueMap);
        }
    }
    List<ImmutablePair<PropertyType, Object>> typeAndValues = SqlgUtil.transformToTypeAndValue(keyValueMap);
    // This is for selects
    setKeyValuesAsParameter(sqlgGraph, false, parameterIndex, preparedStatement, typeAndValues);
}
Also used : SchemaTableTree(org.umlg.sqlg.sql.parse.SchemaTableTree) ImmutablePair(org.apache.commons.lang3.tuple.ImmutablePair) HasContainer(org.apache.tinkerpop.gremlin.process.traversal.step.util.HasContainer) AndOrHasContainer(org.umlg.sqlg.sql.parse.AndOrHasContainer) WhereClause(org.umlg.sqlg.sql.parse.WhereClause) AndOrHasContainer(org.umlg.sqlg.sql.parse.AndOrHasContainer)

Aggregations

ImmutablePair (org.apache.commons.lang3.tuple.ImmutablePair)1 HasContainer (org.apache.tinkerpop.gremlin.process.traversal.step.util.HasContainer)1 AndOrHasContainer (org.umlg.sqlg.sql.parse.AndOrHasContainer)1 SchemaTableTree (org.umlg.sqlg.sql.parse.SchemaTableTree)1 WhereClause (org.umlg.sqlg.sql.parse.WhereClause)1