Columns are the fields of a Warehouse table. Use the Columns step of a Dimension or Fact table, a Dictionary or a Static table to add and edit them, set their keys, defaults and permissions, or import them from a SQL query.
Add or edit a column
Open the table. It opens in its own popup window. Go to the Columns step.
Click Add new column. A row named New Column and a number appears.
Click the name, type the name and press Enter. Clicking outside the cell also saves it.
Choose a Data Domain. The domain fills Data Type. To pick the type yourself, choose Custom.
Set the flags you need, for example M for a required column.
To describe a column, click the message icon next to its name, type the description in Column description, and click Save.
Click Apply.
Note
Column changes stay unsaved until you click Apply, and Revert discards them. Everything you changed on the step is saved together in one action: added, edited and deleted rows go in a single save, and a failed save applies nothing. A finished save reports "The columns have been updated successfully".
To add several columns at once, use the import button in the columns toolbar. Importing detects column definitions only, and a Dimension or Fact table remembers the last statement you used. See Import columns from SQL.
The columns grid
Column
What it shows
Name
The column name.
Comment
The column description. It is hidden by default.
Data Domain
The business type. Choosing one sets Data Type.
Data Type
The storage type. You can change it only when Data Domain is Custom.
PII Domain
The personal data type of the column.
PK
Primary Key.
FK
Foreign Key: a reference to another table.
M
Mandatory: the column is required.
CC
Computed Column: a script for calculated values.
Default Value
The value used when no value is given. Wrap text in single quotes, for example 'N/A'.
Permission Group
The groups that get access to the column.
PC
Partition Column. You cannot change it in the grid.
A table with no columns yet shows "No columns defined." The domain catalogue, its default value suggestions and the PII options are on Column data domains, defaults and PII. For every lock in the grid and why a cell cannot be changed, see The table columns grid.
Names and keys
Duplicate names and reserved names are checked without regard to capital letters. These names are reserved: Insert DateTime, Update DateTime, Delete DateTime, Source Id, Source System Id, Delete Flag, Effective From Date, Effective To Date, Insert Process ID, Update Process IDs, Security Labels, Valid From, Valid To, Snapshot Day and Snapshot DateTime.
While you type a name, a red icon next to it warns you: This is a system reserved name or Column name must be unique. A name that is already used on the table is refused with A column named "X" already exists on table "Y".
A dot in a name is allowed, but risky. When you press Enter on a name that contains a dot, DataMind OS warns you: "Dots are risky in column names - Consider renaming. SQL reads them as table.column."
Dimension, Fact and Dictionary tables already have a key column, so you do not add one. A Dictionary's key is named after the table, such as Countries Key, and cannot be changed. A Static table is different: mark at least one of your own columns as PK.
Every table needs at least one primary key column. A save that would leave none is refused with Table "X" requires at least one primary key column.
While a table is deployed, its primary key cannot change: Primary key of table "X" cannot change while it is deployed (column "Y"). Drop the table first, then change the primary key and deploy again.
System columns
DataMind OS adds system columns and locks them. Depending on the table and its settings, you may see Source ID, Source System ID, Delete Flag, Insert DateTime, Update DateTime, Insert Process ID, Update Process IDs, Posting Date, Security Labels, Valid From, Valid To, Is Latest, History Delete Flag, History Update DateTime, snapshot columns such as Snapshot From and Snapshot To, and the table's key column.
Hover over the lock icon to see "System columns cannot be edited."
Two cells stay editable: on Source ID you can set the PII Domain, and on Delete Flag you can change the Permission Group.
Delete and reorder
To remove columns, select their rows and click Delete selected columns; the button stays disabled until a row is selected. Rows you have added and not saved yet can always be removed.
System columns and columns that a transformation uses are not deleted. DataMind OS shows Some columns cannot be deleted and lists each blocked row with "(system column)" or "(used in transformation)". A system column that reaches the server is refused with Table "X" has system column(s) that cannot be deleted: ...
A column that Minds use is not deleted either. The message names the Minds that use it and asks you to remove the column from those Minds first; the same applies to removing a permission group from a column. The transformations are covered on Build, test and finalize a transformation.
Drag a row to reorder it. Locked rows and rows you have not saved yet cannot be moved. The order you leave is the order saved with Apply.
PII domains on columns
Set PII Domain to mark a column as personal data. An empty PII Domain means the column is not treated as personal data. The domain list is on Column data domains, defaults and PII; how the platform acts on tagged columns is set up on PII detection.
PII cannot be enabled on a View's columns: "PII cannot be enabled on view tables". See Views.
PII cannot be enabled on a locked column: PII cannot be enabled on locked column "X". Source ID is the one exception; it accepts a PII Domain even though the row is locked.
Change a column's type
Changing Data Type on a table that already holds data is checked first. When stored values cannot be converted, the change is refused and nothing is saved. The message begins with "TYPE_CHANGE_WOULD_NULL": it names the column, how many values cannot be converted and an example, and tells you to truncate the table first and reload after the change. You can review the current values on the table's Preview tab first; see Preview table data.
A custom type that does not resolve to a real storage type stops deployment: Column "X" has data type "Y", which resolves to the ClickHouse "Nothing" type and cannot be used in a table. Choose a concrete data type before deploying. Change the type in the grid, save, and deploy again.
Use AI on columns
You can ask DataMind OS to write column descriptions with AI, and to suggest which columns should make up the primary key.
On a table where any column has a PII Domain, both helpers are refused: "AI sample features are disabled for tables with PII columns".
Permissions
Changing columns needs Add/Modify Warehouse Objects, from the Data Layer permission category. Without it, saving is refused with a message that starts with "Access denied". See Warehouse permissions and row-level security.
The Permission Group cell controls which groups can read the column. Groups come from the table's General step, under Permission Groups; the admin group always has full access to all columns. If the table has no groups, the cell reads "No permission groups added to table" and offers Add in General.
What DataMind OS checks
Saving the step runs these checks, and the first failure shows as a notice:
Please add at least one custom column.
At least one user-defined column must be marked as a Primary Key. (Static tables only)
Column name cannot be empty (Row ID: N)
System reserved names found: ...
Duplicate column names found: ...
Reserved-name and duplicate checks ignore capital letters, so Amount and amount are treated as the same name.
Questions, answered
Are all my column changes saved together?
Yes. Apply sends everything you changed on the step as one save: added rows, edits and deletions together. A failed save applies nothing, so the table stays as it was.
Why does "New Column" disappear when I click the name?
New Column is a placeholder. Clicking the cell clears it so you can type your own name; if you leave the name empty, the save reports Column name cannot be empty (Row ID: N).
Why can't I name a column Valid From?
Valid From is a reserved name. A custom column cannot use any name from the reserved list, whatever the capital letters. DataMind OS shows System reserved names found: ... when you save.
Why can't I delete a column?
A column stays when it is a system column, a transformation uses it, or a Mind uses it. The step marks each blocked row with "(system column)" or "(used in transformation)", and a column that Minds use comes back with a message that names those Minds and asks you to remove it from them first.
Why can't I edit a system column?
System columns are locked: hovering the lock icon shows "System columns cannot be edited." Two cells stay open: the PII Domain on Source ID and the Permission Group on Delete Flag.
Why can't I set a PII Domain on a column?
A locked column refuses it: PII cannot be enabled on locked column "X". Source ID is the one locked column that accepts a PII Domain. A View's columns cannot be tagged at all: "PII cannot be enabled on view tables".
What does an empty PII Domain mean?
An empty PII Domain means the column is not treated as personal data, so it stays out of the platform's PII handling. See PII detection.
Why can't I change the data type of a column that holds data?
DataMind OS checks the stored values first. When some cannot be converted to the new type, the change is refused and nothing is saved. The message begins with "TYPE_CHANGE_WOULD_NULL" and names the column, the number of values and an example. Truncate the table first, then change the type and reload the data; see Deploy, run, truncate and monitor tables.
Can AI write my column descriptions?
Yes, and it can suggest which columns should make up the primary key. Both helpers are refused on a table where any column has a PII Domain: "AI sample features are disabled for tables with PII columns".
Why does the Permission Group cell say "No permission groups added to table"?
The table has no permission groups yet. Click Add in General, then add groups under Permission Groups on the General step.
Which permission do I need to change columns?
Add/Modify Warehouse Objects, from the Data Layer permission category. Without it, saving is refused with a message that starts with "Access denied". See Warehouse permissions and row-level security.