Thread: Backend Protocol Examples?

Backend Protocol Examples?

From
groups@ezotyrik.org (Ezotyrik)
Date:
I tried to do execute the following, but each time the program hangs
waiting on the ReceiveString.  Also, the new postgres process started
to handle the query has a really high CPU % as reported by top.

I'd love to see simple examples of conversing with the backend.  Also,
is there a nice summary of the protocol that offers more nitty-gritty
than the standard FE/BE discussion in the 7.4 docs?

Thanks!

        synchronized( pg_stream ) {
            try {
                pg_stream.SendChar('Q');
                pg_stream.Send( c.getEncoding().encode( "BEGIN" ));
                pg_stream.SendChar(0);
                pg_stream.flush();

                System.out.println("step1");
                str = pg_stream.ReceiveString( c.getEncoding() );
                System.out.println("step2");

Re: Backend Protocol Examples?

From
groups@ezotyrik.org (Ezotyrik)
Date:
Guess my next question is does anyone know of a more appropriate place
to ask this question?

I know some work was done on creating a COPY api -- hopefully that
code makes it into a future JDBC release, and I can study that.

groups@ezotyrik.org (Ezotyrik) wrote in message news:<3b4102b7.0311301948.59eae584@posting.google.com>...
> I tried to do execute the following, but each time the program hangs
> waiting on the ReceiveString.  Also, the new postgres process started
> to handle the query has a really high CPU % as reported by top.
>
> I'd love to see simple examples of conversing with the backend.  Also,
> is there a nice summary of the protocol that offers more nitty-gritty
> than the standard FE/BE discussion in the 7.4 docs?
>
> Thanks!
>
>         synchronized( pg_stream ) {
>             try {
>                 pg_stream.SendChar('Q');
>                 pg_stream.Send( c.getEncoding().encode( "BEGIN" ));
>                 pg_stream.SendChar(0);
>                 pg_stream.flush();
>
>                 System.out.println("step1");
>                 str = pg_stream.ReceiveString( c.getEncoding() );
>                 System.out.println("step2");

Re: Backend Protocol Examples?

From
Kris Jurka
Date:

On 4 Dec 2003, Ezotyrik wrote:

> Guess my next question is does anyone know of a more appropriate place
> to ask this question?

If your question is just about the fe/be protocol than -hackers is
probably a better place to ask, but if it's about java than here is
correct.  I read your original message, but wasn't inspired to reply
because I had no idea what you were trying to do.  Why are you trying to
directly communicate with the server?

I would start by looking at org.postgresql.core.QueryExecutor's
sendQueryV3 and sendQueryV2 methods.  You seem to be using the V2 method
(no message length).  Could that be the problem?

Kris Jurka


Re: Backend Protocol Examples?

From
groups@ezotyrik.org (Ezotyrik)
Date:
Thanks for the direction.

What am I trying to do?  I wanted to send a COPY command directly to
the backend.  COPY implemented as an input stream, would be fast, and
allow easy monitoring of % complete.

books@ejurka.com (Kris Jurka) wrote in message news:<Pine.LNX.4.33.0312091910290.18364-100000@leary.csoft.net>...
> On 4 Dec 2003, Ezotyrik wrote:
>
> > Guess my next question is does anyone know of a more appropriate place
> > to ask this question?
>
> If your question is just about the fe/be protocol than -hackers is
> probably a better place to ask, but if it's about java than here is
> correct.  I read your original message, but wasn't inspired to reply
> because I had no idea what you were trying to do.  Why are you trying to
> directly communicate with the server?
>
> I would start by looking at org.postgresql.core.QueryExecutor's
> sendQueryV3 and sendQueryV2 methods.  You seem to be using the V2 method
> (no message length).  Could that be the problem?
>
> Kris Jurka
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
>                http://www.postgresql.org/docs/faqs/FAQ.html