Carel
babd420ecb
ddl2cpp command line argument for custom types ( #491 )
...
* ddl2cpp command line argument for custom types
- Updated the ddl2cpp script to allow custom/extended types through external csv file
- Had to re-order the script to allow the command line to be parsed before setting up the parser
- Updated README
* Test for the command line argument
- Script test only for now
* Test the custom type argument
- Firs a negative test
- Last a positive test and compile test against the generated output
* Expand the test
- Ensure built in types still work
- Check capitilisation
- Ensure more than one custom works
- Check type with spaces
---------
Co-authored-by: Carel Combrink <carel.combrink@vastech.co.za>
2023-06-22 07:06:00 +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
hwhsu1231
2aa9797117
style: Align CMake files with 4 spaces indent
2022-11-26 08:32:46 +01:00
Roland Bock
4be8b9f654
Add example for #448
2022-06-20 06:58:51 +02:00
Jürgen Hunold
892e680a73
Add parser self-test to auto test suite
2022-06-08 06:35:39 +02: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
256429730a
Fix CMake warnings (CMP0115)
2022-06-06 10:14:01 +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
Carlitxxx86
1e7f4b98c7
Added OR REPLACE clause
2022-04-25 06:37:40 +02:00
Carlitxxx86
92fa9d365d
Added sample table definitions for System-Versioning
...
Both with implicit and explicit column definition.
2022-04-22 06:21:24 +02:00
Jürgen Hunold
9bfee74a99
Fix parsing of float fields with scale digits
2022-04-18 09:54:05 +02:00
Roland Bock
b50cc454b6
Fix constraints handling in ddl2cpp ( #437 )
...
Constraints got interpreted as (unknown) data types.
This change should fix this most cases (simple test case added).
2022-04-09 21:47:21 +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
03671ea75e
Fixed ddl2cpp test setup and checks.
...
cmake file contained extra parameter that appears to no longer be used.
bad_has_parse_error test output check was not longer valid.
2022-03-11 07:47:22 +01: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
Jürgen Hunold
f7f2060c44
Add support for TIME columns in postgresql
2022-02-08 18:24:15 +01:00
Jürgen Hunold
b2166c636b
Untabify test list
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
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
181cc5fb04
Fix compiler warnings.
2021-12-11 19:53:35 +01:00
Roland Bock
91b7b34557
Fix broken test code, see #400
2021-12-11 19:31:25 +01:00
Andreas Sommer
36d3d30254
Support MySQL connect timeout option
2021-12-10 10:57:06 +01:00
Leon De Andrade
d17bce9644
Add Connector CMake Logic ( #394 )
...
Add Connector Cmake logic
* Also install date when used with fetch content
* Install everything always
* Update documentation
* Add option to control dependency searching
* Adjust travis
2021-12-02 07:45:38 +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
13698d07c9
Fix compile error for c++11
2021-11-11 07:21:28 +01:00
Roland Bock
8572c821aa
Streamline test names and locations
2021-10-11 10:31:25 +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
136b533fcf
Added shift left and shift right operators.
2021-09-04 13:40:03 +02:00
Roland Bock
0181639cb3
Add test for table alias.
2021-09-04 11:05:49 +02:00
Roland Bock
04629c1b92
Fix warning
2021-08-22 12:47:17 +02:00
Roland Bock
64aba48cb9
Make sqlite3 connector header-only
2021-08-22 12:44:34 +02:00
Roland Bock
2bb68cc443
Add time_point test for value_or_null
2021-08-22 11:39:48 +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
2c1cc8ec89
Make mysql DateTime tests a bit stricter
2021-08-14 10:27:31 +02:00
Roland Bock
25a8dfa292
Add dynamic_insert_into test.
2021-08-06 10:14:24 +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
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
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
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
4178942015
Document multi_insert for time_point columns ( #367 )
2021-06-13 07:55:22 +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
rbock
268c176d8a
Adjust sample.sql and ddl2cpp to match Sample.h
2019-10-05 10:20:15 +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
60267ab952
Added an example for reading time point values
2019-04-18 09:02:16 +02:00
rbock
c729387ab6
Allow INSERT INTO from SELECT
2019-04-11 11:30:25 +02:00
Daniel Evers
460557c6e0
Added string_view tests and C++17 tests for travis
2019-02-02 11:00:59 +01:00
rbock
cf02a444d7
Add custom query insert example
2019-01-23 15:34:47 +01:00
rbock
7e2e1abbfc
Add example for MYSQL's ON DUPLICATE KEY UPDATE
2018-12-24 17:32:16 +01:00
rbock
dd73319bcf
Add boolean expression test
2018-12-07 09:42:43 +01:00
Roland Bock
1f1ec60374
Merge pull request #246 from sjoubert/test_functions_typo
...
Fix typos in function's tests
2018-08-14 06:46:20 +02:00
Sylvain Joubert
114b9ab77a
Add support of value_or_null in multi-insert
2018-08-13 21:31:09 +02:00
Sylvain Joubert
3faa8fa8bc
Fix typos in function's tests
2018-08-13 12:59:30 +02:00
rbock
cc96fc44ef
Formatting...
2018-06-01 09:53:39 +02:00
dcojan
e5b9e0a4f3
add an unsigned integer field in tests/Ppgen.cpp
2018-05-13 11:17:42 +02:00
rbock
33ed5b11ac
Added example for recursive CTE
2018-04-19 07:04:42 +02:00
niXman
7d8fdaa9df
real type support added for ppgen(part 2)
2018-04-12 13:56:20 +03:00
rbock
3f3cfbbd94
Add blob data type
2018-03-10 20:49:57 +01:00
rbock
1e029807da
Add blob data type
2018-03-10 07:45:01 +01:00
Bartosz Wieczorek
e50ee42364
add set(tuple<...>) implementation for insert and update statements
2018-02-15 07:55:43 +01:00
rbock
3a6e4d93ec
Merge branch 'develop' of https://github.com/rbock/sqlpp11 into develop
2017-11-06 21:37:36 +01:00
rbock
e921d81049
Use using in remove test
2017-11-06 21:36:52 +01:00
Roland Bock
f1c0071a35
Merge pull request #195 from Erroneous1/feature_result_size
...
Allow result_t to have a size() function
2017-10-25 19:18:29 +02:00
Aaron Bishop
d724909864
fixed issues with test_types/result_row.cpp
2017-10-25 11:47:57 -04:00
Aaron Bishop
1db9ccfd7c
Created separate MockSizeDb
...
Removed size() from MockDb
2017-10-23 20:03:37 -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
f3b915cdc9
Add new example to custom_query tests
2017-10-21 19:03:01 +02:00
rbock
06cbe05b08
Add more tests for verbatim
2017-10-21 16:55:11 +02:00
rbock
f6cb213e55
Fix without_table_check for alias expressions
2017-10-16 20:43:07 +02:00
niXman
7fa7720c87
support for date/datetime/timestamp types added for ppgen
2017-10-07 13:20:30 +03:00
rbock
c09a0b5ee8
Use clang-format to explicitly mark unused parameters
2017-09-10 14:58:51 +02:00
rbock
cd778444d6
Merge branch 'release/0.49'
2017-06-04 15:58:40 +02:00
Roland Bock
a69230b930
Merge pull request #173 from volka/isolation_level
...
Implemented get/set_default_isolation_level() functions
2017-06-04 15:54:47 +02:00
Volker Aßmann
9d395c2bc6
Fix typo
2017-06-04 15:19:00 +02:00
Volker Aßmann
a55d986def
Implemented get/set_default_isolation_level() functions to change the
...
transaction isolation level default per-connection
2017-06-04 13:57:41 +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
9413206bd1
Hide the "isolation_level" member of the MockDb to make it explicit that
...
this is only used for mock validation
2017-06-03 11:20:18 +02:00
Volker Aßmann
b51714eb48
Cleaned up start_transaction overloads
2017-06-01 23:18:15 +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
rbock
d0c6cc103a
Re-insert accidentally removed test for ppgen
2017-05-10 07:44:05 +02:00
Serge Robyns
62a5ec3e3e
Added for update support
2017-04-09 11:17:55 +02:00
Roland Bock
33b69279d7
Merge pull request #143 from theodelrieu/develop
...
Enhancements to result_t::iterator
2017-03-07 10:13:48 +01:00
Théo DELRIEU
d50c65996a
add iterator_category field to result_t::iterator
...
default value is std::input_iterator_tag, connections should specialize
the sqlpp11::iterator_category struct defined in result.h to override
that value
2017-03-07 09:40:02 +01:00
rbock
f88efada67
Allow for "IF NOT EXISTS" in createTable in ddl
2017-03-05 19:50:55 +01:00
rbock
7c20a68e0b
Fixed result types for signed OP unsigned
expressions.
2016-11-12 10:35:03 +01:00
rbock
c6062116f8
Added a few more UNION tests
2016-11-01 18:38:09 +01:00
Andreas Sommer
609766a9fe
Allow dynamic sort order
2016-09-16 19:30:17 +02:00
rbock
94a0eee117
Enforce unsigned integral values for limit and offset
2016-09-06 22:34:59 +02:00
rbock
2cafb56266
Improved a few assert wrapper names
2016-09-04 10:44:14 +02:00
rbock
5d09b736b6
Better failure return values for union
...
There are still a lot of untestable static_assert, but one thing at a
time...
2016-09-01 21:57:15 +02:00
rbock
1a0f0ea0ab
Everything compiles again.
2016-09-01 21:46:42 +02:00
rbock
637e0ad4d9
Better failure return types for update and remove
2016-09-01 18:31:03 +02:00
rbock
36afa04bcd
Adjusted insert to use wrapped asserts as failure return
2016-09-01 12:51:04 +02:00
rbock
cf83978118
Migrated select clauses to returning wrapped asserts
...
This helps a lot in testing static asserts (and debuging expressions
with MSVC)
2016-09-01 12:06:40 +02:00
rbock
57797ffffa
Added for_each_field function
2016-08-17 09:51:24 +02:00
rbock
d061010fc3
Merge branch 'release/0.39'
2016-06-19 11:59:28 +02:00
strangeqargo
61d0da2ec6
ddl2cpp tests
2016-06-12 22:34:26 +03:00
rbock
03ab507f69
Some formatting
2016-06-05 21:35:49 +02:00
rbock
75978ae092
Merge branch 'Erroneous1-feature/time_of_day' into develop
2016-06-05 21:29:22 +02:00
Aaron Bishop
2f1f34d0b1
fixed some expressions, added tests
2016-05-23 08:24:35 -04:00
Aaron Bishop
6bdf5ef1ee
updated copyright
2016-05-23 08:16:27 -04:00
Aaron Bishop
a8fa0ddba0
reset to master, added unsigned_integral, removed time_of_day
2016-05-20 07:09:48 -04:00
Aaron Bishop
ce7b949e1b
Added time_of_day data_type
2016-05-19 08:53:56 -04:00
rbock
690028fb84
Added test to prepare statement with zero parameters
2016-04-24 10:30:06 +02:00
rbock
91defe2450
MSVC update 2 already has std::chrono::floor
2016-04-17 10:45:31 +02:00
rbock
3e008a2b04
Intermediate state
2016-04-06 10:16:35 +02:00
rbock
0b8ccaa985
Added insert_set to create first custom insert
2016-03-31 07:11:41 +02:00
rbock
a8b9014fc2
Enforce having expression to consist of aggregates
2016-03-20 09:13:50 +01:00
rbock
452175b514
Removed extra_tables (use without_table_check) instead
2016-03-20 09:13:50 +01:00
rbock
201b060d24
Added explicit without_table_check function
...
This removes the "required" tables from an expression
2016-03-20 09:13:50 +01:00
rbock
a836e8c8d8
Simplified where() to have one argument only
2016-03-20 09:13:50 +01:00
rbock
aceede57eb
Fixed outer-tables for joins, added tests
2016-03-20 09:13:49 +01: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
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
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
b812ed5120
fixed appveyor build
2015-12-28 16:42:26 +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
b89e4c3e4f
Fixed a bunch of missing initializations
2015-12-27 22:25:05 +01:00
rbock
02f4dd1793
Migrated case to portable static assert and added static tests
2015-12-24 21:11:00 +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
0471d732f9
Added CASE expression
2015-12-23 11:50:40 +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
rbock
21f587e80d
Merge branch 'feature/re-organize-value-types' into develop
...
Conflicts:
.travis.yml
2015-12-13 17:25:28 +01:00
rbock
333e55ea6d
Dynamic select did not accept some non-dynamic clauses.
2015-12-11 14:42:28 +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
173d6adbc9
Moved data types into separate folder, split boolean
...
Each file within data_types/boolean/ is relatively short and easy to
grok.
2015-10-29 22:21:46 +01:00
rbock
84ab264702
Renamed date/date_time to day_point/time_point
2015-10-29 16:41:45 +01:00