Запрос перестал работать после обновления postgres - PullRequest
0 голосов
/ 24 октября 2018

У меня была очень странная проблема, и я действительно не могу понять, что я делаю неправильно.Я получил новый проект для исправления, и предыдущий разработчик сказал мне, что некоторые функции перестали работать после обновления Postgresql.Используя метод проб и ошибок, я обнаружил, что страница перестает (?) Загружаться при запуске именно этого куска кода.Честно говоря, это даже не ОСТАНОВКА абсолютно, страница загружается и загружается бесконечно.Это код запроса:

SELECT DISTINCT ON (z."Zlecenie") z."Zlecenie",
    sz."Nazwa",
    erp."Odbiorca",
    erp."ZleconePrzez",
    erp."OpisWysylki",
    z."DataWplywu",
    to_char(z."PlanowaneZakonczenie", 'YYYY-MM-DD'::text) AS "ZaplanowanaDataZlecenia",
    to_char(z."PlanowaneZakonczenie", 'HH24:MI'::text) AS "ZaplanowanyCzasZlecenia",
    z."PlanowaneZakonczenie",

    ( SELECT min("ZleceniaERP"."StatusZlecenia") AS min
          FROM "ZleceniaERP"
          WHERE "ZleceniaERP"."Zlecenie"::text = z."Zlecenie"::text) AS "StatusZlecenia",

    ( SELECT "SprawdzCzyZlecenieMaTowaryNieWidniejaceWMagazynie" (z."Zlecenie"::text) AS "SprawdzCzyZlecenieMaTowaryNieWidniejaceWMagazynie") AS "CzyTowarySaWMagazynie",

    ( SELECT sum("ZleceniaERP"."Zamowiono") AS sum
          FROM "ZleceniaERP"
          WHERE "ZleceniaERP"."Zlecenie"::text = z."Zlecenie"::text) AS "IloscPar",

    ( SELECT round(wg."WAGA", 1) AS "WAGA"
          FROM "WagaZlecenia_view" wg
          WHERE wg."Zlecenie"::text = z."Zlecenie"::text) AS "WAGA",

    ( SELECT sum("ZleceniaERP"."Zrealizowano") AS ilosczre
          FROM "ZleceniaERP"
          WHERE "ZleceniaERP"."Zlecenie"::text = z."Zlecenie"::text) AS ilosczre,

    ( SELECT round(wg."OBJETOSC", 1) AS "OBJETOSC"
           FROM "WagaZlecenia_view" wg
           WHERE wg."Zlecenie"::text = z."Zlecenie"::text) AS "OBJETOSC",

    to_char(z."DataFaktury", 'YYYY-MM-DD'::text) AS "DataFaktury",
    z."NumerFaktury"
FROM "ZleceniaERP" z,
    "Towary" t,
    "StatusyZlecenia" sz,
    "ERPNaglowki" erp
WHERE sz."ID" = z."StatusZlecenia" AND z."Towar"::text = t."Barkod"::text AND 
z."NieWyswietlajWKolejce" = false AND erp."Zlecenie"::text = z."Zlecenie"::text;

А вот 2 запроса из вышеприведенного запроса, которые прерывают загрузку:

( SELECT round(wg."WAGA", 1) AS "WAGA"
      FROM "WagaZlecenia_view" wg
      WHERE wg."Zlecenie"::text = z."Zlecenie"::text) AS "WAGA",

и это:

( SELECT round(wg."OBJETOSC", 1) AS "OBJETOSC"
       FROM "WagaZlecenia_view" wg
      WHERE wg."Zlecenie"::text = z."Zlecenie"::text) AS "OBJETOSC",

Здеськод создания WagaZlecenia_view, кстати, этот запрос работает нормально.

CREATE OR REPLACE VIEW public."WagaZlecenia_view" AS
    SELECT z."Zlecenie",
      sum(z."Zamowiono"::double precision * pt."WagaJednostkowaERP")::numeric AS "WAGA",
      sum(z."Zamowiono"::double precision * pt."ObjetoscERP" / pt."OpakowanieIloscERP")::numeric AS "OBJETOSC"
    FROM "ZleceniaERP" z,
      "Porownanie_Trawers_view" pt
    WHERE z."Towar"::text = pt."Towar"::text AND z."Zamowiono" <> 0
    GROUP BY z."Zlecenie"
    ORDER BY z."Zlecenie";
ALTER TABLE public."WagaZlecenia_view"
OWNER TO postgres;

Я действительно не знаю, что здесь могло произойти.Сейчас я использую PostgreSQL 9.3.24, к сожалению, я не знаю, какая версия была до обновления.Заранее благодарим за каждый ответ!

...