DatabaseValue

public struct DatabaseValue : Hashable, CustomStringConvertible, DatabaseValueConvertible, SQLSpecificExpressible
extension DatabaseValue: StatementBinding
extension DatabaseValue: GRDBSendable

DatabaseValue is the intermediate type between SQLite and your values.

See https://www.sqlite.org/datatype3.html

Extracting Value

  • Returns true if databaseValue is NULL.

    Declaration

    Swift

    public var isNull: Bool { get }

DatabaseValue

Hashable & Equatable

  • 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
  • Returns self

    Declaration

    Swift

    public var databaseValue: DatabaseValue { get }
  • Returns the database value

    Declaration

    Swift

    public static func fromDatabaseValue(_ dbValue: DatabaseValue) -> DatabaseValue?
  • Declaration

    Swift

    public var sqlExpression: SQLExpression { get }