From c029bd75fd39a6f6c905daced8d45c50b818fa55 Mon Sep 17 00:00:00 2001 From: Oskar Berggren Date: Sat, 18 Feb 2012 20:21:32 +0100 Subject: [PATCH] NpgsqlSchema: Use InvariantCulture on all return DataTables with schema data. This matches what MS' SqlClient does. This matters e.g. on Turkish culture where 'i' is not lower case for 'I'. --- src/Npgsql/NpgsqlSchema.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/Npgsql/NpgsqlSchema.cs b/src/Npgsql/NpgsqlSchema.cs index e0d0f94e4f..04dd2428ab 100644 --- a/src/Npgsql/NpgsqlSchema.cs +++ b/src/Npgsql/NpgsqlSchema.cs @@ -27,6 +27,7 @@ using System; using System.Data; +using System.Globalization; using System.IO; using System.Reflection; using System.Text; @@ -56,6 +57,7 @@ internal NpgsqlSchema(NpgsqlConnection connection) internal static DataTable GetMetaDataCollections() { DataSet ds = new DataSet(); + ds.Locale = CultureInfo.InvariantCulture; using (Stream xmlStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Npgsql.NpgsqlMetaData.xml")) { ds.ReadXml(xmlStream); @@ -70,6 +72,7 @@ internal static DataTable GetMetaDataCollections() internal static DataTable GetRestrictions() { DataSet ds = new DataSet(); + ds.Locale = CultureInfo.InvariantCulture; using (Stream xmlStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Npgsql.NpgsqlMetaData.xml")) { ds.ReadXml(xmlStream); @@ -129,6 +132,7 @@ private string RemoveSpecialChars(string paramName) internal DataTable GetDatabases(string[] restrictions) { DataTable databases = new DataTable("Databases"); + databases.Locale = CultureInfo.InvariantCulture; databases.Columns.AddRange( new DataColumn[] {new DataColumn("database_name"), new DataColumn("owner"), new DataColumn("encoding")}); @@ -157,6 +161,7 @@ internal DataTable GetDatabases(string[] restrictions) internal DataTable GetTables(string[] restrictions) { DataTable tables = new DataTable("Tables"); + tables.Locale = CultureInfo.InvariantCulture; tables.Columns.AddRange( new DataColumn[] @@ -190,6 +195,7 @@ internal DataTable GetTables(string[] restrictions) internal DataTable GetColumns(string[] restrictions) { DataTable columns = new DataTable("Columns"); + columns.Locale = CultureInfo.InvariantCulture; columns.Columns.AddRange( new DataColumn[] @@ -230,6 +236,7 @@ internal DataTable GetColumns(string[] restrictions) internal DataTable GetViews(string[] restrictions) { DataTable views = new DataTable("Views"); + views.Locale = CultureInfo.InvariantCulture; views.Columns.AddRange( new DataColumn[] @@ -262,6 +269,7 @@ internal DataTable GetViews(string[] restrictions) internal DataTable GetUsers(string[] restrictions) { DataTable users = new DataTable("Users"); + users.Locale = CultureInfo.InvariantCulture; users.Columns.AddRange(new DataColumn[] {new DataColumn("user_name"), new DataColumn("user_sysid", typeof (int))}); @@ -283,6 +291,7 @@ internal DataTable GetUsers(string[] restrictions) internal DataTable GetIndexes(string[] restrictions) { DataTable indexes = new DataTable("Indexes"); + indexes.Locale = CultureInfo.InvariantCulture; indexes.Columns.AddRange( new DataColumn[] @@ -328,6 +337,7 @@ and pg_catalog.pg_table_is_visible(i.oid) internal DataTable GetIndexColumns(string[] restrictions) { DataTable indexColumns = new DataTable("IndexColumns"); + indexColumns.Locale = CultureInfo.InvariantCulture; indexColumns.Columns.AddRange( new DataColumn[] @@ -418,6 +428,7 @@ internal static DataTable GetDataSourceInformation() public static DataTable GetReservedWords() { DataTable table = new DataTable("ReservedWords"); + table.Locale = CultureInfo.InvariantCulture; table.Columns.Add("ReservedWord", typeof (string)); // List of keywords taken from PostgreSQL 9.0 reserved words documentation. string[] keywords = new[]