FEHLER: Unerlaubte Mischung von Sortierreihenfolgen

FEHLER: Unerlaubte Mischung von Sortierreihenfolgen

am 23.09.2007 18:38:24 von Peter Schleif

Kennt von euch jemand diesen Fehler und weiß was zu tun ist? Google
liefert ganze 6 Treffer, die mir alle nicht geholfen haben.

Nach dem Upgrade von 5.0.18 auf 5.0.45 unter WinXP hatte ich Probleme
mit dem Anlegen von stored procedures (Datenbanknamen alle lowercase).
Ein manuelle Korrektur schaffte Abhilfe. Allerdings funktionieren
nicht alle sp. Einige liefern den obigen Fehler.

Bei der Installation habe ich "nur MyISAM" gewählt und "latin1" als
charset. Aber das Probleme scheint auch eher in der Sortierung zu
liegen. MySQL besteht auf schwedischer Sortierung und ignoriert
anscheinend meine Voreinstellung in der my.ini

---------------my.ini-------------------
character-set-server = latin1
collation-server = latin1_german2_ci
----------------------------------------

Irgendwelche Ideen?


Peter

Re: FEHLER: Unerlaubte Mischung von Sortierreihenfolgen

am 23.09.2007 22:51:34 von Christian Kirsch

Peter Schleif schrieb:
> Kennt von euch jemand diesen Fehler und weiß was zu tun ist? Google
> liefert ganze 6 Treffer, die mir alle nicht geholfen haben.
>
> Nach dem Upgrade von 5.0.18 auf 5.0.45 unter WinXP hatte ich Probleme
> mit dem Anlegen von stored procedures (Datenbanknamen alle lowercase).
> Ein manuelle Korrektur schaffte Abhilfe. Allerdings funktionieren
> nicht alle sp. Einige liefern den obigen Fehler.

Und die sind alle mit "VS, nur für den Dienstgebrauch" gekennzeichnet -
oder warum verschweigst Du hier den Code und die GENAUE Fehlermeldung?

Re: FEHLER: Unerlaubte Mischung von Sortierreihenfolgen

am 24.09.2007 16:33:15 von Peter Schleif

Christian Kirsch schrieb:
>
> Und die sind alle mit "VS, nur für den Dienstgebrauch" gekennzeichnet -

Ganz so schlimm ist es nicht, aber das originale table- und sp-Layout
kann ich mit Rücksicht auf den Kunden tatsächlich nicht posten.


> oder warum verschweigst Du hier den Code und die GENAUE Fehlermeldung?

Sorry. Das war dumm von mir.

Hatte heute keine Zeit, ein Test-Szenario anzulegen und die Originale
kann/darf ich nicht posten (siehe oben). Immerhin kann ich schon mal
soviel sagen, dass der Fehler reproduzierbar ist und in seiner
schlimmsten Ausprägung den MySQL-Dienst an Dr.Watson überweist. Ich
poste Tabelle und s.p. spätestens morgen. Ich bitte zu entschuldigen,
dass ich nicht erst das Test-Szenario angelegt und dann den Fehler
gepostet habe.

Peter

Re: FEHLER: Unerlaubte Mischung von Sortierreihenfolgen

am 24.09.2007 18:21:21 von Sven Paulus

Peter Schleif wrote:
> Bei der Installation habe ich "nur MyISAM" gewählt und "latin1" als=20
> charset. Aber das Probleme scheint auch eher in der Sortierung zu=20
> liegen. MySQL besteht auf schwedischer Sortierung und ignoriert=20
> anscheinend meine Voreinstellung in der my.ini

> ---------------my.ini-------------------
> character-set-server =3D latin1
> collation-server =3D latin1_german2_ci
> ----------------------------------------

Was sagt=20
SHOW VARIABLES LIKE '%collation%'
und ein jeweils ein
SHOW CREATE TABLE beteiligte_tabellen
bezueglich COLLATE der Tabellen und ggfls. einzelner Spalten dieser Tabell=
en?

Ist da vielleicht irgendwie latin1 und utf8 gemischt und Du sortierst mit
ORDER BY a, b ueber zwei unterschiedlich definierte Spalten a und b? Ich
weiss zwar spontan nicht, ob das verboten ist, aber wuerde mich nicht
wundern.

Re: FEHLER: Unerlaubte Mischung von Sortierreihenfolgen

am 25.09.2007 18:04:22 von Peter Schleif

Anbei:

1 Abfrage
2 Tabellen
1 stored procedure

Die Abfrage bringt dann bei mir reproduzierbar den MySQL-Dienst zum
Absturz:

Fehler: 2013 (CR_SERVER_LOST)
Meldung: Lost connection to MySQL server during query

Server Version: 5.0.45-community-nt
WinXP Pro SP2


Unter 5.0.18 war alles okay.

Vielleicht *diemsal* kine Diskussion über Sinn, Zweck und Performance
von berechneten Joins? Danke

Außer dem Crash habe ich auch immer noch das Problem, dass die
Groß/Klein-Schreibung von Datenbank-Namen beim Erstellen von s.p.
nicht berücksichtigt wird.



==================== SQL-CODE =========================


-- Die Abfrage
-- --------------------------------------
SELECT DISTINCT
t1.barcode, test.barcode_umsetzung(t1.barcode)
FROM test.t1
INNER JOIN test.t2
ON test.barcode_umsetzung(t1.barcode)=t2.barcode
WHERE t1.barcode=12345678


-- Tabelle t1
-- --------------------------------------
DROP TABLE IF EXISTS test.t1;
CREATE TABLE test.t1 (
id int(10) unsigned NOT NULL auto_increment,
barcode int(8) unsigned zerofill NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY barcode (barcode)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;

INSERT INTO test.t1 (id, barcode) VALUES (1, 12345678);
INSERT INTO test.t1 (id, barcode) VALUES (2, 12345679);



-- Tabelle t2
-- --------------------------------------
DROP TABLE IF EXISTS test.t2;
CREATE TABLE test.t2 (
id int(10) unsigned NOT NULL auto_increment,
barcode bigint(11) unsigned zerofill NOT NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;

INSERT INTO test.t2 (id, barcode) VALUES (1, 12345106708);
INSERT INTO test.t2 (id, barcode) VALUES (2, 12345106709);



-- s.p. barcode_umsetzung
-- --------------------------------------
DELIMITER |

DROP FUNCTION IF EXISTS test.barcode_umsetzung |

CREATE FUNCTION test.barcode_umsetzung(barcode8 INT(8))
RETURNS BIGINT(11) UNSIGNED
READS SQL DATA
BEGIN
RETURN FLOOR(barcode8/1000)*1000000 + 100000 + FLOOR((barcode8 MOD
1000)/10)*100 + (barcode8 MOD 10);
END |

DELIMITER ;


============================================================ ====

Re: FEHLER: Unerlaubte Mischung von Sortierreihenfolgen

am 25.09.2007 21:09:38 von Axel Schwenke

Peter Schleif wrote:
>
> Anbei:
>
> 1 Abfrage
> 2 Tabellen
> 1 stored procedure
>
> Die Abfrage bringt dann bei mir reproduzierbar den MySQL-Dienst zum
> Absturz:

Ich habe mir die Freiheit genommen, auf der Basis deines sehr schönen
Beispiels einen Bugreport zu schreiben:

http://bugs.mysql.com/bug.php?id=31191

> Außer dem Crash habe ich auch immer noch das Problem, dass die
> Groß/Klein-Schreibung von Datenbank-Namen beim Erstellen von s.p.
> nicht berücksichtigt wird.

Kannst du das ein bisschen genauer ausführen? Insbesondere was liefert
dir SHOW VARIABLES LIKE 'lower_case_%' ?


XL

Re: FEHLER: Unerlaubte Mischung von Sortierreihenfolgen

am 25.09.2007 21:14:52 von Axel Schwenke

Peter Schleif wrote:

Ach so, da hab ich doch was wesentliches vergessen zu schreiben:

> CREATE FUNCTION test.barcode_umsetzung(barcode8 INT(8))
> RETURNS BIGINT(11) UNSIGNED
> READS SQL DATA
> BEGIN
> RETURN FLOOR(barcode8/1000)*1000000 + 100000 + FLOOR((barcode8 MOD
> 1000)/10)*100 + (barcode8 MOD 10);
> END |

Die Charakterisierung dieser Funktion als 'READS SQL DATA' ist falsch.
Tatsächlich ist das eine deterministische Funktion, die vollkommen frei
von Seiteneffekten ist. Wenn du READS SQL DATA durch DETERMINISTIC
ersetzt, funktioniert das Ganze auch.

Unabhängig davon ist der Crash natürlich ein Bug.


XL

Re: FEHLER: Unerlaubte Mischung von Sortierreihenfolgen

am 26.09.2007 05:05:14 von Peter Schleif

Axel Schwenke schrieb:
>
> http://bugs.mysql.com/bug.php?id=31191

Danke. Ich habe dich dort so verstanden, dass der Crash mit
DETERMINISTIC *nicht* auftritt.

Das kann ich leider nicht bestätigen. Bei mir crashed es so oder so.


>
>> Groß/Klein-Schreibung von Datenbank-Namen beim Erstellen von s.p.
>
> Kannst du das ein bisschen genauer ausführen? Insbesondere was liefert
> dir SHOW VARIABLES LIKE 'lower_case_%' ?

+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_file_system | ON |
| lower_case_table_names | 2 |
+------------------------+-------+

Mit

lower_case_file_system = Off

in der my.ini startet der neue Server erst gar nicht.


Peter

Re: FEHLER: Unerlaubte Mischung von Sortierreihenfolgen

am 26.09.2007 05:07:00 von Peter Schleif

Axel Schwenke schrieb:
>
> Kannst du das ein bisschen genauer ausführen?

Hier noch ein Beispiel:


==================== SQL-CODE =========================


-- Datenbank anlegen und Großschreibung kontrollieren
-- --------------------------------------
CREATE DATABASE TEST2;

SHOW DATABASES LIKE 'TEST2';

+------------------+
| Database (TEST2) |
+------------------+
| TEST2 |
+------------------+



-- s.p. anlegen und kontrollieren
-- --------------------------------------
DELIMITER |

DROP FUNCTION IF EXISTS TEST2.TEST |

CREATE FUNCTION TEST2.TEST()
RETURNS VARCHAR(3)
DETERMINISTIC
BEGIN
RETURN 'foo';
END |

DELIMITER ;

SHOW FUNCTION STATUS LIKE 'TEST';

+-------+------+
| Db | Name |
+-------+------+
| test2 | TEST |
+-------+------+

============================================================ ====

Re: FEHLER: Unerlaubte Mischung von Sortierreihenfolgen

am 26.09.2007 05:07:18 von Peter Schleif

Axel Schwenke schrieb:
>
> Kannst du das ein bisschen genauer ausführen?

Hier noch ein Beispiel:


==================== SQL-CODE =========================


-- Datenbank anlegen und Großschreibung kontrollieren
-- --------------------------------------
CREATE DATABASE TEST2;

SHOW DATABASES LIKE 'TEST2';

+------------------+
| Database (TEST2) |
+------------------+
| TEST2 |
+------------------+



-- s.p. anlegen und kontrollieren
-- --------------------------------------
DELIMITER |

DROP FUNCTION IF EXISTS TEST2.TEST |

CREATE FUNCTION TEST2.TEST()
RETURNS VARCHAR(3)
DETERMINISTIC
BEGIN
RETURN 'foo';
END |

DELIMITER ;

SHOW FUNCTION STATUS LIKE 'TEST';

+-------+------+
| Db | Name |
+-------+------+
| test2 | TEST |
+-------+------+

============================================================ ====

Re: FEHLER: Unerlaubte Mischung von Sortierreihenfolgen

am 26.09.2007 07:09:05 von petsch

On 25 Sep., 21:14, Axel Schwenke wrote:
>
> Die Charakterisierung dieser Funktion als 'READS SQL DATA' ist falsch.

Stimmt.


> Wenn du READS SQL DATA durch DETERMINISTIC
> ersetzt, funktioniert das Ganze auch.

Der Server schmiert trotzdem ab.

Re: FEHLER: Unerlaubte Mischung von Sortierreihenfolgen

am 26.09.2007 09:00:24 von Claus Reibenstein

Axel Schwenke schrieb:

> von Seiteneffekten ist. Wenn du READS SQL DATA durch DETERMINISTIC
¯¯¯¯¯¯¯¯¯¯¯¯¯¯

Aaaaahhh!!!!!!!!!!! Ich *hasse* dieses Unwort!

Die deutsche Übersetzung von "side effect" lautet "Nebenwirkung". Das
kann Dir jedes Englisch-Wörterbuch bestätigen.

Gruß. Claus (langsam wieder abkühlend)

Re: FEHLER: Unerlaubte Mischung von Sortierreihenfolgen

am 26.09.2007 09:57:12 von dnoeth

Claus Reibenstein wrote:

>> von Seiteneffekten ist. Wenn du READS SQL DATA durch DETERMINISTIC
> ¯¯¯¯¯¯¯¯¯¯¯¯¯¯
>
> Aaaaahhh!!!!!!!!!!! Ich *hasse* dieses Unwort!
>
> Die deutsche Übersetzung von "side effect" lautet "Nebenwirkung". Das
> kann Dir jedes Englisch-Wörterbuch bestätigen.

Bei riesigen Seiteneffekten fragen sie ihren Arzt oder Apotheker ;-)

> Gruß. Claus (langsam wieder abkühlend)

Hier ist es draussen schon ziemlich kalt geworden, da schadet ein
bisschen Wärme nicht:

Daumenregel

Dieter

[OT] Denglisch (was: FEHLER: Unerlaubte Mischung von Sortierreihenfolgen)

am 26.09.2007 10:09:06 von Sebastian Suchanek

Dieter Noeth schrieb:
> Claus Reibenstein wrote:
>
>>> von Seiteneffekten ist. Wenn du READS SQL DATA durch DETERMINISTIC
>> ¯¯¯¯¯¯¯¯¯¯¯¯¯¯
>>
>> Aaaaahhh!!!!!!!!!!! Ich *hasse* dieses Unwort!
>>
>> Die deutsche Übersetzung von "side effect" lautet "Nebenwirkung". Das
>> kann Dir jedes Englisch-Wörterbuch bestätigen.
>
> Bei riesigen Seiteneffekten fragen sie ihren Arzt oder Apotheker ;-)
>
>> Gruß. Claus (langsam wieder abkühlend)
>
> Hier ist es draussen schon ziemlich kalt geworden, da schadet ein
> bisschen Wärme nicht:
>
> Daumenregel

Jetzt willst Du's Claus aber richtig dreckig geben, oder?
Aber gut, Heizöl, Gas und Strom werden auch immer teurer, da will
ich auch mithelfen:

"Sinn machen".


HTH & SCNR,

Sebastian

Re: [OT] Denglisch

am 26.09.2007 10:18:05 von Christian Kirsch

Am 26.09.2007 10:09 schrieb Sebastian Suchanek:

> Jetzt willst Du's Claus aber richtig dreckig geben, oder?
> Aber gut, Heizöl, Gas und Strom werden auch immer teurer, da will
> ich auch mithelfen:
>
> "Sinn machen".
>

Schön, das endlich mal jemand dieses Problem adressiert und uns
kommuniziert, wo seine Kernkompetenzen liegen. Mehr als ein echter
Fall für Gartners magisches Quadrat.

--
Christian

Re: FEHLER: Unerlaubte Mischung von Sortierreihenfolgen

am 26.09.2007 10:36:43 von Axel Schwenke

petsch wrote:
> On 25 Sep., 21:14, Axel Schwenke wrote:
>
>> Wenn du READS SQL DATA durch DETERMINISTIC
>> ersetzt, funktioniert das Ganze auch.
>
> Der Server schmiert trotzdem ab.

Welche Version ist das? Ich habe nur mit 5.0.50 auf Linux getestet
und da crasht es mit DETERMINISTIC nicht. Bitte einen Kommentar mit
Versionsnummer und Betriebssystem an den Bug anfügen. Danke!


XL

Re: [OT] Denglisch

am 26.09.2007 11:10:34 von Claus Reibenstein

Sebastian Suchanek schrieb:

> "Sinn machen".

Harmlos. Das gilt ja schon fast als deutsch ;-)

Gruß. Claus

Re: [OT] Denglisch

am 26.09.2007 11:19:09 von Stefan+Usenet

On Wed, 26 Sep 2007 10:09:06 +0200 Sebastian Suchanek wrote:
> >>> von Seiteneffekten ist. Wenn du READS SQL DATA durch DETERMINISTIC
> >> ¯¯¯¯¯¯¯¯¯¯¯¯¯¯
> >> Aaaaahhh!!!!!!!!!!! Ich *hasse* dieses Unwort!

> >> Die deutsche Übersetzung von "side effect" lautet "Nebenwirkung".
> >> Das kann Dir jedes Englisch-Wörterbuch bestätigen.

> Aber gut, Heizöl, Gas und Strom werden auch immer teurer, da will
> ich auch mithelfen:
>
> "Sinn machen".

Am Ende des Tages wird das alles keinem mehr auffallen... :)

Servus,
Stefan

--
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich

Stefan - weil pfiffige Liebe nie und nimmer bebt.
(Sloganizer)

Re: FEHLER: Unerlaubte Mischung von Sortierreihenfolgen

am 26.09.2007 11:39:29 von Axel Schwenke

Claus Reibenstein <4spammersonly@web.de> wrote:
> Axel Schwenke schrieb:
>
>> von Seiteneffekten ist. Wenn du READS SQL DATA durch DETERMINISTIC
> ¯¯¯¯¯¯¯¯¯¯¯¯¯¯
>
> Aaaaahhh!!!!!!!!!!! Ich *hasse* dieses Unwort!

:-D

> Die deutsche Übersetzung von "side effect" lautet "Nebenwirkung". Das
> kann Dir jedes Englisch-Wörterbuch bestätigen.

Hast ja recht. Ich schimpfe in anderen Fällen (Sinn machen, etwas
realisieren) ja auch gerne über falsche wörtliche Übersetzungen.

Können wir uns auf "Nebeneffekt" einigen?

PS: http://dict.tu-chemnitz.de/dings.cgi?query=side+effect


XL

Re: FEHLER: Unerlaubte Mischung von Sortierreihenfolgen

am 26.09.2007 12:12:10 von petsch

On 26 Sep., 10:36, Axel Schwenke wrote:
>
> Welche Version ist das?

50.45-community-nt (laut php_info)
WinXP Pro SP2

> Ich habe nur mit 5.0.50 auf Linux getestet
> und da crasht es mit DETERMINISTIC nicht.

Unter Windows schon. Gerade noch mal geprüft.

> Bitte einen Kommentar mit
> Versionsnummer und Betriebssystem an den Bug anfügen.

Kannst Du das nicht machen? Ich weiß gar nicht wie das geht und hab'
auch keinen Account.

Vielen Dank.

Peter Schleif

Re: FEHLER: Unerlaubte Mischung von Sortierreihenfolgen

am 26.09.2007 13:15:04 von Claus Reibenstein

Axel Schwenke schrieb:

> Claus Reibenstein <4spammersonly@web.de> wrote:
>
>> Die deutsche Übersetzung von "side effect" lautet "Nebenwirkung".
>
> Können wir uns auf "Nebeneffekt" einigen?

*grummel* Aber nur unter Vorbehalt *brummel* ;-)

> PS: http://dict.tu-chemnitz.de/dings.cgi?query=side+effect

Ich bevorzuge . Da steht aber leider auch diese
Un-Übersetzung :-(

Möchte zu gerne mal wissen, wer für diese Pseudo-Übersetzung
verantwortlich ist. Dem würde ich gerne mal ein paar Nachhilfestunden in
Englisch verpassen ...

Gruß. Claus

Re: FEHLER: Unerlaubte Mischung von Sortierreihenfolgen

am 26.09.2007 20:00:21 von Peter Schleif

Axel Schwenke schrieb:
>
> DETERMINISTIC

So am Rande: Muss/Kann/Sollte eine Funktion als deterministisch
charakterisiert sein, wenn sie selbst zwar determ ist, ihrererseits
aber eine andere Funktion aufruft, welche *nicht* determ ist?

Oder oder wenn diese (aufgerufene) Funktion selbst zwar auch determ
ist, ihrerseits aber wieder eine nicht-determ Funktion aufruft?

.... usw.

[ ] Ja
[ ] Nein
[ ] Muss
[ ] Kann
[ ] Sollte


Vielen Dank.

Peter

Re: FEHLER: Unerlaubte Mischung von Sortierreihenfolgen

am 26.09.2007 21:35:46 von Axel Schwenke

petsch wrote:
> On 26 Sep., 10:36, Axel Schwenke wrote:
>>
>> Welche Version ist das?
>
> 5.0.45-community-nt (laut php_info)
> WinXP Pro SP2
>
>> Ich habe nur mit 5.0.50 auf Linux getestet
>> und da crasht es mit DETERMINISTIC nicht.
>
> Unter Windows schon. Gerade noch mal geprüft.
>
>> Bitte einen Kommentar mit
>> Versionsnummer und Betriebssystem an den Bug anfügen.
>
> Kannst Du das nicht machen? Ich weiß gar nicht wie das geht und hab'
> auch keinen Account.

Das hat sich in diesem Fall erübrigt, weil das ein Duplicate war
(im Original schon seit 2 Wochen bekannt).

Aber ganz allgemein möchte ich *alle* MySQL-Anwender darum bitten,
eventuell gefundene Bugs auf bugs.mysql.com zu reporten. Auch das
ist eine Form der Unterstützung von Open Source. Einen kompletten
Bugreport zu schreiben ist zwar *etwas* aufwendiger als ein Posting
hier, aber nicht viel. Peters Posting enthielt im Prinzip schon
alles nötige.

Die Registrierung ist nicht weiter schlimm, im wesentlichen nur
eine Mailadresse und ein Passwort. Eine gültige Mailadresse ist
sinnvoll, dann bekommt man auch Nachricht, wenn sich etwas tut.
Außerdem verschenkt MySQL manchmal auch was hübsches an Leute,
die viele Bugs reporten :)

Guckst du: http://www.mysql.com/news-and-events/news/article_959.html


Demnächst steht ein RC für 5.1 an!



XL