def METHOD_NAME() -> Query:
    self.create_table(temp_table, columns_to_types)
    rows: t.List[t.Tuple[t.Any, ...]] = list(df.itertuples(index=False, name=None))  # type: ignore
    conn = self._connection_pool.get()
    conn.bulk_copy(temp_table.sql(dialect=self.dialect), rows)
    return exp.select(*columns_to_types).from_(temp_table)