oguimbal / pg-mem

An in memory postgres DB instance for your unit tests
MIT License
1.98k stars 97 forks source link

CTEs for inserts don't work #401

Open rswheeldon opened 5 months ago

rswheeldon commented 5 months ago

Describe the bug

Trying to do an insert based on a CTE (with) and I get the following:

🔨 Not supported 🔨 : "WITH" nested statement with query type 'insert'

👉 pg-mem is work-in-progress, and it would seem that you've hit one of its limits.

*️⃣ Reconsituted failed SQL statement: WITH a AS (SELECT *  FROM foo   ) INSERT INTO bar   SELECT *  FROM a

👉 You can file an issue at https://github.com/oguimbal/pg-mem along with a way to reproduce this error (if you can), and  the stacktrace:

To Reproduce


create table foo (x integer);
create table bar (x integer);
insert into foo values (1), (2);

insert into bar select * from foo;

with a as (
    select * from foo
)
insert into bar select * from a;

First insert works but the second doesn't despite them being functionally identical (and both working in postgres 14.1

pg-mem version

2.8.1