Re: Why doesn't this pgsql function compile?

From: Alex Pilosov <alex(at)pilosoft(dot)com>
To: Larry Rosenman <ler(at)lerctr(dot)org>
Cc: PostgreSQL SQL List <pgsql-sql(at)postgresql(dot)org>
Subject: Re: Why doesn't this pgsql function compile?
Date: 2001-06-15 22:27:03
Message-ID: Pine.BSO.4.10.10106151826220.17529-100000@spider.pilosoft.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql


On Fri, 15 Jun 2001, Larry Rosenman wrote:

<snip>
you are missing an endif:

> DROP TRIGGER netblock_bgp ON networks;
> DROP FUNCTION networks_trigger_router();
> CREATE FUNCTION networks_trigger_router()
> RETURNS opaque
> AS 'BEGIN
> IF TG_OP = ''DELETE'' AND OLD.router ISNULL
> THEN return OLD;
> END IF;
> IF TG_OP = ''INSERT'' AND NEW.router ISNULL
> THEN return NEW;
> END IF;
> IF TG_OP = ''INSERT'' AND get_router_nexthop(NEW.router) ISNULL
> THEN return NEW;
> END IF;
> IF TG_OP = ''DELETE'' AND get_router_nexthop(OLD.router) ISNULL
> THEN return OLD;
> END IF;
> IF TG_OP = ''INSERT''
> THEN add_ip_route(host(network(NEW.netblock)),
> host(netmask(NEW.netblock)),
> get_router_ethernet(NEW.router),
> get_router_nexthop(NEW.router),
> get_router_nexthop_user(NEW.router),
> get_router_nexthop_password(NEW.router),
> get_router_nexthop_enpass(NEW,router));
> return NEW;
> END IF;
> IF TG_OP = ''DELETE''
> THEN del_ip_route(host(network(OLD.netblock)),
> host(netmask(OLD.netblock)),
> get_router_ethernet(OLD.router),
> get_router_nexthop(OLD.router),
> get_router_nexthop_user(OLD.router),
> get_router_nexthop_password(OLD.router),
> get_router_nexthop_enpass(OLD,router));
> return OLD;
^^^^^^^^^^^^^^^^
END IF;
> -- TG_OP must be UPDATE to get here....
> IF OLD.router NOTNULL and get_router_nexthop(OLD.router) NOTNULL
> AND NEW.router NOTNULL and OLD.router != NEW.router
> THEN del_ip_route(host(network(OLD.netblock)),
> host(netmask(OLD.netblock)),
> get_router_ethernet(OLD.router),
> get_router_nexthop(OLD.router),
> get_router_nexthop_user(OLD.router),
> get_router_nexthop_password(OLD.router),
> get_router_nexthop_enpass(OLD,router));
> END IF;
> IF NEW.router NOTNULL and get_router_nexthop(NEW.router) NOTNULL
> THEN add_ip_route(host(network(NEW.netblock)),
> host(netmask(NEW.netblock)),
> get_router_ethernet(NEW.router),
> get_router_nexthop(NEW.router),
> get_router_nexthop_user(NEW.router),
> get_router_nexthop_password(NEW.router),
> get_router_nexthop_enpass(NEW,router));
> END IF;
> return NEW;
> END;'
> LANGUAGE 'plpgsql';
> CREATE TRIGGER netblock_bgp
> BEFORE UPDATE OR INSERT OR DELETE
> ON networks
> FOR EACH ROW
> EXECUTE PROCEDURE networks_trigger_router();
>
>

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Joe Conway 2001-06-15 22:42:53 Re: Why doesn't this pgsql function compile?
Previous Message Larry Rosenman 2001-06-15 22:09:50 Why doesn't this pgsql function compile?