On 12/16/06, Tom Lane <[EMAIL PROTECTED]> wrote:
"Rajesh Kumar Mallah" <[EMAIL PROTECTED]> 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