public String getIndexName(boolean withIdentifier, String indexExt) { TableName table = getTableName(); String tableName = table.toString().replace(identifierQuoteString, ""); String indexName = tableName + "_" + indexExt; if (withIdentifier) { return identifierQuoteString + indexName + identifierQuoteString; } return indexName; }
@Override public String getIndexName(boolean withIdentifier, String indexExt) { if (indexExt.equals(timestampIndexExt)) { // Timestamp for Oracle began with IDX, to keep backwards compatible we have to keep using that indexExt = INDEX_PREFIX; } int maxNameSize = MAX_INDEX_IDENTIFIER_SIZE - indexExt.length() - 1; String tableName = getTableName().toString().replace(identifierQuoteString, ""); String truncatedName = tableName.length() > maxNameSize ? tableName.substring(0, maxNameSize) : tableName; String indexName = indexExt + "_" + truncatedName; if (withIdentifier) { return identifierQuoteString + indexName + identifierQuoteString; } return indexName; }
@Override protected boolean indexExists(String indexName, Connection conn) throws PersistenceException { ResultSet rs = null; try { DatabaseMetaData meta = conn.getMetaData(); rs = meta.getIndexInfo(null, null, getTableName().toString(), false, false); while (rs.next()) { String index = rs.getString("INDEX_NAME"); if (indexName.equalsIgnoreCase(index)) { return true; } } } catch (SQLException e) { throw new PersistenceException(e); } finally { JdbcUtil.safeClose(rs); } return false; }
public void testName(){ TableName tableName = new TableName(IDENTIFIER_QUOTE, "ISPN", "FOOBäR"); assertEquals(tableName.toString(), "\"ISPN_FOOB_R\""); } }
public void testSchema(){ TableName tableName = new TableName(IDENTIFIER_QUOTE, "TEST.ISPN", "FOOBAR"); assertEquals(tableName.getSchema(), "TEST"); assertEquals(tableName.getName(), "ISPN_FOOBAR"); assertEquals(tableName.toString(), "\"TEST\".\"ISPN_FOOBAR\""); tableName = new TableName(IDENTIFIER_QUOTE, "ISPN", "FOOBAR"); assertEquals(tableName.getSchema(), null); assertEquals(tableName.getName(), "ISPN_FOOBAR"); assertEquals(tableName.toString(), "\"ISPN_FOOBAR\""); }