@@ -134,3 +134,41 @@ func (s *schemaTestSuite) TestQuoteSchema() {
134
134
135
135
require .Equal (s .T (), "a.b" , ta .Columns [0 ].Name )
136
136
}
137
+
138
+ func (s * schemaTestSuite ) TestSchemaWithMultiValueIndex () {
139
+ _ , err := s .conn .Execute (`DROP TABLE IF EXISTS multi_value_idx_test` )
140
+ require .NoError (s .T (), err )
141
+
142
+ str := `
143
+ CREATE TABLE IF NOT EXISTS multi_value_idx_test (
144
+ id INT,
145
+ entries json,
146
+ PRIMARY KEY(id)
147
+ ) ENGINE = INNODB;
148
+ `
149
+
150
+ _ , err = s .conn .Execute (str )
151
+ require .NoError (s .T (), err )
152
+
153
+ str = `CREATE INDEX idx_entries ON multi_value_idx_test((CAST((entries->'$') AS CHAR(64))));`
154
+ _ , err = s .conn .Execute (str )
155
+ require .NoError (s .T (), err )
156
+
157
+ ta , err := NewTable (s .conn , * schema , "multi_value_idx_test" )
158
+ require .NoError (s .T (), err )
159
+
160
+ require .Len (s .T (), ta .Indexes , 2 )
161
+
162
+ require .Equal (s .T (), "PRIMARY" , ta .Indexes [0 ].Name )
163
+ require .Len (s .T (), ta .Indexes [0 ].Columns , 1 )
164
+ require .Equal (s .T (), "id" , ta .Indexes [0 ].Columns [0 ])
165
+
166
+ require .Equal (s .T (), "idx_entries" , ta .Indexes [1 ].Name )
167
+ require .Len (s .T (), ta .Indexes [1 ].Columns , 1 )
168
+ require .Equal (s .T (), "" , ta .Indexes [1 ].Columns [0 ])
169
+
170
+ taSqlDb , err := NewTableFromSqlDB (s .sqlDB , * schema , "multi_value_idx_test" )
171
+ require .NoError (s .T (), err )
172
+
173
+ require .Equal (s .T (), ta , taSqlDb )
174
+ }
0 commit comments