diff --git a/Session.xcodeproj/project.pbxproj b/Session.xcodeproj/project.pbxproj index 409339a6a..76d3de55f 100644 --- a/Session.xcodeproj/project.pbxproj +++ b/Session.xcodeproj/project.pbxproj @@ -464,7 +464,6 @@ FD17D7AE27F41C4300122BE0 /* SnodeReceivedMessageInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD17D7AD27F41C4300122BE0 /* SnodeReceivedMessageInfo.swift */; }; FD17D7B827F51ECA00122BE0 /* Migration.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD17D7B727F51ECA00122BE0 /* Migration.swift */; }; FD17D7BA27F51F2100122BE0 /* TargetMigrations.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD17D7B927F51F2100122BE0 /* TargetMigrations.swift */; }; - FD17D7C127F5200100122BE0 /* TypedTableDefinition.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD17D7C027F5200100122BE0 /* TypedTableDefinition.swift */; }; FD17D7C327F5204C00122BE0 /* Database+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD17D7C227F5204C00122BE0 /* Database+Utilities.swift */; }; FD17D7C727F5207C00122BE0 /* DatabaseMigrator+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD17D7C627F5207C00122BE0 /* DatabaseMigrator+Utilities.swift */; }; FD17D7CA27F546D900122BE0 /* _001_InitialSetupMigration.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD17D7C927F546D900122BE0 /* _001_InitialSetupMigration.swift */; }; @@ -640,7 +639,6 @@ FD37EA0528AA00C1003AE748 /* NotificationSettingsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD37EA0428AA00C1003AE748 /* NotificationSettingsViewModel.swift */; }; FD37EA0D28AB2A45003AE748 /* _005_FixDeletedMessageReadState.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD37EA0C28AB2A45003AE748 /* _005_FixDeletedMessageReadState.swift */; }; FD37EA0F28AB3330003AE748 /* _006_FixHiddenModAdminSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD37EA0E28AB3330003AE748 /* _006_FixHiddenModAdminSupport.swift */; }; - FD37EA1128AB34B3003AE748 /* TypedTableAlteration.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD37EA1028AB34B3003AE748 /* TypedTableAlteration.swift */; }; FD37EA1528AB42CB003AE748 /* IdentitySpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD37EA1428AB42CB003AE748 /* IdentitySpec.swift */; }; FD37EA1728AC5605003AE748 /* NotificationContentViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD37EA1628AC5605003AE748 /* NotificationContentViewModel.swift */; }; FD37EA1928AC5CCA003AE748 /* NotificationSoundViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD37EA1828AC5CCA003AE748 /* NotificationSoundViewModel.swift */; }; @@ -1734,7 +1732,6 @@ FD17D7B727F51ECA00122BE0 /* Migration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Migration.swift; sourceTree = ""; }; FD17D7B927F51F2100122BE0 /* TargetMigrations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TargetMigrations.swift; sourceTree = ""; }; FD17D7BE27F51F8200122BE0 /* ColumnExpressible.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColumnExpressible.swift; sourceTree = ""; }; - FD17D7C027F5200100122BE0 /* TypedTableDefinition.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TypedTableDefinition.swift; sourceTree = ""; }; FD17D7C227F5204C00122BE0 /* Database+Utilities.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Database+Utilities.swift"; sourceTree = ""; }; FD17D7C627F5207C00122BE0 /* DatabaseMigrator+Utilities.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DatabaseMigrator+Utilities.swift"; sourceTree = ""; }; FD17D7C927F546D900122BE0 /* _001_InitialSetupMigration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = _001_InitialSetupMigration.swift; sourceTree = ""; }; @@ -1864,7 +1861,6 @@ FD37EA0A28AB12E2003AE748 /* SessionCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionCell.swift; sourceTree = ""; }; FD37EA0C28AB2A45003AE748 /* _005_FixDeletedMessageReadState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = _005_FixDeletedMessageReadState.swift; sourceTree = ""; }; FD37EA0E28AB3330003AE748 /* _006_FixHiddenModAdminSupport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = _006_FixHiddenModAdminSupport.swift; sourceTree = ""; }; - FD37EA1028AB34B3003AE748 /* TypedTableAlteration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TypedTableAlteration.swift; sourceTree = ""; }; FD37EA1428AB42CB003AE748 /* IdentitySpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IdentitySpec.swift; sourceTree = ""; }; FD37EA1628AC5605003AE748 /* NotificationContentViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationContentViewModel.swift; sourceTree = ""; }; FD37EA1828AC5CCA003AE748 /* NotificationSoundViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSoundViewModel.swift; sourceTree = ""; }; @@ -3847,8 +3843,6 @@ FD17D7B727F51ECA00122BE0 /* Migration.swift */, FD4BB22A2D63F20600D0DC3D /* MigrationHelper.swift */, FD17D7B927F51F2100122BE0 /* TargetMigrations.swift */, - FD17D7C027F5200100122BE0 /* TypedTableDefinition.swift */, - FD37EA1028AB34B3003AE748 /* TypedTableAlteration.swift */, FD7162DA281B6C440060647B /* TypedTableAlias.swift */, FD848B8A283DC509000E298B /* PagedDatabaseObserver.swift */, ); @@ -5967,7 +5961,6 @@ FDE754DC2C9BAF8A002A2623 /* CryptoError.swift in Sources */, FDFF9FDF2A787F57005E0628 /* JSONEncoder+Utilities.swift in Sources */, FDE754CD2C9BAF37002A2623 /* UTType+Utilities.swift in Sources */, - FD17D7C127F5200100122BE0 /* TypedTableDefinition.swift in Sources */, FDE754D22C9BAF53002A2623 /* JobDependencies.swift in Sources */, FDE755242C9BC1D1002A2623 /* Publisher+Utilities.swift in Sources */, FDBB25E32988B13800F1508E /* _004_AddJobPriority.swift in Sources */, @@ -6001,7 +5994,6 @@ FDE755192C9BC169002A2623 /* UIImage+Utilities.swift in Sources */, C3BBE0AA2554D4DE0050F1E3 /* Dictionary+Utilities.swift in Sources */, FD97B2402A3FEB050027DD57 /* ARC4RandomNumberGenerator.swift in Sources */, - FD37EA1128AB34B3003AE748 /* TypedTableAlteration.swift in Sources */, FD5931AB2A8DCB0A0040147D /* ScopeAdapter+Utilities.swift in Sources */, FD4BB22B2D63F20700D0DC3D /* MigrationHelper.swift in Sources */, FD99D0872D0FA731005D2E15 /* ThreadSafe.swift in Sources */, diff --git a/SessionTests/Database/DatabaseSpec.swift b/SessionTests/Database/DatabaseSpec.swift index 367cee82e..5ec773f98 100644 --- a/SessionTests/Database/DatabaseSpec.swift +++ b/SessionTests/Database/DatabaseSpec.swift @@ -311,7 +311,10 @@ private class MigrationTest { arguments: StatementArguments(columnInfo.map { (column: Row) in // If we want to allow setting nulls (and the column is nullable but not a primary // key) then use null for it's value - guard !nullsWherePossible || column["notnull"] != 0 || column["pk"] == 1 else { + let notNull: Int = column["notnull"] + let primaryKey: Int = column["pk"] + + guard !nullsWherePossible || notNull != 0 || primaryKey == 1 else { return nil } diff --git a/SessionUtilitiesKit/Database/Types/ColumnExpressible.swift b/SessionUtilitiesKit/Database/Types/ColumnExpressible.swift index c5b023e54..032d1d193 100644 --- a/SessionUtilitiesKit/Database/Types/ColumnExpressible.swift +++ b/SessionUtilitiesKit/Database/Types/ColumnExpressible.swift @@ -14,10 +14,3 @@ public extension ColumnExpressible where Columns: CaseIterable { return Self.Columns.allCases.count } } - - -public extension ColumnExpression { - static func deprecatedColumn(_ name: String) -> Column { - return Column(name) - } -} diff --git a/SessionUtilitiesKit/Database/Types/TypedTableAlteration.swift b/SessionUtilitiesKit/Database/Types/TypedTableAlteration.swift deleted file mode 100644 index 4c21fb753..000000000 --- a/SessionUtilitiesKit/Database/Types/TypedTableAlteration.swift +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved. - -import Foundation -import GRDB - -/// This is a convenience wrapper around the GRDB `TableAlteration` class which allows for shorthand -/// when creating tables -public class TypedTableAlteration where T: TableRecord, T: ColumnExpressible { - let alteration: TableAlteration - - init(alteration: TableAlteration) { - self.alteration = alteration - } - - @discardableResult public func add(_ key: T.Columns, _ type: Database.ColumnType? = nil) -> ColumnDefinition { - return alteration.add(column: key.name, type) - } - - public func rename(column: String, to key: T.Columns) { - alteration.rename(column: column, to: key.name) - } - - public func drop(_ key: T.Columns) { - return alteration.drop(column: key.name) - } -} diff --git a/SessionUtilitiesKit/Database/Types/TypedTableDefinition.swift b/SessionUtilitiesKit/Database/Types/TypedTableDefinition.swift deleted file mode 100644 index 30ed50425..000000000 --- a/SessionUtilitiesKit/Database/Types/TypedTableDefinition.swift +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved. - -import Foundation -import GRDB - -/// This is a convenience wrapper around the GRDB `TableDefinition` class which allows for shorthand -/// when creating tables -public class TypedTableDefinition where T: TableRecord, T: ColumnExpressible { - let definition: TableDefinition - - init(definition: TableDefinition) { - self.definition = definition - } - - @discardableResult public func column(_ key: T.Columns, _ type: Database.ColumnType? = nil) -> ColumnDefinition { - return definition.column(key.name, type) - } - - @discardableResult public func deprecatedColumn(name: String, _ type: Database.ColumnType? = nil) -> ColumnDefinition { - return definition.column(name, type) - } - - public func primaryKey(_ columns: [T.Columns], onConflict: Database.ConflictResolution? = nil) { - definition.primaryKey(columns.map { $0.name }, onConflict: onConflict) - } - - public func uniqueKey(_ columns: [T.Columns], onConflict: Database.ConflictResolution? = nil) { - definition.uniqueKey(columns.map { $0.name }, onConflict: onConflict) - } - - public func foreignKey( - _ columns: [T.Columns], - references table: Other.Type, - columns destinationColumns: [Other.Columns]? = nil, - onDelete: Database.ForeignKeyAction? = nil, - onUpdate: Database.ForeignKeyAction? = nil, - deferred: Bool = false - ) where Other: TableRecord, Other: ColumnExpressible { - return definition.foreignKey( - columns.map { $0.name }, - references: table.databaseTableName, - columns: destinationColumns?.map { $0.name }, - onDelete: onDelete, - onUpdate: onUpdate, - deferred: deferred - ) - } -}