Skip to content

Commit a249ec7

Browse files
committed
Merge branch 'hotfix/3.0.2'
2 parents 2ca2725 + 4eadc72 commit a249ec7

39 files changed

+585
-424
lines changed

GitVersionConfig.yaml

100644100755
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
assembly-versioning-scheme: MajorMinorPatch
22
next-version: 3.0.0
3+
mode: ContinuousDeployment

Npgsql-aspnet.sln

Lines changed: 0 additions & 116 deletions
This file was deleted.

Npgsql.sln

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
1717
Npgsql.snk = Npgsql.snk
1818
EndProjectSection
1919
EndProject
20-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NpgsqlDdexProvider2013", "src\NpgsqlDdexProvider\NpgsqlDdexProvider2013.csproj", "{249C6185-C3B5-4D28-A508-ABD975702A0B}"
21-
EndProject
2220
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EntityFramework6.Npgsql.Tests", "test\EntityFramework6.Npgsql.Tests\EntityFramework6.Npgsql.Tests.csproj", "{4A0A42DE-C8B8-11E4-8EC9-005056A163A4}"
2321
EndProject
2422
Global
@@ -43,10 +41,6 @@ Global
4341
{E9C258D7-0D8E-4E6A-9857-5C6438591755}.Debug|Any CPU.Build.0 = Debug|Any CPU
4442
{E9C258D7-0D8E-4E6A-9857-5C6438591755}.Release|Any CPU.ActiveCfg = Release|Any CPU
4543
{E9C258D7-0D8E-4E6A-9857-5C6438591755}.Release|Any CPU.Build.0 = Release|Any CPU
46-
{249C6185-C3B5-4D28-A508-ABD975702A0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
47-
{249C6185-C3B5-4D28-A508-ABD975702A0B}.Debug|Any CPU.Build.0 = Debug|Any CPU
48-
{249C6185-C3B5-4D28-A508-ABD975702A0B}.Release|Any CPU.ActiveCfg = Release|Any CPU
49-
{249C6185-C3B5-4D28-A508-ABD975702A0B}.Release|Any CPU.Build.0 = Release|Any CPU
5044
{4A0A42DE-C8B8-11E4-8EC9-005056A163A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
5145
{4A0A42DE-C8B8-11E4-8EC9-005056A163A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
5246
{4A0A42DE-C8B8-11E4-8EC9-005056A163A4}.Release|Any CPU.ActiveCfg = Release|Any CPU

global.json

Lines changed: 0 additions & 3 deletions
This file was deleted.

src/EntityFramework6.Npgsql/NpgsqlMigrationSqlGenerator.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,9 @@ private void Convert(HistoryOperation historyOperation)
165165
{
166166
foreach (var command in historyOperation.CommandTrees)
167167
{
168-
AddStatment(NpgsqlServices.Instance.CreateDbCommand(command).CommandText);
168+
var npgsqlCommand = new NpgsqlCommand();
169+
NpgsqlServices.Instance.TranslateCommandTree(serverVersion, command, npgsqlCommand, false);
170+
AddStatment(npgsqlCommand.CommandText);
169171
}
170172
}
171173

src/EntityFramework6.Npgsql/NpgsqlProviderManifest.cs

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,23 @@
3333
#endif
3434
using System.Xml;
3535
using System.Data;
36+
using NpgsqlTypes;
3637

3738
namespace Npgsql
3839
{
3940
internal class NpgsqlProviderManifest : DbXmlEnabledProviderManifest
4041
{
42+
private Version _version;
43+
44+
public Version Version { get { return _version; } }
45+
4146
public NpgsqlProviderManifest(string serverVersion)
4247
: base(CreateXmlReaderForResource("Npgsql.NpgsqlProviderManifest.Manifest.xml"))
4348
{
49+
if (!Version.TryParse(serverVersion, out _version))
50+
{
51+
_version = new Version(9, 5);
52+
}
4453
}
4554

4655
protected override XmlReader GetDbInformation(string informationType)
@@ -73,42 +82,41 @@ protected override XmlReader GetDbInformation(string informationType)
7382
private const string PrecisionFacet = "Precision";
7483
private const string FixedLengthFacet = "FixedLength";
7584

76-
internal static DbType GetDbType(PrimitiveTypeKind _primitiveType)
85+
internal static NpgsqlDbType GetNpgsqlDbType(PrimitiveTypeKind _primitiveType)
7786
{
7887
switch (_primitiveType)
7988
{
8089
case PrimitiveTypeKind.Binary:
81-
return DbType.Binary;
90+
return NpgsqlDbType.Bytea;
8291
case PrimitiveTypeKind.Boolean:
83-
return DbType.Boolean;
92+
return NpgsqlDbType.Boolean;
8493
case PrimitiveTypeKind.Byte:
85-
return DbType.Byte;
8694
case PrimitiveTypeKind.SByte:
87-
return DbType.SByte;
95+
case PrimitiveTypeKind.Int16:
96+
return NpgsqlDbType.Smallint;
8897
case PrimitiveTypeKind.DateTime:
89-
return DbType.DateTime;
98+
return NpgsqlDbType.Timestamp;
9099
case PrimitiveTypeKind.DateTimeOffset:
91-
return DbType.DateTimeOffset;
100+
return NpgsqlDbType.TimestampTZ;
92101
case PrimitiveTypeKind.Decimal:
93-
return DbType.Decimal;
102+
return NpgsqlDbType.Numeric;
94103
case PrimitiveTypeKind.Double:
95-
return DbType.Double;
96-
case PrimitiveTypeKind.Int16:
97-
return DbType.Int16;
104+
return NpgsqlDbType.Double;
98105
case PrimitiveTypeKind.Int32:
99-
return DbType.Int32;
106+
return NpgsqlDbType.Integer;
100107
case PrimitiveTypeKind.Int64:
101-
return DbType.Int64;
108+
return NpgsqlDbType.Bigint;
102109
case PrimitiveTypeKind.Single:
103-
return DbType.Single;
110+
return NpgsqlDbType.Real;
104111
case PrimitiveTypeKind.Time:
105-
return DbType.Time;
112+
return NpgsqlDbType.Interval;
106113
case PrimitiveTypeKind.Guid:
107-
return DbType.Guid;
114+
return NpgsqlDbType.Uuid;
108115
case PrimitiveTypeKind.String:
109-
return DbType.String;
116+
// Send strings as unknowns to be compatible with other datatypes than text
117+
return NpgsqlDbType.Unknown;
110118
default:
111-
return DbType.Object;
119+
return NpgsqlDbType.Unknown;
112120
}
113121
}
114122

src/EntityFramework6.Npgsql/NpgsqlServices.cs

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@
3737
using System.Data.Metadata.Edm;
3838
#endif
3939
using Npgsql.SqlGenerators;
40+
using System.Data;
41+
using NpgsqlTypes;
4042

4143
namespace Npgsql
4244
{
@@ -63,30 +65,30 @@ public static NpgsqlServices Instance
6365

6466
protected override DbCommandDefinition CreateDbCommandDefinition(DbProviderManifest providerManifest, DbCommandTree commandTree)
6567
{
66-
return CreateCommandDefinition(CreateDbCommand(commandTree));
68+
return CreateCommandDefinition(CreateDbCommand(((NpgsqlProviderManifest)providerManifest).Version, commandTree));
6769
}
6870

69-
internal DbCommand CreateDbCommand(DbCommandTree commandTree)
71+
internal DbCommand CreateDbCommand(Version serverVersion, DbCommandTree commandTree)
7072
{
7173
if (commandTree == null)
7274
throw new ArgumentNullException("commandTree");
7375

74-
DbCommand command = NpgsqlFactory.Instance.CreateCommand();
76+
NpgsqlCommand command = new NpgsqlCommand();
7577

7678
foreach (KeyValuePair<string, TypeUsage> parameter in commandTree.Parameters)
7779
{
78-
DbParameter dbParameter = command.CreateParameter();
80+
NpgsqlParameter dbParameter = new NpgsqlParameter();
7981
dbParameter.ParameterName = parameter.Key;
80-
dbParameter.DbType = NpgsqlProviderManifest.GetDbType(((PrimitiveType)parameter.Value.EdmType).PrimitiveTypeKind);
82+
dbParameter.NpgsqlDbType = NpgsqlProviderManifest.GetNpgsqlDbType(((PrimitiveType)parameter.Value.EdmType).PrimitiveTypeKind);
8183
command.Parameters.Add(dbParameter);
8284
}
8385

84-
TranslateCommandTree(commandTree, command);
86+
TranslateCommandTree(serverVersion, commandTree, command);
8587

8688
return command;
8789
}
8890

89-
private void TranslateCommandTree(DbCommandTree commandTree, DbCommand command)
91+
internal void TranslateCommandTree(Version serverVersion, DbCommandTree commandTree, DbCommand command, bool createParametersForNonSelect = true)
9092
{
9193
SqlBaseGenerator sqlGenerator = null;
9294

@@ -115,6 +117,9 @@ private void TranslateCommandTree(DbCommandTree commandTree, DbCommand command)
115117
// TODO: get a message (unsupported DbCommandTree type)
116118
throw new ArgumentException();
117119
}
120+
sqlGenerator._createParametersForConstants = select != null ? false : createParametersForNonSelect;
121+
sqlGenerator._command = (NpgsqlCommand)command;
122+
sqlGenerator.Version = serverVersion;
118123

119124
sqlGenerator.BuildCommand(command);
120125
}

0 commit comments

Comments
 (0)