rbock
7ba973d9af
Added prepare_check
2014-11-25 17:56:51 +01:00
rbock
809d42e4a1
Introduced check for serializability
2014-11-25 17:43:55 +01:00
rbock
e1c007287c
Added portable static asserts
2014-11-23 20:06:58 +01:00
rbock
77d737b401
Minor cleanup in type_sets
2014-11-22 21:41:43 +01:00
rbock
cec105f9dd
Fixed compile error for gcc
2014-11-17 19:25:23 +01:00
rbock
3f5c48bfd5
Fixed run_check and prepared_check for custom query and prepared statemtents
2014-11-17 19:20:55 +01:00
rbock
0b1b03fedc
Added missing consistency check structs
2014-11-17 19:13:45 +01:00
rbock
59734b3f51
Moved static asserts for inconsistency errors much closer to call site
2014-11-17 19:05:22 +01:00
rbock
4ef00a03b2
Added central _run/_prepare methods
2014-11-17 15:03:34 +01:00
rbock
6677266bf5
Added free function versions of select_column_list and from
2014-11-17 13:17:10 +01:00
rbock
e2a7cfa252
Moved tuple include
2014-11-17 13:16:31 +01:00
rbock
02acab8e34
Fixed compilation for g++-4.8
2014-11-09 17:03:32 +01:00
rbock
a20ff91c2d
Added missing file
2014-11-09 16:34:48 +01:00
rbock
f6b223138b
Added method to set return type of custom query
2014-11-09 16:26:36 +01:00
rbock
548a601026
Added into() free function
2014-11-09 13:00:17 +01:00
rbock
ba1f200ef1
Added free function where()
2014-11-08 15:21:11 +01:00
rbock
be3292b6ce
Fixed parameter determination and added execution of void statements
2014-11-05 17:50:46 +01:00
rbock
60042c2dd3
Added run and prepare to noop, allowing void custom queries
2014-11-05 07:27:19 +01:00
rbock
ed7f1f1a93
Added missing file
2014-11-04 07:56:26 +01:00
rbock
e79585b165
Can compile (very simple) custom queries and selects
2014-11-03 17:52:02 +01:00
rbock
514ed4139c
First custom query sent to MockDb
2014-10-31 08:28:51 +01:00
rbock
6684ac9ea8
Added first test
2014-10-29 07:34:42 +01:00
rbock
69337fd7ca
Added first draft of custom query
2014-10-27 17:36:33 +01:00
rbock
23d0bc91a1
Make result methods templates of their statement, not their statement's policies
2014-10-27 07:31:37 +01:00
rbock
b3ef68101f
Fixed bug in in() serialization
...
in(select(...)) did have an extra set of braces, which lead to different behaviour.
Thanks to Thomas Marsh for finding the bug
2014-10-03 08:51:27 +02:00
rbock
11950bc0c7
Added static assert to give clearer error message for dynamic_xy
2014-09-29 13:45:29 +02:00
rbock
a4721ff31e
Fixed serialization of multiple dynamic query elements.
2014-09-29 12:05:35 +02:00
rbock
ef0672a97a
Minor cleanup
2014-09-26 16:33:47 +02:00
rbock
7c80a2a6e0
Renamed named_expression to selectable
2014-09-26 09:03:26 +02:00
rbock
6dbdd39ce1
Ensure that expression do not contain aggregate functions
2014-09-17 23:03:51 +02:00
rbock
3cab459077
Added tag to indicate that an expression contains an aggregate function
2014-09-17 22:22:45 +02:00
rbock
10fa8693cc
Minor fix (less error spew for 'like')
2014-09-06 04:16:22 +02:00
rbock
b15fa64c55
Added missing include
2014-09-01 12:08:47 +02:00
rbock
2dcd2918d3
Added operators to the 'like' member_t
2014-08-27 22:53:22 +02:00
rbock
4ac4b1820b
Removed stray sqlpp namespace qualifiers
...
The usage was very inconsistent. Also, I just saw that the current VC++
cannot deal with qualifiers in combination with template aliases
2014-08-27 20:43:09 +02:00
rbock
a514e6bf5e
Minor cleanup
2014-08-27 20:26:01 +02:00
rbock
3dfed5b85c
Added derived_statement_t alias
2014-08-27 20:10:31 +02:00
rbock
7b85b3fb03
Added include for MSVC to understand and and or
2014-08-27 18:33:32 +02:00
rbock
a4429f0f19
Sprinkled in a few const qualifiers
2014-08-27 09:23:07 +02:00
rbock
1d52d59e57
Added a few comments for better orientation
2014-08-26 23:33:05 +02:00
rbock
5ddaaeeac8
Meta function for accessing the lhs and rhs of an expression
2014-08-26 23:32:29 +02:00
rbock
e59dc3862a
An alias for creating a new statement type
2014-08-25 21:22:22 +02:00
rbock
f478e7c8e8
Applied new member_t to remaining places
2014-08-25 18:31:01 +02:00
rbock
61da179143
Minor code cleanup
2014-08-25 08:51:40 +02:00
rbock
2c23769cdf
Moved operator and parameter templates out of value classes, added member template
...
These templates are nicer when used.
2014-08-25 08:43:42 +02:00
rbock
8d8b358092
Removed obsolete tags from value types
2014-08-25 06:05:42 +02:00
rbock
83fd052cf5
Fixed duplicate column detection in insert and update
2014-08-24 12:28:49 +02:00
rbock
fd054d8a5a
Fixed operators += et al
2014-08-22 12:26:48 +02:00
rbock
15c778844b
Added a few missing const qualifiers
2014-08-21 13:21:49 +02:00
rbock
10853abb0a
fixed static_assert message wording
2014-08-21 13:21:27 +02:00
rbock
a9339b54ad
Fixed all_of(alias_table)
...
For real this time, I hope :-)
2014-08-21 13:00:40 +02:00
rbock
4974d13600
Fixed all_of(table_alias)
2014-08-21 11:44:07 +02:00
rbock
2bd8bc9bb7
Merge branch 'release/0.25'
...
Conflicts:
test_constraints/CMakeLists.txt
2014-08-21 10:57:31 +02:00
Johan
73973f0f48
Fix cygwin-gcc and cmake problems
...
Fixed warning in CMake
Fixed problem with tuples creation
Fixed problem of stream copy constructor usage
2014-08-20 21:58:57 +02:00
rbock
e5e97d10b6
Added alias operators to wrapped value operands
2014-08-18 21:10:58 +02:00
rbock
13c1b5d8f3
Fix to make sqlpp11 compile with clang-3.1
2014-08-18 15:09:27 +02:00
rbock
d0d5e94bf1
Added eval function for both strings and expressions.
...
eval wraps whatever you give to it into a select call, sends it to the
database and returns the value as a result field.
2014-08-18 10:46:24 +02:00
rbock
f6ae27b0fe
Made "where" non-mandatory if there are no tables involved.
2014-08-17 20:45:27 +02:00
rbock
f1542507ff
Moved tests for insert_into(t).columns(...) into function
...
This reduces and clarifies error messages a bit.
2014-08-15 18:11:24 +02:00
rbock
e21b38901b
Added static_assert for required_columns in insert
...
This constraint had been dropped by accident when restructuring for
statement_t.
2014-08-15 17:56:13 +02:00
rbock
3484903525
Repaired insert to work with expression values again
2014-08-14 23:47:25 +02:00
rbock
1d98fb0198
Added tvin arguments for parameters
2014-08-12 22:00:59 +02:00
rbock
b52591df58
Added bitwise_and and bitwise_or to integral
2014-08-12 22:00:47 +02:00
rbock
ad1c5f94bb
Made boolean expression more usable
2014-08-12 18:48:50 +02:00
rbock
c0902f8683
Added constraints that insert and update require some value specs
2014-08-11 21:03:55 +02:00
rbock
27649b3af2
Added support for default values and result fields for insert
2014-08-11 19:17:42 +02:00
rbock
34e64b50d6
Added inline keyword to several free non-template functions
2014-08-11 19:11:15 +02:00
rbock
a59d7ed381
Fixed bug in field index calculation for multi_fields
2014-08-09 20:46:40 +02:00
rbock
c9372eff89
Added serialization to MockDb run methods
...
Implicitly increased number of serialization tests.
Fixed serialization for logical_not
2014-08-04 18:24:51 +02:00
rbock
cc512d0955
Fixed text field stream operator
2014-08-03 09:27:20 +02:00
rbock
8b5fc67af6
Added generic boolean_expression
2014-08-02 09:18:01 +02:00
rbock
18dc6b1a03
Added value_or_null method/type
2014-08-01 18:21:23 +02:00
rbock
64c4ba029f
Adjusted usage of wrong_t.
...
I think there was a risk of wrong_t based static_asserts firing, if the
template parameters are used. Anyway, this is shorter.
2014-07-31 09:08:00 +02:00
rbock
88d28d6830
Moved value types out of detail namespace
2014-07-31 08:40:13 +02:00
rbock
c88a1097c2
Added some hints
2014-07-31 08:19:00 +02:00
rbock
ff9a6ff8f0
Added missing result_field.h
2014-07-30 23:10:45 +02:00
rbock
f60f1504b8
Extracted result_field_t from value types.
...
This is a preparation for adding serializer specializations for them
2014-07-30 22:37:07 +02:00
rbock
7c45e8b83f
Removed _name_t from and added alias operators to result field.
...
A result field really is just a value, if you insist on using it as a
select column, give it a name via an alias.
2014-07-30 22:03:11 +02:00
rbock
828106acbd
Moved shared result field code into separate file
2014-07-30 17:56:33 +02:00
rbock
c818e110b6
A few minor fixes and cleanup
2014-07-29 09:14:51 +02:00
rbock
b1f1de8a08
Allowing result fields to be used as arguments for queries
2014-07-29 08:57:55 +02:00
rbock
4be53d9933
Fixed a error in type set intersect calculation and in tracking outer tables
2014-07-28 21:36:53 +02:00
rbock
159b4c7152
Fixed error in determining can_be_null for joins
2014-07-28 21:14:20 +02:00
rbock
42179cbc87
Cleaned up traits a bit more
2014-07-28 07:41:59 +02:00
rbock
dd33b8096e
Streamlined type traits a bit
2014-07-28 06:54:54 +02:00
rbock
643aab222e
Aligned structure of connector traits with other traits
2014-07-28 06:13:30 +02:00
rbock
6d851f17ff
Added testability and tests for can_be_null and null_is_trivial in result entries
2014-07-27 19:40:31 +02:00
rbock
12f723d021
Fixed type error in join
2014-07-26 18:06:37 +02:00
rbock
c3d758c776
Renamed _result_entry_t to _result_field_t
2014-07-25 15:33:26 +02:00
rbock
4bf0db5611
Renamed field to field_spec
2014-07-25 15:20:19 +02:00
rbock
e5f055ac19
Using column's can_be_null and connector's enforce_validity
2014-07-25 01:01:42 +02:00
rbock
e21fdb4829
Transport null_is_trivial_value and can_be_null to result fields
2014-07-24 23:02:08 +02:00
rbock
6f056ced8a
Transport can_be_null into subselect used as a result column
2014-07-24 17:36:56 +02:00
rbock
556023f921
Added a few reminders which expressions can be null as well
2014-07-24 09:47:30 +02:00
rbock
37a550a489
Use potential outer table dependencies in pseudo tables
...
The dependency indicates whether a column of a pseudo table can be null.
2014-07-24 09:29:50 +02:00
rbock
b73133d47a
Follow outer tables through the statement.
...
This is important to determine which result column of a select can be
NULL.
2014-07-24 08:57:35 +02:00
rbock
d1e8a0153e
Transport can_be_null into select pseudo table
2014-07-23 22:57:11 +02:00
rbock
9c15b45ac4
Made can_be_null a recursive trait
2014-07-23 18:26:13 +02:00
rbock
80f09dc003
Use _traits in column specs
2014-07-23 18:06:33 +02:00
rbock
88062625bf
Make sure that tvin is used in the allowed places only
2014-07-22 08:51:17 +02:00
rbock
0f29e255d1
Unified tvin/trivial_value_is_null usage for =,==,!= and !
2014-07-21 09:53:17 +02:00
rbock
3506182ccf
Fixed tvin-handling in assignment
2014-07-21 07:41:34 +02:00
rbock
d8ae9dc778
Fixed type trait code
2014-07-21 07:40:07 +02:00
rbock
69fdaedc0d
Adjusted type_traits to compile with clang-3.1, too
...
The new version is cleaner anyway, since it can be used with any type
now.
2014-07-21 05:33:45 +02:00
rbock
8ed0042b67
Added blob (currently synonym of text)
2014-07-14 18:17:53 +02:00
rbock
abb97b623b
Removed remainder of char_result_row interface from fields
2014-06-29 12:52:21 +02:00
rbock
2f20f7ef82
Renamed bind and (in)validate to indicate their usage (vendor only)
2014-06-29 11:35:51 +02:00
rbock
0f9c1dbfb2
Added check to prevent multicolumns in sub selects
2014-06-28 21:05:37 +02:00
rbock
778b0d8816
Added -Wall, took care of a bunch of compiler warnings
2014-06-28 14:41:35 +02:00
rbock
c2d00b14ec
Removed char_result_row from result_row
2014-06-27 18:40:57 +02:00
rbock
620f9bef29
Fixed dynamic rows for bind_results
2014-06-27 18:11:12 +02:00
rbock
ff4d93049c
removed char_result_row
2014-06-27 17:41:43 +02:00
rbock
bc99c2b240
Added missing file
2014-06-26 22:06:54 +02:00
rbock
1f20d244c7
Added improved check for potential name duplicates in from()
2014-06-26 18:56:07 +02:00
rbock
2266787e94
Fixed another few warnings
2014-06-26 14:35:49 +02:00
rbock
e03366202d
Fixed a bunch of warnings
2014-06-26 08:39:08 +02:00
rbock
1267aa252f
Added _check_consistency call to all statement parts
...
For instance, enforce where() to be called
2014-06-24 21:53:25 +02:00
rbock
0b27373314
Adjusted code to work with g++-4.8 as well
2014-06-22 23:37:43 +02:00
rbock
d90b42f52b
Added a minimalistic test for including sqlpp11.h
2014-06-22 16:09:19 +02:00
rbock
35f9dab171
Added missing file
2014-06-22 12:01:17 +02:00
rbock
06d1783d81
Cleaned a bit of messy _run() code.
2014-06-20 18:20:24 +02:00
rbock
1d82cf7f09
Fixed a bunch of bugs that came up when integrating with mySQL again.
...
Thanks Matthijs!
2014-06-20 16:53:52 +02:00
rbock
56e34dbf5e
Shortened template for pseudo_column
2014-06-18 18:20:59 +02:00
rbock
5f927572cf
Took care of a few warnings
2014-06-14 20:25:11 +02:00
rbock
4ce8f2419b
All tests compile again for clang-3.2
2014-06-14 17:57:12 +02:00
rbock
3d26f9a686
Re-animated prepared statements
2014-06-14 17:44:22 +02:00
rbock
ef6c7e0c0d
Removed a few obsolete "typename"
2014-06-14 07:49:43 +02:00
rbock
269f2e7e17
Fixed indentations
2014-06-14 07:45:10 +02:00
rbock
09d220541e
removed namespace vendor
2014-06-14 07:43:27 +02:00
rbock
060d59125c
Moved files from sqlpp11/vendor to sqlpp11
2014-06-13 18:51:51 +02:00
rbock
4d1b60d93a
Cleanup
...
Moved check_consistency call to statement
2014-06-13 09:33:08 +02:00
rbock
f8e0e90477
Fixed serializability of statements
2014-06-09 14:06:04 +02:00
rbock
79aa358624
Added into member for insert.
...
Update and remove will get table lists with more than one table
2014-06-05 08:32:22 +02:00
rbock
067740d24e
InterpretTest compiles again
2014-06-04 18:35:25 +02:00
rbock
d36037472f
Migrated update to generic statement
2014-06-04 09:26:10 +02:00
rbock
c866f31ea5
Turned remove into a generic statement
2014-06-03 09:12:27 +02:00
rbock
8d16b6ab2d
Migrated insert to generic statement
2014-06-02 23:57:21 +02:00
rbock
7e32a0a3ea
Cleaned up minor as() method mess plus some oversights
2014-06-02 07:48:05 +02:00
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
rbock
f7aa56b7dc
Fixed possible dangling references problem
2014-02-08 00:43:20 +01:00
rbock
3a875e794b
More reasonable dynamic limit and offset
2014-02-08 00:35:59 +01:00
rbock
c5ef725106
Removed the dreaded make_expression_tuple and make_flag_tuple
2014-02-07 23:51:21 +01:00
rbock
0a744455ec
basic select methods work again
...
I've let go of the select(flags, columns) monster methods, these are now
separated
2014-02-07 23:43:26 +01:00
rbock
62b828ef8f
Migrated select components to support policy based select
2014-02-07 22:52:02 +01:00
rbock
9c4832df0f
Switched remove to policy based design.
...
A lot of sweating to figure out how to do it, but now it looks MUCH
cleaner and it is probably a lot easier to extend :-)
2014-02-07 21:25:23 +01:00
rbock
417d317a65
Added a bunch of operator interpretations
2014-02-05 10:12:07 +01:00
rbock
7afd34c349
Added a few types/templates to help with expression tree evaluation
2014-02-04 07:32:37 +01:00
rbock
e1f619eecb
Replaced a bunch of make_set_if::size asserts with and_t/or_t
2014-02-02 18:45:21 +01:00
rbock
14c382db59
Added and_t and or_t templates
2014-02-02 18:43:07 +01:00
rbock
d288c65897
Minor code cleanup (set -> type_set)
2014-02-02 14:58:08 +01:00
rbock
28fc5900f2
Added missing overload for prepared statement parameters
2014-02-01 14:28:23 +01:00