[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: