mirror of
https://github.com/rbock/sqlpp11.git
synced 2024-11-15 20:31:16 +08:00
Add wishlist.md
This commit is contained in:
parent
7f29a0b126
commit
5f5d611703
70
wishlist.md
Normal file
70
wishlist.md
Normal file
@ -0,0 +1,70 @@
|
||||
If you want to help with the development of the library, you might want to consider one of these items:
|
||||
|
||||
# Better documentation
|
||||
The documentation in the Wiki is incomplete and outdated. It is also not part of source control, which makes it a bit harder to contribute.
|
||||
It might make sense to write a couple of markdown files here.
|
||||
|
||||
Throw in chapters of how to add features and how to write connector libraries.
|
||||
|
||||
## Better tests and examples
|
||||
Many of the current tests were born when the library was in infant state. Often they test implementation details. And they often just print stuff, instead of checking said stuff.
|
||||
|
||||
# Connectors
|
||||
## Merge stable connectors into sqlpp11
|
||||
Having all connector libraries in place, makes maintenance considerably simpler, see #174.
|
||||
It would also reduce the cognitive overhead for newcomers.
|
||||
|
||||
## New connectors
|
||||
There are a couple of connector libraries already. Here are some that have been requested in the past
|
||||
|
||||
- Sybase
|
||||
- Oracle
|
||||
- SQL Server
|
||||
- Google Spanner
|
||||
|
||||
## More special functions and types for connectors
|
||||
GROUP CONCAT or JSON support for mysql, for instance
|
||||
INSERT OR UPDATE for postgresl and mysql
|
||||
INSERT INTO ... SELECT ... for postgresql
|
||||
CREATE TABLE for all of them, including PPGEN
|
||||
|
||||
Exception types that carry more specific error information, e.g. the native error code, see #227
|
||||
|
||||
Find a way to handle column names that are keywords in the vendor's dialect, see #199
|
||||
|
||||
Handle specific data types, including JSON for the connectors.
|
||||
|
||||
More test cases for DDL files.
|
||||
|
||||
# EDSL features
|
||||
Multi-line insert in prepared statements, see #68
|
||||
|
||||
## optional std::optional support
|
||||
Instead of sqlpp::value_or_null, std::optional would be nice, see #238
|
||||
|
||||
## Converter to and from SQL to C++ structs, to allow for more ORM like code
|
||||
struct A;
|
||||
insert_into(tab).set(A{});
|
||||
update(tab).set(A{});
|
||||
for (const auto& a : db(select(A{}).from(tab).unconditionally()))
|
||||
{
|
||||
// ...
|
||||
}
|
||||
|
||||
# Runtime improvements
|
||||
## Connection pools and caching interface
|
||||
In order to support high load scenarios,
|
||||
- connection pools (to avoid creating and destroying connections)
|
||||
- caching (hash the query and answer it from the cache for some time), see #86
|
||||
|
||||
## Async support
|
||||
Obtain results in an asynchronous fashion, see #35, for instance.
|
||||
|
||||
# Compile time improvements
|
||||
## Simplify code
|
||||
See Seventeenification talk. Some of the simplifications can be ported back easily.
|
||||
|
||||
## Suppress export of symbols
|
||||
Some compilers tend to export all the generated symbols, which is a bit annoying in case of template-heavy libraries like sqlpp11 (leads to larger files and longer compile/link/startup times, I believe).
|
||||
There are ways to suppress this in most compilers, afaik.
|
||||
|
Loading…
Reference in New Issue
Block a user