Author: wyoung
Date: Tue Mar 21 21:09:31 2006
New Revision: 1267

URL: http://svn.gna.org/viewcvs/mysqlpp?rev=1267&view=rev
Log:
Extracted v3.0 feature set from "Future Features" section, and rewrote a
few of the items with that new plan in mind.

Modified:
    branches/v2.1-bakefile/Wishlist

Modified: branches/v2.1-bakefile/Wishlist
URL: 
http://svn.gna.org/viewcvs/mysqlpp/branches/v2.1-bakefile/Wishlist?rev=1267&r1=1266&r2=1267&view=diff
==============================================================================
--- branches/v2.1-bakefile/Wishlist (original)
+++ branches/v2.1-bakefile/Wishlist Tue Mar 21 21:09:31 2006
@@ -136,44 +136,38 @@
        o Add Chris Frey's packarray class?
 
 
-Future Features
----------------
-
-       These changes are planned for versions after v2.1.  If you
-       need one of these changes to happen on some particular
-       schedule, the best way to ensure it is to start coding and
-       provide a patch!
-
-
+v3.0 Plan
+---------
+
+       Version 3.0 is primarily for those changes that will break
+       the ABI.  (i.e. removing functions, changing function
+       signatures, etc.)  This plan is very tenuous.  Some of this
+       could slip to v4.0.
+
+       o Change the unsigned int overloads for operator[] on
+         const_subscript_iterator and its subclasses from unsigned
+         int to a plain int.  This should fix the ambiguous overload
+         problems, such as with row[0].
+
+         See the following threads for reference:
+             http://lists.mysql.com/plusplus/4947
+             http://lists.mysql.com/plusplus/4952
+             http://lists.mysql.com/plusplus/4960
+       
        o Several MySQL++ functions wrap the MySQL C API too literally:
          they indicate success by returning 0 instead of true,
-         as most other wrapper functions do.  Fixing this won't
-         necessarily break the ABI, but it should wait for v3.x
-         because it could silently break programs.
-
-       o Create adaptors for std::bitset, for storing binary data in a
-         MySQL table.  Make two options available, one for storing
-         the return from bitset::to_ulong() in an UNSIGNED INTEGER
-         column, and another for storing a larger set of bits in a
-         more flexible way, perhaps as a BLOB.
+         as most other wrapper functions do.
 
        o Apply Waba's patch allowing Null<T> fields in SSQLSes:
          http://lists.mysql.com/plusplus/5433
 
-       o Row object currently depends on the associated ResUse object
-         to stick around through all calls to .at(), because it needs
-         the list of field types in the result set to construct
-         ColData objects.  This means it's not possible to store
-         the result of several queries before accessing the data.
-         Currently, this is just a documented limitation, but it
-         would be nice if there were a clean way to avoid this.
-         Obviously you could just copy the type list when constructing
-         the Row object, but that seems pointlessly inefficient.
-
-       o Define operator<< for Fields, Row, ResUse, etc.  In other
-         words, there should be a way to get a user-readable version
-         of received data without a lot of code.  Perhaps use a CSV
-         output format, or a mysql(1) one (ASCII grid).
+       o Deprecate sql_create_basic_*  They have less functionality
+         and they're no easier to use than sql_create and friends.
+
+       o Consider whether some of the current boilerplate can be
+         made into a base class that all SSQLSes derive from.  Some
+         template functions like Query::insert<T> might become regular
+         member functions, taking a reference to the SSQLS base class.
 
        o Abstract all uses of MySQL C API functions into a database
          driver class with a generic interface.  This is a step
@@ -202,6 +196,36 @@
          server types.  Imagine a program for importing data from
          PostgreSQL and loading it into a MySQL table, for instance.
 
+
+
+Future Features
+---------------
+
+       These changes are not assigned to any particular version.
+       They could happen at any time.  If you want one to appear at
+       some definite date, get coding and provide a patch!
+
+       o Create adaptors for std::bitset, for storing binary data in a
+         MySQL table.  Make two options available, one for storing
+         the return from bitset::to_ulong() in an UNSIGNED INTEGER
+         column, and another for storing a larger set of bits in a
+         more flexible way, perhaps as a BLOB.
+
+       o Row object currently depends on the associated ResUse object
+         to stick around through all calls to .at(), because it needs
+         the list of field types in the result set to construct
+         ColData objects.  This means it's not possible to store
+         the result of several queries before accessing the data.
+         Currently, this is just a documented limitation, but it
+         would be nice if there were a clean way to avoid this.
+         Obviously you could just copy the type list when constructing
+         the Row object, but that seems pointlessly inefficient.
+
+       o Define operator<< for Fields, Row, ResUse, etc.  In other
+         words, there should be a way to get a user-readable version
+         of received data without a lot of code.  Perhaps use a CSV
+         output format, or a mysql(1) one (ASCII grid).
+
        o manip.cpp uses mysql_escape_string(), which doesn't take the
          selected database's character set into account.  To do that,
          you must use mysql_real_escape_string(), which differs
@@ -229,20 +253,6 @@
          object may be able to look up a suitable Connection object
          for the manipulators.
 
-       o Deprecate sql_create_basic_* ? They have less functionality
-         and they're no easier to use than sql_create and friends,
-         so why bother with them?  I suppose the code generated
-         is a bit smaller, but *really*....  Only possible saving
-         grace is if BC++ can compile them due to the macro code
-         being shorter.  They also don't have the static members,
-         mentioned in the previous item.
-
-       o Consider whether some of the current boilerplate can be
-         made into a base class that all SSQLSes derive from.
-         This may have implications for some templates, like
-         Query::insert<T>...they might become regular member
-         functions, taking a reference to the base class.
-
        o MySQL++ handles automatic quoting and escaping differently
          for cout and cerr than for Query streams.  This should
          probably be simplified so that automatic quoting is only
@@ -270,17 +280,6 @@
          values.  This could potentially break a lot of
          infrastructure, though, so do it only with care.
 
-       o Fix the row[0] ambiguity problem.  This stems from the fact
-         that 0 is an int type, but can fit either of the unsigned int
-         or const char* argument types from operator[].
-         See the following threads for reference:
-             http://lists.mysql.com/plusplus/4947
-             http://lists.mysql.com/plusplus/4952
-             http://lists.mysql.com/plusplus/4960
-         The ideal way to fix it for v3.0 is to make
-         const_subscript_container's SizeType an int instead of unsigned int,
-         but this has implications for matching the C API.
-
 
 Bug Fix/Maintenance Items
 -------------------------


_______________________________________________
Mysqlpp-commits mailing list
[email protected]
https://mail.gna.org/listinfo/mysqlpp-commits

Reply via email to