Thread: returning results from plsql function to plpythonu function

returning results from plsql function to plpythonu function

From
c k
Date:
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

Re: [ADMIN] returning results from plsql function to plpythonu function

From
Lou Picciano
Date:
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
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

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:
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


Re: [ADMIN] returning results from plsql function to plpythonu function

From
Lou Picciano
Date:
# 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

thanks.
it solved my problem.

C P Kulkarni

On Sun, Dec 4, 2011 at 12:21 AM, Lou Picciano <loupicciano@comcast.net> wrote:
# 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