0
0
mirror of https://github.com/rbock/sqlpp11.git synced 2024-11-16 04:47:18 +08:00
Commit Graph

552 Commits

Author SHA1 Message Date
rbock
f62891d25f Merged _member and _methods in clauses to _base
This makes statement_t look much nicer and use less inheritance
2014-11-29 11:10:01 +01:00
rbock
375c277402 Fixed bug in select_columns 2014-11-29 09:45:40 +01:00
rbock
7f97f2bbe7 Reduced error messages for 'using' and update list 2014-11-29 09:18:20 +01:00
rbock
f83d77ddb5 Reduced error messages for select_flags 2014-11-28 11:20:27 +01:00
rbock
94be562167 Reduced error messages for select columns.
Due to the some args being selectables and others being tuples of
selectables, this is a bit more complex than the other clauses.
2014-11-28 10:11:01 +01:00
rbock
8d6816be8b Fixed order_by type check 2014-11-28 10:10:34 +01:00
rbock
bf2744d5f7 Reduced error messages for order_by 2014-11-27 23:18:23 +01:00
rbock
36d1a85339 Reduced error messages for insert value lists 2014-11-27 23:11:46 +01:00
rbock
443614a0e7 Reduced compiler error spew dramatically for from and having. 2014-11-27 22:16:12 +01:00
rbock
0e27cd7138 Added serialize checks for dynamically added stuff 2014-11-26 10:02:48 +01:00
rbock
935baebedb Added more specific static asserts for the consistency checks 2014-11-25 21:46:09 +01:00
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