for a createStmt,  it will call transformCreateStmt,  and then
heap_create_with_catalog.
but looks it just check the if_not_exists in transformCreateStmt.

so there is a chance that when the transformCreateStmt is called, the table
is not created, but before the heap_create_with_catalog is called,  the
table was created.  if so, the "if not exits" will raise error  "ERROR:
relation "xxxx" already exists"

I can reproduce this with gdb,

demo=# create table if not exists dddd2 (a int);
ERROR:  relation "dddd2" already exists

is it designed as this on purpose or is it a bug?

I am using the lates commit on github now.

Reply via email to