def _QueryToWhere(self, cnxn, services, project_config, query, canned_query, project):
    'Parses a query string into LEFT JOIN and WHERE conditions.\n\n    Args:\n      cnxn: A MonorailConnection instance.\n      services: A Services instance.\n      project_config: The configuration for the given project.\n      query (string): The query to parse.\n      canned_query (string): The supplied canned query.\n      project: The current project.\n\n    Returns:\n      1. A list of LEFT JOIN clauses for the SQL query.\n      2. A list of WHERE clases for the SQL query.\n      3. A list of query conditions that are unsupported with snapshots.\n    '
    if (not (query or canned_query)):
        return ([], [], [])
    query = (query or '')
    scope = (canned_query or '')
    query_ast = query2ast.ParseUserQuery(query, scope, query2ast.BUILTIN_ISSUE_FIELDS, project_config)
    query_ast = ast2ast.PreprocessAST(cnxn, query_ast, [project.project_id], services, project_config)
    (left_joins, where, unsupported) = ast2select.BuildSQLQuery(query_ast, snapshot_mode=True)
    return (left_joins, where, unsupported)
Parses a query string into LEFT JOIN and WHERE conditions.

Args:
  cnxn: A MonorailConnection instance.
  services: A Services instance.
  project_config: The configuration for the given project.
  query (string): The query to parse.
  canned_query (string): The supplied canned query.
  project: The current project.

Returns:
  1. A list of LEFT JOIN clauses for the SQL query.
  2. A list of WHERE clases for the SQL query.
  3. A list of query conditions that are unsupported with snapshots.
def _QueryToWhere(self, cnxn, services, project_config, query, canned_query, project):
    'Parses a query string into LEFT JOIN and WHERE conditions.\n\n    Args:\n      cnxn: A MonorailConnection instance.\n      services: A Services instance.\n      project_config: The configuration for the given project.\n      query (string): The query to parse.\n      canned_query (string): The supplied canned query.\n      project: The current project.\n\n    Returns:\n      1. A list of LEFT JOIN clauses for the SQL query.\n      2. A list of WHERE clases for the SQL query.\n      3. A list of query conditions that are unsupported with snapshots.\n    '
    if (not (query or canned_query)):
        return ([], [], [])
    query = (query or )
    scope = (canned_query or )
    query_ast = query2ast.ParseUserQuery(query, scope, query2ast.BUILTIN_ISSUE_FIELDS, project_config)
    query_ast = ast2ast.PreprocessAST(cnxn, query_ast, [project.project_id], services, project_config)
    (left_joins, where, unsupported) = ast2select.BuildSQLQuery(query_ast, snapshot_mode=True)
    return (left_joins, where, unsupported)