![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 29.02.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Postgres 8.2
mam nastepujaca tabele: T = (page_id. parent_page_id, title) title sobie odpuscimy bo nie jest istotne dla problemu (ale pobieram pozniej w zapytaniu) page_id | parent_page_id 2 | 0 4 | 3 3 | 2 6 | 4 7 | 2 9 | 0 10 | 9 czyli kazde page_id albo nie ma (0) albo posiada rodzica i tworzy sie nam pewna hierachia chcialbym wyswietlic finalnie takie drzewko: -2 --3 --7 ---4 ----6 -9 --10 napisalem funckje rekurencyjna i funkcje opakowujaca ktora zalatwia tabele tymczasowe itd: funkcja opakowujaca:
i glowna funkcja rekurencyjna:
reszta postu (za dlugi sie okazal) po uruchomieniu
dostaje takie messages: (bez bledow, bardziej debugowo) Kod NOTICE: NIE TWORZE tt_get_list_pages_temp NOTICE: NIE TWORZE tt_get_list_pages_result NOTICE: root=(2,"tytul strony") CONTEXT: SQL statement "select * from get_list_pages_rek(0)" PL/pgSQL function "get_list_pages_final" line 28 at execute statement NOTICE: depth=1 CONTEXT: SQL statement "select * from get_list_pages_rek(0)" PL/pgSQL function "get_list_pages_final" line 28 at execute statement NOTICE: root=(3,"inny tytul") CONTEXT: PL/pgSQL function "get_list_pages_rek" line 18 at execute statement SQL statement "select * from get_list_pages_rek(0)" PL/pgSQL function "get_list_pages_final" line 28 at execute statement NOTICE: depth=2 CONTEXT: PL/pgSQL function "get_list_pages_rek" line 18 at execute statement SQL statement "select * from get_list_pages_rek(0)" PL/pgSQL function "get_list_pages_final" line 28 at execute statement NOTICE: root=(4,kolejna) CONTEXT: PL/pgSQL function "get_list_pages_rek" line 18 at execute statement PL/pgSQL function "get_list_pages_rek" line 18 at execute statement SQL statement "select * from get_list_pages_rek(0)" PL/pgSQL function "get_list_pages_final" line 28 at execute statement NOTICE: depth=3 CONTEXT: PL/pgSQL function "get_list_pages_rek" line 18 at execute statement PL/pgSQL function "get_list_pages_rek" line 18 at execute statement SQL statement "select * from get_list_pages_rek(0)" PL/pgSQL function "get_list_pages_final" line 28 at execute statement NOTICE: root=(6,"inny tytul") CONTEXT: PL/pgSQL function "get_list_pages_rek" line 18 at execute statement PL/pgSQL function "get_list_pages_rek" line 18 at execute statement PL/pgSQL function "get_list_pages_rek" line 18 at execute statement SQL statement "select * from get_list_pages_rek(0)" PL/pgSQL function "get_list_pages_final" line 28 at execute statement NOTICE: depth=4 CONTEXT: PL/pgSQL function "get_list_pages_rek" line 18 at execute statement PL/pgSQL function "get_list_pages_rek" line 18 at execute statement PL/pgSQL function "get_list_pages_rek" line 18 at execute statement SQL statement "select * from get_list_pages_rek(0)" PL/pgSQL function "get_list_pages_final" line 28 at execute statement NOTICE: ITERACJA ZAKONCZONA CONTEXT: PL/pgSQL function "get_list_pages_rek" line 18 at execute statement PL/pgSQL function "get_list_pages_rek" line 18 at execute statement PL/pgSQL function "get_list_pages_rek" line 18 at execute statement PL/pgSQL function "get_list_pages_rek" line 18 at execute statement SQL statement "select * from get_list_pages_rek(0)" PL/pgSQL function "get_list_pages_final" line 28 at execute statement NOTICE: ITERACJA ZAKONCZONA CONTEXT: PL/pgSQL function "get_list_pages_rek" line 18 at execute statement PL/pgSQL function "get_list_pages_rek" line 18 at execute statement PL/pgSQL function "get_list_pages_rek" line 18 at execute statement SQL statement "select * from get_list_pages_rek(0)" PL/pgSQL function "get_list_pages_final" line 28 at execute statement NOTICE: ITERACJA ZAKONCZONA CONTEXT: PL/pgSQL function "get_list_pages_rek" line 18 at execute statement PL/pgSQL function "get_list_pages_rek" line 18 at execute statement SQL statement "select * from get_list_pages_rek(0)" PL/pgSQL function "get_list_pages_final" line 28 at execute statement NOTICE: root=(7,"tytul jakistam") CONTEXT: PL/pgSQL function "get_list_pages_rek" line 18 at execute statement SQL statement "select * from get_list_pages_rek(0)" PL/pgSQL function "get_list_pages_final" line 28 at execute statement NOTICE: depth=2 CONTEXT: PL/pgSQL function "get_list_pages_rek" line 18 at execute statement SQL statement "select * from get_list_pages_rek(0)" PL/pgSQL function "get_list_pages_final" line 28 at execute statement NOTICE: ITERACJA ZAKONCZONA CONTEXT: PL/pgSQL function "get_list_pages_rek" line 18 at execute statement PL/pgSQL function "get_list_pages_rek" line 18 at execute statement SQL statement "select * from get_list_pages_rek(0)" PL/pgSQL function "get_list_pages_final" line 28 at execute statement NOTICE: ITERACJA ZAKONCZONA CONTEXT: PL/pgSQL function "get_list_pages_rek" line 18 at execute statement SQL statement "select * from get_list_pages_rek(0)" PL/pgSQL function "get_list_pages_final" line 28 at execute statement NOTICE: root=(9,lalalal) CONTEXT: SQL statement "select * from get_list_pages_rek(0)" PL/pgSQL function "get_list_pages_final" line 28 at execute statement NOTICE: depth=2 CONTEXT: SQL statement "select * from get_list_pages_rek(0)" PL/pgSQL function "get_list_pages_final" line 28 at execute statement NOTICE: root=(10,xcczxczxc) CONTEXT: PL/pgSQL function "get_list_pages_rek" line 18 at execute statement SQL statement "select * from get_list_pages_rek(0)" PL/pgSQL function "get_list_pages_final" line 28 at execute statement NOTICE: depth=3 CONTEXT: PL/pgSQL function "get_list_pages_rek" line 18 at execute statement SQL statement "select * from get_list_pages_rek(0)" PL/pgSQL function "get_list_pages_final" line 28 at execute statement NOTICE: ITERACJA ZAKONCZONA CONTEXT: PL/pgSQL function "get_list_pages_rek" line 18 at execute statement PL/pgSQL function "get_list_pages_rek" line 18 at execute statement SQL statement "select * from get_list_pages_rek(0)" PL/pgSQL function "get_list_pages_final" line 28 at execute statement NOTICE: ITERACJA ZAKONCZONA CONTEXT: PL/pgSQL function "get_list_pages_rek" line 18 at execute statement SQL statement "select * from get_list_pages_rek(0)" PL/pgSQL function "get_list_pages_final" line 28 at execute statement NOTICE: ITERACJA ZAKONCZONA CONTEXT: SQL statement "select * from get_list_pages_rek(0)" PL/pgSQL function "get_list_pages_final" line 28 at execute statement Total query runtime: 20 ms. 7 rows retrieved. ogolnie mam nastepujace problemy: 1. Kod NOTICE: root=(2,"tytul strony") CONTEXT: SQL statement "select * from get_list_pages_rek(0)" PL/pgSQL function "get_list_pages_final" line 28 at execute statement NOTICE: depth=1 z tego co rozumiem, komunikat o wywolaniu 'get_list_pages_final' pojawia sie przed NOTICE: depth=1 a w kodzie NAJPIERW sie notice o depth a dopiero potem wywolanie - czy moze ty byc problem synchronizacji komunikatow? 2. zwraca ogolnie dobre wyniki, ale dla page_id = 7 liczy zle, pokazuje 1 a powinno byc dwa - widac w messages ze cos nie tak (rekurencyjne wywoalnia bez wyswietlania NOTICE: root = xxxx ) tam zapewne jest blad ale siedze nad tym juz dlugo i nie potrafie dojsc w ktorym momencie zaczyna sie kaszana (jest to powiazane tez z pkt. 1 mojego pytania) 3. wiem ze rozwiazanie nie jest optymalne, moze ma ktos lepszy pomysl na rozwiaznie? finalnie funckja ma pmagac rysowac drzewko zaleznosci dla stron w CMS'ie |
|
|
![]() |
![]() ![]()
Post
#2
|
|
![]() Administrator serwera Grupa: Developerzy Postów: 521 Pomógł: 13 Dołączył: 2.04.2004 Skąd: 52°24' N 16°56' E Ostrzeżenie: (0%) ![]() ![]() |
ltree
-------------------- Środowisko: Gentoo 2008.0 | Apache | PHP5 | PostgreSQL | MySQL | Postfix
Workstation: Gentoo 2008.0 | Firefox Thomas Alva Edison: "Aby coś wynaleźć wystarczy odrobina wyobraźni i sterta złomu ..." Odpowiedź na każde pytanie typu "Jak ...": "Nie da się, to nie PostgreSQL" |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 08:38 |