Thread: PL/Python - Execute return results

PL/Python - Execute return results

From
"Dean Grubb"
Date:
Hi,

plan = plpy.prepare("SELECT last_name FROM my_users WHERE first_name =
$1", [ "text" ])
rv = plpy.execute(plan, [ "name" ], 5)
return rv["last_name"]

If the SELECT command does not return any results, how do I
catch/check for this?

if rv == {} ?

or maybe

try:
  rv = plpy.execute(plan, [ "name" ], 5)
  return rv["last_name"]
except:
  ...
else:
  ...

can't seem to get either to work.

Re: PL/Python - Execute return results

From
Tino Wildenhain
Date:
Hi,

Dean Grubb wrote:
> Hi,
>
> plan = plpy.prepare("SELECT last_name FROM my_users WHERE first_name =
> $1", [ "text" ])
> rv = plpy.execute(plan, [ "name" ], 5)
> return rv["last_name"]
>
> If the SELECT command does not return any results, how do I
> catch/check for this?

I'm surprised to find you directly accessing attributes but reading
the documentation I see that plpy does not support db api 2.0 style
so things are a little bit different.

Did you test: if rv: ? I think this should work because in python
empty lists (and result sets) would compare to False.

Cheers
Tino

Attachment