Store interruptible as indexable column in p_ci_job_definitions

Problem

interruptible is immutable processing data that is used when auto-canceling pipelines.

Proposal

This data should be moved into ci_job_definitions because (1) it's defined in the job yaml and (2) is immutable.

Maybe we can index it as a separate column ci_job_definitions.interruptible.

Marius proposed to use generated columns feature https://www.postgresql.org/docs/current/ddl-generated-columns.html to keep values in sync.

Design requirements

Note: The ci_job_definitions table (PoC in !193948 (closed)) contains a checksum column that is the checksum of config column. Any data we choose to index needs to be stored inside config AND as a separate column. This is because we want to ensure the checksum remains the unique identifier of the definition.

Edited by 🤖 GitLab Bot 🤖