From: | Michael Klemme <klemme(at)bankakademie(dot)de> |
---|---|
To: | pgsql-sql(at)postgresql(dot)org |
Subject: | SQL Problem: ERROR: ExecEvalExpr: unknown expression type 108 |
Date: | 1999-06-09 08:28:30 |
Message-ID: | 375E25AE.EEA6FD67@bankakademie.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Hallo!
I try to create a web server authentification database for our Apache
using PostgreSQL.
Students will be added to certain groups, group entries need to be
invalidated once in a while.
klemme(at)moa:~/Postgres/auth> psql -d authentify -f
auth-create-test.sql
DROP TABLE user;
DROP
DROP TABLE ugroup;
DROP
-- user entries
CREATE TABLE user(
vorname char(20) NOT NULL, --Vorname des Benutzers
name char(20) NOT NULL, --Name des Benutzers
uname char(10) PRIMARY KEY, --eindeutiger Benutzername des
Benutzers im Server';
pass char(16) NOT NULL, --Paßwort des Benutzers
changed date NOT NULL
);
NOTICE: CREATE TABLE/PRIMARY KEY will create implicit index
user_pkey for table userCREATE
-- group entries
CREATE TABLE ugroup
(
uname char(10) NOT NULL, --Zeiger auf user
ugroup char(10) NOT NULL, --Name der Gruppe
expires date NOT NULL, --Verfallsdatum
changed date NOT NULL);
CREATE
CREATE UNIQUE INDEX ugroup_idx ON ugroup (uname,ugroup);
CREATE
vacuum;
VACUUM
--- Test entries
insert into user values ('Michael', 'Klemme', 'mklemme', 'xxxx',
'04-06-1999');
INSERT 24895 1
insert into user values ('Michaela','Klemme','maklemme', 'xxxx',
'04-06-1999');
INSERT 24896 1
insert into ugroup values ('mklemme', 'Physics', '31-12-1999',
'04-06-1999');
INSERT 24897 1
insert into ugroup values ('mklemme', 'Math', '31-12-1999',
'04-06-1999');
INSERT 24898 1
insert into ugroup values ('maklemme', 'Math', '31-12-1998',
'04-06-1999');
INSERT 24899 1
--I need to create a view for the Apache module that only returns
user
--entries if a non-expired group entry exists.
--The SELECT Statement below works okay.
SELECT uname, pass FROM user
WHERE UNAME IN
(SELECT uname FROM ugroup WHERE expires >= datetime_date('now'));
uname |pass
----------+----------------
mklemme |xxxx
(1 row)
--However, if I use the same statment in a view, I get this error
message
-- view to be accessed by Apache
DROP VIEW legal_user;
DROP
CREATE VIEW legal_user AS
SELECT uname, pass FROM user
WHERE UNAME IN
(SELECT uname FROM ugroup WHERE expires >= datetime_date('now'));
CREATE
SELECT * FROM legal_user;
ERROR: ExecEvalExpr: unknown expression type 108
EOF
ANy help would be greatly appreciated!
Thanks,
Grüße
Michael
--
Michael Klemme
@home mklemme(at)gmx(dot)de /
klemme(at)bankakademie(dot)de / klemme(at)acm(dot)org
PGP: http://www.hmu.auckland.ac.nz/~michael-k/pgp
Attachment | Content-Type | Size |
---|---|---|
auth-create-test.sql | text/plain | 1.6 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Michal Samek | 1999-06-09 08:41:02 | Select like when searching for whole word and optimizing it |
Previous Message | Hub.Org News Admin | 1999-06-08 18:39:52 |