(table_name, create_table_statement)
| 13 | |
| 14 | |
| 15 | def normalize_create_table(table_name, create_table_statement): |
| 16 | create_table_statement = create_table_statement.strip() |
| 17 | create_table_statement = create_table_statement.replace("`", "\"").replace("'", "\"").replace("[", "\"").replace("]", "\"") |
| 18 | create_table_statement = create_table_statement.replace("\"", '') |
| 19 | create_table_statement = create_table_statement.replace('\t', ' ').replace('\n', ' ') |
| 20 | create_table_statement = ' '.join(create_table_statement.split()) |
| 21 | create_table_statement_split = [""] |
| 22 | num_left = 0 |
| 23 | for tok in create_table_statement: |
| 24 | if tok == "(": |
| 25 | num_left += 1 |
| 26 | create_table_statement_split[-1] += tok |
| 27 | elif tok == ")": |
| 28 | num_left -= 1 |
| 29 | create_table_statement_split[-1] += tok |
| 30 | elif tok != ',': |
| 31 | create_table_statement_split[-1] += tok |
| 32 | if tok == ',': |
| 33 | if num_left == 1: |
| 34 | create_table_statement_split.append("") |
| 35 | continue |
| 36 | else: |
| 37 | create_table_statement_split[-1] += tok |
| 38 | continue |
| 39 | create_table_statement = create_table_statement_split |
| 40 | new_create_table_statement = [] |
| 41 | for i, x in enumerate(create_table_statement): |
| 42 | if i == 0: |
| 43 | x = x.split('(') |
| 44 | x1 = x[0].strip() |
| 45 | x2 = ','.join(x[1:]).strip() |
| 46 | new_create_table_statement.append(x1 + " (") |
| 47 | new_create_table_statement.append(x2 + ",") |
| 48 | elif i == len(create_table_statement) - 1: |
| 49 | x = x.split(')') |
| 50 | x1 = ')'.join(x[:-1]).strip() |
| 51 | x2 = x[-1].strip() |
| 52 | new_create_table_statement.append(x1) |
| 53 | new_create_table_statement.append(x2 + ")") |
| 54 | else: |
| 55 | new_create_table_statement.append(x.strip() + ",") |
| 56 | |
| 57 | return '\n'.join(new_create_table_statement) |
| 58 | |
| 59 | |
| 60 | def get_foreign_keys(db_id, table, create_table_statement, table_upper=False): |
no outgoing calls
no test coverage detected