Commit Graph

516 Commits

Author SHA1 Message Date
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
rbock 00fb11b2d4 Cleaned up result_field_methods
Much less clutter (and fixed null_is_trivial handling, I think)
2015-10-31 19:26:07 +01:00
rbock a73572ecba Some renaming cleanup 2015-10-31 18:22:32 +01:00
rbock f6f8eb0bef Fixed serialization of result fields 2015-10-31 18:04:16 +01:00
rbock 51fd8c7007 Removed warning for column_types include 2015-10-31 11:04:30 +01:00
rbock fae1f08d93 Added storage type to parameter_value_base struct
This allows to store bool as signed char, the latter being the usual
data type in connector libraries afaict
2015-10-31 11:03:20 +01:00
rbock 21d633bdf4 Merged <data_type>/serialize.h into operand and result_field 2015-10-31 10:20:35 +01:00
rbock de1e8f27a4 Utilize parameter_value_base for the remaining data types 2015-10-30 23:48:07 +01:00
rbock f48e807ce5 Started to use parameter_value_base to simplify parameter_value code 2015-10-30 23:24:42 +01:00
rbock 37b7966ab2 Split day_point and time_point 2015-10-30 21:47:31 +01:00
rbock 45c3f4b4cc Split text.h, some fixes and moved like and concat to text 2015-10-30 19:48:53 +01:00
rbock 4ae843b502 Distributed floating point include 2015-10-30 16:12:17 +01:00
rbock 6702bc8479 Split integral.h into several sub files 2015-10-30 11:05:46 +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
rbock 5e83929555 Date/time adjustments, including date cannot be assigned with timestamp
This is inspired by sqlite's behaviour: If you have a date column (say
colDate) and update it with

colDate = DATETIME('2015-01-01T20:20:20);

colDate will contain the date time, not just the date (while the
connector would probably just read the date part). In order to prevent
this kind of inconsistencies, date can be assigned only with dates, not
with timestamps.
2015-10-29 15:51:26 +01:00
rbock 73e8f04127 Several minor date/time fixes, new tests 2015-10-28 20:52:43 +01:00
rbock 31b7ac4c4a Cleaned up date/time structs a bit 2015-10-27 16:13:36 +01:00
rbock 56d312a59b Added compile time tests for date and date_time 2015-10-13 21:25:10 +02:00
rbock d1a3ab596a Prepared basic expression operators for compile time tests 2015-10-09 21:12:23 +02:00
rbock 553dc5b016 Using portable static asserts for the basic expression operators now
The return type yet needs to be adjusted
2015-10-09 07:24:05 +02:00
rbock 407136c44e Added a date_time column type 2015-10-08 16:08:04 +02:00
rbock 41709f38ec Added date data type. 2015-10-07 21:43:19 +02:00
rbock 6badf8d135 Cleanup 2015-10-07 20:49:16 +02:00
rbock 547d1863f7 Started to replace static asserts with portable static asserts for testing 2015-10-04 14:43:19 +02:00
rbock 7068c8c26c Fixed logic::none_t 2015-10-03 20:46:43 +02:00
rbock bd55f3db5b Added several tests for static_assert (plus fixes for aggregates) 2015-10-03 20:11:55 +02:00
rbock bd385f7377 Added check if all selected columns are aggregates if group_by is present 2015-10-03 17:00:53 +02:00
rbock 25ff700c01 Partially reverted all_t et al to avoid warnings about unused variables 2015-10-03 10:17:59 +02:00
rbock 1f104a10ac Slightly simplified logic::all_t and logic::none_t 2015-09-30 16:49:18 +02:00
rbock e152e29107 run_check and prepare_check now contain the serialize check 2015-09-17 11:46:37 +02: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 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