Author: wyoung
Date: Tue Oct 23 11:12:07 2007
New Revision: 1778
URL: http://svn.gna.org/viewcvs/mysqlpp?rev=1778&view=rev
Log:
Demoted several Wishlist items to the "maybe" section. Need to get this
thing released....
Modified:
trunk/Wishlist
Modified: trunk/Wishlist
URL:
http://svn.gna.org/viewcvs/mysqlpp/trunk/Wishlist?rev=1778&r1=1777&r2=1778&view=diff
==============================================================================
--- trunk/Wishlist (original)
+++ trunk/Wishlist Tue Oct 23 11:12:07 2007
@@ -31,30 +31,6 @@
o Add multithreaded examples to test above features and the new
ConnectionPool class? They'd have to be platform-specific...
-
- o SSQLS v2:
-
- - Switch from C macros to a DSL that is translated to .cpp and
- .h files by a tool built along with MySQL++ library.
-
- - Add features to that tool to write SSQLSv2 declaration files
- from existing schemas extracted from CREATE TABLE statements,
- from running databases, and from C++ files containing old
- SSQLS v1 declarations.
-
- - Add table creation ability to SSQLS. It has the schema...
-
- - Decouple SSQLS field order from MYSQL_ROW field order. We can
- use field names to match up assigments, allowing you to have
- just one SSQLS definition, and have it cope no matter what
- subset of the table you query. This will be slower than the
- current method, but SSQLS (and MySQL++ in general for that
- matter) isn't about speed.
-
- - 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 Rework elment access in subscript_iterator derivatives:
@@ -95,6 +71,80 @@
o Apply Waba's patch allowing Null<T> fields in SSQLSes:
http://lists.mysql.com/plusplus/5433
+
+ o Refactor option mechanism in Connection, in several steps:
+
+ - Create new optionlist module, initially empty. Each step below
+ moves code and declarations into this module.
+
+ - Replace OptionInfo struct, OptionArgType enum, and Option
+ enum with a class hierarchy: totally abstract Option interface
+ at the top level, BoolOption, IntOption, and StringOption at
+ second level. Each second-level class is subclassed once
+ for each of the options currently defined in Options enum.
+ This binds the legal option argument types with the options
+ themselves, instead of requiring a lookup table to match enum
+ values to types. OptionList then becomes a list of Option*.
+
+ - Create OptionSetter class as a base class for Connection. It
+ contains the actual option list object, provides the public
+ interface to that list, and possibly a callback mechanism for
+ Connection to override to give the Option objects the access
+ they need to actually implement the option setting operation.
+ (They need access to Connection::mysql_, for example.)
+
+ - Add new Option subclass SSLOption, and reimplement
+ Connection::enable_ssl() in terms of it. The success of this
+ will prove the value of an extensible option type system.
+
+ o Some field_list() functions use the do_nothing manipulator,
+ while others use the quote manipulator. Need to pick one.
+ In the vast majority of cases, quoting won't be necessary, so
+ make that the default. But, it should be possible to turn it
+ on, if needed. If all uses of quoting are in template code,
+ this can be a #define, allowing different programs built on
+ the same system to get different quoting rules. Otherwise,
+ it will probably have to be a configure script flag, which will
+ "burn" the choice into the built binary.
+
+ o Query::preview(void) should not crash when query string is
+ a parsed template. It's probably running off the end of the
+ default argument list, or trying to dereference a null pointer.
+
+ o Add user-settable floating-point comparison precisions:
+
+ http://lists.mysql.com/plusplus/3984
+
+
+v3.0 "Maybe" Stuff
+------------------
+ This is stuff that would be nice to have, but it wouldn't be a
+ good idea to bet on seeing it in v3.0. If you really want some
+ of this, best to just get coding and provide a patch!
+
+ o SSQLS v2:
+
+ - Switch from C macros to a DSL that is translated to .cpp and
+ .h files by a tool built along with MySQL++ library.
+
+ - Add features to that tool to write SSQLSv2 declaration files
+ from existing schemas extracted from CREATE TABLE statements,
+ from running databases, and from C++ files containing old
+ SSQLS v1 declarations.
+
+ - Add table creation ability to SSQLS. It has the schema...
+
+ - Decouple SSQLS field order from MYSQL_ROW field order. We can
+ use field names to match up assigments, allowing you to have
+ just one SSQLS definition, and have it cope no matter what
+ subset of the table you query. This will be slower than the
+ current method, but SSQLS (and MySQL++ in general for that
+ matter) isn't about speed.
+
+ - 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 manip.cpp uses mysql_escape_string(), which doesn't take the
selected database's character set into account. To do that, you
@@ -122,56 +172,6 @@
will pop out of the database driver class idea. The driver
object may be able to look up a suitable Connection object
for the manipulators.
-
- o Refactor option mechanism in Connection, in several steps:
-
- - Create new optionlist module, initially empty. Each step below
- moves code and declarations into this module.
-
- - Replace OptionInfo struct, OptionArgType enum, and Option
- enum with a class hierarchy: totally abstract Option interface
- at the top level, BoolOption, IntOption, and StringOption at
- second level. Each second-level class is subclassed once
- for each of the options currently defined in Options enum.
- This binds the legal option argument types with the options
- themselves, instead of requiring a lookup table to match enum
- values to types. OptionList then becomes a list of Option*.
-
- - Create OptionSetter class as a base class for Connection. It
- contains the actual option list object, provides the public
- interface to that list, and possibly a callback mechanism for
- Connection to override to give the Option objects the access
- they need to actually implement the option setting operation.
- (They need access to Connection::mysql_, for example.)
-
- - Add new Option subclass SSLOption, and reimplement
- Connection::enable_ssl() in terms of it. The success of this
- will prove the value of an extensible option type system.
-
- o Some field_list() functions use the do_nothing manipulator,
- while others use the quote manipulator. Need to pick one.
- In the vast majority of cases, quoting won't be necessary, so
- make that the default. But, it should be possible to turn it
- on, if needed. If all uses of quoting are in template code,
- this can be a #define, allowing different programs built on
- the same system to get different quoting rules. Otherwise,
- it will probably have to be a configure script flag, which will
- "burn" the choice into the built binary.
-
- o Query::preview(void) should not crash when query string is
- a parsed template. It's probably running off the end of the
- default argument list, or trying to dereference a null pointer.
-
- o Add user-settable floating-point comparison precisions:
-
- http://lists.mysql.com/plusplus/3984
-
-
-v3.0 "Maybe" Stuff
-------------------
- This is stuff that would be nice to have, but it wouldn't be a
- good idea to bet on seeing it in v3.0. If you really want some
- of this, best to just get coding and provide a patch!
o Replace Query::preview() with operator<<, for easy debugging?
If one really wants a std::string, they can still call str(),
_______________________________________________
Mysqlpp-commits mailing list
[email protected]
https://mail.gna.org/listinfo/mysqlpp-commits