Package org.apache.derby.iapi.sql.depend

Examples of org.apache.derby.iapi.sql.depend.ProviderList


            //
            // Generated columns may depend on functions mentioned in their
            // generation clauses.
            //
            ProviderList apl = null;
            ProviderInfo[]  providerInfos = null;
      if ( coldef.hasGenerationClause() )
      {
        apl = coldef.getGenerationClauseNode().getAuxiliaryProviderList();
      }
            if (apl != null && apl.size() > 0)
            {
                DependencyManager dm = getDataDictionary().getDependencyManager();
                providerInfos = dm.getPersistentProviderInfos(apl);
            }
View Full Code Here


         * for the check constraint, "push" it on the compiler context
         * by swapping it with the current auxiliary provider list
         * and the "pop" it when we're done by restoring the old
         * auxiliary provider list.
         */
        ProviderList apl = new ProviderList();

        ProviderList prevAPL = cc.getCurrentAuxiliaryProviderList();
        cc.setCurrentAuxiliaryProviderList(apl);

        // Tell the compiler context to only allow deterministic nodes
        cc.setReliability( CompilerContext.CHECK_CONSTRAINT );
        checkTree = checkTree.bindExpression(fromList, (SubqueryList) null,
View Full Code Here

            generationClauseNode = cdn.getGenerationClauseNode();

      // bind the generation clause
      final int previousReliability = cc.getReliability();
            ProviderList prevAPL = cc.getCurrentAuxiliaryProviderList();
      try
      {
        /* Each generation clause can have its own set of dependencies.
         * These dependencies need to be shared with the prepared
         * statement as well.  We create a new auxiliary provider list
         * for the generation clause, "push" it on the compiler context
         * by swapping it with the current auxiliary provider list
         * and the "pop" it when we're done by restoring the old
         * auxiliary provider list.
         */
        ProviderList apl = new ProviderList();

        cc.setCurrentAuxiliaryProviderList(apl);

        // Tell the compiler context to forbid subqueries and
        // non-deterministic functions.
        cc.setReliability( CompilerContext.GENERATION_CLAUSE_RESTRICTION );
        generationTree = generationClauseNode.bindExpression(fromList, (SubqueryList) null,
                     aggregateVector);

                //
                // If the user did not declare a type for this column, then the column type defaults
                // to the type of the generation clause.
                // However, if the user did declare a type for this column, then the
                // type of the generation clause must be assignable to the declared
                // type.
                //
                DataTypeDescriptor  generationClauseType = generationTree.getTypeServices();
                DataTypeDescriptor  declaredType = cdn.getType();
                if ( declaredType == null )
                {
                    cdn.setType( generationClauseType );

                    //
                    // Poke the type into the FromTable so that constraints will
                    // compile.
                    //
                    tableColumns.getResultColumn( cdn.getColumnName(), false ).setType( generationClauseType );

                    //
                    // We skipped these steps earlier on because we didn't have
                    // a datatype. Now that we have a datatype, revisit these
                    // steps.
                    //
                    setCollationTypeOnCharacterStringColumn( sd, cdn );
                    cdn.checkUserType( table.getTableDescriptor() );
                }
                else
                {
                    TypeId  declaredTypeId = declaredType.getTypeId();
                    TypeId  resolvedTypeId = generationClauseType.getTypeId();

                    if ( !getTypeCompiler( resolvedTypeId ).convertible( declaredTypeId, false ) )
                    {
                        throw StandardException.newException
                            ( SQLState.LANG_UNASSIGNABLE_GENERATION_CLAUSE, cdn.getName(), resolvedTypeId.getSQLTypeName() );
                    }
                }

        // no aggregates, please
        if (!aggregateVector.isEmpty())
        {
          throw StandardException.newException( SQLState.LANG_AGGREGATE_IN_GENERATION_CLAUSE, cdn.getName());
        }
       
        /* Save the APL off in the constraint node */
        if (apl.size() > 0)
        {
          generationClauseNode.setAuxiliaryProviderList(apl);
        }

      }
View Full Code Here

                         constraintDN.getDropBehavior(),
                                                 constraintDN.getVerifyType());
      }
      else
      {
        ProviderList apl = constraintDN.getAuxiliaryProviderList();
        ConstraintInfo refInfo = null;
        ProviderInfo[]  providerInfos = null;

        if (constraintDN instanceof FKConstraintDefinitionNode)
        {
          refInfo = ((FKConstraintDefinitionNode)constraintDN).getReferencedConstraintInfo();
        }       

        /* Create the ProviderInfos, if the constraint is dependent on any Providers */
        if (apl != null && apl.size() > 0)
        {
          /* Get all the dependencies for the current statement and transfer
           * them to this view.
           */
          DependencyManager dm = dd.getDependencyManager();
View Full Code Here

                actionNode.getOffsetOrderedNodes(TableName.class);
        SortedSet<TableName> whenNames = (whenClause != null)
                ? whenClause.getOffsetOrderedNodes(TableName.class)
                : null;

        ProviderList prevAPL =
                compilerContext.getCurrentAuxiliaryProviderList();
        ProviderList apl = new ProviderList();

    lcc.pushTriggerTable(triggerTableDescriptor);
    try
   
            compilerContext.setCurrentAuxiliaryProviderList(apl);
View Full Code Here

        ContextManager      cm) throws StandardException
  {
        FromList fromList =
                new FromList(optimizerFactory.doJoinOrderOptimization(), cm);

    ProviderList   prevAPL = compilerContext.getCurrentAuxiliaryProviderList();
    ProviderList   apl = new ProviderList();

    try {
      compilerContext.setCurrentAuxiliaryProviderList(apl);
      compilerContext.pushCurrentPrivType(Authorizer.SELECT_PRIV);
View Full Code Here

        Defaults cannot have dependencies as they
        should just be constants. Code used to exist
        to handle dependencies in defaults, now this
        is under sanity to ensure no dependencies exist.
       */
      ProviderList apl = null;
      ProviderList prevAPL = null;

      if (SanityManager.DEBUG) {
        apl = new ProviderList();
        prevAPL = cc.getCurrentAuxiliaryProviderList();
        cc.setCurrentAuxiliaryProviderList(apl);
      }
     
      // Tell the compiler context to only allow deterministic nodes
View Full Code Here

            //
            // Generated columns may depend on functions mentioned in their
            // generation clauses.
            //
            ProviderList apl = null;
            ProviderInfo[]  providerInfos = null;
      if ( coldef.hasGenerationClause() )
      {
        apl = coldef.getGenerationClauseNode().getAuxiliaryProviderList();
      }
            if (apl != null && apl.size() > 0)
            {
                DependencyManager dm = getDataDictionary().getDependencyManager();
                providerInfos = dm.getPersistentProviderInfos(apl);
            }
View Full Code Here

         * for the check constraint, "push" it on the compiler context
         * by swapping it with the current auxiliary provider list
         * and the "pop" it when we're done by restoring the old
         * auxiliary provider list.
         */
        ProviderList apl = new ProviderList();

        ProviderList prevAPL = cc.getCurrentAuxiliaryProviderList();
        cc.setCurrentAuxiliaryProviderList(apl);

        // Tell the compiler context to only allow deterministic nodes
        cc.setReliability( CompilerContext.CHECK_CONSTRAINT );
                checkTree = checkTree.bindExpression(
View Full Code Here

            generationClauseNode = cdn.getGenerationClauseNode();

      // bind the generation clause
      final int previousReliability = cc.getReliability();
            ProviderList prevAPL = cc.getCurrentAuxiliaryProviderList();
      try
      {
        /* Each generation clause can have its own set of dependencies.
         * These dependencies need to be shared with the prepared
         * statement as well.  We create a new auxiliary provider list
         * for the generation clause, "push" it on the compiler context
         * by swapping it with the current auxiliary provider list
         * and the "pop" it when we're done by restoring the old
         * auxiliary provider list.
         */
        ProviderList apl = new ProviderList();

        cc.setCurrentAuxiliaryProviderList(apl);

        // Tell the compiler context to forbid subqueries and
        // non-deterministic functions.
        cc.setReliability( CompilerContext.GENERATION_CLAUSE_RESTRICTION );
                generationTree = generationClauseNode.bindExpression(
                        fromList, (SubqueryList) null, aggregates);

                SelectNode.checkNoWindowFunctions(generationClauseNode, "generation clause");

                //
                // If the user did not declare a type for this column, then the column type defaults
                // to the type of the generation clause.
                // However, if the user did declare a type for this column, then the
                // type of the generation clause must be assignable to the declared
                // type.
                //
                DataTypeDescriptor  generationClauseType = generationTree.getTypeServices();
                DataTypeDescriptor  declaredType = cdn.getType();
                if ( declaredType == null )
                {
                    cdn.setType( generationClauseType );

                    //
                    // Poke the type into the FromTable so that constraints will
                    // compile.
                    //
                    tableColumns.getResultColumn( cdn.getColumnName(), false ).setType( generationClauseType );

                    //
                    // We skipped these steps earlier on because we didn't have
                    // a datatype. Now that we have a datatype, revisit these
                    // steps.
                    //
                    setCollationTypeOnCharacterStringColumn( sd, cdn );
                    cdn.checkUserType( table.getTableDescriptor() );
                }
                else
                {
                    TypeId  declaredTypeId = declaredType.getTypeId();
                    TypeId  resolvedTypeId = generationClauseType.getTypeId();

                    if ( !getTypeCompiler( resolvedTypeId ).convertible( declaredTypeId, false ) )
                    {
                        throw StandardException.newException
                            ( SQLState.LANG_UNASSIGNABLE_GENERATION_CLAUSE, cdn.getName(), resolvedTypeId.getSQLTypeName() );
                    }
                }

        // no aggregates, please
                if (!aggregates.isEmpty())
        {
          throw StandardException.newException( SQLState.LANG_AGGREGATE_IN_GENERATION_CLAUSE, cdn.getName());
        }
       
        /* Save the APL off in the constraint node */
        if (apl.size() > 0)
        {
          generationClauseNode.setAuxiliaryProviderList(apl);
        }

      }
View Full Code Here

TOP

Related Classes of org.apache.derby.iapi.sql.depend.ProviderList

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.