Thread: simple question about using an empty string building a partial index

simple question about using an empty string building a partial index

From
Tom Hartnett
Date:
can it be done?

create index my_idx on my_table(col1) where col1='';

ERROR:  invalid input syntax for integer: ""

Seems simple enough but I don't know what the trick is.

Re: simple question about using an empty string building a partial index

From
Guillaume Lelarge
Date:
On 05/03/2011 05:52 AM, Tom Hartnett wrote:
> can it be done?
>
> create index my_idx on my_table(col1) where col1='';
>
> ERROR:  invalid input syntax for integer: ""
>
> Seems simple enough but I don't know what the trick is.
>

col1 is an integer, not a string. And you cannot check for empty string
in an integer column.


--
Guillaume
 http://www.postgresql.fr
 http://dalibo.com

Re: simple question about using an empty string building a partial index

From
"Ross J. Reedstrom"
Date:
On Tue, May 03, 2011 at 08:48:19AM +0200, Guillaume Lelarge wrote:
> On 05/03/2011 05:52 AM, Tom Hartnett wrote:
> > can it be done?
> >
> > create index my_idx on my_table(col1) where col1='';
> >
> > ERROR:  invalid input syntax for integer: ""
> >
> > Seems simple enough but I don't know what the trick is.
> >
>
> col1 is an integer, not a string. And you cannot check for empty string
> in an integer column.

So if you've got a lot of records that display that column as an emtpy
string, it's actually probably filled with a NULL, so your index create
command would be something like:

create index my_idx on my_table(col1) where col1 is null;

Ross
--
Ross Reedstrom, Ph.D.                                 reedstrm@rice.edu
Systems Engineer & Admin, Research Scientist        phone: 713-348-6166
Connexions                  http://cnx.org            fax: 713-348-3665
Rice University MS-375, Houston, TX 77005
GPG Key fingerprint = F023 82C8 9B0E 2CC6 0D8E  F888 D3AE 810E 88F0 BEDE