# Technical Advisory 81315

Publication date: May 23, 2022

## Description

In all versions of CockroachDB from v21.2.0 to v21.2.10, and from v22.1.0-alpha.1 to v22.1.0, executing a prepared `SELECT` query with a casted placeholder value in a constant filter could produce incorrect results if the casted type did not match the filtered column type.

For example, executing a prepared statement of the form `SELECT ... FROM ... WHERE col = $1::type ...`, where `type` did not match the type of column `col`, could return fewer results than expected.

## Statement

This is resolved in CockroachDB by PR 81331.

The fix has been applied to maintenance versions v21.2.11 and v22.1.1 of CockroachDB.

This public issue is tracked by 81315.

## Mitigation

Users of CockroachDB are encouraged to upgrade to a maintenance version with the fix applied: v21.2.11 or v22.1.1.

To avoid this problem on affected versions, users should change any placeholder casts that filter a column in their prepared statements to match the type of the filtered column.

For example, in the prepared statement `SELECT * FROM my_tab WHERE a = $1::INT8;`, if column `a` has type `DECIMAL`, the prepared statement should be changed to `SELECT * FROM my_tab WHERE a = $1::DECIMAL;` to avoid this issue.

## Impact

Versions affected include v21.2.0 to v21.2.10, and v22.1.0-alpha.1 to v22.1.0.

Please reach out to the support team if more information or assistance is needed.