Example #1
0
        internal Table(Command command, TableMD tableMetadata, int tableId)
        {
            m_tableMetadata      = tableMetadata;
            m_columns            = Command.CreateVarList();
            m_keys               = command.CreateVarVec();
            m_nonnullableColumns = command.CreateVarVec();
            m_tableId            = tableId;

            var columnVarMap = new Dictionary <string, ColumnVar>();

            foreach (var c in tableMetadata.Columns)
            {
                var v = command.CreateColumnVar(this, c);
                columnVarMap[c.Name] = v;
                if (!c.IsNullable)
                {
                    m_nonnullableColumns.Set(v);
                }
            }

            foreach (var c in tableMetadata.Keys)
            {
                var v = columnVarMap[c.Name];
                m_keys.Set(v);
            }

            m_referencedColumns = command.CreateVarVec(m_columns);
        }
Example #2
0
        internal virtual ProjectOp CreateProjectOp(Var v)
        {
            VarVec varVec = this.CreateVarVec();

            varVec.Set(v);
            return(new ProjectOp(varVec));
        }
Example #3
0
        internal virtual VarVec CreateVarVec(Var v)
        {
            VarVec varVec = this.CreateVarVec();

            varVec.Set(v);
            return(varVec);
        }
Example #4
0
        internal virtual ExceptOp CreateExceptOp(VarMap leftMap, VarMap rightMap)
        {
            VarVec varVec = this.CreateVarVec();

            foreach (Var key in leftMap.Keys)
            {
                varVec.Set(key);
            }
            return(new ExceptOp(varVec, leftMap, rightMap));
        }
Example #5
0
        private static VarVec CreateVarVec(params int[] bits)
        {
            var command = new Mock <Command>();
            var vec     = new VarVec(command.Object);

            bits.Each(b =>
            {
                var v = CreateVar(b);
                vec.Set(v);
                command.Setup(m => m.GetVar(b)).Returns(v);
            });
            return(vec);
        }
Example #6
0
        internal virtual UnionAllOp CreateUnionAllOp(
            VarMap leftMap,
            VarMap rightMap,
            Var branchDiscriminator)
        {
            VarVec varVec = this.CreateVarVec();

            foreach (Var key in leftMap.Keys)
            {
                varVec.Set(key);
            }
            return(new UnionAllOp(varVec, leftMap, rightMap, branchDiscriminator));
        }
        internal VarVec Remap(Dictionary <Var, Var> varMap)
        {
            VarVec varVec = this.m_command.CreateVarVec();

            foreach (Var key in this)
            {
                Var v;
                if (!varMap.TryGetValue(key, out v))
                {
                    v = key;
                }
                varVec.Set(v);
            }
            return(varVec);
        }
Example #8
0
        internal virtual Node BuildProject(
            Node inputNode,
            IEnumerable <Var> inputVars,
            IEnumerable <Node> computedExpressions)
        {
            Node   node1  = this.CreateNode((Op)this.CreateVarDefListOp());
            VarVec varVec = this.CreateVarVec(inputVars);

            foreach (Node computedExpression in computedExpressions)
            {
                Var computedVar = (Var)this.CreateComputedVar(computedExpression.Op.Type);
                varVec.Set(computedVar);
                Node node2 = this.CreateNode((Op)this.CreateVarDefOp(computedVar), computedExpression);
                node1.Children.Add(node2);
            }
            return(this.CreateNode((Op)this.CreateProjectOp(varVec), inputNode, node1));
        }