Discussion:
[ADMIN] returning results from plsql function to plpythonu function
(too old to reply)
c k
2011-12-03 17:50:16 UTC
Permalink
Hello friends,
I am checking some logic which includes two functions. One is plsql
function which returns text. Second function is plpythonu and contains one
statement which outputs notice

e.g.
results = plpy.execute("select * from software.func1();")
plpy.notice("%s" % col for col in results[0])

The same result is returned as a final return as notice. But it does not
outputs the correct result which is returned from func1 (text in this
case). Rather it outputs notice as
NOTICE: <generator object <genexpr> at 0xb578cb6c>
It doesn't prints the correct notice even by using
plpy.notice("%s" %results)

What can be the problem here?
Thanks for help.


C P Kulkarni
Lou Picciano
2011-12-03 17:55:25 UTC
Permalink
CP - You're missing a line in the middle; one which will extract specific content(s) from $results.

Because, yes, without such a line, python will only return the object reference.

Lou Picciano

----- Original Message -----
From: "c k" <***@gmail.com>
To: "pgsql-admin" <pgsql-***@postgresql.org>, pgsql-***@postgresql.org
Sent: Saturday, December 3, 2011 12:50:16 PM
Subject: [ADMIN] returning results from plsql function to plpythonu function

Hello friends,
I am checking some logic which includes two functions. One is plsql function which returns text. Second function is plpythonu and contains one statement which outputs notice

e.g.
results = plpy.execute("select * from software.func1();")
plpy.notice("%s" % col for col in results[0])

The same result is returned as a final return as notice. But it does not outputs the correct result which is returned from func1 (text in this case). Rather it outputs notice as
NOTICE: <generator object <genexpr> at 0xb578cb6c>
It doesn't prints the correct notice even by using
plpy.notice("%s" %results)

What can be the problem here?
Thanks for help.


C P Kulkarni
c k
2011-12-03 18:01:39 UTC
Permalink
can you please give me the example
I am not a python programmer.

C P Kulkarni
Post by Lou Picciano
CP - You're missing a line in the middle; one which will extract specific
content(s) from $results.
Because, yes, without such a line, python will only return the object reference.
Lou Picciano
------------------------------
*Sent: *Saturday, December 3, 2011 12:50:16 PM
*Subject: *[ADMIN] returning results from plsql function to plpythonu
function
Hello friends,
I am checking some logic which includes two functions. One is plsql
function which returns text. Second function is plpythonu and contains one
statement which outputs notice
e.g.
results = plpy.execute("select * from software.func1();")
plpy.notice("%s" % col for col in results[0])
The same result is returned as a final return as notice. But it does not
outputs the correct result which is returned from func1 (text in this
case). Rather it outputs notice as
NOTICE: <generator object <genexpr> at 0xb578cb6c>
It doesn't prints the correct notice even by using
plpy.notice("%s" %results)
What can be the problem here?
Thanks for help.
C P Kulkarni
c k
2011-12-03 18:14:47 UTC
Permalink
when I modified the notice statement as
plpy.notice('%s' %results[0])

it prints notice as
NOTICE: {'func1': 'function return text'}

I didn't understand why it is showing 'func1' in the results[0] ?


C P Kulkarni
Post by c k
can you please give me the example
I am not a python programmer.
C P Kulkarni
Post by Lou Picciano
CP - You're missing a line in the middle; one which will extract specific
content(s) from $results.
Because, yes, without such a line, python will only return the object reference.
Lou Picciano
------------------------------
*Sent: *Saturday, December 3, 2011 12:50:16 PM
*Subject: *[ADMIN] returning results from plsql function to plpythonu
function
Hello friends,
I am checking some logic which includes two functions. One is plsql
function which returns text. Second function is plpythonu and contains one
statement which outputs notice
e.g.
results = plpy.execute("select * from software.func1();")
plpy.notice("%s" % col for col in results[0])
The same result is returned as a final return as notice. But it does not
outputs the correct result which is returned from func1 (text in this
case). Rather it outputs notice as
NOTICE: <generator object <genexpr> at 0xb578cb6c>
It doesn't prints the correct notice even by using
plpy.notice("%s" %results)
What can be the problem here?
Thanks for help.
C P Kulkarni
Lou Picciano
2011-12-03 18:51:31 UTC
Permalink
# Assuming your query here returns col1, col2, etc.:
results = plpy.execute("select * from software.func1();")

# these lines will return the results ----------
# - (where the first member of the array is the 'row number' of the result:)

value1 = results[0][ "col1" ]
value2 = results[0][ "col2" ]

# --- Wanna see?

plpy.notice("-- value1: ",value1)
plpy.notice("-- value2: ",value2)


can you please give me the example
I am not a python programmer.

Nor am I!
Looks like your example, btw, is attempting string operations on something not yet quite a string!

Pythons are dangerous. Be careful!

Lou Picciano

----- Original Message -----
From: "c k" <***@gmail.com>
To: "Lou Picciano" <***@comcast.net>
Cc: "pgsql-admin" <pgsql-***@postgresql.org>, pgsql-***@postgresql.org
Sent: Saturday, December 3, 2011 1:01:39 PM
Subject: Re: [ADMIN] returning results from plsql function to plpythonu function

can you please give me the example
I am not a python programmer.

C P Kulkarni



On Sat, Dec 3, 2011 at 11:25 PM, Lou Picciano < ***@comcast.net > wrote:




CP - You're missing a line in the middle; one which will extract specific content(s) from $results.

Because, yes, without such a line, python will only return the object reference.

Lou Picciano


From: "c k" < ***@gmail.com >
To: "pgsql-admin" < pgsql-***@postgresql.org >, pgsql-***@postgresql.org
Sent: Saturday, December 3, 2011 12:50:16 PM
Subject: [ADMIN] returning results from plsql function to plpythonu function




Hello friends,
I am checking some logic which includes two functions. One is plsql function which returns text. Second function is plpythonu and contains one statement which outputs notice

e.g.
results = plpy.execute("select * from software.func1();")
plpy.notice("%s" % col for col in results[0])

The same result is returned as a final return as notice. But it does not outputs the correct result which is returned from func1 (text in this case). Rather it outputs notice as
NOTICE: <generator object <genexpr> at 0xb578cb6c>
It doesn't prints the correct notice even by using
plpy.notice("%s" %results)

What can be the problem here?
Thanks for help.


C P Kulkarni
c k
2011-12-03 19:32:45 UTC
Permalink
thanks.
it solved my problem.

C P Kulkarni
Post by c k
results = plpy.execute("select * from software.func1();")
# these lines will return the results ----------
# - (where the first member of the array is the 'row number' of the result:)
value1 = results[0][ "col1" ]
value2 = results[0][ "col2" ]
# --- Wanna see?
plpy.notice("-- value1: ",value1)
plpy.notice("-- value2: ",value2)
can you please give me the example
I am not a python programmer.
Nor am I!
Looks like your example, btw, is attempting string operations on something
not yet quite a string!
Pythons are dangerous. Be careful!
Lou Picciano
------------------------------
*Sent: *Saturday, December 3, 2011 1:01:39 PM
*Subject: *Re: [ADMIN] returning results from plsql function to plpythonu
function
can you please give me the example
I am not a python programmer.
C P Kulkarni
Post by Lou Picciano
CP - You're missing a line in the middle; one which will extract specific
content(s) from $results.
Because, yes, without such a line, python will only return the object reference.
Lou Picciano
------------------------------
*Sent: *Saturday, December 3, 2011 12:50:16 PM
*Subject: *[ADMIN] returning results from plsql function to plpythonu
function
Hello friends,
I am checking some logic which includes two functions. One is plsql
function which returns text. Second function is plpythonu and contains one
statement which outputs notice
e.g.
results = plpy.execute("select * from software.func1();")
plpy.notice("%s" % col for col in results[0])
The same result is returned as a final return as notice. But it does not
outputs the correct result which is returned from func1 (text in this
case). Rather it outputs notice as
NOTICE: <generator object <genexpr> at 0xb578cb6c>
It doesn't prints the correct notice even by using
plpy.notice("%s" %results)
What can be the problem here?
Thanks for help.
C P Kulkarni
Loading...