rbock
d7a29fac97
Cleaning up static asserts for .where(true)
2016-02-27 19:51:52 +01:00
rbock
425e75219c
Removed where(true).
2016-02-26 22:28:11 +01:00
rbock
9b611135ff
Disallow unconditional join (ifdef to get it back)
...
One day, users of the library have to make the switch anyway, why not
today?
2016-02-26 20:00:34 +01:00
rbock
ac2bc0495e
Prevent unconditional joins, and naked bool in where() or boolean expressions
...
- `.from(t1, t2)` produces an unconditional join if you forget to add a condition in the .where()
sqlpp11 therefore now deprecates unconditional joins.
- more often than not, writing something like `where(name == "doe")`, you
meant to write `where(t.name == "doe")`. It is hard to find bugs when
the former expression compiles because you happen to have a variable
`name` in the current scope as well.
sqlpp11 therefore now deprecates `.where(bool)` and disallows
raw bool values boolean expression like `something and bool`
wrap bools in sqlpp::value(), if you REALLY want a bool value here
2016-02-25 07:57:28 +01:00
rbock
d59b34e39c
Moved serialize code to dynamic_select_column_list.h
2016-01-24 15:39:51 +01:00
rbock
e3022a6887
Fixed constructor of result_row.
...
This accepted just any(!) argument.
2016-01-23 22:08:42 +01:00
rbock
6dcdc419c1
Merge branch 'release/0.35'
...
Conflicts:
README.md
2015-12-29 11:03:17 +01:00
rbock
cda1249b69
See what MSVC says in case of an invalid conversion
2015-12-28 18:24:59 +01:00
sliser
292bc8dd28
fixed test_static_asserts
2015-12-28 13:19:17 +03:00
sliser
761b5e53ab
added msvc workaround
...
fixed minor bugs
2015-12-28 12:58:30 +03:00
rbock
820195b303
Turned off is_regular for msvc
2015-12-28 10:39:53 +01:00
rbock
d1cc617ae7
Split dynamic where in a specific one for zero arguments (and the old one)
2015-12-28 10:11:18 +01:00
rbock
6ae63dd0be
replaced value_type_of, too
2015-12-28 09:47:26 +01:00
rbock
db6ea81668
Well, replaced another template alias (is_boolean_t)
2015-12-28 09:39:16 +01:00
rbock
325d64828e
Stop using yet another template alias (contains_aggregate_function_t)
2015-12-28 09:30:02 +01:00
rbock
e364afe38f
Replace is_expression_t<> with detail::is_expression_impl<>::type
2015-12-28 09:18:47 +01:00
rbock
bab5b6d8ee
Merge branch 'develop' of https://github.com/isliser/sqlpp11 into isliser-develop
...
Conflicts:
include/sqlpp11/where.h
2015-12-27 19:57:42 +01:00
sliser
46cb009ba4
added comments regarding msvc bug workarounds
2015-12-27 11:26:29 +03:00
rbock
9a29f41037
Streamlined portable static asserts.
2015-12-25 10:38:13 +01:00
rbock
674af5b215
Simplified consistent_t and portable_static_assert.
2015-12-25 09:59:12 +01:00
rbock
02f4dd1793
Migrated case to portable static assert and added static tests
2015-12-24 21:11:00 +01:00
rbock
899c868f5e
Migrated where to portable assertions, added assertion tests to where() clause.
2015-12-24 15:28:07 +01:00
rbock
37c4f5dc6c
Prevent aggregate functions to be used within where conditions
2015-12-23 20:27:16 +01:00
rbock
b41f1add8c
Made no_value to a more complete value type
...
This allows to select NULL via a case statement (seems to make more
sense than disallowing it).
2015-12-23 16:01:45 +01:00
rbock
3efae18e08
Friendlier error messages for some case-expressions
2015-12-23 14:45:40 +01:00
rbock
0471d732f9
Added CASE expression
2015-12-23 11:50:40 +01:00
rbock
27033a307c
Renamed mus_point into microsecond_point
2015-12-20 13:11:34 +01:00
rbock
62a4dfc4f5
Added optional _post_bind to result fields to allow for conversion in mysql.
2015-12-19 18:19:10 +01:00
rbock
f029e5993b
Allow in() and not_in() to have zero arguments
...
This is then equivalent to in(value_list(some_empty_vector)) and
not_in(value_list(some_empty_vector):
tab.a.in() evaluates to false
tab.a.not_in() evaluates to true
2015-12-19 15:15:04 +01:00
sliser
4e898368fa
fixed gcc build
2015-12-16 09:41:01 +03:00
sliser
a6f506b57f
fixed build for msvs 2015 update 1
2015-12-15 18:20:33 +03:00
rbock
833eeccd61
Added missing includes
2015-12-13 17:54:01 +01:00
rbock
21f587e80d
Merge branch 'feature/re-organize-value-types' into develop
...
Conflicts:
.travis.yml
2015-12-13 17:25:28 +01:00
rbock
e70ab35083
Minor cleanup
2015-12-13 16:20:30 +01:00
rbock
333e55ea6d
Dynamic select did not accept some non-dynamic clauses.
2015-12-11 14:42:28 +01:00
rbock
a815d2d4ef
Migrated remaining types to define return types
2015-11-10 18:52:32 +01:00
rbock
7447363caa
Migrated operators for floating_point
2015-11-09 09:49:49 +01:00
rbock
01d4ff6034
Migrated remaining integral operators
2015-11-09 07:40:21 +01:00
rbock
8ae9966f5d
Started to migrate integral operators.
...
Looks good...
2015-11-08 20:07:22 +01:00
rbock
29bf1529e4
Moved operators back into expression base class
2015-11-08 19:14:49 +01:00
rbock
5556880bb9
Turned a few operators into free functions.
...
This might be problematic since they are not selective enough. In
particular, they even take the result values...
2015-11-08 15:12:40 +01:00
rbock
12f7457775
Added convenience enable_if_t
2015-11-08 11:40:48 +01:00
rbock
45917098de
Made value_type_of more stable and replaced VALUE_TYPE_TRAITS macro
2015-11-01 20:59:07 +01:00
rbock
9b7e32c9bc
Added void_t
2015-11-01 20:58:56 +01:00
rbock
a452438cad
Removed the slightly annoying _tag from data_types
2015-11-01 19:26:49 +01:00
rbock
929a543d8c
Minor cleanup
2015-11-01 11:22:56 +01:00
rbock
3cbeb8b196
Eliminated redundant ValueType parameter from result_field_t
...
Got rid of a bunch of static_asserts checking that the redundant
parameter actually matched.
Also discovered that serveral result_field operator<< specializations
were unnecessary (removed those).
2015-11-01 11:10:33 +01:00
rbock
f9f1186df0
Moved aggregate functions to folder, added can_be_null attributes
...
count cannot be null, all others can if there are no lines to max or min
etc
2015-11-01 10:10:45 +01:00
rbock
30f073d02d
Moved result_field implementation to result_field_base
...
Much less boiler plate code this way
2015-11-01 09:32:47 +01:00
rbock
76af86a572
Renamed result_field_methods result_field_base
2015-10-31 19:38:12 +01:00