doctrine/dbal

NVARCHAR(MAX) length for portableTableColumnDefiniton should not be divided

Open

#6,038 opened on May 15, 2023

View on GitHub
 (0 comments) (0 reactions) (0 assignees)PHP (1,374 forks)batch import
BugHelp wantedSQL ServerSchema IntrospectionSchema Management

Repository metrics

Stars
 (9,693 stars)
PR merge metrics
 (Avg merge 12h 52m) (46 merged PRs in 30d)

Description

Bug Report

When introspecting a schema from an SqlServer database a nvarchar(max) a TypeError is raised. Apparently this happens because the length of an nvarchar is divided by two in the SQLServerSchemaManager::getPortableTableColunmnDefinition. As the MAX length is read as -1 this leads to a float length (-0.5).

This can be simply reproduced by introspecting a SqlServer database schema containing a nvarchar(max) column.

Contributor guide