0
0
mirror of https://github.com/rbock/sqlpp11.git synced 2024-11-16 12:51:13 +08:00
Commit Graph

303 Commits

Author SHA1 Message Date
rbock
3fb6c6c246 SelectTest compiles again 2014-06-02 06:40:22 +02:00
rbock
b00fe51fed Adjusted remaining select parts 2014-05-30 13:43:59 +02:00
rbock
98bb9a7db7 Added policies into members
What a fight...
2014-05-30 12:48:51 +02:00
rbock
408e96af4a Using _member_t to have variadic named members in statements 2014-05-30 10:40:46 +02:00
rbock
76fc2fb397 Moved select-specific stuff into select_column_list
This is a major step towards a generic statements and generic statement
policies.
2014-05-27 18:15:37 +02:00
rbock
a5457e93f7 Started to move statement-specific methods into the result provider classes
First method is: select_t::as()
2014-05-27 11:20:03 +02:00
rbock
d11f529bd8 Minor cleanup. 2014-05-26 07:42:59 +02:00
rbock
c13d514e95 Adjusted update to be variadic 2014-05-23 21:42:27 +02:00
rbock
2a215905fd Migrated remove to being variadic 2014-05-23 20:36:13 +02:00
rbock
22e1e7c531 Migrated insert to be truly variadic 2014-05-22 22:53:08 +02:00
rbock
c4a02d931c SelectTypeTests compile again! 2014-05-20 21:22:55 +02:00
rbock
c81a7d33ae Cleanup 2014-05-20 08:50:55 +02:00
rbock
6d91cf2163 select is now really a variadic template
It is getting ready for customization to reflect vendor specific
statement parts, e.g. order by in update and delete for mysql.
2014-05-19 23:24:41 +02:00
rbock
15e8ca742c A step towards turning select into a really variadic template 2014-05-19 22:54:47 +02:00
rbock
569f0ff2eb Wrote down remaining steps for next release 2014-05-19 08:01:14 +02:00
rbock
bfd13c6743 Determining column_list in a more generic way.
By finding the last parameter which is a return value.
2014-05-19 07:51:24 +02:00
rbock
e39444b0f7 Added tags missing and return_value
missing indicates that a statement part has yet to be added (e.g.
columns in a select).

return_value indicates that a statement part can be used as a return
value.
2014-05-19 06:42:45 +02:00
rbock
f314c6d070 Added recursive_traits to select 2014-05-16 20:06:20 +02:00
rbock
6972758931 Added extra_tables to recursive_traits 2014-05-16 09:33:48 +02:00
rbock
5f4a88c7ce Function tests compile again 2014-05-16 09:18:08 +02:00
rbock
1d905e1db5 Ok, the first few lines of test code compile again. 2014-05-15 23:47:16 +02:00
rbock
d062c1a0d8 Started to rewrite traits and recursive traits
traits are shorter and easier to identify by using tags in a variadic
template

recursive traits can be automatically derived, which makes it much
easier to add new traits to be handed through the expression tree.
2014-05-15 08:00:03 +02:00
rbock
57239d10ed Rewrote result_row implementation to be non-recursive
Cool. This is so much easier to understand now!
2014-05-07 23:56:12 +02:00
rbock
bcdcf7fa64 Added column_index_sequence
This is not necessarily sequential because there might be multi_columns.
2014-05-07 23:54:37 +02:00
rbock
d831f98c9a Made parameter_list's bind non-recursive 2014-05-07 18:51:18 +02:00
rbock
b9133cf3a1 Used index_sequence to get rid of recursion in interpret_tuple.
Wonderful stuff, shaped after code samples from cppreference and
stackoverflow.
2014-05-06 22:41:19 +02:00
rbock
f57ba13955 Added link to boost mailing list
This where I presented the idea for all_t. According to Louis Dionne,
the fastest implementation around :-)
2014-05-06 22:38:30 +02:00
rbock
2124005bd8 Added index_sequence (until it can be used with C++14) 2014-05-06 22:20:24 +02:00
rbock
4c3e73f819 Minor cleanup 2014-05-01 17:41:51 +02:00
rbock
331353022a Rewrote all_t to use bool arguments instead of predicate and classes 2014-05-01 17:34:47 +02:00
rbock
2452f224d4 Rewrote any_t to take bools instead of predicate and classes 2014-05-01 17:12:41 +02:00
rbock
c033feb60f Replaced all_t/any_t by MUCH more performant versions 2014-05-01 14:08:48 +02:00
rbock
adc3545ca1 Fix in insert's add_set error handling 2014-04-24 14:09:33 +02:00
rbock
eef974478c Fixed a few missing types 2014-04-22 22:39:25 +02:00
rbock
f47ef75c24 Added a few checks to insert, update and remove 2014-04-22 22:21:44 +02:00
rbock
d342973ef4 Added check to prevent add_column to use a column name known in the static part 2014-04-22 21:41:53 +02:00
rbock
8f16ded277 Allow columns() method to use all_of_t as well 2014-04-22 21:30:31 +02:00
rbock
0ffd93108b Added a table consistency checks to several dynamic methods 2014-04-22 20:46:32 +02:00
rbock
1f3e611fdf Added table checks to add_column and added add_column_ntc 2014-04-21 11:49:26 +02:00
rbock
815c061979 Added extra_tables to select.
With this method you can indicate additional tables that might be added
via add_from(). These tables are considered in the add_column, add
where, etc methods.
2014-04-21 10:59:29 +02:00
rbock
f4ec88c83d Improved checks for selects being usable as value or table 2014-04-18 19:59:35 +02:00
rbock
bbae5e89e9 Improved decision whether a select is a value or not 2014-04-12 08:22:46 +02:00
rbock
cffc85879a Calculate the tables required by a sub-select 2014-04-11 21:12:39 +02:00
rbock
207310effe Added parameter lists to group_by and order_by 2014-04-11 18:23:20 +02:00
rbock
68f929e041 Removed a bunch of superfluous functions.
Dispatching made some emplace_back instances obsolete.
2014-04-11 08:58:28 +02:00
rbock
abb80e3a91 Migrated insert to inheritance model 2014-04-10 22:44:38 +02:00
rbock
7e78c0d878 Migrated update to inheritance model 2014-04-10 21:20:37 +02:00
rbock
d2b59c0f59 Some cleanup 2014-04-10 20:20:59 +02:00
rbock
7f94002bec Migrated remove to use inherited methods 2014-04-10 18:59:05 +02:00
rbock
bc5ffc1492 Added several call dispatches to reduce compiler spew in case of errors 2014-04-10 16:09:54 +02:00
rbock
ad5584e52d Cleaned up a bit... 2014-04-09 20:54:28 +02:00
rbock
db0bbd6e3f Moved select_colum_list methods to the respective classes 2014-04-09 08:50:34 +02:00
rbock
18d244dd9f Moved from-methods to from-classes 2014-04-09 07:25:24 +02:00
rbock
5e0c1cff48 Moved flag-methods to select_flag classes 2014-04-08 22:45:19 +02:00
rbock
7af13937bf Moved group_by-methods to group_by classes 2014-04-08 22:26:45 +02:00
rbock
a541d8e187 Moved having-methods to having-classes 2014-04-08 22:18:28 +02:00
rbock
eb9eab369a Moved order_by-methods to order_by classes 2014-04-08 22:02:24 +02:00
rbock
f2fc4f73f6 Move offset methods into offset classes 2014-04-08 21:49:37 +02:00
rbock
4727de831f Moved limit-methods to limit classes 2014-04-08 21:33:38 +02:00
rbock
c595353286 Moved where-methods to where-classes. 2014-04-08 20:59:45 +02:00
rbock
6737bf901d Added a bunch of table tests to select
And some hints regarding additional tests and how to turn them of for
subselects
2014-04-07 22:02:08 +02:00
rbock
dba5c992ed Added _table_set to select_column_list.h 2014-03-28 18:10:58 +01:00
rbock
3f1460cd2e Streamlined basic value types 2014-03-28 18:09:21 +01:00
rbock
bef4d0874b Updates copyright year 2014-03-27 16:43:36 +01:00
rbock
c0595aa6f2 Fixed compile-error for parameter
(need to do the same for other value types, too)
2014-03-27 09:25:35 +01:00
rbock
1a347048df Migrated remove and update to using arg_selector 2014-03-27 08:37:05 +01:00
rbock
1a39d31b3e Using arg_selector for select 2014-03-26 21:11:40 +01:00
rbock
6c4520a632 Using detail::arg_select to reduce number of constructors 2014-03-26 21:03:29 +01:00
rbock
1ffa6e25ba Added an argument selector
It returns the "correct" argument out of two.
2014-03-26 21:02:22 +01:00
rbock
1c95406ced Improved error messages for incorrect parameters. 2014-03-26 21:01:16 +01:00
rbock
a38a9d6f65 Made a bunch of compile errors easier to read
Fixed a few bugs in the process, too.
Probably also created a few, need better checks for resulting
statements.
2014-03-23 20:54:44 +01:00
rbock
555aba3f14 Rewrote type-set operations to look more like free functions 2014-03-19 18:59:39 +01:00
rbock
82dc280b1b Added executed select tests 2014-03-18 08:28:17 +01:00
rbock
1824f9cde0 Changed NULL handling in results.
If the column or the connector indicates that NULL corresponds to a
trivial value, then the trivial value is returned. Otherwise, an
assert fails or an exception is thrown, depending on the preferences of
the connector.
2014-03-13 08:52:22 +01:00
rbock
78d2d9e67a Renamed tvin_wrap to maybe_tvin
Easier to read
2014-03-11 18:46:53 +01:00
rbock
6cffdb6428 Added is_trivial_value_is_null interpretation to assignment 2014-03-07 08:53:32 +01:00
rbock
67f1b09acb Added prepare_select to MockDb. 2014-02-21 09:43:23 +01:00
rbock
8c8b95d14e Added template parameter Db to result_entry 2014-02-21 07:24:07 +01:00
rbock
b7935b61d5 Added some (no-op) statement executions 2014-02-21 06:02:49 +01:00
rbock
3bbe343a77 Added a better MockDb that can execute statements
Currently all executions are no-ops, but it will be rather simple to
yield select results too (to be configured at runtime).
2014-02-20 09:24:06 +01:00
rbock
abf4bb8e9a Added serializer to interpreter
The serializer has partial specializations for all templates. It is a
good basis if the connector/database requires strings close to the
standard.

The interpreter is unspecialized (and uses a static assert to say so).
It is a good basis if the connector/database requires a different
interpretation, e.g. re-writing the expression tree.

The interpretable_t implements three methods for interpretation:
serializing with the sqlpp::serializer_context, serializing with the
database's serialization context and interpretation with the database's
interpretation context.
2014-02-18 17:45:08 +01:00
rbock
26f322b86a Expressed equal_to, not_equal_to, logical_not as binary/unary expressions 2014-02-16 19:32:43 +01:00
rbock
1d5ee2068d Fixed a bunch of bugs found while adjusting the mysql connector 2014-02-16 13:16:09 +01:00
rbock
8b37626b89 Added uniqueness constraint to type_set, plus minor cleanup 2014-02-16 12:43:09 +01:00
rbock
61a4797d0b Simplified syntax for multi_columns a lot
Instead of

multi_column(alias, columns...)

it is now

multi_column(columns...).as(alias)

Also, you can now write:

all_of(table).as(alias)
2014-02-13 10:07:51 +01:00
rbock
9e8979c6f0 Fixed a bunch of small errors and shorted compile error messages 2014-02-13 08:44:09 +01:00
rbock
fb092583cc Made wrong_t<...> a true std::false_type again.
I am sure this would shoot me in the foot some day otherwise
2014-02-11 10:17:02 +01:00
rbock
7c928ae6d0 Added table sets to several more expressions 2014-02-10 19:55:48 +01:00
rbock
54687c5e69 Added a bunch of static asserts to prevent misuse of insert and update
There are quite a few more to be inserted
2014-02-10 17:56:16 +01:00
rbock
e4c7b5235f Added several checks for correct types in insert columns/values 2014-02-10 09:46:31 +01:00
rbock
82bcd63efd Removed the dreaded crtp_wrapper and the policy_wrapper 2014-02-09 23:45:17 +01:00
rbock
22c43358f2 All statements back to composite design
The point is that even though the CRTP code looked nice, it was too hard
to comprehend.
2014-02-09 23:30:30 +01:00
rbock
cc76820870 Migrated insert and remove back to composite design 2014-02-09 18:14:52 +01:00
rbock
ae2f1948ac Added checks to prevent non-matching columns from being inserted 2014-02-09 15:06:42 +01:00
rbock
61ed1d9f37 Corrected inconsistency in select value_type 2014-02-08 23:48:35 +01:00
rbock
88fc0959b5 Added value type back to select 2014-02-08 22:50:26 +01:00
rbock
3c6e7cb89a Fixed a bunch of smaller migration errors 2014-02-08 22:24:05 +01:00
rbock
68750aac80 Refactored insert to use policies
Much cleaner now.
2014-02-08 21:06:23 +01:00
rbock
5b67061fca Fixed multi_column to handle all_of again 2014-02-08 17:12:40 +01:00
rbock
b82a0295cf Fixed all_of use in select 2014-02-08 16:29:21 +01:00