Re: PL/pgSQL & OVERLAPS operator - Mailing list pgsql-general

From Tom Lane
Subject Re: PL/pgSQL & OVERLAPS operator
Date
Msg-id 28749.1269358413@sss.pgh.pa.us
Whole thread Raw
In response to Re: PL/pgSQL & OVERLAPS operator  ("A. Kretschmer" <andreas.kretschmer@schollglas.com>)
Responses Re: PL/pgSQL & OVERLAPS operator (SOLVED!)  (Tuo Pe <tuo_pe@yahoo.com>)
List pgsql-general
"A. Kretschmer" <andreas.kretschmer@schollglas.com> writes:
> In response to Tuo Pe :
>> CREATE OR REPLACE FUNCTION TryOverlap(text, text) RETURNS boolean AS $$
>> DECLARE
>> ts_start timestamp with time zone := CAST ($1 AS TIMESTAMP WITH TIME ZONE);
>> ts_end timestamp with time zone := CAST ($2 AS TIMESTAMP WITH TIME ZONE);
>> alku timestamp with time zone;
>> loppu timestamp with time zone;
>> BEGIN
>> SELECT alku,loppu FROM overlaptest WHERE id = 1 INTO alku,loppu;
>> IF ((alku,loppu) OVERLAPS (ts_start,ts_end)) THEN
>> RETURN true;
>> END IF;
>> RETURN false;
>> END;
>> $$ LANGUAGE plpgsql;
>>
>> However, it always seems to return the value false. What's the problem here?
> You have alku and loppu as variable and as table-column, that's a bad
> idea, maybe that's an error, i'm not sure.

Yeah --- that SELECT will result in no change to the variables, ie,
they'll still be NULL.  So the OVERLAPS always fails.

            regards, tom lane

pgsql-general by date:

Previous
From: Devrim GÜNDÜZ
Date:
Subject: 2nd set of PostgreSQL 9.0 Alpha4 RPMs are available
Next
From: Tom Lane
Date:
Subject: Re: strange