Commit Graph

48 Commits

Author SHA1 Message Date
Roland Bock
61116f89c5 Started to replace serializer_t 2021-07-31 20:00:42 +02:00
Roland Bock
cf87fbd68e Remove variations of serialization from interpretable
I am not even sure any more what this was intended for?
Maybe for the STL connector?
Anyways, not really needed.
2021-07-30 21:44:57 +02:00
rbock
109b0af880 Add quoting for table and column names.
More reserved words have to be added to ddl2cpp
2017-11-26 19:19:26 +01:00
rbock
6a9715b59d Use clang-tidy to wrap single-line blocks into {} 2017-09-10 15:05:34 +02:00
rbock
306ce63f2f Use clang-format to add closing namespace comments 2017-09-10 14:56:51 +02:00
rbock
ac765993aa Use clang-format to streamline include guards 2017-09-10 14:55:11 +02:00
rbock
6bdddcc343 Fix braces around sub-selects used as tables 2016-09-13 21:08:01 +02:00
rbock
d15cb2a410 Added "real" cross join 2016-03-20 09:13:49 +01:00
rbock
cf5ddfde00 Added portable static asserts for joins and first static tests 2016-03-20 09:13:49 +01:00
rbock
20adfb66c9 Made from() testable with portable static asserts, added tests
Added cross_join_t, simplifying join a lot
2016-03-20 09:13:49 +01:00
rbock
5e96551f83 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-03-20 09:13:49 +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
sliser
a6f506b57f fixed build for msvs 2015 update 1 2015-12-15 18:20:33 +03:00
rbock
09f23cea0a Reformatted using clang-format
Please use clang-format before submitting code, e.g via the pre-commit
supplied in the repo (thanks AndiDog)
2015-09-13 21:33:19 +02:00
Reto Schneider
5756b2355f Remove trailing spaces. 2015-08-05 14:43:21 +02: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
92e670118a Started to add common table expressions and 'with' 2015-01-13 21:53:29 +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
809d42e4a1 Introduced check for serializability 2014-11-25 17:43:55 +01:00
rbock
7c80a2a6e0 Renamed named_expression to selectable 2014-09-26 09:03:26 +02:00
rbock
3cab459077 Added tag to indicate that an expression contains an aggregate function 2014-09-17 22:22:45 +02:00
rbock
f478e7c8e8 Applied new member_t to remaining places 2014-08-25 18:31:01 +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
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
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
9c15b45ac4 Made can_be_null a recursive trait 2014-07-23 18:26:13 +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
067740d24e InterpretTest compiles again 2014-06-04 18:35:25 +02:00
rbock
c4a02d931c SelectTypeTests compile again! 2014-05-20 21:22:55 +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
f4ec88c83d Improved checks for selects being usable as value or table 2014-04-18 19:59:35 +02:00
rbock
bef4d0874b Updates copyright year 2014-03-27 16:43:36 +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
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
d288c65897 Minor code cleanup (set -> type_set) 2014-02-02 14:58:08 +01:00
rbock
87302fa27f Make g++-4.8 compile again 2014-01-18 16:10:46 +01:00
rbock
312e735d6d Moved a bunch of things into namespace vendor
This namespace is for things the developer will not get in touch with
(normally) but the vendor might need to use for specialization of the
interpreter.

This separation is not fully completed yet, some changes will have to
follow...
2014-01-18 15:50:16 +01:00
rbock
9826ef79e4 Added interpreters to is_null, multi_column, alias and select pseudo table 2014-01-16 22:31:43 +01:00
rbock
1c4d041b89 Cleaned up some outdated serialize functions 2014-01-15 23:05:24 +01:00
rbock
afcc62fc75 Added interpreters for a bunch of functions and table aliases 2014-01-15 19:42:14 +01:00