Exemple #1
0
        public void TableSpoolTest()
        {
            var source = new ConstantScanNode
            {
                Values =
                {
                    new Entity {
                        ["value1"] = new SqlInt32(1)
                    },
                    new Entity {
                        ["value1"] = new SqlInt32(2)
                    }
                },
                Schema =
                {
                    ["value1"] = typeof(SqlInt32)
                }
            };

            var spool = new TableSpoolNode {
                Source = source
            };

            var results1 = spool.Execute(_dataSources, new StubOptions(), null, null)
                           .Select(e => e.GetAttributeValue <SqlInt32>("value1").Value)
                           .ToArray();

            var results2 = spool.Execute(_dataSources, new StubOptions(), null, null)
                           .Select(e => e.GetAttributeValue <SqlInt32>("value1").Value)
                           .ToArray();

            CollectionAssert.AreEqual(new[] { 1, 2 }, results1);
            CollectionAssert.AreEqual(new[] { 1, 2 }, results2);
            Assert.AreEqual(1, source.ExecutionCount);
        }
Exemple #2
0
        public void CaseInsenstiveHashMatchAggregateNodeTest()
        {
            var source = new ConstantScanNode
            {
                Values =
                {
                    new Entity {
                        ["value1"] = new SqlString("hello", CultureInfo.CurrentCulture.LCID, SqlCompareOptions.IgnoreCase | SqlCompareOptions.IgnoreNonSpace)
                    },
                    new Entity {
                        ["value1"] = new SqlString("Hello", CultureInfo.CurrentCulture.LCID, SqlCompareOptions.IgnoreCase | SqlCompareOptions.IgnoreNonSpace)
                    }
                },
                Schema =
                {
                    ["value1"] = typeof(SqlString)
                },
                Alias = "src"
            };

            var spool = new HashMatchAggregateNode
            {
                Source  = source,
                GroupBy =
                {
                    "src.value1".ToColumnReference()
                },
                Aggregates =
                {
                    ["count"] = new Aggregate {
                        AggregateType = AggregateType.CountStar
                    }
                }
            };

            var results = spool.Execute(_dataSources, new StubOptions(), null, null)
                          .Select(e => new { Name = e.GetAttributeValue <SqlString>("src.value1").Value, Count = e.GetAttributeValue <SqlInt32>("count").Value })
                          .ToArray();

            CollectionAssert.AreEqual(new[] { new { Name = "hello", Count = 2 } }, results);
        }
Exemple #3
0
        public void ConstantScanTest()
        {
            var node = new ConstantScanNode
            {
                Values =
                {
                    new Entity
                    {
                    ["firstname"] = new SqlString("Mark", CultureInfo.CurrentCulture.LCID, SqlCompareOptions.IgnoreCase | SqlCompareOptions.IgnoreNonSpace)
                    }
                },
                Schema =
                {
                    ["firstname"] = typeof(SqlString)
                }
            };

            var results = node.Execute(_dataSources, new StubOptions(), null, null).ToArray();

            Assert.AreEqual(1, results.Length);
            Assert.AreEqual("Mark", ((SqlString)results[0]["firstname"]).Value);
        }