PL/pgSQL Debuger
max - 26-11-2005 22:28
PL/pgSQL Debuger
Kilka postów wcześniej Michał napisał: EMS ... Z ciekawszych rzeczy ma debug skryptów pl/pgsqla. http://www.sqlmanager.net/
Zastanawiam sie czy istnije jakies narzedzie OPEN SOURCE do debugowania PLPGSQL
Bo mi by sie przydało narzedzie tego typu. Czy ktoś inny potrzebował by czegoś takiego ? Bo moze w wolnych chwilach dopisał bym jakiegoś patcha do pgadmina :) albo zalozyl jakis oddzielny projekt na sf.net ?? (taki moj mały wkład w oprogamowania OS)
Mariusz
hubert depesz lubaczewski - 26-11-2005 22:28
Dnia 24.11.2005 max <max@max.pl> napisał/a: > Czy ktoś inny potrzebował by czegoś takiego ?
na pewno kupa ludzi by potrzebowała. na razie trzeba sobie radzić raise notice/log'ami - a to nie jest przesadnie eleganckie.
depesz
-- *------------------------------------------------------------------* najwspanialszą rzeczą jaką dało nam nowoczesne społeczeństwo, jest niesamowita wręcz łatwość unikania kontaktów z nim
max - 26-11-2005 22:28
hubert depesz lubaczewski napisał(a): > Dnia 24.11.2005 max <max@max.pl> napisał/a: > >>Czy ktoś inny potrzebował by czegoś takiego ? > > > na pewno kupa ludzi by potrzebowała. na razie trzeba sobie radzić raise > notice/log'ami - a to nie jest przesadnie eleganckie. > > depesz > A to ciekawe dlaczego jeszcze nikt tego nie napisał ? Wszyscy czekaja az robi ktoś inny ? Bo wydajemi sie ze napisanie parsera plpgsql to nie bedzie takie proste, i banalne.
I kolejna sprawa dlaczego tworcy postgresa gdy wykonuje procedure składowana to w logach mam tylko dla zapytania np "select * from test2(20)"
LOG: statement: select * from test2(20) LOG: duration: 31.437 ms
A to nie mozna by było dodać troche wiecej danych ??
I kolejna ciekawostka jak wykonuje to samo zapytanie pod programem z firmy EMS to mam:
LOG: statement: select * from test2(20) LOG: statement: SELECT 1 CONTEXT: SQL statement "SELECT 1" PL/pgSQL function "test2" line 5 at for with integer loopvar LOG: statement: SELECT 9 CONTEXT: SQL statement "SELECT 9" PL/pgSQL function "test2" line 5 at for with integer loopvar LOG: statement: SELECT '000'|| $1 ::varchar CONTEXT: SQL statement "SELECT '000'|| $1 ::varchar" PL/pgSQL function "test2" line 5 at return next LOG: statement: SELECT 10 CONTEXT: SQL statement "SELECT 10" PL/pgSQL function "test2" line 5 at for with integer loopvar LOG: statement: SELECT 99 CONTEXT: SQL statement "SELECT 99" PL/pgSQL function "test2" line 5 at for with integer loopvar LOG: statement: SELECT '00'|| $1 ::varchar CONTEXT: SQL statement "SELECT '00'|| $1 ::varchar" PL/pgSQL function "test2" line 5 at return next LOG: statement: SELECT 100 CONTEXT: SQL statement "SELECT 100" PL/pgSQL function "test2" line 5 at for with integer loopvar LOG: statement: SELECT 999 CONTEXT: SQL statement "SELECT 999" PL/pgSQL function "test2" line 5 at for with integer loopvar LOG: statement: SELECT '0'|| $1 ::varchar CONTEXT: SQL statement "SELECT '0'|| $1 ::varchar" PL/pgSQL function "test2" line 5 at return next LOG: statement: SELECT 1000 CONTEXT: SQL statement "SELECT 1000" PL/pgSQL function "test2" line 5 at for with integer loopvar LOG: statement: SELECT 9999 CONTEXT: SQL statement "SELECT 9999" PL/pgSQL function "test2" line 5 at for with integer loopvar LOG: statement: SELECT $1 ::varchar CONTEXT: SQL statement "SELECT $1 ::varchar" PL/pgSQL function "test2" line 5 at return next LOG: duration: 55.273 ms LOG: statement: SELECT oid, typname FROM pg_type WHERE oid<10000 LOG: duration: 2.563 ms
Ciekawe dlczego zapytanie to generuje wiecej do LOG-u ???
A ciało funkcji test2: CREATE OR REPLACE FUNCTION "public"."test3" (integer) RETURNS SETOF varchar AS $body$ DECLARE subtotal ALIAS FOR $1; BEGIN FOR i IN 1..9 LOOP RETURN next '000'||i::varchar; END LOOP; FOR i IN 100..999 LOOP RETURN next '0'||i::varchar; END LOOP; FOR i IN 1000..9999 LOOP RETURN next i::varchar; END LOOP;
RETURN ; END; $body$ LANGUAGE 'plpgsql' VOLATILE;
=?ISO-8859-2?Q?Micha=B3_Zaborowski?= - 26-11-2005 22:29
Dnia 2005-11-24 10:21, Użytkownik hubert depesz lubaczewski napisał : > Dnia 24.11.2005 max <max@max.pl> napisał/a: > >>Czy ktoś inny potrzebował by czegoś takiego ? > > na pewno kupa ludzi by potrzebowała. na razie trzeba sobie radzić raise > notice/log'ami - a to nie jest przesadnie eleganckie. > Eeee, piszę w Delphi więc jestem wygodnicki. Logowanie logowaniem, ale jak mam zdebugować coś to wolę cywilizowane sposoby. ;) EMS - jak pisałem ma opcję debugu. Każdą procedurę może sobie zdebugować. Są breakpointy, na dole ekranu widać wszystkie zmienne.
-- Pozdrawiam, Michał Zaborowski (TeXXaS)
hubert depesz lubaczewski - 26-11-2005 22:29
Dnia 24.11.2005 Michał Zaborowski <michal.zaborowski@_nospam_wp.pl> napisał/a: > Eeee, piszę w Delphi więc jestem wygodnicki. Logowanie > logowaniem, ale jak mam zdebugować coś to wolę cywilizowane > sposoby. ;)
szczerze? procedury które piszę zazwyczaj nie generują problemów. a jak generują to są rpoblemy z wydajnością. a te monitoruje mi się o *niebo* wygodniem raise log'ami niż czymkolwiek innym.
depesz
-- *------------------------------------------------------------------* najwspanialszą rzeczą jaką dało nam nowoczesne społeczeństwo, jest niesamowita wręcz łatwość unikania kontaktów z nim
acure - 26-11-2005 22:29
"hubert depesz lubaczewski" <depesz@eo.pl> wrote in message news:slrndoc4km.knt.depesz@localhost.localdomain.. . > Dnia 24.11.2005 Michał Zaborowski <michal.zaborowski@_nospam_wp.pl> napisał/a: > > Eeee, piszę w Delphi więc jestem wygodnicki. Logowanie > > logowaniem, ale jak mam zdebugować coś to wolę cywilizowane > > sposoby. ;) > > szczerze? procedury które piszę zazwyczaj nie generują problemów. a jak > generują to są rpoblemy z wydajnością. a te monitoruje mi się o *niebo* > wygodniem raise log'ami niż czymkolwiek innym. > święta prawda.
Pozdrawiam - Acure
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Oracle, SQL, PL/SQL. Jak =?ISO-8859-2?Q?napisa=E6_zapytanie=2C?==?ISO-8859-2?Q?_kt=F3re_zwr=F3ci_nazw=EA_atrybutu=2C_kt=F3reg o?==?ISO-8859-2?Q?_warto=B6ci_spe=B3niaj=B1_zadany_warunek?=
www.fotosearch.pl & www.fotosearch.com >> ceny
[MySQL] Jakie kodowanie aby =?ISO-8859-2?Q?by=B3y_i_pl_ogo?==?ISO-8859-2?Q?nki_i_o_z_dwoma_kropkami_nad_nim_=3F_=3B?==?IS O-8859-2?Q?=29?=
Oracle PL/SQL Wstawianie =?ISO-8859-2?Q?wynik=F3w_kolekcji_d?==?ISO-8859-2?Q?o_tabeli?=
[Oracle PL/SQL] Cursor i zapis =?ISO-8859-2?Q?rekord=F3w_do_?==?ISO-8859-2?Q?kolejnych_plik=F3w?=
MySQL + UTF8 + PL znaki - jest =?ISO-8859-2?Q?jaki=B6_logiczny?==?ISO-8859-2?Q?_spos=F3b_=3F?=
[Forum] www.forum.weeb.pl
Photoshop CS/CS PL - Biblia
[pgsql] Akcja w =?iso-8859-2?b?emFsZb9ub7ZjaQ==?= od liczby zmienionych =?iso-8859-1?q?rekord=F3w?=
[sql][pgsql] zapytanie sql
zanotowane.pldoc.pisz.plpdf.pisz.plshutter.opx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|