[hibernate-commits] [hibernate/hibernate-orm] 2aaf81: Moving "type inference" out of `SemanticQueryBuild...

Steve Ebersole noreply at github.com
Thu Apr 4 12:23:43 EDT 2019


  Branch: refs/heads/wip/6.0
  Home:   https://github.com/hibernate/hibernate-orm
  Commit: 2aaf8180ccf9baafd189ee69e155197ec39025ae
      https://github.com/hibernate/hibernate-orm/commit/2aaf8180ccf9baafd189ee69e155197ec39025ae
  Author: Steve Ebersole <steve at hibernate.org>
  Date:   2019-04-04 (Thu, 04 Apr 2019)

  Changed paths:
    M design/sqm.adoc
    M hibernate-core/src/main/antlr/org/hibernate/query/hql/internal/HqlParser.g4
    M hibernate-core/src/main/java/org/hibernate/dialect/function/LocateEmulationUsingPositionAndSubstring.java
    M hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/spi/EmbeddedValuedNavigable.java
    M hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/spi/EntityIdentifierComposite.java
    M hibernate-core/src/main/java/org/hibernate/query/criteria/sqm/JpaParameterSqmWrapper.java
    M hibernate-core/src/main/java/org/hibernate/query/hql/internal/SemanticQueryBuilder.java
    M hibernate-core/src/main/java/org/hibernate/query/internal/QueryHelper.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/consume/spi/BaseSemanticQueryWalker.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/consume/spi/BaseSqmToSqlAstConverter.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/consume/spi/QuerySplitter.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/consume/spi/SemanticQueryWalker.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/internal/ConcreteSqmSelectQueryPlan.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/internal/DomainParameterXref.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/mutation/internal/SqmMutationStrategyHelper.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/produce/function/internal/SelfRenderingSqmFunction.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/produce/internal/SqmTreePrinter.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/produce/path/internal/SqmStaticEnumReference.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/produce/path/internal/SqmStaticFieldReference.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/produce/spi/TrimSpecificationExpressionWrapper.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/AbstractSqmSimplePath.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmBasicValuedSimplePath.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmEmbeddedValuedSimplePath.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmEntityValuedSimplePath.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmIndexedCollectionAccessPath.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmMapEntryReference.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmMaxElementPath.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmMaxIndexPath.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmMinElementPath.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmMinIndexPath.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmPath.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmPluralValuedSimplePath.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedPath.java
    R hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/AbstractInferableTypeSqmExpression.java
    A hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/AbstractSqmExpression.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/AbstractSqmParameter.java
    R hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/InferableTypeSqmExpression.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmBinaryArithmetic.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmCaseSearched.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmCaseSimple.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmCollectionSize.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmConcat.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmExpression.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmLiteral.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmLiteralEntityType.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmParameter.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmParameterizedEntityType.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmSubQuery.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmTuple.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmUnaryOperation.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/function/AbstractSqmAggregateFunction.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/function/AbstractSqmFunction.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/function/SqmAggregateFunction.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/function/SqmCoalesceFunction.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/function/SqmCountStarFunction.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/function/SqmFunction.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/function/SqmSumFunction.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmCrossJoin.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmEntityJoin.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmNavigableJoin.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmRoot.java
    R hibernate-core/src/main/java/org/hibernate/query/sqm/tree/predicate/BetweenSqmPredicate.java
    R hibernate-core/src/main/java/org/hibernate/query/sqm/tree/predicate/InListSqmPredicate.java
    R hibernate-core/src/main/java/org/hibernate/query/sqm/tree/predicate/InSqmPredicate.java
    R hibernate-core/src/main/java/org/hibernate/query/sqm/tree/predicate/InSubQuerySqmPredicate.java
    A hibernate-core/src/main/java/org/hibernate/query/sqm/tree/predicate/SqmBetweenPredicate.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/predicate/SqmComparisonPredicate.java
    A hibernate-core/src/main/java/org/hibernate/query/sqm/tree/predicate/SqmInListPredicate.java
    A hibernate-core/src/main/java/org/hibernate/query/sqm/tree/predicate/SqmInPredicate.java
    A hibernate-core/src/main/java/org/hibernate/query/sqm/tree/predicate/SqmInSubQueryPredicate.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmQuerySpec.java
    M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/update/SqmAssignment.java
    R hibernate-core/src/main/java/org/hibernate/sql/ast/produce/metamodel/spi/EmbeddedValueExpressableType.java
    A hibernate-core/src/main/java/org/hibernate/sql/ast/produce/metamodel/spi/EmbeddedValuedExpressableType.java
    M hibernate-core/src/main/java/org/hibernate/sql/ast/produce/ordering/internal/SqmColumnReference.java
    M hibernate-core/src/main/java/org/hibernate/sql/ast/produce/spi/SqlAstFunctionProducer.java
    A hibernate-core/src/main/java/org/hibernate/type/descriptor/java/internal/ObjectJavaDescriptor.java
    A hibernate-core/src/main/java/org/hibernate/type/descriptor/sql/spi/ObjectSqlTypeDescriptor.java
    M hibernate-core/src/main/java/org/hibernate/type/descriptor/sql/spi/SqlTypeDescriptorRegistry.java
    M hibernate-core/src/main/java/org/hibernate/type/internal/StandardBasicTypeImpl.java
    M hibernate-core/src/main/java/org/hibernate/type/spi/StandardSpiBasicTypes.java
    M hibernate-core/src/test/java/org/hibernate/orm/test/query/criteria/BasicCriteriaExecutionTests.java
    M hibernate-core/src/test/java/org/hibernate/orm/test/query/sqm/produce/AliasCollisionTest.java
    M hibernate-core/src/test/java/org/hibernate/orm/test/query/sqm/produce/CaseExpressionsTest.java

  Log Message:
  -----------
  Moving "type inference" out of `SemanticQueryBuilder` and into `BaseSqmToSqlAstConverter` did not work for a few reasons - mainly because too many things outside of the current method in `BaseSqmToSqlAstConverter` needed to know this "resolved type" and could no longer have access to it through the SqmExpression.  So moved this back into SQM creation, but still not in `SemanticQueryBuilder` - this time the nodes themselves perform this "type inference" handling as they are assembled together.  This works for both cases of building SQM via HQL and building via Criteria.




More information about the hibernate-commits mailing list