From 9a6185d721f4494b385a5699ba202a6e685d81ba Mon Sep 17 00:00:00 2001 From: Jacek Laskowski Date: Tue, 19 Mar 2024 22:18:53 +0100 Subject: [PATCH] TruncateTableCommand Logical Command, V1Table and V2SessionCatalog --- docs/SessionCatalog.md | 4 ++ docs/V2SessionCatalog.md | 52 +++++++++++++------ docs/connector/V1Table.md | 16 ++++-- .../catalog/TableCatalogCapability.md | 3 ++ .../logical-operators/TruncateTableCommand.md | 14 +++-- mkdocs.yml | 1 + 6 files changed, 67 insertions(+), 23 deletions(-) create mode 100644 docs/connector/catalog/TableCatalogCapability.md diff --git a/docs/SessionCatalog.md b/docs/SessionCatalog.md index 0aa88b5fd43..9336b748c1a 100644 --- a/docs/SessionCatalog.md +++ b/docs/SessionCatalog.md @@ -1,3 +1,7 @@ +--- +title: SessionCatalog +--- + # SessionCatalog — Session-Scoped Registry of Relational Entities `SessionCatalog` is a catalog of relational entities in [SparkSession](SparkSession.md#catalog) (e.g. databases, tables, views, partitions, and functions). diff --git a/docs/V2SessionCatalog.md b/docs/V2SessionCatalog.md index 1239b34b013..fe13370c7d9 100644 --- a/docs/V2SessionCatalog.md +++ b/docs/V2SessionCatalog.md @@ -1,8 +1,12 @@ # V2SessionCatalog -`V2SessionCatalog` is the [default session catalog](connector/catalog/CatalogManager.md#defaultSessionCatalog) of [CatalogManager](connector/catalog/CatalogManager.md). +`V2SessionCatalog` is a [TableCatalog](connector/catalog/TableCatalog.md) that makes the good ol' [SessionCatalog](SessionCatalog.md) available in the modern [Catalog Plugin API](connector/catalog/index.md)-based infrastructure. + +`V2SessionCatalog` is known under the name of [spark_catalog](#name). -`V2SessionCatalog` is a [TableCatalog](connector/catalog/TableCatalog.md) and a [SupportsNamespaces](connector/catalog/SupportsNamespaces.md). +`V2SessionCatalog` is a [SupportsNamespaces](connector/catalog/SupportsNamespaces.md). + +`V2SessionCatalog` is the [default session catalog](connector/catalog/CatalogManager.md#defaultSessionCatalog) of [CatalogManager](connector/catalog/CatalogManager.md). ## Creating Instance @@ -11,21 +15,37 @@ * [SessionCatalog](SessionCatalog.md) * [SQLConf](SQLConf.md) -`V2SessionCatalog` is created when `BaseSessionStateBuilder` is requested for [one](BaseSessionStateBuilder.md#v2SessionCatalog). +`V2SessionCatalog` is created when: -## Default Namespace +* `BaseSessionStateBuilder` is requested for [one](BaseSessionStateBuilder.md#v2SessionCatalog) -```scala -defaultNamespace: Array[String] -``` +## capabilities { #capabilities } + +??? note "TableCatalog" + + ```scala + capabilities(): Set[TableCatalogCapability] + ``` + + `capabilities` is part of the [TableCatalog](connector/catalog/TableCatalog.md#capabilities) abstraction. + +`capabilities` is [SUPPORT_COLUMN_DEFAULT_VALUE](connector/catalog/TableCatalogCapability.md#SUPPORT_COLUMN_DEFAULT_VALUE). + +## Default Namespace { #defaultNamespace } + +??? note "CatalogPlugin" + + ```scala + defaultNamespace: Array[String] + ``` -The default namespace of `V2SessionCatalog` is **default**. + `defaultNamespace` is part of the [CatalogPlugin](connector/catalog/CatalogPlugin.md#defaultNamespace) abstraction. -`defaultNamespace` is part of the [CatalogPlugin](connector/catalog/CatalogPlugin.md#defaultNamespace) abstraction. +`defaultNamespace` is **default**. ## Name -??? note "Signature" +??? note "CatalogPlugin" ```scala name: String @@ -35,9 +55,9 @@ The default namespace of `V2SessionCatalog` is **default**. The name of `V2SessionCatalog` is [spark_catalog](connector/catalog/CatalogManager.md#SESSION_CATALOG_NAME). -## Loading Table +## Loading Table { #loadTable } -??? note "Signature" +??? note "TableCatalog" ```scala loadTable( @@ -48,9 +68,9 @@ The name of `V2SessionCatalog` is [spark_catalog](connector/catalog/CatalogManag `loadTable` creates a [V1Table](connector/V1Table.md) for a [table metadata](SessionCatalog.md#getTableMetadata) (from the [SessionCatalog](#catalog)). -## Loading Function +## Loading Function { #loadFunction } -??? note "Signature" +??? note "FunctionCatalog" ```scala loadFunction( @@ -61,9 +81,9 @@ The name of `V2SessionCatalog` is [spark_catalog](connector/catalog/CatalogManag `loadFunction`...FIXME -## Creating Table +## Creating Table { #createTable } -??? note "Signature" +??? note "FunctionCatalog" ```scala createTable( diff --git a/docs/connector/V1Table.md b/docs/connector/V1Table.md index 671cded6cdc..01fe4508c74 100644 --- a/docs/connector/V1Table.md +++ b/docs/connector/V1Table.md @@ -1,11 +1,21 @@ # V1Table -`V1Table` is a [Table](Table.md) that acts as an adapter to expose [v1 table metadata](#v1Table). +`V1Table` is a [Table](Table.md) that acts as an adapter to expose [v1 table metadata](#v1Table) ([CatalogTable](../CatalogTable.md)). ## Creating Instance `V1Table` takes the following to be created: -* [CatalogTable](../CatalogTable.md) +* [v1 Table Metadata](../CatalogTable.md) -`V1Table` is created when `V2SessionCatalog` is requested to [load a table](../V2SessionCatalog.md#loadTable). +`V1Table` is created when: + +* `V2SessionCatalog` is requested to [load a table](../V2SessionCatalog.md#loadTable) + +## String Representation { #toString } + +`toString` is the following string (with the [name](#name)): + +```text +V1Table([name]) +``` diff --git a/docs/connector/catalog/TableCatalogCapability.md b/docs/connector/catalog/TableCatalogCapability.md new file mode 100644 index 00000000000..e4f76e87b78 --- /dev/null +++ b/docs/connector/catalog/TableCatalogCapability.md @@ -0,0 +1,3 @@ +# TableCatalogCapability + +`TableCatalogCapability` is...FIXME diff --git a/docs/logical-operators/TruncateTableCommand.md b/docs/logical-operators/TruncateTableCommand.md index 429b7a2900d..c89425d5b1d 100644 --- a/docs/logical-operators/TruncateTableCommand.md +++ b/docs/logical-operators/TruncateTableCommand.md @@ -4,15 +4,20 @@ title: TruncateTableCommand # TruncateTableCommand Logical Command -`TruncateTableCommand` is a RunnableCommand.md[logical command] that represents spark-sql-SparkSqlAstBuilder.md#visitTruncateTable[TRUNCATE TABLE] SQL statement. +`TruncateTableCommand` is a [leaf logical runnable command](LeafRunnableCommand.md) that represents `TruncateTable` or `TruncatePartition` (over a [V1Table](../connector/V1Table.md) in the [spark_catalog](../connector/catalog/CatalogManager.md#SESSION_CATALOG_NAME) catalog) at execution time. -=== [[creating-instance]] Creating TruncateTableCommand Instance +## Creating Instance `TruncateTableCommand` takes the following to be created: -* [[tableName]] `TableIdentifier` -* [[partitionSpec]] Optional `TablePartitionSpec` +* `TableIdentifier` +* Optional `TablePartitionSpec` +`TruncateTableCommand` is created when: + +* [ResolveSessionCatalog](../logical-analysis-rules/ResolveSessionCatalog.md) logical resolution rule is executed + + diff --git a/mkdocs.yml b/mkdocs.yml index d70c6802290..701e0bfa9da 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -179,6 +179,7 @@ nav: - SupportsNamespaces: connector/catalog/SupportsNamespaces.md - SupportsCatalogOptions: connector/catalog/SupportsCatalogOptions.md - TableCatalog: connector/catalog/TableCatalog.md + - TableCatalogCapability: connector/catalog/TableCatalogCapability.md - TableChange: connector/catalog/TableChange.md - V2TableWithV1Fallback: connector/catalog/V2TableWithV1Fallback.md - Columnar Execution: