PostgreSQL, uzivatelske promenne na serveru

Radek Kanovsky rk na dat.cz
Úterý Leden 8 11:44:02 CET 2002


On Tue, Jan 08, 2002 at 10:37:12AM +0100, David Zabensky wrote:

> Dobry den vespolek,
> 
> chtel bych vas poprosit o malou radu tykajici se PostgreSQL 7.1.3.
> 
> Mam maly problem: potreboval bych zjistit, zda existuje na serveru
> promenna, jenz obsahuje jedinecnou hodnotu pro uzivatelskou session.
> Tj. ma vzdycky stejny nazev ale pokazde jinou hodnotu, jenz se nastavi
> po connectu a zanikne po disconnect. A lze se na ni odkazovat z SQL
> prikazu resp. PLSQL funkci. Koukal jsem na napovedu pro SET, SHOW...
> ale lze nastavovat jen runtime parametry. Nelze pridavat nove.
> 
> Potreboval bych to pro implementaci uzivatelskych promennych na serveru
> (pokud to tedy psql neumi sam, coz jsem nikde nevycetl), mel by to byt
> klic do podobne tabulky:
> 
> SESS_ID VARCHAR,
> VAR_NAME VARCHAR,
> VAR_VAL VARCHAR,
> PRIMARY KEY(SESS_ID, VAR_NAME)
> 
> Studoval jsem dokumentaci, zbezne prochazel zdrojaky i systemovy katalog,
> ale na nic jsem neprisel. Nevite nekdo o nejake promenne/funkci jenz by
> se dala na toto pouzit? Mam verzi 7.1.3.
> 
> Moc Vam dekuji, koukam na to uz druhy den. A mam obavu, ze to nejde...

Jednoduse to asi nepujde, protoze v PLSQL lze zjistit o aktualni session
pouze jedinou informaci a to uzivatele: "SELECT getpgusername();".

Mozna by stacilo udelat jednoduchou funkci v C, ktera by vzala
cas + username + PID serveroveho procesu a vygenerovala z techto informaci
nejake jednoznacne session ID. V podadresari contrib bude par prikladu,
jak takovou funkci napsat a v serveru aktivovat.

Zdravi

Radek Kaňovský


Další informace o konferenci Databases