The proposal for version 3.0 looks very promising and I hope all the major changes will be implemented. Most of the enhancements seem to add flexibility and scalability to to the "C" based api. This is great as at the "C" api call level you can do anything you want. But I do not see any changes to add similar flexibility at the SQL language level. Declarative programming is much more productive than writing many lines of "c" code to do any data manipulation tasks. The current SQL language implementation excels at the vast majority of data manipulation needs but falls short in being able to implement a complete data management system at the SQL language level.
One example is creating a database. SQLite can only create a database at the "c" api level. This should be changed to be able to use a CREATE DATABASE <dbname> command. The sqlite3_open function should be implemented with one major change. Instead of passing the complete file name of the database, pass in the name of the directory where the master/system database will be created/opened. Only the master/system database should be created automatically if one is not located in that directory. A sqlite3_create function as well as a CREATE DATABASE command would create a user database in the same directory as the master/system database by default as the system database would contain a list of all user database that have been created under that system database. Once a database has been created, a USE <dbname> command would open that database if it is found in the master/system database and make this the current database. The DETACH command could then delete the user database link into the master/system database and this user database would then be free to ATTACH to another master/system database. Once this functionality is implemented it should not be hard to implement a sqlite_users table in the master/system database to holder user information so the GRANT/REVOKE command could be implemented against any user database listed in the master/system database. All of the above is based on the simple command of creating a database at the SQL language level. Many other enhancements to the SQL language could/should be implemented and I would gladly make more suggestions if any other current users of SQLite feel that this would be a good step forward B.Thomas -----Original Message----- From: D. Richard Hipp [mailto:[EMAIL PROTECTED] Sent: Wednesday, April 07, 2004 9:22 AM To: [EMAIL PROTECTED] Subject: [sqlite] A proposal for SQLite version 3.0 A design proposal for SQLite version 3.0 can be found at: http://www.sqlite.org/prop2.html Feedback from the user community is strongly encouraged. An executive summary of the proposed changes follows: * Support for UTF-16 * Better BLOB support * User-defined collating sequences (for better internationalization support) * Smaller and faster than 2.8.13. The plan is to continue to support the 2.8.X series indefinately and in parallel to the 3.X series. But the only changes to 2.8.X going forward will be bug fixes. New features will go into 3.X. Beta releases of version 3.X are expected within a few months. I do not have much experience with UTF-16 and am expecially interested in feedback on that area of the design. -- D. Richard Hipp -- [EMAIL PROTECTED] -- 704.948.4565 --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] ------------------------------------------------------------ This e-mail may be privileged and/or confidential, and the sender does not waive any related rights and obligations. Any distribution, use or copying of this e-mail or the information it contains by other than an intended recipient is unauthorized. If you received this e-mail in error, please advise me (by return e-mail or otherwise) immediately. Ce courrier électronique est confidentiel et protégé. L'expéditeur ne renonce pas aux droits et obligations qui s'y rapportent. Toute diffusion, utilisation ou copie de ce message ou des renseignements qu'il contient par une personne autre que le (les) destinataire(s) désigné(s) est interdite. Si vous recevez ce courrier électronique par erreur, veuillez m'en aviser immédiatement, par retour de courrier électronique ou par un autre moyen. ============================================================