From b0cd0c7981a77e1cc71b92e8adcfa242e9ff3aeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alja=C5=BE=20Mur=20Er=C5=BEen?= Date: Tue, 25 Feb 2025 16:50:36 +0000 Subject: [PATCH] Improve error message for $0 over SQL adapter (#8388) Closes #8374 --- edb/pgsql/resolver/expr.py | 3 ++- tests/test_sql_query.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/edb/pgsql/resolver/expr.py b/edb/pgsql/resolver/expr.py index 18b80f01fa8..f903b09f1b7 100644 --- a/edb/pgsql/resolver/expr.py +++ b/edb/pgsql/resolver/expr.py @@ -720,8 +720,9 @@ def resolve_ParamRef( # external params map one-to-one to internal params if expr.number < 1: raise errors.QueryError( - f'there is no parameter ${expr.number}', + f'param out of bounds: ${expr.number}', pgext_code=pgerror.ERROR_UNDEFINED_PARAMETER, + hint='query parameters start with 1', ) param = ctx.query_params[expr.number - 1] diff --git a/tests/test_sql_query.py b/tests/test_sql_query.py index ea6e8fa59b7..e235e315676 100644 --- a/tests/test_sql_query.py +++ b/tests/test_sql_query.py @@ -1053,7 +1053,8 @@ async def test_sql_query_53(self): async def test_sql_query_54(self): with self.assertRaisesRegex( - asyncpg.UndefinedParameterError, 'there is no parameter \\$0' + asyncpg.UndefinedParameterError, 'param out of bounds: \\$0', + hint='query parameters start with 1' ): await self.scon.fetch( '''