private String[] buildAggregatedAliases() { SelectExpression[] selectExpressions = collectSelectExpressions(); String[] aliases = new String[selectExpressions.length]; for ( int i = 0; i < selectExpressions.length; i++ ) { String alias = selectExpressions[i].getAlias(); aliases[i] = alias == null ? Integer.toString( i ) : alias; } return aliases; }
private Type[] resolveConstructorArgumentTypes() throws SemanticException { SelectExpression[] argumentExpressions = collectSelectExpressions(); if ( argumentExpressions == null ) { // return an empty Type array return new Type[] {}; } Type[] types = new Type[argumentExpressions.length]; for ( int x = 0; x < argumentExpressions.length; x++ ) { types[x] = argumentExpressions[x].getDataType(); } return types; }
@SuppressWarnings("SimplifiableIfStatement") private boolean isReturnableEntity(SelectExpression selectExpression) throws SemanticException { FromElement fromElement = selectExpression.getFromElement(); boolean isFetchOrValueCollection = fromElement != null && ( fromElement.isFetch() || fromElement.isCollectionOfValuesOrComponents() ); if ( isFetchOrValueCollection ) { return false; } else { return selectExpression.isReturnableEntity(); } }
int nonscalarSize = 0; for ( int i = 0; i < size; i++ ) { if ( !selectExpressions[i].isScalar() ) { nonscalarSize++; if ( !selectExpressions[i].isScalar() ) { SelectExpression expr = selectExpressions[i]; FromElement fromElement = expr.getFromElement(); if ( fromElement != null ) { renderNonScalarIdentifiers( fromElement, nonscalarSize, j, expr, appender ); if ( !selectExpressions[i].isScalar() ) { FromElement fromElement = selectExpressions[i].getFromElement(); if ( fromElement != null ) { renderNonScalarProperties( appender, selectExpressions[i], fromElement, nonscalarSize, k );
Type type = selectExpression.getDataType(); if ( type == null ) { throw new QueryException( if ( selectExpression.isScalar() ) { scalarSelect = true; fromElementsForLoad.add( selectExpression.getFromElement() );
private void renderScalarSelects(SelectExpression[] se, FromClause currentFromClause) throws SemanticException { if ( !currentFromClause.isSubQuery() ) { for ( int i = 0; i < se.length; i++ ) { SelectExpression expr = se[i]; expr.setScalarColumn( i ); // Create SQL_TOKEN nodes for the columns. } } }
@Override protected void setAlias(AST selectExpr, AST ident) { ( (SelectExpression) selectExpr ).setAlias( ident.getText() ); // only put the alias (i.e., result variable) in selectExpressionsByResultVariable // if is not defined in a subquery. if ( !isSubQuery() ) { selectExpressionsByResultVariable.put( ident.getText(), (SelectExpression) selectExpr ); } }
@Override public String getRenderText(SessionFactoryImplementor sessionFactory) { int scalarColumnIndex = selectExpression.getScalarColumnIndex(); if ( scalarColumnIndex < 0 ) { throw new IllegalStateException( "selectExpression.getScalarColumnIndex() must be >= 0; actual = " + scalarColumnIndex ); } return sessionFactory.getDialect().replaceResultVariableInOrderByClauseWithPosition() ? getColumnPositionsString( scalarColumnIndex ) : getColumnNamesString( scalarColumnIndex ); }
@Override public void setScalarColumnText(int i) throws SemanticException { SelectExpression[] selectExpressions = collectSelectExpressions(); // Invoke setScalarColumnText on each constructor argument. for ( int j = 0; j < selectExpressions.length; j++ ) { SelectExpression selectExpression = selectExpressions[j]; selectExpression.setScalarColumnText( j ); } }
expr.setText( text );
Type type = selectExpression.getDataType(); if ( type == null ) { throw new IllegalStateException( "No data type for node: " + selectExpression.getClass().getName() + " " if ( selectExpression.isScalar() ) { scalarSelect = true; fromElementsForLoad.add( selectExpression.getFromElement() );
int nonscalarSize = 0; for ( int i = 0; i < size; i++ ) { if ( !selectExpressions[i].isScalar() ) nonscalarSize++; if ( !selectExpressions[i].isScalar() ) { SelectExpression expr = selectExpressions[i]; FromElement fromElement = expr.getFromElement(); if ( fromElement != null ) { renderNonScalarIdentifiers( fromElement, nonscalarSize, j, expr, appender ); if ( !selectExpressions[i].isScalar() ) { FromElement fromElement = selectExpressions[i].getFromElement(); if ( fromElement != null ) { renderNonScalarProperties( appender, fromElement, nonscalarSize, k );
@Override public void setScalarColumn(int i) throws SemanticException { SelectExpression[] selectExpressions = collectSelectExpressions(); // Invoke setScalarColumnText on each constructor argument. for ( int j = 0; j < selectExpressions.length; j++ ) { SelectExpression selectExpression = selectExpressions[j]; selectExpression.setScalarColumn( j ); } }
@Override protected void setAlias(AST selectExpr, AST ident) { ((SelectExpression) selectExpr).setAlias(ident.getText()); // only put the alias (i.e., result variable) in selectExpressionsByResultVariable // if is not defined in a subquery. if ( ! isSubQuery() ) { selectExpressionsByResultVariable.put( ident.getText(), ( SelectExpression ) selectExpr ); } }
/** * {@inheritDoc} */ @Override public String getRenderText(SessionFactoryImplementor sessionFactory) { int scalarColumnIndex = selectExpression.getScalarColumnIndex(); if ( scalarColumnIndex < 0 ) { throw new IllegalStateException( "selectExpression.getScalarColumnIndex() must be >= 0; actual = " + scalarColumnIndex ); } return sessionFactory.getDialect().replaceResultVariableInOrderByClauseWithPosition() ? getColumnPositionsString( scalarColumnIndex ) : getColumnNamesString( scalarColumnIndex ); }
public void setScalarColumnText(int i) throws SemanticException { SelectExpression[] selectExpressions = collectSelectExpressions(); // Invoke setScalarColumnText on each constructor argument. for ( int j = 0; j < selectExpressions.length; j++ ) { SelectExpression selectExpression = selectExpressions[j]; selectExpression.setScalarColumnText( j ); } }
private void renderNonScalarIdentifiers(FromElement fromElement, int nonscalarSize, int j, SelectExpression expr, ASTAppender appender) { String text = fromElement.renderIdentifierSelect( nonscalarSize, j ); if ( !fromElement.getFromClause().isSubQuery() ) { if ( !scalarSelect && !getWalker().isShallowQuery() ) { //TODO: is this a bit ugly? expr.setText( text ); } else { appender.append( SqlTokenTypes.SQL_TOKEN, text, false ); } } }
Type type = selectExpression.getDataType(); if ( type == null ) { throw new IllegalStateException( "No data type for node: " + selectExpression.getClass().getName() + " " if ( selectExpression.isScalar() ) { scalarSelect = true; fromElementsForLoad.add( selectExpression.getFromElement() );
private boolean isReturnableEntity(SelectExpression selectExpression) throws SemanticException { FromElement fromElement = selectExpression.getFromElement(); boolean isFetchOrValueCollection = fromElement != null && ( fromElement.isFetch() || fromElement.isCollectionOfValuesOrComponents() ); if ( isFetchOrValueCollection ) { return false; } else { return selectExpression.isReturnableEntity(); } }
int nonscalarSize = 0; for ( int i = 0; i < size; i++ ) { if ( !selectExpressions[i].isScalar() ) nonscalarSize++; if ( !selectExpressions[i].isScalar() ) { SelectExpression expr = selectExpressions[i]; FromElement fromElement = expr.getFromElement(); if ( fromElement != null ) { renderNonScalarIdentifiers( fromElement, nonscalarSize, j, expr, appender ); if ( !selectExpressions[i].isScalar() ) { FromElement fromElement = selectExpressions[i].getFromElement(); if ( fromElement != null ) { renderNonScalarProperties( appender, fromElement, nonscalarSize, k );