Re: [Debian] Postgres Problem
Christian Schrader <Christian.Schrader@gmx.de> writes:
> On Sun, Mar 18, 2001 at 07:27:55PM +0100, Ramin Motakef wrote:
> > Hallo zusammen,
> > ich habe eine Möglichkeit gefunden das Postgres-Backend zu crashen
> > :-(.
>
> Da gehört nichts dazu :)
>
> > INSERT INTO bymonth (year,month,hours)
> > SELECT date_part('year',day),
> > date_part('month',day),
> > sum(stop-start)
> > FROM stunden
> > GROUP BY date_part('year',day), date_part('month',day);
> >
> > Die Tabellen hab ich so angelegt:
> >
> > CREATE TABLE "stunden" (
> > "id" serial,
> > "day" date,
> > "start" time,
> > "stop" time,
> > "bem" text,
> > PRIMARY KEY ("id")
> > );
> >
> > Die SELECT Anweisung alleine funktioniert wie erwartet...
>
> Die geht? Bei mir nicht (PG 7.1beta4). die beschwert sich darüber, daß
> sum(stop-start) nicht geht. sum() ist nicht für den Typ time definiert.
> sum((start-stop)::intervall) funktioniert. Nun wird aber intervall nicht
> nach float8 gecastet. Du solltest Deine Typen mal überdenken.
>
> statt sum(stop-start) z.B.
>
> date_part('hour',sum((stop-start)::interval)) +
> date_part('min',sum((stop-start)::interval))/60
>
> nehmen.
>
> bye
> Christian
Ooops, das kommt davon wenn man den Kram abtippt und nicht per cut +
paste überträgt...
Die "richtige" Zeile in der Select-Anweisung ist
to_hours(sum(stop-start), wobei to_hours eine selbstgeschrieben
Funktion ist:
CREATE FUNCTION "to_hour" (interval )
RETURNS float8 AS '
SELECT date_part(''day'',$1)*24 +
date_part(''hour'',$1) +
date_part(''min'',$1) / 60;'
LANGUAGE 'SQL';
allerdings ergibt bei mir auch time - time ein interval.
Wenn ich allerdings in psql mit "\do -" nachschaue ist das wohl ein
undokumentiertes Feature, da gibts nämlich nur timestamp - timestamp =
interval.
Wie auch immer, ich hab das Problem mal and pgsql-bugs geschickt und
als Antwort bekommen, das es in 7.1 gefixt wäre, daher nächste Frage:
gibt es die 7.1 Beta schon als Debian - Packet?
Gruß,
Ramin
--
-----------------------------------------------------------
Um sich aus der Liste auszutragen schicken Sie bitte eine
E-Mail an debian-user-de-request@lehmanns.de die im Subject
"unsubscribe <deine_email_adresse>" enthaelt.
Bei Problemen bitte eine Mail an: Jan.Otto@Lehmanns.de
-----------------------------------------------------------
730 eingetragene Mitglieder in dieser Liste.
Reply to: