protected static String getAliasTableName(SQLSelectStatement selectStatement, DatabaseTable table, DatasourcePlatform platform) { if(!selectStatement.requiresAliases()) { return null;
protected static String getAliasTableName(SQLSelectStatement selectStatement, DatabaseTable table, DatasourcePlatform platform) { if(!selectStatement.requiresAliases()) { return null;
/** * INTERNAL: Alias the tables in all of our nodes. */ public void assignAliases(Vector allExpressions) { // For sub-selects all statements must share aliasing information. // For CR#2627019 currentAliasNumber = getCurrentAliasNumber(); ExpressionIterator iterator = new ExpressionIterator() { public void iterate(Expression each) { currentAliasNumber = each.assignTableAliasesStartingAt(currentAliasNumber); } }; if (allExpressions.isEmpty()) { // bug 3878553 - ensure aliases are always assigned for when required . if ((getBuilder() != null) && requiresAliases()) { getBuilder().assignTableAliasesStartingAt(currentAliasNumber); } } else { for (Enumeration expressionEnum = allExpressions.elements(); expressionEnum.hasMoreElements();) { Expression expression = (Expression)expressionEnum.nextElement(); iterator.iterateOn(expression); } } // For sub-selects update aliasing information of all statements. // For CR#2627019 setCurrentAliasNumber(currentAliasNumber); }
/** * INTERNAL: Alias the tables in all of our nodes. */ public void assignAliases(Vector allExpressions) { // For sub-selects all statements must share aliasing information. // For CR#2627019 currentAliasNumber = getCurrentAliasNumber(); ExpressionIterator iterator = new ExpressionIterator() { @Override public void iterate(Expression each) { currentAliasNumber = each.assignTableAliasesStartingAt(currentAliasNumber); } }; if (allExpressions.isEmpty()) { // bug 3878553 - ensure aliases are always assigned for when required . if ((getBuilder() != null) && requiresAliases()) { getBuilder().assignTableAliasesStartingAt(currentAliasNumber); } } else { for (Enumeration expressionEnum = allExpressions.elements(); expressionEnum.hasMoreElements();) { Expression expression = (Expression)expressionEnum.nextElement(); iterator.iterateOn(expression); } } // For sub-selects update aliasing information of all statements. // For CR#2627019 setCurrentAliasNumber(currentAliasNumber); }
/** * INTERNAL: Alias the tables in all of our nodes. */ public void assignAliases(Vector allExpressions) { // For sub-selects all statements must share aliasing information. // For CR#2627019 currentAliasNumber = getCurrentAliasNumber(); ExpressionIterator iterator = new ExpressionIterator() { public void iterate(Expression each) { currentAliasNumber = each.assignTableAliasesStartingAt(currentAliasNumber); } }; if (allExpressions.isEmpty()) { // bug 3878553 - ensure aliases are always assigned for when required . if ((getBuilder() != null) && requiresAliases()) { getBuilder().assignTableAliasesStartingAt(currentAliasNumber); } } else { for (Enumeration expressionEnum = allExpressions.elements(); expressionEnum.hasMoreElements();) { Expression expression = (Expression)expressionEnum.nextElement(); iterator.iterateOn(expression); } } // For sub-selects update aliasing information of all statements. // For CR#2627019 setCurrentAliasNumber(currentAliasNumber); }
/** * Build the call, setting the query first, this is required in some cases when the query info is required to print the SQL. */ public DatabaseCall buildCall(AbstractSession session, DatabaseQuery query) { SQLCall call = new SQLCall(); call.setQuery(query); call.returnManyRows(); Writer writer = new CharArrayWriter(200); ExpressionSQLPrinter printer = new ExpressionSQLPrinter(session, getTranslationRow(), call, requiresAliases(), getBuilder()); printer.setWriter(writer); session.getPlatform().printSQLSelectStatement(call, printer, this); call.setSQLString(writer.toString()); return call; }
/** * Build the call, setting the query first, this is required in some cases when the query info is required to print the SQL. */ public DatabaseCall buildCall(AbstractSession session, DatabaseQuery query) { SQLCall call = new SQLCall(); call.setQuery(query); call.returnManyRows(); Writer writer = new CharArrayWriter(200); ExpressionSQLPrinter printer = new ExpressionSQLPrinter(session, getTranslationRow(), call, requiresAliases(), getBuilder()); printer.setWriter(writer); session.getPlatform().printSQLSelectStatement(call, printer, this); call.setSQLString(writer.toString()); return call; }
/** * Build the call, setting the query first, this is required in some cases when the query info is required to print the SQL. */ public DatabaseCall buildCall(AbstractSession session, DatabaseQuery query) { SQLCall call = new SQLCall(); call.setQuery(query); call.returnManyRows(); Writer writer = new CharArrayWriter(200); ExpressionSQLPrinter printer = new ExpressionSQLPrinter(session, getTranslationRow(), call, requiresAliases(), getBuilder()); printer.setWriter(writer); session.getPlatform().printSQLSelectStatement(call, printer, this); call.setSQLString(writer.toString()); return call; }
updateAllStatement.setShouldExtractWhereClauseFromSelectCallForExist(!selectStatementForExist.requiresAliases() && table.equals(selectStatementForExist.getTables().get(0))); updateAllStatement.setTableAliasInSelectCallForExist(getAliasTableName(selectStatementForExist, table, getExecutionSession().getPlatform())); updateAllStatement.setPrimaryKeyFieldsForAutoJoin(primaryKeyFields);
updateAllStatement.setShouldExtractWhereClauseFromSelectCallForExist(!selectStatementForExist.requiresAliases() && table.equals(selectStatementForExist.getTables().firstElement())); updateAllStatement.setTableAliasInSelectCallForExist(getAliasTableName(selectStatementForExist, table, getSession().getPlatform())); updateAllStatement.setPrimaryKeyFieldsForAutoJoin(primaryKeyFields);
updateAllStatement.setShouldExtractWhereClauseFromSelectCallForExist(!selectStatementForExist.requiresAliases() && table.equals(selectStatementForExist.getTables().get(0))); updateAllStatement.setTableAliasInSelectCallForExist(getAliasTableName(selectStatementForExist, table, getExecutionSession().getPlatform())); updateAllStatement.setPrimaryKeyFieldsForAutoJoin(primaryKeyFields);
/** * INTERNAL: * Append the field's alias to the writer. * This is used for pessimistic locking. */ protected void writeAlias(ExpressionSQLPrinter printer, DatabaseField field, SQLSelectStatement statement) { //print ", " before each selected field except the first one if (printer.isFirstElementPrinted()) { printer.printString(", "); } else { printer.setIsFirstElementPrinted(true); } if (statement.requiresAliases()) { if (field.getTable() != this.lastTable) { this.lastTable = field.getTable(); this.currentAlias = aliasForTable(this.lastTable); } printer.printString(this.currentAlias.getQualifiedNameDelimited(printer.getPlatform())); } else { printer.printString(field.getTable().getQualifiedNameDelimited(printer.getPlatform())); } }
/** * INTERNAL: * Append the field's alias to the writer. * This is used for pessimistic locking. */ protected void writeAlias(ExpressionSQLPrinter printer, DatabaseField field, SQLSelectStatement statement) { //print ", " before each selected field except the first one if (printer.isFirstElementPrinted()) { printer.printString(", "); } else { printer.setIsFirstElementPrinted(true); } if (statement.requiresAliases()) { if (field.getTable() != this.lastTable) { this.lastTable = field.getTable(); this.currentAlias = aliasForTable(this.lastTable); } printer.printString(this.currentAlias.getQualifiedNameDelimited(printer.getPlatform())); } else { printer.printString(field.getTable().getQualifiedNameDelimited(printer.getPlatform())); } }
/** * INTERNAL: * Append the field's alias to the writer. * This is used for pessimistic locking. */ protected void writeAlias(ExpressionSQLPrinter printer, DatabaseField field, SQLSelectStatement statement) { //print ", " before each selected field except the first one if (printer.isFirstElementPrinted()) { printer.printString(", "); } else { printer.setIsFirstElementPrinted(true); } if (statement.requiresAliases()) { if (field.getTable() != this.lastTable) { this.lastTable = field.getTable(); this.currentAlias = aliasForTable(this.lastTable); } printer.printString(this.currentAlias.getQualifiedNameDelimited(printer.getPlatform())); } else { printer.printString(field.getTable().getQualifiedNameDelimited(printer.getPlatform())); } }
/** * INTERNAL: * Append the field name to the writer. Should be overridden for special operators such as functions. */ protected void writeField(ExpressionSQLPrinter printer, DatabaseField field, SQLSelectStatement statement) { //print ", " before each selected field except the first one if (printer.isFirstElementPrinted()) { printer.printString(", "); } else { printer.setIsFirstElementPrinted(true); } if (statement.requiresAliases()) { if (field.getTable() != lastTable) { lastTable = field.getTable(); currentAlias = aliasForTable(lastTable); } printer.printString(currentAlias.getQualifiedNameDelimited(printer.getPlatform())); printer.printString("."); } printer.printString(field.getNameDelimited(printer.getPlatform())); //bug6070214: unique field aliases need to be generated when required. addFieldAliasIfNeeded(printer, field, statement); }
deleteAllStatement.setShouldExtractWhereClauseFromSelectCallForExist(!selectStatementForExist.requiresAliases() && table.equals(selectStatementForExist.getTables().get(0))); deleteAllStatement.setTableAliasInSelectCallForExist(getAliasTableName(selectStatementForExist, table, getExecutionSession().getPlatform())); } else {
deleteAllStatement.setShouldExtractWhereClauseFromSelectCallForExist(!selectStatementForExist.requiresAliases() && table.equals(selectStatementForExist.getTables().get(0))); deleteAllStatement.setTableAliasInSelectCallForExist(getAliasTableName(selectStatementForExist, table, getExecutionSession().getPlatform())); } else {
/** * INTERNAL: * Append the field name to the writer. Should be overridden for special operators such as functions. */ protected void writeField(ExpressionSQLPrinter printer, DatabaseField field, SQLSelectStatement statement) { //print ", " before each selected field except the first one if (printer.isFirstElementPrinted()) { printer.printString(", "); } else { printer.setIsFirstElementPrinted(true); } if (statement.requiresAliases()) { if (field.getTable() != lastTable) { lastTable = field.getTable(); currentAlias = aliasForTable(lastTable); } printer.printString(currentAlias.getQualifiedNameDelimited(printer.getPlatform())); printer.printString("."); } printer.printString(field.getNameDelimited(printer.getPlatform())); //bug6070214: unique field aliases need to be generated when required. if (statement.getUseUniqueFieldAliases()){ printer.printString(" AS " + statement.generatedAlias(field.getNameDelimited(printer.getPlatform()))); } }
deleteAllStatement.setShouldExtractWhereClauseFromSelectCallForExist(!selectStatementForExist.requiresAliases() && table.equals(selectStatementForExist.getTables().firstElement())); deleteAllStatement.setTableAliasInSelectCallForExist(getAliasTableName(selectStatementForExist, table, getSession().getPlatform())); } else {
/** * INTERNAL: * Append the field name to the writer. Should be overridden for special operators such as functions. */ protected void writeField(ExpressionSQLPrinter printer, DatabaseField field, SQLSelectStatement statement) { //print ", " before each selected field except the first one if (printer.isFirstElementPrinted()) { printer.printString(", "); } else { printer.setIsFirstElementPrinted(true); } if (statement.requiresAliases()) { if (field.getTable() != lastTable) { lastTable = field.getTable(); currentAlias = aliasForTable(lastTable); } printer.printString(currentAlias.getQualifiedNameDelimited(printer.getPlatform())); printer.printString("."); } printer.printString(field.getNameDelimited(printer.getPlatform())); //bug6070214: unique field aliases need to be generated when required. if (statement.getUseUniqueFieldAliases()){ printer.printString(" AS " + statement.generatedAlias(field.getNameDelimited(printer.getPlatform()))); } }