Обсуждение: Frontend - Backend protocol change?

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

Frontend - Backend protocol change?

От
Bruce Badger
Дата:
I am testing the Smalltalk PostgreSQL drivers against PostgreSQL 7.2 and
I am seeing a change in the messages I get back from the backend for one
of my tests, even though the protocol version number is "0 2 0 0" in
both cases.

To run this test, I switch on message logging and connect to a 7.1
database (Redhat RPM version 7.1.3-2) and all is well.  The log for this
test is attached as trace-7.1.3-2.txt.

When I run the same test, from the same Smalltalk image, when connecting
to a 7.2 database (Redhat RPM version 7.2.1-5) the sequence of messages
is different, and my driver code flags an exception.  The log for this
test is attached as trace-7.2.1-5.txt.

The difference is that at 7.1 there is a CompletedResponseMessage
terminating each CursorResponseMessage.  At 7.2 there is only one
CompletedResponseMessage which terminates the second
CursorResponseMessage (so I got two CursorResponseMessage's, one
immediately after the other).

Here is the snippet from each log showing the query ('update
exdiTest21data set name = ''Harry'' where name = ''Larry'';') and the
responses from the back end.

My question is:  which is "right" the 7.1 behavior, or the 7.2 behavior?

*************************************
 From the 7.1 log:

June 28, 2002 5:30:48.718
 >>>>>   QueryMessage
'update exdiTest21data set name = ''Harry'' where name = ''Larry'';'

June 28, 2002 5:30:48.733
<<<<<   CursorResponseMessage
Cursor name: blank

June 28, 2002 5:30:48.736
<<<<<   CompletedResponseMessage
Command tag: INSERT 273804 1

June 28, 2002 5:30:48.740
<<<<<   CursorResponseMessage
Cursor name: blank

June 28, 2002 5:30:48.744
<<<<<   CompletedResponseMessage
Command tag: UPDATE 1

June 28, 2002 5:30:48.749
<<<<<   ReadyForQueryMessage

********************************************
 From the 7.2 log:

June 28, 2002 5:06:31.176
 >>>>>   QueryMessage
'update exdiTest21data set name = ''Harry'' where name = ''Larry'';'

June 28, 2002 5:06:31.304
<<<<<   CursorResponseMessage
Cursor name: blank

June 28, 2002 5:06:31.307
<<<<<   CursorResponseMessage
Cursor name: blank

June 28, 2002 5:06:31.311
<<<<<   CompletedResponseMessage
Command tag: UPDATE 1

[at this point my driver flags an error]


*********************************************
{28 Jun 2 5:30:48 am}     ExternalDatabaseConnection>>connect:
    Version: External Database Interface - Release 7.0
PostgreSQL EXDI layer 1.0 023

June 28, 2002 5:30:48.037
>>>>>    StartupPacket
Packet size: 296
Protocol version number: #[0 2 0 0]
Database name: 'test1'
User name: 'bbadger'
Additional arguments: ''
Debugging TTY: ''

June 28, 2002 5:30:48.068
<<<<<    AuthenticationOKMessage

June 28, 2002 5:30:48.079
<<<<<    BackendKeyDataMessage
Process ID: 10166
Secret Key: 317563785

June 28, 2002 5:30:48.083
<<<<<    ReadyForQueryMessage

June 28, 2002 5:30:48.088
>>>>>    QueryMessage
'drop table exdiTest21data'

June 28, 2002 5:30:48.508
<<<<<    CompletedResponseMessage
Command tag: DROP

June 28, 2002 5:30:48.511
<<<<<    ReadyForQueryMessage

June 28, 2002 5:30:48.517
>>>>>    QueryMessage
'drop table exdiTest21log'

June 28, 2002 5:30:48.543
<<<<<    CompletedResponseMessage
Command tag: DROP

June 28, 2002 5:30:48.546
<<<<<    ReadyForQueryMessage

June 28, 2002 5:30:48.550
>>>>>    QueryMessage
'drop rule exdiTest21data_update'

June 28, 2002 5:30:48.557
<<<<<    ErrorResponseMessage
Error message: ERROR:  Rule or view "exditest21data_update" not found

June 28, 2002 5:30:48.560
<<<<<    ReadyForQueryMessage

June 28, 2002 5:30:48.565
>>>>>    QueryMessage
'create table exdiTest21data (id int, name text, phone varchar(21))'

June 28, 2002 5:30:48.600
<<<<<    CompletedResponseMessage
Command tag: CREATE

June 28, 2002 5:30:48.604
<<<<<    ReadyForQueryMessage

June 28, 2002 5:30:48.608
>>>>>    QueryMessage
'create table exdiTest21log (oldName text, newName text)'

June 28, 2002 5:30:48.629
<<<<<    CompletedResponseMessage
Command tag: CREATE

June 28, 2002 5:30:48.632
<<<<<    ReadyForQueryMessage

June 28, 2002 5:30:48.636
>>>>>    QueryMessage
'    create rule exdiTest21data_update as on update to exdiTest21data    do insert into exdiTest21log (oldName, newName
)values (old.name, new.name);' 

June 28, 2002 5:30:48.648
<<<<<    CompletedResponseMessage
Command tag: CREATE

June 28, 2002 5:30:48.651
<<<<<    ReadyForQueryMessage

June 28, 2002 5:30:48.656
>>>>>    QueryMessage
'INSERT INTO exdiTest21data (id, name, phone) VALUES(1, ''Curly'', ''x47'')'

June 28, 2002 5:30:48.668
<<<<<    CursorResponseMessage
Cursor name: blank

June 28, 2002 5:30:48.672
<<<<<    CompletedResponseMessage
Command tag: INSERT 273801 1

June 28, 2002 5:30:48.676
<<<<<    ReadyForQueryMessage

June 28, 2002 5:30:48.681
>>>>>    QueryMessage
'INSERT INTO exdiTest21data (id, name, phone) VALUES(2, ''Moe'', ''x29'')'

June 28, 2002 5:30:48.689
<<<<<    CursorResponseMessage
Cursor name: blank

June 28, 2002 5:30:48.691
<<<<<    CompletedResponseMessage
Command tag: INSERT 273802 1

June 28, 2002 5:30:48.696
<<<<<    ReadyForQueryMessage

June 28, 2002 5:30:48.701
>>>>>    QueryMessage
'INSERT INTO exdiTest21data (id, name, phone) VALUES(3, ''Larry'', ''x83'')'

June 28, 2002 5:30:48.707
<<<<<    CursorResponseMessage
Cursor name: blank

June 28, 2002 5:30:48.711
<<<<<    CompletedResponseMessage
Command tag: INSERT 273803 1

June 28, 2002 5:30:48.715
<<<<<    ReadyForQueryMessage

June 28, 2002 5:30:48.718
>>>>>    QueryMessage
'update exdiTest21data set name = ''Harry'' where name = ''Larry'';'

June 28, 2002 5:30:48.733
<<<<<    CursorResponseMessage
Cursor name: blank

June 28, 2002 5:30:48.736
<<<<<    CompletedResponseMessage
Command tag: INSERT 273804 1

June 28, 2002 5:30:48.740
<<<<<    CursorResponseMessage
Cursor name: blank

June 28, 2002 5:30:48.744
<<<<<    CompletedResponseMessage
Command tag: UPDATE 1

June 28, 2002 5:30:48.749
<<<<<    ReadyForQueryMessage

June 28, 2002 5:30:48.753
>>>>>    QueryMessage
'select oldname, newname from exdiTest21log where oldname = ''Larry'';'

June 28, 2002 5:30:48.760
<<<<<    CursorResponseMessage
Cursor name: blank

June 28, 2002 5:30:48.763
<<<<<    RowDescriptionMessage
Number of fields: 2
Field description.  Name: oldname.  Object ID: 25.  Type size: 65535.  Type modifier: 4294967295
Field description.  Name: newname.  Object ID: 25.  Type size: 65535.  Type modifier: 4294967295

June 28, 2002 5:30:48.769
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [4C61727279].
Field #2: Bytes (hex): [4861727279].

June 28, 2002 5:30:48.775
<<<<<    CompletedResponseMessage
Command tag: SELECT

June 28, 2002 5:30:48.780
<<<<<    ReadyForQueryMessage

June 28, 2002 5:30:48.785
>>>>>    QueryMessage
'select oid, typname from pg_type'

June 28, 2002 5:30:48.795
<<<<<    CursorResponseMessage
Cursor name: blank

June 28, 2002 5:30:48.798
<<<<<    RowDescriptionMessage
Number of fields: 2
Field description.  Name: oid.  Object ID: 26.  Type size: 4.  Type modifier: 4294967295
Field description.  Name: typname.  Object ID: 19.  Type size: 32.  Type modifier: 4294967295

June 28, 2002 5:30:48.804
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3136].
Field #2: Bytes (hex): [626F6F6C].

June 28, 2002 5:30:48.809
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3137].
Field #2: Bytes (hex): [6279746561].

June 28, 2002 5:30:48.814
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3138].
Field #2: Bytes (hex): [63686172].

June 28, 2002 5:30:48.819
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3139].
Field #2: Bytes (hex): [6E616D65].

June 28, 2002 5:30:48.824
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3230].
Field #2: Bytes (hex): [696E7438].

June 28, 2002 5:30:48.829
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3231].
Field #2: Bytes (hex): [696E7432].

June 28, 2002 5:30:48.834
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3232].
Field #2: Bytes (hex): [696E7432766563746F72].

June 28, 2002 5:30:48.838
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3233].
Field #2: Bytes (hex): [696E7434].

June 28, 2002 5:30:48.843
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3234].
Field #2: Bytes (hex): [72656770726F63].

June 28, 2002 5:30:48.849
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3235].
Field #2: Bytes (hex): [74657874].

June 28, 2002 5:30:48.854
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3236].
Field #2: Bytes (hex): [6F6964].

June 28, 2002 5:30:48.859
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3237].
Field #2: Bytes (hex): [746964].

June 28, 2002 5:30:48.864
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3238].
Field #2: Bytes (hex): [786964].

June 28, 2002 5:30:48.869
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3239].
Field #2: Bytes (hex): [636964].

June 28, 2002 5:30:48.874
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3330].
Field #2: Bytes (hex): [6F6964766563746F72].

June 28, 2002 5:30:48.878
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3332].
Field #2: Bytes (hex): [534554].

June 28, 2002 5:30:48.893
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3731].
Field #2: Bytes (hex): [70675F74797065].

June 28, 2002 5:30:48.909
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3735].
Field #2: Bytes (hex): [70675F617474726962757465].

June 28, 2002 5:30:48.914
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3831].
Field #2: Bytes (hex): [70675F70726F63].

June 28, 2002 5:30:48.918
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3833].
Field #2: Bytes (hex): [70675F636C617373].

June 28, 2002 5:30:48.923
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3836].
Field #2: Bytes (hex): [70675F736861646F77].

June 28, 2002 5:30:48.928
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3837].
Field #2: Bytes (hex): [70675F67726F7570].

June 28, 2002 5:30:48.932
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3838].
Field #2: Bytes (hex): [70675F6461746162617365].

June 28, 2002 5:30:48.937
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3930].
Field #2: Bytes (hex): [70675F7661726961626C65].

June 28, 2002 5:30:48.942
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3939].
Field #2: Bytes (hex): [70675F6C6F67].

June 28, 2002 5:30:48.948
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [313039].
Field #2: Bytes (hex): [70675F61747472646566].

June 28, 2002 5:30:48.953
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [313130].
Field #2: Bytes (hex): [70675F72656C636865636B].

June 28, 2002 5:30:48.958
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [313131].
Field #2: Bytes (hex): [70675F74726967676572].

June 28, 2002 5:30:48.963
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [323130].
Field #2: Bytes (hex): [736D6772].

June 28, 2002 5:30:48.968
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [363030].
Field #2: Bytes (hex): [706F696E74].

June 28, 2002 5:30:48.972
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [363031].
Field #2: Bytes (hex): [6C736567].

June 28, 2002 5:30:48.977
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [363032].
Field #2: Bytes (hex): [70617468].

June 28, 2002 5:30:48.982
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [363033].
Field #2: Bytes (hex): [626F78].

June 28, 2002 5:30:48.986
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [363034].
Field #2: Bytes (hex): [706F6C79676F6E].

June 28, 2002 5:30:48.992
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [363238].
Field #2: Bytes (hex): [6C696E65].

June 28, 2002 5:30:48.998
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [363239].
Field #2: Bytes (hex): [5F6C696E65].

June 28, 2002 5:30:49.002
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [373030].
Field #2: Bytes (hex): [666C6F617434].

June 28, 2002 5:30:49.008
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [373031].
Field #2: Bytes (hex): [666C6F617438].

June 28, 2002 5:30:49.011
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [373032].
Field #2: Bytes (hex): [61627374696D65].

June 28, 2002 5:30:49.017
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [373033].
Field #2: Bytes (hex): [72656C74696D65].

June 28, 2002 5:30:49.022
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [373034].
Field #2: Bytes (hex): [74696E74657276616C].

June 28, 2002 5:30:49.025
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [373035].
Field #2: Bytes (hex): [756E6B6E6F776E].

June 28, 2002 5:30:49.031
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [373138].
Field #2: Bytes (hex): [636972636C65].

June 28, 2002 5:30:49.036
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [373139].
Field #2: Bytes (hex): [5F636972636C65].

June 28, 2002 5:30:49.041
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [373930].
Field #2: Bytes (hex): [6D6F6E6579].

June 28, 2002 5:30:49.047
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [373931].
Field #2: Bytes (hex): [5F6D6F6E6579].

June 28, 2002 5:30:49.051
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [383239].
Field #2: Bytes (hex): [6D616361646472].

June 28, 2002 5:30:49.057
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [383639].
Field #2: Bytes (hex): [696E6574].

June 28, 2002 5:30:49.062
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [363530].
Field #2: Bytes (hex): [63696472].

June 28, 2002 5:30:49.066
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303030].
Field #2: Bytes (hex): [5F626F6F6C].

June 28, 2002 5:30:49.071
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303031].
Field #2: Bytes (hex): [5F6279746561].

June 28, 2002 5:30:49.077
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303032].
Field #2: Bytes (hex): [5F63686172].

June 28, 2002 5:30:49.082
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303033].
Field #2: Bytes (hex): [5F6E616D65].

June 28, 2002 5:30:49.087
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303035].
Field #2: Bytes (hex): [5F696E7432].

June 28, 2002 5:30:49.091
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303036].
Field #2: Bytes (hex): [5F696E7432766563746F72].

June 28, 2002 5:30:49.096
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303037].
Field #2: Bytes (hex): [5F696E7434].

June 28, 2002 5:30:49.102
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303038].
Field #2: Bytes (hex): [5F72656770726F63].

June 28, 2002 5:30:49.105
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303039].
Field #2: Bytes (hex): [5F74657874].

June 28, 2002 5:30:49.110
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303238].
Field #2: Bytes (hex): [5F6F6964].

June 28, 2002 5:30:49.116
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303130].
Field #2: Bytes (hex): [5F746964].

June 28, 2002 5:30:49.121
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303131].
Field #2: Bytes (hex): [5F786964].

June 28, 2002 5:30:49.126
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303132].
Field #2: Bytes (hex): [5F636964].

June 28, 2002 5:30:49.131
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303133].
Field #2: Bytes (hex): [5F6F6964766563746F72].

June 28, 2002 5:30:49.136
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303134].
Field #2: Bytes (hex): [5F627063686172].

June 28, 2002 5:30:49.141
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303135].
Field #2: Bytes (hex): [5F76617263686172].

June 28, 2002 5:30:49.145
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303136].
Field #2: Bytes (hex): [5F696E7438].

June 28, 2002 5:30:49.150
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303137].
Field #2: Bytes (hex): [5F706F696E74].

June 28, 2002 5:30:49.155
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303138].
Field #2: Bytes (hex): [5F6C736567].

June 28, 2002 5:30:49.161
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303139].
Field #2: Bytes (hex): [5F70617468].

June 28, 2002 5:30:49.166
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303230].
Field #2: Bytes (hex): [5F626F78].

June 28, 2002 5:30:49.171
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303231].
Field #2: Bytes (hex): [5F666C6F617434].

June 28, 2002 5:30:49.176
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303232].
Field #2: Bytes (hex): [5F666C6F617438].

June 28, 2002 5:30:49.181
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303233].
Field #2: Bytes (hex): [5F61627374696D65].

June 28, 2002 5:30:49.185
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303234].
Field #2: Bytes (hex): [5F72656C74696D65].

June 28, 2002 5:30:49.190
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303235].
Field #2: Bytes (hex): [5F74696E74657276616C].

June 28, 2002 5:30:49.195
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303237].
Field #2: Bytes (hex): [5F706F6C79676F6E].

June 28, 2002 5:30:49.201
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303333].
Field #2: Bytes (hex): [61636C6974656D].

June 28, 2002 5:30:49.206
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303334].
Field #2: Bytes (hex): [5F61636C6974656D].

June 28, 2002 5:30:49.211
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303430].
Field #2: Bytes (hex): [5F6D616361646472].

June 28, 2002 5:30:49.216
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303431].
Field #2: Bytes (hex): [5F696E6574].

June 28, 2002 5:30:49.221
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [363531].
Field #2: Bytes (hex): [5F63696472].

June 28, 2002 5:30:49.225
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303432].
Field #2: Bytes (hex): [627063686172].

June 28, 2002 5:30:49.230
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303433].
Field #2: Bytes (hex): [76617263686172].

June 28, 2002 5:30:49.235
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303832].
Field #2: Bytes (hex): [64617465].

June 28, 2002 5:30:49.239
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31303833].
Field #2: Bytes (hex): [74696D65].

June 28, 2002 5:30:49.245
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31313832].
Field #2: Bytes (hex): [5F64617465].

June 28, 2002 5:30:49.250
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31313833].
Field #2: Bytes (hex): [5F74696D65].

June 28, 2002 5:30:49.255
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31313834].
Field #2: Bytes (hex): [74696D657374616D70].

June 28, 2002 5:30:49.260
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31313835].
Field #2: Bytes (hex): [5F74696D657374616D70].

June 28, 2002 5:30:49.265
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31313836].
Field #2: Bytes (hex): [696E74657276616C].

June 28, 2002 5:30:49.270
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31313837].
Field #2: Bytes (hex): [5F696E74657276616C].

June 28, 2002 5:30:49.275
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31323331].
Field #2: Bytes (hex): [5F6E756D65726963].

June 28, 2002 5:30:49.278
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31323636].
Field #2: Bytes (hex): [74696D65747A].

June 28, 2002 5:30:49.284
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31323730].
Field #2: Bytes (hex): [5F74696D65747A].

June 28, 2002 5:30:49.289
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31353630].
Field #2: Bytes (hex): [626974].

June 28, 2002 5:30:49.294
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31353631].
Field #2: Bytes (hex): [5F626974].

June 28, 2002 5:30:49.299
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31353632].
Field #2: Bytes (hex): [766172626974].

June 28, 2002 5:30:49.304
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31353633].
Field #2: Bytes (hex): [5F766172626974].

June 28, 2002 5:30:49.309
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [31373030].
Field #2: Bytes (hex): [6E756D65726963].

June 28, 2002 5:30:49.314
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3136353638].
Field #2: Bytes (hex): [70675F696E686572697473].

June 28, 2002 5:30:49.318
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3136353830].
Field #2: Bytes (hex): [70675F696E646578].

June 28, 2002 5:30:49.324
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3136363031].
Field #2: Bytes (hex): [70675F737461746973746963].

June 28, 2002 5:30:49.331
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3136363138].
Field #2: Bytes (hex): [70675F6F70657261746F72].

June 28, 2002 5:30:49.336
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3136363433].
Field #2: Bytes (hex): [70675F6F70636C617373].

June 28, 2002 5:30:49.341
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3136363534].
Field #2: Bytes (hex): [70675F616D].

June 28, 2002 5:30:49.345
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3136363836].
Field #2: Bytes (hex): [70675F616D6F70].

June 28, 2002 5:30:49.350
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3136383638].
Field #2: Bytes (hex): [70675F616D70726F63].

June 28, 2002 5:30:49.355
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3136393335].
Field #2: Bytes (hex): [70675F6C616E6775616765].

June 28, 2002 5:30:49.359
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3136393439].
Field #2: Bytes (hex): [70675F6C617267656F626A656374].

June 28, 2002 5:30:49.366
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3136393631].
Field #2: Bytes (hex): [70675F616767726567617465].

June 28, 2002 5:30:49.371
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3137303334].
Field #2: Bytes (hex): [70675F69706C].

June 28, 2002 5:30:49.376
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3137303436].
Field #2: Bytes (hex): [70675F696E686572697470726F63].

June 28, 2002 5:30:49.381
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3137303539].
Field #2: Bytes (hex): [70675F72657772697465].

June 28, 2002 5:30:49.385
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3137303735].
Field #2: Bytes (hex): [70675F6C697374656E6572].

June 28, 2002 5:30:49.390
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3137303837].
Field #2: Bytes (hex): [70675F6465736372697074696F6E].

June 28, 2002 5:30:49.413
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3137323032].
Field #2: Bytes (hex): [70675F746F6173745F31323135].

June 28, 2002 5:30:49.418
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3137323137].
Field #2: Bytes (hex): [70675F746F6173745F3137303836].

June 28, 2002 5:30:49.424
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3137323332].
Field #2: Bytes (hex): [70675F746F6173745F31323535].

June 28, 2002 5:30:49.430
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3137323437].
Field #2: Bytes (hex): [70675F746F6173745F31323136].

June 28, 2002 5:30:49.435
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3137323632].
Field #2: Bytes (hex): [70675F746F6173745F3137303538].

June 28, 2002 5:30:49.438
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3137323737].
Field #2: Bytes (hex): [70675F746F6173745F3136363030].

June 28, 2002 5:30:49.444
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3137323932].
Field #2: Bytes (hex): [70675F75736572].

June 28, 2002 5:30:49.449
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3137333130].
Field #2: Bytes (hex): [70675F72756C6573].

June 28, 2002 5:30:49.454
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3137333233].
Field #2: Bytes (hex): [70675F7669657773].

June 28, 2002 5:30:49.459
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3137333336].
Field #2: Bytes (hex): [70675F7461626C6573].

June 28, 2002 5:30:49.464
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3137333531].
Field #2: Bytes (hex): [70675F696E6465786573].

June 28, 2002 5:30:49.470
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3138373233].
Field #2: Bytes (hex): [7067615F71756572696573].

June 28, 2002 5:30:49.475
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3138373339].
Field #2: Bytes (hex): [70675F746F6173745F3138373232].

June 28, 2002 5:30:49.478
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3138373534].
Field #2: Bytes (hex): [7067615F666F726D73].

June 28, 2002 5:30:49.484
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3138373635].
Field #2: Bytes (hex): [70675F746F6173745F3138373533].

June 28, 2002 5:30:49.489
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3138373830].
Field #2: Bytes (hex): [7067615F73637269707473].

June 28, 2002 5:30:49.494
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3138373931].
Field #2: Bytes (hex): [70675F746F6173745F3138373739].

June 28, 2002 5:30:49.499
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3138383036].
Field #2: Bytes (hex): [7067615F7265706F727473].

June 28, 2002 5:30:49.504
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3138383230].
Field #2: Bytes (hex): [70675F746F6173745F3138383035].

June 28, 2002 5:30:49.510
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3138383335].
Field #2: Bytes (hex): [7067615F736368656D61].

June 28, 2002 5:30:49.515
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [3138383437].
Field #2: Bytes (hex): [70675F746F6173745F3138383334].

June 28, 2002 5:30:49.520
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [323639333035].
Field #2: Bytes (hex): [657864697465737432326C6F67].

June 28, 2002 5:30:49.525
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [323639333137].
Field #2: Bytes (hex): [70675F746F6173745F323639333034].

June 28, 2002 5:30:49.530
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [313235383137].
Field #2: Bytes (hex): [706172746E657273].

June 28, 2002 5:30:49.536
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [313235383331].
Field #2: Bytes (hex): [7067615F6C61796F7574].

June 28, 2002 5:30:49.541
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [313235383434].
Field #2: Bytes (hex): [70675F746F6173745F313235383330].

June 28, 2002 5:30:49.545
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [323638383235].
Field #2: Bytes (hex): [65786469746573743037].

June 28, 2002 5:30:49.551
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [323638383538].
Field #2: Bytes (hex): [70675F746F6173745F323638383234].

June 28, 2002 5:30:49.556
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [323638393338].
Field #2: Bytes (hex): [65786469746573743130].

June 28, 2002 5:30:49.561
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [323638393439].
Field #2: Bytes (hex): [70675F746F6173745F323638393337].

June 28, 2002 5:30:49.567
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [323638393638].
Field #2: Bytes (hex): [657864697465737431315F6964656E746974795F736571].

June 28, 2002 5:30:49.571
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [323638393837].
Field #2: Bytes (hex): [65786469746573743131].

June 28, 2002 5:30:49.577
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [323638393939].
Field #2: Bytes (hex): [70675F746F6173745F323638393836].

June 28, 2002 5:30:49.582
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [323639303231].
Field #2: Bytes (hex): [657864697465737431325F6964656E746974795F736571].

June 28, 2002 5:30:49.586
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [323639303430].
Field #2: Bytes (hex): [65786469746573743132].

June 28, 2002 5:30:49.592
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [323639303532].
Field #2: Bytes (hex): [70675F746F6173745F323639303339].

June 28, 2002 5:30:49.598
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [323639303734].
Field #2: Bytes (hex): [657864697465737431335F6964656E746974795F736571].

June 28, 2002 5:30:49.603
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [323639303933].
Field #2: Bytes (hex): [65786469746573743133].

June 28, 2002 5:30:49.608
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [323639313035].
Field #2: Bytes (hex): [70675F746F6173745F323639303932].

June 28, 2002 5:30:49.612
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [323639313431].
Field #2: Bytes (hex): [7461736B].

June 28, 2002 5:30:49.617
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [323639313531].
Field #2: Bytes (hex): [61737369676E6565].

June 28, 2002 5:30:49.622
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [323639313631].
Field #2: Bytes (hex): [61737369676E6D656E74].

June 28, 2002 5:30:49.627
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [323639323738].
Field #2: Bytes (hex): [6578646974657374323264617461].

June 28, 2002 5:30:49.635
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [323639323930].
Field #2: Bytes (hex): [70675F746F6173745F323639323737].

June 28, 2002 5:30:49.638
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [323733373438].
Field #2: Bytes (hex): [6578646974657374323164617461].

June 28, 2002 5:30:49.644
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [323733373630].
Field #2: Bytes (hex): [70675F746F6173745F323733373437].

June 28, 2002 5:30:49.649
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [323733373735].
Field #2: Bytes (hex): [657864697465737432316C6F67].

June 28, 2002 5:30:49.654
<<<<<    AsciiRowMessage
Field #1: Bytes (hex): [323733373836].
Field #2: Bytes (hex): [70675F746F6173745F323733373734].

June 28, 2002 5:30:49.659
<<<<<    CompletedResponseMessage
Command tag: SELECT

June 28, 2002 5:30:49.664
<<<<<    ReadyForQueryMessage

June 28, 2002 5:30:49.672
>>>>>    TerminateMessage
{28 Jun 2 5:06:30 am}     ExternalDatabaseConnection>>connect:
    Version: External Database Interface - Release 7.0
PostgreSQL EXDI layer 1.0 023

June 28, 2002 5:06:30.261
>>>>>    StartupPacket
Packet size: 296
Protocol version number: #[0 2 0 0]
Database name: 'test1'
User name: 'bbadger'
Additional arguments: ''
Debugging TTY: ''

June 28, 2002 5:06:30.289
<<<<<    AuthenticationOKMessage

June 28, 2002 5:06:30.504
<<<<<    BackendKeyDataMessage
Process ID: 5991
Secret Key: 1282360237

June 28, 2002 5:06:30.507
<<<<<    ReadyForQueryMessage

June 28, 2002 5:06:30.512
>>>>>    QueryMessage
'drop table exdiTest21data'

June 28, 2002 5:06:30.756
<<<<<    CompletedResponseMessage
Command tag: DROP

June 28, 2002 5:06:30.759
<<<<<    ReadyForQueryMessage

June 28, 2002 5:06:30.763
>>>>>    QueryMessage
'drop table exdiTest21log'

June 28, 2002 5:06:30.778
<<<<<    CompletedResponseMessage
Command tag: DROP

June 28, 2002 5:06:30.781
<<<<<    ReadyForQueryMessage

June 28, 2002 5:06:30.785
>>>>>    QueryMessage
'drop rule exdiTest21data_update'

June 28, 2002 5:06:30.806
<<<<<    ErrorResponseMessage
Error message: ERROR:  Rule or view "exditest21data_update" not found

June 28, 2002 5:06:30.809
<<<<<    ReadyForQueryMessage

June 28, 2002 5:06:30.814
>>>>>    QueryMessage
'create table exdiTest21data (id int, name text, phone varchar(21))'

June 28, 2002 5:06:30.970
<<<<<    CompletedResponseMessage
Command tag: CREATE

June 28, 2002 5:06:30.973
<<<<<    ReadyForQueryMessage

June 28, 2002 5:06:30.977
>>>>>    QueryMessage
'create table exdiTest21log (oldName text, newName text)'

June 28, 2002 5:06:30.995
<<<<<    CompletedResponseMessage
Command tag: CREATE

June 28, 2002 5:06:30.998
<<<<<    ReadyForQueryMessage

June 28, 2002 5:06:31.002
>>>>>    QueryMessage
'    create rule exdiTest21data_update as on update to exdiTest21data    do insert into exdiTest21log (oldName, newName
)values (old.name, new.name);' 

June 28, 2002 5:06:31.029
<<<<<    CompletedResponseMessage
Command tag: CREATE

June 28, 2002 5:06:31.032
<<<<<    ReadyForQueryMessage

June 28, 2002 5:06:31.035
>>>>>    QueryMessage
'INSERT INTO exdiTest21data (id, name, phone) VALUES(1, ''Curly'', ''x47'')'

June 28, 2002 5:06:31.129
<<<<<    CursorResponseMessage
Cursor name: blank

June 28, 2002 5:06:31.132
<<<<<    CompletedResponseMessage
Command tag: INSERT 16959 1

June 28, 2002 5:06:31.136
<<<<<    ReadyForQueryMessage

June 28, 2002 5:06:31.140
>>>>>    QueryMessage
'INSERT INTO exdiTest21data (id, name, phone) VALUES(2, ''Moe'', ''x29'')'

June 28, 2002 5:06:31.148
<<<<<    CursorResponseMessage
Cursor name: blank

June 28, 2002 5:06:31.151
<<<<<    CompletedResponseMessage
Command tag: INSERT 16960 1

June 28, 2002 5:06:31.155
<<<<<    ReadyForQueryMessage

June 28, 2002 5:06:31.159
>>>>>    QueryMessage
'INSERT INTO exdiTest21data (id, name, phone) VALUES(3, ''Larry'', ''x83'')'

June 28, 2002 5:06:31.166
<<<<<    CursorResponseMessage
Cursor name: blank

June 28, 2002 5:06:31.169
<<<<<    CompletedResponseMessage
Command tag: INSERT 16961 1

June 28, 2002 5:06:31.172
<<<<<    ReadyForQueryMessage

June 28, 2002 5:06:31.176
>>>>>    QueryMessage
'update exdiTest21data set name = ''Harry'' where name = ''Larry'';'

June 28, 2002 5:06:31.304
<<<<<    CursorResponseMessage
Cursor name: blank

June 28, 2002 5:06:31.307
<<<<<    CursorResponseMessage
Cursor name: blank

June 28, 2002 5:06:31.311
<<<<<    CompletedResponseMessage
Command tag: UPDATE 1

June 28, 2002 5:08:18.488
>>>>>    TerminateMessage

Re: Frontend - Backend protocol change?

От
Tom Lane
Дата:
Bruce Badger <bbadger@BadgerSE.com> writes:
> My question is:  which is "right" the 7.1 behavior, or the 7.2 behavior?

Hmm ... I'd opine that neither is "right"; the correct behavior would
be that you should see no trace of the background INSERT generated
by the rule, only of the UPDATE you actually issued.

7.2 seems to be suppressing the INSERT's completion response correctly,
but not the CursorResponse.

I *think* this might be fixed in current sources, but not sure.  Also,
there is an open question whether we really like this behavior at all.
I'd be interested to see your take on the thread "Queries using rules
show no rows modified?" from mid-May in pgsql-hackers.  (I'd give a
better URL if archive searching weren't currently broken for non-IE
browsers.)
        regards, tom lane




Re: Frontend - Backend protocol change?

От
Bruce Badger
Дата:
Tom Lane wrote:

>Bruce Badger <bbadger@BadgerSE.com> writes:
>  
>
>>My question is:  which is "right" the 7.1 behavior, or the 7.2 behavior?
>>    
>>
>
>Hmm ... I'd opine that neither is "right"; the correct behavior would
>be that you should see no trace of the background INSERT generated
>by the rule, only of the UPDATE you actually issued.
>
>7.2 seems to be suppressing the INSERT's completion response correctly,
>but not the CursorResponse.
>
>I *think* this might be fixed in current sources, but not sure.  Also,
>there is an open question whether we really like this behavior at all.
>I'd be interested to see your take on the thread "Queries using rules
>show no rows modified?" from mid-May in pgsql-hackers.  (I'd give a
>better URL if archive searching weren't currently broken for non-IE
>browsers.)
>
>            regards, tom lane
>  
>
Thanks for the response :-)

The first thing that springs to mind is that it seems to be a "bad 
thing" for the protocol to change in any way at all without the protocol 
version number being changed too.  Given that, my suggested "fix" would 
be (while in no way suggesting what is "right" or not") to go back to 
not  suppressing the completion response.

If the existing protocol is deemed to be wrong in some way, then I'd be 
all for having it fixed - at a new protocol version.   So I would see 
the fixing process working something like:  decide on a new protocol 
version number, decide on what is right, and then roll out the new 
protocol variant alongside the existing one.  The debate about how long 
to support the "old" version could then begin.

On the question of what is "right":  Clearly there has been some lively 
debate in this area.  I am not really steeped in the PostgreSQL way of 
doing things, and it is unlikely that I understand all of the issues 
involved, but FWIW:  I think that discarding information may not be such 
a good thing.  If I got a result back that said "1 row updated (with 2 
rows updated as a side-effect)"  that might help me to tune my app. Certainly, I'd rather have the information than
not. So barring any 
 
issues like the cost of gathering and returning the extra info - I'd go 
for having it.  In any case, I'd suggest that any changes be made in the 
context of a new protocol version; and that could open the door to a more comprehensive solution, whatever philosophy
waspursued.
 

In the mean time, it sounds like I have to figure out a way to make my 
driver tolerant of the fact that sometimes there will be completed 
response message, and sometimes not. :-/    I guess that all the other 
drivers already do this (certainly psql worked with my test case with no 
problems) - is that right?

Before I start hacking, though ... I did see some mention of backing out 
changes & if that meant that the protocol (at version 0 2 0 0) would 
give a consistent set of responses - I'd vote for that.  Might that happen?

All the best,   Bruce








Re: Frontend - Backend protocol change?

От
Bruce Badger
Дата:
I know it's poor netiquette to respond to myself, and all that, but I 
thought I'd keep you updated...

I have a fix for the PostgreSQL Smalltalk library (freely available from 
the Cincom public StORE repository (a PostgreSQL database, BTW)) which 
works with both versions (!) of the version 0 2 0 0 protocol.

Has there been any progress on this matter at the server end?  That is, 
has protocol version 0 2 0 0 been returned to a consistent state, or do 
we still have multiple versions of the same, er, version?

Thanks,   Bruce

Bruce Badger wrote:

> Tom Lane wrote:
>
>> Bruce Badger <bbadger@BadgerSE.com> writes:
>>  
>>
>>> My question is:  which is "right" the 7.1 behavior, or the 7.2 
>>> behavior?
>>>   
>>
>>
>> Hmm ... I'd opine that neither is "right"; the correct behavior would
>> be that you should see no trace of the background INSERT generated
>> by the rule, only of the UPDATE you actually issued.
>>
>> 7.2 seems to be suppressing the INSERT's completion response correctly,
>> but not the CursorResponse.
>>
>> I *think* this might be fixed in current sources, but not sure.  Also,
>> there is an open question whether we really like this behavior at all.
>> I'd be interested to see your take on the thread "Queries using rules
>> show no rows modified?" from mid-May in pgsql-hackers.  (I'd give a
>> better URL if archive searching weren't currently broken for non-IE
>> browsers.)
>>
>>             regards, tom lane
>>  
>>
> Thanks for the response :-)
>
> The first thing that springs to mind is that it seems to be a "bad 
> thing" for the protocol to change in any way at all without the 
> protocol version number being changed too.  Given that, my suggested 
> "fix" would be (while in no way suggesting what is "right" or not") to 
> go back to not  suppressing the completion response.
>
> If the existing protocol is deemed to be wrong in some way, then I'd 
> be all for having it fixed - at a new protocol version.   So I would 
> see the fixing process working something like:  decide on a new 
> protocol version number, decide on what is right, and then roll out 
> the new protocol variant alongside the existing one.  The debate about 
> how long to support the "old" version could then begin.
>
> On the question of what is "right":  Clearly there has been some 
> lively debate in this area.  I am not really steeped in the PostgreSQL 
> way of doing things, and it is unlikely that I understand all of the 
> issues involved, but FWIW:  I think that discarding information may 
> not be such a good thing.  If I got a result back that said "1 row 
> updated (with 2 rows updated as a side-effect)"  that might help me to 
> tune my app. Certainly, I'd rather have the information than not.  So 
> barring any issues like the cost of gathering and returning the extra 
> info - I'd go for having it.  In any case, I'd suggest that any 
> changes be made in the context of a new protocol version; and that 
> could open the door to a more comprehensive solution, whatever 
> philosophy was pursued.
>
> In the mean time, it sounds like I have to figure out a way to make my 
> driver tolerant of the fact that sometimes there will be completed 
> response message, and sometimes not. :-/    I guess that all the other 
> drivers already do this (certainly psql worked with my test case with 
> no problems) - is that right?
>
> Before I start hacking, though ... I did see some mention of backing 
> out changes & if that meant that the protocol (at version 0 2 0 0) 
> would give a consistent set of responses - I'd vote for that.  Might 
> that happen?
>
> All the best,
>    Bruce
>
>
>
>
>
>
>
> ---------------------------(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
>
>