This repository was archived by the owner on Mar 29, 2026. It is now read-only.
Sph 2026 03 21.01#58
Merged
Merged
Conversation
…SQL generation for EXISTS queries
- Introduced FromUnixEpochMicroseconds method for better clarity in converting microseconds to DateTime. - Updated GetInt64Value method to handle TIMESTAMP columns correctly. - Modified DataReader to return DateTime for TIMESTAMP columns using the new conversion method. - Added tests for TIMESTAMP columns to ensure correct metadata reporting and round-trip functionality. - Implemented DecentDBMaintenance class for database file maintenance, including an atomic vacuum operation. - Created DecentDB.NativeAssets.props for managing native asset paths across platforms. - Updated project files to include native assets conditionally based on build outputs. - Added comprehensive tests for maintenance operations to validate vacuum functionality. - Documented the changesets implementation plan for better versioning and release management.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces significant improvements to the .NET ADO.NET binding for DecentDB, focusing on enhanced prepared statement caching, improved handling of native assets, and better support for data types. It also adds a new maintenance utility for database vacuuming. Below are the most important changes:
Prepared Statement Management and Command Execution:
DecentDBCommand, including logic to invalidate and reuse prepared statements when the SQL or connection changes, improving performance and correctness. Methods such asEnsurePreparedStatement,InvalidatePreparedStatement, and changes to property setters ensure the cache is properly managed. [1] [2] [3] [4] [5] [6] [7]ExecuteSingleNonQuery. [1] [2]Data Type Handling Improvements:
TIMESTAMPcolumns (type 17) and improved conversion forGuid,DateTime, andDateTimeOffsettypes inDecentDBDataReader. This includes new helper methods for consistent conversion from microseconds since Unix epoch and correct handling of BLOBs as GUIDs. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]Native Asset Packaging:
DecentDB.AdoNet.csprojto import a shared native assets property file and use MSBuild variables for runtime asset inclusion, making native library packaging more flexible and maintainable. [1] [2]Maintenance Utilities:
DecentDBMaintenanceproviding an async methodVacuumAtomicAsyncto perform an offline vacuum of a database file using the DecentDB CLI, with support for atomic file swapping and optional backup creation.These changes collectively improve the reliability, maintainability, and performance of the DecentDB .NET integration.