示例#1
0
		public override Task UpdateTableDetailsAsync(OracleObjectIdentifier objectIdentifier, TableDetailsModel dataModel, CancellationToken cancellationToken)
		{
			dataModel.AverageRowSize = 237;
			dataModel.LastAnalyzed = new DateTime(2014, 8, 19, 6, 18, 12);
			dataModel.BlockCount = 544;
			dataModel.RowCount = 8312;
			dataModel.SampleRows = 5512;
			dataModel.Logging = true;
			dataModel.AllocatedBytes = 22546891;
			dataModel.LargeObjectBytes = 1546891;
			dataModel.Compression = "Disabled";
			dataModel.InMemoryCompression = "Disabled";
			dataModel.Organization = "Index";
			dataModel.PartitionKeys = "COLUMN1, COLUMN2";
			dataModel.SubPartitionKeys = "COLUMN3, COLUMN4";
			dataModel.IsTemporary = false;
			dataModel.Comment = "This is a table comment. ";
			dataModel.ParallelDegree = "Default";

			var indexDetails =
				new IndexDetailsModel
				{
					Blocks = 123,
					Bytes = 123456,
					ClusteringFactor = 444,
					Compression = "Enabled",
					DegreeOfParallelism = 2,
					DistinctKeys = 1444,
					IsUnique = false,
					LastAnalyzed = new DateTime(2015, 1, 20, 21, 28, 12),
					LeafBlocks = 114,
					Logging = true,
					Name = "TEST_INDEX",
					Owner = "HUSQVIK",
					PrefixLength = 2,
					Rows = 2000,
					SampleRows = 333,
					Status = "Valid",
					Type = "Normal",
					TablespaceName = "TEST_TABLESPACE",
					Columns =
					{
						new IndexColumnModel { ColumnName = "COLUMN1", SortOrder = SortOrder.Descending },
						new IndexColumnModel { ColumnName = "COLUMN2" }
					}
				};

			var partition1Details =
				new PartitionDetailsModel
				{
					Name = "PARTITION_1"
				};

			SetPartitionDetails(partition1Details);
			SetTablespaceDetails(dataModel.TablespaceDataModel);

			var partition2Details =
				new PartitionDetailsModel
				{
					Name = "PARTITION_2",
					TablespaceName = "TEST_TABLESPACE_2",
					AverageRowSize = 237,
					LastAnalyzed = new DateTime(2015, 2, 22, 16, 22, 14),
					BlockCount = 272,
					RowCount = 4162,
					SampleRows = 4162,
					Compression = "Disabled",
					Logging = true,
					HighValue = "'Partition key 2', 2",
					InMemoryCompression = "Disabled"
				};

			dataModel.IndexDetails.Add(indexDetails);
			dataModel.AddPartition(partition1Details);
			dataModel.AddPartition(partition2Details);

			return Task.FromResult<object>(null);
		}
示例#2
0
		private static void SetPartitionKeys(TableDetailsModel tableDetails)
		{
			tableDetails.PartitionKeys = String.Join(", ", tableDetails.Table.PartitionKeyColumns.Select(c => c.ToSimpleIdentifier()));
			tableDetails.SubPartitionKeys = String.Join(", ", tableDetails.Table.SubPartitionKeyColumns.Select(c => c.ToSimpleIdentifier()));
		}
 private static void SetPartitionKeys(TableDetailsModel tableDetails)
 {
     tableDetails.PartitionKeys    = String.Join(", ", tableDetails.Table.PartitionKeyColumns.Select(c => c.ToSimpleIdentifier()));
     tableDetails.SubPartitionKeys = String.Join(", ", tableDetails.Table.SubPartitionKeyColumns.Select(c => c.ToSimpleIdentifier()));
 }
示例#4
0
		public void VisitDataObjectReference(OracleDataObjectReference objectReference)
		{
			if (TryBuildSchemaTooltip(objectReference))
			{
				return;
			}

			if (objectReference.Type == ReferenceType.SchemaObject)
			{
				var schemaObject = objectReference.SchemaObject.GetTargetSchemaObject();
				if (schemaObject == null)
				{
					return;
				}

				TableDetailsModel dataModel;

				var databaseModel = objectReference.Container.SemanticModel.DatabaseModel;
				var toolTipText = GetFullSchemaObjectToolTip(objectReference.SchemaObject);

				switch (schemaObject.Type)
				{
					case OracleObjectType.MaterializedView:
						var materializedView = (OracleMaterializedView)schemaObject;
						dataModel =
							new MaterializedViewDetailsModel
							{
								MaterializedViewTitle = toolTipText,
								Title = GetObjectTitle(OracleObjectIdentifier.Create(materializedView.Owner, materializedView.TableName), OracleObjectType.Table.ToLower()),
								MaterializedView = materializedView
							};

						SetPartitionKeys(dataModel);

						databaseModel.UpdateTableDetailsAsync(schemaObject.FullyQualifiedName, dataModel, CancellationToken.None);
						ToolTip =
							new ToolTipMaterializedView
							{
								ScriptExtractor = databaseModel.ObjectScriptExtractor,
								DataContext = dataModel
							};

						break;

					case OracleObjectType.Table:
						dataModel =
							new TableDetailsModel
							{
								Title = toolTipText,
								Table = (OracleTable)schemaObject
							};

						SetPartitionKeys(dataModel);

						databaseModel.UpdateTableDetailsAsync(schemaObject.FullyQualifiedName, dataModel, CancellationToken.None);

						ToolTip =
							new ToolTipTable
							{
								ScriptExtractor = databaseModel.ObjectScriptExtractor,
								DataContext = dataModel
							};

						break;

					case OracleObjectType.View:
						var objectDetailModel =
							new ObjectDetailsModel
							{
								Title = toolTipText,
								Object = schemaObject
							};

						DocumentationDataDictionaryObject documentation;
						if (TryGetDataDictionaryObjectDocumentation(schemaObject.FullyQualifiedName, out documentation) && !String.IsNullOrWhiteSpace(documentation.Value))
						{
							objectDetailModel.Comment = documentation.Value;
						}
						else
						{
							databaseModel.UpdateViewDetailsAsync(schemaObject.FullyQualifiedName, objectDetailModel, CancellationToken.None);
						}

						ToolTip =
							new ToolTipView
							{
								IsExtractDdlVisible = true,
								ScriptExtractor = databaseModel.ObjectScriptExtractor,
								DataContext = objectDetailModel
							};
						
						break;

					case OracleObjectType.Sequence:
						ToolTip = new ToolTipSequence(toolTipText, (OracleSequence)schemaObject);
						break;
				}
			}
			else
			{
				ToolTip =
					new ToolTipObject
					{
						DataContext = $"{objectReference.FullyQualifiedObjectName.ToLabel()} ({objectReference.Type.ToCategoryLabel()})"
					};
			}
		}
        public void VisitDataObjectReference(OracleDataObjectReference objectReference)
        {
            if (TryBuildSchemaTooltip(objectReference))
            {
                return;
            }

            if (objectReference.Type == ReferenceType.SchemaObject)
            {
                var schemaObject = objectReference.SchemaObject.GetTargetSchemaObject();
                if (schemaObject == null)
                {
                    return;
                }

                TableDetailsModel dataModel;

                var databaseModel = objectReference.Container.SemanticModel.DatabaseModel;
                var toolTipText   = GetFullSchemaObjectToolTip(objectReference.SchemaObject);

                switch (schemaObject.Type)
                {
                case OracleObjectType.MaterializedView:
                    var materializedView = (OracleMaterializedView)schemaObject;
                    dataModel =
                        new MaterializedViewDetailsModel
                    {
                        MaterializedViewTitle = toolTipText,
                        Title            = GetObjectTitle(OracleObjectIdentifier.Create(materializedView.Owner, materializedView.TableName), OracleObjectType.Table.ToLower()),
                        MaterializedView = materializedView
                    };

                    SetPartitionKeys(dataModel);

                    databaseModel.UpdateTableDetailsAsync(schemaObject.FullyQualifiedName, dataModel, CancellationToken.None);
                    ToolTip =
                        new ToolTipMaterializedView
                    {
                        ScriptExtractor = databaseModel.ObjectScriptExtractor,
                        DataContext     = dataModel
                    };

                    break;

                case OracleObjectType.Table:
                    dataModel =
                        new TableDetailsModel
                    {
                        Title = toolTipText,
                        Table = (OracleTable)schemaObject
                    };

                    SetPartitionKeys(dataModel);

                    databaseModel.UpdateTableDetailsAsync(schemaObject.FullyQualifiedName, dataModel, CancellationToken.None);

                    ToolTip =
                        new ToolTipTable
                    {
                        ScriptExtractor = databaseModel.ObjectScriptExtractor,
                        DataContext     = dataModel
                    };

                    break;

                case OracleObjectType.View:
                    var objectDetailModel =
                        new ObjectDetailsModel
                    {
                        Title  = toolTipText,
                        Object = schemaObject
                    };

                    DocumentationDataDictionaryObject documentation;
                    if (TryGetDataDictionaryObjectDocumentation(schemaObject.FullyQualifiedName, out documentation) && !String.IsNullOrWhiteSpace(documentation.Value))
                    {
                        objectDetailModel.Comment = documentation.Value;
                    }
                    else
                    {
                        databaseModel.UpdateViewDetailsAsync(schemaObject.FullyQualifiedName, objectDetailModel, CancellationToken.None);
                    }

                    ToolTip =
                        new ToolTipView
                    {
                        IsExtractDdlVisible = true,
                        ScriptExtractor     = databaseModel.ObjectScriptExtractor,
                        DataContext         = objectDetailModel
                    };

                    break;

                case OracleObjectType.Sequence:
                    ToolTip = new ToolTipSequence(toolTipText, (OracleSequence)schemaObject);
                    break;
                }
            }
            else
            {
                ToolTip =
                    new ToolTipObject
                {
                    DataContext = $"{objectReference.FullyQualifiedObjectName.ToLabel()} ({objectReference.Type.ToCategoryLabel()})"
                };
            }
        }