|
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