Re: [PARTIALLY SOLVED] Illegal mix of collations for operation IN

2005-06-03 Thread Dušan Pavlica

I did more investigation and found out that
1) with MySQL 4.1.10-nt  both queries executed from Query Browser work fine 
(no error) - I haven't chance to test it with my application through ODBC 
connection
2) when I set initial statement in MyODBC SET CHARACTER SET 'cp1250' 
instead of SET NAMES 'cp1250' for connection to MySQL 4.1.9-nt-log queries 
from my application work fine and that is what I need


mysql show create table files \G
*** 1. row ***
  Table: files
Create Table: CREATE TABLE `files` (
 `FileName` char(100) collate latin2_czech_cs NOT NULL default '',
 `CommandType` enum('NONE','ON_SUCCESS','ON_NOTRANSMIT') collate 
latin2_czech_cs NOT NULL default 'NONE',

 `Command` char(128) collate latin2_czech_cs default NULL,
 PRIMARY KEY  (`FileName`,`CommandType`)
) ENGINE=MyISAM DEFAULT CHARSET=latin2 COLLATE=latin2_czech_cs
1 row in set (0.01 sec)

mysql show variables like '%char%';
+--+-+
| Variable_name| Value 
|

+--+-+
| character_set_client | cp1250 
|
| character_set_connection | latin2 
|
| character_set_database   | latin2 
|
| character_set_results| cp1250 
|
| character_set_server | latin2 
|
| character_set_system | utf8 
|
| character_sets_dir   | D:\Program Files\MySQL\MySQL Server 
4.1\share\charsets/ |

+--+-+
7 rows in set (0.00 sec)

mysql show variables like '%col%';
+--+---+
| Variable_name| Value |
+--+---+
| collation_connection | cp1250_general_ci |
| collation_database   | latin2_czech_cs   |
| collation_server | latin2_general_ci |
| protocol_version | 10|
+--+---+
4 rows in set (0.00 sec)

I am still wondering why
SELECT * FROM files WHERE filename = 'file1.txt' OR filename = 'file2.txt'
was working and
SELECT * FROM files WHERE filename IN('file1.txt', 'file2.txt')
wasn't

Dusan

- Original Message - 
From: Gleb Paharenko [EMAIL PROTECTED]

To: mysql@lists.mysql.com
Sent: Thursday, June 02, 2005 2:13 PM
Subject: Re: Illegal mix of collations for operation IN



Hello.

Usually debugging of such kind of problems starts with examination of
the output of:
 show variables like '%char%';
 show variables like '%colla%';

Send the output of:
 show create table your_table;




Hello,

I have problem which I don't understand.

if I send command (from Query Browser or from C++ Builder application)
SELECT FileName FROM Files WHERE FileName = 'FILE1.TXT' OR FileName =
'FILE2.TXT'
query executes without any problem but command
SELECT FileName FROM Files WHERE FileName IN ('FILE1.TXT', 'FILE2.TXT')
throws error illegal mix of collations for operation 'IN' 

I thought that IN is somehow by optimizer translated to ORs
Could someone explain me why first query is OK and second not? Please.

I'm using WinXP SP2 and MySQL 4.1.9-nt-log
databases and tables use CHARSET=latin2 COLLATE=latin2_czech_cs
I already read some articles about the topic in MySQL forum but they
didn't helped me
much.

Thanks in advance

Dusan Pavlica

Du$an Pavlica [EMAIL PROTECTED] wrote:


--
For technical support contracts, goto https://order.mysql.com/?ref=ensita
This email is sponsored by Ensita.NET http://www.ensita.net/
  __  ___ ___   __
 /  |/  /_ __/ __/ __ \/ /Gleb Paharenko
/ /|_/ / // /\ \/ /_/ / /__   [EMAIL PROTECTED]
/_/  /_/\_, /___/\___\_\___/   MySQL AB / Ensita.NET
  ___/   www.mysql.com




--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]




--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Illegal mix of collations for operation IN

2005-06-02 Thread Dušan Pavlica
Hello, 

I have problem which I don't understand.

if I send command (from Query Browser or from C++ Builder application) 
SELECT FileName FROM Files WHERE FileName = 'FILE1.TXT' OR FileName = 
'FILE2.TXT'
query executes without any problem but command
SELECT FileName FROM Files WHERE FileName IN ('FILE1.TXT', 'FILE2.TXT')
throws error illegal mix of collations for operation 'IN' 

I thought that IN is somehow by optimizer translated to ORs 
Could someone explain me why first query is OK and second not? Please.

I'm using WinXP SP2 and MySQL 4.1.9-nt-log 
databases and tables use CHARSET=latin2 COLLATE=latin2_czech_cs
I already read some articles about the topic in MySQL forum but they didn't 
helped me much.

Thanks in advance

Dusan Pavlica

Re: Illegal mix of collations for operation IN

2005-06-02 Thread Gleb Paharenko
Hello.



Usually debugging of such kind of problems starts with examination of

the output of:

  show variables like '%char%';

  show variables like '%colla%';



Send the output of:

  show create table your_table;







Hello, 



I have problem which I don't understand.



if I send command (from Query Browser or from C++ Builder application) 

SELECT FileName FROM Files WHERE FileName = 'FILE1.TXT' OR FileName =

'FILE2.TXT'

query executes without any problem but command

SELECT FileName FROM Files WHERE FileName IN ('FILE1.TXT', 'FILE2.TXT')

throws error illegal mix of collations for operation 'IN' 



I thought that IN is somehow by optimizer translated to ORs 

Could someone explain me why first query is OK and second not? Please.



I'm using WinXP SP2 and MySQL 4.1.9-nt-log 

databases and tables use CHARSET=latin2 COLLATE=latin2_czech_cs

I already read some articles about the topic in MySQL forum but they

didn't helped me

much.



Thanks in advance



Dusan Pavlica

Du$an Pavlica [EMAIL PROTECTED] wrote:



-- 
For technical support contracts, goto https://order.mysql.com/?ref=ensita
This email is sponsored by Ensita.NET http://www.ensita.net/
   __  ___ ___   __
  /  |/  /_ __/ __/ __ \/ /Gleb Paharenko
 / /|_/ / // /\ \/ /_/ / /__   [EMAIL PROTECTED]
/_/  /_/\_, /___/\___\_\___/   MySQL AB / Ensita.NET
   ___/   www.mysql.com




-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]