Package nexj.core.meta.persistence.sql

Examples of nexj.core.meta.persistence.sql.Table


    * @param column Drop all indexes containing this column.
    * @param bUpdate Update the column's table definition with removed indexes.
    */
   protected void dropIndexes(Column column, boolean bUpdate)
   {
      Table table = column.getTable();

      for (int i = table.getIndexCount() - 1; i >= 0; --i) // backwards due to index removal
      {
         Index index = table.getIndex(i);

         if (index.findIndexColumn(column) != null)
         {
            dropIndex(index);

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


    * @param index The index.
    * @return The index tablespace name. Can be null.
    */
   protected String getIndexspace(Index index)
   {
      Table table = index.getTable();

      String sName = table.getIndexspaceName();

      if (sName == null)
      {
         sName = table.getTablespaceName();
      }

      if (sName == null)
      {
         sName = ((RelationalDatabase)table.getSchema().getDataSource()).getIndexspaceName();
      }

      if (sName == null)
      {
         sName = ((RelationalDatabase)table.getSchema().getDataSource()).getTablespaceName();
      }

      if (sName == null)
      {
         sName = table.getSchema().getIndexspaceName();
      }

      if (sName == null)
      {
         sName = table.getSchema().getTablespaceName();
      }

      if (DEFAULT_TABLESPACE.equals(sName))
      {
         return null;
View Full Code Here

      Lookup2D/*<String, Integer, List<Table>>*/ tableMap, RelationalSchema schema)
   {
      for (Iterator/*<Table>*/ itr = schema.getTableIterator(); itr.hasNext();)
      {
         int nTable = 0;
         Table newTable = (Table)itr.next();
         String sTable = newTable.getQuotedName();
         List/*<Table>*/ list =
            (ArrayList)tableMap.get(sTable, Primitive.createInteger(newTable.getType()));
         Table mapTable = (list == null) ? null : (Table)list.get(nTable);

         // go through all similarly named tables and see if drop script will match
         while (mapTable != null)
         {
            Table successor = getDropSuccessor(mapTable, newTable);

            if (successor == null)
            {
               mapTable = (list.size() > ++nTable) ? (Table)list.get(nTable) : null;

View Full Code Here

      for (int i = 0; i < objArray.length; ++i)
      {
         createObject(objArray[i]);
      }

      Table versionTable = schema.getVersionTable();

      // If the version table exists
      if (versionTable != null && versionTable.getType() == Table.MANAGED)
      {
         StringBuffer buf = new StringBuffer(64);
         Metadata metadata = schema.getMetadata();
         SchemaVersion version = new SchemaVersion();
View Full Code Here

         createTable(target);

         return; // nothing to do
      }

      Table original = current;

      if (target.getQuotedName().equals(current.getQuotedName())) // rename table before recreation
      {
         Table tmpTable = current.cloneTemporary(); // need different object for renameTable()

         for (int i = tmpTable.getIndexCount() - 1; i >= 0; --i) // backwards due to index removal
         {
            Index index = tmpTable.getIndex(i);

            if (target.findIndex(index.getName()) != null) // only discard index collisions
            {
               discardIndex(index, true); // discard index to avoid name clashes
            }
         }

         tmpTable.setName(current.getFullName(getOwner(), "$", false));
         renameTable(tmpTable, current); // move original table out of the way
         current = tmpTable;
      }

      createTable(target); // create table according to new definition
View Full Code Here

    * @param dstColumn The destination column.
    * @param srcColumn The source column.
    */
   protected void copyColumn(Column dstColumn, Column srcColumn)
   {
      Table table = dstColumn.getTable();

      assert ObjUtil.equal(table.getName(), srcColumn.getTable().getName());

      if (table.getType() == Table.MANAGED)
      {
         StringBuffer buf = new StringBuffer(128);

         buf.append("update ");
         buf.append(table.getFullName(getOwner()));

         buf.append(" set ");
         appendColumnAssignment(buf, dstColumn, srcColumn);

         m_appender.appendSQL(buf.toString());
View Full Code Here

    * @param newColumn The new column.
    * @param oldColumn The old column.
    */
   protected void alterColumn(Column newColumn, Column oldColumn)
   {
      Table table = newColumn.getTable();

      if (table.getType() == Table.MANAGED)
      {
         if (!isImplicitConversion(oldColumn, newColumn))
         {
            recreateTable(newColumn.getTable(), oldColumn.getTable(), null);

            return;
         }

         StringBuffer buf = new StringBuffer(128);

         buf.append("alter table ");
         buf.append(table.getFullName(getOwner()));
         buf.append(getAlterColumnToken());
         appendColumnAlteration(buf, newColumn, oldColumn, null);

         m_appender.appendSQL(buf.toString());
      }
View Full Code Here

    * Appends SQL for dropping a column to the SQL appender.
    * @param column The column to drop.
    */
   protected void dropColumn(Column column)
   {
      Table table = column.getTable();

      if (table.getType() == Table.MANAGED)
      {
         StringBuffer buf = new StringBuffer(64);

         buf.append("alter table ");
         buf.append(table.getFullName(getOwner()));
         buf.append(getDropColumnToken());
         appendColumnName(buf, column, getDropColumnToken());

         m_appender.appendSQL(buf.toString());
      }
View Full Code Here

    * @param buf The destination string buffer.
    * @param index The primary key index.
    */
   protected void appendPrimaryKey(StringBuffer buf, Index index)
   {
      Table table = index.getTable();

      buf.append("constraint ");
      buf.append(getIndexName(index.getName(), table.getPrefix(), table.getOwnerName(), true, true));
      buf.append(" primary key");
      appendPrimaryKeyPrefix(buf, index);
      appendIndexColumns(buf, index);
      appendPrimaryKeySuffix(buf, index);
   }
View Full Code Here

    * Appends an index creation SQL to the SQL appender.
    * @param index The index object.
    */
   protected void createIndex(Index index)
   {
      Table table = index.getTable();

      if (index.getType() >= Index.BTREE && isIndexable(table))
      {
         StringBuffer buf = new StringBuffer(128);

         if (!isConstraint(index))
         {
            buf.append("create ");

            if (index.isUnique())
            {
               buf.append("unique ");
            }

            appendIndexPrefix(buf, index);

            buf.append("index ");
            buf.append(getIndexName(index, false, true));
            buf.append(" on ");
            buf.append(table.getFullName(getOwner()));
            appendIndexColumns(buf, index);
            appendIndexSuffix(buf, index);

            m_appender.appendSQL(buf.toString());
            buf.setLength(0);
         }
         else if (isPrimaryKey(index))
         {
            buf.append("alter table ");
            buf.append(table.getFullName(getOwner()));
            buf.append(" add ");
            appendPrimaryKey(buf, index);
  
            m_appender.appendSQL(buf.toString());
         }
View Full Code Here

TOP

Related Classes of nexj.core.meta.persistence.sql.Table

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.