protected Database merge(Database... databases) { Database database = new Database(); if (databases != null) { for (Database db : databases) { Table[] tables = db.getTables(); for (Table table : tables) { database.addTable(table); } } } return database; }
public String getCreateTableXML(TriggerHistory triggerHistory, TriggerRouter triggerRouter) { Table table = getTable(triggerHistory, true); String targetTableName = triggerRouter.getRouter().getTargetTableName(); if (StringUtils.isNotBlank(targetTableName)) { table.setName(targetTableName); } Database db = new Database(); setDatabaseName(triggerRouter, db); db.addTable(table); StringWriter buffer = new StringWriter(); DatabaseXmlUtil.write(db, buffer); // TODO: remove when these bugs are fixed in DdlUtils String xml = buffer.toString().replaceAll("'", ""); xml = xml.replaceAll("default=\"empty_blob\\(\\) *\"", ""); xml = xml.replaceAll("unique name=\"PRIMARY\"", "unique name=\"PRIMARYINDEX\""); // on postgres, this is a "text" column xml = xml.replaceAll("type=\"VARCHAR\" size=\"2147483647\"", "type=\"LONGVARCHAR\""); xml = xml.replaceAll("type=\"BINARY\" size=\"2147483647\"", "type=\"LONGVARBINARY\""); return xml; }
protected Database getDatabase(Table[] tables) { Database db = new Database(); try { if (!noCreateInfo) { for (Table table : tables) { Table newTable = (Table) table.clone(); if (noIndices) { newTable.removeAllIndices(); } if (noForeignKeys) { newTable.removeAllForeignKeys(); } db.addTable(newTable); } } } catch (Exception e) { throw new RuntimeException(e); } return db; }