Search Postgresql Archives

Custom SQL function does not like IF-statement

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Good evening!

For a 2-player game I am trying to create a custom SQL function, which stores a new message (if not empty) into words_chat table and then return all messages from that table for a given game:

CREATE OR REPLACE FUNCTION words_get_chat(
                in_uid integer,
                in_gid integer,
                in_msg varchar
        ) RETURNS TABLE (
                out_my boolean,
                out_msg varchar
        ) AS
$func$

        IF LENGTH(TRIM(in_msg)) > 0 AND
                -- ensure only messages of player1 and player2 are stored
                EXISTS (SELECT 1 FROM words_games 
                        WHERE gid = in_gid AND 
                        (player1 = in_uid OR player2 = in_uid)) THEN

                INSERT INTO words_chat (
                        created,
                        uid,
                        gid,
                        msg
                ) VALUES (
                        CURRENT_TIMESTAMP,
                        in_uid,
                        in_gid,
                        in_msg
                );
        END IF;
        
        SELECT 
                uid = in_uid,
                msg
        FROM words_chat
        WHERE gid = in_gid
        ORDER BY created DESC;

$func$ LANGUAGE sql;

Unfortunately, PostgreSQL 9.5.4 does not like the syntax:

ERROR:  syntax error at or near "IF"
LINE 11:         IF LENGTH(TRIM(in_msg)) > 0 AND
                 ^

Please, how to rewrite my queries, so that the SQL function syntax is ok?

Is it maybe possible by adding a WHERE part to the UPDATE statement?

Greetings from Bochum
Alex


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux