BUG #17646: create rule named "_RETURN" will cause pg core

The Post Office <noreply@postgresql.org>

From: PG Bug reporting form <noreply@postgresql.org>
To: pgsql-bugs@lists.postgresql.org
Cc: liukui@kingbase.com.cn
Date: 2022-10-17T12:03:15Z
Lists: pgsql-bugs
The following bug has been logged on the website:

Bug reference:      17646
Logged by:          kui liu
Email address:      liukui@kingbase.com.cn
PostgreSQL version: 15.0
Operating system:   linux
Description:        

Hi, I encounter an error, it may be a bug,  thx.

here is a test case

create table t (id integer);
create view v1 as select * from t;
create or replace rule "_RETURN" as on UPDATE to v1 do instead select * from
t;
select * from v1;

execute up sql, will get this error

server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
The connection to the server was lost. Attempting reset: Failed.
The connection to the server was lost. Attempting reset: Failed.
!?>

Commits

  1. Reject non-ON-SELECT rules that are named "_RETURN".

  2. Guard against table-AM-less relations in planner.