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();
>
>
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? |