pgx.ErrNoRows 与查询返回的错误不匹配

Sam*_*man 7 postgresql go pgx

pgx 的新人。使用 pgxpool。我有一个简单的查询

var result string
err := Conn.QueryRow(context.Background(),
    `SELECT name FROM table WHERE id=1000`).Scan(&result)

if err != nil {
    if err == pgx.ErrNoRows {
        fmt.Println("No Rows")
        fmt.Println(err)
    } else {
        fmt.Println("Other Error")
        fmt.Println(err)
    }
}
Run Code Online (Sandbox Code Playgroud)

即使实际上没有返回任何行,我也永远不会得到“无行”。错误总是“结果集中没有行”,但它永远不会匹配 pgx.ErrNoRows,因为我知道它们应该是相同的。

在检查类型时,pgx.ErrNoRows = *errors.fundamental 而 err = *xerrors.errorString。

我在做什么或假设做什么?

编辑:

正如下面@mkopriva提到的,问题是goimport自动导入了错误的pgx,它需要是“github.com/jackc/pgx/v4”