Re: DRDA, network protocol, and documentation - Mailing list pgsql-hackers

From Hannu Krosing
Subject Re: DRDA, network protocol, and documentation
Date
Msg-id 1012930417.32211.24.camel@taru.tm.ee
Whole thread Raw
In response to DRDA, network protocol, and documentation  (Brian Bruns <camber@ais.org>)
Responses Re: DRDA, network protocol, and documentation
List pgsql-hackers
On Tue, 2002-02-05 at 15:39, Brian Bruns wrote:
> Hi all,
> 
> I'm working on an implementation of the DRDA protocol and am planning on 
> modifying postgresql to support DRDA.  (DRDA is an Open Group standard 
> protoc

Hopefully this will bring us PREPARE/EXECUTE support too.

BTW, does DRDA have a notion of LISTEN/NOTIFY ?

> Anyway, as a first step towards this I was hoping to expand the 
> documentation of the Frontend/Backend Protocol and create some detailed 
> developer oriented documentation of the internals of the networking code.

Protocol is quite simple and AFAIK fully documented in Developers Guide.

The networking code seems to be "Traffic Cop" directory in
src/backend/tcop/postgresql.c

You could click around in lxr I set up for my personal use on my desktop
pc at 
http://www.postsql.org/lxr/source/backend/tcop/postgres.c
and find out where things are defined/used

But you should probably set up something similar for your own use if you
want to do some serious hacking.

> Can someone point me towards any documentation that might currently be 
> available (I'm aware of the Developer's Guide), and any pointers on 
> getting started would be appreciated as well. ;-)

socket.h is included only in a few places

[hannu@taru src]$ grep -l socket.h */*/*.c
backend/libpq/auth.c
backend/libpq/hba.c
backend/libpq/pqcomm.c
backend/postmaster/pgstat.c
backend/postmaster/postmaster.c
backend/tcop/postgres.c
interfaces/libpq/fe-auth.c
interfaces/libpq/fe-connect.c
interfaces/libpq/fe-misc.c
interfaces/odbc/columninfo.c
interfaces/odbc/connection.c
interfaces/odbc/drvconn.c
interfaces/odbc/socket.c

[hannu@taru src]$ grep -l socket.h */*/*/*.c
backend/utils/adt/inet_net_ntop.c
backend/utils/adt/inet_net_pton.c
backend/utils/adt/network.c

You can probably ignore interfaces/ for start and backend/utils/adt/ is
also most likely not about FE/BE communication

That leaves backend/tcop/ for main activity, backend/postmaster/ for
session start and backend/libpq/ for main library.

> I also noticed on the TODO list someone has put SQL*Net support as a 
> network protocol.  Is this a serious plan or just a pipedream?  Part of 
> what I'm aiming to do is make the network protocol stuff fairly modular so 
> you could support the current protocol, and DRDA, and presumably SQL*Net 
> or TDS (Microsoft/Sybases protocol), etc...

XML-over-HTTP/1.1 would also be really cool, even more so if server
could apply XSLT transforms to results on the fly :)

--------------
Hannu





pgsql-hackers by date:

Previous
From: Hannu Krosing
Date:
Subject: Re: DRDA, network protocol, and documentation
Next
From: "D'Arcy J.M. Cain"
Date:
Subject: Re: PostgreSQL v7.2 Final Release