rbock
2b8a36aa97
Added support for empty in() and not_in()
...
I wonder why SQL does not have that anyway.
2015-07-05 13:53:38 +02:00
rbock
34376bdd28
Fixed compile error for clang-3.4 and gcc-4.8
2015-07-05 13:40:06 +02:00
rbock
864bd58eff
More functions are now auto-aliased
2015-07-05 11:51:49 +02:00
rbock
bbe933f943
count is the first auto-aliased function
...
If used in an expression, count does not have an alias.
If used as a field in a select, it does have an alias.
2015-07-05 11:08:13 +02:00
rbock
b062f2ade7
Revert "Replaced char[] with char[<sizeof>] to please MSVC 2015"
...
This reverts commit 30a3a6b2ff
.
2015-06-01 22:12:32 +02:00
rbock
0807e57958
Fixed warnings about missing initializers
2015-05-30 16:45:06 +02:00
rbock
8d356f55ce
Fixed warnings about unused parameters
2015-05-30 16:19:23 +02:00
rbock
b472d4e12b
Merge branch 'develop' of https://github.com/rbock/sqlpp11 into develop
2015-05-30 09:20:25 +02:00
rbock
30a3a6b2ff
Replaced char[] with char[<sizeof>] to please MSVC 2015
2015-05-29 20:06:21 +02:00
niXman
07b5ae33c4
fixes & changes to ppgen
2015-05-19 16:44:23 +03:00
niXman
0e86a5a666
suppress the warns about the unused vars
2015-05-19 10:38:34 +03:00
rbock
bcc085f819
Cleaned up concat_t and added concat method
2015-05-05 08:18:39 +02:00
rbock
a915f36b46
Minor fixes
2015-05-01 18:19:00 +02:00
rbock
4fbcf77926
Disallow table alias for insert
2015-05-01 18:18:08 +02:00
rbock
a6a969a4d8
Added schema qualified tables`
2015-04-30 21:32:50 +02:00
rbock
1f841d2b2b
Pacify g++-5.0 (which detected ambiguities)
2015-03-22 12:27:52 +01:00
rbock
cdf86695d1
Fixed a bunch of shadowing warnings issued by g++
...
A bit over the top in some places, I think
2015-03-21 11:41:07 +01:00
rbock
465a8e700c
Fixed serialize check for tvin expressions
2015-03-13 21:47:41 +01:00
rbock
3ca69bf8b8
Updated return types for executing custom queries
2015-03-08 21:06:30 +01:00
rbock
21621f81c8
Added -Wshadow and un-inlined namespace alias
...
Not sure if inlining alias was a good idea to begin with...
2015-03-08 20:19:01 +01:00
rbock
47150e1fdb
Added missing inline to free function
2015-03-08 20:17:10 +01:00
rbock
30834ab9db
Fixed value_list for sets
2015-03-08 20:15:16 +01:00
rbock
6591d38bab
Added table() method for columns.
2015-03-07 09:40:06 +01:00
rbock
028af83fe7
Fixed UNION DISTINCT to not serialize DISTINCT
...
sqlite3 does not support the keyword in UNION, and for others DISTINCT is the default
anywy
2015-03-05 18:01:59 +01:00
rbock
3b2f666b53
Fixed serialization of recursive common table expressions
2015-03-04 07:43:15 +01:00
rbock
8910220b6c
Minor cleanup
2015-02-24 08:09:17 +01:00
rbock
57ceefbd0c
Added missing checks for aggregate functions
2015-02-24 08:02:14 +01:00
rbock
c9401d4b00
Cleaned up requirements for sub-selects as tables
2015-02-17 22:14:05 +01:00
rbock
cc829a8704
Replaced parameter tuple with paramter type vector
2015-02-17 21:39:54 +01:00
rbock
1e9910b12f
Replaced node tuple by node type vector
2015-02-17 08:03:19 +01:00
rbock
436ef67072
Replaced recursive traits with local traits which are evaluated recursively
...
Ok, that sounds weird...
Earlier, each node in the SQL tree had a struct containing all recursive
traits. This is now gone. It only contains a reference to all sub nodes
and its own specific traits.
2015-02-17 07:05:41 +01:00
rbock
97de6fad7f
Adjusted license dates
2015-02-15 19:00:21 +01:00
rbock
437607813c
Table aliases must not use braces for tables but for sub selects
2015-02-15 16:54:03 +01:00
rbock
9e1ecaf15a
Fixed weird compiler crash with gcc-4.8.2
...
I have no idea why this is helping, but it does.
I need to invest some time to simplify the templates so that compilers
aren't as stressed with it.
2015-02-15 16:41:08 +01:00
rbock
80bc0fcf5e
Merge branch 'feature/with_cte' into develop
2015-02-15 16:07:15 +01:00
rbock
da0d47a805
Fixed conditions for using sub select as alias
2015-02-15 16:06:14 +01:00
rbock
a09c79b234
Removed a few stray semicolons
2015-02-15 13:10:39 +01:00
rbock
2c463b2b51
Added missing includes
2015-02-13 16:26:45 +01:00
rbock
18b36bf46a
recursive ctes seem to be basically working
2015-02-12 18:05:19 +01:00
rbock
73097e989f
Mapping ctes to cte_references when used in from, helping with serialization
2015-02-11 19:06:16 +01:00
rbock
a5c8b40b07
Adjust WITH clause to serialize RECURSIVE where required
2015-02-09 18:44:25 +01:00
rbock
f50500ba8b
Fixed a few superflous semicolons
2015-02-09 18:39:03 +01:00
rbock
7e36281e5d
Fixed a few stray semicolons
2015-02-09 07:36:53 +01:00
rbock
c4d77372cf
The first recursive cte compiles
2015-02-08 19:47:33 +01:00
rbock
ee3d803c33
Added a few cte checks, fixed logic of requiring and providing ctes
2015-02-08 18:26:36 +01:00
rbock
b60df812e1
Split union data from union, to be used in ctes, as well
2015-02-08 18:26:00 +01:00
TyRoXx
3cef1a1217
enable -Wpedantic and fix all the warnings
...
Conflicts:
examples/select.cpp
include/sqlpp11/interpret_tuple.h
include/sqlpp11/type_traits.h
2015-02-07 15:07:33 +01:00
rbock
aa9c8dcfce
A few FIXME's regarding remaining stuff for with clauses and ctes
2015-02-07 14:42:29 +01:00
niXman
504bf961a6
fix for previous commit
2015-01-31 01:36:39 +02:00
niXman
2b7d1ad54a
BOOST_PP_TUPLE_POP_FRONT() added & files reorganized
2015-01-31 01:26:18 +02:00
rbock
2adf529445
First with-query compiles
2015-01-29 19:17:24 +01:00
niXman
256060c2d7
The first working implementation
2015-01-28 22:54:57 +02:00
rbock
da9ca73788
First test constructing a cte
2015-01-27 18:28:36 +01:00
rbock
abfde5c9a7
Turned alias into an inline namespace which helps with ADL in cte
2015-01-27 18:27:33 +01:00
rbock
12a0d9d698
cte.h compiles
2015-01-27 08:29:10 +01:00
rbock
4112448b5b
Some ideas
2015-01-19 09:17:21 +01:00
rbock
08de44e8a8
Union works with static results only
2015-01-19 09:16:41 +01:00
rbock
1fb83ed9fa
Consistency < Prepare < Run
...
Consistency: No missing table
Prepare: No missing cte
Run: No parameter
2015-01-19 07:26:04 +01:00
rbock
61b0bd9ff8
Can chain unions
...
And a few more checks
2015-01-15 19:43:56 +01:00
rbock
92e670118a
Started to add common table expressions and 'with'
2015-01-13 21:53:29 +01:00
rbock
8488dae0a7
Added a few compile-time checks for unions
2015-01-11 17:10:36 +01:00
rbock
b4f62a5eb6
Union can be used as pseudo-table, allowing to union unions
2015-01-11 14:02:15 +01:00
rbock
a6932070c3
Added a first version of the union function.
2015-01-10 18:30:29 +01:00
rbock
acba273230
Fixed a problem with sub selects in binary operators
...
There were missing braces for sub selects in expressions like
tab.id == select(max(tab.id)).from(tab).where(true)
2014-12-03 17:21:12 +01:00
rbock
f97dc68428
Fixed missing std::
2014-11-30 20:19:38 +01:00
rbock
74cafe35dd
We now have unique name representations per name
...
Before this, there could be multiple classes representing multiple id
columns. Now there is one class representing ALL the name "id". Very
important for analyzing potential name clashes.
2014-11-30 19:40:34 +01:00
rbock
d34c22ca5a
Simplified serializer a bit
2014-11-29 17:36:09 +01:00
rbock
f02a9ce3d0
Moved logic functions from detail into logic namespace
2014-11-29 14:29:54 +01:00
rbock
9110f6653a
Reduced error messages for several clauses
2014-11-29 14:02:24 +01:00
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
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
rbock
9c75c7b873
Removed a whole lot of unnecessary(?) perfect forwarding.
...
The code is much easier to read, the optimizer should take care of
pretty much everything, AND it copiles even faster without the code
being riddled with std::forward and std::decay
2014-01-30 08:43:55 +01:00
rbock
9bcae0867f
Moved "wrong" template to namespace vendor
2014-01-29 14:28:07 +01:00
rbock
b90eb7192a
Renamed run and prepare methods to _run and _prepare
...
_methods are to be used by vendors
2014-01-29 13:11:11 +01:00
rbock
375dec25f8
Minor code cleanup
2014-01-28 18:03:14 +01:00
rbock
687fe13055
Added constness to char_result_row characters
2014-01-28 06:56:30 +01:00
rbock
25c1cfb399
Cleanup some minor bind issues
2014-01-28 06:50:21 +01:00
rbock
d85fdcd62b
Removed unnecessary header
2014-01-27 18:50:22 +01:00
rbock
05ca005e1b
Fixed bug in text results
...
text results never had a reasonable length
2014-01-27 13:40:52 +01:00
rbock
a9cfe534ef
Fixed serialization of multi-row inserts
2014-01-27 12:48:24 +01:00
rbock
dda4fc2586
Small fix in result row
2014-01-27 12:12:38 +01:00
rbock
471dffebc0
Updated joins and updated columns to work with sqlite3
...
The new behaviour is closer to the standard, I think
2014-01-27 11:47:22 +01:00
rbock
d4d8429947
Added missing include directive
2014-01-26 22:58:38 +01:00
rbock
4869758e35
Renamed query -> statement
2014-01-26 22:39:44 +01:00
rbock
dfcd372611
tvin works with const char*, too
2014-01-26 15:44:44 +01:00
rbock
b0e7395f47
Using assignments in add_values now
...
This makes mistakes much less likely
2014-01-26 15:09:30 +01:00
rbock
5ef5259988
Added columns and add_values to insert for multi row inserts
...
Need to change add_values method to use assignments, though.
2014-01-26 13:24:42 +01:00
rbock
f802300685
Added sqlpp::null and sql::default_value for insert and update
2014-01-25 22:38:16 +01:00
rbock
f443564d62
Minor code cleanup
2014-01-24 00:31:53 +01:00
rbock
019a920739
Added a .where(bool) to choose all or no row
2014-01-22 22:53:23 +01:00
rbock
6e55f8f6cd
Fixed a few bugs found during mysql tests
2014-01-22 18:35:08 +01:00