Re: Adding a column with default value possibly corrupting a functional index.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 12/16/06, Tom Lane <tgl@xxxxxxxxxxxxx> wrote:
"Rajesh Kumar Mallah" <mallah.rajesh@xxxxxxxxx> writes:
> I have an index on upper(general.cat_url(category_id)) on a table.
> when i add a column *with* default value , a query that previously
> used to give result does not give results anymore. REINDEX'ing the
> table produces correct result.

Can you provide a self-contained example of this? 


Hi,

thanks for the reply.

that was the first thing  i was trying to do before the post
so far i have not been able to.

 What PG version are
you using?

 
8.2.0

 

What is that nonstandard function you're using in the index?

Its declared immutable , it queries the same table , its recursive
and it queries another custom function also.

dumping the function def below , lemme know if there is anything
obvious.

Warm Regds
mallah.


CREATE OR REPLACE FUNCTION general.cat_url (integer) RETURNS varchar AS '

DECLARE v_category_id ALIAS FOR $1;
DECLARE tmp_record RECORD;
DECLARE tmp_name VARCHAR;
DECLARE tmp_code VARCHAR;

BEGIN
tmp_code := '''' ;

        IF v_category_id = -1 THEN
                RETURN ''NO SUCH CATEGORY'';
        END IF;

        SELECT INTO tmp_record name, category_id, parent_category_id from general.web_category_master join general.category_tree using(category_id) where category_id=v_category_id  and link is false;

        IF NOT FOUND THEN
                RETURN  '''';
        END IF;

        tmp_name := general.cat_url(tmp_record.parent_category_id) ;

        IF tmp_record.category_id <> 0 THEN
                tmp_code := tmp_name   || ''/'' || general.dir_name(tmp_record.name) ;
        END IF;

        tmp_code = ltrim(tmp_code,''/'');
        RETURN tmp_code;
END;

' LANGUAGE 'plpgsql' IMMUTABLE;






                        regards, tom lane


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux