* improve sqlpage function argument warnings with source context Made-with: Cursor * Param extraction: Result-based errors, single caller message, no CompoundIdentifier special case - expr_to_stmt_param returns Result<StmtParam, ExprToParamError>; error carries only line + kind (UnsupportedExpr, UnemulatedFunction, NamedArgs) - function_args_to_stmt_params logs one formatted message (ctx.format_param_error) then returns Err - Single unsupported-expr arm; expr_summary() used for description - Rename ParamWarnContext to ParamExtractContext Made-with: Cursor * Surface param extraction error in parse result; add parse_sql error-message tests; remove are_params_extractable - When func_call_to_param returns StmtParam::Error, store it and have extract_parameters return Err so parse yields ParsedStatement::Error with specialized message - Add test_parse_sql_unsupported_expr_in_sqlpage_arg and test_parse_sql_unemulated_function_in_sqlpage_arg - Remove dead are_params_extractable and its unused import Made-with: Cursor * Refactor sqlpage function argument error messages to match user expectations - Overhauled ExprToParamError formatting to construct exact user-friendly descriptions. - Removed superfluous anyhow::Context prefixes in func_call_to_param. - Passed source_path properly through validate_function_calls to ensure file line numbers populate the new error template accurately. - Renamed error test file to match its dynamic error output signature. - Removed redundant mut mutability warnings on parsing logic loops. * improve error messages * Refactor SqlPageFunctionError representation to clean up 'syntax error' wrappers - Replaced stringly-typed anyhow errors with a strongly typed SqlPageFunctionError. - Removed source_path threading completely from the parameter extraction phases, conforming to better separation of concerns. - Appended file path prefix dynamically at the evaluation stage in clone_anyhow_err strictly when downcasting to SqlPageFunctionError. - Removed the confusing generic 'Caused by: x.sql contains a syntax error...' wrapper from actual function logic errors. * Remove redundant 'reorganize' hint from error message * readd deleted test * split parameter extraction logic into a separate file * Add to changelog
The sql files in this folder are all tested automatically. They are organized in two subdirectories:
component_rendering/
Files that depend on SQLPage's HTML rendering (components, shells, redirects,
etc.). Every file that does not start with error_ must render a page that
contains the text "It works !" and no occurrence of the word "error" (case
insensitive). error_ files should return a page containing the word "error"
and the rest of the file name. Files may include nosqlite, nomssql,
nopostgres or nomysql in their name to skip incompatible backends.
data/
Files that only validate data-processing functions should live here. They must
return rows with an actual column plus either expected (exact match) or
expected_contains (substring match). Tests in this directory are fetched as
JSON and validated row by row.