Technical Advisory 81315

On this page Carat arrow pointing down

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.


Yes No
On this page

Yes No