Обсуждение: Re: Problem trying to implement version 3.0 of the PostgreSQL protocol

Поиск
Список
Период
Сортировка

Re: Problem trying to implement version 3.0 of the PostgreSQL protocol

От
Carlos Guzman Alvarez
Дата:
Hello:
> Sounds like you are sending junk following the Parse message.


You are right thanks very much, but now i have another problem, i don't 
get response from the postgresql server, hummm this is what i'm sending 
for test:
    Byte1 ('P')
    Int32 (40)
    String ('')
    String ('SELECT * FROM  public.test_table')
    Int16 (0)


The buffer is anything like this (without commas):


40,0,0,0,40,0,83,69,76,69,67,84,32,42,32,70,82,79,77,32,32,112,117,98,108,105,99,46,116,101,115,116,95,116,97,98,108,101,0,0,0


Any idea ??




-- 
Best regards

Carlos Guzmán Álvarez
Vigo-España

"No tengo dones especiales.Sólo soy apasionadamente curioso"
Albert Einstein, científico.






Re: Problem trying to implement version 3.0 of the PostgreSQL

От
Carlos Guzman Alvarez
Дата:
Hello:

> Your Parse message looks fine, but the server will not actually send its
> ParseComplete response until you send a Sync or Flush message.  The idea
> is that Parse is usually going to be part of a series of operations, and
> you don't want a separate network packet coming back for each operation
> in the series.  When you do want to see the results of an operation
> before you issue the next one, you can issue either Flush (just forces
> out the pending messages) or Sync (which does all the stuff that was
> formerly done at the end of a Query message).
> 
> Error messages do get flushed out immediately, which is why you were
> able to see the response in the other case.

Thanks very much it's working well now :D





-- 
Best regards

Carlos Guzmán Álvarez
Vigo-Spain

"No tengo dones especiales.Sólo soy apasionadamente curioso"
Albert Einstein, científico.



Re: Problem trying to implement version 3.0 of the PostgreSQL protocol

От
Tom Lane
Дата:
Carlos Guzman Alvarez <carlosga@telefonica.net> writes:
> You are right thanks very much, but now i have another problem, i don't 
> get response from the postgresql server, hummm this is what i'm sending 
> for test:

Your Parse message looks fine, but the server will not actually send its
ParseComplete response until you send a Sync or Flush message.  The idea
is that Parse is usually going to be part of a series of operations, and
you don't want a separate network packet coming back for each operation
in the series.  When you do want to see the results of an operation
before you issue the next one, you can issue either Flush (just forces
out the pending messages) or Sync (which does all the stuff that was
formerly done at the end of a Query message).

Error messages do get flushed out immediately, which is why you were
able to see the response in the other case.
        regards, tom lane