returning results from plsql function to plpythonu function

Started by c kover 14 years ago6 messagesgeneral
Jump to latest
#1c k
shreeseva.learning@gmail.com

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

#2Lou Picciano
loupicciano@comcast.net
In reply to: c k (#1)
Re: returning results from plsql function to plpythonu function

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" <shreeseva.learning@gmail.com>
To: "pgsql-admin" <pgsql-admin@postgresql.org>, pgsql-general@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

#3c k
shreeseva.learning@gmail.com
In reply to: Lou Picciano (#2)
Re: 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 <loupicciano@comcast.net>wrote:

Show quoted text

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" <shreeseva.learning@gmail.com>
*To: *"pgsql-admin" <pgsql-admin@postgresql.org>,
pgsql-general@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

#4c k
shreeseva.learning@gmail.com
In reply to: c k (#3)
Re: returning results from plsql function to plpythonu function

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

On Sat, Dec 3, 2011 at 11:31 PM, c k <shreeseva.learning@gmail.com> wrote:

Show quoted text

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 <loupicciano@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" <shreeseva.learning@gmail.com>
*To: *"pgsql-admin" <pgsql-admin@postgresql.org>,
pgsql-general@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

#5Lou Picciano
loupicciano@comcast.net
In reply to: c k (#3)
Re: returning results from plsql function to plpythonu function

# 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" <shreeseva.learning@gmail.com>
To: "Lou Picciano" <loupicciano@comcast.net>
Cc: "pgsql-admin" <pgsql-admin@postgresql.org>, pgsql-general@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 < loupicciano@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" < shreeseva.learning@gmail.com >
To: "pgsql-admin" < pgsql-admin@postgresql.org >, pgsql-general@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

#6c k
shreeseva.learning@gmail.com
In reply to: Lou Picciano (#5)
Re: returning results from plsql function to plpythonu function

thanks.
it solved my problem.

C P Kulkarni

On Sun, Dec 4, 2011 at 12:21 AM, Lou Picciano <loupicciano@comcast.net>wrote:

Show quoted text

# 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

------------------------------
*From: *"c k" <shreeseva.learning@gmail.com>
*To: *"Lou Picciano" <loupicciano@comcast.net>
*Cc: *"pgsql-admin" <pgsql-admin@postgresql.org>,
pgsql-general@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 <loupicciano@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" <shreeseva.learning@gmail.com>
*To: *"pgsql-admin" <pgsql-admin@postgresql.org>,
pgsql-general@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