import sys
import itertools

cols = [ 'a', 'b', 'c', 'd', 'e' ]
old_types = [ 'VARCHAR(1)', 'VARBINARY(1)', 'INT', 'CHAR(1)', 'BINARY(1)' ]
new_types = [ 'VARCHAR(2)', 'VARBINARY(2)', 'BIGINT', 'CHAR(2)', 'BINARY(2)' ]

def main():
    print "# this test generated by change_multiple.py"
    print "# this test generated multiple column changes which should all fail since we support only one at a time"
    print "--disable_warnings"
    print "DROP TABLE IF EXISTS t;"
    print "--enable_warnings"
    print "SET SESSION TOKUDB_DISABLE_SLOW_ALTER=1;"
    print "SET SESSION DEFAULT_STORAGE_ENGINE='TokuDB';"
    create_cmd = "CREATE TABLE t ("
    for i in range(len(cols)):
        create_cmd += "%s %s" % (cols[i], old_types[i])
        if i < len(cols)-1:
            create_cmd += ","
    print "%s);" % (create_cmd)
    for t in gen_comb(range(5)):
        alter_cmd = gen_alter(t)
        print "--replace_regex /MariaDB/XYZ/ /MySQL/XYZ/"
        print "--error ER_UNSUPPORTED_EXTENSION"
        print "%s;" % (alter_cmd)
    print "DROP TABLE t;"
    return 0

def gen_alter(t):
    alter = "ALTER TABLE t "
    for c in range(len(t)):
        i = t[c]
        alter += "CHANGE COLUMN %s %s %s" % (cols[i], cols[i], new_types[i])
        if c < len(t)-1:
            alter += ","
    return alter

def gen_comb(l):
    r = []
    for i in range(2,len(l)):
        r += collapse(itertools.combinations(l, i))
    return r

def collapse(i):
    r = []
    for x in i:
        r += [x]
    return r

def new_type(i):
    if i <= 0:
        return "VARCHAR(2)"
    if i <= 1:
        return "VARBINARY(2)"
    if i <= 2:
        return "BIGINT"
    if i <= 3:
        return "CHAR(2)"
    return "BINARY(2)"
sys.exit(main())