DatabaseValue
public struct DatabaseValue
DatabaseValue is the intermediate type between SQLite and your values.
-
An SQLite storage (NULL, INTEGER, REAL, TEXT, BLOB).
See moreDeclaration
Swift
public enum Storage : Equatable
-
The SQLite storage
Declaration
Swift
public let storage: Storage
-
The NULL DatabaseValue.
Declaration
Swift
public static let null = DatabaseValue(storage: .null)
-
Creates a DatabaseValue from Any.
The result is nil unless object adopts DatabaseValueConvertible.
Declaration
Swift
public init?(value: Any)
-
Returns true if databaseValue is NULL.
Declaration
Swift
public var isNull: Bool
-
The hash value
Declaration
Swift
public var hashValue: Int
-
Returns whether two DatabaseValues are equal.
1.databaseValue == "foo".databaseValue // false 1.databaseValue == 1.databaseValue // true
When comparing integers and doubles, the result is true if and only values are equal, and if converting one type to the other does not lose information:
1.databaseValue == 1.0.databaseValue // true
For a comparison that distinguishes integer and doubles, compare storages instead:
1.databaseValue.storage == 1.0.databaseValue.storage // false
Declaration
Swift
public static func == (lhs: DatabaseValue, rhs: DatabaseValue) -> Bool
-
Converts the database value to the type T.
let dbv = "foo".databaseValue let string = dbv.losslessConvert() as String // "foo"
Conversion is successful if and only if T.fromDatabaseValue returns a non-nil value.
This method crashes with a fatal error when conversion fails.
let dbv = "foo".databaseValue let int = dbv.losslessConvert() as Int // fatalError
Declaration
Swift
public func losslessConvert<T>(sql: String? = nil, arguments: StatementArguments? = nil) -> T where T : DatabaseValueConvertible
Parameters
sql
Optional SQL statement that enhances the eventual conversion error
arguments
Optional statement arguments that enhances the eventual conversion error
-
Converts the database value to the type Optional
. let dbv = "foo".databaseValue let string = dbv.losslessConvert() as String? // "foo" let null = DatabaseValue.null.losslessConvert() as String? // nil
Conversion is successful if and only if T.fromDatabaseValue returns a non-nil value.
This method crashes with a fatal error when conversion fails.
let dbv = "foo".databaseValue let int = dbv.losslessConvert() as Int? // fatalError
Declaration
Swift
public func losslessConvert<T>(sql: String? = nil, arguments: StatementArguments? = nil) -> T? where T : DatabaseValueConvertible
Parameters
sql
Optional SQL statement that enhances the eventual conversion error
arguments
Optional statement arguments that enhances the eventual conversion error
-
Returns self
Declaration
Swift
public var databaseValue: DatabaseValue
-
Returns
databaseValue
Declaration
Swift
public static func fromDatabaseValue(_ databaseValue: DatabaseValue) -> DatabaseValue?
-
This property is an implementation detail of the query interface. Do not use it directly.
See https://github.com/groue/GRDB.swift/#the-query-interface
Low Level Query Interface
See SQLExpression.sqlExpression
Declaration
Swift
public var sqlExpression: SQLExpression
-
Declaration
Swift
public func expressionSQL(_ arguments: inout StatementArguments?) -> String
-
Declaration
Swift
public var negated: SQLExpression
-
A textual representation of
self
.Declaration
Swift
public var description: String