Re: Trying to move away from Firebird

From: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
To: ioan ghip <ioan(at)pangea-comm(dot)com>, Postgres General <pgsql-general(at)postgresql(dot)org>
Subject: Re: Trying to move away from Firebird
Date: 2016-02-12 22:48:06
Message-ID: 56BE6126.5060408@aklaver.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 02/12/2016 02:11 PM, ioan ghip wrote:
> I was able to create all the domains, tables, views, etc, but I have
> trouble creating stored procedures and triggers. Also, a question, does
> Postgres support events, for example in Firebird I could do something
> like this and then receive the event in the GUI:
>
> if ((NEW.MUSED_M_>=NEW.MLIMIT_M_) and (NEW.MLIMIT_M_>0) and
> (NEW.ISACTIVE=1) and (NEW.FAXTOFAXFLAG=1)) then
> begin
> POST_EVENT 'deactivate_f2f';
> end

LISTEN/NOTIFY?

http://www.postgresql.org/docs/9.5/interactive/sql-listen.html

What exactly does POST_EVENT do?

>
> Please help me translate the examples bellow so I can understand the
> differences:
>
>
> CREATE GENERATOR GENADMINID START WITH 0 INCREMENT BY 1;
> SET GENERATOR GENADMINID TO 108;

http://www.postgresql.org/docs/9.5/interactive/sql-createsequence.html
http://www.postgresql.org/docs/9.5/interactive/functions-sequence.html

>
> CREATE TRIGGER B_UPDATE_COMPANY FOR COMPANY
> ACTIVE AFTER UPDATE POSITION 10
> AS
> begin
> if (old.AGENTID != new.AGENTID) then
> begin
> update USERS set USERS.AGENTID=new.AGENTID where USERS.COMPANYID =
> new.COMPANYID;
> end
> end

http://www.postgresql.org/docs/9.5/interactive/sql-createtrigger.html

Difference in Postgres, you specify a separate function you want the
trigger to execute.

>
> CREATE PROCEDURE GET_ATA_STATUS (
> MAC VARCHAR(128),
> NOW_D_ INTEGER)
> RETURNS (
> ATA_STATUS INTEGER)
> AS
> begin
> SELECT IIF((a.TIMESTAMP_D_ + a.EXPIRE) > :NOW_D_, 1, 0) FROM ATA a
> WHERE a.ATAMAC = :MAC into :ATA_STATUS;
> SUSPEND;
> end

http://www.postgresql.org/docs/9.5/interactive/sql-createfunction.html

In Postgres you have a choice of languages. Built in as of recent
versions are:
C
http://www.postgresql.org/docs/9.5/interactive/xfunc-c.html

SQL
http://www.postgresql.org/docs/9.5/interactive/sql-createfunction.html

and the one you probably want to start with

plpgsql
http://www.postgresql.org/docs/9.5/interactive/plpgsql.html

>
> Thanks a lot.

--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Adrian Klaver 2016-02-12 22:56:16 Re: Windows performance
Previous Message John R Pierce 2016-02-12 22:43:55 Re: Windows performance