Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 95495eb

Browse files
committed
Add db long string support
1 parent c5b1a31 commit 95495eb

File tree

4 files changed

+21
-4
lines changed

4 files changed

+21
-4
lines changed

Source/Pjango/DB/PCDataBase.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ open class PCDataBase {
155155
switch field.type {
156156
case .string: return field.strValue
157157
case .int: return "\(field.intValue)"
158+
case .text: return field.strValue
158159
case .unknow: return nil
159160
}
160161
}
@@ -188,6 +189,11 @@ open class PCDataBase {
188189
return nil
189190
}
190191
return "\(intValue)"
192+
case .text:
193+
guard let textValue = value as? String else {
194+
return nil
195+
}
196+
return textValue
191197
case .unknow: return nil
192198
}
193199
}

Source/Pjango/DB/PCDataBaseField.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,13 @@ public enum PCDataBaseFieldType: String {
1212
case unknow = ""
1313
case string = "VARCHAR"
1414
case int = "INT"
15+
case text = "TEXT"
1516
}
17+
1618
public protocol PCModelDataBaseFieldType { }
1719
extension String: PCModelDataBaseFieldType { }
1820
extension Int: PCModelDataBaseFieldType { }
1921

20-
2122
final public class PCDataBaseField {
2223

2324
public weak var model: PCModel? = nil

Source/Pjango/DB/PCFileDBDataBase.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ open class PCFileDBDataBase: PCDataBase {
122122
switch field.type {
123123
case .string: return field.strValue
124124
case .int: return "\(field.intValue)"
125+
case .text: return field.strValue
125126
case .unknow: return nil
126127
}
127128
}
@@ -161,6 +162,11 @@ open class PCFileDBDataBase: PCDataBase {
161162
return nil
162163
}
163164
return "\(intValue)"
165+
case .text:
166+
guard let textValue = value as? String else {
167+
return nil
168+
}
169+
return textValue
164170
case .unknow: return nil
165171
}
166172
}

Source/Pjango/Model/PCModel.swift

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ open class PCModel: PCObject, PCViewable {
2828
case .unknow: return nil
2929
case .string: return value as? String
3030
case .int: return value as? Int
31+
case .text: return value as? String
3132
}
3233
}
3334

@@ -45,7 +46,7 @@ open class PCModel: PCObject, PCViewable {
4546
return
4647
}
4748
switch type {
48-
case .string:
49+
case .string, .text:
4950
guard let strValue = value as? String else {
5051
return
5152
}
@@ -60,7 +61,8 @@ open class PCModel: PCObject, PCViewable {
6061
return
6162
}
6263
_pjango_core_model_fields_value[key] = intValue
63-
default: return
64+
case .unknow:
65+
return
6466
}
6567
}
6668

@@ -103,7 +105,9 @@ open class PCModel: PCObject, PCViewable {
103105
guard let recordsFromDB = PjangoRuntime._pjango_runtime_database.selectTable(model: meta, ext: ext?.param) else {
104106
return nil
105107
}
106-
_pjango_core_model_cache[_pjango_core_class_name] = recordsFromDB
108+
if ext?.useCache == true {
109+
_pjango_core_model_cache[_pjango_core_class_name] = recordsFromDB
110+
}
107111
_pjango_core_model_cache_time[_pjango_core_class_name] = nowTime.timeIntervalSince1970
108112
records = recordsFromDB
109113
}

0 commit comments

Comments
 (0)