/** * INTERNAL: DB2 allows LIKE to be used to create temp tables, which avoids having to know the types. * This is used by UpdateAllQuerys. */ @Override protected String getCreateTempTableSqlBodyForTable(DatabaseTable table) { return " LIKE " + table.getQualifiedNameDelimited(this); }
/** * INTERNAL: DB2 allows LIKE to be used to create temp tables, which avoids having to know the types. * This is used by UpdateAllQuerys. */ @Override protected String getCreateTempTableSqlBodyForTable(DatabaseTable table) { return " LIKE " + table.getQualifiedNameDelimited(this); }
public String getQualifiedNameDelimited(DatasourcePlatform platform) { if (historicalNameDelimited != null) { return historicalNameDelimited; } else if(historicalName != null) { return historicalName; } else { return super.getQualifiedNameDelimited(platform); } } }
/** * INTERNAL: DB2 allows LIKE to be used to create temp tables, which avoids having to know the types. * This is used by UpdateAllQuerys. */ @Override protected String getCreateTempTableSqlBodyForTable(DatabaseTable table) { return " LIKE " + table.getQualifiedNameDelimited(this); }
public String getQualifiedNameDelimited(DatasourcePlatform platform) { if (historicalNameDelimited != null) { return historicalNameDelimited; } else if(historicalName != null) { return historicalName; } else { return super.getQualifiedNameDelimited(platform); } } }
public String getQualifiedNameDelimited(DatasourcePlatform platform) { if (historicalNameDelimited != null) { return historicalNameDelimited; } else if(historicalName != null) { return historicalName; } else { return super.getQualifiedNameDelimited(platform); } } }
/** * INTERNAL: */ public void writeUpdateOriginalFromTempTableSql(Writer writer, DatabaseTable table, Collection pkFields, Collection assignedFields) throws IOException { writer.write("UPDATE "); String tableName = table.getQualifiedNameDelimited(this); writer.write(tableName); String tempTableName = getTempTableForTable(table).getQualifiedNameDelimited(this); writeAutoAssignmentSetClause(writer, null, tempTableName, assignedFields, this); writer.write(" FROM "); writer.write(tableName); writer.write(", "); writer.write(tempTableName); writeAutoJoinWhereClause(writer, tableName, tempTableName, pkFields, this); }
/** * Print the table's SQL from clause. */ public void printSQL(ExpressionSQLPrinter printer) throws IOException { printer.getWriter().write(getQualifiedNameDelimited(printer.getPlatform())); }
/** * Print the table's SQL from clause. */ public void printSQL(ExpressionSQLPrinter printer) throws IOException { printer.getWriter().write(getQualifiedNameDelimited(printer.getPlatform())); }
/** * INTERNAL: * May need to override this method if the platform supports temporary tables * and the generated sql doesn't work. * Write an sql string for insertion into the temporary table. * Precondition: supportsTempTables() == true. * @parameter Writer writer for writing the sql * @parameter DatabaseTable table is original table for which temp table is created. * @parameter Collection usedFields - fields that will be used by operation for which temp table is created. */ public void writeInsertIntoTableSql(Writer writer, DatabaseTable table, Collection usedFields) throws IOException { writer.write("INSERT INTO "); writer.write(getTempTableForTable(table).getQualifiedNameDelimited(this)); writer.write(" ("); writeFieldsList(writer, usedFields, this); writer.write(") "); }
/** * INTERNAL: * May need to override this method if the platform supports temporary tables * and the generated sql doesn't work. * Write an sql string for insertion into the temporary table. * Precondition: supportsTempTables() == true. * @parameter Writer writer for writing the sql * @parameter DatabaseTable table is original table for which temp table is created. * @parameter Collection usedFields - fields that will be used by operation for which temp table is created. */ public void writeInsertIntoTableSql(Writer writer, DatabaseTable table, Collection usedFields) throws IOException { writer.write("INSERT INTO "); writer.write(getTempTableForTable(table).getQualifiedNameDelimited(this)); writer.write(" ("); writeFieldsList(writer, usedFields, this); writer.write(") "); }
/** * INTERNAL: * May need to override this method if the platform supports temporary tables * and the generated sql doesn't work. * Write an sql string for insertion into the temporary table. * Precondition: supportsTempTables() == true. * @parameter Writer writer for writing the sql * @parameter DatabaseTable table is original table for which temp table is created. * @parameter Collection usedFields - fields that will be used by operation for which temp table is created. */ public void writeInsertIntoTableSql(Writer writer, DatabaseTable table, Collection usedFields) throws IOException { writer.write("INSERT INTO "); writer.write(getTempTableForTable(table).getQualifiedNameDelimited(this)); writer.write(" ("); writeFieldsList(writer, usedFields, this); writer.write(") "); }
/** * Return the qualified name of the field. * PERF: Cache the qualified name. */ public String getQualifiedNameDelimited(DatasourcePlatform platform) { if (hasTableName()) { return this.table.getQualifiedNameDelimited(platform) + "." + getNameDelimited(platform); } else { return getNameDelimited(platform); } } /**
/** * Return the qualified name of the field. * PERF: Cache the qualified name. */ public String getQualifiedNameDelimited(DatasourcePlatform platform) { if (hasTableName()) { return this.table.getQualifiedNameDelimited(platform) + "." + getNameDelimited(platform); } else { return getNameDelimited(platform); } } /**
/** * Return the qualified name of the field. * PERF: Cache the qualified name. */ public String getQualifiedNameDelimited(DatasourcePlatform platform) { if (hasTableName()) { return this.table.getQualifiedNameDelimited(platform) + "." + getNameDelimited(platform); } else { return getNameDelimited(platform); } } /**
/** * Constructs a new database table which appears as <code>guise</code> but * in fact really is <code>identity</code>. */ public HistoricalDatabaseTable(DatabaseTable source, DatabaseTable mirroring, DatasourcePlatform platform) { super(source.getName(), source.getTableQualifier()); this.historicalName = mirroring.getQualifiedName(); if(mirroring.shouldUseDelimiters()) { this.historicalNameDelimited = mirroring.getQualifiedNameDelimited(platform); } }
/** * Constructs a new database table which appears as <code>guise</code> but * in fact really is <code>identity</code>. */ public HistoricalDatabaseTable(DatabaseTable source, DatabaseTable mirroring, DatasourcePlatform platform) { super(source.getName(), source.getTableQualifier()); this.historicalName = mirroring.getQualifiedName(); if(mirroring.shouldUseDelimiters()) { this.historicalNameDelimited = mirroring.getQualifiedNameDelimited(platform); } }
/** * Constructs a new database table which appears as <code>guise</code> but * in fact really is <code>identity</code>. */ public HistoricalDatabaseTable(DatabaseTable source, DatabaseTable mirroring, DatasourcePlatform platform) { super(source.getName(), source.getTableQualifier()); this.historicalName = mirroring.getQualifiedName(); if(mirroring.shouldUseDelimiters()) { this.historicalNameDelimited = mirroring.getQualifiedNameDelimited(platform); } }
public void printField(DatabaseField field, DatabaseTable tableAlias) { if (field == null) { return; } try { // Print the field using either short or long notation i.e. owner + table name. if (shouldPrintQualifiedNames()) { getWriter().write(tableAlias.getQualifiedNameDelimited(platform)); getWriter().write("."); getWriter().write(field.getNameDelimited(platform)); } else { getWriter().write(field.getNameDelimited(platform)); } } catch (IOException exception) { throw ValidationException.fileError(exception); } }
/** * Build a foreign key constraint using FieldDefinition.getForeignKeyFieldName(). */ protected ForeignKeyConstraint buildForeignKeyConstraint(FieldDefinition field, DatabasePlatform platform) { Vector sourceFields = new Vector(); Vector targetFields = new Vector(); ForeignKeyConstraint fkConstraint = new ForeignKeyConstraint(); DatabaseField tempTargetField = new DatabaseField(field.getForeignKeyFieldName()); DatabaseField tempSourceField = new DatabaseField(field.getName()); sourceFields.addElement(tempSourceField.getName()); targetFields.addElement(tempTargetField.getName()); fkConstraint.setSourceFields(sourceFields); fkConstraint.setTargetFields(targetFields); fkConstraint.setTargetTable(tempTargetField.getTable().getQualifiedNameDelimited(platform)); String tempName = buildForeignKeyConstraintName(this.getName(), tempSourceField.getName(), platform.getMaxForeignKeyNameSize(), platform); fkConstraint.setName(tempName); return fkConstraint; }