Example #1
0
        private void wrapIncludes(IList <IIncludePlan> includes)
        {
            // Just need to guarantee that each include has an index
            for (var i = 0; i < includes.Count; i++)
            {
                includes[i].Index = i;
            }

            var statement = new IncludeIdentitySelectorStatement(TopStatement, includes, _session);

            TopStatement     = statement.Top();
            CurrentStatement = (SelectorStatement)statement.Current();
        }
Example #2
0
        public override SelectorStatement UseAsEndOfTempTableAndClone(IncludeIdentitySelectorStatement includeIdentitySelectorStatement)
        {
            var clone = new DocumentStatement(_storage)
            {
                SelectClause = SelectClause,
                Orderings    = Orderings,
                Mode         = StatementMode.Select,
                ExportName   = ExportName,
            };

            // Select the Ids only
            SelectClause = includeIdentitySelectorStatement;

            clone.Where = new InTempTableWhereFragment(includeIdentitySelectorStatement.ExportName, "id");
            Limit       = Offset = 0;

            return(clone);
        }
Example #3
0
        public override Statement UseAsEndOfTempTableAndClone(IncludeIdentitySelectorStatement includeIdentitySelectorStatement)
        {
            includeIdentitySelectorStatement.IncludeDataInTempTable = true;

            var clone = new JsonStatement(SelectClause, Fields)
            {
                SelectClause = SelectClause.As <IScalarSelectClause>().CloneToOtherTable(includeIdentitySelectorStatement.ExportName),
                Orderings    = Orderings,
                Mode         = StatementMode.Select,
                ExportName   = ExportName
            };

            SelectClause = includeIdentitySelectorStatement;

            Limit = Offset = 0;

            return(clone);
        }
Example #4
0
        public override SelectorStatement UseAsEndOfTempTableAndClone(IncludeIdentitySelectorStatement includeIdentitySelectorStatement)
        {
            var clone = new DocumentStatement(_storage)
            {
                SelectClause           = SelectClause,
                Orderings              = Orderings,
                Mode                   = StatementMode.Select,
                ExportName             = ExportName,
                SingleValue            = SingleValue,
                CanBeMultiples         = CanBeMultiples,
                ReturnDefaultWhenEmpty = ReturnDefaultWhenEmpty
            };

            // Select the Ids only
            SelectClause = includeIdentitySelectorStatement;

            clone.Where = _storage.FilterDocuments(null, new InTempTableWhereFragment(includeIdentitySelectorStatement.ExportName, "id"));

            return(clone);
        }
Example #5
0
        public override SelectorStatement UseAsEndOfTempTableAndClone(IncludeIdentitySelectorStatement includeIdentitySelectorStatement)
        {
            var clone = new DocumentStatement(Storage)
            {
                SelectClause           = SelectClause,
                Orderings              = Orderings,
                Mode                   = StatementMode.Select,
                ExportName             = ExportName,
                SingleValue            = SingleValue,
                CanBeMultiples         = CanBeMultiples,
                ReturnDefaultWhenEmpty = ReturnDefaultWhenEmpty,
                Limit                  = Limit,
                Offset                 = Offset
            };

            // Select the Ids only
            SelectClause = includeIdentitySelectorStatement;

            // Don't do any paging here, or it'll break the Statistics
            clone.Where = new InTempTableWhereFragment(includeIdentitySelectorStatement.ExportName, "id", PagedStatement.Empty, false);

            return(clone);
        }
 public virtual SelectorStatement UseAsEndOfTempTableAndClone(IncludeIdentitySelectorStatement includeIdentitySelectorStatement)
 {
     throw new NotImplementedException();
 }