private StorageTypeInfo CreateType(Type type, int?length, int?precision, int?scale)
        {
            var sqlValueType = driver.MapValueType(type, length, precision, scale);

            return(new StorageTypeInfo(
                       driver.MapSqlType(sqlValueType.Type), sqlValueType, sqlValueType.Length, sqlValueType.Precision, sqlValueType.Scale));
        }
        /// <summary>
        /// Extracts the <see cref="StorageTypeInfo"/> from <see cref="TableColumn"/>.
        /// </summary>
        /// <param name="column">The column.</param>
        /// <returns>Data type.</returns>
        private StorageTypeInfo ExtractType(TableColumn column)
        {
            var  sqlValueType = column.DataType;
            Type type;

            try {
                type = driver.MapSqlType(sqlValueType.Type);
            }
            catch (ArgumentException) {
                return(StorageTypeInfo.Undefined);
            }

            if (column.IsNullable)
            {
                type = type.ToNullable();
            }

            return(new StorageTypeInfo(type, sqlValueType, column.IsNullable, sqlValueType.Length, sqlValueType.Precision, sqlValueType.Scale));
        }