static OperationTable()

in src/Microsoft.SqlTools.ServiceLayer/ShowPlan/ShowPlanGraph/OperationTable.cs [88:353]


        static OperationTable()
        {
            Operation[] physicalOperationList = new Operation[]
            {
                ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                /// XML ShowPlan Operators (see showplanxml.cs for the list)
                /// Name / Type                         SR Display Name Key             SR Description Key                          Image                              
                ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                new Operation("AdaptiveJoin",           SR.Keys.AdaptiveJoin,           SR.Keys.AdaptiveJoinDescription,            "adaptiveJoin"),
                new Operation("Assert",                 SR.Keys.Assert,                 SR.Keys.AssertDescription,                  "assert"),
                new Operation("Bitmap",                 SR.Keys.Bitmap,                 SR.Keys.BitmapDescription,                  "bitmap"),
                new Operation("ClusteredIndexDelete",   SR.Keys.ClusteredIndexDelete,   SR.Keys.ClusteredIndexDeleteDescription,    "clusteredIndexDelete"),
                new Operation("ClusteredIndexInsert",   SR.Keys.ClusteredIndexInsert,   SR.Keys.ClusteredIndexInsertDescription,    "clusteredIndexInsert"),
                new Operation("ClusteredIndexScan",     SR.Keys.ClusteredIndexScan,     SR.Keys.ClusteredIndexScanDescription,      "clusteredIndexScan"),
                new Operation("ClusteredIndexSeek",     SR.Keys.ClusteredIndexSeek,     SR.Keys.ClusteredIndexSeekDescription,      "clusteredIndexSeek"),
                new Operation("ClusteredIndexUpdate",   SR.Keys.ClusteredIndexUpdate,   SR.Keys.ClusteredIndexUpdateDescription,    "clusteredIndexUpdate"),
                new Operation("ClusteredIndexMerge",    SR.Keys.ClusteredIndexMerge,    SR.Keys.ClusteredIndexMergeDescription,     "clusteredIndexMerge"),
                new Operation("ClusteredUpdate",        SR.Keys.ClusteredUpdate,        SR.Keys.ClusteredUpdateDescription,         "clusteredUpdate"),
                new Operation("Collapse",               SR.Keys.Collapse,               SR.Keys.CollapseDescription,                "collapse"),
                new Operation("ComputeScalar",          SR.Keys.ComputeScalar,          SR.Keys.ComputeScalarDescription,           "computeScalar"),
                new Operation("Concatenation",          SR.Keys.Concatenation,          SR.Keys.ConcatenationDescription,           "concatenation"),
                new Operation("ConstantScan",           SR.Keys.ConstantScan,           SR.Keys.ConstantScanDescription,            "constantScan"),
                new Operation("DeletedScan",            SR.Keys.DeletedScan,            SR.Keys.DeletedScanDescription,             "deletedScan"),
                new Operation("Filter",                 SR.Keys.Filter,                 SR.Keys.FilterDescription,                  "filter"),
                new Operation("HashMatch",              SR.Keys.HashMatch,              SR.Keys.HashMatchDescription,               "hashMatch"),
                new Operation("IndexDelete",            SR.Keys.IndexDelete,            SR.Keys.IndexDeleteDescription,             "indexDelete"),
                new Operation("IndexInsert",            SR.Keys.IndexInsert,            SR.Keys.IndexInsertDescription,             "indexInsert"),
                new Operation("IndexScan",              SR.Keys.IndexScan,              SR.Keys.IndexScanDescription,               "indexScan"),
                new Operation("ColumnstoreIndexDelete", SR.Keys.ColumnstoreIndexDelete, SR.Keys.ColumnstoreIndexDeleteDescription,  "columnstoreIndexDelete"),
                new Operation("ColumnstoreIndexInsert", SR.Keys.ColumnstoreIndexInsert, SR.Keys.ColumnstoreIndexInsertDescription,  "columnstoreIndexInsert"),
                new Operation("ColumnstoreIndexMerge",  SR.Keys.ColumnstoreIndexMerge,  SR.Keys.ColumnstoreIndexMergeDescription,   "columnstoreIndexMerge"),
                new Operation("ColumnstoreIndexScan",   SR.Keys.ColumnstoreIndexScan,   SR.Keys.ColumnstoreIndexScanDescription,    "columnstoreIndexScan"),
                new Operation("ColumnstoreIndexUpdate", SR.Keys.ColumnstoreIndexUpdate, SR.Keys.ColumnstoreIndexUpdateDescription,  "columnstoreIndexUpdate"),
                new Operation("IndexSeek",              SR.Keys.IndexSeek,              SR.Keys.IndexSeekDescription,               "indexSeek"),
                new Operation("IndexSpool",             SR.Keys.IndexSpool,             SR.Keys.IndexSpoolDescription,              "indexSpool"),
                new Operation("IndexUpdate",            SR.Keys.IndexUpdate,            SR.Keys.IndexUpdateDescription,             "indexUpdate"),
                new Operation("InsertedScan",           SR.Keys.InsertedScan,           SR.Keys.InsertedScanDescription,            "insertedScan"),
                new Operation("LogRowScan",             SR.Keys.LogRowScan,             SR.Keys.LogRowScanDescription,              "logRowScan"),
                new Operation("MergeInterval",          SR.Keys.MergeInterval,          SR.Keys.MergeIntervalDescription,           "mergeInterval"),
                new Operation("MergeJoin",              SR.Keys.MergeJoin,              SR.Keys.MergeJoinDescription,               "mergeJoin"),
                new Operation("NestedLoops",            SR.Keys.NestedLoops,            SR.Keys.NestedLoopsDescription,             "nestedLoops"),
                new Operation("Parallelism",            SR.Keys.Parallelism,            SR.Keys.ParallelismDescription,             "parallelism"),
                new Operation("ParameterTableScan",     SR.Keys.ParameterTableScan,     SR.Keys.ParameterTableScanDescription,      "parameterTableScan"),
                new Operation("Print",                  SR.Keys.Print,                  SR.Keys.PrintDescription,                   "print"),
                new Operation("Put",                    SR.Keys.Put,                    SR.Keys.PutDescription,                     "Put_32x.ico"),
                new Operation("Rank",                   SR.Keys.Rank,                   SR.Keys.RankDescription,                    "rank"),
                // using the temporary icon as of now. Once the new icon is available, it will be updated.
                new Operation("ForeignKeyReferencesCheck",  SR.Keys.ForeignKeyReferencesCheck,   SR.Keys.ForeignKeyReferencesCheckDescription, "foreignKeyReferencesCheck"),
                new Operation("RemoteDelete",           SR.Keys.RemoteDelete,           SR.Keys.RemoteDeleteDescription,            "remoteDelete"),
                new Operation("RemoteIndexScan",        SR.Keys.RemoteIndexScan,        SR.Keys.RemoteIndexScanDescription,         "remoteIndexScan"),
                new Operation("RemoteIndexSeek",        SR.Keys.RemoteIndexSeek,        SR.Keys.RemoteIndexSeekDescription,         "remoteIndexSeek"),
                new Operation("RemoteInsert",           SR.Keys.RemoteInsert,           SR.Keys.RemoteInsertDescription,            "remoteInsert"),
                new Operation("RemoteQuery",            SR.Keys.RemoteQuery,            SR.Keys.RemoteQueryDescription,             "remoteQuery"),
                new Operation("RemoteScan",             SR.Keys.RemoteScan,             SR.Keys.RemoteScanDescription,              "remoteScan"),
                new Operation("RemoteUpdate",           SR.Keys.RemoteUpdate,           SR.Keys.RemoteUpdateDescription,            "remoteUpdate"),
                new Operation("RIDLookup",              SR.Keys.RIDLookup,              SR.Keys.RIDLookupDescription,               "ridLookup"),
                new Operation("RowCountSpool",          SR.Keys.RowCountSpool,          SR.Keys.RowCountSpoolDescription,           "rowCountSpool"),
                new Operation("Segment",                SR.Keys.Segment,                SR.Keys.SegmentDescription,                 "segment"),
                new Operation("Sequence",               SR.Keys.Sequence,               SR.Keys.SequenceDescription,                "sequence"),
                new Operation("SequenceProject",        SR.Keys.SequenceProject,        SR.Keys.SequenceProjectDescription,         "sequenceProject"),
                new Operation("Sort",                   SR.Keys.Sort,                   SR.Keys.SortDescription,                    "sort"),
                new Operation("Split",                  SR.Keys.Split,                  SR.Keys.SplitDescription,                   "split"),
                new Operation("StreamAggregate",        SR.Keys.StreamAggregate,        SR.Keys.StreamAggregateDescription,         "streamAggregate"),
                new Operation("Switch",                 SR.Keys.Switch,                 SR.Keys.SwitchDescription,                  "switchStatement"),
                new Operation("Tablevaluedfunction",    SR.Keys.TableValueFunction,     SR.Keys.TableValueFunctionDescription,      "tableValuedFunction"),
                new Operation("TableDelete",            SR.Keys.TableDelete,            SR.Keys.TableDeleteDescription,             "tableDelete"),
                new Operation("TableInsert",            SR.Keys.TableInsert,            SR.Keys.TableInsertDescription,             "tableInsert"),
                new Operation("TableScan",              SR.Keys.TableScan,              SR.Keys.TableScanDescription,               "tableScan"),
                new Operation("TableSpool",             SR.Keys.TableSpool,             SR.Keys.TableSpoolDescription,              "tableSpool"),
                new Operation("TableUpdate",            SR.Keys.TableUpdate,            SR.Keys.TableUpdateDescription,             "tableUpdate"),
                new Operation("TableMerge",             SR.Keys.TableMerge,             SR.Keys.TableMergeDescription,              "tableMerge"),
                new Operation("TFP",                    SR.Keys.TFP,                    SR.Keys.TFPDescription,                     "tfp"),
                new Operation("Top",                    SR.Keys.Top,                    SR.Keys.TopDescription,                     "top"),
                new Operation("UDX",                    SR.Keys.UDX,                    SR.Keys.UDXDescription,                     "udx"),
                new Operation("BatchHashTableBuild",    SR.Keys.BatchHashTableBuild,    SR.Keys.BatchHashTableBuildDescription,     "batchHashTableBuild"),
                new Operation("WindowSpool",            SR.Keys.Window,                 SR.Keys.WindowDescription,                  "windowSpool"),
                new Operation("WindowAggregate",        SR.Keys.WindowAggregate,        SR.Keys.WindowAggregateDescription,         "windowAggregate"),

                ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                /// XML ShowPlan Cursor Operators (see showplanxml.cs for the list)
                /// Name / Type                         SR Display Name Key             SR Description Key                          Image                              
                ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        
                new Operation("FetchQuery",             SR.Keys.FetchQuery,             SR.Keys.FetchQueryDescription,              "fetchQuery"),
                new Operation("PopulateQuery",          SR.Keys.PopulationQuery,        SR.Keys.PopulationQueryDescription,         "populateQuery"),
                new Operation("RefreshQuery",           SR.Keys.RefreshQuery,           SR.Keys.RefreshQueryDescription,            "refreshQuery"),

                ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                /// Shiloh Operators (see star\sqlquery\src\plan.cpp for the list)
                /// Name / Type                         SR Display Name Key             SR Description Key                          Image                              
                ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                new Operation("Result",                 SR.Keys.Result,                 SR.Keys.ResultDescription,                  "result"),
                new Operation("Aggregate",              SR.Keys.Aggregate,              SR.Keys.AggregateDescription,               "aggregate"),
                new Operation("Assign",                 SR.Keys.Assign,                 SR.Keys.AssignDescription,                  "assign"),                  
                new Operation("ArithmeticExpression",   SR.Keys.ArithmeticExpression,   SR.Keys.ArithmeticExpressionDescription,    "arithmeticExpression"),
                new Operation("BookmarkLookup",         SR.Keys.BookmarkLookup,         SR.Keys.BookmarkLookupDescription,          "bookmarkLookup"), 
                new Operation("Convert",                SR.Keys.Convert,                SR.Keys.ConvertDescription,                 "convert"),                 
                new Operation("Declare",                SR.Keys.Declare,                SR.Keys.DeclareDescription,                 "declare"),                 
                new Operation("Delete",                 SR.Keys.Delete,                 SR.Keys.DeleteDescription,                  "deleteOperator"),                  
                new Operation("Dynamic",                SR.Keys.Dynamic,                SR.Keys.DynamicDescription,                 "dynamic"),                 
                new Operation("HashMatchRoot",          SR.Keys.HashMatchRoot,          SR.Keys.HashMatchRootDescription,           "hashMatchRoot"),         
                new Operation("HashMatchTeam",          SR.Keys.HashMatchTeam,          SR.Keys.HashMatchTeamDescription,           "hashMatchTeam"),         
                new Operation("If",                     SR.Keys.If,                     SR.Keys.IfDescription,                      "ifOperator"),                      
                new Operation("Insert",                 SR.Keys.Insert,                 SR.Keys.InsertDescription,                  "insert"),                  
                new Operation("Intrinsic",              SR.Keys.Intrinsic,              SR.Keys.IntrinsicDescription,               "intrinsic"),               
                new Operation("Keyset",                 SR.Keys.Keyset,                 SR.Keys.KeysetDescription,                  "keyset"),                  
                new Operation("Locate",                 SR.Keys.Locate,                 SR.Keys.LocateDescription,                  "locate"),                  
                new Operation("PopulationQuery",        SR.Keys.PopulationQuery,        SR.Keys.PopulationQueryDescription,         "populationQuery"),        
                new Operation("SetFunction",            SR.Keys.SetFunction,            SR.Keys.SetFunctionDescription,             "setFunction"),            
                new Operation("Snapshot",               SR.Keys.Snapshot,               SR.Keys.SnapshotDescription,                "snapshot"),               
                new Operation("Spool",                  SR.Keys.Spool,                  SR.Keys.SpoolDescription,                   "spool"),                   
                new Operation("TSQL",                   SR.Keys.SQL,                    SR.Keys.SQLDescription,                     "tsql"),                    
                new Operation("Update",                 SR.Keys.Update,                 SR.Keys.UpdateDescription,                  "update"),

                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                /// Fake Operators - Used to special case existing operators and expose them using different name / icons (see sqlbu#434739)
                /// Name / Type                         SR Display Name Key             SR Description Key                          Image                               
                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                new Operation("KeyLookup",              SR.Keys.KeyLookup,              SR.Keys.KeyLookupDescription,               "keyLookup"),

                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                /// PDW Operators (See PDW comment tags in showplanxml.xsd)
                /// Name / Type                         SR Display Name Key             SR Description Key                          Image                              
                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                new Operation("Apply",                  SR.Keys.Apply,                  SR.Keys.ApplyDescription,                   "apply"),
                new Operation("Broadcast",              SR.Keys.Broadcast,              SR.Keys.BroadcastDescription,               "broadcast"),
                new Operation("ComputeToControlNode",   SR.Keys.ComputeToControlNode,   SR.Keys.ComputeToControlNodeDescription,    "computeToControlNode"), 
                new Operation("ConstTableGet",          SR.Keys.ConstTableGet,          SR.Keys.ConstTableGetDescription,           "constTableGet"),
                new Operation("ControlToComputeNodes",  SR.Keys.ControlToComputeNodes,  SR.Keys.ControlToComputeNodesDescription,   "controlToComputeNodes"),
                new Operation("ExternalBroadcast",      SR.Keys.ExternalBroadcast,      SR.Keys.ExternalBroadcastDescription,       "externalBroadcast"),
                new Operation("ExternalExport",         SR.Keys.ExternalExport,         SR.Keys.ExternalExportDescription,          "externalExport"),
                new Operation("ExternalLocalStreaming", SR.Keys.ExternalLocalStreaming, SR.Keys.ExternalLocalStreamingDescription,  "externalLocalStreaming"),
                new Operation("ExternalRoundRobin",     SR.Keys.ExternalRoundRobin,     SR.Keys.ExternalRoundRobinDescription,      "externalRoundRobin"),
                new Operation("ExternalShuffle",        SR.Keys.ExternalShuffle,        SR.Keys.ExternalShuffleDescription,         "externalShuffle"),
                new Operation("Get",                    SR.Keys.Get,                    SR.Keys.GetDescription,                     "get"),
                new Operation("GbApply",                SR.Keys.GbApply,                SR.Keys.GbApplyDescription,                 "groupByApply"),
                new Operation("GbAgg",                  SR.Keys.GbAgg,                  SR.Keys.GbAggDescription,                   "groupByAggregate"),
                new Operation("Join",                   SR.Keys.Join,                   SR.Keys.JoinDescription,                    "join"),
                new Operation("LocalCube",              SR.Keys.LocalCube,              SR.Keys.LocalCubeDescription,               "localCube"),
                new Operation("Project",                SR.Keys.Project,                SR.Keys.ProjectDescription,                 "project"),
                new Operation("Shuffle",                SR.Keys.Shuffle,                SR.Keys.ShuffleDescription,                 "shuffle"),
                new Operation("SingleSourceRoundRobin", SR.Keys.SingleSourceRoundRobin, SR.Keys.SingleSourceRoundRobinDescription,  "singleSourceRoundRobin"),
                new Operation("SingleSourceShuffle",    SR.Keys.SingleSourceShuffle,    SR.Keys.SingleSourceShuffleDescription,     "singleSourceShuffle"),
                new Operation("Trim",                   SR.Keys.Trim,                   SR.Keys.TrimDescription,                    "trim"),
                new Operation("Union",                  SR.Keys.Union,                  SR.Keys.UnionDescription,                   "union"),
                new Operation("UnionAll",               SR.Keys.UnionAll,               SR.Keys.UnionAllDescription,                "unionAll"),
            };

            PhysicalOperations = DictionaryFromList(physicalOperationList);

            ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            /// Logical Operations
            /// Name / Type                         SR Display Name Key             SR Description Key                          Image                              
            ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            Operation[] logicalOperationList = new Operation[]
            {
                new Operation("Aggregate",              SR.Keys.LogicalOpAggregate),
                new Operation("AntiDiff",               SR.Keys.LogicalOpAntiDiff),
                new Operation("Assert",                 SR.Keys.LogicalOpAssert),
                new Operation("BitmapCreate",           SR.Keys.LogicalOpBitmapCreate),
                new Operation("ClusteredIndexScan",     SR.Keys.LogicalOpClusteredIndexScan),
                new Operation("ClusteredIndexSeek",     SR.Keys.LogicalOpClusteredIndexSeek),
                new Operation("ClusteredUpdate",        SR.Keys.LogicalOpClusteredUpdate),
                new Operation("Collapse",               SR.Keys.LogicalOpCollapse),
                new Operation("ComputeScalar",          SR.Keys.LogicalOpComputeScalar),
                new Operation("Concatenation",          SR.Keys.LogicalOpConcatenation),
                new Operation("ConstantScan",           SR.Keys.LogicalOpConstantScan),
                new Operation("CrossJoin",              SR.Keys.LogicalOpCrossJoin),
                new Operation("Delete",                 SR.Keys.LogicalOpDelete),
                new Operation("DeletedScan",            SR.Keys.LogicalOpDeletedScan),
                new Operation("DistinctSort",           SR.Keys.LogicalOpDistinctSort),
                new Operation("Distinct",               SR.Keys.LogicalOpDistinct),
                new Operation("DistributeStreams",      SR.Keys.LogicalOpDistributeStreams, SR.Keys.DistributeStreamsDescription, "Parallelism_distribute.ico"),
                new Operation("EagerSpool",             SR.Keys.LogicalOpEagerSpool),
                new Operation("Filter",                 SR.Keys.LogicalOpFilter),
                new Operation("FlowDistinct",           SR.Keys.LogicalOpFlowDistinct),
                new Operation("FullOuterJoin",          SR.Keys.LogicalOpFullOuterJoin),
                new Operation("GatherStreams",          SR.Keys.LogicalOpGatherStreams, SR.Keys.GatherStreamsDescription, "parallelism"),
                new Operation("IndexScan",              SR.Keys.LogicalOpIndexScan),
                new Operation("IndexSeek",              SR.Keys.LogicalOpIndexSeek),
                new Operation("InnerApply",             SR.Keys.LogicalOpInnerApply),
                new Operation("InnerJoin",              SR.Keys.LogicalOpInnerJoin),
                new Operation("Insert",                 SR.Keys.LogicalOpInsert),
                new Operation("InsertedScan",           SR.Keys.LogicalOpInsertedScan),
                new Operation("IntersectAll",           SR.Keys.LogicalOpIntersectAll),
                new Operation("Intersect",              SR.Keys.LogicalOpIntersect),
                new Operation("KeyLookup",              SR.Keys.LogicalKeyLookup),
                new Operation("LazySpool",              SR.Keys.LogicalOpLazySpool),
                new Operation("LeftAntiSemiApply",      SR.Keys.LogicalOpLeftAntiSemiApply),
                new Operation("LeftAntiSemiJoin",       SR.Keys.LogicalOpLeftAntiSemiJoin),
                new Operation("LeftDiffAll",            SR.Keys.LogicalOpLeftDiffAll),
                new Operation("LeftDiff",               SR.Keys.LogicalOpLeftDiff),
                new Operation("LeftOuterApply",         SR.Keys.LogicalOpLeftOuterApply),
                new Operation("LeftOuterJoin",          SR.Keys.LogicalOpLeftOuterJoin),
                new Operation("LeftSemiApply",          SR.Keys.LogicalOpLeftSemiApply),
                new Operation("LeftSemiJoin",           SR.Keys.LogicalOpLeftSemiJoin),
                new Operation("LogRowScan",             SR.Keys.LogicalOpLogRowScan),
                new Operation("MergeInterval",          SR.Keys.LogicalOpMergeInterval),
                new Operation("ParameterTableScan",     SR.Keys.LogicalOpParameterTableScan),
                new Operation("PartialAggregate",       SR.Keys.LogicalOpPartialAggregate),
                new Operation("Print",                  SR.Keys.LogicalOpPrint),
                new Operation("Put",                    SR.Keys.LogicalOpPut),
                new Operation("Rank",                   SR.Keys.LogicalOpRank),
                new Operation("ForeignKeyReferencesCheck",  SR.Keys.LogicalOpForeignKeyReferencesCheck),
                new Operation("RemoteDelete",           SR.Keys.LogicalOpRemoteDelete),
                new Operation("RemoteIndexScan",        SR.Keys.LogicalOpRemoteIndexScan),
                new Operation("RemoteIndexSeek",        SR.Keys.LogicalOpRemoteIndexSeek),
                new Operation("RemoteInsert",           SR.Keys.LogicalOpRemoteInsert),
                new Operation("RemoteQuery",            SR.Keys.LogicalOpRemoteQuery),
                new Operation("RemoteScan",             SR.Keys.LogicalOpRemoteScan),
                new Operation("RemoteUpdate",           SR.Keys.LogicalOpRemoteUpdate),
                new Operation("RepartitionStreams",     SR.Keys.LogicalOpRepartitionStreams, SR.Keys.RepartitionStreamsDescription, "Parallelism_repartition.ico"),
                new Operation("RIDLookup",              SR.Keys.LogicalOpRIDLookup),
                new Operation("RightAntiSemiJoin",      SR.Keys.LogicalOpRightAntiSemiJoin),
                new Operation("RightDiffAll",           SR.Keys.LogicalOpRightDiffAll),
                new Operation("RightDiff",              SR.Keys.LogicalOpRightDiff),
                new Operation("RightOuterJoin",         SR.Keys.LogicalOpRightOuterJoin),
                new Operation("RightSemiJoin",          SR.Keys.LogicalOpRightSemiJoin),
                new Operation("Segment",                SR.Keys.LogicalOpSegment),
                new Operation("Sequence",               SR.Keys.LogicalOpSequence),
                new Operation("Sort",                   SR.Keys.LogicalOpSort),
                new Operation("Split",                  SR.Keys.LogicalOpSplit),
                new Operation("Switch",                 SR.Keys.LogicalOpSwitch),
                new Operation("Tablevaluedfunction",    SR.Keys.LogicalOpTableValuedFunction),
                new Operation("TableScan",              SR.Keys.LogicalOpTableScan),
                new Operation("Top",                    SR.Keys.LogicalOpTop),
                new Operation("TopNSort",               SR.Keys.LogicalOpTopNSort),
                new Operation("UDX",                    SR.Keys.LogicalOpUDX),
                new Operation("Union",                  SR.Keys.LogicalOpUnion),
                new Operation("Update",                 SR.Keys.LogicalOpUpdate),
                new Operation("Merge",                  SR.Keys.LogicalOpMerge),
                new Operation("MergeStats",             SR.Keys.LogicalOpMergeStats),
                new Operation("LocalStats",             SR.Keys.LogicalOpLocalStats),
                new Operation("BatchHashTableBuild",    SR.Keys.LogicalOpBatchHashTableBuild),
                new Operation("WindowSpool",            SR.Keys.LogicalOpWindow),
            };

            LogicalOperations = DictionaryFromList(logicalOperationList);

            ///////////////////////////////////////////////////////////////////////////////////////////////////////////
            /// Statements
            /// Name / Type                     SR Display Name Key     SR Description Key      Image                  
            ///////////////////////////////////////////////////////////////////////////////////////////////////////////
            // TODO: may need to put a few more statements in here
            Operation[] statementList = new Operation[]
            {
                new Operation("SELECT",         null,                   null,                   "result"),
                new Operation("COND",           null,                   null,                   "ifOperator")
            };

            Statements = DictionaryFromList(statementList);

            ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
            /// Cursor types
            /// Name / Type                     SR Display Name Key     SR Description Key              Image                         
            ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
            Operation[] cursorTypeList = new Operation[]
            {
                new Operation("Dynamic",        SR.Keys.Dynamic,        SR.Keys.DynamicDescription,     "dynamic"),
                new Operation("FastForward",    SR.Keys.FastForward,    SR.Keys.FastForwardDescription, "cursorCatchAll"),
                new Operation("Keyset",         SR.Keys.Keyset,         SR.Keys.KeysetDescription,      "keyset"),
                new Operation("SnapShot",       SR.Keys.Snapshot,       SR.Keys.SnapshotDescription,    "snapshot")
            };

            CursorTypes = DictionaryFromList(cursorTypeList);
        }