After fixing the two critical root causes (RETURNING clause and LEAST/GREATEST type mapping), 375 tests (40.5% of remaining 925 failures) have actual functional issues requiring code-level fixes, not just test baseline updates.
Nature: Query execution returns empty result sets where data is expected.
Possible Causes:
- Query translation differences between MySQL and MariaDB
- Missing data in test fixtures for MariaDB
- WHERE clause conditions that filter out all rows on MariaDB
- Aggregate operations (First, Single, etc.) failing on empty sets
Investigation Needed:
- Run subset of failing tests to capture actual error context
- Determine if issue is data-related or query translation
- Check if MariaDB-specific SQL syntax differences affect results
Nature: JSON operations failing on MariaDB 11.6.2.
Known Issues:
- JSON bulk updates
- JSON projections
- JSON set operations
- Potential differences in JSON function support between MySQL and MariaDB
Investigation Needed:
- Verify MariaDB 11.6.2 JSON function compatibility
- Check if JSON_TABLE, JSON_EXTRACT, etc. behave differently
- Determine if JSON type mapping needs MariaDB-specific handling
Nature: Query translation failures when composing complex expressions.
Likely Causes:
- Nested query operations not translating correctly
- Complex LINQ expressions not supported by query translator
- Expression visitor issues with MariaDB-specific SQL
Investigation Needed:
- Identify specific expression patterns that fail
- Check if EF Core 10 changes affect expression composition
- Determine if MySQL-specific optimizations don't work on MariaDB
Nature: Miscellaneous failures not fitting other categories.
Potential Issues:
- LEFT JOIN not supported in certain contexts
- Type conversion differences
- Collation/character set issues
- Stored procedure compatibility
- Run sample tests from each category
- Capture full error context and stack traces
- Identify common patterns within each category
- Determine root causes for each category
-
Sequence Contains No Elements:
- If data issue: Update test fixtures
- If query issue: Fix query translation
-
ComplexJSON:
- Check MariaDB JSON compatibility
- Update JSON function mappings if needed
-
Composing Expressions:
- Fix expression visitor logic
- Add MariaDB-specific handling
-
Other Issues:
- Address individually based on root cause
- Re-run affected test subsets
- Verify fixes don't break other tests
- Update documentation
- Investigation: 2-3 hours
- Fixes: 5-15 hours (depends on complexity)
- Testing: 1-2 hours
- Total: 8-20 hours
Compare to baseline updates: 18-45 hours for test assertions only.
- RETURNING clause compatibility fix
- LEAST/GREATEST type mapping fix
- 90.6% failure reduction achieved
- Comprehensive analysis and categorization
- Functional issue investigation
- Functional issue fixes (this document provides roadmap)
- SQL baseline updates (550 tests - can be deferred)
- Priority: Fix functional issues first (actual bugs)
- Defer: SQL baseline updates (test assertions only)
- Incremental: Address functional issues by category
- Verify: Each fix with targeted test subset
- Run sample tests from "Sequence contains no elements" category
- Capture and analyze error patterns
- Implement targeted fixes
- Repeat for other categories
This provides a more valuable improvement than updating 550 test baselines that don't affect production functionality.