Skip to content

Develop/fixes/td 6925 fix sql server incompatability issuesv9.1.5#2

Merged
ColinBeebyHEE merged 3 commits into
v9.1.5from
Develop/Fixes/TD-6925-FixSQLServerIncompatabilityIssuesv9.1.5
Mar 13, 2026
Merged

Develop/fixes/td 6925 fix sql server incompatability issuesv9.1.5#2
ColinBeebyHEE merged 3 commits into
v9.1.5from
Develop/Fixes/TD-6925-FixSQLServerIncompatabilityIssuesv9.1.5

Conversation

@ColinBeebyHEE
Copy link
Copy Markdown
Contributor

These are the changes which were originally made to a v8.18.1 tag of the code. This is the same code changes no applied to a 9.1.5 tag of the code.

Summary:
Add SQL Server-compatible JSON handling (OPENJSON / JSON_VALUE / JSON_QUERY / FOR JSON PATH) and ensure sqlsrv is accepted as an alias for mssql-type branches. This brings parity with existing Postgres and MySQL implementations so the plugin can be used on Microsoft SQL Server deployments.

Why:
Existing code provided DB-specific JSON handling for Postgres and MySQL/MariaDB; SQL Server lacked equivalents. Adding SQL Server branches ensures functionality (JSON extraction, array expansion, aggregations) works correctly on MSSQL-based Moodle installations.

Implementation notes / decisions:
Used SQL Server native JSON functions: OPENJSON (array expansion), JSON_VALUE (scalar extraction), JSON_QUERY (for objects/arrays when needed), and FOR JSON PATH for aggregation.
Applied explicit casts for numeric types (INT/FLOAT) to match expected types used elsewhere.
Kept original Postgres and MySQL branches untouched to avoid regressions.
Added sqlsrv as a switch alias where mssql was used; for Moodle-native DB families the code uses mssql_native_moodle_database / sqlsrv_native_moodle_database cases where appropriate.

@ColinBeebyHEE ColinBeebyHEE merged commit 33ecc96 into v9.1.5 Mar 13, 2026
1 check passed
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