convert_to_rowstore()
Move a chunk from the columnstore to the rowstore
convert_to_rowstore() replaces decompress_chunk(), deprecated in 2.18.0.
Manually convert a specific chunk in the hypertable columnstore to the rowstore.
You don't need to do this to modify data. TimescaleDB supports INSERT, UPDATE, DELETE, and UPSERT directly on the
columnstore, decompressing only the batches your statement touches, not the whole chunk.
If you still choose to convert a chunk back to the rowstore before making changes, best practice is to stop any jobs moving chunks to the columnstore, convert the chunk back to the rowstore, then modify the data. After the update, convert the chunk to the columnstore and restart the jobs.
Samples
Section titled “Samples”To modify or add a lot of data to a chunk:
- Stop the jobs that are automatically adding chunks to the columnstore
Retrieve the list of jobs from the timescaledb_information.jobs view to find the job you need to alter_job.
SELECT alter_job(JOB_ID, scheduled => false); - Convert a chunk to update back to the rowstoreCALL convert_to_rowstore('_timescaledb_internal._hyper_2_2_chunk');
- Update the data in the chunk you added to the rowstore
Best practice is to structure your INSERT statement to include appropriate partition key values, such as the timestamp. TimescaleDB adds the data to the correct chunk:
INSERT INTO metrics (time, value)VALUES ('2025-01-01T00:00:00', 42); - Convert the updated chunks back to the columnstoreCALL convert_to_columnstore('_timescaledb_internal._hyper_1_2_chunk');
- Restart the jobs that are automatically converting chunks to the columnstoreSELECT alter_job(JOB_ID, scheduled => true);
Arguments
Section titled “Arguments”The syntax is:
CALL convert_to_rowstore( chunk = '<chunk_name>', if_columnstore = true | false);| Name | Type | Default | Required | Description |
|---|---|---|---|---|
chunk | REGCLASS | - | ✔ | Name of the chunk to be moved to the rowstore. |
if_columnstore | BOOLEAN | true | ✖ | Set to false so this call fails with an error rather than a warning if chunk is not in the columnstore |
Returns
Section titled “Returns”This function returns void.