Re: Why doesn't this pgsql function compile?

Поиск
Список
Период
Сортировка
От Alex Pilosov
Тема Re: Why doesn't this pgsql function compile?
Дата
Msg-id Pine.BSO.4.10.10106151826220.17529-100000@spider.pilosoft.com
обсуждение исходный текст
Ответ на Why doesn't this pgsql function compile?  (Larry Rosenman <ler@lerctr.org>)
Список 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();
> 
> 



В списке pgsql-sql по дате отправления:

Предыдущее
От: Larry Rosenman
Дата:
Сообщение: Why doesn't this pgsql function compile?
Следующее
От: Larry Rosenman
Дата:
Сообщение: Re: Why doesn't this pgsql function compile?