Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FORMAT_BYTES is not compatible with MySQL #59455

Open
Tracked by #59410
YangKeao opened this issue Feb 11, 2025 · 1 comment
Open
Tracked by #59410

FORMAT_BYTES is not compatible with MySQL #59455

YangKeao opened this issue Feb 11, 2025 · 1 comment
Labels
component/expression severity/moderate sig/execution SIG execution type/bug The issue is confirmed as a bug.

Comments

@YangKeao
Copy link
Member

Bug Report

Please answer these questions before submitting your issue. Thanks!

1. Minimal reproduce step (Required)

2. What did you expect to see? (Required)

mysql> SELECT FORMAT_BYTES(1023.999999999);
+------------------------------+
| FORMAT_BYTES(1023.999999999) |
+------------------------------+
| 1023 bytes                   |
+------------------------------+
1 row in set (0.01 sec)

mysql> SELECT FORMAT_BYTES(b'11111111');
+---------------------------+
| FORMAT_BYTES(b'11111111') |
+---------------------------+
|  255 bytes                |
+---------------------------+
1 row in set (0.00 sec)

mysql> SELECT FORMAT_BYTES('');
+------------------+
| FORMAT_BYTES('') |
+------------------+
|    0 bytes       |
+------------------+
1 row in set (0.00 sec)

mysql> SELECT FORMAT_BYTES(CHAR(52));
+------------------------+
| FORMAT_BYTES(CHAR(52)) |
+------------------------+
|    4 bytes             |
+------------------------+
1 row in set (0.00 sec)

mysql> SELECT FORMAT_BYTES(JSON_EXTRACT('{"x": 512}','$.x'));
+------------------------------------------------+
| FORMAT_BYTES(JSON_EXTRACT('{"x": 512}','$.x')) |
+------------------------------------------------+
|  512 bytes                                     |
+------------------------------------------------+
1 row in set (0.01 sec)

It has two issues:

  1. The handling of float is different.
  2. The result should LPAD with spaces (I guess).

3. What did you see instead (Required)

mysql> SELECT FORMAT_BYTES(0);
+-----------------+
| FORMAT_BYTES(0) |
+-----------------+
| 0 bytes         |
+-----------------+
1 row in set (0.01 sec)

mysql> SELECT FORMAT_BYTES(1023.999999999);
+------------------------------+
| FORMAT_BYTES(1023.999999999) |
+------------------------------+
| 1024 bytes                   |
+------------------------------+
1 row in set (0.00 sec)

mysql> SELECT FORMAT_BYTES(b'11111111');
+---------------------------+
| FORMAT_BYTES(b'11111111') |
+---------------------------+
| 255 bytes                 |
+---------------------------+
1 row in set (0.00 sec)

mysql> SELECT FORMAT_BYTES('');
+------------------+
| FORMAT_BYTES('') |
+------------------+
| 0 bytes          |
+------------------+
1 row in set (0.00 sec)

mysql> SELECT FORMAT_BYTES(CHAR(52));
+------------------------+
| FORMAT_BYTES(CHAR(52)) |
+------------------------+
| 4 bytes                |
+------------------------+
1 row in set (0.00 sec)

mysql> SELECT FORMAT_BYTES(JSON_EXTRACT('{"x": 512}','$.x'));
+------------------------------------------------+
| FORMAT_BYTES(JSON_EXTRACT('{"x": 512}','$.x')) |
+------------------------------------------------+
| 512 bytes                                      |
+------------------------------------------------+
1 row in set (0.01 sec)

4. What is your TiDB version? (Required)

@zanmato1984
Copy link
Contributor

/severity moderate

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component/expression severity/moderate sig/execution SIG execution type/bug The issue is confirmed as a bug.
Projects
None yet
Development

No branches or pull requests

2 participants