def _get_create_table_sql(self, table_name, columns, options=None):
        """
        Returns the SQL used to create a table.

        :param table_name: The name of the table to create
        :type table_name: str

        :param columns: The table columns
        :type columns: dict

        :param options: The options
        :type options: dict

        :rtype: str
        """
        options = options or {}

        column_list_sql = self.get_column_declaration_list_sql(columns)

        if options.get('unique_constraints'):
            for name, definition in options['unique_constraints'].items():
                column_list_sql += ', %s' % self.get_unique_constraint_declaration_sql(name, definition)

        if options.get('primary'):
            column_list_sql += ', PRIMARY KEY(%s)' % ', '.join(options['primary'])

        if options.get('indexes'):
            for index, definition in options['indexes']:
                column_list_sql += self.get_index_declaration_sql(index, definition) % ', %s'

        query = 'CREATE TABLE %s (%s' % (table_name, column_list_sql)

        check = self.get_check_declaration_sql(columns)
        if check:
            query += ', %s' % check

        query += ')'

        sql = [query]

        if options.get('foreign_keys'):
            for definition in options['foreign_keys']:
                sql.append(self.get_create_foreign_key_sql(definition, table_name))

        return sql
dataset/ETHPy150Open sdispater/orator/orator/dbal/platforms/platform.py/Platform._get_create_table_sql/swapped operands of `%`