def __call__(self, index, checkFirst=False):
schema_name = index.schema().dbname()<EOL>index_name = index.dbname()<EOL>cmd = '<STR_LIT>' if not index.testFlag(index.Flags.Unique) else '<STR_LIT>'<EOL>cols = ['<STR_LIT>'.format(col.field())<EOL>if isinstance(col, orb.AbstractStringColumn) and not col.testFlag(col.Flags.CaseSensitive)<EOL>else '<STR_LIT>'.format(col.field())<EOL>for col in index.columns()]<EOL>cmd = '<STR_LIT>'.format(cmd, index_name, schema_name, '<STR_LIT:U+002CU+0020>'.join(cols))<EOL>if checkFirst:<EOL><INDENT>cmd = """<STR_LIT>""".format(index.schema().namespace(), index_name, cmd)<EOL><DEDENT>else:<EOL><INDENT>cmd += '<STR_LIT:;>'<EOL><DEDENT>return cmd, {}<EOL>
Modifies the table to add and remove the given columns.

:param model: <orb.Model>
:param add: [<orb.Column>, ..]
:param remove: [<orb.Column>, ..]

:return: <bool>