EXECUTE problems
I compiled the cvs version of pgsql yesterday afternoon and I'm having
some problems with EXECUTE statement. If I do the following the query is
executed:
PREPARE TEST_STATEMENT_1(text) AS insert into teste values ( $1 );
EXECUTE TEST_STATEMENT_1(null)
But why this doesn't?
PREPARE TEST_STATEMENT_1(text) AS insert into teste values ( $1 );
EXECUTE TEST_STATEMENT_1(DEFAULT)
Btw, the field is a varchar.
--
Felipe Schnack
Analista de Sistemas
felipes@ritterdosreis.br
Cel.: (51)91287530
Linux Counter #281893
Faculdade Ritter dos Reis
www.ritterdosreis.br
felipes@ritterdosreis.br
Fone/Fax.: (51)32303328
Have u define a value for Default ? / Vc definiu um valor para Default?
On 22 Nov 2002 12:25:46 -0200
Felipe Schnack <felipes@ritterdosreis.br> wrote:
I compiled the cvs version of pgsql yesterday afternoon and I'm having
some problems with EXECUTE statement. If I do the following the query is
executed:PREPARE TEST_STATEMENT_1(text) AS insert into teste values ( $1 );
EXECUTE TEST_STATEMENT_1(null)But why this doesn't?
PREPARE TEST_STATEMENT_1(text) AS insert into teste values ( $1 );
EXECUTE TEST_STATEMENT_1(DEFAULT)Btw, the field is a varchar.
--
Felipe Schnack
Analista de Sistemas
felipes@ritterdosreis.br
Cel.: (51)91287530
Linux Counter #281893Faculdade Ritter dos Reis
www.ritterdosreis.br
felipes@ritterdosreis.br
Fone/Fax.: (51)32303328---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo@postgresql.org so that your
message can get through to the mailing list cleanly
--
Ren� Salom�o
Ibiz Tecnologia -- www.ibiz.com.br
(011) 5579-3178 - R. 211
Yes, I did... sorry, the error message was "parser: parse error at or
near "default" at character 26". Seems to me that execute doesn't "know"
DEFAULT keyrword?
On Fri, 2002-11-22 at 13:18, Renê Salomão wrote:
Have u define a value for Default ? / Vc definiu um valor para Default?
On 22 Nov 2002 12:25:46 -0200
Felipe Schnack <felipes@ritterdosreis.br> wrote:I compiled the cvs version of pgsql yesterday afternoon and I'm having
some problems with EXECUTE statement. If I do the following the query is
executed:PREPARE TEST_STATEMENT_1(text) AS insert into teste values ( $1 );
EXECUTE TEST_STATEMENT_1(null)But why this doesn't?
PREPARE TEST_STATEMENT_1(text) AS insert into teste values ( $1 );
EXECUTE TEST_STATEMENT_1(DEFAULT)Btw, the field is a varchar.
--
Felipe Schnack
Analista de Sistemas
felipes@ritterdosreis.br
Cel.: (51)91287530
Linux Counter #281893Faculdade Ritter dos Reis
www.ritterdosreis.br
felipes@ritterdosreis.br
Fone/Fax.: (51)32303328---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo@postgresql.org so that your
message can get through to the mailing list cleanly--
Renê Salomão
Ibiz Tecnologia -- www.ibiz.com.br
(011) 5579-3178 - R. 211
--
Felipe Schnack
Analista de Sistemas
felipes@ritterdosreis.br
Cel.: (51)91287530
Linux Counter #281893
Faculdade Ritter dos Reis
www.ritterdosreis.br
felipes@ritterdosreis.br
Fone/Fax.: (51)32303328
Felipe Schnack <felipes@ritterdosreis.br> writes:
Yes, I did... sorry, the error message was "parser: parse error at
or near "default" at character 26". Seems to me that execute doesn't
"know" DEFAULT keyrword?
Yeah, the handling of the DEFAULT keyword is currently done within the
parsing of the INSERT statement itself. Not sure if that should be
changed...
You can insert the default value into a column by excluding it from
the column list in the INSERT statement -- that should work for you
here...
Cheers,
Neil
--
Neil Conway <neilc@samurai.com> || PGP Key ID: DB3C29FC
No, no... in pgsql 7.3 you can do "insert into test (columnName)
values (DEFAULT)" and it works! It just doesn't work for prepared
statements. Maybe I should join the pgsql-developers list?
On Fri, 2002-11-22 at 14:45, Neil Conway wrote:
Felipe Schnack <felipes@ritterdosreis.br> writes:
Yes, I did... sorry, the error message was "parser: parse error at
or near "default" at character 26". Seems to me that execute doesn't
"know" DEFAULT keyrword?Yeah, the handling of the DEFAULT keyword is currently done within the
parsing of the INSERT statement itself. Not sure if that should be
changed...You can insert the default value into a column by excluding it from
the column list in the INSERT statement -- that should work for you
here...Cheers,
Neil
--
Neil Conway <neilc@samurai.com> || PGP Key ID: DB3C29FC
--
Felipe Schnack
Analista de Sistemas
felipes@ritterdosreis.br
Cel.: (51)91287530
Linux Counter #281893
Faculdade Ritter dos Reis
www.ritterdosreis.br
felipes@ritterdosreis.br
Fone/Fax.: (51)32303328
You're right, I didn't :-)
I think it should... after all, why you can use DEFAULT in an normal
insert but you can't in an prepared insert statement?
I'm asking this because I'm implementing methods to support the new
DEFAULT keyword in pgsql 7.3 for the JDBC driver... but if I can't use
it in prepared sqls, a great deal of it usefulness will be shortened...
Thanks!
On Fri, 2002-11-22 at 16:20, Neil Conway wrote:
Felipe Schnack <felipes@ritterdosreis.br> writes:
No, no... in pgsql 7.3 you can do "insert into test (columnName)
values (DEFAULT)" and it works! It just doesn't work for prepared
statements. Maybe I should join the pgsql-developers list?Read my reply again, you clearly didn't understand me.
Cheers,
Neil
--
Neil Conway <neilc@samurai.com> || PGP Key ID: DB3C29FC
--
Felipe Schnack
Analista de Sistemas
felipes@ritterdosreis.br
Cel.: (51)91287530
Linux Counter #281893
Faculdade Ritter dos Reis
www.ritterdosreis.br
felipes@ritterdosreis.br
Fone/Fax.: (51)32303328
Import Notes
Reply to msg id not found: 8765up31r5.fsf@mailbox.samurai.com
Felipe Schnack <felipes@ritterdosreis.br> writes:
I think it should... after all, why you can use DEFAULT in an normal
insert but you can't in an prepared insert statement?
PREPARE isn't specific to INSERT statements. Even when you use it for
one, it's not very obvious how to assign a default value to the PREPARE
parameters; in any but the most trivial cases, there's not a one-for-one
correspondence between PREPARE parameters and target columns that might
(or might not) have defaults.
I'm asking this because I'm implementing methods to support the new
DEFAULT keyword in pgsql 7.3 for the JDBC driver... but if I can't use
it in prepared sqls, a great deal of it usefulness will be shortened...
PREPAREing a query as trivial as an INSERT ... VALUES is largely a
waste of time anyway. So I cannot get excited about this.
regards, tom lane
I think it should... after all, why you can use DEFAULT in an normal
insert but you can't in an prepared insert statement?PREPARE isn't specific to INSERT statements. Even when you use it for
one, it's not very obvious how to assign a default value to the PREPARE
parameters; in any but the most trivial cases, there's not a one-for-one
correspondence between PREPARE parameters and target columns that might
(or might not) have defaults.
Well, I don't know a lot about the inner workings of pgsql (I know very
little actually), but when you prepare the execution of an insert you
probably have "pointers" to database metadata for all mapped columns,
don't you? So if the DEFAULT keyword is found, it should fetch the
default value, and raise an exception if it doesn't exist...
I'm asking this because I'm implementing methods to support the new
DEFAULT keyword in pgsql 7.3 for the JDBC driver... but if I can't use
it in prepared sqls, a great deal of it usefulness will be shortened...PREPAREing a query as trivial as an INSERT ... VALUES is largely a
waste of time anyway. So I cannot get excited about this.
Well, would be a waste of time when you got this insert into a loop,
etc?
I don't think an SELECT statement is more adequate for "prepareing"
than an insert, so (sorry) I don't get your point
regards, tom lane
---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
--
Felipe Schnack
Analista de Sistemas
felipes@ritterdosreis.br
Cel.: (51)91287530
Linux Counter #281893
Faculdade Ritter dos Reis
www.ritterdosreis.br
felipes@ritterdosreis.br
Fone/Fax.: (51)32303328
How do I prepare an statement in C context, ie which libPQ function does
that
Felipe Schnack wrote:
Show quoted text
You're right, I didn't :-)
I think it should... after all, why you can use DEFAULT in an normal
insert but you can't in an prepared insert statement?
I'm asking this because I'm implementing methods to support the new
DEFAULT keyword in pgsql 7.3 for the JDBC driver... but if I can't use
it in prepared sqls, a great deal of it usefulness will be shortened...Thanks!
On Fri, 2002-11-22 at 16:20, Neil Conway wrote:
Felipe Schnack <felipes@ritterdosreis.br> writes:
No, no... in pgsql 7.3 you can do "insert into test (columnName)
values (DEFAULT)" and it works! It just doesn't work for prepared
statements. Maybe I should join the pgsql-developers list?Read my reply again, you clearly didn't understand me.
Cheers,
Neil
--
Neil Conway <neilc@samurai.com> || PGP Key ID: DB3C29FC
Medi Montaseri <medi.montaseri@intransa.com> writes:
How do I prepare an statement in C context, ie which libPQ function
does that
Prepared statements are currently implemented as SQL-level
constructs, so there's no specific libpq function for it.
http://developer.postgresql.org/docs/postgres/sql-prepare.html
http://developer.postgresql.org/docs/postgres/sql-execute.html
http://developer.postgresql.org/docs/postgres/sql-deallocate.html
Cheers,
Neil
--
Neil Conway <neilc@samurai.com> || PGP Key ID: DB3C29FC
Perfect...thank you....
Before I head out to read those links....do I have to re-prepare if I
loose my connection.
Or could/would the backend use it regardless of what connection I come
in....
Also I need some help using Async query technique....anyone used who I
can get some
help from....I need to confirm my understanding of how to use the Async
Query technique
Neil Conway wrote:
Show quoted text
Medi Montaseri <medi.montaseri@intransa.com> writes:
How do I prepare an statement in C context, ie which libPQ function
does thatPrepared statements are currently implemented as SQL-level
constructs, so there's no specific libpq function for it.http://developer.postgresql.org/docs/postgres/sql-prepare.html
http://developer.postgresql.org/docs/postgres/sql-execute.html
http://developer.postgresql.org/docs/postgres/sql-deallocate.htmlCheers,
Neil
Medi Montaseri <medi.montaseri@intransa.com> writes:
Before I head out to read those links....do I have to re-prepare if
I loose my connection. Or could/would the backend use it regardless
of what connection I come in....
No, prepared statements are currently stored locally, per-backend --
that means that a prepared statement can only be EXECUTE'd by the same
client that PREPARE'd it. We looked into storing prepared queries in
shared memory (in fact, the first implementations of the idea did just
that), but it turned out not to be worth the hassle.
Also I need some help using Async query technique....anyone used who
I can get some help from....I need to confirm my understanding of
how to use the Async Query technique
Do you have a specific question that isn't addressed by the
documentation?
http://developer.postgresql.org/docs/postgres/libpq-async.html
Cheers,
Neil
--
Neil Conway <neilc@samurai.com> || PGP Key ID: DB3C29FC