Nelson Gonzaga escreveu:
> Existe em Postgresql a possibilidade de vincular campos de uma view em
> uma tabela e criar um indice deste campo?
> 
euler=# create table foo (a integer, b integer, c integer);
CREATE TABLE
euler=# insert into foo select generate_series(1, 1000), generate_series(1,
50), generate_series(1, 2000);
INSERT 0 2000
euler=# create index foo_idx on foo ( (a+b) );
CREATE INDEX
euler=# \d foo
      Table "public.foo"
 Column |  Type   | Modifiers
--------+---------+-----------
 a      | integer |
 b      | integer |
 c      | integer |
Indexes:
    "foo_idx" btree ((a + b))

euler=# create view foov as select a+b as x, c from foo;
CREATE VIEW

euler=# explain select * from foov where x < 5;
                               QUERY PLAN
-------------------------------------------------------------------------
 Bitmap Heap Scan on foo  (cost=17.68..40.93 rows=700 width=12)
   Recheck Cond: ((a + b) < 5)
   ->  Bitmap Index Scan on foo_idx  (cost=0.00..17.50 rows=700 width=0)
         Index Cond: ((a + b) < 5)
(4 rows)


-- 
  Euler Taveira de Oliveira
  http://www.timbira.com/
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a