Project

General

Profile

Feature #7407

Column type TEXT default: Ubuntu 18 complains about missing values if column isn't specified

Added by Carsten Rose almost 2 years ago. Updated about 1 year ago.

Status:
Closed
Priority:
Normal
Assignee:
Target version:
Start date:
03.12.2018
Due date:
% Done:

100%

Estimated time:
Discuss:

Description

Auf einem Ubuntu 18.04 System scheint ein Default in der MariaDB config dafuer zu sorgen, das INSERT Statements,
bei denen TEXT columns NICHT angegeben sind, zu einem Abbruch des INSERTS fuehren. Grund: 'missing default value'.

Dieses Setting kann on the fly abgeschaltet werden mit:

SET sql_mode = "NO_ENGINE_SUBSTITUTION";

Z.B. kann das in der QFQ config in 'database.init' gesetzt werden.

Associated revisions

Revision fe39a99a (diff)
Added by Carsten Rose almost 2 years ago

Fixes #7407: MariaDB / Ubuntu 18 complains about missing values if column of type TEXT isn't explicit specified in INSERT. New default for database.init=SET sql_mode = "NO_ENGINE_SUBSTITUTION"

History

#1 Updated by Carsten Rose almost 2 years ago

  • Assignee set to Carsten Rose
  • Target version set to 18.12.0
  • Laut https://mariadb.com/kb/en/library/sql-mode/ ist das Setting 'SET sql_mode = "NO_ENGINE_SUBSTITUTION"' seit 10.1.7 by default on. Aktuell kann ich das nicht verfifizieren.
  • Die Probleme auf der 'megger' docker Installation zeigen das Gegenteil. Das Update via formEditor.sql funktioniert nur mit 'SET sql_mode = "NO_ENGINE_SUBSTITUTION"' im sql File.
  • Beim speichern von Formularen mit Column.typ=TEXT gibt es einen Fehler, wenn die Spalten nicht angegeben sind. Erst mit manuell gesetztem 'database.ini=SET sql_mode = "NO_ENGINE_SUBSTITUTION";' funktioniert das speichern

Aktuelle Entscheidung:

  • Es kann nicht davon ausgegangen werden, das zeitnah alle QFQ Installationen min. ein MariaDB 10.2.1 haben.
  • Der neue Default in der MariaDB widerspricht der Beobachtung unter Ubuntu 18.04.
  • Die Option, das MariaDB sich nicht beschwert bei fehlenden Werten, scheint vor Ubuntu 18.04 der Default gewesen zu sein.

Resumee:

  • Wird 'database.init=SET sql_mode = "NO_ENGINE_SUBSTITUTION"' gesetzt, scheint das die kompatibelste Loesung zu sein.
  • Ab sofort ist das der Default bei neu angelegten QFQ Installationen.
  • Die Datei formEditor.sql wurde bereits erweitert.

#2 Updated by Carsten Rose almost 2 years ago

  • Status changed from New to Closed
  • % Done changed from 0 to 100

#3 Updated by Nicola Chiapolini about 1 year ago

Wie #9281 zeigt, ist diese Lösung nicht genug um Probleme bei bestehenden Installationen zu verhindern. Wäre schön, wenn user nach einem Upgrade auf den Problematischen sql_mode hingewiesen würden (bei den anderen checks nach dem update auch

select @@GLOBAL.sql_mode

ausführen und eine Warnung anzeigen, falls STRICT_TRANS_TABLES im Resultat enthalten ist.

Also available in: Atom PDF