ALTER TABLE PARTITION

Hallo zusammen,
ich teste gerade die V10 Beta 3. Gibt es eine Möglichkeit die Partitionsgrenzen nachträglich zu verändern? Bzw eine Partition zu splitten?
Die Doku gibt das irgendwie nicht her. Aber wie will man eine Partition die auf Maxvalue/Minvalue gesetzt ist, je erweitern?

Vielen Dank
Marco

Irgendwie ist mein ursprünglicher Beitrag verschwunden oder ich hab im falschen Thread gepostet?
Also ich habe dazu bis jetzt nur gelesen, hab noch keine 10er aufgesetzt.
Ich glaube man muss unterscheiden, ob es um eine Erweiterung geht oder eine Änderungen der bound_specs. Letzteres ist glaube ich nicht ohne weiteres möglich.
Für eine Erweiterung würde man eine neue Partition mit Create anlegen und den gewünschten Bound_specs. (Diese können auch ‘unbound’ sein, also ist man da ja flexibel.)
Für Maintainance (nachträgliches einhängen, “abstellen”, umschichten …") würde man wohl mit Attach und Detach arbeiten.
Ein simples alter partion … bound_specs ist offenbar nicht vorhanden / vorgesehen. Würde im Zweifel auch zu erheblichen Datenbewegungen führen. Glaube, das will man nicht.

Ein paar Links:
https://www.postgresql.org/docs/10/static/ddl-partitioning.html
https://www.postgresql.org/docs/10/static/sql-altertable.html


https://www.keithf4.com/postgresql-10-built-in-partitioning/

schon mal vielen Dank für die prompte Antwort!
ich habe eine Partition (die letzte) mit Maxvalue angelegt (2018-maxvalue). So weit so gut.
Wenn man jetzt aber eine Partition dazwischen quetschen will , also 2019-Maxvalue hat man ein Problem. Bei Oracle hat man die letzte Partition einfach gesplittet.
Ich würde aber sagen, dass hier bei Postgres der Nutzen stark eingeschränkt ist, ohne Split Partition und Merge Partition.
Aber evtl kann es ja die nächste Version :slight_smile:
Vielen Dank & ein schönes Wochenende
Marco

Naja, stark eingeschränkt würde ich was anderes nennen. Die Preise von Postgres im Vergleich zu Oracle bspw. oder die Lizenzbestimmungen von Oracle, die sind nicht nur eine starke Einschränkung, sie sind auch immer unkalkulierbarer :wink:

Ich finde, die Version 10 Änderungen für Partitioning sind eine starke Erweiterung!

Wenn Du Beispiele mit 2018 und 2019 bringst, dann riecht das stark nach jahres spezifischer Partitionierung von Nutzdaten, z.B. anhand eines CreateDate oder sowas. Da wäre ich so dreist und würde mal ein paar Jahre im Voraus planen, frisst ja kein Brot.
Und wenn ich mich in Mengen Dimensionen bewege, wo man partitioniert, ist solch ein Umbau von Partitionen sowie mit etwas Sorgfalt anzugehen. Wer weiß, wo die Partionen liegen. Mit attach und detach und ein bisschen Liebe geht da sicher was.

Stimmt und Danke für den detach / attach Tipp, ich habe ein Split hinbekommen, war gar nicht so schwer. Was mich nur wundert ist, das bei Date Range Partitionen der Endzeitpunkt nicht mehr in die Partition fällt. Also wenn ich vom 1.1.2017 bis 31.12.2017 partitioniere ist der 31.12 nicht mehr enthalten :frowning:

Gruss
Marco

Ohne getestet zu haben:
Was ist das für ein Datentyp? Date oder Timestampt?
Falls Timestamp sind alle Werte größer als Mitternacht von 30. auf 31.12. größer als 31.12.
Nur mal als Idee.