Commit a31aa84
Resolve conflicts to current DO master (#126)
* Add support of DateOnly/TimeOnly types
Fix formatting
Fix tests
* Some refactoring
* Update Orm/Xtensive.Orm.SqlServer/Sql.Drivers.SqlServer/v09/ServerInfoProvider.cs
Co-authored-by: Oleg Shuruev <shuruev@gmail.com>
* Code style
* use is null
* node.Arguments
* Update Orm/Xtensive.Orm.SqlServer/Sql.Drivers.SqlServer/v10/ServerInfoProvider.cs
Co-authored-by: Oleg Shuruev <shuruev@gmail.com>
* Move TimeOnly and DateOnly compilers to separate files
* Replace DO_DATEONLY with NET6_0_OR_GREATER
temporary keep previous compilation variable as comment
* No env var DO_DATEONLY support
* Add implicit conversion of DateOnly/TimeOnly to SqlExpression
* SqlDml level changes
- new SqlDml Methods for Time and Date
- rename DateOnlyXxx and TimeOnlyXxx to DateXxx and TimeXxx to be related to with SQL
- new SqlFunctionTypes & SqlNodeTypes
* Add Sql-level tests for DateOnly and TimeOnly
* SqlType: Fix compilation error for NET5
* Define DataTypeInfo for DateOnly/TimeOnlySupport for various providers
* Add base test class for tests of schema extraction
* Replace old MSSQLExtractor-based test with one class based on ExtractorTestBase
* Firebird: Fixed FK actions extraction
* ExtractorTest for Firebird
* MSSQLExtractorTest: Use line by line script
* ExtractorTest for MySQL
* ExtractorTest for Sqlite
* PgSql: extrator tests
* Oracle: Extractor test
* Fix typo in class name
* PgSql: Full-text Index extraction text
* MySQL extraction imrovements
- add extraction of date and time equivalents
- extract both ON UPDATE and ON DELETE actions of Foreign Keys
- ordinal comparer applied on string comparisons
* Oracle schema extraction imrpovements
- add support for time and date equivalent types
- ordinal string comparison
* Sqlite : add time and date as data types
* Sqlite schema extractor improvements
- both foreign key actions are extracted
- ordinal string comparison applied
* DataTypeCollection: Adding provider specific types fix
- no double IsLocked check
- custom types and they native name alternatives are added to collections properly
* Fixed wrong name of type members' compiler
* Raw tests for DateOnly/TimeOnly fields/values within Linq
* Register DateOnly/Time only member compilers
* Add DateOnly/TimeOnly as supported types for Min/Max ops
* TimeOnlyCompilers updated
- correct namespace for compilers type
- correct names for compiler methods
- removed datetime operators which were accidentally added
- "Add" method compiler, not implemented yet
- "Ticks" property compiler, not implemented yet
* DateOnlyCompilers updated
- correct namespace for compilers type
- correct names for compiler methods
- DayOfWeek compiler implementation
* DateTime/DateOnly/TimeOnly ctor usage within LINQ tests
* TimeOnly ctors compilers list updated
* SqlDml: Add DateConstruct/TimeConstruct methods
* SqlServer: add support for DateConstruct/TimeConstruct
additionally, improved datetime/date/time construction for versions since v11
by using built-in functions
* Firebird: DateConstruct/TimeConstruct support
* MySQL: Add DateConstruct/TimeConstruct functions support
- updated Nuget package of client library to one that has native reading/binding of DateOnly and TimeOnly values
- when placeholder is of TimeOnly type then it is wrapped by sql function TIME(), MySQL has some issues
with values passed via parameter, even if DbType of DbParameter is set correctly.
- 5.6 and above uses built-in fuction MAKETIME instead of general approach, should be faster
* Oracle: Add DateConstruct/TimeConstruct functions support
Additionally, changed type mapping of Interval type from 'interval day to second' to 'inteval day(2) to second(6)'
which are equivalents but the last one shows precisions explicitly
* PgSQL: Add support for DateConstruct/TimeConstruct functions
* Sqlite: Support for DateConstruct/TimeConstruct
Also, reading/writing of DateOnly/TimeOnly values done correctly
* SqlExtract changes
- Dedicated SqlXxxParts for time and date
- SqlExtract node stores the widest enum - SqlDateTimeOffsetPart,
other enums share the same values of parts so it is fast-convertible from storable
enum and to it, to track actual types of argument (date, time, datetime, datetimeoffset, interval)
there is a marker, added some calculated properties which could improve code on translation
- SqlDml has overloads with SqlTimePart/SqlDatePart, which is more reliable and error-proof than
using SqlDateTimePart, SqlDateTimePart can't even be validated to prevent bad sql
* TimeOnly and DateOnly compilers use their own SqlDml.Extract()
* Support for DateOnly/TimeOnly parts extraction
Ticks part is not supported yet.
MySQL:
- time for mysql 5.5 and below does not support fractions of second, precision declaration
works from 5.6.
- changes extraction of milliseconds (seems to be working, on tests but some issues might appear)
* Reminder of certain particularity of using SqlFunctionType
* Several tests fixed, one kept ignored just in case
Net6 version works though
* Compilers use dedicated SqlDml methods for Date and Time
* Date/Time operations support
AddXxx() methods, operators, .ToString() support
- for SQLite: fixed reading of DateOnly/TimeOnly values from DbDataReader
- for MySQL: return default reading from DbDataReader
- other minor changes(formatting, copyright, etc.)
* DateOnly/TimeOnly-related tests for Linq improved
* Mysql: Fix time extraction
* Make server side timezone available for tests
* Test for data conversion on Schema upgrade
* ExpressionProcessor: additional cast to date/time in case of SQLite
* TimeOny/DateOnly parameters formatting for human readable string
* Functions to convert betwee Date/Time/DateTime/DateTimeOffset
* SqlActionTranslator uses new data conversion functions
* Conversions of date/time/datetime/datetimeoffset values
* Fix DateTypeCollection.Add
copy of fix in master
* Removed unused code
* Ignore Sqlite in certain tests
* Sqlite: time resolution increased
* Remove TimeOnly/DateOnly reading from test
The test is not suppose to be about DateOnly/TimeOnly
Such tests will be created where other types are checked
* Upgrade to SqlClient 5.1.0 with DateOnly/TimeOnly support
* TestHelper: DateTime precision workarouds for Oracle/Mysql
* Update StorageProviderVersion with new items
* Test for DateTime and TimeOnly values with microseconds
* Tests for default values and type compatibility
* Field default values of DateOnly/TimeOnly support
* Oracle: Fix wrong interval usage
* Increased precision of time for Firebird and Oracle
* Mysql: Fix wrong type of value range for DateOnly
* Mysql: Change time parameters usage in queries
* Fixed some sql tests for PostgreSQL
* PgSQL: Make_timestamp with integer hour and minute
* DateTime/TimeOnly values adjusting for test purposes changed
* Some tricky operations with datetime fractions changed
Only tests affected
* Remove DO_DATEONLY mark
and other minor changes
* TimeOnlyCompilers: No compiler for TimeOnly.Ticks
* Improve changlog
* Override Bind/Read in SqlServer's TypeMapper only
* Fix formatting
* Improve changlog
* Put Read methods to correct place within class
* Improve changelog
* Bump version to 7.1.0 RC
* Revert "Bump version to 7.1.0 RC"
This reverts commit c7ea23c.
* Keep Microsoft.Data.SqlClient v5.0.0 for net5
v5.1.0 requires System.Configuration.ConfigurationManager of version 6.0.1 and newer
* Bump version to 7.1.0 RC
* Change version to next developing
* Create changelog for developing version
* Add tests for TimeOnly(ticks) ctor
* SqlDml : add TimeConstruct method with ticks as parameter
and use it in TimeOnlyCompilers
* MSSQL: TimeConstruct with ticks
* SQLite: Support for TimeOnly(ticks) ctor
* PgSQL: Support for new TimeOnly(ticks)
* SqlDml: Literals for DateOnly and TimeOnly
* Move IsTimeSpanTicks to SqlHelper
* Oracle: Support for TimeOnly(ticks) ctor
* MySQL: Support for TimeOnly(ticks) ctor
* Firebird: support for TimeOnly(ticks)
* SqlDml.TimeToNanoseconds added
* Off-topic: Replace ArgumentValidator checks with built-in
* Test for the issue
* Add support for DefaultExpressions in expression visitors
* Improve changelog
* No session activation in ToTransactional extension
It is in use only in EntitySetBase to get entities. After this
activations are completely up to user in his code.
* Update test to not expect any of activations from EntitySet
* TimeOnly.Ticks support
* Firebird: TimeOnly construction with hours overflow check
* Oracle: TimeOnly construction with hours overflow check
+ Interval type has correct natilve type association (was already in use, see v11.Translator)
* PostgreSql: TimeOnly construction with hours overflow check
* PostgreSql: TimeOnly construction with hours overflow check
* TimeOnlys.ConstructorTest: Add hours overflow test
* Mysql: No support for TimeConstruct operation
There is no way to control hours overflow, Even MAKETIME function
returns NULL or max value if value is incorrect, this opens way to
possibly corrupted query results which is bad
* SQLite: No support for TimeConstruct
There is no way to control hours overflow, STRFTIME
returns NULL if value is incorrect, this opens way to
possibly corrupted query results which is bad.
* TimeOnlys.ConstructTest: Mysql and Sqlite are ignored
* SqlTests: added test for SqlDml.TimeConstruct(ticks)
+ ignored SQLite and MySQL in test for second variant of TimeConstruct
* Improve changelog
* Remove double check
* Copyright of files updated
* Improve changelog
* Bump version to 7.1.0 Final
* Updated version to 7.2.0-Beta-1 in development
* Created changelog
---------
Co-authored-by: Sergei Pavlov <spavlov@servicetitan.com>
Co-authored-by: Oleg Shuruev <shuruev@gmail.com>1 parent bd1a93f commit a31aa84
166 files changed
Lines changed: 9083 additions & 2372 deletions
File tree
- ChangeLog
- Extensions
- TestCommon
- Xtensive.Orm.BulkOperations/Internals
- Xtensive.Orm.Reprocessing
- Xtensive.Orm.Security
- Xtensive.Orm.Tracking
- Xtensive.Orm.Web
- Orm
- Xtensive.Orm.Firebird/Sql.Drivers.Firebird
- v2_5
- Xtensive.Orm.MySql
- Sql.Drivers.MySql
- v5_0
- v5_6
- Xtensive.Orm.Oracle/Sql.Drivers.Oracle
- v09
- v11
- Xtensive.Orm.PostgreSql/Sql.Drivers.PostgreSql
- v10_0
- v8_0
- Xtensive.Orm.SqlServer
- Sql.Drivers.SqlServer
- v09
- v10
- v11
- v13
- Xtensive.Orm.Sqlite/Sql.Drivers.Sqlite/v3
- Xtensive.Orm.Tests.Framework
- Interfaces
- Xtensive.Orm.Tests.Sql
- Firebird
- MySQL
- Oracle
- PostgreSql
- SqlServer
- Sqlite
- Xtensive.Orm.Tests
- Issues
- Linq/DateTimeAndDateTimeOffset
- DateOnly
- DateTime
- TimeOnly
- Storage
- LegacyDb
- Prefetch
- SchemaSharing/EntityManipulation
- Upgrade
- Xtensive.Orm
- Core/Extensions
- Linq
- Internals
- SerializableExpressions
- Internals
- Orm
- Building/Builders
- Linq
- MemberCompilation
- Providers
- Expressions
- MemberCompilers
- Rse/Providers/Compilable
- Upgrade/Internals
- Reflection
- Sql
- Compiler
- Internals
- Dml
- Expressions
- Info
- Internals
- ValueTypeMapping
- Tuples/Packed
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
Whitespace-only changes.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| |||
Lines changed: 9 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
| |||
95 | 96 | | |
96 | 97 | | |
97 | 98 | | |
| 99 | + | |
| 100 | + | |
98 | 101 | | |
99 | 102 | | |
100 | 103 | | |
| |||
180 | 183 | | |
181 | 184 | | |
182 | 185 | | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
183 | 191 | | |
184 | 192 | | |
185 | 193 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
| 19 | + | |
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
| 20 | + | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
| 19 | + | |
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| |||
0 commit comments