diff --git a/procs/lastprice_logic.pg.sql b/procs/lastprice_logic.pg.sql index 1cf5cd0..a0e9f6a 100644 --- a/procs/lastprice_logic.pg.sql +++ b/procs/lastprice_logic.pg.sql @@ -35,40 +35,31 @@ BEGIN END IF; -- 1. Prefer the most recent of dss/dsq if either is within the age threshold - IF (dsq_date IS NOT NULL AND dsq_date > (CURRENT_DATE - age_threshold)) - OR (dss_date IS NOT NULL AND dss_date > (CURRENT_DATE - age_threshold)) THEN - IF dsq_date IS NOT NULL AND (dss_date IS NULL OR dsq_date >= dss_date) AND dsq_date > (CURRENT_DATE - age_threshold) THEN - result := dsq || jsonb_build_object('source', 'dsq'); - ELSIF dss_date IS NOT NULL AND dss_date > (CURRENT_DATE - age_threshold) THEN - result := dss || jsonb_build_object('source', 'dss'); - END IF; + IF dss_date IS NOT NULL AND dss_date > (CURRENT_DATE - age_threshold) THEN + result := dss || jsonb_build_object('source', 'dss'); -- 2. If both dss/dsq are older than the threshold, use the most recent of mrs/mrq if either exists - ELSIF (mrq_date IS NOT NULL OR mrs_date IS NOT NULL) THEN - IF mrq_date IS NOT NULL AND (mrs_date IS NULL OR mrq_date >= mrs_date) THEN - result := mrq || jsonb_build_object('source', 'mrq'); - ELSIF mrs_date IS NOT NULL THEN - result := mrs || jsonb_build_object('source', 'mrs'); - END IF; + ELSIF mrs_date IS NOT NULL AND mrs_date > (CURRENT_DATE - age_threshold) THEN + result := mrs || jsonb_build_object('source', 'mrs'); -- 3. If all are at least as old as the threshold, pick the least oldest price available ELSE best := NULL; best_date := NULL; - IF dsq_date IS NOT NULL THEN - best := dsq || jsonb_build_object('source', 'dsq'); - best_date := dsq_date; - END IF; - IF dss_date IS NOT NULL AND (best_date IS NULL OR dss_date > best_date) THEN - best := dss || jsonb_build_object('source', 'dss'); - best_date := dss_date; - END IF; - IF mrq_date IS NOT NULL AND (best_date IS NULL OR mrq_date > best_date) THEN - best := mrq || jsonb_build_object('source', 'mrq'); - best_date := mrq_date; - END IF; - IF mrs_date IS NOT NULL AND (best_date IS NULL OR mrs_date > best_date) THEN - best := mrs || jsonb_build_object('source', 'mrs'); - best_date := mrs_date; - END IF; + -- IF dsq_date IS NOT NULL THEN + -- best := dsq || jsonb_build_object('source', 'dsq'); + -- best_date := dsq_date; + -- END IF; + -- IF dss_date IS NOT NULL AND (best_date IS NULL OR dss_date > best_date) THEN + -- best := dss || jsonb_build_object('source', 'dss'); + -- best_date := dss_date; + -- END IF; + -- IF mrq_date IS NOT NULL AND (best_date IS NULL OR mrq_date > best_date) THEN + -- best := mrq || jsonb_build_object('source', 'mrq'); + -- best_date := mrq_date; + -- END IF; + -- IF mrs_date IS NOT NULL AND (best_date IS NULL OR mrs_date > best_date) THEN + -- best := mrs || jsonb_build_object('source', 'mrs'); + -- best_date := mrs_date; + -- END IF; result := best; END IF; RETURN result;