Re: Implizite lossy Typecasts bei INSERTs

From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: pgsql-de-allgemein(at)postgresql(dot)org
Cc: Tim Landscheidt <tim(at)tim-landscheidt(dot)de>
Subject: Re: Implizite lossy Typecasts bei INSERTs
Date: 2008-12-27 11:28:21
Message-ID: 200812271328.21667.peter_e@gmx.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

On Friday 26 December 2008 19:48:19 Tim Landscheidt wrote:
> Hallo,
>
> mir fiel neulich auf, dass:
> | tim=# SELECT version();
> | version
> | -------------------------------------------------------------------------
> |------------------------------ PostgreSQL 8.3.5 on i386-redhat-linux-gnu,
> | compiled by GCC gcc (GCC) 4.3.2 20081007 (Red Hat 4.3.2-6) (1 Zeile)
> |
> | tim=# CREATE TABLE Test (i INT);
> | CREATE TABLE
> | tim=# INSERT INTO Test (i) VALUES (3.1415);
> | INSERT 0 1
> | tim=# SELECT * FROM Test;
> | i
> | ---
> | 3
> | (1 Zeile)
> |
> | tim=#
>
> ohne Fehlermeldung durchläuft. Irgendwo in meinem Gedächtnis
> schlummert die Erinnerung, dass das früher anders war. Ehe
> ich die release notes der letzten Jahre noch einmal durchge-
> he :-): War das wirklich jemals anders?

Nur mal um das Verständnis vielleicht zu verbessern: Obiger Fall ist
kein "impliziter" Typecast im Sinne von CREATE CAST ... AS IMPLICIT, sondern
AS ASSIGNMENT, weil hier die Zuweisung eines Wertes in einen Speicherort mit
festgelegtem Typ stattfindet. Implizite Typecasts, die "lossy" sind, sollte
es nicht geben (zumindest in neueren Versionen), aber im Fall AS ASSIGNMENT
kann das schon vorkommen, hauptsächlich, wenn der SQL-Standard danach
verlangt.

In response to

Responses

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Andreas 'ads' Scherbaum 2008-12-29 10:19:01 == Wöchentlicher PostgreSQL Newsletter - 28. Dezember 2008 ==
Previous Message Andreas 'ads' Scherbaum 2008-12-26 21:17:35 Re: Implizite lossy Typecasts bei INSERTs