django-querycount icon indicating copy to clipboard operation
django-querycount copied to clipboard

Replace `\` with `\\` to fix regex compile error when binary data is present in the query

Open dannosaur opened this issue 3 years ago • 1 comments

If a query is executed with binary data in the query (such as when using PostGIS and ST_GeomFromEWKB), the middleware crashes with a regex compile error.

To replicate the issue, execute a query with the middleware in place, such as;

SELECT * FROM table WHERE ST_Contains("table"."column", ST_GeomFromEWKB('\x0101000020e61000004606b98b308d3a403a3c84f1d30554c0'::bytea))

dannosaur avatar Jan 12 '23 17:01 dannosaur

Can confirm that this PR also fixes a similar error for queries involving unicode data in JSON fields, such as this one:

SELECT * FROM TABLE WHERE origin='{"name": "r\u00e5det", "id": "123"}'::jsonb

@bradmontgomery

danmichaelo avatar Feb 28 '25 16:02 danmichaelo