Thread: Embedded Postgres
Hi, Is there a way to run Postgres in embedded mode? More precisely, to run it without using TCP/IP port, and without installing as a service? I am aware of Unix-domain sockets, but is there something similar for Windows? -Ognjen
Ognjen Blagojevic <ognjen@etf.bg.ac.rs> writes: > Is there a way to run Postgres in embedded mode? More precisely, to run > it without using TCP/IP port, and without installing as a service? No. regards, tom lane
Ognjen Blagojevic, 21.04.2010 17:08: > More precisely, to run it without using TCP/IP port No > and without installing as a service? Yes (simply run pg_ctl "manually" from the command line) Thomas
Ognjen Blagojevic wrote: > Is there a way to run Postgres in embedded mode? More precisely, to > run it without using TCP/IP port, and without installing as a service? > I am aware of Unix-domain sockets, but is there something similar for > Windows? > on unix, as you imply, it can be run with unix domain sockets, but not on Windows as they simply don't have this interface. and, it can be started as an application rather than as a system service, but it still runs as a separate process from your application(s) and in my book, thats not really embedded.
John R Pierce wrote: > Ognjen Blagojevic wrote: >> Is there a way to run Postgres in embedded mode? More precisely, to >> run it without using TCP/IP port, and without installing as a service? >> I am aware of Unix-domain sockets, but is there something similar for >> Windows? > > on unix, as you imply, it can be run with unix domain sockets, but not > on Windows as they simply don't have this interface. and, it can be > started as an application rather than as a system service, but it still > runs as a separate process from your application(s) and in my book, > thats not really embedded. Thank you all for clarification. Regards, Ognjen
Ognjen,
--
GHUM Harald Massa
persuadere et programmare
Harald Armin Massa
Spielberger Straße 49
70435 Stuttgart
0173/9409607
no fx, no carrier pigeon
-
%s is too gigantic of an industry to bend to the whims of reality
Is there a way to run Postgres in embedded mode? More precisely, to run it without using TCP/IP port, and without installing as a service?
I am aware of Unix-domain sockets, but is there something similar for Windows?
on unix, as you imply, it can be run with unix domain sockets, but not on Windows as they simply don't have this interface. and, it can be started as an application rather than as a system service, but it still runs as a separate process from your application(s) and in my book, thats not really embedded.
within Windows there is the concept of a "named pipe". You could dig into the communication code of Postgres which puts data through the unix-socket, and write an "named pipe" communicator. PostgreSQL would still be running in its own process, but only accessable from within the application. Be aware: that is an idea for a solution; it is neither included nor projected for PostgreSQL.
Harald
GHUM Harald Massa
persuadere et programmare
Harald Armin Massa
Spielberger Straße 49
70435 Stuttgart
0173/9409607
no fx, no carrier pigeon
-
%s is too gigantic of an industry to bend to the whims of reality
John R Pierce wrote: > Ognjen Blagojevic wrote: >> Is there a way to run Postgres in embedded mode? More precisely, to >> run it without using TCP/IP port, and without installing as a service? >> I am aware of Unix-domain sockets, but is there something similar for >> Windows? > > on unix, as you imply, it can be run with unix domain sockets, but not > on Windows as they simply don't have this interface. and, it can be > started as an application rather than as a system service, but it still > runs as a separate process from your application(s) and in my book, > thats not really embedded. Thank you all for clarification. Regards, Ognjen
Massa, Harald Armin wrote: > > on unix, as you imply, it can be run with unix domain sockets, > but not on Windows as they simply don't have this interface. > and, it can be started as an application rather than as a > system service, but it still runs as a separate process from > your application(s) and in my book, thats not really embedded. > > > within Windows there is the concept of a "named pipe". You could dig > into the communication code of Postgres which puts data through the > unix-socket, and write an "named pipe" communicator. PostgreSQL would > still be running in its own process, but only accessable from within > the application. Be aware: that is an idea for a solution; it is > neither included nor projected for PostgreSQL. I'm not sure more than one connection can be made to a named pipe, they don't really work like sockets, so this would be a poor choice as even an embedded database typically needs several connects from a multithreaded application (plus maintenance connections such as autovacuum)