Re: pgAdmin debugger hangs on Windows 8 after closing debug window - Mailing list pgadmin-support
From | EDUARDO ESTEBAN |
---|---|
Subject | Re: pgAdmin debugger hangs on Windows 8 after closing debug window |
Date | |
Msg-id | !&!AAAAAAAAAAAYAAAAAAAAAICbSszm/itNlE+hGPwXcbnCgAAAEAAAAOkY9BOryndPrbRL5iBll34BAAAAAA==@deisa.net Whole thread Raw |
In response to | Re: pgAdmin debugger hangs on Windows 8 after closing debug window (Ashesh Vashi <ashesh.vashi@enterprisedb.com>) |
Responses |
Re: pgAdmin debugger hangs on Windows 8 after
closing debug window
|
List | pgadmin-support |
Dear Ashesh,
Thank you for your fast answer.
It fails with any function or trigger that i have tested it always on Windows 8 x64 and i have tested with several pgAdmin and PostgreSQL versions on Windows 8.
Anyway here there are the details of the version and a example to test.
PostgreSQL 9.2.4 on x64
Compiled by Visual C++ build 1600 64 bit
PGAdmin 1.16.1 April 2 2013 REV: REL-1_16_1
PostgreSQL and pgAdmin are installed using the Windows installer provided by Enterprisedb from the download page of postgresql.org
The database coding by default is UTF8 but i change it to WIN1252 once the database is created.
These are all the steps to reproduce the problem:
-- CREATE DATABASE
CREATE DATABASE "i.TEST.2013.0"
WITH OWNER = postgres
TABLESPACE = pg_default
LC_COLLATE = 'Spanish_Spain.1252'
LC_CTYPE = 'Spanish_Spain.1252'
CONNECTION LIMIT = -1;
WITH OWNER = postgres
TABLESPACE = pg_default
LC_COLLATE = 'Spanish_Spain.1252'
LC_CTYPE = 'Spanish_Spain.1252'
CONNECTION LIMIT = -1;
--UPDATE DATABASE CODING
update "pg_catalog"."pg_database" set encoding=24 where datname='i.TEST.2013.0'
-- ACTIVATE DEBUGGER
CREATE EXTENSION pldbgapi;
CREATE EXTENSION pldbgapi;
-- CREATE TABLE
CREATE TABLE "COUNTRY_COU"
(
cou_id character varying(2) NOT NULL DEFAULT ''::character varying, -- ID ISO 2
cou_iso3 character varying(3), -- ISO 3
cou_countryname character varying(100), -- País
cou_isocode integer, -- Cod. ISO
cou_flag bytea, -- Bandera
CONSTRAINT cou_id PRIMARY KEY (cou_id) -- ID ISO 2
)
WITH (
OIDS=FALSE
);
ALTER TABLE "COUNTRY_COU"
OWNER TO postgres;
-- Index: cou_countryname
(
cou_id character varying(2) NOT NULL DEFAULT ''::character varying, -- ID ISO 2
cou_iso3 character varying(3), -- ISO 3
cou_countryname character varying(100), -- País
cou_isocode integer, -- Cod. ISO
cou_flag bytea, -- Bandera
CONSTRAINT cou_id PRIMARY KEY (cou_id) -- ID ISO 2
)
WITH (
OIDS=FALSE
);
ALTER TABLE "COUNTRY_COU"
OWNER TO postgres;
-- Index: cou_countryname
-- DROP INDEX cou_countryname;
CREATE UNIQUE INDEX cou_countryname
ON "COUNTRY_COU"
USING btree
(cou_countryname);
ON "COUNTRY_COU"
USING btree
(cou_countryname);
-- Index: cou_iso3
-- DROP INDEX cou_iso3;
CREATE UNIQUE INDEX cou_iso3
ON "COUNTRY_COU"
USING btree
(cou_iso3);
ON "COUNTRY_COU"
USING btree
(cou_iso3);
-- Index: cou_isocode
-- DROP INDEX cou_isocode;
CREATE UNIQUE INDEX cou_isocode
ON "COUNTRY_COU"
USING btree
(cou_isocode);
ON "COUNTRY_COU"
USING btree
(cou_isocode);
-- CREATE FUNCTION
CREATE OR REPLACE FUNCTION isql_country_b_trigger()
RETURNS trigger AS
$BODY$
DECLARE
BEGIN
IF (TG_OP = 'INSERT') OR (TG_OP = 'UPDATE') THEN
IF NEW.cou_id IS NULL THEN
RAISE 'cou_id is null' USING ERRCODE = '42000';
END IF;
IF NEW.cou_iso3 IS NULL THEN
NEW.cou_iso3 = NEW.cou_id;
END IF;
IF NEW.cou_countryname IS NULL THEN
NEW.cou_countryname = NEW.cou_id;
END IF;
RETURN NEW;
ELSIF (TG_OP = 'DELETE') THEN
RETURN OLD;
ELSIF (TG_OP = 'UPDATE') THEN
RETURN NEW;
END IF;
RETURN NULL;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 1000;
ALTER FUNCTION isql_country_b_trigger()
OWNER TO postgres;
RETURNS trigger AS
$BODY$
DECLARE
BEGIN
IF (TG_OP = 'INSERT') OR (TG_OP = 'UPDATE') THEN
IF NEW.cou_id IS NULL THEN
RAISE 'cou_id is null' USING ERRCODE = '42000';
END IF;
IF NEW.cou_iso3 IS NULL THEN
NEW.cou_iso3 = NEW.cou_id;
END IF;
IF NEW.cou_countryname IS NULL THEN
NEW.cou_countryname = NEW.cou_id;
END IF;
RETURN NEW;
ELSIF (TG_OP = 'DELETE') THEN
RETURN OLD;
ELSIF (TG_OP = 'UPDATE') THEN
RETURN NEW;
END IF;
RETURN NULL;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 1000;
ALTER FUNCTION isql_country_b_trigger()
OWNER TO postgres;
--CREATE TRIGGER
CREATE TRIGGER isql_tri_0_b_iud_country_cou
BEFORE INSERT OR UPDATE OR DELETE
ON "COUNTRY_COU"
FOR EACH ROW
EXECUTE PROCEDURE isql_country_b_trigger();
BEFORE INSERT OR UPDATE OR DELETE
ON "COUNTRY_COU"
FOR EACH ROW
EXECUTE PROCEDURE isql_country_b_trigger();
Finally, to reproduce the problem open one pgAdmin Window to debug the trigger function.
Open another pgAdmin Window and insert a record on the table.
When the debug Window is closed then the pgAdmin freezes and it should be closed from the task manager.
Thank you in advance
Eduardo Esteban
De: pgadmin-support-owner@postgresql.org [mailto:pgadmin-support-owner@postgresql.org] En nombre de Ashesh Vashi
Enviado el: lunes, 21 de octubre de 2013 13:08
Para: EDUARDO ESTEBAN
CC: pgadmin-support
Asunto: Re: [pgadmin-support] pgAdmin debugger hangs on Windows 8 after closing debug window
Hi Eduardo Esteban,
Can you please share the pl/pgsql for debugging?
(We require that to understand the function structure. i.e. return values, arguments, etc.)
We will also require following information:
1. pgAdmin III version
2. OS version
3. Database server version
NOTE: A step by step reproduction steps will be very helpful.
--
--

On Mon, Oct 21, 2013 at 4:25 PM, EDUARDO ESTEBAN <eduardo@deisa.net> wrote:
Hi,When using the debugger in pgAdmin on Windows 8 debugging any pl/pgsql funtion it hangs and the pgAdmin should be close from the task manager.This only happens on whatever version of pgAdmin used on Windows 8 64 bits (for example pgAdmin 1.18.0).To reproduce the problem try to debug a pl/pgsql function and after the debug window shows, try to close the debug window and you will see that the pgAdmin hangs and it should be restarted.Thank you in advance.Eduardo Esteban
--
Thanks & Regards,
Ashesh Vashi
EnterpriseDB INDIA: Enterprise PostgreSQL Company

pgadmin-support by date: