docs: def create_table(self, data, table_name, error_if_exists = False, **kwargs):
      'Create a table based on the data, but don\'t insert anything.'
  
      converted_data = convert(data)
      if len(converted_data) == 0 or converted_data[0] == []:
        raise ValueError(u'You passed no sample values, or all the values you passed were null.')
      else:
        startdata = OrderedDict(converted_data[0])
  
      # Select a non-null item
      for k, v in startdata.items():
        if v != None:
          break
      else:
        v = None
  
      if_not_exists = u'' if error_if_exists else u'IF NOT EXISTS'
  
      # Do nothing if all items are null.
      if v != None:
        try:
          # This is vulnerable to injection.
          sql = u'''
            CREATE TABLE %s %s (
              %s %s
            );''' % (if_not_exists, quote(table_name), quote(k), get_column_type(startdata[k]))
          self.execute(sql, commit = False)
        except:
          raise
        else:
          self.commit()
  
        for row in converted_data:
          self.__check_and_add_columns(table_name, row)