SQL Problem: ERROR: ExecEvalExpr: unknown expression type 108

From: Michael Klemme <mklemme(at)gmx(dot)de>
To: pgsql-sql(at)postgresql(dot)org
Cc: Christoph Konnertz <christoph(at)inm(dot)de>
Subject: SQL Problem: ERROR: ExecEvalExpr: unknown expression type 108
Date: 1999-06-04 12:14:49
Message-ID: 19990604141449.A573@moa.rhein-main.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

Browse pgsql-sql by date

  From Date Subject
Next Message José Soares 1999-06-04 12:51:35 Re: [SQL] Howto convert floats to text?
Previous Message Martin Leja 1999-06-04 10:45:22 Howto convert floats to text?