## Migration from 3.X versions

## Overview

Version 4.0 of Libgda is a major rework of the library for the following benefits:

- easier to understand and to use API, with less strange path usage (which were inherited from modifications above modifications where no global coherence was adressed)

- reduce the size of the library (now 1.3M compared to 1.7M once stripped) and the number of symbols (845 compared to 1420) and have less complicated and thus more maintanable code (190 files compared to 250).

- removal of the GdaClient object from which connections were created: this object did not offer any significant features and made the API more difficult to use

- merge the GdaQuery and GdaCommand into only one object to represent statements

- improve the quantity of information stored in the dictionary and make it easy to include some application-specific data, while at the same time reduce the memory footprint of the dictionary

- rework provider's code to make it more common and provide skeletal implementations to make it easy to write new database providers

- provide more efficient and complete SQL parsing (don't use Lex/Yacc anymore since there can be difficult to track problems when several parsers are used at the same time)