Awesome Reviewers

When evolving APIs, prioritize backward compatibility by creating new methods or overloads rather than modifying existing function signatures. This prevents breaking changes for existing users and extensions.

Key strategies include:

Example of good practice:

// Instead of modifying existing signature:
// DUCKDB_C_API void duckdb_slice_vector(duckdb_vector vector, duckdb_selection_vector selection, idx_t len);

// Add a new method:
DUCKDB_C_API void duckdb_vector_slice_dictionary(duckdb_vector vector, idx_t dict_size, 
                                                  duckdb_selection_vector selection, idx_t len);

This approach ensures existing code continues to work while providing new functionality through clearly named, purpose-built interfaces.