Details
-
Bug
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
11.8, 12.3, 13.0, 13.1
-
None
-
Can result in unexpected behaviour
Description
VECTOR column does not survive a SELECT ... INTO OUTFILE followed by a LOAD DATA INFILE round-trip. Reloading the data either raises an error or, with LOAD DATA ... IGNORE, silently stores a zeroed-out vector instead of the original value.
Test case
CREATE TABLE t1 (id INT, v VECTOR(2) NOT NULL); |
INSERT INTO t1 VALUES (1, VEC_FROMTEXT('[1,2]')); |
SELECT HEX(v) FROM t1; |
SELECT * INTO OUTFILE '/tmp/vec_export.txt' FROM t1; |
CREATE TABLE t2 (id INT, v VECTOR(2) NOT NULL); |
LOAD DATA INFILE '/tmp/vec_export.txt' INTO TABLE t2; |
|
|
CREATE TABLE t3 (id INT, v VECTOR(2) NOT NULL); |
-- with IGNORE, the row is inserted, but with an incorrect, zeroed-out value instead of returning an error
|
LOAD DATA INFILE '/tmp/vec_export.txt' IGNORE INTO TABLE t3; |
SELECT id, VEC_TOTEXT(v), HEX(v) FROM t3; |
|
|
#cleanup
|
DROP TABLE t1,t2,t3; |
CLI Output
11.8.9-opt>CREATE TABLE t1 (id INT, v VECTOR(2) NOT NULL); |
Query OK, 0 rows affected (0.008 sec) |
|
|
11.8.9-opt>INSERT INTO t1 VALUES (1, VEC_FROMTEXT('[1,2]')); |
Query OK, 1 row affected (0.001 sec)
|
|
|
11.8.9-opt>SELECT HEX(v) FROM t1; |
+------------------+ |
| HEX(v) |
|
+------------------+ |
| 0000803F00000040 |
|
+------------------+ |
1 row in set (0.001 sec) |
|
|
11.8.9-opt>SELECT * INTO OUTFILE '/tmp/vec_export.txt' FROM t1; |
Query OK, 1 row affected (0.000 sec)
|
|
|
11.8.9-opt>
|
11.8.9-opt>CREATE TABLE t2 (id INT, v VECTOR(2) NOT NULL); |
Query OK, 0 rows affected (0.005 sec) |
|
|
11.8.9-opt>LOAD DATA INFILE '/tmp/vec_export.txt' INTO TABLE t2; |
ERROR 1292 (22007): Incorrect vector value: '\0000\0000??\0000\0000\0000@' for column `test`.`t2`.`v` at row 1 |
11.8.9-opt>CREATE TABLE t3 (id INT, v VECTOR(2) NOT NULL); |
Query OK, 0 rows affected (0.005 sec) |
|
|
11.8.9-opt>LOAD DATA INFILE '/tmp/vec_export.txt' IGNORE INTO TABLE t3; |
Query OK, 1 row affected, 1 warning (0.001 sec)
|
Records: 1 Deleted: 0 Skipped: 0 Warnings: 1
|
|
|
11.8.9-opt>SELECT id, VEC_TOTEXT(v), HEX(v) FROM t3; |
+------+---------------+------------------+ |
| id | VEC_TOTEXT(v) | HEX(v) |
|
+------+---------------+------------------+ |
| 1 | [0,0] | 0000000000000000 |
|
+------+---------------+------------------+ |
1 row in set (0.000 sec) |
|
|
11.8.9-opt>
|