Commit 753c9974 authored by Hiro's avatar Hiro 🏄
Browse files

Revert "Improve function and materialized view query logic"

This reverts commit c4997ef7.
parent cd3bb96b
Loading
Loading
Loading
Loading
+19 −22
Original line number Diff line number Diff line
@@ -298,19 +298,19 @@ $$ LANGUAGE 'plpgsql';

CREATE MATERIALIZED VIEW search_data_materialized AS
SELECT
  d.date AS date,
  f.fingerprint_base64 AS fingerprint_base64,
  eea.scanned AS scanned,
  eea.exitaddress AS exitaddress,
  sea.validafter AS validafter,
  n.nickname AS nickname,
  sea.exit AS exit,
  sea.oraddress AS oraddress,
  d.address24 AS address24 -- Including address24 for filtering in the function
FROM date_address24 d
LEFT JOIN fingerprint f ON d.fingerprint_id = f.fingerprint_id
LEFT JOIN exitlistentry_exitaddress eea ON d.fingerprint_id = eea.fingerprint_id
LEFT JOIN statusentry_oraddress sea ON d.fingerprint_id = sea.fingerprint_id
  da.date,
  f.fingerprint_base64,
  eea.scanned,
  eea.exitaddress,
  sea.validafter,
  n.nickname,
  sea.exit,
  sea.oraddress,
  da.address24
FROM date_address24 da
LEFT JOIN fingerprint f ON da.fingerprint_id = f.fingerprint_id
LEFT JOIN exitlistentry_exitaddress eea ON da.fingerprint_id = eea.fingerprint_id
LEFT JOIN statusentry_oraddress sea ON da.fingerprint_id = sea.fingerprint_id
LEFT JOIN nickname n ON sea.nickname_id = n.nickname_id;

CREATE OR REPLACE FUNCTION search_by_date_address24 (
@@ -321,7 +321,7 @@ CREATE OR REPLACE FUNCTION search_by_date_address24 (
      scanned TIMESTAMP WITHOUT TIME ZONE,
      exitaddress INET,
      validafter TIMESTAMP WITHOUT TIME ZONE,
      nickname CHARACTER VARYING,
      nickname CHARACTER VARYING(19),
      exit BOOLEAN,
      oraddress INET) AS $$
BEGIN
@@ -335,15 +335,12 @@ BEGIN
    exit,
    oraddress
  FROM search_data_materialized
  WHERE
    (address24 = search_address24 AND date BETWEEN search_date - INTERVAL '2 days' AND search_date + INTERVAL '1 day')
    OR
    (scanned IS NOT NULL AND scanned::DATE BETWEEN search_date - INTERVAL '2 days' AND search_date + INTERVAL '1 day')
    OR
    (validafter IS NOT NULL AND validafter::DATE BETWEEN search_date - INTERVAL '1 day' AND search_date + INTERVAL '1 day');
  WHERE address24 = search_address24
    AND (date BETWEEN search_date - 2 AND search_date + 1
         OR scanned::DATE BETWEEN search_date - 2 AND search_date + 1
         OR validafter::DATE BETWEEN search_date - 1 AND search_date + 1);
END;
$$ LANGUAGE plpgsql;

$$ LANGUAGE 'plpgsql';

-- Migrate from the earlier schema in exonerator.sql to this schema. This
-- migration happens in two big loops, one over statusentry and one over