Skip to content

Commit

Permalink
SupportsPartitionManagement
Browse files Browse the repository at this point in the history
  • Loading branch information
jaceklaskowski committed Jun 5, 2021
1 parent 88d7815 commit ab0d01e
Show file tree
Hide file tree
Showing 4 changed files with 95 additions and 1 deletion.
10 changes: 10 additions & 0 deletions docs/InternalRow.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,3 +93,13 @@ res1: org.apache.spark.sql.catalyst.InternalRow = [0,string,(0,pair)]
scala> InternalRow.fromSeq(Seq(0, "string", (0, "pair")))
res2: org.apache.spark.sql.catalyst.InternalRow = [0,string,(0,pair)]
```

```text
import org.apache.spark.sql.catalyst.InternalRow
import org.apache.spark.unsafe.types.UTF8String
val demoRow = InternalRow(UTF8String.fromString("demo"))
```

```text
assert(demoRow.getString(0).equals("demo"))
```
3 changes: 3 additions & 0 deletions docs/connector/SupportsAtomicPartitionManagement.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# SupportsAtomicPartitionManagement

`SupportsAtomicPartitionManagement` is...FIXME
82 changes: 81 additions & 1 deletion docs/connector/SupportsPartitionManagement.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,83 @@
# SupportsPartitionManagement

`SupportsPartitionManagement` is...FIXME
`SupportsPartitionManagement` is an [extension](#contract) of the [Table](Table.md) abstraction for [partitioned tables](#implementations).

## Contract

### <span id="createPartition"> createPartition

```java
void createPartition(
InternalRow ident,
Map<String, String> properties)
```

Used when:

* `AlterTableAddPartitionExec` physical command is executed

### <span id="dropPartition"> dropPartition

```java
boolean dropPartition(
InternalRow ident)
```

Used when:

* `AlterTableDropPartitionExec` physical command is executed

### <span id="listPartitionIdentifiers"> listPartitionIdentifiers

```java
InternalRow[] listPartitionIdentifiers(
String[] names,
InternalRow ident)
```

Used when:

* `ShowPartitionsExec` physical command is executed

### <span id="loadPartitionMetadata"> loadPartitionMetadata

```java
Map<String, String> loadPartitionMetadata(
InternalRow ident)
```

### <span id="partitionExists"> partitionExists

```java
boolean partitionExists(
InternalRow ident)
```

Used when:

* `AlterTableAddPartitionExec` and `AlterTableDropPartitionExec` physical commands are executed

### <span id="partitionSchema"> partitionSchema

```java
StructType partitionSchema()
```

Used when:

* `AlterTableAddPartitionExec`, `AlterTableDropPartitionExec` and `ShowPartitionsExec` physical commands are executed
* `SupportsPartitionManagement` is requested to [partitionExists](#partitionExists)
* `CheckAnalysis` is requested to [checkShowPartitions](../CheckAnalysis.md#checkShowPartitions)
* `ResolvePartitionSpec` logical analysis rule is executed

### <span id="replacePartitionMetadata"> replacePartitionMetadata

```java
void replacePartitionMetadata(
InternalRow ident,
Map<String, String> properties)
```

## Implementations

* [SupportsAtomicPartitionManagement](SupportsAtomicPartitionManagement.md)
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ nav:
- SessionConfigSupport: connector/SessionConfigSupport.md
- SimpleTableProvider: connector/SimpleTableProvider.md
- StagedTable: connector/StagedTable.md
- SupportsAtomicPartitionManagement: connector/SupportsAtomicPartitionManagement.md
- SupportsDelete: connector/SupportsDelete.md
- SupportsDynamicOverwrite: connector/SupportsDynamicOverwrite.md
- SupportsMetadataColumns: connector/SupportsMetadataColumns.md
Expand Down

0 comments on commit ab0d01e

Please sign in to comment.