Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataEntity / System / Data / SqlClient / SqlGen / JoinSymbol.cs / 1 / JoinSymbol.cs
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....], [....]
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Text;
using System.Data.SqlClient;
using System.Data.Metadata.Edm;
using System.Data.Common.CommandTrees;
namespace System.Data.SqlClient.SqlGen
{
///
/// A Join symbol is a special kind of Symbol.
/// It has to carry additional information
///
/// - ColumnList for the list of columns in the select clause if this
/// symbol represents a sql select statement. This is set by
.
/// - ExtentList is the list of extents in the select clause.
/// - FlattenedExtentList - if the Join has multiple extents flattened at the
/// top level, we need this information to ensure that extent aliases are renamed
/// correctly in
/// - NameToExtent has all the extents in ExtentList as a dictionary.
/// This is used by
to flatten
/// record accesses.
/// - IsNestedJoin - is used to determine whether a JoinSymbol is an
/// ordinary join symbol, or one that has a corresponding SqlSelectStatement.
///
///
/// All the lists are set exactly once, and then used for lookups/enumerated.
///
internal sealed class JoinSymbol : Symbol
{
private List columnList;
internal List ColumnList
{
get
{
if (null == columnList)
{
columnList = new List();
}
return columnList;
}
set { columnList = value; }
}
private List extentList;
internal List ExtentList
{
get { return extentList; }
}
private List flattenedExtentList;
internal List FlattenedExtentList
{
get
{
if (null == flattenedExtentList)
{
flattenedExtentList = new List();
}
return flattenedExtentList;
}
set { flattenedExtentList = value; }
}
private Dictionary nameToExtent;
internal Dictionary NameToExtent
{
get { return nameToExtent; }
}
private bool isNestedJoin;
internal bool IsNestedJoin
{
get { return isNestedJoin; }
set { isNestedJoin = value; }
}
public JoinSymbol(string name, TypeUsage type, List extents)
: base(name, type)
{
extentList = new List(extents.Count);
nameToExtent = new Dictionary(extents.Count, StringComparer.OrdinalIgnoreCase);
foreach (Symbol symbol in extents)
{
this.nameToExtent[symbol.Name] = symbol;
this.ExtentList.Add(symbol);
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....], [....]
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Text;
using System.Data.SqlClient;
using System.Data.Metadata.Edm;
using System.Data.Common.CommandTrees;
namespace System.Data.SqlClient.SqlGen
{
///
/// A Join symbol is a special kind of Symbol.
/// It has to carry additional information
///
/// - ColumnList for the list of columns in the select clause if this
/// symbol represents a sql select statement. This is set by
.
/// - ExtentList is the list of extents in the select clause.
/// - FlattenedExtentList - if the Join has multiple extents flattened at the
/// top level, we need this information to ensure that extent aliases are renamed
/// correctly in
/// - NameToExtent has all the extents in ExtentList as a dictionary.
/// This is used by
to flatten
/// record accesses.
/// - IsNestedJoin - is used to determine whether a JoinSymbol is an
/// ordinary join symbol, or one that has a corresponding SqlSelectStatement.
///
///
/// All the lists are set exactly once, and then used for lookups/enumerated.
///
internal sealed class JoinSymbol : Symbol
{
private List columnList;
internal List ColumnList
{
get
{
if (null == columnList)
{
columnList = new List();
}
return columnList;
}
set { columnList = value; }
}
private List extentList;
internal List ExtentList
{
get { return extentList; }
}
private List flattenedExtentList;
internal List FlattenedExtentList
{
get
{
if (null == flattenedExtentList)
{
flattenedExtentList = new List();
}
return flattenedExtentList;
}
set { flattenedExtentList = value; }
}
private Dictionary nameToExtent;
internal Dictionary NameToExtent
{
get { return nameToExtent; }
}
private bool isNestedJoin;
internal bool IsNestedJoin
{
get { return isNestedJoin; }
set { isNestedJoin = value; }
}
public JoinSymbol(string name, TypeUsage type, List extents)
: base(name, type)
{
extentList = new List(extents.Count);
nameToExtent = new Dictionary(extents.Count, StringComparer.OrdinalIgnoreCase);
foreach (Symbol symbol in extents)
{
this.nameToExtent[symbol.Name] = symbol;
this.ExtentList.Add(symbol);
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- UpDownBase.cs
- LogicalTreeHelper.cs
- SqlConnectionManager.cs
- LassoSelectionBehavior.cs
- WebPartCancelEventArgs.cs
- RegistryKey.cs
- FileAuthorizationModule.cs
- EqualityArray.cs
- LateBoundBitmapDecoder.cs
- ColorEditor.cs
- XmlNullResolver.cs
- NameNode.cs
- RemoteWebConfigurationHost.cs
- XsltConvert.cs
- TrackingSection.cs
- Operand.cs
- TableLayout.cs
- LayoutTable.cs
- VersionedStreamOwner.cs
- EncodingNLS.cs
- DBCSCodePageEncoding.cs
- BooleanStorage.cs
- QueryReaderSettings.cs
- securitycriticaldataformultiplegetandset.cs
- RegexGroup.cs
- DataSourceBooleanViewSchemaConverter.cs
- MissingMethodException.cs
- FileEnumerator.cs
- ApplicationDirectoryMembershipCondition.cs
- DataConnectionHelper.cs
- InfoCardAsymmetricCrypto.cs
- SubstitutionResponseElement.cs
- HtmlImage.cs
- Visual3D.cs
- TextLine.cs
- StructuralCache.cs
- BitmapEffectGeneralTransform.cs
- ByteStreamGeometryContext.cs
- IProvider.cs
- ProtocolsConfiguration.cs
- MULTI_QI.cs
- NullableFloatSumAggregationOperator.cs
- WizardStepBase.cs
- IOThreadScheduler.cs
- TextSelectionProcessor.cs
- DrawingGroup.cs
- SerializationInfoEnumerator.cs
- NeutralResourcesLanguageAttribute.cs
- SkinBuilder.cs
- OptimisticConcurrencyException.cs
- CodeDirectionExpression.cs
- FixedSOMTextRun.cs
- AnonymousIdentificationModule.cs
- UIntPtr.cs
- AdRotator.cs
- XmlAtomicValue.cs
- IPEndPointCollection.cs
- EdmConstants.cs
- SafeThreadHandle.cs
- TreeBuilder.cs
- RoleService.cs
- RepeatInfo.cs
- NetSectionGroup.cs
- IndexerReference.cs
- HttpHandlerAction.cs
- DeviceContext.cs
- TokenBasedSetEnumerator.cs
- XamlReader.cs
- NumberAction.cs
- ToolStripDropDownMenu.cs
- TypeDescriptionProviderAttribute.cs
- HttpApplication.cs
- SymLanguageType.cs
- ClientSponsor.cs
- ExpressionNode.cs
- DesigntimeLicenseContextSerializer.cs
- SqlMethodAttribute.cs
- ConvertEvent.cs
- SmtpSection.cs
- InvalidateEvent.cs
- MatrixAnimationBase.cs
- GZipUtils.cs
- AuthenticationModuleElementCollection.cs
- SizeChangedInfo.cs
- ParserOptions.cs
- SpellerHighlightLayer.cs
- ProcessHostServerConfig.cs
- Converter.cs
- PropertyToken.cs
- XsdDuration.cs
- SortedList.cs
- AttributeCollection.cs
- DbTransaction.cs
- ProxyElement.cs
- ClrPerspective.cs
- MarkupCompilePass2.cs
- MobileControlsSection.cs
- LoginViewDesigner.cs
- UnionCqlBlock.cs
- ExeContext.cs