Beispiel #1
0
 public override Statement EmitStatement(EmitMode mode)
 {
     if (DataType.Columns.Count > 0)
     {
         RenameExpression expression = new RenameExpression();
         expression.Expression = (Expression)Nodes[0].EmitStatement(mode);
         for (int index = 0; index < DataType.Columns.Count; index++)
         {
             expression.Expressions.Add
             (
                 new RenameColumnExpression
                 (
                     Schema.Object.EnsureRooted(SourceTableType.Columns[index].Name),
                     DataType.Columns[index].Name,
                     TableVar.Columns[index].MetaData == null ?
                     null :
                     TableVar.Columns[index].MetaData.Copy()
                 )
             );
         }
         expression.Modifiers = Modifiers;
         return(expression);
     }
     else
     {
         return(Nodes[0].EmitStatement(mode));
     }
 }
Beispiel #2
0
 public override Statement EmitStatement(EmitMode mode)
 {
     if (mode == EmitMode.ForStorage)
     {
         SaveObjectID();
     }
     else
     {
         RemoveObjectID();
     }
     try
     {
         CreateRoleStatement statement = new CreateRoleStatement();
         statement.RoleName = Schema.Object.EnsureRooted(Name);
         statement.MetaData = MetaData == null ? null : MetaData.Copy();
         return(statement);
     }
     finally
     {
         if (mode == EmitMode.ForStorage)
         {
             RemoveObjectID();
         }
     }
 }
Beispiel #3
0
        public override Statement EmitDropStatement(EmitMode mode)
        {
            DropRoleStatement statement = new DropRoleStatement();

            statement.RoleName = Schema.Object.EnsureRooted(Name);
            return(statement);
        }
Beispiel #4
0
 public DefaultDefinition EmitDefinition(EmitMode mode)
 {
     if (mode == EmitMode.ForStorage)
     {
         SaveObjectID();
     }
     else
     {
         RemoveObjectID();
     }
     try
     {
         DefaultDefinition statement = new DefaultDefinition();
         statement.MetaData   = MetaData == null ? null : MetaData.Copy();
         statement.Expression = (Expression)Node.EmitStatement(mode);
         return(statement);
     }
     finally
     {
         if (mode == EmitMode.ForStorage)
         {
             RemoveObjectID();
         }
     }
 }
Beispiel #5
0
 public override Statement EmitStatement(EmitMode mode)
 {
     if (mode == EmitMode.ForStorage)
     {
         SaveObjectID();
     }
     else
     {
         RemoveObjectID();
     }
     try
     {
         AlterTableVarStatement statement = (TableVar is BaseTableVar) ? (AlterTableVarStatement) new AlterTableStatement() : (AlterTableVarStatement) new AlterViewStatement();
         statement.TableVarName = TableVar.Name;
         statement.CreateConstraints.Add(EmitDefinition(mode));
         return(statement);
     }
     finally
     {
         if (mode == EmitMode.ForStorage)
         {
             RemoveObjectID();
         }
     }
 }
Beispiel #6
0
 public ConstraintDefinition EmitDefinition(EmitMode mode)
 {
     if (mode == EmitMode.ForStorage)
     {
         SaveObjectID();
         SaveIsGenerated();
         SaveGeneratorID();
     }
     else
     {
         RemoveObjectID();
         RemoveIsGenerated();
         RemoveGeneratorID();
     }
     try
     {
         ConstraintDefinition statement = new ConstraintDefinition();
         statement.ConstraintName = Name;
         statement.MetaData       = MetaData == null ? null : MetaData.Copy();
         statement.Expression     = (Expression)Node.EmitStatement(mode);
         return(statement);
     }
     finally
     {
         if (mode == EmitMode.ForStorage)
         {
             RemoveObjectID();
             RemoveIsGenerated();
             RemoveGeneratorID();
         }
     }
 }
Beispiel #7
0
        public override Statement EmitStatement(EmitMode mode)
        {
            CallExpression expression = new CallExpression();

            expression.Identifier = Schema.Object.EnsureRooted(_operator.OperatorName);
            Expression sourceExpression = (Expression)Nodes[0].EmitStatement(mode);

            if (_aggregateColumnIndexes.Length > 0)
            {
                if (_aggregateColumnIndexes.Length == 0)
                {
                    expression.Expressions.Add(new ColumnExtractorExpression(((TableNode)Nodes[0]).DataType.Columns[_aggregateColumnIndexes[0]].Name, sourceExpression));
                }
                else
                {
                    ColumnExtractorExpression columnExpression = new ColumnExtractorExpression();
                    columnExpression.Expression = sourceExpression;
                    for (int index = 0; index < _aggregateColumnIndexes.Length; index++)
                    {
                        columnExpression.Columns.Add(new ColumnExpression(((TableNode)Nodes[0]).DataType.Columns[_aggregateColumnIndexes[index]].Name));
                    }
                    expression.Expressions.Add(columnExpression);
                }
            }
            else
            {
                expression.Expressions.Add(sourceExpression);
            }
            expression.Modifiers = Modifiers;
            return(expression);
        }
Beispiel #8
0
 // Statement
 public override Statement EmitStatement(EmitMode mode)
 {
     if (_dataType is Schema.RowType)
     {
         RowSelectorExpression expression = new RowSelectorExpression();
         if (_specifiedRowType != null)
         {
             expression.TypeSpecifier = DataType.EmitSpecifier(mode);
         }
         Schema.IRowType rowType = _specifiedRowType != null ? _specifiedRowType : DataType;
         for (int index = 0; index < rowType.Columns.Count; index++)
         {
             expression.Expressions.Add(new NamedColumnExpression((Expression)Nodes[index].EmitStatement(mode), rowType.Columns[index].Name));
         }
         expression.Modifiers = Modifiers;
         return(expression);
     }
     else
     {
         EntrySelectorExpression expression = new EntrySelectorExpression();
         for (int index = 0; index < DataType.Columns.Count; index++)
         {
             expression.Expressions.Add(new NamedColumnExpression((Expression)Nodes[index].EmitStatement(mode), DataType.Columns[index].Name));
         }
         expression.Modifiers = Modifiers;
         return(expression);
     }
 }
Beispiel #9
0
        //public override int CatalogObjectID { get { return FTableVar == null ? -1 : FTableVar.ID; } }

        //public override int ParentObjectID { get { return FTableVar == null ? -1 : FTableVar.ID; } }

        public override Statement EmitStatement(EmitMode mode)
        {
            if (mode == EmitMode.ForStorage)
            {
                SaveObjectID();
            }
            else
            {
                RemoveObjectID();
            }
            try
            {
                AttachStatement statement = new AttachStatement();
                statement.OperatorName             = Schema.Object.EnsureRooted(_operator.OperatorName);
                statement.EventSourceSpecifier     = new ObjectEventSourceSpecifier(Schema.Object.EnsureRooted(_tableVar.Name));
                statement.EventSpecifier           = new EventSpecifier();
                statement.EventSpecifier.EventType = _eventType;
                statement.MetaData = MetaData == null ? null : MetaData.Copy();
                return(statement);
            }
            finally
            {
                if (mode == EmitMode.ForStorage)
                {
                    RemoveObjectID();
                }
            }
        }
Beispiel #10
0
        public override Statement EmitDropStatement(EmitMode mode)
        {
            DropReferenceStatement statement = new DropReferenceStatement();

            statement.ReferenceName = Name;
            return(statement);
        }
Beispiel #11
0
        public override Statement EmitDropStatement(EmitMode mode)
        {
            AlterScalarTypeStatement statement = new AlterScalarTypeStatement();

            statement.ScalarTypeName = Schema.Object.EnsureRooted(_scalarType.Name);
            statement.Default        = new D4.DropDefaultDefinition();
            return(statement);
        }
Beispiel #12
0
        public override Statement EmitDropStatement(EmitMode mode)
        {
            AlterScalarTypeStatement statement = new AlterScalarTypeStatement();

            statement.ScalarTypeName = Schema.Object.EnsureRooted(_scalarType.Name);
            statement.DropConstraints.Add(new DropConstraintDefinition(Name));
            return(statement);
        }
Beispiel #13
0
        public TypeSpecifier EmitSpecifier(EmitMode mode)
        {
            CursorTypeSpecifier specifier = new CursorTypeSpecifier();

            specifier.IsGeneric     = IsGeneric;
            specifier.TypeSpecifier = TableType == null ? null : TableType.EmitSpecifier(mode);
            return(specifier);
        }
Beispiel #14
0
        public TypeSpecifier EmitSpecifier(EmitMode mode)
        {
            ListTypeSpecifier specifier = new ListTypeSpecifier();

            specifier.IsGeneric     = IsGeneric;
            specifier.TypeSpecifier = ElementType == null ? null : ElementType.EmitSpecifier(mode);
            return(specifier);
        }
Beispiel #15
0
        public TypeSpecifier EmitSpecifier(EmitMode mode)
        {
            RowTypeSpecifier specifier = new RowTypeSpecifier();

            specifier.IsGeneric = IsGeneric;
            EmitColumns(mode, specifier);
            return(specifier);
        }
Beispiel #16
0
        public override Statement EmitDefinition(EmitMode mode)
        {
            ConstraintDefinition statement = new ConstraintDefinition();

            statement.ConstraintName = Name;
            statement.MetaData       = MetaData == null ? null : MetaData.Copy();
            statement.Expression     = (Expression)Node.EmitStatement(mode);
            return(statement);
        }
Beispiel #17
0
        public override Statement EmitStatement(EmitMode mode)
        {
            DifferenceExpression expression = new DifferenceExpression();

            expression.LeftExpression  = (Expression)Nodes[0].EmitStatement(mode);
            expression.RightExpression = (Expression)Nodes[1].EmitStatement(mode);
            expression.Modifiers       = Modifiers;
            return(expression);
        }
Beispiel #18
0
        public override Statement EmitDropStatement(EmitMode mode)
        {
            DetachStatement statement = new DetachStatement();

            statement.OperatorName             = Schema.Object.EnsureRooted(_operator.OperatorName);
            statement.EventSourceSpecifier     = new ObjectEventSourceSpecifier(Schema.Object.EnsureRooted(_tableVar.Name));
            statement.EventSpecifier           = new EventSpecifier();
            statement.EventSpecifier.EventType = _eventType;
            return(statement);
        }
Beispiel #19
0
        public override Statement EmitDropStatement(EmitMode mode)
        {
            AlterTableVarStatement statement = _tableVar is Schema.BaseTableVar ? (AlterTableVarStatement) new AlterTableStatement() : new AlterViewStatement();

            statement.TableVarName = Schema.Object.EnsureRooted(_tableVar.Name);
            DropConstraintDefinition definition = new DropConstraintDefinition(Name);

            statement.DropConstraints.Add(definition);
            return(statement);
        }
Beispiel #20
0
        public override Statement EmitStatement(EmitMode mode)
        {
            AggregateExpression expression = new AggregateExpression();

            expression.Expression = (Expression)_sourceNode.EmitStatement(mode);
            expression.ByColumns.AddRange(_columns);
            expression.ComputeColumns.AddRange(_computeColumns);
            expression.Modifiers = Modifiers;
            return(expression);
        }
Beispiel #21
0
 public void EmitStatement(EmitMode mode, D4.OperatorBlock block)
 {
     if (ClassDefinition != null)
     {
         block.ClassDefinition = (ClassDefinition)ClassDefinition.Clone();
     }
     else
     {
         block.Block = BlockNode.EmitStatement(mode);
     }
 }
Beispiel #22
0
        public Statement EmitColumnHandler(TableVar tableVar, TableVarColumn column, EmitMode mode)
        {
            AttachStatement statement = new AttachStatement();

            statement.MetaData                 = MetaData;
            statement.OperatorName             = _operator.OperatorName;
            statement.EventSourceSpecifier     = new ColumnEventSourceSpecifier(tableVar.Name, column.Name);
            statement.EventSpecifier           = new EventSpecifier();
            statement.EventSpecifier.EventType = _eventType;
            return(statement);
        }
Beispiel #23
0
        public Statement EmitScalarTypeHandler(ScalarType scalarType, EmitMode mode)
        {
            AttachStatement statement = new AttachStatement();

            statement.MetaData                 = MetaData;
            statement.OperatorName             = _operator.OperatorName;
            statement.EventSourceSpecifier     = new ObjectEventSourceSpecifier(scalarType.Name);
            statement.EventSpecifier           = new EventSpecifier();
            statement.EventSpecifier.EventType = _eventType;
            return(statement);
        }
Beispiel #24
0
        public override Statement EmitStatement(EmitMode mode)
        {
            if (mode == EmitMode.ForStorage)
            {
                SaveObjectID();
            }
            else
            {
                RemoveObjectID();
            }
            try
            {
                CreateServerStatement statement = new CreateServerStatement();
                statement.ServerName = Schema.Object.EnsureRooted(Name);
                statement.MetaData   = MetaData == null ? null : MetaData.Copy();

                if (_users.Count > 0)
                {
                    Block block = new Block();
                    block.Statements.Add(statement);
                    foreach (ServerLinkUser user in _users.Values)
                    {
                        block.Statements.Add
                        (
                            new ExpressionStatement
                            (
                                new CallExpression
                                (
                                    "CreateServerLinkUserWithEncryptedPassword",
                                    new Expression[]
                        {
                            new ValueExpression(user.UserID),
                            new CallExpression("Name", new Expression[] { new ValueExpression(user.ServerLink.Name) }),
                            new ValueExpression(user.ServerLinkUserID),
                            new ValueExpression(user.ServerLinkPassword)
                        }
                                )
                            )
                        );
                    }

                    return(block);
                }

                return(statement);
            }
            finally
            {
                if (mode == EmitMode.ForStorage)
                {
                    RemoveObjectID();
                }
            }
        }
Beispiel #25
0
        public override Statement EmitStatement(EmitMode mode)
        {
            ProjectExpression expression = new ProjectExpression();

            expression.Expression = (Expression)Nodes[0].EmitStatement(mode);
            foreach (Schema.TableVarColumn column in TableVar.Columns)
            {
                expression.Columns.Add(new ColumnExpression(Schema.Object.EnsureRooted(column.Name)));
            }
            expression.Modifiers = Modifiers;
            return(expression);
        }
Beispiel #26
0
        protected void EmitColumns(EmitMode mode, RowTypeSpecifier specifier)
        {
            NamedTypeSpecifier columnSpecifier;

            foreach (Column column in Columns)
            {
                columnSpecifier               = new NamedTypeSpecifier();
                columnSpecifier.Identifier    = column.Name;
                columnSpecifier.TypeSpecifier = column.DataType.EmitSpecifier(mode);
                specifier.Columns.Add(columnSpecifier);
            }
        }
Beispiel #27
0
        public override Statement EmitStatement(EmitMode mode)
        {
            ExtendExpression expression = new ExtendExpression();

            expression.Expression = (Expression)Nodes[0].EmitStatement(mode);
            for (int index = ExtendColumnOffset; index < DataType.Columns.Count; index++)
            {
                expression.Expressions.Add(new NamedColumnExpression((Expression)Nodes[index - ExtendColumnOffset + 1].EmitStatement(mode), DataType.Columns[index].Name));
            }
            expression.Modifiers = Modifiers;
            return(expression);
        }
Beispiel #28
0
        public override Statement EmitStatement(EmitMode mode)
        {
            AlterTableStatement statement = new AlterTableStatement();

            statement.TableVarName = Schema.Object.EnsureRooted(_tableVarColumn.TableVar.Name);
            AlterColumnDefinition definition = new AlterColumnDefinition();

            definition.ColumnName = _tableVarColumn.Name;
            definition.Default    = EmitDefinition(mode);
            statement.AlterColumns.Add(definition);
            return(statement);
        }
Beispiel #29
0
        public override Statement EmitStatement(EmitMode mode)
        {
            RedefineExpression expression = new RedefineExpression();

            expression.Expression = (Expression)Nodes[0].EmitStatement(mode);
            for (int index = 0; index < _redefineColumnOffsets.Length; index++)
            {
                expression.Expressions.Add(new NamedColumnExpression((Expression)Nodes[index + 1].EmitStatement(mode), DataType.Columns[_redefineColumnOffsets[index]].Name));
            }
            expression.Modifiers = Modifiers;
            return(expression);
        }
Beispiel #30
0
 public override Statement EmitStatement(EmitMode mode)
 {
     if (_operator.IsBuiltin && (NodeCount > 0) && (NodeCount <= 2))
     {
         Expression expression;
         if (Nodes.Count == 1)
         {
             expression =
                 new UnaryExpression
                 (
                     _operator.OperatorName,
                     _operator.Operands[0].Modifier == Modifier.Var ?
                     new ParameterExpression(Modifier.Var, (Expression)Nodes[0].EmitStatement(mode)) :
                     (Expression)Nodes[0].EmitStatement(mode)
                 );
         }
         else
         {
             expression =
                 new BinaryExpression
                 (
                     _operator.Operands[0].Modifier == Modifier.Var ?
                     new ParameterExpression(Modifier.Var, (Expression)Nodes[0].EmitStatement(mode)) :
                     (Expression)Nodes[0].EmitStatement(mode),
                     _operator.OperatorName,
                     _operator.Operands[1].Modifier == Modifier.Var ?
                     new ParameterExpression(Modifier.Var, (Expression)Nodes[1].EmitStatement(mode)) :
                     (Expression)Nodes[1].EmitStatement(mode)
                 );
         }
         expression.Modifiers = Modifiers;
         return(expression);
     }
     else
     {
         CallExpression expression = new CallExpression();
         expression.Identifier = Schema.Object.EnsureRooted(_operator.OperatorName);
         for (int index = 0; index < NodeCount; index++)
         {
             if (_operator.Operands[index].Modifier == Modifier.Var)
             {
                 expression.Expressions.Add(new ParameterExpression(Modifier.Var, (Expression)Nodes[index].EmitStatement(mode)));
             }
             else
             {
                 expression.Expressions.Add((Expression)Nodes[index].EmitStatement(mode));
             }
         }
         expression.Modifiers = Modifiers;
         return(expression);
     }
 }