constructor(code, result, query, values) {
        const message = errorMessages[code].message;
        super(message);
        this.name = this.constructor.name;
        this.code = code;
        this.result = result;
        this.query = query;
        this.values = values;
        this.received = result.rows.length;
        Error.captureStackTrace(this, this.constructor);
    }
@class errors.QueryResultError
@augments external:Error
@description

This error is specified as the rejection reason for all result-specific methods when the result doesn't match
the expectation, i.e. when a query result doesn't match its Query Result Mask - the value of {@link queryResult}.

The error applies to the result from the following methods: {@link Database#none none},
{@link Database#one one}, {@link Database#oneOrNone oneOrNone} and {@link Database#many many}.

Supported errors:

- `No return data was expected.`, method {@link Database#none none}
- `No data returned from the query.`, methods {@link Database#one one} and {@link Database#many many}
- `Multiple rows were not expected.`, methods {@link Database#one one} and {@link Database#oneOrNone oneOrNone}

Like any other error, this one is notified with through the global event {@link event:error error}.

The type is available from the {@link errors} namespace.

@property {string} name
Standard {@link external:Error Error} property - error type name = `QueryResultError`.

@property {string} message
Standard {@link external:Error Error} property - the error message.

@property {string} stack
Standard {@link external:Error Error} property - the stack trace.

@property {object} result
The original $[Result] object that was received.

@property {number} received
Total number of rows received. It is simply the value of `result.rows.length`.

@property {number} code
Error code - {@link errors.queryResultErrorCode queryResultErrorCode} value.

@property {string} query
Query that was executed.

Normally, it is the query already formatted with values, if there were any.
But if you are using initialization option `pgFormatting`, then the query string is before formatting.

@property {*} values
Values passed in as query parameters. Available only when initialization option `pgFormatting` is used.
Otherwise, the values are within the pre-formatted `query` string.

@example

const QueryResultError = pgp.errors.QueryResultError;
const qrec = pgp.errors.queryResultErrorCode;

const initOptions = {

  // pg-promise initialization options...

  error(err, e) {
      if (err instanceof QueryResultError) {
          // A query returned unexpected number of records, and thus rejected;
          
          // we can check the error code, if we want specifics:
          if(err.code === qrec.noData) {
              // expected some data, but received none;
          }

          // If you write QueryResultError into the console,
          // you will get a nicely formatted output.

          console.log(err);
          
          // See also: err, e.query, e.params, etc.
      }
  }
};

@see
{@link queryResult}, {@link Database#none none}, {@link Database#one one},
{@link Database#oneOrNone oneOrNone}, {@link Database#many many}