/** * INTERNAL: * Append the literal value into the printer, accounting for the first element */ public void writeFields(ExpressionSQLPrinter printer, Vector newFields, SQLSelectStatement statement) { // print ", " before each selected field except the first one if (printer.isFirstElementPrinted()) { printer.printString(", "); } else { printer.setIsFirstElementPrinted(true); } newFields.addElement(new DatabaseField(getValue())); printSQL(printer); }
protected void writeField(ExpressionSQLPrinter printer, DatabaseField field, SQLSelectStatement statement) { if (this.field == field){ //print ", " before each selected field except the first one if (printer.isFirstElementPrinted()) { printer.printString(", "); } else { printer.setIsFirstElementPrinted(true); } printSQL(printer); } else { super.writeField(printer, field, statement); } }
/** * INTERNAL: called from SQLSelectStatement.writeFieldsFromExpression(...) * This allows a sub query in the select clause. */ @Override public void writeFields(ExpressionSQLPrinter printer, Vector newFields, SQLSelectStatement statement) { //print ", " before each selected field except the first one if (printer.isFirstElementPrinted()) { printer.printString(", "); } else { printer.setIsFirstElementPrinted(true); } // This field is complex so any name can be used. DatabaseField field = new DatabaseField("*"); field.setSqlType(DatabaseField.NULL_SQL_TYPE); newFields.add(field); printSQL(printer); }
/** * INTERNAL: * Append the literal value into the printer, accounting for the first element */ @Override public void writeFields(ExpressionSQLPrinter printer, Vector newFields, SQLSelectStatement statement) { // print ", " before each selected field except the first one if (printer.isFirstElementPrinted()) { printer.printString(", "); } else { printer.setIsFirstElementPrinted(true); } newFields.addElement(new DatabaseField(getValue())); printSQL(printer); }
protected void writeField(ExpressionSQLPrinter printer, DatabaseField field, SQLSelectStatement statement) { if (this.field == field){ //print ", " before each selected field except the first one if (printer.isFirstElementPrinted()) { printer.printString(", "); } else { printer.setIsFirstElementPrinted(true); } printSQL(printer); } else { super.writeField(printer, field, statement); } }
/** * INTERNAL: called from SQLSelectStatement.writeFieldsFromExpression(...) * This allows a sub query in the select clause. */ @Override public void writeFields(ExpressionSQLPrinter printer, Vector newFields, SQLSelectStatement statement) { //print ", " before each selected field except the first one if (printer.isFirstElementPrinted()) { printer.printString(", "); } else { printer.setIsFirstElementPrinted(true); } // This field is complex so any name can be used. DatabaseField field = new DatabaseField("*"); field.setSqlType(DatabaseField.NULL_SQL_TYPE); newFields.add(field); printSQL(printer); }
/** * INTERNAL: * Append the literal value into the printer, accounting for the first element */ @Override public void writeFields(ExpressionSQLPrinter printer, Vector newFields, SQLSelectStatement statement) { // print ", " before each selected field except the first one if (printer.isFirstElementPrinted()) { printer.printString(", "); } else { printer.setIsFirstElementPrinted(true); } newFields.addElement(new DatabaseField(getValue())); printSQL(printer); }
protected void writeField(ExpressionSQLPrinter printer, DatabaseField field, SQLSelectStatement statement) { if (this.field == field){ //print ", " before each selected field except the first one if (printer.isFirstElementPrinted()) { printer.printString(", "); } else { printer.setIsFirstElementPrinted(true); } printSQL(printer); addFieldAliasIfNeeded(printer, field, statement); } else { super.writeField(printer, field, statement); } }
/** * INTERNAL: * Append the constant value into the printer */ public void writeFields(ExpressionSQLPrinter printer, Vector newFields, SQLSelectStatement statement) { if (printer.getPlatform().isDynamicSQLRequiredForFunctions()) { printer.getCall().setUsesBinding(false); } //print ", " before each selected field except the first one if (printer.isFirstElementPrinted()) { printer.printString(", "); } else { printer.setIsFirstElementPrinted(true); } // This field is a constant value, so any name can be used. newFields.addElement(new DatabaseField("*")); printSQL(printer); } }
/** * INTERNAL: * Append the constant value into the printer */ @Override public void writeFields(ExpressionSQLPrinter printer, Vector newFields, SQLSelectStatement statement) { if (printer.getPlatform().isDynamicSQLRequiredForFunctions()) { printer.getCall().setUsesBinding(false); } //print ", " before each selected field except the first one if (printer.isFirstElementPrinted()) { printer.printString(", "); } else { printer.setIsFirstElementPrinted(true); } // This field is a constant value, so any name can be used. newFields.addElement(new DatabaseField("*")); printSQL(printer); } }
/** * INTERNAL: * Append the parameter into the printer. * "Normal" ReadQuery never has ParameterExpression in it's select clause hence for a "normal" ReadQuery this method is never called. * The reason this method was added is that UpdateAllQuery (in case temporary storage is required) * creates a "helper" ReportQuery with ReportItem corresponding to each update expression - and update expression * may be a ParameterExpression. The call created by "helper" ReportQuery is never executed - * it's used during construction of insert call into temporary storage. */ public void writeFields(ExpressionSQLPrinter printer, Vector newFields, SQLSelectStatement statement) { if (printer.getPlatform().isDynamicSQLRequiredForFunctions()) { printer.getCall().setUsesBinding(false); } //print ", " before each selected field except the first one if (printer.isFirstElementPrinted()) { printer.printString(", "); } else { printer.setIsFirstElementPrinted(true); } // This field is a parameter value, so any name can be used. newFields.addElement(new DatabaseField("*")); printSQL(printer); }
/** * INTERNAL: * Append the constant value into the printer */ @Override public void writeFields(ExpressionSQLPrinter printer, Vector newFields, SQLSelectStatement statement) { if (printer.getPlatform().isDynamicSQLRequiredForFunctions()) { printer.getCall().setUsesBinding(false); } //print ", " before each selected field except the first one if (printer.isFirstElementPrinted()) { printer.printString(", "); } else { printer.setIsFirstElementPrinted(true); } // This field is a constant value, so any name can be used. newFields.addElement(new DatabaseField("*")); printSQL(printer); } }
/** * INTERNAL: * Append the parameter into the printer. * "Normal" ReadQuery never has ParameterExpression in it's select clause hence for a "normal" ReadQuery this method is never called. * The reason this method was added is that UpdateAllQuery (in case temporary storage is required) * creates a "helper" ReportQuery with ReportItem corresponding to each update expression - and update expression * may be a ParameterExpression. The call created by "helper" ReportQuery is never executed - * it's used during construction of insert call into temporary storage. */ @Override public void writeFields(ExpressionSQLPrinter printer, Vector newFields, SQLSelectStatement statement) { if (printer.getPlatform().isDynamicSQLRequiredForFunctions()) { printer.getCall().setUsesBinding(false); } //print ", " before each selected field except the first one if (printer.isFirstElementPrinted()) { printer.printString(", "); } else { printer.setIsFirstElementPrinted(true); } // This field is a parameter value, so any name can be used. newFields.addElement(new DatabaseField("*")); printSQL(printer); }
/** * Print the sub query to the printer. */ public void printSQL(ExpressionSQLPrinter printer) { ReportQuery query = getSubQuery(); printer.printString("("); if (query.isCallQuery()) { printCustomSQL(printer); } else { SQLSelectStatement statement = (SQLSelectStatement)((ExpressionQueryMechanism)query.getQueryMechanism()).getSQLStatement(); boolean isFirstElementPrinted = printer.isFirstElementPrinted(); printer.setIsFirstElementPrinted(false); boolean requiresDistinct = printer.requiresDistinct(); statement.printSQL(printer); printer.setIsFirstElementPrinted(isFirstElementPrinted); printer.setRequiresDistinct(requiresDistinct); } printer.printString(")"); }
/** * Print the sub query to the printer. */ @Override public void printSQL(ExpressionSQLPrinter printer) { ReportQuery query = getSubQuery(); printer.printString("("); if (query.isCallQuery()) { printCustomSQL(printer); } else { SQLSelectStatement statement = (SQLSelectStatement)((ExpressionQueryMechanism)query.getQueryMechanism()).getSQLStatement(); boolean isFirstElementPrinted = printer.isFirstElementPrinted(); printer.setIsFirstElementPrinted(false); boolean requiresDistinct = printer.requiresDistinct(); statement.printSQL(printer); printer.setIsFirstElementPrinted(isFirstElementPrinted); printer.setRequiresDistinct(requiresDistinct); } printer.printString(")"); }
/** * 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); }
/** * 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()))); } }