Hi Alexander, It seems that STRICT is the issue. But why does your function return a table of boolean in this case ? As it only updates one record, it would probably be easier to return a boolean only. CREATE OR REPLACE FUNCTION words_toggle_puzzle( in_mid bigint ) RETURNS boolean AS $func$ UPDATE words_moves SET puzzle = NOT puzzle WHERE mid = in_mid RETURNING puzzle; $func$ LANGUAGE sql; Regards,
Patrick Fiche Database Engineer, Aqsacom Sas. c. 33 6 82 80 69 96 [01-03_AQSA_Main_Corporate_Logo_JPEG_White_Low.jpg]<http://www.aqsacom.com/> From: Alexander Farber <alexander.far...@gmail.com> Sent: Tuesday, December 3, 2019 11:12 AM To: pgsql-general <pgsql-gene...@postgresql.org> Subject: Syntax error for UPDATE ... RETURNING INTO STRICT Good morning, why does not PostgreSQL 10.11 please like the - CREATE OR REPLACE FUNCTION words_toggle_puzzle( in_mid bigint ) RETURNS table ( out_puzzle boolean ) AS $func$ UPDATE words_moves SET puzzle = NOT puzzle WHERE mid = in_mid RETURNING puzzle INTO STRICT out_puzzle; $func$ LANGUAGE sql; and fails with - ERROR: 42601: syntax error at or near "INTO" LINE 11: INTO STRICT out_puzzle; ^ LOCATION: scanner_yyerror, scan.l:1128 Thank you Alex P.S: Here the table description, with mid being the PK: words_ru=> \d words_moves Table "public.words_moves" Column | Type | Collation | Nullable | Default ---------+--------------------------+-----------+----------+------------------------------------------ mid | bigint | | not null | nextval('words_moves_mid_seq'::regclass) action | text | | not null | gid | integer | | not null | uid | integer | | not null | played | timestamp with time zone | | not null | tiles | jsonb | | | score | integer | | | letters | text | | | hand | text | | | puzzle | boolean | | not null | false Indexes: "words_moves_pkey" PRIMARY KEY, btree (mid) "words_moves_gid_played_idx" btree (gid, played DESC) "words_moves_uid_action_played_idx" btree (uid, action, played) "words_moves_uid_idx" btree (uid) Check constraints: "words_moves_score_check" CHECK (score >= 0) Foreign-key constraints: "words_moves_gid_fkey" FOREIGN KEY (gid) REFERENCES words_games(gid) ON DELETE CASCADE "words_moves_uid_fkey" FOREIGN KEY (uid) REFERENCES words_users(uid) ON DELETE CASCADE Referenced by: TABLE "words_scores" CONSTRAINT "words_scores_mid_fkey" FOREIGN KEY (mid) REFERENCES words_moves(mid) ON DELETE CASCADE