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
- TreeViewHitTestInfo.cs
- DetailsView.cs
- ProtectedProviderSettings.cs
- ProgressChangedEventArgs.cs
- ReferencedType.cs
- ComUdtElementCollection.cs
- XmlWellformedWriter.cs
- RuleSettings.cs
- DataGridViewCell.cs
- VariableQuery.cs
- EntityDataSourceReferenceGroup.cs
- JoinCqlBlock.cs
- _ScatterGatherBuffers.cs
- FileIOPermission.cs
- safesecurityhelperavalon.cs
- TextElementEnumerator.cs
- UTF7Encoding.cs
- TabItemAutomationPeer.cs
- EntityCommandDefinition.cs
- HttpModule.cs
- ChannelServices.cs
- BrowserCapabilitiesFactoryBase.cs
- InputBinding.cs
- SqlNode.cs
- AsyncSerializedWorker.cs
- VirtualizingStackPanel.cs
- CalendarDateChangedEventArgs.cs
- DesigntimeLicenseContext.cs
- SimpleTypesSurrogate.cs
- CompositeControl.cs
- NestedContainer.cs
- HttpDictionary.cs
- SoapSchemaImporter.cs
- DetailsViewRow.cs
- XhtmlBasicLinkAdapter.cs
- SmiXetterAccessMap.cs
- AuthenticationConfig.cs
- MultipleViewPatternIdentifiers.cs
- CmsUtils.cs
- XmlUtilWriter.cs
- ProfileModule.cs
- SystemPens.cs
- SqlCommandBuilder.cs
- TextDecoration.cs
- PageThemeParser.cs
- MenuTracker.cs
- ViewGenerator.cs
- DbModificationClause.cs
- SafeNativeMethodsMilCoreApi.cs
- Attachment.cs
- BackEase.cs
- TrackingRecord.cs
- ConvertersCollection.cs
- recordstate.cs
- SourceFileBuildProvider.cs
- WebPartDescriptionCollection.cs
- TextRange.cs
- BinaryMethodMessage.cs
- VectorAnimation.cs
- PropertyNames.cs
- HostingEnvironment.cs
- IconHelper.cs
- UntypedNullExpression.cs
- RelationshipType.cs
- MetadataItem.cs
- NameTable.cs
- GroupBox.cs
- X509ChainPolicy.cs
- EntityStoreSchemaFilterEntry.cs
- TrackBarRenderer.cs
- GroupBox.cs
- Types.cs
- XmlSchemaObject.cs
- TextServicesHost.cs
- FigureHelper.cs
- cookiecontainer.cs
- BindStream.cs
- HuffModule.cs
- ServerValidateEventArgs.cs
- EncoderFallback.cs
- FullTextBreakpoint.cs
- UnsafeNativeMethods.cs
- WindowsBrush.cs
- BooleanExpr.cs
- MDIWindowDialog.cs
- WebScriptEnablingElement.cs
- Misc.cs
- XmlWhitespace.cs
- IntegerValidator.cs
- Matrix3DValueSerializer.cs
- TransferMode.cs
- DictionaryBase.cs
- DuplexSecurityProtocolFactory.cs
- PropertyMetadata.cs
- UnauthorizedWebPart.cs
- StaticResourceExtension.cs
- TemplateLookupAction.cs
- PersistChildrenAttribute.cs
- BindingWorker.cs
- SessionEndingCancelEventArgs.cs