Package org.apache.ddlutils.model

Examples of org.apache.ddlutils.model.Index


            }
        }

        for (int indexIdx = 0; indexIdx < sourceTable.getIndexCount(); indexIdx++)
        {
            Index sourceIndex = sourceTable.getIndex(indexIdx);
            Index targetIndex = findCorrespondingIndex(targetTable, sourceIndex);

            if (targetIndex == null)
            {
                if (_log.isInfoEnabled())
                {
                    _log.info("Index " + sourceIndex.getName() + " needs to be removed from table " + sourceTable.getName());
                }
                changes.add(new RemoveIndexChange(sourceTable, sourceIndex));
            }
        }
        for (int indexIdx = 0; indexIdx < targetTable.getIndexCount(); indexIdx++)
        {
            Index targetIndex = targetTable.getIndex(indexIdx);
            Index sourceIndex = findCorrespondingIndex(sourceTable, targetIndex);

            if (sourceIndex == null)
            {
                if (_log.isInfoEnabled())
                {
View Full Code Here


     */
    private Index findCorrespondingIndex(Table table, Index index)
    {
        for (int indexIdx = 0; indexIdx < table.getIndexCount(); indexIdx++)
        {
            Index curIndex = table.getIndex(indexIdx);

            if ((_caseSensitive  && index.equals(curIndex)) ||
                (!_caseSensitive && index.equalsIgnoreCase(curIndex)))
            {
                return curIndex;
View Full Code Here

            // TODO: Replace this manual filtering using named pks once they are available
            //       This is then probably of interest to every platform
            for (int idx = 0; idx < table.getIndexCount();)
            {
                Index index = table.getIndex(idx);

                if (index.isUnique() && existsPKWithName(metaData, table, index.getName()))
                {
                    table.removeIndex(idx);
                }
                else
                {
View Full Code Here

                    additionalChanges.add(new AddPrimaryKeyChange(table, pk));
                    removedPKs.add(table);
                }
                for (int idx = 0; idx < table.getIndexCount(); idx++)
                {
                    Index index = table.getIndex(idx);

                    if (index.hasColumn(column) && !removedIndexes.contains(index))
                    {
                        additionalChanges.add(new RemoveIndexChange(table, index));
                        additionalChanges.add(new AddIndexChange(table, index));
                        removedIndexes.add(index);
                    }
View Full Code Here

    /**
     * {@inheritDoc}
     */
    public void apply(Database database, boolean caseSensitive)
    {
        Index newIndex = null;

        try
        {
            newIndex = (Index)_newIndex.clone();
        }
View Full Code Here

     * {@inheritDoc}
     */
    public void apply(Database database, boolean caseSensitive)
    {
        Table table = database.findTable(getChangedTable().getName(), caseSensitive);
        Index index = table.findIndex(_index.getName(), caseSensitive);

        table.removeIndex(index);
    }
View Full Code Here

            columnNames.add(pks[columnIdx].getName());
        }

        for (int indexIdx = 0; indexIdx < table.getIndexCount();)
        {
            Index index = table.getIndex(indexIdx);

            if (index.isUnique() && matches(index, columnNames) &&
                isInternalPrimaryKeyIndex(metaData, table, index))
            {
                table.removeIndex(indexIdx);
            }
            else
View Full Code Here

    protected void removeSystemIndices(DatabaseMetaDataWrapper metaData, Table table) throws SQLException
    {
        // Axion's JDBC driver does not support primary key reading, so we have to filter at this level
        for (int indexIdx = 0; indexIdx < table.getIndexCount();)
        {
            Index index = table.getIndex(indexIdx);

            // also, Axion's internal indices are not unique
            if (index.getName().startsWith("SYS_"))
            {
                table.removeIndex(indexIdx);
            }
            else
            {
View Full Code Here

            columnNames.add(name);
        }

        for (int indexIdx = 0; indexIdx < table.getIndexCount();)
        {
            Index index = table.getIndex(indexIdx);

            if ((mustBeUnique == index.isUnique()) && matches(index, columnNames) &&
                isInternalForeignKeyIndex(metaData, table, fk, index))
            {
                fk.setAutoIndexPresent(true);
                table.removeIndex(indexIdx);
            }
View Full Code Here

       
        String indexName = (String)values.get("INDEX_NAME");

        if (indexName != null)
        {
          Index index = (Index)knownIndices.get(indexName);
 
          if (index == null)
          {
              if (((Boolean)values.get("NON_UNIQUE")).booleanValue())
              {
                  index = new NonUniqueIndex();
              }
              else
              {
                  index = new UniqueIndex();
              }

              index.setName(indexName);
              knownIndices.put(indexName, index);
          }
 
          IndexColumn indexColumn = new IndexColumn();
 
          indexColumn.setName((String)values.get("COLUMN_NAME"));
          if (values.containsKey("ORDINAL_POSITION"))
          {
              indexColumn.setOrdinalPosition(((Short)values.get("ORDINAL_POSITION")).intValue());
          }
          index.addColumn(indexColumn);
        }
    }
View Full Code Here

TOP

Related Classes of org.apache.ddlutils.model.Index

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.