| """ |
| Helper module to populate a dummy Cassandra tables with data. |
| """ |
| |
| from tests.integration.datatype_utils import PRIMITIVE_DATATYPES, get_sample |
| |
| |
| def create_table_with_all_types(table_name, session, N): |
| """ |
| Method that given a table_name and session construct a table that contains |
| all possible primitive types. |
| |
| :param table_name: Name of table to create |
| :param session: session to use for table creation |
| :param N: the number of items to insert into the table |
| |
| :return: a list of column names |
| """ |
| # create table |
| alpha_type_list = ["primkey int PRIMARY KEY"] |
| col_names = ["primkey"] |
| start_index = ord('a') |
| for i, datatype in enumerate(PRIMITIVE_DATATYPES): |
| alpha_type_list.append("{0} {1}".format(chr(start_index + i), datatype)) |
| col_names.append(chr(start_index + i)) |
| |
| session.execute("CREATE TABLE {0} ({1})".format( |
| table_name, ', '.join(alpha_type_list)), timeout=120) |
| |
| # create the input |
| |
| for key in range(N): |
| params = get_all_primitive_params(key) |
| |
| # insert into table as a simple statement |
| columns_string = ', '.join(col_names) |
| placeholders = ', '.join(["%s"] * len(col_names)) |
| session.execute("INSERT INTO {0} ({1}) VALUES ({2})".format( |
| table_name, columns_string, placeholders), params, timeout=120) |
| return col_names |
| |
| |
| def get_all_primitive_params(key): |
| """ |
| Simple utility method used to give back a list of all possible primitive data sample types. |
| """ |
| params = [key] |
| for datatype in PRIMITIVE_DATATYPES: |
| # Also test for empty strings |
| if key == 1 and datatype == 'ascii': |
| params.append('') |
| else: |
| params.append(get_sample(datatype)) |
| return params |
| |
| |
| def get_primitive_datatypes(): |
| return ['int'] + list(PRIMITIVE_DATATYPES) |