Erstellt vor 9 Jahren
Geschlossen vor 8 Jahren
#368 closed Fehler (fixed)
lx-office.sql: maxvalue in sequence id und glid zu groß für integer
| Erstellt von: | t.lange@… | Verantwortlicher: | p.reetz@… |
|---|---|---|---|
| Priorität: | hoch | Meilenstein: | |
| Komponente: | kivitendo ERP | Version: | 2.2.2 |
| Schweregrad: | kritisch | Stichworte: | Installation |
| Beobachter: | s.koehler@… |
Beschreibung
Gleich am Anfang in /sql/lx-office.sql wird in 'CREATE SEQUENCE...' maxvalue für
'id' und 'glid' auf 9223372036854775807 gesetzt. Das enspricht der maximalen
(positiven) Zahl im Datentyp int8. In sämtlichen Tabellen in denen mittels 'id'
und 'glid' hochgezählt wird (nächste id = id+1), findet man aber nur den
Datentyp integer = int4. Dessen maximaler Wert liegt aber bereits bei 2147483647.
Bei extrem großen Datenmengen oder häufigen Änderungen der id's bei ganz
speziellen LX-ERP-Anpassungen könnte das zu einem Datenbank-Fehler führen.
Entweder sollte der maxvalue heruntergesetzt werden auf 2147483647 oder die id's
in allen betroffenen Tabellen sollten auf bigint = int8 gesetzt werden.
Zu den Datentypen, siehe auch:
http://www.postgresql.org/files/documentation/books/pghandbuch/html/datatype.html
Den 'maxvalue 9223372036854775807' findet man auch noch in weiteren *.sql.
Änderungshistorie (2)
comment:1 Geändert vor 9 Jahren durch s.koehler@…
- Beobachter s.koehler@… hinzugefügt
- Priorität von Normal nach Hoch geändert
- Schweregrad von Unwichtig nach Kritisch geändert
comment:2 Geändert vor 8 Jahren durch m.bunkus@…
- Lösung auf fixed gesetzt
- Status von new nach closed geändert
Danke, behoben durch Setzen des Maximalwertes aller Sequenzen auf 2147483647.
Anmerkung nebenbei: Wenn man bei PostgreSQL eine Tabelle mit einer Spalte vom
Typ "serial" anlegt, so mach PostgreSQL daraus ja eine Spalte vom Typ "integer
NOT NULL default nextval('tabelle_spalte_seq')" und legt eine neue Sequenz an,
die, wie unsere anderen Sequenzen, keinen Maximalwert besitzt (bzw.
9223372036854775807).

(Mit Bezug zu comment 0)
Danke für den Hinweis, das könnte mitunter kritisch werden. Zumindest bei der
"id". Ist zwar unwahrscheinlich, aber nicht ausgeschlossen.
Deswegen stufe ich den Bug hoch!