@@ -308,6 +308,33 @@ def test_indexes(self):
308308 self .assertIn ('CREATE INDEX d_index' , statement )
309309 self .assertIn ('CREATE INDEX e_index' , statement )
310310
311+ def test_collection_indexes (self ):
312+ self .session .execute ("CREATE TABLE %s.%s (a int PRIMARY KEY, b map<text, text>)"
313+ % (self .ksname , self .cfname ))
314+ self .session .execute ("CREATE INDEX index1 ON %s.%s (keys(b))"
315+ % (self .ksname , self .cfname ))
316+
317+ tablemeta = self .get_table_metadata ()
318+ self .assertIn ('(keys(b))' , tablemeta .export_as_string ())
319+
320+ self .session .execute ("DROP INDEX %s.index1" % (self .ksname ,))
321+ self .session .execute ("CREATE INDEX index2 ON %s.%s (b)"
322+ % (self .ksname , self .cfname ))
323+
324+ tablemeta = self .get_table_metadata ()
325+ self .assertIn (' (b)' , tablemeta .export_as_string ())
326+
327+ # test full indexes on frozen collections, if available
328+ if get_server_versions ()[0 ] >= (2 , 1 , 3 ):
329+ self .session .execute ("DROP TABLE %s.%s" % (self .ksname , self .cfname ))
330+ self .session .execute ("CREATE TABLE %s.%s (a int PRIMARY KEY, b frozen<map<text, text>>)"
331+ % (self .ksname , self .cfname ))
332+ self .session .execute ("CREATE INDEX index3 ON %s.%s (full(b))"
333+ % (self .ksname , self .cfname ))
334+
335+ tablemeta = self .get_table_metadata ()
336+ self .assertIn ('(full(b))' , tablemeta .export_as_string ())
337+
311338 def test_compression_disabled (self ):
312339 create_statement = self .make_create_statement (["a" ], ["b" ], ["c" ])
313340 create_statement += " WITH compression = {}"
0 commit comments