From: | "Ian Bell" <ib(at)ianbellsoftware(dot)com> |
---|---|
To: | "'Adrian Klaver'" <adrian(dot)klaver(at)aklaver(dot)com> |
Cc: | <pgsql-general(at)lists(dot)postgresql(dot)org> |
Subject: | RE: PGAdmin4 debugger - unable to call ltree functions |
Date: | 2018-04-26 21:54:28 |
Message-ID: | !&!AAAAAAAAAAAYAAAAAAAAADldbAmb6+pIq6nH7MxZl07CgAAAEAAAALYUIq6UE45EghB5Y7qKGA8BAAAAAA==@ianbellsoftware.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hello Adrian,
I just tried your suggestion and it generates the same error. For
verification, here is the function run in the debugger.
create or replace function TestLtreeV2( MyArg text ) returns void
as $$
declare
_testVar integer;
begin
SELECT 1 INTO _testvar FROM TableLtree WHERE MyPath = text2ltree( MyArg )
LIMIT 1;
raise notice '_testVar = %', _testVar;
end;
$$ language plpgsql;
Ian
-----Original Message-----
From: Adrian Klaver [mailto:adrian(dot)klaver(at)aklaver(dot)com]
Sent: 26 April, 2018 17:23
To: ib(at)ianbellsoftware(dot)com <mailto:ib(at)ianbellsoftware(dot)com> ;
pgsql-general(at)lists(dot)postgresql(dot)org
<mailto:pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: PGAdmin4 debugger - unable to call ltree functions
On 04/26/2018 01:22 PM, Ian Bell wrote:
> I have recently started working with the PGAdmin4 debugger and have
> encountered a particular problem when testing my own functions that,
> in turn, call functions from the ltree module. The sample code below
> successfully runs in PSQL. However, it fails when run in the
> PGAdmin4 debugger. Specifically, the debugger generates the
> following error message when it executes the first call to '*text2ltree*':
>
> ERROR: syntax error at position 0
>
> CONTEXT: SQL statement "SELECT exists ( select 1 from TableLtree where
> MyPath = text2ltree( MyArg ) )"
>
> PL/pgSQL function testltree(text) line 5 at IF
>
> I have successfully been able to use the debugger to walk through many
> of my test functions providing they only use standard SQL variables.
> However, I am unable to debug code that calls the ltree functions.
Are they all using the 'IF exists ..' construct?
What if you try a very simple function, something like(not tested):
create or replace function TestLtree2(MyArg text)
returns void
as $$
declare
_testvar integer;
begin
SELECT 1 INTO _testvar FROM TableLtree WHERE MyPath = text2ltree( MyArg
) LIMIT 1;
end;
$$ language plpgsql;
>
> Is this a problem/bug with the debugger or am I doing something wrong?
> If I am doing something wrong then can you tell me what it is?
>
> Thank you,
>
> Ian
>
> *_Sample Code in a SQL file:_*
>
> create extension if not exists ltree;
>
> create extension if not exists pldbgapi;
>
> create table if not exists TableLtree(
>
> ID int
>
> primary key generated by default as identity,
>
> MyPath ltree
>
> );
>
> create or replace function TestLtree(
>
> MyArg text
>
> )
>
> returns void
>
> as $$
>
> declare
>
> status boolean;
>
> begin
>
> if exists ( select 1 from TableLtree where MyPath = text2ltree(
> MyArg ) ) then
>
> status := true;
>
> else
>
> status := false;
>
> end if;
>
> if status = false then
>
> insert into TableLtree( MyPath ) values ( text2ltree(
> MyArg ) );
>
> end if;
>
> end;
>
> $$ language plpgsql;
>
> select * from TestLtree( 'a.b.c' );
>
--
Adrian Klaver
<mailto:adrian(dot)klaver(at)aklaver(dot)com> adrian(dot)klaver(at)aklaver(dot)com
From | Date | Subject | |
---|---|---|---|
Next Message | Adrian Klaver | 2018-04-26 22:04:27 | Re: PGAdmin4 debugger - unable to call ltree functions |
Previous Message | Adrian Klaver | 2018-04-26 21:33:26 | Re: Long running INSERT+SELECT query |