I am trying to run a query and return the result rows in a function:

```js
async function query(sql) {
  p(`sql: ${sql}`)

  let rows = await pool.query(sql)  // Notice the *await* here
  let r2 = rows.then( r => {
    debug(`nRows=${r.rows.length}`)
    return r.rows
  })
    .catch( err => {
      throw `Query [${sql}] failed: ${err}`
    })

  return rows
}

```

However the `rows` actually returns a `Promise` - instead of the actual results. This is not making sense to me: then ***what is the *await* actually achieving in there*** ? And then - how can the result be computed and returned by this function?