When making changes to serialized data structures, always preserve backward and forward compatibility to prevent breaking existing databases and migration paths. This applies to enums, serialized plans, function serialization, and version handling.
When making changes to serialized data structures, always preserve backward and forward compatibility to prevent breaking existing databases and migration paths. This applies to enums, serialized plans, function serialization, and version handling.
Key practices:
v1.2.0+
) instead of closed ranges to accommodate ongoing compatibilityExample of safe enum extension:
enum class CatalogType : uint8_t {
INVALID = 0,
TABLE_ENTRY = 1,
SCHEMA_ENTRY = 2,
// ... existing entries ...
DATABASE_ENTRY = 9,
NEW_ENTRY = 10, // Append new entries at the end
};
Breaking serialization compatibility can render existing databases unreadable and disrupt migration workflows, making this a critical consideration for any schema or data structure changes.
Enter the URL of a public GitHub repository