code: def database(self, name=None):
          
          if name == self.current_database or (
              name is None and name != self.current_database
          ):
              return self.database_class(self.current_database, self)
          else:
              url = self.con.url
              client_class = type(self)
              new_client = client_class(
                  host=url.host,
                  user=url.username,
                  port=url.port,
                  password=url.password,
                  database=name,
              )
              return self.database_class(name, new_client)
docs: Connect to a database called `name`.
  
          Parameters
          ----------
          name : str, optional
              The name of the database to connect to. If ``None``, return
              the database named ``self.current_database``.
  
          Returns
          -------
          db : MySQLDatabase
              An :class:`ibis.sql.mysql.client.MySQLDatabase` instance.
  
          Notes
          -----
          This creates a new connection if `name` is both not ``None`` and not
          equal to the current database.