code: def select(query, ts, mode='list', cast=True):
      
      queryobj = _parse_select(query)
      return _select(
          queryobj['projection'],
          queryobj['tables'],
          queryobj['where'],
          ts,
          mode,
          cast)
docs: Perform the TSQL selection query *query* on testsuite *ts*.
  
      Note: The `select`/`retrieve` part of the query is not included.
  
      Args:
          query (str): TSQL select query
          ts (:class:`delphin.itsdb.TestSuite`): testsuite to query over
          mode (str): how to return the results (see
              :func:`delphin.itsdb.select_rows` for more information
              about the *mode* parameter; default: `list`)
          cast (bool): if `True`, values will be cast to their datatype
              according to the testsuite's relations (default: `True`)
      Example:
          >>> list(tsql.select('i-id where i-length < 4', ts))
          [[142], [1061]]