Re: Extensibility of the PostgreSQL wire protocol

Jan Wieck <jan@wi3ck.info>

From: Jan Wieck <jan@wi3ck.info>
To: Hannu Krosing <hannuk@google.com>
Cc: Peter Eisentraut <peter.eisentraut@enterprisedb.com>, Kuntal Ghosh <kuntalghosh.2007@gmail.com>, Dave Cramer <davecramer@postgres.rocks>, Robert Haas <robertmhaas@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, "Jonah H. Harris" <jonah.harris@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-03-05T01:38:00Z
Lists: pgsql-hackers
On 3/4/21 7:38 PM, Hannu Krosing wrote:
> On Thu, Mar 4, 2021 at 9:55 PM Jan Wieck <jan@wi3ck.info> wrote:
>> but the whole thing was developed that way from the beginning and
>> it is working. I don't have a definitive date when that code will be
>> presented. Kuntal or Prateek may be able to fill in more details.
> 
> Are you really fully replacing the main loop, or are you running a second
> main loop in parallel in the same database server instance, perhaps as
> a separate TDS_postmaster backend ?
> 
> Will the data still also be accessible "as postgres" via port 5432 when
> TDS/SQLServer support is active ?

The individual backend (session) is running a different main loop. A 
libpq based client will still get the regular libpq and the original 
PostgresMain() behavior on port 5432. The default port for TDS is 1433 
and with everything in place I can connect to the same database on that 
port with Microsoft's SQLCMD.

The whole point of all this is to allow the postmaster to listen to more 
than just 5432 and have different communication protocols on those 
*additional* ports. Nothing is really *replaced*. The parts of the 
backend, that do actual socket communication, are just routed through 
function pointers so that an extension can change their behavior.


Regards, Jan

-- 
Jan Wieck
Principle Database Engineer
Amazon Web Services