|
| 1 | +CREATE TABLE t1 ( |
| 2 | +id INT PRIMARY KEY, |
| 3 | +sig COMPLEX, |
| 4 | +INDEX idx_magnitude ((COMPLEX_ABS(sig))) |
| 5 | +); |
| 6 | +SHOW CREATE TABLE t1; |
| 7 | +Table Create Table |
| 8 | +t1 CREATE TABLE `t1` ( |
| 9 | + `id` int NOT NULL, |
| 10 | + `sig` vsql_complex.COMPLEX DEFAULT NULL, |
| 11 | + PRIMARY KEY (`id`), |
| 12 | + KEY `idx_magnitude` ((vsql_complex.complex_abs(`sig`))) |
| 13 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
| 14 | +SELECT TABLE_NAME, INDEX_NAME, COLUMN_NAME, EXPRESSION |
| 15 | +FROM INFORMATION_SCHEMA.STATISTICS |
| 16 | +WHERE TABLE_NAME = 't1' AND INDEX_NAME = 'idx_magnitude'; |
| 17 | +TABLE_NAME INDEX_NAME COLUMN_NAME EXPRESSION |
| 18 | +t1 idx_magnitude NULL vsql_complex.complex_abs(`sig`) |
| 19 | +INSERT INTO t1 (id, sig) |
| 20 | +SELECT |
| 21 | +row_number() OVER () as id, |
| 22 | +COMPLEX_FROM_STRING(CONCAT('(', (RAND() * 20 - 10), ',', (RAND() * 20 - 10), ')')) |
| 23 | +FROM |
| 24 | +(SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10) d1, |
| 25 | +(SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10) d2, |
| 26 | +(SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10) d3; |
| 27 | +SELECT COUNT(*) FROM t1; |
| 28 | +COUNT(*) |
| 29 | +1000 |
| 30 | +INSERT INTO t1 VALUES(100001, '(0,30)'); |
| 31 | +INSERT INTO t1 VALUES(100002, '(-35,1)'); |
| 32 | +INSERT INTO t1 VALUES(100003, '(-20,-1)'); |
| 33 | +ANALYZE TABLE t1; |
| 34 | +Table Op Msg_type Msg_text |
| 35 | +test.t1 analyze status OK |
| 36 | +EXPLAIN SELECT id FROM t1 WHERE COMPLEX_ABS(sig) = CAST(30.0 AS DOUBLE); |
| 37 | +id select_type table partitions type possible_keys key key_len ref rows filtered Extra |
| 38 | +1 SIMPLE t1 NULL ref idx_magnitude idx_magnitude 9 # # # NULL |
| 39 | +Warnings: |
| 40 | +Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id` from `test`.`t1` where (vsql_complex.complex_abs(`sig`) = cast(30.0 as double)) |
| 41 | +EXPLAIN SELECT id FROM t1 WHERE vsql_complex.COMPLEX_ABS(sig) > CAST(20.0 AS DOUBLE); |
| 42 | +id select_type table partitions type possible_keys key key_len ref rows filtered Extra |
| 43 | +1 SIMPLE t1 NULL range idx_magnitude idx_magnitude 9 # # # Using where |
| 44 | +Warnings: |
| 45 | +Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id` from `test`.`t1` where (vsql_complex.complex_abs(`sig`) > <cache>(cast(20.0 as double))) |
| 46 | +SELECT id FROM t1 WHERE COMPLEX_ABS(sig) = CAST(30.0 AS DOUBLE); |
| 47 | +id |
| 48 | +100001 |
| 49 | +SELECT id FROM t1 WHERE vsql_complex.COMPLEX_ABS(sig) > CAST(20.0 AS DOUBLE) ORDER BY id; |
| 50 | +id |
| 51 | +100001 |
| 52 | +100002 |
| 53 | +100003 |
| 54 | +DROP TABLE t1; |
| 55 | +include/rpl/deprecated/show_binlog_events.inc |
| 56 | +Log_name Pos Event_type Server_id End_log_pos Info |
| 57 | +# # Query # # use `test`; CREATE TABLE `t1` ( |
| 58 | + `id` int NOT NULL, |
| 59 | + `sig` vsql_complex.COMPLEX DEFAULT NULL, |
| 60 | + PRIMARY KEY (`id`), |
| 61 | + KEY `idx_magnitude` ((vsql_complex.complex_abs(`sig`))) |
| 62 | +) |
| 63 | +# # Query # # BEGIN |
| 64 | +# # Table_map # # table_id: # (test.t1) |
| 65 | +# # Write_rows # # table_id: # |
| 66 | +# # Write_rows # # table_id: # |
| 67 | +# # Write_rows # # table_id: # flags: STMT_END_F |
| 68 | +# # Xid # # COMMIT /* XID */ |
| 69 | +# # Query # # BEGIN |
| 70 | +# # Table_map # # table_id: # (test.t1) |
| 71 | +# # Write_rows # # table_id: # flags: STMT_END_F |
| 72 | +# # Xid # # COMMIT /* XID */ |
| 73 | +# # Query # # BEGIN |
| 74 | +# # Table_map # # table_id: # (test.t1) |
| 75 | +# # Write_rows # # table_id: # flags: STMT_END_F |
| 76 | +# # Xid # # COMMIT /* XID */ |
| 77 | +# # Query # # BEGIN |
| 78 | +# # Table_map # # table_id: # (test.t1) |
| 79 | +# # Write_rows # # table_id: # flags: STMT_END_F |
| 80 | +# # Xid # # COMMIT /* XID */ |
| 81 | +# # Query # # use `test`; ANALYZE TABLE t1 |
| 82 | +# # Query # # use `test`; DROP TABLE `t1` /* generated by server */ |
0 commit comments