Skip to content

Commit 802d1e3

Browse files
generated columns test
1 parent 66afb45 commit 802d1e3

2 files changed

Lines changed: 56 additions & 9 deletions

File tree

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
CREATE TABLE t1 (
2+
id INT PRIMARY KEY,
3+
impedance COMPLEX,
4+
real_part DOUBLE GENERATED ALWAYS AS (COMPLEX_REAL(impedance)) VIRTUAL,
5+
imag_part DOUBLE GENERATED ALWAYS AS (COMPLEX_IMAG(impedance)) VIRTUAL,
6+
magnitude DOUBLE GENERATED ALWAYS AS (COMPLEX_ABS(impedance)) STORED,
7+
conjugate COMPLEX GENERATED ALWAYS AS (COMPLEX_CONJUGATE(impedance)) VIRTUAL
8+
);
9+
SHOW CREATE TABLE t1;
10+
Table Create Table
11+
t1 CREATE TABLE `t1` (
12+
`id` int NOT NULL,
13+
`impedance` vsql_complex.COMPLEX DEFAULT NULL,
14+
`real_part` double GENERATED ALWAYS AS (vsql_complex.complex_real(`impedance`)) VIRTUAL,
15+
`imag_part` double GENERATED ALWAYS AS (vsql_complex.complex_imag(`impedance`)) VIRTUAL,
16+
`magnitude` double GENERATED ALWAYS AS (vsql_complex.complex_abs(`impedance`)) STORED,
17+
`conjugate` vsql_complex.COMPLEX GENERATED ALWAYS AS (vsql_complex.complex_conjugate(`impedance`)) VIRTUAL,
18+
PRIMARY KEY (`id`)
19+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
20+
INSERT INTO t1 (id, impedance) VALUES (1, '(3.0,4.0)');
21+
INSERT INTO t1 (id, impedance) VALUES (2, '(1.0,1.0)');
22+
SELECT * FROM t1 ORDER BY impedance;
23+
id impedance real_part imag_part magnitude conjugate
24+
2 (1,1) 1 1 1.4142135623730951 (1,-1)
25+
1 (3,4) 3 4 5 (3,-4)
26+
SELECT id, magnitude, imag_part FROM t1 ORDER BY imag_part;
27+
id magnitude imag_part
28+
2 1.4142135623730951 1
29+
1 5 4
30+
DROP TABLE t1;
31+
include/rpl/deprecated/show_binlog_events.inc
32+
Log_name Pos Event_type Server_id End_log_pos Info
33+
# # Query # # use `test`; CREATE TABLE `t1` (
34+
`id` int NOT NULL,
35+
`impedance` vsql_complex.COMPLEX DEFAULT NULL,
36+
`real_part` double GENERATED ALWAYS AS (vsql_complex.complex_real(`impedance`)) VIRTUAL,
37+
`imag_part` double GENERATED ALWAYS AS (vsql_complex.complex_imag(`impedance`)) VIRTUAL,
38+
`magnitude` double GENERATED ALWAYS AS (vsql_complex.complex_abs(`impedance`)) STORED,
39+
`conjugate` vsql_complex.COMPLEX GENERATED ALWAYS AS (vsql_complex.complex_conjugate(`impedance`)) VIRTUAL,
40+
PRIMARY KEY (`id`)
41+
)
42+
# # Query # # BEGIN
43+
# # Table_map # # table_id: # (test.t1)
44+
# # Write_rows # # table_id: # flags: STMT_END_F
45+
# # Xid # # COMMIT /* XID */
46+
# # Query # # BEGIN
47+
# # Table_map # # table_id: # (test.t1)
48+
# # Write_rows # # table_id: # flags: STMT_END_F
49+
# # Xid # # COMMIT /* XID */
50+
# # Query # # use `test`; DROP TABLE `t1` /* generated by server */

mysql-test/suite/villagesql/create_table/t/create_table_complex_generated_functions.test

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,27 @@
11
# Test CREATE TABLE with generated columns using COMPLEX functions
22
# Tests comprehensive COMPLEX function support in generated columns
33

4-
--source include/villagesql/not_implemented_complex_type.inc
5-
64
--source include/villagesql/install_complex_extension.inc
75
--source include/villagesql/binlog_check_begin.inc
86

97
CREATE TABLE t1 (
108
id INT PRIMARY KEY,
119
impedance COMPLEX,
12-
real_part DOUBLE GENERATED ALWAYS AS (REAL(impedance)) VIRTUAL,
13-
imag_part DOUBLE GENERATED ALWAYS AS (IMAG(impedance)) VIRTUAL,
14-
magnitude DOUBLE GENERATED ALWAYS AS (ABS(impedance)) STORED,
15-
phase_angle DOUBLE GENERATED ALWAYS AS (ARG(impedance)) STORED,
16-
conjugate COMPLEX GENERATED ALWAYS AS (CONJ(impedance)) VIRTUAL
10+
real_part DOUBLE GENERATED ALWAYS AS (COMPLEX_REAL(impedance)) VIRTUAL,
11+
imag_part DOUBLE GENERATED ALWAYS AS (COMPLEX_IMAG(impedance)) VIRTUAL,
12+
magnitude DOUBLE GENERATED ALWAYS AS (COMPLEX_ABS(impedance)) STORED,
13+
conjugate COMPLEX GENERATED ALWAYS AS (COMPLEX_CONJUGATE(impedance)) VIRTUAL
1714
);
1815

1916
SHOW CREATE TABLE t1;
2017

2118
INSERT INTO t1 (id, impedance) VALUES (1, '(3.0,4.0)');
2219
INSERT INTO t1 (id, impedance) VALUES (2, '(1.0,1.0)');
2320

24-
SELECT * FROM t1;
21+
SELECT * FROM t1 ORDER BY impedance;
2522

2623
# Test computed values
27-
SELECT id, magnitude, phase_angle FROM t1;
24+
SELECT id, magnitude, imag_part FROM t1 ORDER BY imag_part;
2825

2926
DROP TABLE t1;
3027

0 commit comments

Comments
 (0)