You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@ -0,0 +1,89 @@
|
||||
//---------------------------------------------------------------------
|
||||
// <copyright file="CommandPlan.cs" company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
//
|
||||
// @owner [....]
|
||||
// @backupOwner [....]
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Data.Common;
|
||||
using md = System.Data.Metadata.Edm;
|
||||
using cqt = System.Data.Common.CommandTrees;
|
||||
//using System.Diagnostics; // Please use PlanCompiler.Assert instead of Debug.Assert in this class...
|
||||
|
||||
// It is fine to use Debug.Assert in cases where you assert an obvious thing that is supposed
|
||||
// to prevent from simple mistakes during development (e.g. method argument validation
|
||||
// in cases where it was you who created the variables or the variables had already been validated or
|
||||
// in "else" clauses where due to code changes (e.g. adding a new value to an enum type) the default
|
||||
// "else" block is chosen why the new condition should be treated separately). This kind of asserts are
|
||||
// (can be) helpful when developing new code to avoid simple mistakes but have no or little value in
|
||||
// the shipped product.
|
||||
// PlanCompiler.Assert *MUST* be used to verify conditions in the trees. These would be assumptions
|
||||
// about how the tree was built etc. - in these cases we probably want to throw an exception (this is
|
||||
// what PlanCompiler.Assert does when the condition is not met) if either the assumption is not correct
|
||||
// or the tree was built/rewritten not the way we thought it was.
|
||||
// Use your judgment - if you rather remove an assert than ship it use Debug.Assert otherwise use
|
||||
// PlanCompiler.Assert.
|
||||
|
||||
|
||||
//
|
||||
// A CommandPlan represents the plan for a query.
|
||||
//
|
||||
namespace System.Data.Query.PlanCompiler
|
||||
{
|
||||
#region CommandInfo
|
||||
|
||||
/// <summary>
|
||||
/// Captures information about a single provider command
|
||||
/// </summary>
|
||||
internal sealed class ProviderCommandInfo
|
||||
{
|
||||
#region public apis
|
||||
|
||||
/// <summary>
|
||||
/// Internal methods to get the command tree
|
||||
/// </summary>
|
||||
internal cqt.DbCommandTree CommandTree
|
||||
{
|
||||
get { return _commandTree; }
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region private state
|
||||
private cqt.DbCommandTree _commandTree;
|
||||
private ProviderCommandInfo _parent;
|
||||
private List<ProviderCommandInfo> _children;
|
||||
#endregion
|
||||
|
||||
#region constructors
|
||||
|
||||
/// <summary>
|
||||
/// Internal constructor for a ProviderCommandInfo object
|
||||
/// </summary>
|
||||
/// <param name="commandTree">command tree for the provider command</param>
|
||||
/// <param name="children">children command infos</param>
|
||||
internal ProviderCommandInfo(cqt.DbCommandTree commandTree,
|
||||
List<ProviderCommandInfo> children)
|
||||
{
|
||||
_commandTree = commandTree;
|
||||
_children = children;
|
||||
|
||||
if (_children == null)
|
||||
{
|
||||
_children = new List<ProviderCommandInfo>();
|
||||
}
|
||||
|
||||
foreach (ProviderCommandInfo child in _children)
|
||||
{
|
||||
child._parent = this;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
Reference in New Issue
Block a user