|
1 | 1 | using System.Buffers;
|
2 | 2 | using System.Buffers.Text;
|
| 3 | +using System.Globalization; |
| 4 | +using System.Numerics; |
3 | 5 | using System.Text;
|
4 | 6 | using MySqlConnector.Core;
|
5 | 7 | using MySqlConnector.Logging;
|
@@ -550,6 +552,16 @@ static bool WriteValue(MySqlConnection connection, object value, ref int inputIn
|
550 | 552 | // store as UTC as it will be read as such when deserialized from a timespan column
|
551 | 553 | return WriteString("{0:yyyy'-'MM'-'dd' 'HH':'mm':'ss'.'ffffff}".FormatInvariant(dateTimeOffsetValue.UtcDateTime), ref utf8Encoder, output, out bytesWritten);
|
552 | 554 | }
|
| 555 | +#if NET6_0_OR_GREATER |
| 556 | + else if (value is DateOnly dateOnlyValue) |
| 557 | + { |
| 558 | + return WriteString("timestamp('{0:yyyy'-'MM'-'dd}')".FormatInvariant(dateOnlyValue), ref utf8Encoder, output, out bytesWritten); |
| 559 | + } |
| 560 | + else if (value is TimeOnly timeOnlyValue) |
| 561 | + { |
| 562 | + return WriteString("time '{0:HH':'mm':'ss'.'ffffff}'".FormatInvariant(timeOnlyValue), ref utf8Encoder, output, out bytesWritten); |
| 563 | + } |
| 564 | +#endif |
553 | 565 | else if (value is TimeSpan ts)
|
554 | 566 | {
|
555 | 567 | var isNegative = false;
|
@@ -594,6 +606,14 @@ static bool WriteValue(MySqlConnection connection, object value, ref int inputIn
|
594 | 606 | {
|
595 | 607 | return WriteString("{0:d}".FormatInvariant(value), ref utf8Encoder, output, out bytesWritten);
|
596 | 608 | }
|
| 609 | + else if (value is BigInteger bigInteger) |
| 610 | + { |
| 611 | + return WriteString(bigInteger.ToString(CultureInfo.InvariantCulture), ref utf8Encoder, output, out bytesWritten); |
| 612 | + } |
| 613 | + else if (value is MySqlDecimal mySqlDecimal) |
| 614 | + { |
| 615 | + return WriteString(mySqlDecimal.ToString(), ref utf8Encoder, output, out bytesWritten); |
| 616 | + } |
597 | 617 | else
|
598 | 618 | {
|
599 | 619 | throw new NotSupportedException("Type {0} not currently supported. Value: {1}".FormatInvariant(value.GetType().Name, value));
|
|
0 commit comments