current_database()

Started by Rod Tayloralmost 24 years ago7 messagespatches
Jump to latest
#1Rod Taylor
rbt@rbt.ca

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().

Attachments:

current_database.patchtext/x-patch; charset=ISO-8859-1; name=current_database.patchDownload+11-0
#2Rod Taylor
rbt@rbt.ca
In reply to: Rod Taylor (#1)
Re: current_database()

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.

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Rod Taylor (#1)
Re: current_database()

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

#4Rod Taylor
rbt@rbt.ca
In reply to: Tom Lane (#3)
Re: current_database()

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.

Attachments:

current_database.patchtext/plain; charset=ISO-8859-1; name=current_database.patchDownload+21-0
#5Tom Lane
tgl@sss.pgh.pa.us
In reply to: Rod Taylor (#4)
Re: current_database()

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

#6Bruce Momjian
bruce@momjian.us
In reply to: Rod Taylor (#4)
Re: current_database()

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
#7Bruce Momjian
bruce@momjian.us
In reply to: Rod Taylor (#2)
Re: current_database()

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