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