> ## Documentation Index
> Fetch the complete documentation index at: https://artie.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# System columns

> Artie adds system columns to your destination tables for change tracking, soft deletes, and source metadata.

Artie can add columns prefixed with `__artie_` to your destination tables. These columns track how and when each row was changed. You can enable them under your [table settings](/pipelines/tables#table-settings).

## History mode columns

These columns are automatically added to tables using [history mode](/pipelines/tables#history-mode). They provide a full audit trail of every change.

| Column                  | Data Type      | Description                                                                                 |
| ----------------------- | -------------- | ------------------------------------------------------------------------------------------- |
| `__artie_operation`     | `STRING`       | The type of change that was made to the row. Possible values: `CREATE`, `UPDATE`, `DELETE`. |
| `__artie_updated_at`    | `TIMESTAMP_TZ` | The timestamp of when Artie processed the change.                                           |
| `__artie_db_updated_at` | `TIMESTAMP_TZ` | The timestamp of when the change occurred in your source database.                          |

## Soft delete columns

These columns are added when [soft deletes](/pipelines/tables#skip-deletes) are enabled. Instead of removing deleted rows, Artie flags them so you can retain the data.

| Column                    | Data Type | Description                                                                                                                                    |
| ------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `__artie_delete`          | `BOOLEAN` | `true` if the row was deleted in the source database.                                                                                          |
| `__artie_only_set_delete` | `BOOLEAN` | **S3 destinations only.** `true` if the row was deleted and the event contains no other column values to update - only the delete flag itself. |

<Accordion title="What is the difference between __artie_delete and __artie_only_set_delete?">
  Both columns indicate a deletion, but they serve different purposes:

  * `__artie_delete` is set to `true` whenever a row is deleted.
  * `__artie_only_set_delete` is set to `true` when the delete event carries no additional column values - meaning there is nothing to update in the destination besides the delete flag.

  For example, if a row is updated and then deleted within the same flush cycle, the event contains both the updated values and the deletion. In that case, `__artie_delete = true` and `__artie_only_set_delete = false`.
</Accordion>

## Static columns

Static columns let you add custom key-value pairs to every row written to your destination table. Each static column has a fixed name and value that you define - the value does not change per row.

This is useful when you need to tag rows with metadata that isn't present in the source, such as an environment label, a data source identifier, or a tenant ID.

You can configure static columns under your [table settings](/pipelines/tables#table-settings).

## Source metadata columns

These columns provide context about where each row originated and the underlying database event that produced it. You can enable them under your [table settings](/pipelines/tables#table-settings).

| Column                           | Data Type | Description                                                                                                                       |
| -------------------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `__artie_full_source_table_name` | `STRING`  | The fully qualified source table name in the format `dbName.schemaName.tableName`.                                                |
| `__artie_source_metadata`        | `JSON`    | Source metadata from the change event, such as the log sequence number (LSN), transaction ID, and other database-specific fields. |
