Examples of TriggerDescriptor


Examples of org.apache.derby.iapi.sql.dictionary.TriggerDescriptor

    // need to deal with triggers if has referencedColumns
    GenericDescriptorList tdl = dd.getTriggerDescriptors(td);
    Enumeration descs = tdl.elements();
    while (descs.hasMoreElements())
    {
      TriggerDescriptor trd = (TriggerDescriptor) descs.nextElement();
      int[] referencedCols = trd.getReferencedCols();
      if (referencedCols == null)
        continue;
      int refColLen = referencedCols.length, j;
      boolean changed = false;
      for (j = 0; j < refColLen; j++)
      {
        if (referencedCols[j] > droppedColumnPosition)
                {
          changed = true;
                }
        else if (referencedCols[j] == droppedColumnPosition)
        {
          if (cascade)
          {
                        trd.drop(lcc);
            activation.addWarning(
              StandardException.newWarning(
                                SQLState.LANG_TRIGGER_DROPPED,
                                trd.getName(), td.getName()));
          }
          else
          // we'd better give an error if don't drop it,
            // otherwsie there would be unexpected behaviors
            throw StandardException.newException(
                            SQLState.LANG_PROVIDER_HAS_DEPENDENT_OBJECT,
                            dm.getActionString(DependencyManager.DROP_COLUMN),
                            columnName, "TRIGGER",
                            trd.getName() );
          }
          break;
        }
      }
View Full Code Here

Examples of org.apache.derby.iapi.sql.dictionary.TriggerDescriptor

    //truncate is not allowed when there are enabled DELETE triggers
    GenericDescriptorList tdl = dd.getTriggerDescriptors(td);
    Enumeration descs = tdl.elements();
    while (descs.hasMoreElements())
    {
      TriggerDescriptor trd = (TriggerDescriptor) descs.nextElement();
      if (trd.listensForEvent(TriggerDescriptor.TRIGGER_EVENT_DELETE) &&
        trd.isEnabled())
      {
        throw
          StandardException.newException(SQLState.LANG_NO_TRUNCATE_ON_ENABLED_DELETE_TRIGGERS,
                           td.getName(),trd.getName())
      }
    }

    //gather information from the existing conglomerate to create new one.
    emptyHeapRow = td.getEmptyExecRow();
View Full Code Here

Examples of org.apache.derby.iapi.sql.dictionary.TriggerDescriptor

    // need to deal with triggers if has referencedColumns
    GenericDescriptorList tdl = dd.getTriggerDescriptors(td);
    Enumeration descs = tdl.elements();
    while (descs.hasMoreElements())
    {
      TriggerDescriptor trd = (TriggerDescriptor) descs.nextElement();
      int[] referencedCols = trd.getReferencedCols();
      if (referencedCols == null)
        continue;
      int refColLen = referencedCols.length, j;
      boolean changed = false;
      for (j = 0; j < refColLen; j++)
      {
        if (referencedCols[j] > columnPosition)
          changed = true;
        else if (referencedCols[j] == columnPosition)
        {
          if (cascade)
          {
            DropTriggerConstantAction.dropTriggerDescriptor(lcc, dm, dd, tc, trd, activation);
            activation.addWarning(
              StandardException.newWarning(SQLState.LANG_TRIGGER_DROPPED,
                trd.getName(), td.getName()));
          }
          else
          // we'd better give an error if don't drop it,
            // otherwsie there would be unexpected behaviors
            throw StandardException.newException(SQLState.LANG_PROVIDER_HAS_DEPENDENT_OBJECT,
                    dm.getActionString(DependencyManager.DROP_COLUMN),
                    columnInfo[ix].name, "TRIGGER",
                    trd.getName() );
          }
          break;
        }
      }
View Full Code Here

Examples of org.apache.derby.iapi.sql.dictionary.TriggerDescriptor

    //truncate is not allowed when there are enabled DELETE triggers
    GenericDescriptorList tdl = dd.getTriggerDescriptors(td);
    Enumeration descs = tdl.elements();
    while (descs.hasMoreElements())
    {
      TriggerDescriptor trd = (TriggerDescriptor) descs.nextElement();
      if (trd.listensForEvent(TriggerDescriptor.TRIGGER_EVENT_DELETE) &&
        trd.isEnabled())
      {
        throw
          StandardException.newException(SQLState.LANG_NO_TRUNCATE_ON_ENABLED_DELETE_TRIGGERS,
                           td.getName(),trd.getName())
      }
    }

    //gather information from the existing conglomerate to create new one.
    emptyHeapRow = td.getEmptyExecRow(lcc.getContextManager());
View Full Code Here

Examples of org.apache.derby.iapi.sql.dictionary.TriggerDescriptor

    // need to deal with triggers if has referencedColumns
    GenericDescriptorList tdl = dd.getTriggerDescriptors(td);
    Enumeration descs = tdl.elements();
    while (descs.hasMoreElements())
    {
      TriggerDescriptor trd = (TriggerDescriptor) descs.nextElement();
      int[] referencedCols = trd.getReferencedCols();
      if (referencedCols == null)
        continue;
      int refColLen = referencedCols.length, j;
      boolean changed = false;
      for (j = 0; j < refColLen; j++)
      {
        if (referencedCols[j] > droppedColumnPosition)
                {
          changed = true;
                }
        else if (referencedCols[j] == droppedColumnPosition)
        {
          if (cascade)
          {
                        trd.drop(lcc);
            activation.addWarning(
              StandardException.newWarning(
                                SQLState.LANG_TRIGGER_DROPPED,
                                trd.getName(), td.getName()));
          }
          else
          // we'd better give an error if don't drop it,
            // otherwsie there would be unexpected behaviors
            throw StandardException.newException(
                            SQLState.LANG_PROVIDER_HAS_DEPENDENT_OBJECT,
                            dm.getActionString(DependencyManager.DROP_COLUMN),
                            columnInfo[ix].name, "TRIGGER",
                            trd.getName() );
          }
          break;
        }
      }
View Full Code Here

Examples of org.apache.derby.iapi.sql.dictionary.TriggerDescriptor

    //truncate is not allowed when there are enabled DELETE triggers
    GenericDescriptorList tdl = dd.getTriggerDescriptors(td);
    Enumeration descs = tdl.elements();
    while (descs.hasMoreElements())
    {
      TriggerDescriptor trd = (TriggerDescriptor) descs.nextElement();
      if (trd.listensForEvent(TriggerDescriptor.TRIGGER_EVENT_DELETE) &&
        trd.isEnabled())
      {
        throw
          StandardException.newException(SQLState.LANG_NO_TRUNCATE_ON_ENABLED_DELETE_TRIGGERS,
                           td.getName(),trd.getName())
      }
    }

    //gather information from the existing conglomerate to create new one.
    emptyHeapRow = td.getEmptyExecRow();
View Full Code Here

Examples of org.apache.derby.iapi.sql.dictionary.TriggerDescriptor

    /* Drop the triggers */
    GenericDescriptorList tdl = dd.getTriggerDescriptors(td);
    Enumeration descs = tdl.elements();
    while (descs.hasMoreElements())
    {
      TriggerDescriptor trd = (TriggerDescriptor) descs.nextElement();
            trd.drop(lcc);
    }

    /* Drop all defaults */
    ColumnDescriptorList cdl = td.getColumnDescriptorList();
    int           cdlSize = cdl.size();
View Full Code Here

Examples of org.apache.derby.iapi.sql.dictionary.TriggerDescriptor

      executorLists[i] = new Vector();
    }

    for (int i = 0; i < triggerInfo.triggerArray.length; i++)
    {
      TriggerDescriptor td = triggerInfo.triggerArray[i];
      switch (td.getTriggerEventMask())
      {
        case TriggerDescriptor.TRIGGER_EVENT_INSERT:
          if (td.isBeforeTrigger())
          {
            executorLists[TriggerEvent.BEFORE_INSERT].addElement(td);
          }
          else
          {
            executorLists[TriggerEvent.AFTER_INSERT].addElement(td);
          }
          break;


        case TriggerDescriptor.TRIGGER_EVENT_DELETE:
          if (td.isBeforeTrigger())
          {
            executorLists[TriggerEvent.BEFORE_DELETE].addElement(td);
          }
          else
          {
            executorLists[TriggerEvent.AFTER_DELETE].addElement(td);
          }
          break;

        case TriggerDescriptor.TRIGGER_EVENT_UPDATE:
          if (td.isBeforeTrigger())
          {
            executorLists[TriggerEvent.BEFORE_UPDATE].addElement(td);
          }
          else
          {
            executorLists[TriggerEvent.AFTER_UPDATE].addElement(td);
          }
          break;
        default:
          if (SanityManager.DEBUG)
          {
            SanityManager.THROWASSERT("bad trigger event "+td.getTriggerEventMask());
          }
      }
    }

    for (int i = 0; i < executorLists.length; i++)
    {
      int size = executorLists[i].size();
      if (size > 0)
      {
        executors[i] = new GenericTriggerExecutor[size];
        for (int j = 0; j < size; j++)
        {
          TriggerDescriptor td = (TriggerDescriptor)executorLists[i].elementAt(j);
          executors[i][j] (td.isRowTrigger()) ?
                (GenericTriggerExecutor)new RowTriggerExecutor(tec, td, activation, lcc) :
                (GenericTriggerExecutor)new StatementTriggerExecutor(tec, td, activation, lcc);
        }
      }
    }
View Full Code Here

Examples of org.apache.derby.iapi.sql.dictionary.TriggerDescriptor

        ** For now, we don't allow bulk insert replace when
        ** there is a trigger.
        */
        if (triggerInfo != null)
        {
          TriggerDescriptor td = triggerInfo.getTriggerArray()[0];
          throw StandardException.newException(SQLState.LANG_NO_BULK_INSERT_REPLACE_WITH_TRIGGER_DURING_EXECUTION, constants.getTableName(), td.getName());
        }
      }
    }

    //System.out.println("new InsertResultSet " + sourceResultSet.getClass());
View Full Code Here

Examples of org.apache.derby.iapi.sql.dictionary.TriggerDescriptor

    // need to deal with triggers if has referencedColumns
    GenericDescriptorList tdl = dd.getTriggerDescriptors(td);
    Enumeration descs = tdl.elements();
    while (descs.hasMoreElements())
    {
      TriggerDescriptor trd = (TriggerDescriptor) descs.nextElement();
      int[] referencedCols = trd.getReferencedCols();
      if (referencedCols == null)
        continue;
      int refColLen = referencedCols.length, j;
      boolean changed = false;
      for (j = 0; j < refColLen; j++)
      {
        if (referencedCols[j] > droppedColumnPosition)
                {
          changed = true;
                }
        else if (referencedCols[j] == droppedColumnPosition)
        {
          if (cascade)
          {
                        trd.drop(lcc);
            activation.addWarning(
              StandardException.newWarning(
                                SQLState.LANG_TRIGGER_DROPPED,
                                trd.getName(), td.getName()));
          }
          else
          // we'd better give an error if don't drop it,
            // otherwsie there would be unexpected behaviors
            throw StandardException.newException(
                            SQLState.LANG_PROVIDER_HAS_DEPENDENT_OBJECT,
                            dm.getActionString(DependencyManager.DROP_COLUMN),
                            columnName, "TRIGGER",
                            trd.getName() );
          }
          break;
        }
      }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.