Subject: DDL in active production database

From: "Skelton, Adam J" <[email-masked]>
Date: Mon, 25 Sep 2023 00:01:28 +0000

Hi,

I hope I have the correct group here.

I have a question that I am struggling to find answers for in the documentation.  Does Postgres have problems with creation / changes to database schema objects when the database is actively being used?

In particular - rightly or wrongly - our developers want our application to occasionally issue the following kinds of DDL when it's in active use

Alter table ... add column ...
Create / drop materialised view ...
Create / drop table created with INHERITANCE

I know oracle hates this and you can run into some serious issues, SQL server generally lets you away with it.

Should we expect problems if we decided to do this in the latest version of Postgres?

Thanks for your time.
Adam
The information contained in this message is proprietary and/or confidential. If you are not the intended recipient, please: (i) delete the message and all copies; (ii) do not disclose, distribute or use the message in any manner; and (iii) notify the sender immediately. In addition, please be aware that any message addressed to our domain is subject to archiving and review by persons other than the intended recipient. Thank you.

---

From: "David G. Johnston" <[email-masked]>
Date: Sun, 24 Sep 2023 17:06:19 -0700

On Sunday, September 24, 2023, Skelton, Adam J <[email-masked]>
wrote:
>
>  Does Postgres have problems with creation / changes to database schema
> objects when the database is actively being used?
>

It doesn’t have problems.  It does require locks that can preclude active
use of those table for selects and updates while the DDL is processing.
Whether that is an issue for your application depends on the application.
And the duration required depending upon table size and the specific
command.

David J.

---

From: Andreas Joseph Krogh <[email-masked]>
Date: Mon, 25 Sep 2023 11:58:56 +0200 (CEST)

På mandag 25. september 2023 kl. 02:01:28, skrev Skelton, Adam J <
[email-masked] <mailto:[email-masked]>>:

Hi,

I have a question that I am struggling to find answers for in the 
documentation. Does Postgres have problems with creation / changes to database 
schema objects when the database is actively being used?

In particular – rightly or wrongly – our developers want our application to 
occasionally issue the following kinds of DDL when it’s in active use

I know oracle hates this and you can run into some serious issues, SQL server 
generally lets you away with it.

Should we expect problems if we decided to do this in the latest version of 
Postgres?

Thanks for your time.

Adam

The information contained in this message is proprietary and/or confidential. 
If you are not the intended recipient, please: (i) delete the message and all 
copies; (ii) do not disclose, distribute or use the message in any manner; and 
(iii) notify the sender immediately. In addition, please be aware that any 
message addressed to our domain is subject to archiving and review by persons 
other than the intended recipient. Thank you.

It will cause problems if you mix DDL and DML when having deferred constraints 
with following updates in the same TX.

--
Andreas Joseph Krogh
CTO / Partner - Visena AS
Mobile: +47 909 56 963
[email-masked] <mailto:[email-masked]>
www.visena.com <https://www.visena.com>
 <https://www.visena.com>