Thread: Creating partial index on a relation
Hello I am doing a small project in Postgress where i have to achieve the following: Suppose i know the index name(lets say index1) and the relation(table1) on which partial index to has to be build. I was looking through the code and found that IndexStmt-->whereClause is the one that i need to populate manually . As of know i am successful in creating index by giving a call to Method DefineIndex of indexcmds.c that creates a index on the relation, but this index is not an partial index. I found that DefineIndex takes *Expr *predicate* as an parameter which specifies that partial index has to be built. This predicate is nothing but *IndexStmt-->whereClause * So is there a way to populate manually IndexStmt-->whereClause An example of partial index that i need is if my My table1 schema is (a int ,b int ,c int) index on c where a is null, b is null and c is not null Thanks in advance Regards -- View this message in context: http://postgresql.1045698.n5.nabble.com/Creating-partial-index-on-a-relation-tp5776230.html Sent from the PostgreSQL - hackers mailing list archive at Nabble.com.
naman.iitb <naman.bbps@gmail.com> wrote: > An example of partial index that i need is if my My table1 schema > is (a int ,b int ,c int) > > index on c where a is null, b is null and c is not null Your question is not very clear, but perhaps you are looking for something like this: CREATE INDEX index1 ON table1 (c) WHERE a IS NULL AND b IS NULL AND c IS NOT NULL; This list is for discussion of adding features and fixing bugs in the the PostgreSQL product. For future posts requesting help with *using* PostgreSQL please use the pgsql-general list. -- Kevin Grittner EDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
On 10/29/2013 04:15 PM, naman.iitb wrote: > So is there a way to populate manually IndexStmt-->whereClause Unless you have an _extremely_ compelling reason, you should probably just use the SPI routines to execute a CREATE INDEX command. -- Craig Ringer http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training & Services