postgresql fake table

Sziasztok!

Szeretnék készíteni egy táblát, ami a lekérdezés feltételének függvényében ad vissza egy sort. :) nyilván ez mindig így van, de ha pl. ez a lekérdezés:
SELECT user, dir FROM fake_table WHERE user = 'john';

akkor az eredmény:

user | dir
------------
john | john_dir

és bármelyik user-t kérdezzük le mindig ennek analógiájára adja vissza az eredményt. A userekről nem tudunk semmit, nincs róla nyilvántartás.
Muszáj valamilyen "fake table"-szerű megoldás, mert a lekérdezés formátumába nem tudok belenyúlni.

Hozzászólások

Nem értem, hogy mit akarsz. Tábla sosem ad vissza sort, de még aprópénzt sem.
Az a lényeg, hogy az eredmény az legyen, hogy

jozsi jozsi_dir

?

SELECT user, user || '_dir' AS dir FROM users WHERE user = 'john'

De erre valók a nézetek:

CREATE VIEW userDirs AS SELECT user, user || '_dir' AS dir FROM users

SELECT * FROM userDirs WHERE user = 'john'

--
The Net is indeed vast and infinite...
http://gablog.eu

Csucsukám, szerintem picit csiszolj a stílusodon, mert így nem fogsz messzire jutni.
Azt nem úgy mondják, hogy "Úgy látom még nem értitek teljesen", hanem úgy, hogy "Úgy látszik, még nem sikerült világosan elmagyaráznom (de legalábbis mindenki szembe jön az autópályán)".

Egyébként elég furcsa dolgot szeretnél, gyanítom, hogy rossz irányba haladnak a gondolataid, de ha neked ez kell, akkor:

select 'foo','foo_dir';

Sziasztok!

Elnézést mindenkitől, akit megbántottam volna, nem volt szándékomban senkit se lekezelni vagy lenézni.

styg: Akkor, hogy úgy mondjam szeretném érthetőbben elmagyarázni:
adott egy kész program, amiben szerepel egy bedrótozott lekérdezés: "SELECT user, dir FROM users WHERE user = ?" - ezen nem tudok változtatni. Azt szeretném, hogy a program bármilyen felhasználónevet kérdez le az eredményt a fenti analógiára kapja.

Namost a view-l szerintem az lesz a probléma, hogy az adatbázis-kezelők a view resultset-jére szűrnek rá a where-ben megadott feltételekkel.

Ezt szerintem tárolt eljárással lehet megoldani, pl. úgy, hogy készít egy olyan tárolt eljárást, ami ugyanolyan a resultset-t ad vissza, mint amilyen a tábla, de még akkor is be kell adni a tárolt eljárásnak paraméterbe, hogy mit akar visszakapni.

Szóval valami ilyesmi lesz belőle:

SELECT user, dir FROM user('blabla') WHERE user = 'blabla';
CREATE FUNCTION fake_users(VARCHAR) 
RETURNS SETOF users AS $$
SELECT $1::VARCHAR AS user, $1 || '_dir' as dir
$$ LANGUAGE SQL;

----------------
Lvl86 Troll