code: def export_as_string(self):
          
          cql = "\n\n".join([self.as_cql_query() + ';'] +
                            self.user_type_strings() +
                            [f.export_as_string() for f in self.functions.values()] +
                            [a.export_as_string() for a in self.aggregates.values()] +
                            [t.export_as_string() for t in self.tables.values()])
          if self._exc_info:
              import traceback
              ret = "/*\nWarning: Keyspace %s is incomplete because of an error processing metadata.\n" % \
                    (self.name)
              for line in traceback.format_exception(*self._exc_info):
                  ret += line
              ret += "\nApproximate structure, for reference:\n(this should not be used to reproduce this schema)\n\n%s\n*/" % cql
              return ret
          if self.virtual:
              return ("/*\nWarning: Keyspace {ks} is a virtual keyspace and cannot be recreated with CQL.\n"
                      "Structure, for reference:*/\n"
                      "{cql}\n"
                      "").format(ks=self.name, cql=cql)
          return cql
docs: Returns a CQL query string that can be used to recreate the entire keyspace,
          including user-defined types and tables.