Thread: current_database()
Quick system function to pull out the current database. I've used this a number of times to allow stored procedures to find out where they are. Especially useful for those that do logging or hit a remote server. It's called current_database() to match with current_user().
Attachment
On Tue, 2002-08-06 at 21:15, Rod Taylor wrote: > Quick system function to pull out the current database. > > I've used this a number of times to allow stored procedures to find out > where they are. Especially useful for those that do logging or hit a > remote server. > > It's called current_database() to match with current_user(). It's also a necessity for an informational schema. The catalog (database) name is required in a number of places.
Rod Taylor <rbt@zort.ca> writes: > + Datum > + current_database(PG_FUNCTION_ARGS) > + { > + PG_RETURN_NAME(DatabaseName); > } DatabaseName is not actually a NAME, only a C string. You need a palloc and a namestrcpy in there. regards, tom lane
On Wed, 2002-08-07 at 00:10, Tom Lane wrote: > Rod Taylor <rbt@zort.ca> writes: > > + Datum > > + current_database(PG_FUNCTION_ARGS) > > + { > > + PG_RETURN_NAME(DatabaseName); > > } > > DatabaseName is not actually a NAME, only a C string. You need a palloc > and a namestrcpy in there. Hmm.. Oops.
Attachment
Rod Taylor <rbt@zort.ca> writes: >> DatabaseName is not actually a NAME, only a C string. You need a palloc >> and a namestrcpy in there. > Hmm.. Oops. That's better ... but we also need a patch to the SGML documentation (probably it belongs in misc/session information functions). regards, tom lane
Your patch has been added to the PostgreSQL unapplied patches list at: http://candle.pha.pa.us/cgi-bin/pgpatches I will try to apply it within the next 48 hours. --------------------------------------------------------------------------- Rod Taylor wrote: > On Wed, 2002-08-07 at 00:10, Tom Lane wrote: > > Rod Taylor <rbt@zort.ca> writes: > > > + Datum > > > + current_database(PG_FUNCTION_ARGS) > > > + { > > > + PG_RETURN_NAME(DatabaseName); > > > } > > > > DatabaseName is not actually a NAME, only a C string. You need a palloc > > and a namestrcpy in there. > > Hmm.. Oops. [ Attachment, skipping... ] > > ---------------------------(end of broadcast)--------------------------- > TIP 5: Have you checked our extensive FAQ? > > http://www.postgresql.org/users-lounge/docs/faq.html -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073
Patch applied with docs. Thanks. --------------------------------------------------------------------------- Rod Taylor wrote: > On Tue, 2002-08-06 at 21:15, Rod Taylor wrote: > > Quick system function to pull out the current database. > > > > I've used this a number of times to allow stored procedures to find out > > where they are. Especially useful for those that do logging or hit a > > remote server. > > > > It's called current_database() to match with current_user(). > > It's also a necessity for an informational schema. The catalog > (database) name is required in a number of places. > > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Don't 'kill -9' the postmaster > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073