0
0
mirror of https://github.com/rbock/sqlpp11.git synced 2024-11-16 12:51:13 +08:00
Commit Graph

921 Commits

Author SHA1 Message Date
MeanSquaredError
c03ac660ee
Use brace-style initialization wherever possible. (#510) 2023-08-07 07:37:29 +02:00
Roland Bock
37739bd2d7 Add missing template parameter
This fixes a compiler error for C++11/14
2023-08-06 10:18:59 +02:00
MeanSquaredError
490259ee69
Cleanup the code of the MySQL connector (#509)
* Move the code for sqlpp::mysql::detail::connection_handle_t to include/sqlpp11/mysql/detail/connection_handle.h
* Move the code for sqlpp::mysql::detail::prepared_statement_handle_t to include/sqlpp11/mysql/detail/prepared_statement_handle.h
* Move the code for sqlpp::mysql::detail::result_handle to include/sqlpp11/mysql/detail/result_handle.h
* Rename sqlpp::mysql::detail::connection_handle_t -> sqlpp::mysql::detail::connection_handle
* Rename sqlpp::mysql::serializer_t -> sqlpp::mysql::context_t
* Add const qualifiers to sqlpp::mysql::context_t::escape() and its parameter.
* Rename class/struct types, variables and functions from CamelCase to snake_case.
* Remove a superfluous function that forwards the call to mysql_close().
2023-08-05 09:18:51 +02:00
MeanSquaredError
a085d730c9
Replace include guards with "#pragma once" in all header files and in the database model generator scripts. (#506) 2023-07-25 07:00:05 +02:00
MeanSquaredError
4295c29e9a
Fix serialization of PostgreSQL time data types (#504)
* Use a non-UTC timezone when testing the PostgreSQL timezone support.
* Fix serialization of time of day values for PostgreSQL
* Fix serialization of PostgreSQL values for "timestamp with time zone" and "time with time zone" fields.
2023-07-24 06:40:18 +02:00
MeanSquaredError
4a1ed2c02e
Fix serialization of time points for MySQL. (#503) 2023-07-23 10:40:27 +02:00
MeanSquaredError
dff8c23b22
Connection pools (#499)
Add support for connection pooling

* Add support for connection pooling to the core code.
* Add support for PostgreSQL connection pooling with tests.
* Add support for SQLite3 connection pooling with tests.
* Add support for MySQL connection pooling with tests.
2023-07-17 06:14:23 +02:00
Roland Bock
a50d719364 Fix brace initialization, #498 2023-06-30 06:39:46 +02:00
MeanSquaredError
26280d2678
gcc warnings (#496)
* Enable std::move() by using std::string instead of const std::string&

* Fix dangling references.
2023-06-28 06:32:39 +02:00
Carel
eac9a6e5e3
Const connection config (#494)
- The postgres connection does not change the connection_config thus passing it as const.
- Implies 'thread safety' when using the same config for multiple connections

Co-authored-by: Carel Combrink <carel.combrink@vastech.co.za>
2023-06-20 06:28:22 +02:00
MeanSquaredError
a72b172a52
Treat PostgreSQL time values as being in UTC time zone (#487)
* When inserting values into "timestamp with time zone" fields treat the value as being in the UTC time zone.

* Simplify parsing of PostgreSQL date/time responses by using regular expressions. Always convert response times with time zone to UTC.

* Add tests which check if timestamp and date fields are treated as having a UTC time zone.

* Clarify the test comments.
2023-06-16 06:57:19 +02:00
Matthijs Möhlmann
38aba217d4 std::string_view should also be assignable in prepared statements 2023-04-03 06:16:57 +02:00
Bernd Lörwald
9412851408
#471 serializers: ensure float precision (#472)
* value: add missing includes
* mysql, sqlite3: use explicitly *out* stringstreams for serialization
* postgresql: fix: use max_digits10 instead of digits10
* detail: add float_safe_ostringstream, ensuring floats are serialized with enough precision
* mysql, postgresql, sqlite3, tests: fix: set float-precision for all streams
* run clang-format on changed files
* inline remove_cvref.h
* replace unspecific "wrapper" with concrete type name
* tests: split connector specific tests out of serialize/Float
2023-02-18 08:10:50 +01:00
Roland Bock
64d16bfee0 Cleanup parens for ANY and SOME 2023-02-05 09:31:30 +01:00
Roland Bock
0731a8597d Cleanup parens for EXISTS 2023-02-04 10:21:54 +01:00
Roland Bock
2d3967a0b3 Cleanup braces for IS_NULL and IS NOT NULL 2023-02-04 10:12:55 +01:00
Roland Bock
1c4f1f61c8 Allow TRIM to be used with sub selects 2023-02-04 09:05:04 +01:00
Roland Bock
3fba3e721e Add UPPER and LOWER
This is replacing and extending #456.
2023-02-04 08:57:17 +01:00
Roland Bock
82758a2046 Add missing braces to aggregatedfunctions with sub select #469
Also allow MIN and MAX to be used with DISTINCT.
2023-01-29 14:39:07 +01:00
Roland Bock
673b07361b Add missing braces to SUM with sub select #469 2023-01-29 12:57:02 +01:00
Roland Bock
743d39c0c6 Rename requires_braces to requires_parens
This fixes a typical German mistake :-)
2023-01-29 11:55:58 +01:00
Moritz Wirger
42bd3cc79b Fix include for iso646 missing for MSVC 2022-12-10 09:37:56 +01:00
Roland Bock
57077cd32b Add standalone insert_columns function (#76)
This allows for multi-row INSERT OR IGNORE
2022-06-06 10:15:28 +02:00
Roland Bock
f5be4095ae Allow parameter in having clause, see #443
Disallow mixing aggregate and non-aggregate columns in select, too.
2022-05-22 15:05:58 +02:00
Roland Bock
1d5caca523 Allow value_or_null to be assigned to parameters (#435) 2022-04-02 08:27:38 +02:00
Mike Neilson
6477f09125 Added additional exception class.
Handles the case of user defined exception in pl/pgsql to it can be reported
back to the calling application.
2022-03-11 07:47:22 +01:00
Roland Bock
b965b2a1df Fix warnings (#422) 2022-03-04 07:49:05 +01:00
Jürgen Hunold
f7f2060c44 Add support for TIME columns in postgresql 2022-02-08 18:24:15 +01:00
Roland Bock
b8aed2af55 Address conversion warnings and fix UAF bug in test 2022-01-14 07:39:11 +01:00
Roland Bock
ccc75eafc7 Remove obsolete pointer indirection and some warnings 2022-01-12 07:06:06 +01:00
Roland Bock
d6aef0fa9b Remove obsolete pointer indirection, fix warnings and a leak
Leak: The sqlite3 connection handle destructor was
accidentally turned into a default constructor during the
migration of repositories.

Replaced the sqlite3 raw pointer with a unique_ptr to prevent
this kind of accident.
2022-01-11 07:35:20 +01:00
Roland Bock
3be4893bfe Remove obsolete pointer indirection in mysql connector 2022-01-09 09:12:23 +01:00
Roland Bock
40845e6b09 Remove incomplete connection pool
Porting the connection pool from sqlpp17 seems more promising, see #397
2022-01-08 19:02:29 +01:00
Roland Bock
181cc5fb04 Fix compiler warnings. 2021-12-11 19:53:35 +01:00
Andreas Sommer
36d3d30254 Support MySQL connect timeout option 2021-12-10 10:57:06 +01:00
Andreas Sommer
c37c8d36c5 Add missing includes 2021-12-10 10:49:37 +01:00
Leon De Andrade
e7590dc004
Add unsigned bind to postgresql (#395) 2021-12-04 10:52:26 +01:00
Roland Bock
310a6245fa Added blob support for postgresql
Tests look reasonably fine.
2021-11-14 13:14:34 +01:00
Roland Bock
4c942600bb Started to migrate postgresql connector into sqlpp11 repo.
Removed timezone handling in the process (needs to be documented).
Note: on_conflict does not check for constraints (needs to be documented).
Note: some of the constraints tests seem to be aiming for a different static_assert.
2021-11-14 08:11:53 +01:00
Roland Bock
554c31dc23 Add missing includes 2021-11-11 06:30:00 +01:00
Roland Bock
d2cd61ab3a Remove table::ref (see #345). 2021-11-06 15:11:45 +01:00
Roland Bock
138da005d5 Fixed missing include and two compiler warnings 2021-11-06 14:28:50 +01:00
Théo Delrieu
3f7fe2d0bb result: make nested iterator C++20 conformant 2021-10-28 06:17:01 +02:00
Roland Bock
4a8c941916 Fixed global variable
This would have led to multiple definitions at best.
2021-10-11 10:03:58 +02:00
Roland Bock
bde010351d Fix missing inline attributes for mysql connector
Changed mysql usage tests to be linked into one executable.
This provokes multiple definition errors for non-inlined free
functions.
2021-10-11 09:04:57 +02:00
Roland Bock
caee00e849 Fix missing inline attributes for sqlite3 connector
Changed sqlite3 usage tests to be linked into one executable.
This provokes multiple definition errors for non-inlined free
functions.
Also ran clang-format on the changed headers.
2021-10-11 08:37:14 +02:00
Roland Bock
a3c2b186fb Remove same-name check for result columns
The compiler actually does a much better job at telling you if two
result columns have the same name as soon as you are trying to use
them.
In contrast to the static_assert, the compiler will even say which
name is ambiguous.
2021-10-03 09:35:11 +02:00
Roland Bock
136b533fcf Added shift left and shift right operators. 2021-09-04 13:40:03 +02:00
Roland Bock
24a0734245 Drop copy_tuple_arg.h
Transfer the required bits to select_column_list.h
2021-09-04 12:34:11 +02:00
Roland Bock
1e2fff0ca9 Remove obsolete all_of_t
This was a wrapper used for the now-removed multi_column.
2021-09-04 11:04:51 +02:00
Roland Bock
f6bbac09e1 Remove superfluous include 2021-08-25 08:06:06 +02:00
Roland Bock
64aba48cb9 Make sqlite3 connector header-only 2021-08-22 12:44:34 +02:00
Roland Bock
660e3bd1b6 Make mysql connector header-only 2021-08-15 16:51:27 +02:00
Roland Bock
1d57d28994 Add order_by and limit for mysql remove and update
Thanks to ZerQAQ for suggesting this on github.
2021-08-14 10:56:45 +02:00
Roland Bock
5e16f32ed3 Moved mysql/mariadb connector over here. 2021-08-01 21:49:16 +02:00
Roland Bock
2e683a4b69 Moved sqlite3 over here. 2021-08-01 20:37:36 +02:00
Roland Bock
d0a8ea21af Cleanup some warning and includes 2021-08-01 19:33:53 +02:00
Roland Bock
68021772c2 Finished replacing serializer_t 2021-08-01 15:09:43 +02:00
Roland Bock
2cab1fa681 Next step in replacing serializer_t 2021-08-01 10:01:32 +02:00
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
Roland Bock
34a8f34821 Remove multi_column.
While a nice feature in theory, this was extremely rarely used
and added quite a bit of complexity to the code.
2021-07-30 21:05:36 +02:00
Roland Bock
d68744c432 Add is_equal_or_null(col, some_value_or_null)
This replaces the former implicit tvin logic with an explicit function.
2021-07-25 15:22:12 +02:00
Roland Bock
135db9397b Remove _is_trivial from *_operand 2021-07-13 15:16:36 +02:00
Roland Bock
93b0093fb5 Remove rhs_wrap (was required for tvin only) 2021-07-11 13:54:18 +02:00
Roland Bock
db0295a9d0 Remove tvin
This was a special feature for a project I was working on long ago.
It provided implicit behavior for trivial value (0 or "") which were
supposed to be interpreted as NULL.
They led to `operator==` potentially being serialized as 'IS NULL'.

It makes more sense to introduce explicit helpers, e.g.

 - equal_or_is_null(col, optional)
 - not_equal_or_is_not_null(col, optional)
2021-07-11 12:47:13 +02:00
Roland Bock
35c2b9ec04 Add missing include (#368) 2021-06-13 07:55:36 +02:00
byronhe
739b3db69c
Update connection_pool.h (#363) 2021-04-24 13:17:01 +02:00
Roland Bock
9203e3818f Remove null_is_trivial_value
Unless you have null_is_trivial_value or trivial_value_is_null somewhere in your code, this should not affect you.
2020-09-29 08:42:37 +02:00
Roland Bock
085713d4d3 Merge branch 'release/0.60' 2020-08-23 07:45:17 +02:00
Daniel Evers
e3ab5e5d0b
fixed #342: ambiguous comparison operators (c++20) (#343)
* fixed #342: ambiguous comparison operators (c++20)

* issue #342: added reference to clang bug ticket
2020-07-09 07:10:47 +02:00
MacDue
d1b34b6098
Add support for parameterized_verbatim (#341)
* Add support for parameterized_verbatim

Co-authored-by: MacDue <macdue@dueutil.tech>
2020-06-23 09:07:38 +02:00
faizol
23cb8f4c86 changed header to use stddef.h 2020-05-06 06:23:24 +02:00
faizol
b336346467 changed type_set.h to use cstddef so that size_t would be consistent across the library 2020-05-06 06:23:24 +02:00
faizol
cd20805b3e update for gcc10 compilation 2020-05-06 06:23:24 +02:00
MacDue
73df6df867 Make connection pool useable 2020-02-15 08:17:37 +01:00
MacDue
a51b6da3bd
Minimal over() implementation for aggregate functions (#316)
* Minimal over() implementation for aggregate functions

* auto_alias support for over()

* add missing typename

* Test .over() serialization

* Add missing return to test

* Fix testing over auto alias

Co-authored-by: Ben Maxwell <42680490+MaciumDue@users.noreply.github.com>
2020-02-15 07:54:22 +01:00
rbock
bb77cc1459 Fix missing space for operator- 2019-10-09 07:25:24 +02:00
rbock
5b2b175b21 Remove aggregate attribute from trim() 2019-08-28 09:42:48 +02:00
rbock
7f29a0b126 Fix expressions for unsigned integral as suggested by @fraillt 2019-08-20 18:32:16 +02:00
rbock
43ec2343c3 Fix serialization of empty dynamic_where
It was serialized with a dummy expression, which turned out to be
problematic for some vendors, see #282
2019-08-20 10:31:54 +02:00
rbock
daa672e6f0 Fix joins with CTEs 2019-05-25 14:04:44 +02:00
rbock
c729387ab6 Allow INSERT INTO from SELECT 2019-04-11 11:30:25 +02:00
rbock
b27406a87e Make implicit array to pointer decay explicit 2019-03-22 05:40:03 +01:00
rbock
6f39293a69 Maybe make MSVC happy again...
Thanks, @juandent for the change suggestion
2019-03-19 06:38:01 +01:00
rbock
d1b8bde8f1 Cleanup bogus return statements 2019-02-27 13:53:28 +01:00
Daniel Evers
ac3a8290ff support for std::string_view when using C++17 2019-02-02 11:00:59 +01:00
Egor Pugin
9de56a748c Add explicit greater condition. 2018-12-06 20:19:19 +01:00
fjkfwz
da5cf192e9 Fix blob field display 2018-10-28 07:33:25 +01:00
Sylvain Joubert
114b9ab77a Add support of value_or_null in multi-insert 2018-08-13 21:31:09 +02:00
Dirk Vanden Boer
6a45d058de Fixed transaction_t move constructor 2018-07-05 21:45:14 +02:00
rbock
8d05e4e05e Add serializer for value_or_null 2018-06-28 19:20:09 +02:00
rbock
cc96fc44ef Formatting... 2018-06-01 09:53:39 +02:00
dcojan
49d46edab2 add missing unsigned integer types in ppgen 2018-05-13 11:16:37 +02:00
rbock
ac500e238d Fix triggering static asserts multiple operators 2018-04-28 10:15:26 +02:00
rbock
9d64a5c741 Fixed missing include 2018-04-19 07:05:17 +02:00
niXman
928282a9ef
real type support added for ppgen(part 1) 2018-04-12 13:55:16 +03:00
Philippe Daouadi
1b12fddb7a Add support for std::array blobs 2018-03-10 20:49:57 +01:00
Philippe Daouadi
7b16f03aa0 Fix blob result_type 2018-03-10 20:49:57 +01:00
rbock
2e635cc963 blob WIP 2018-03-10 20:49:57 +01:00
rbock
1e029807da Add blob data type 2018-03-10 07:45:01 +01:00
Bartosz Wieczorek
f48f1b9cf7 fixup 2018-02-19 12:38:23 +01:00
cszawisza
ee3f90d13a make old GCC happy 2018-02-19 12:28:50 +01:00
Bartosz Wieczorek
e50ee42364 add set(tuple<...>) implementation for insert and update statements 2018-02-15 07:55:43 +01:00
Egor Pugin
f510166ac8 Load date library from date dir (since date v2.3). 2018-01-31 17:48:38 +03:00
rbock
2b1c1c1a82 not_t must not be a variadic template. 2018-01-21 10:58:19 +01:00
rbock
5b15267743 Typo, thanks @juandent 2018-01-07 08:05:30 +01:00
rbock
e49428c58c Partially reverting e1b82afbbe hoping to appease VC++ 2017-12-19 09:06:56 +01:00
JUAN DENT
91e0712e6c _can_be_null depends on the expression 2017-12-18 16:51:47 -06:00
JUAN DENT
5cb081a721 Corrected _is_aggregate_expression 2017-12-18 16:44:16 -06:00
JUAN DENT
13e1ac3a78 Added trim.h with Roland's suggestions 2017-12-18 12:38:41 -06: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
8ad1bb5db2 Add missing include 2017-11-25 19:00:18 +01:00
rbock
d7ef2603bc Remove superfluous return 2017-11-22 21:10:56 +01:00
rbock
3a6e4d93ec Merge branch 'develop' of https://github.com/rbock/sqlpp11 into develop 2017-11-06 21:37:36 +01:00
rbock
e1b82afbbe Use count instead of is_element_of 2017-10-29 16:39:51 +01:00
Roland Bock
1c7c0361ee Merge pull request #190 from choiip/develop
Fixed compile error when include connection_pool.h using c++11
2017-10-27 06:29:12 +02:00
Aaron Bishop
d207a26638 Removed templated variables
Also fixed tabs to spaces. Used github editor, can update later if there was a syntax error.
2017-10-23 09:10:10 -04:00
Aaron Bishop
fb84f9b4a9 Allow result_t to have a size() function if DbResult has a size() function.
size() must be const, but can be arbitrary type.
size() may be wrong after first next has been called
2017-10-21 16:09:30 -04:00
rbock
f6cb213e55 Fix without_table_check for alias expressions 2017-10-16 20:43:07 +02:00
Alex Choi
8b4408c95f fixed compile error when include connection_pool.h using c++11 2017-10-16 11:38:36 +08:00
niXman
7fa7720c87 support for date/datetime/timestamp types added for ppgen 2017-10-07 13:20:30 +03:00
rbock
8aadbd2263 Reverted logic change that led to too many warnings with gcc 2017-09-10 18:26:48 +02:00
rbock
00d10b5365 Minor cleanup thanks to clang-tidy 2017-09-10 15:54:59 +02:00
rbock
d112d714b9 clang-tidy readbility fixes 2017-09-10 15:46:54 +02:00
rbock
0d6c63ce20 Use clang-tidy modernize fixes 2017-09-10 15:45:07 +02:00
rbock
a17a78c5c2 Adhere to clang-tidy warning about boolean readability 2017-09-10 15:21:24 +02:00
rbock
63b40527ee Use clang-tidy to prevent else after return 2017-09-10 15:12:45 +02:00
rbock
6a9715b59d Use clang-tidy to wrap single-line blocks into {} 2017-09-10 15:05:34 +02:00
rbock
f4612061d7 Make portable static assert explicit 2017-09-10 15:01:14 +02:00
rbock
c09a0b5ee8 Use clang-format to explicitly mark unused parameters 2017-09-10 14:58:51 +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
9ac0775699 Add virtual destructors for virtual base classes.
Thanks to new warnings in gcc-6.x
2017-09-10 10:13:37 +02:00
rbock
a2e7e56f70 Fix missing include. 2017-08-16 11:33:31 +02:00
Théo DELRIEU
8079d6c144 add missing <string> include in schema.h 2017-08-10 13:22:40 +02:00
rbock
307da227ac Merge branch 'release/0.50' 2017-07-16 07:52:02 +02:00
Serge Robyns
392b257694 Fixed incorrect usage of string::find 2017-07-15 15:56:13 +02:00
rbock
64498654b7 Fixed some clang warnings 2017-06-25 13:01:43 +02:00
rbock
7422cb9e3b Compile with both, MSVC 2015 and 2017
Make MSVC 2017 accept the code as well

MSVC still has problems with variadic templates...

Adjust README, do not do debug build (reduce load for appveyor)
2017-06-25 12:53:21 +02:00
Roland Bock
801428d4cf Merge pull request #171 from volka/isolation_level
Add an option to set a transaction isolation level in start_transaction
2017-06-03 11:40:51 +02:00
Volker Aßmann
ee20a8be67 Fix missing not correctly by including ciso646 2017-06-01 23:26:07 +02:00
Volker Aßmann
b51714eb48 Cleaned up start_transaction overloads 2017-06-01 23:18:15 +02:00
Volker Aßmann
c92571862d Replace "not" with "!" to fix Visual C++ issue 2017-06-01 12:47:14 +02:00
Volker Aßmann
f2ea61052e Add an option to set a transaction isolation level to the generic
transaction interface and the connecctor api
2017-05-31 22:43:57 +02:00
Roland Bock
8238853d30 Merge pull request #160 from sergeken/master
Added for update support (issue #145)
2017-04-10 12:28:30 +02:00
Serge Robyns
4ae55e238e Changed copyright message 2017-04-10 11:12:27 +02:00
Serge Robyns
62a5ec3e3e Added for update support 2017-04-09 11:17:55 +02:00
Frank Park
9f26495ced Reordered template arguments 2017-04-02 11:06:12 -04:00
Frank Park
71a234c4ba Split pool_connection to separate file, add reconnect_policy
Also expanded class template and constructor of connection_pool to allow
lazy instantiation, added helper function make_connection_pool to make
instantiation lazier.
2017-04-02 10:48:14 -04:00