ClickHouse / ClickHouse/ClickHouse
Deletion Error with Ephemeral Column in Table
- Dominant language
- C++
- Stars
- 49.9k
- Forks
- 9k
- Avg merge
- 21h 32m
- Merged PRs (30d)
- 515
Description
Summary
An error occurs when attempting to delete rows from a table that includes an EPHEMERAL column, even when the deletion condition is unrelated to the EPHEMERAL column.
Steps to Reproduce
1. Create a table with an EPHEMERAL column:
```sql
create table dba_dev.EphemerealTest on cluster '{cluster}'
(
Name String,
`ID` Array(String) MATERIALIZED `IDEphemereal`,
`IDEphemereal` Array(String) EPHEMERAL defaultValueOfTypeName('Array(String)')
)
ENGINE = ReplicatedMergeTree()
order by Name;
```
2. Insert data into the table:
```sql
insert into dba_dev.EphemerealTest(Name, IDEphemereal) values (['Test'], ['1']);
insert into dba_dev.EphemerealTest(Name, IDEphemereal) values (['Test2'], ['2']);
```
3. Run a SELECT query to confirm data:
```sql
select Name, ID from dba_dev.EphemerealTest;
```
result:
```
['Test2'] ['2']
['Test'] ['1']
```
4. Try to delete a row with a condition unrelated to the EPHEMERAL column:
```sql
delete from dba_dev.EphemerealTest where has(Name, 'Test2');
```
Expected Behavior
The row should be deleted without error.
Actual Behavior
An error is raised:
```
Missing columns: 'IDEphemereal' while processing query: 'IDEphemereal', required columns: 'IDEphemereal' 'IDEphemereal'. (UNKNOWN_IDENTIFIER) (version 24.5.4.49 (official build))
```
Additional Information
• ClickHouse version: 24.5.4.49 (official build)
• It seems that EPHEMERAL columns are causing issues when performing delete operations, even if the deletion condition does not involve these columns.
Suggested Solution (If applicable)
Allow delete operations to proceed without requiring the EPHEMERAL column if it is not directly involved in the query.
Contributor guide
Assessment
This issue has not been assessed yet.