Class DefaultSelectFromWhereSerializer.DefaultRelationVisitingSerializer
- java.lang.Object
-
- it.unibz.inf.ontop.generation.serializer.impl.DefaultSelectFromWhereSerializer.DefaultRelationVisitingSerializer
-
- All Implemented Interfaces:
SQLRelationVisitor<SelectFromWhereSerializer.QuerySerialization>
- Direct Known Subclasses:
IgnoreNullFirstSelectFromWhereSerializer.IgnoreNullFirstRelationVisitingSerializer
- Enclosing class:
- DefaultSelectFromWhereSerializer
protected class DefaultSelectFromWhereSerializer.DefaultRelationVisitingSerializer extends Object implements SQLRelationVisitor<SelectFromWhereSerializer.QuerySerialization>
Mutable: one instance per SQL query to generate
-
-
Field Summary
Fields Modifier and Type Field Description protected QuotedIDFactoryidFactory
-
Constructor Summary
Constructors Modifier Constructor Description protectedDefaultRelationVisitingSerializer(QuotedIDFactory idFactory)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected AttributeAliasFactorycreateAttributeAliasFactory()protected StringformatBinaryJoin(String operatorString, SelectFromWhereSerializer.QuerySerialization left, SelectFromWhereSerializer.QuerySerialization right, String onString)protected RelationIDgenerateFreshViewAlias()protected StringserializeDummyTable()protected StringserializeGroupBy(it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> groupByVariables, it.unibz.inf.ontop.com.google.common.collect.ImmutableMap<Variable,QualifiedAttributeID> columnIDs)protected StringserializeLimit(long limit, boolean noSortCondition)protected StringserializeLimitOffset(long limit, long offset, boolean noSortCondition)There is no standard for these three methods (may not work with many DB engines).protected StringserializeOffset(long offset, boolean noSortCondition)protected StringserializeOrderBy(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<SQLOrderComparator> sortConditions, it.unibz.inf.ontop.com.google.common.collect.ImmutableMap<Variable,QualifiedAttributeID> columnIDs)protected StringserializeProjection(it.unibz.inf.ontop.com.google.common.collect.ImmutableSortedSet<Variable> projectedVariables, it.unibz.inf.ontop.com.google.common.collect.ImmutableMap<Variable,QuotedID> variableAliases, ImmutableSubstitution<? extends ImmutableTerm> substitution, it.unibz.inf.ontop.com.google.common.collect.ImmutableMap<Variable,QualifiedAttributeID> columnIDs)protected SelectFromWhereSerializer.QuerySerializationvisit(BinaryJoinExpression binaryJoinExpression, String operatorString)NB: the systematic use of ON conditions for inner and left joins saves us from putting parentheses.SelectFromWhereSerializer.QuerySerializationvisit(SelectFromWhereWithModifiers selectFromWhere)SelectFromWhereSerializer.QuerySerializationvisit(SQLInnerJoinExpression sqlInnerJoinExpression)SelectFromWhereSerializer.QuerySerializationvisit(SQLLeftJoinExpression sqlLeftJoinExpression)SelectFromWhereSerializer.QuerySerializationvisit(SQLNaryJoinExpression sqlNaryJoinExpression)SelectFromWhereSerializer.QuerySerializationvisit(SQLOneTupleDummyQueryExpression sqlOneTupleDummyQueryExpression)SelectFromWhereSerializer.QuerySerializationvisit(SQLSerializedQuery sqlSerializedQuery)SelectFromWhereSerializer.QuerySerializationvisit(SQLTable sqlTable)SelectFromWhereSerializer.QuerySerializationvisit(SQLUnionExpression sqlUnionExpression)SelectFromWhereSerializer.QuerySerializationvisit(SQLValuesExpression sqlValuesExpression)
-
-
-
Field Detail
-
idFactory
protected final QuotedIDFactory idFactory
-
-
Constructor Detail
-
DefaultRelationVisitingSerializer
protected DefaultRelationVisitingSerializer(QuotedIDFactory idFactory)
-
-
Method Detail
-
visit
public SelectFromWhereSerializer.QuerySerialization visit(SelectFromWhereWithModifiers selectFromWhere)
- Specified by:
visitin interfaceSQLRelationVisitor<SelectFromWhereSerializer.QuerySerialization>
-
generateFreshViewAlias
protected RelationID generateFreshViewAlias()
-
createAttributeAliasFactory
protected AttributeAliasFactory createAttributeAliasFactory()
-
serializeDummyTable
protected String serializeDummyTable()
-
serializeProjection
protected String serializeProjection(it.unibz.inf.ontop.com.google.common.collect.ImmutableSortedSet<Variable> projectedVariables, it.unibz.inf.ontop.com.google.common.collect.ImmutableMap<Variable,QuotedID> variableAliases, ImmutableSubstitution<? extends ImmutableTerm> substitution, it.unibz.inf.ontop.com.google.common.collect.ImmutableMap<Variable,QualifiedAttributeID> columnIDs)
-
serializeGroupBy
protected String serializeGroupBy(it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> groupByVariables, it.unibz.inf.ontop.com.google.common.collect.ImmutableMap<Variable,QualifiedAttributeID> columnIDs)
-
serializeOrderBy
protected String serializeOrderBy(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<SQLOrderComparator> sortConditions, it.unibz.inf.ontop.com.google.common.collect.ImmutableMap<Variable,QualifiedAttributeID> columnIDs)
-
serializeLimitOffset
protected String serializeLimitOffset(long limit, long offset, boolean noSortCondition)
There is no standard for these three methods (may not work with many DB engines).
-
serializeLimit
protected String serializeLimit(long limit, boolean noSortCondition)
-
serializeOffset
protected String serializeOffset(long offset, boolean noSortCondition)
-
visit
public SelectFromWhereSerializer.QuerySerialization visit(SQLSerializedQuery sqlSerializedQuery)
- Specified by:
visitin interfaceSQLRelationVisitor<SelectFromWhereSerializer.QuerySerialization>
-
visit
public SelectFromWhereSerializer.QuerySerialization visit(SQLTable sqlTable)
- Specified by:
visitin interfaceSQLRelationVisitor<SelectFromWhereSerializer.QuerySerialization>
-
visit
public SelectFromWhereSerializer.QuerySerialization visit(SQLNaryJoinExpression sqlNaryJoinExpression)
- Specified by:
visitin interfaceSQLRelationVisitor<SelectFromWhereSerializer.QuerySerialization>
-
visit
public SelectFromWhereSerializer.QuerySerialization visit(SQLUnionExpression sqlUnionExpression)
- Specified by:
visitin interfaceSQLRelationVisitor<SelectFromWhereSerializer.QuerySerialization>
-
visit
public SelectFromWhereSerializer.QuerySerialization visit(SQLInnerJoinExpression sqlInnerJoinExpression)
- Specified by:
visitin interfaceSQLRelationVisitor<SelectFromWhereSerializer.QuerySerialization>
-
visit
public SelectFromWhereSerializer.QuerySerialization visit(SQLLeftJoinExpression sqlLeftJoinExpression)
- Specified by:
visitin interfaceSQLRelationVisitor<SelectFromWhereSerializer.QuerySerialization>
-
visit
protected SelectFromWhereSerializer.QuerySerialization visit(BinaryJoinExpression binaryJoinExpression, String operatorString)
NB: the systematic use of ON conditions for inner and left joins saves us from putting parentheses. Indeed since a join expression with a ON is always "CHILD_1 SOME_JOIN CHILD_2 ON COND", the decomposition is unambiguous just following this pattern. For instance, "T1 LEFT JOIN T2 INNER JOIN T3 ON 1=1 ON 2=2" is clearly equivalent to "T1 LEFT JOIN (T2 INNER JOIN T3)" as the latest ON condition ("ON 2=2") can only be attached to the left join, which means that "T2 INNER JOIN T3 ON 1=1" is the right child of the left join.
-
formatBinaryJoin
protected String formatBinaryJoin(String operatorString, SelectFromWhereSerializer.QuerySerialization left, SelectFromWhereSerializer.QuerySerialization right, String onString)
-
visit
public SelectFromWhereSerializer.QuerySerialization visit(SQLOneTupleDummyQueryExpression sqlOneTupleDummyQueryExpression)
- Specified by:
visitin interfaceSQLRelationVisitor<SelectFromWhereSerializer.QuerySerialization>
-
visit
public SelectFromWhereSerializer.QuerySerialization visit(SQLValuesExpression sqlValuesExpression)
- Specified by:
visitin interfaceSQLRelationVisitor<SelectFromWhereSerializer.QuerySerialization>
-
-