-- for PostgreSQL 7.4 the || op needs an explicit cast.
create or replace function tree_left(varbit) returns varbit as '
-- Create a key less than or equal to that of any child of the
-- current key.
declare
key alias for $1;
begin
if key is null then
return ''X00''::varbit;
else
return key || ''X00''::varbit;
end if;
end;' language 'plpgsql' with(iscachable);
create or replace function tree_right(varbit) returns varbit as '
-- Create a key greater or equal to that of any child of the current key.
-- Used in BETWEEN expressions to select the subtree rooted at the given
-- key.
declare
key alias for $1;
begin
if key is null then
return ''XFFFFFFFF''::varbit;
else
return key || ''XFFFFFFFF''::varbit;
end if;
end;' language 'plpgsql' with(iscachable);