mysql (client) problem

mysql (client) problem

am 18.11.2005 10:45:08 von Remo Tex

mysql client doesn't print field contents after first '\0' character
e.g.:
mysql> select 'A\0AAAAAA' as txt;
+----------+
| txt |
+----------+
| A |
+----------+
1 row in set (0.00 sec)

but
/bin/bash would print 'A\0A' as AA

or let's check another way:
mysql> create table test (txt char(8));
Query OK, 0 rows affected (0.01 sec)

mysql> insert into test values ('AAAAAAAA'), ('A\0AAAAAA');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> select * from test;
+----------+
| txt |
+----------+
| AAAAAAAA |
| A |
+----------+
2 rows in set (0.00 sec)

mysql> status
--------------
mysql Ver 12.22 Distrib 4.0.26, for pc-linux-gnu (i686)
....
Server version: 4.0.26-standard-log
Protocol version: 10
Connection: Localhost via UNIX socket

--
MySQL Bugs Mailing List
For list archives: http://lists.mysql.com/bugs
To unsubscribe: http://lists.mysql.com/bugs?unsub=gcdmb-bugs@m.gmane.org

Re: mysql (client) problem

am 18.11.2005 10:48:21 von pmilanese

Silly, but did you try double \?



-----------------
Sent from my NYPL BlackBerry Handheld.


----- Original Message -----
From: Remo Tex [id@remotex.bg]
Sent: 11/18/2005 04:45 AM
To: bugs@lists.mysql.com
Subject: mysql (client) problem

mysql client doesn't print field contents after first '\0' character
e.g.:
mysql> select 'A\0AAAAAA' as txt;
+----------+
| txt |
+----------+
| A |
+----------+
1 row in set (0.00 sec)

but
/bin/bash would print 'A\0A' as AA

or let's check another way:
mysql> create table test (txt char(8));
Query OK, 0 rows affected (0.01 sec)

mysql> insert into test values ('AAAAAAAA'), ('A\0AAAAAA');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> select * from test;
+----------+
| txt |
+----------+
| AAAAAAAA |
| A |
+----------+
2 rows in set (0.00 sec)

mysql> status
--------------
mysql Ver 12.22 Distrib 4.0.26, for pc-linux-gnu (i686)
....
Server version: 4.0.26-standard-log
Protocol version: 10
Connection: Localhost via UNIX socket

--
MySQL Bugs Mailing List
For list archives: http://lists.mysql.com/bugs
To unsubscribe: http://lists.mysql.com/bugs?unsub=3Dpmilanese@nypl.org


--
MySQL Bugs Mailing List
For list archives: http://lists.mysql.com/bugs
To unsubscribe: http://lists.mysql.com/bugs?unsub=3Dgcdmb-bugs@m.gmane.org

Re: mysql (client) problem

am 18.11.2005 10:50:24 von Remo Tex

Remo Tex wrote:
> mysql client doesn't print field contents after first '\0' character
> e.g.:
> mysql> select 'A\0AAAAAA' as txt;
> +----------+
> | txt |
> +----------+
> | A |
> +----------+
> 1 row in set (0.00 sec)
>
> but
> /bin/bash would print 'A\0A' as AA
>
> or let's check another way:
> mysql> create table test (txt char(8));
> Query OK, 0 rows affected (0.01 sec)
>
> mysql> insert into test values ('AAAAAAAA'), ('A\0AAAAAA');
> Query OK, 2 rows affected (0.00 sec)
> Records: 2 Duplicates: 0 Warnings: 0
>
> mysql> select * from test;
> +----------+
> | txt |
> +----------+
> | AAAAAAAA |
> | A |
> +----------+
> 2 rows in set (0.00 sec)
>
> mysql> status
> --------------
> mysql Ver 12.22 Distrib 4.0.26, for pc-linux-gnu (i686)
> ...
> Server version: 4.0.26-standard-log
> Protocol version: 10
> Connection: Localhost via UNIX socket
Same behavior with
C:\mysql-5.0.15-win32\bin

C:\mysql-5.0.15-win32\bin>mysql -u admin -p
Enter password: *******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 5.0.15-nt-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> select 'A\0A' as txt;
+-----+
| txt |
+-----+
| A |
+-----+
1 row in set (0.03 sec)

mysql> EXIT;
Bye

but here shell=CMD.EXE prints out: space instead of '\0'
C:\mysql-5.0.15-win32\bin>type zz.txt
A A
C:\mysql-5.0.15-win32\bin>

--
MySQL Bugs Mailing List
For list archives: http://lists.mysql.com/bugs
To unsubscribe: http://lists.mysql.com/bugs?unsub=gcdmb-bugs@m.gmane.org

Re: mysql (client) problem

am 18.11.2005 11:02:13 von Remo Tex

Of course Peter ...without success
( probably my mistake : try instead
select CHAR(65,0,65) as txt;
I want it to show AA or A A like /bin/bash and CMD.exe does )

mysql> select 'A\\0A' as txt;
+------+
| txt |
+------+
| A\0A |
+------+
1 row in set (0.00 sec)

That's still not what I want - I want it to be actually CHAR(0) at this
position [representing array of strings \0 separated and \0\0 at end -
don't ask why :) ] then I want to see rest of the field i.e. other strings
like e.g.: /bin/bash would show AA and CMD.EXE -> A A
I just want to see rest of the field contents

P.S. I think that's implementation specific [why they choose C/C++,
AFAIK Pascal doesn'h have such problems?!? - jist a joke :) ] but pretty
easy to fix...

Peter J Milanese wrote:
> Silly, but did you try double \?
>
>
>
> -----------------
> Sent from my NYPL BlackBerry Handheld.
>
>
> ----- Original Message -----
> From: Remo Tex [id@remotex.bg]
> Sent: 11/18/2005 04:45 AM
> To: bugs@lists.mysql.com
> Subject: mysql (client) problem
>
> mysql client doesn't print field contents after first '\0' character
> e.g.:
> mysql> select 'A\0AAAAAA' as txt;
> +----------+
> | txt |
> +----------+
> | A |
> +----------+
> 1 row in set (0.00 sec)
>
> but
> /bin/bash would print 'A\0A' as AA
>
> or let's check another way:
> mysql> create table test (txt char(8));
> Query OK, 0 rows affected (0.01 sec)
>
> mysql> insert into test values ('AAAAAAAA'), ('A\0AAAAAA');
> Query OK, 2 rows affected (0.00 sec)
> Records: 2 Duplicates: 0 Warnings: 0
>
> mysql> select * from test;
> +----------+
> | txt |
> +----------+
> | AAAAAAAA |
> | A |
> +----------+
> 2 rows in set (0.00 sec)
>
> mysql> status
> --------------
> mysql Ver 12.22 Distrib 4.0.26, for pc-linux-gnu (i686)
> ...
> Server version: 4.0.26-standard-log
> Protocol version: 10
> Connection: Localhost via UNIX socket
>

--
MySQL Bugs Mailing List
For list archives: http://lists.mysql.com/bugs
To unsubscribe: http://lists.mysql.com/bugs?unsub=gcdmb-bugs@m.gmane.org

Re: mysql (client) problem

am 01.12.2005 11:33:20 von Remo Tex

C:\mysql-5.0.16-win32\bin\mysql.exe
....still no progress :(

as per manual: "...When CHAR values are retrieved, trailing spaces are
removed. No lettercase conversion takes place during storage or
retrieval.", so: what about non-trailing non-space characters like '\0'
e.g.:
select CHAR(65,0,65,66,67) as txt;
so... seems server cuts just trailing (spaces), then client cuts even
more i.e. not just 1 char but everything after that '\0' ..and what's
left :(
---
- I'll take right (one).
- Then ...I'll take what's left.
just a joke :)

Remo Tex wrote:
> mysql client doesn't print field contents after first '\0' character
> e.g.:
> mysql> select 'A\0AAAAAA' as txt;
> +----------+
> | txt |
> +----------+
> | A |
> +----------+
> 1 row in set (0.00 sec)
>
> but
> /bin/bash would print 'A\0A' as AA
>
> or let's check another way:
> mysql> create table test (txt char(8));
> Query OK, 0 rows affected (0.01 sec)
>
> mysql> insert into test values ('AAAAAAAA'), ('A\0AAAAAA');
> Query OK, 2 rows affected (0.00 sec)
> Records: 2 Duplicates: 0 Warnings: 0
>
> mysql> select * from test;
> +----------+
> | txt |
> +----------+
> | AAAAAAAA |
> | A |
> +----------+
> 2 rows in set (0.00 sec)
>
> mysql> status
> --------------
> mysql Ver 12.22 Distrib 4.0.26, for pc-linux-gnu (i686)
> ...
> Server version: 4.0.26-standard-log
> Protocol version: 10
> Connection: Localhost via UNIX socket

--
MySQL Bugs Mailing List
For list archives: http://lists.mysql.com/bugs
To unsubscribe: http://lists.mysql.com/bugs?unsub=gcdmb-bugs@m.gmane.org