From 98f3f15467a029214cf6f38cccfee00d53956cba Mon Sep 17 00:00:00 2001
From: Robert Butora <robert.butora@inaf.it>
Date: Thu, 10 Oct 2024 16:11:15 +0300
Subject: [PATCH] vlkb-obscore: fixes bug where (rest)frequency was taken from
 transition- instead of (rest)frequency-field of matadata

---
 .../src/vlkb-obscore/src/database/SqlSchema_INSERT.cpp       | 4 +++-
 .../engine/src/vlkb-obscore/src/parse_surveys_csv.cpp        | 5 +++--
 .../engine/src/vlkb-obscore/src/parse_surveys_csv.hpp        | 2 +-
 3 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/data-access/engine/src/vlkb-obscore/src/database/SqlSchema_INSERT.cpp b/data-access/engine/src/vlkb-obscore/src/database/SqlSchema_INSERT.cpp
index c9d2f68..29cd65d 100644
--- a/data-access/engine/src/vlkb-obscore/src/database/SqlSchema_INSERT.cpp
+++ b/data-access/engine/src/vlkb-obscore/src/database/SqlSchema_INSERT.cpp
@@ -308,7 +308,9 @@ void SqlSchema_INSERT::appendRow(
       // surv.survTransition "num unit" <-- for images
       try
       {
-         double val{parse_transition(surv.survTransition)};
+         //double val{parse_transition(surv.survTransition)};
+         const double SPEED_OF_LIGHT{299792458};// [m/s]
+         double val{SPEED_OF_LIGHT / surv.restFrequency};
          obscoreRow[em_min] = to_string(val); //get_wavelen(EM_PRECISION, hdu.key_values);
       }
       catch(const std::exception&  ex)
diff --git a/data-access/engine/src/vlkb-obscore/src/parse_surveys_csv.cpp b/data-access/engine/src/vlkb-obscore/src/parse_surveys_csv.cpp
index 0b37251..76d82ce 100644
--- a/data-access/engine/src/vlkb-obscore/src/parse_surveys_csv.cpp
+++ b/data-access/engine/src/vlkb-obscore/src/parse_surveys_csv.cpp
@@ -201,7 +201,7 @@ vector<survey> parse_surveys(string filename, bool skip_first_row)
             case 2: surv.species    = field; break;
             case 3: surv.transition = field; break;
                     // vlkb-internal extra-data
-            case 4: surv.rest_frequency_Hz = stoul(field); break;
+            case 4: surv.rest_frequency_Hz = stoull(field); break;
             case 5: break; // NOT USED surv.restf_fits_unit     = to_stringN(field, 20); break;
             case 6: surv.velocity_fits_unit  = to_velocity_unit(field); break;
                     // vlkb-internal did-resolution
@@ -218,7 +218,8 @@ vector<survey> parse_surveys(string filename, bool skip_first_row)
                      // security
             case 15: surv.auth_policy = to_authorization_policy(field); break;
             default:
-                     my_assert(false, __FILE__,__LINE__, "too many fileds in a row of surveys metadata file: " + filename);
+                     my_assert(false, __FILE__,__LINE__,
+                           "too many fileds in a row of surveys metadata file: " + filename);
          }
       }
       surveys.push_back(surv);
diff --git a/data-access/engine/src/vlkb-obscore/src/parse_surveys_csv.hpp b/data-access/engine/src/vlkb-obscore/src/parse_surveys_csv.hpp
index c03fec6..82f8ef7 100644
--- a/data-access/engine/src/vlkb-obscore/src/parse_surveys_csv.hpp
+++ b/data-access/engine/src/vlkb-obscore/src/parse_surveys_csv.hpp
@@ -28,7 +28,7 @@ struct survey
    std::string name;
    std::string species;
    std::string transition;
-   unsigned long rest_frequency_Hz;
+   unsigned long long rest_frequency_Hz;
 //   std::string restf_fits_unit;    // NOT used
    velocity_unit velocity_fits_unit;
    std::string storage_path;
-- 
GitLab