Skip to content

Conversation

crs2007
Copy link

@crs2007 crs2007 commented Jul 23, 2025

Pull Request: TVP Schema Name Fix and Request Timeout Improvements

Overview

This PR addresses and resolves the following issues:

  • #1759: TVP Parameter Schema Name Not Included in sp_executesql @params.
  • MS SQL Server query timeout: "request failed to complete in 15000ms".

Key Changes

  • TVP Schema Name Fix:
    When passing Table-Valued Parameters (TVPs), the schema and type name are now correctly preserved and included in the parameter declaration. This ensures that sp_executesql receives the fully qualified type name (including schema), resolving issues with custom TVP types. See lib/tedious/request.js.
  • Request Timeout Handling:
    • Standardized and enforced default values for requestTimeout and connectionTimeout across both Tedious and msnodesqlv8 drivers.
    • Ensured timeout values are correctly parsed and propagated from configuration and connection strings.
    • For Tedious, per-request timeout is now explicitly assigned (lib/tedious/request.js:502).
    • For msnodesqlv8, query_timeout is set in seconds, derived from config.requestTimeout.
    • Improved error handling for timeouts and connection errors, reducing unhandled promise rejections and improving reliability.

Impact

  • TVP parameters with schema-qualified type names now work correctly with sp_executesql and custom types.
  • Prevents premature query failures due to misconfigured or missing timeout values.
  • Ensures consistent behavior for request and connection timeouts across all supported drivers.
  • Resolves user-reported issues with timeouts not being respected or propagated.

crs2007 added 2 commits July 22, 2025 18:57
Improves TVP type name handling to avoid schema duplication and assigns per-request timeout to tedious Request if set. Adds tests for long requestTimeout and TVP with schema-qualified names, and increases Mocha test timeouts for long-running tests.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant