Pim-community-dev: MSSQL Server Gruppe nach Problem

Erstellt am 13. Nov. 2017  ·  4Kommentare  ·  Quelle: akeneo/pim-community-dev

URL:
/ruhe/attribut/

Error:
Beim Ausführen von 'SELECT p0_.[id] AS id_0, p0_.[sort_order] AS sort_order_1, p0_.[useable_as_grid_filter] AS useable_as_grid_filter_2, p0_.[max_characters] AS max_characters_3, p0_.[validation_rule._4 AS p0_.[validation_rule._] Validierung_regexp] AS validierung_regexp_5, p0_.[wysiwyg_enabled] AS wysiwyg_enabled_6, p0_.[Zahl_min] AS Zahl_min_7, p0_.[Zahl_max] AS Zahl_max_8, p0_.[Dezimals_erlaubt] AS Dezimal_Datum_erlaubt[9, pallowed0_. AS date_min_11, p0_.[date_max] AS date_max_12, p0_.[metric_family] AS metric_family_13, p0_.[default_metric_unit] AS default_metric_unit_14, p0_.[max_file_size] AS max_file_size_15, p0_.[allowed_input_extensions , p0_.[is_required] AS is_required_18, p0_.[is_unique] AS is_unique_19, p0_.[is_localizable] AS is_localizable_20, p0_.[is_scopable] AS is_scopable_21, p0_.[code] AS code_22, p0_. 23, p0_.[attribute_type] AS attribute_type_24, p0_.[backend_type] AS backend_type_25, p0_.[properties] AS properties_26, p0_.[created] AS created_27, p0_.[updated] AS updated_28, p0_.group_id AS group_id_29_attribute_pcatalog FROM pim_pcata LEFT JOIN pim_catalog_attribute_group p1_ ON p0_.group_id = p1_.id GROUP BY p0_.[id] ORDER BY (SELECT 0) OFFSET 0 ROWS FETCH NEXT 20 ROWS ONLY':

SQLSTATE [42000, 8120]: [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Column 'pim_catalog_attribute.sort_order' ist in der Auswahlliste ungültig, da sie weder in einer Aggregatfunktion noch in der GROUP BY-Klausel enthalten ist.
SQLSTATE [42000, 8180]: [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Statement(s) konnten nicht vorbereitet werden.

Problem ist in:
/src/Pim/Bundle/EnrichBundle/Doctrine/ORM/Repository/AttributeSearchableRepository.php
Linie: 160

Hilfreichster Kommentar

Hallo @ahocquard ,
Ich kenne die Systemvoraussetzungen.
Die Frage ist wirklich, ob Akeneo Verbesserungen in diesem Bereich akzeptieren würde oder nicht.

Wir haben einen Kunden, für den wir Akeneo mit MSSQL arbeiten lassen.
Wenn Sie an den Verbesserungen in diesem Bereich interessiert sind, können wir nach Absprache mit jemandem aus dem Kernteam von Akeneo Pull Requests vorbereiten, welche Lösung für Sie akzeptabel ist.
Wenn nicht, behalten wir die Verbesserungen für uns.

Bitte bedenken Sie auch, dass Verbesserungen in diesem Bereich auch bei MySQL helfen, da MySQL auch in Richtung strengerer SQL-Standards geht. Es eröffnet auch eine Möglichkeit, Akeneo mit anderen DBMS wie postgresql zu verwenden.

Wenn Sie Fragen oder Bedenken haben, senden Sie mir bitte eine Nachricht zum Akeneo-Slack.

Alle 4 Kommentare

Hallo,

Akeneo PIM sollte nicht mit MS SQL Server installiert werden.
Bitte überprüfen Sie die Systemanforderungen: https://docs.akeneo.com/latest/install_pim/manual/system_requirements/system_requirements.html

Es muss mit Mysql >= 5.7.8 als Datenbank installiert werden.

Grüße,
Alexander

Hallo @ahocquard ,
Ich kenne die Systemvoraussetzungen.
Die Frage ist wirklich, ob Akeneo Verbesserungen in diesem Bereich akzeptieren würde oder nicht.

Wir haben einen Kunden, für den wir Akeneo mit MSSQL arbeiten lassen.
Wenn Sie an den Verbesserungen in diesem Bereich interessiert sind, können wir nach Absprache mit jemandem aus dem Kernteam von Akeneo Pull Requests vorbereiten, welche Lösung für Sie akzeptabel ist.
Wenn nicht, behalten wir die Verbesserungen für uns.

Bitte bedenken Sie auch, dass Verbesserungen in diesem Bereich auch bei MySQL helfen, da MySQL auch in Richtung strengerer SQL-Standards geht. Es eröffnet auch eine Möglichkeit, Akeneo mit anderen DBMS wie postgresql zu verwenden.

Wenn Sie Fragen oder Bedenken haben, senden Sie mir bitte eine Nachricht zum Akeneo-Slack.

Hallo @tmotyl ,

Wir wären definitiv für Verbesserungen in diesem Punkt offen!
Sie könnten sogar mit dem MySQL-Konfigurationsparameter ONLY_FULL_GROUP_BY spielen, sodass Sie einen sehr ähnlichen Fehler wie bei MSSQL erhalten.
https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_only_full_group_by

Nach der Reproduktion auf MySQL schauen wir uns gerne die Verbesserungen an!

Zögern Sie nicht, mit Ihrem Code eine weitere PR zu öffnen.

Vielen Dank im Voraus !

Hallo @tmotyl ,

Nach Rücksprache mit dem Team scheint es, dass wir bereits mit der richtigen GROUP BY-Syntax (mit dem ONLY_FULL_GROUP_BY-Modus) konform sind. Also stehe ich korrigiert (danke @ahocquard ) ;) !

Die von Ihnen bereitgestellte Abfrage ist gemäß Abschnitt T301 "Funktionale Abhängigkeiten" der SQL99-Spezifikationen gültig.

In unserem Fall wird die Spalte id in GROUP_BY . Und da diese Spalte der Primärschlüssel ist, bestätigt sie die Tatsache, dass alle Daten, die zu derselben Zeile wie der Primärschlüssel gehören, mit diesem id verknüpft sind, sodass sie aus den id können. und benötigen weder eine Aggregationsfunktion noch müssen sie auf der GROUP BY-Seite vorhanden sein.

Das Problem liegt also im MSSQL-Server (oder vielleicht in Ihrer Version), der es nicht in Transact-SQL zu implementieren scheint.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen