Repository navigation
Commit d849a09
FIX: Resolve UDT parameter metadata before binding (#818)
### Work Item / Issue Reference
>
[AB#48445](https://sqlclientdrivers.visualstudio.com/c6d89619-62de-46a0-8b46-70b92a84d85e/_workitems/edit/48445)
-------------------------------------------------------------------
### Summary
Resolve explicitly declared SQL_SS_UDT parameter identities through
SQLDescribeParam before binding, without changing the public API.
- Cover scalar and array binding, typed NULLs, and statement reuse.
- Normalize large UDT sizes and preserve setinputsizes overrides across
streamed executemany rows.
- Add 13 regression cases to the existing spatial-types test file.
- Document metadata-discovery limitations and available workarounds.
### Validation
Windows x64, Python 3.13.15, SQL Server 2019:
- All 13 new regressions fail on unmodified HEAD and pass with this fix.
- Focused regression suite: 738 passed, 4 skipped.
- Full non-stress suite: 5,241 passed, 173 skipped, 2 failed.
- Both failures also reproduce on unmodified HEAD: a password-masking
assertion with passwordless authentication and a Windows path-length
limit.
- Repository formatting checks pass.
### Limitations
Temporary tables and table variables may not support metadata discovery.
Custom CLR assembly UDTs and cross-platform behavior remain unverified.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>1 parent 3089361 commit d849a09
3 files changed
Lines changed: 191 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1184 | 1184 | | |
1185 | 1185 | | |
1186 | 1186 | | |
| 1187 | + | |
| 1188 | + | |
| 1189 | + | |
| 1190 | + | |
| 1191 | + | |
| 1192 | + | |
| 1193 | + | |
| 1194 | + | |
1187 | 1195 | | |
1188 | 1196 | | |
1189 | 1197 | | |
| |||
2686 | 2694 | | |
2687 | 2695 | | |
2688 | 2696 | | |
2689 | | - | |
2690 | | - | |
| 2697 | + | |
| 2698 | + | |
2691 | 2699 | | |
2692 | 2700 | | |
2693 | 2701 | | |
2694 | 2702 | | |
2695 | 2703 | | |
2696 | | - | |
2697 | | - | |
| 2704 | + | |
| 2705 | + | |
| 2706 | + | |
| 2707 | + | |
| 2708 | + | |
| 2709 | + | |
| 2710 | + | |
| 2711 | + | |
2698 | 2712 | | |
2699 | 2713 | | |
2700 | 2714 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
452 | 452 | | |
453 | 453 | | |
454 | 454 | | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
455 | 494 | | |
456 | 495 | | |
457 | 496 | | |
| |||
463 | 502 | | |
464 | 503 | | |
465 | 504 | | |
| 505 | + | |
| 506 | + | |
466 | 507 | | |
467 | 508 | | |
468 | 509 | | |
| |||
2257 | 2298 | | |
2258 | 2299 | | |
2259 | 2300 | | |
| 2301 | + | |
| 2302 | + | |
2260 | 2303 | | |
2261 | 2304 | | |
2262 | 2305 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
| 7 | + | |
6 | 8 | | |
7 | 9 | | |
8 | 10 | | |
| |||
824 | 826 | | |
825 | 827 | | |
826 | 828 | | |
| 829 | + | |
| 830 | + | |
| 831 | + | |
| 832 | + | |
| 833 | + | |
| 834 | + | |
| 835 | + | |
| 836 | + | |
| 837 | + | |
| 838 | + | |
| 839 | + | |
| 840 | + | |
| 841 | + | |
| 842 | + | |
| 843 | + | |
| 844 | + | |
| 845 | + | |
| 846 | + | |
| 847 | + | |
| 848 | + | |
| 849 | + | |
| 850 | + | |
| 851 | + | |
| 852 | + | |
| 853 | + | |
| 854 | + | |
| 855 | + | |
| 856 | + | |
| 857 | + | |
| 858 | + | |
| 859 | + | |
| 860 | + | |
| 861 | + | |
| 862 | + | |
| 863 | + | |
| 864 | + | |
| 865 | + | |
| 866 | + | |
| 867 | + | |
| 868 | + | |
| 869 | + | |
| 870 | + | |
| 871 | + | |
| 872 | + | |
| 873 | + | |
| 874 | + | |
| 875 | + | |
| 876 | + | |
| 877 | + | |
| 878 | + | |
| 879 | + | |
| 880 | + | |
| 881 | + | |
| 882 | + | |
| 883 | + | |
| 884 | + | |
| 885 | + | |
| 886 | + | |
| 887 | + | |
| 888 | + | |
| 889 | + | |
| 890 | + | |
| 891 | + | |
| 892 | + | |
| 893 | + | |
| 894 | + | |
| 895 | + | |
| 896 | + | |
| 897 | + | |
| 898 | + | |
| 899 | + | |
| 900 | + | |
| 901 | + | |
| 902 | + | |
| 903 | + | |
| 904 | + | |
| 905 | + | |
| 906 | + | |
| 907 | + | |
| 908 | + | |
| 909 | + | |
| 910 | + | |
| 911 | + | |
| 912 | + | |
| 913 | + | |
| 914 | + | |
| 915 | + | |
| 916 | + | |
| 917 | + | |
| 918 | + | |
| 919 | + | |
| 920 | + | |
| 921 | + | |
| 922 | + | |
| 923 | + | |
| 924 | + | |
| 925 | + | |
| 926 | + | |
| 927 | + | |
| 928 | + | |
| 929 | + | |
| 930 | + | |
| 931 | + | |
| 932 | + | |
| 933 | + | |
| 934 | + | |
| 935 | + | |
| 936 | + | |
| 937 | + | |
| 938 | + | |
| 939 | + | |
| 940 | + | |
| 941 | + | |
| 942 | + | |
| 943 | + | |
| 944 | + | |
| 945 | + | |
| 946 | + | |
| 947 | + | |
| 948 | + | |
| 949 | + | |
| 950 | + | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
| 955 | + | |
| 956 | + | |
0 commit comments