Moin, ne (vielleicht dumme) Frage erstmal hierzu:
Du weißt das MySQL-4.1.x noch absolut Alpha ist?
Ich würde also zuallererst mal auf nen Bug tippen,
vor allem da Du ja auch Subselects mit nutzt ;-).
Und in dem Sinne hast Du ja sogar einen reproduzierbaren
Testfall ... würd ich einfach mal glatt an die bugs-liste
schicken ... da werden sie einem schon sagen, was das
eigentliche Problem ist ;-).
Gruß,
Thomas
Zitat von p.schiegg@stripped:
> Hallo zusammen
>
> Ich habe einen MySQL-Server 4.1 auf Windows 2000 installiert und es läuft
> soweit eigentlich alles; auch die neuen Features wie Subselects etc. gehen
> anstandslos.
>
> Nun habe ich aber ein Problem:
> Sobald ich ein bestimmtes, zugegeben recht grosses Statement ;-) absetze,
> meldet Windows folgenden Fehler und MySQL schmiert ab:
> ---------------
> mysqld-max-nt.exe - Fehler in Anwendung
>
> Die Anweisung in 0x...... verweist auf Speicher........
> Der Vorgang "read" konnte nicht auf dem Speicher durchgeführt werden.
>
> Klicken sie auf OK um das Programm zu beenden....
> ---------------
>
> Das Statement sieht folgendermassen aus:
>
> SELECT * FROM
> (
> SELECT * FROM User WHERE User_ID IN
> (
> SELECT Object_ID FROM Group_right INNER JOIN User_group ON
> Group_right.Group_id
> = User_group.Group_id
> INNER JOIN Right_type ON Group_right.Right_ID = Right_type.Right_ID WHERE
> Right_type.Value >= 10 AND User_ID = 1 AND Physical = 1 AND Object_type_ID
> = 1 AND Object_ID NOT IN
> (
> SELECT Object_ID FROM User_right INNER JOIN Right_type ON
> User_right.Right_ID
> = Right_type.Right_ID WHERE Right_type.Value >= 10 AND User_ID = 1 AND
> Physical
> = 1 AND Object_type_ID = 1
> )
> UNION
> SELECT Object_ID FROM User_right INNER JOIN Right_type ON
> User_right.Right_ID
> = Right_type.Right_ID WHERE Right_type.Value >= 10 AND User_ID = 1 AND
> Physical
> = 1 AND Object_type_ID = 1
> )
> ) AS User
> INNER JOIN
> (
> SELECT * FROM User_group WHERE Group_ID IN
> (
> SELECT Object_ID FROM Group_right INNER JOIN User_group ON
> Group_right.Group_id
> = User_group.Group_id
> INNER JOIN Right_type ON Group_right.Right_ID = Right_type.Right_ID WHERE
> Right_type.Value >= 10 AND User_ID = 1 AND Physical = 1 AND Object_type_ID
> = 2 AND
> Object_ID NOT IN
> (
> SELECT Object_ID FROM User_right INNER JOIN Right_type ON
> User_right.Right_ID
> = Right_type.Right_ID WHERE Right_type.Value >= 10 AND User_ID = 1 AND
> Physical
> = 1 AND Object_type_ID = 2
> )
> UNION
> SELECT Object_ID FROM User_right INNER JOIN Right_type ON
> User_right.Right_ID
> = Right_type.Right_ID WHERE Right_type.Value >= 10 AND User_ID = 1 AND
> Physical
> = 1 AND Object_type_ID = 2
> )
> ) as view1 ON User.User_ID= view1.User_ID
>
> Gibts bei MySQL irgendeine Statementlängenbeschränkung oder sowas? Hab den
> Rechner auch schon neugestartet => gleiches Problem.
> Im Anhang befindet sich die Datenbank als db.sql Datei, falls jemand das
> Statement bei sich ausprobieren will. Es sind auch Daten drin, allerdings
> nur vereinzelte Testdaten.
>
> Hoffe jemand kann helfen.
>
> Greets
> Pascal
>
>