| 587 | |
| 588 | |
| 589 | void OMSFileStore::storeObservations_(const IdentificationData& id_data) |
| 590 | { |
| 591 | if (id_data.getObservations().empty()) return; |
| 592 | |
| 593 | createTable_("ID_Observation", |
| 594 | "id INTEGER PRIMARY KEY NOT NULL, " \ |
| 595 | "data_id TEXT NOT NULL, " \ |
| 596 | "input_file_id INTEGER NOT NULL, " \ |
| 597 | "rt REAL, " \ |
| 598 | "mz REAL, " \ |
| 599 | "UNIQUE (data_id, input_file_id), " \ |
| 600 | "FOREIGN KEY (input_file_id) REFERENCES ID_InputFile (id)"); |
| 601 | |
| 602 | SQLite::Statement query(*db_, "INSERT INTO ID_Observation VALUES (" \ |
| 603 | ":id, " \ |
| 604 | ":data_id, " \ |
| 605 | ":input_file_id, " \ |
| 606 | ":rt, " \ |
| 607 | ":mz)"); |
| 608 | Key id = 1; |
| 609 | for (const ID::Observation& obs : id_data.getObservations()) |
| 610 | { |
| 611 | query.bind(":id", id); |
| 612 | query.bind(":data_id", obs.data_id); |
| 613 | query.bind(":input_file_id", input_file_keys_[&(*obs.input_file)]); |
| 614 | if (obs.rt == obs.rt) |
| 615 | { |
| 616 | query.bind(":rt", obs.rt); |
| 617 | } |
| 618 | else // NaN |
| 619 | { |
| 620 | query.bind(":rt"); // NULL |
| 621 | } |
| 622 | if (obs.mz == obs.mz) |
| 623 | { |
| 624 | query.bind(":mz", obs.mz); |
| 625 | } |
| 626 | else // NaN |
| 627 | { |
| 628 | query.bind(":mz"); // NULL |
| 629 | } |
| 630 | execWithExceptionAndReset(query, 1, __LINE__, OPENMS_PRETTY_FUNCTION, "error inserting data"); |
| 631 | |
| 632 | observation_keys_[&obs] = id; |
| 633 | ++id; |
| 634 | } |
| 635 | storeMetaInfos_(id_data.getObservations(), "ID_Observation", observation_keys_); |
| 636 | } |
| 637 | |
| 638 | |
| 639 | void OMSFileStore::storeParentSequences_(const IdentificationData& id_data) |
nothing calls this directly
no test coverage detected