/** * INTERNAL: */ protected String getCreateTempTableSqlBodyForTable(DatabaseTable table) { return " LIKE " + table.getQualifiedName(); }
/** * PUBLIC: * Return the relation table qualified name associated with the mapping. */ public String getRelationTableQualifiedName() { if (relationTable == null) { return null; } return relationTable.getQualifiedName(); }
public String toString() { return "DatabaseTable(" + getQualifiedName() + ")"; } }
/** * INTERNAL: (OVERRIDE) */ protected void processPrimaryKeyJoinColumns(String sourceTableName) { m_primaryKeyJoinColumns = new XMLPrimaryKeyJoinColumns(m_node, m_helper, sourceTableName, m_databaseTable.getQualifiedName()); } }
/** * INTERNAL: */ public void setPrimaryTable(DatabaseTable primaryTable) { addTable(primaryTable); m_primaryTableName = primaryTable.getQualifiedName(); }
/** * INTERNAL: (Overridden in XMLSecondaryTable) */ protected void processPrimaryKeyJoinColumns(String sourceTableName) { m_primaryKeyJoinColumns = new MetadataPrimaryKeyJoinColumns(m_pkJoinColumns, sourceTableName, m_databaseTable.getQualifiedName()); } }
public String getTableName() { return getTable().getQualifiedName(); }
/** * PUBLIC: * Return the table names. */ public Vector getTableNames() { Vector tableNames = new Vector(getTables().size()); for (Enumeration fieldsEnum = getTables().elements(); fieldsEnum.hasMoreElements();) { tableNames.addElement(((DatabaseTable)fieldsEnum.nextElement()).getQualifiedName()); } return tableNames; }
/** * INTERNAL: */ public void writeDeleteFromTargetTableUsingTempTableSql(Writer writer, DatabaseTable table, DatabaseTable targetTable, Collection pkFields, Collection targetPkFields) throws IOException { writer.write("DELETE FROM "); String targetTableName = targetTable.getQualifiedName(); writer.write(targetTableName); writer.write(" USING "); writer.write(targetTableName); writer.write(", "); String tempTableName = getTempTableForTable(table).getQualifiedName(); writer.write(tempTableName); writeJoinWhereClause(writer, targetTableName, tempTableName, targetPkFields, pkFields); } }
/** * INTERNAL: */ public void writeUpdateOriginalFromTempTableSql(Writer writer, DatabaseTable table, Collection pkFields, Collection assignedFields) throws IOException { writer.write("UPDATE "); String tableName = table.getQualifiedName(); writer.write(tableName); writer.write(", "); String tempTableName = getTempTableForTable(table).getQualifiedName(); writer.write(tempTableName); writeAutoAssignmentSetClause(writer, tableName, tempTableName, assignedFields); writeAutoJoinWhereClause(writer, tableName, tempTableName, pkFields); }
/** * INTERNAL: * Assumes there is one primary key field set. This method should be called * when qualifying any primary key field (from a join column) for this * descriptor. This method was created because in an inheritance hierarchy * with a joined strategy we can't use getPrimaryTableName() since it would * return the wrong table name. From the spec, the primary key must be * defined on the entity that is the root of the entity hierarchy or on a * mapped superclass of the entity hierarchy. The primary key must be * defined exactly once in an entity hierarchy. */ public String getPrimaryKeyTableName() { return ((DatabaseField)(getPrimaryKeyFields().iterator().next())).getTable().getQualifiedName(); }
/** * INTERNAL: */ public void writeUpdateOriginalFromTempTableSql(Writer writer, DatabaseTable table, Collection pkFields, Collection assignedFields) throws IOException { writer.write("UPDATE "); String tableName = table.getQualifiedName(); writer.write(tableName); String tempTableName = getTempTableForTable(table).getQualifiedName(); writeAutoAssignmentSetClause(writer, null, tempTableName, assignedFields); writer.write(" FROM "); writer.write(tableName); writer.write(", "); writer.write(tempTableName); writeAutoJoinWhereClause(writer, tableName, tempTableName, pkFields); } }
/** * INTERNAL: */ public void writeUpdateOriginalFromTempTableSql(Writer writer, DatabaseTable table, Collection pkFields, Collection assignedFields) throws IOException { writer.write("UPDATE "); String tableName = table.getQualifiedName(); writer.write(tableName); String tempTableName = getTempTableForTable(table).getQualifiedName(); writeAutoAssignmentSetClause(writer, null, tempTableName, assignedFields); writer.write(" FROM "); writer.write(tableName); writer.write(", "); writer.write(tempTableName); writeAutoJoinWhereClause(writer, tableName, tempTableName, pkFields); } }
/** * 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).getQualifiedName()); writer.write(" ("); writeFieldsList(writer, usedFields); writer.write(") "); }
/** * INTERNAL: * Don't override this method. * Write an sql string for clean up of the temporary table. * Drop a local temp table or delete all from a global temp table (so that it's * ready to be used again in the same transaction). * Precondition: supportsTempTables() == true. * @parameter Writer writer for writing the sql * @parameter DatabaseTable table is original table for which temp table is created. */ public void writeCleanUpTempTableSql(Writer writer, DatabaseTable table) throws IOException { if(supportsLocalTempTables()) { writer.write("DROP TABLE "); } else { // supportsGlobalTempTables() == true writer.write("DELETE FROM "); } writer.write(getTempTableForTable(table).getQualifiedName()); }
/** * PUBLIC: * Returns the qualified name of the reference table */ public String getReferenceTableQualifiedName() {//CR#2407 if (getReferenceTable() == null) { return null; } return getReferenceTable().getQualifiedName(); }
/** * Return the qualified name of the field. */ public String getQualifiedName() { if (hasTableName()) { return getTable().getQualifiedName() + "." + getName(); } else { return getName(); } }
/** * Append the string containing the SQL insert string for the given table. */ public DatabaseCall buildCall(AbstractSession session) { SQLCall call = new SQLCall(); call.returnNothing(); Writer writer = new CharArrayWriter(100); try { writer.write("DELETE "); writer.write("FROM "); writer.write(getTable().getQualifiedName()); if (getWhereClause() != null) { writer.write(" WHERE "); ExpressionSQLPrinter printer = new ExpressionSQLPrinter(session, getTranslationRow(), call, false); printer.setWriter(writer); printer.printExpression(getWhereClause()); } call.setSQLString(writer.toString()); } catch (IOException exception) { throw ValidationException.fileError(exception); } return call; } }
/** * Build a foriegn 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().getQualifiedName()); String tempName = buildForeignKeyConstraintName(this.getName(), tempSourceField.getName(), platform.getMaxForeignKeyNameSize()); fkConstraint.setName(tempName); return fkConstraint; }
/** * INTERNAL: * Append the field name to the writer. Should be overriden 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.getQualifiedName()); printer.printString("."); printer.printString(field.getName()); } else { printer.printString(field.getName()); } }