Skip to content

Procedure Records

The procedure_records table stores individual data records generated by procedure runs, designed for columnar storage.

Table Schema

Column Name Data Type Description
id UUID Primary Key. Unique identifier for the procedure record.
timestamp TIMESTAMP Timestamp of the record.
procedure_id UUID Foreign key referencing the procedure.
procedure_name String(255) The name of the procedure.
procedure_run_id UUID Foreign key referencing the procedure run.
procedure_data JSONB Additional JSONB data for the procedure.
experiment_id UUID Foreign key referencing the experiment.
experiment_name String(255) The name of the experiment.
season_id UUID Foreign key referencing the season.
season_name String(255) The name of the season.
site_id UUID Foreign key referencing the site.
site_name String(255) The name of the site.
record_file String(255) The file where the record is stored.
record_info JSONB Additional JSONB data for the record.

Constraints and Indexes

  • Unique Constraint: A UniqueConstraint on timestamp, procedure_id, procedure_name, procedure_run_id, experiment_id, experiment_name, season_id, season_name, site_id, and site_name ensures uniqueness for each record.
  • GIN Index: A GIN index named idx_procedure_records_record_info is applied to the record_info column to optimize queries on the JSONB data.

Methods

  • filter_records: A class method that allows filtering procedure records based on various parameters such as start_timestamp, end_timestamp, procedure_names, procedure_run_ids, experiment_names, season_names, and site_names. This method leverages a PostgreSQL function gemini.filter_procedure_records for efficient filtering.