Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Make sure default data type warnings are always issued when applicable. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
2413338b69d0d1bde2ba6d4be165599f |
User & Date: | mistachkin 2014-08-02 20:46:18.868 |
Context
2014-08-02
| ||
22:42 | Make the versioning tests easier to manage and maintain. check-in: fb520cf55b user: mistachkin tags: trunk | |
20:46 | Make sure default data type warnings are always issued when applicable. check-in: 2413338b69 user: mistachkin tags: trunk | |
17:33 | Update documentation comments for the DefaultDbType and DefaultTypeName properties. check-in: f4af7db4f1 user: mistachkin tags: trunk | |
Changes
Changes to System.Data.SQLite/SQLiteConvert.cs.
︙ | ︙ | |||
1104 1105 1106 1107 1108 1109 1110 1111 1112 | "Use_SQLiteConvert_DefaultTypeName", null); if (value == null) return FallbackDefaultTypeName; return value; } /// <summary> | > > > > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 | "Use_SQLiteConvert_DefaultTypeName", null); if (value == null) return FallbackDefaultTypeName; return value; } #if !NET_COMPACT_20 && TRACE_WARNING /// <summary> /// If applicable, issues a trace log message warning about falling back to /// the default database type name. /// </summary> /// <param name="dbType"> /// The database value type. /// </param> /// <param name="flags"> /// The flags associated with the parent connection object. /// </param> /// <param name="typeName"> /// The textual name of the database type. /// </param> private static void DefaultTypeNameWarning( DbType dbType, SQLiteConnectionFlags flags, string typeName ) { if ((flags & SQLiteConnectionFlags.TraceWarning) == SQLiteConnectionFlags.TraceWarning) { Trace.WriteLine(String.Format( CultureInfo.CurrentCulture, "WARNING: Type mapping failed, returning default name \"{0}\" for type {1}.", typeName, dbType)); } } /// <summary> /// If applicable, issues a trace log message warning about falling back to /// the default database value type. /// </summary> /// <param name="typeName"> /// The textual name of the database type. /// </param> /// <param name="flags"> /// The flags associated with the parent connection object. /// </param> /// <param name="dbType"> /// The database value type. /// </param> private static void DefaultDbTypeWarning( string typeName, SQLiteConnectionFlags flags, DbType? dbType ) { if (!String.IsNullOrEmpty(typeName) && ((flags & SQLiteConnectionFlags.TraceWarning) == SQLiteConnectionFlags.TraceWarning)) { Trace.WriteLine(String.Format( CultureInfo.CurrentCulture, "WARNING: Type mapping failed, returning default type {0} for name \"{1}\".", dbType, typeName)); } } #endif /// <summary> /// For a given database value type, return the "closest-match" textual database type name. /// </summary> /// <param name="connection">The connection context for custom type mappings, if any.</param> /// <param name="dbType">The database value type.</param> /// <param name="flags">The flags associated with the parent connection object.</param> /// <returns>The type name or an empty string if it cannot be determined.</returns> internal static string DbTypeToTypeName( SQLiteConnection connection, |
︙ | ︙ | |||
1144 1145 1146 1147 1148 1149 1150 | // // NOTE: Use the default database type name for the connection. // defaultTypeName = connection.DefaultTypeName; } if ((flags & SQLiteConnectionFlags.NoGlobalTypes) == SQLiteConnectionFlags.NoGlobalTypes) | > | > > > > > > > > > > | | | < < < | | > > | | 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 | // // NOTE: Use the default database type name for the connection. // defaultTypeName = connection.DefaultTypeName; } if ((flags & SQLiteConnectionFlags.NoGlobalTypes) == SQLiteConnectionFlags.NoGlobalTypes) { if (defaultTypeName != null) return defaultTypeName; defaultTypeName = GetDefaultTypeName(); #if !NET_COMPACT_20 && TRACE_WARNING DefaultTypeNameWarning(dbType, flags, defaultTypeName); #endif return defaultTypeName; } lock (_syncRoot) { if (_typeNames == null) _typeNames = GetSQLiteDbTypeMap(); SQLiteDbTypeMapping value; if (_typeNames.TryGetValue(dbType, out value)) return value.typeName; } if (defaultTypeName != null) return defaultTypeName; defaultTypeName = GetDefaultTypeName(); #if !NET_COMPACT_20 && TRACE_WARNING DefaultTypeNameWarning(dbType, flags, defaultTypeName); #endif return defaultTypeName; } /// <summary> /// Convert a DbType to a Type /// </summary> /// <param name="typ">The DbType to convert from</param> /// <returns>The closest-match .NET type</returns> |
︙ | ︙ | |||
1527 1528 1529 1530 1531 1532 1533 | // do nothing. } return false; } /// <summary> | | > > | | | | | | > | > > > > > > > > > > | | | | | | < | < < < | | > > | | 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 | // do nothing. } return false; } /// <summary> /// For a given textual database type name, return the "closest-match" database type. /// This method is called during query result processing; therefore, its performance /// is critical. /// </summary> /// <param name="connection">The connection context for custom type mappings, if any.</param> /// <param name="typeName">The textual name of the database type to match.</param> /// <param name="flags">The flags associated with the parent connection object.</param> /// <returns>The .NET DBType the text evaluates to.</returns> internal static DbType TypeNameToDbType( SQLiteConnection connection, string typeName, SQLiteConnectionFlags flags ) { DbType? defaultDbType = null; if (connection != null) { flags |= connection.Flags; if ((flags & SQLiteConnectionFlags.UseConnectionTypes) == SQLiteConnectionFlags.UseConnectionTypes) { SQLiteDbTypeMap connectionTypeNames = connection._typeNames; if (connectionTypeNames != null) { if (typeName != null) { SQLiteDbTypeMapping value; if (connectionTypeNames.TryGetValue(typeName, out value)) { return value.dataType; } else { int index = typeName.IndexOf('('); if ((index > 0) && connectionTypeNames.TryGetValue(typeName.Substring(0, index).TrimEnd(), out value)) { return value.dataType; } } } } } // // NOTE: Use the default database type for the connection. // defaultDbType = connection.DefaultDbType; } if ((flags & SQLiteConnectionFlags.NoGlobalTypes) == SQLiteConnectionFlags.NoGlobalTypes) { if (defaultDbType != null) return (DbType)defaultDbType; defaultDbType = GetDefaultDbType(); #if !NET_COMPACT_20 && TRACE_WARNING DefaultDbTypeWarning(typeName, flags, defaultDbType); #endif return (DbType)defaultDbType; } lock (_syncRoot) { if (_typeNames == null) _typeNames = GetSQLiteDbTypeMap(); if (typeName != null) { SQLiteDbTypeMapping value; if (_typeNames.TryGetValue(typeName, out value)) { return value.dataType; } else { int index = typeName.IndexOf('('); if ((index > 0) && _typeNames.TryGetValue(typeName.Substring(0, index).TrimEnd(), out value)) { return value.dataType; } } } } if (defaultDbType != null) return (DbType)defaultDbType; defaultDbType = GetDefaultDbType(); #if !NET_COMPACT_20 && TRACE_WARNING DefaultDbTypeWarning(typeName, flags, defaultDbType); #endif return (DbType)defaultDbType; } #endregion private static object _syncRoot = new object(); private static SQLiteDbTypeMap _typeNames = null; } |
︙ | ︙ |