Обсуждение: 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().
Вложения
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.
Вложения
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