Hlavní navigace

Názor k článku Pole v PostgreSQL od Pavel Stěhule - ok – znam databazi, kde datovy typ relace predstavoval...

  • Článek je starý, nové názory již nelze přidávat.
  • 14. 9. 2009 19:40

    Pavel Stěhule

    ok – znam databazi, kde datovy typ relace predstavoval pole ukazatelu.

    Jinak k Vasi puvodni otazce – pole muze obsahovat krome skalarnich hodnot, take kompozitni hodnoty – tudiz lze prevest tabulku do jedne hodnoty.

    postgres=# create table f(a int, b int, c int);
    CREATE TABL
    postgres=# create table ff(v f[]);
    CREATE TABLE
    postgres=# insert into  f values(10,20,30),(40,50,60);
    INSERT 0 2
    postgres=# insert into ff select array(select row(a,b,c)::f from f);
    INSERT 0 1
    postgres=# select * from ff;
                  v
    -----------------------------
     {"(10,20,30)","(40,50,60)"}
    (1 row)
    
    postgres=# select unnest(v) from ff;
       unnest
    ------------
     (10,20,30)
     (40,50,60)
    (2 rows)
    
    postgres=# select (unnest(v)).* from ff;
     a  | b  | c
    ----+----+----
     10 | 20 | 30
     40 | 50 | 60
    (2 rows)