public static Dialect findDialect(String driver) { Dialect dialect = null; if (driver != null) { driver = driver.toLowerCase(); if (driver.indexOf("hsqldb") > -1) dialect = new DialectHsqldb(); else if (driver.indexOf("mysql") > -1 || driver.indexOf("mariadb") > -1) dialect = new DialectMysql(); else if (driver.indexOf("postgresql") > -1) dialect = new DialectPostgresql(); } if (dialect == null) { dialect = new DialectDefault(); } return dialect; }
log().t("table",tnOrg); String tn = normalizeTableName(tnOrg); ResultSet tRes = findTable(meta, tn); log().t("--- found table",tName); String fName = normalizeColumnName(fNameOrg); ResultSet fRes = findColumn(meta,tn,fName); log().t("field",tName,fNameOrg); if (fRes.next()) { String fName2 = fRes.getString("COLUMN_NAME"); int fNull = fRes.getInt("NULLABLE"); String fDef = fRes.getString("COLUMN_DEF"); log().t("found field",tName,fName2,fType,fSize,fNull,fDef); String fType1 = getDbType(cfield); if (!equalTypes(fType1,fType, fSize)) { alterColumn(sth,tn,cfield); } else { boolean xdef = cfield.getProperty("default") != null; alterColumnDropDefault(sth,tn,fName); } else if (fDef == null && xdef || fDef != null && !fDef.equals(cfield.getProperty("default")) ) {
String prefix = cindex.getExtracted("prefix",""); String tableOrg = prefix + tableName; String iName = normalizeIndexName(iNameOrg, tableOrg); String table = normalizeTableName(tableOrg); for (String item : columnsOrg.split(",") ) set.add(normalizeColumnName(item.trim())); columns = MString.join(set.iterator(), ","); } else { ResultSet res = findIndex(meta, table, unique); while (res.next()) { String fName2 = res.getString("COLUMN_NAME"); if (iName2 != null && fName2 != null) { if (equalsIndexName(table,iName,iName2)) { if (columns2 == null) columns2 = fName2; else columns2 = columns2 + "," + fName2; ResultSet res = findIndex(meta, table, !unique); while (res.next()) { String fName2 = res.getString("COLUMN_NAME"); if (iName2 != null && fName2 != null) { if (equalsIndexName(table,iName,iName2)) { doubleExists = true; break; log().d("create index",doubleExists,iNameOrg,columnsOrg); if (doubleExists) recreateIndex(sth,unique,btree,iName,table,columns); else