class_docstr: This handler handles connection and execution of the FaunaDB statements.
class_docstr_tok: ["This","handler","handles","connection","and","execution","of","the","FaunaDB","statements","."]
code: def select(
      self,
      table_name: str,
      columns: List[str] = None,
      conditions: List[str] = None,
      offset: int = None,
      limit: int = None,
  ) -> dict:
      # select * from db_name.collection_name
      if len(columns) > 0 and isinstance(columns[0], Star):
          fauna_query = q.map_(
              q.lambda_("ref", q.get(q.var("ref"))),
              q.paginate(q.documents(q.collection(str(table_name)))),
          )
      else:
          # select id, name ,etc from db_name.collection_name
          fauna_query = q.map_(
              q.lambda_(
                  "doc", {"data": q.select(columns, q.var("doc"))}
              ),
              q.paginate(q.documents(q.collection(table_name))),
          )
  
      return self._client.query(fauna_query)
  
imports: import json
  import pandas
  from collections import OrderedDict
  from typing import List
  from faunadb import query
  from faunadb.client import FaunaClient
  from mindsdb_sql import Select, Insert, CreateTable, Delete
  from mindsdb_sql.parser.ast.select.star import Star
  from mindsdb_sql.parser.ast.base import ASTNode
  from mindsdb.integrations.libs.const import HANDLER_CONNECTION_ARG_TYPE
  from mindsdb.integrations.libs.response import RESPONSE_TYPE, HandlerResponse, HandlerStatusResponse
  from mindsdb.integrations.libs.base import DatabaseHandler
  from mindsdb.utilities import log
label_desc: Use image node_id 8 for calling the FaunaDBHandler obj's underlying member method code with example usage: obj.select(table_name, columns, conditions, offset, limit) and returns: self