Improved progress display
Previously, the progress bar updated only after completing an entire table. For large tables such as LIBARC, this could make the application appear to have stopped responding. Phase 10 updates the interface while rows are being exported.
This commit is contained in:
@@ -0,0 +1,10 @@
|
|||||||
|
# Phase 13 — Administration enhancements
|
||||||
|
|
||||||
|
- Added Server Error Log view (reads `performance_schema.error_log`, available on supported MySQL versions and with appropriate privileges).
|
||||||
|
- Added filter/search for administration result tables.
|
||||||
|
- Added optional 5-second auto-refresh of administration data.
|
||||||
|
- Added account selection and read-only `SHOW GRANTS` inspector to Users and Privileges.
|
||||||
|
- Existing backup/restore functionality preserved.
|
||||||
|
- No user account or server mutations are performed by these features.
|
||||||
|
|
||||||
|
**Validation:** Source-level checks and ZIP integrity only; full macOS Xcode build and live-server tests are still required.
|
||||||
@@ -282,7 +282,8 @@ struct MainView: View {
|
|||||||
.serverStatus,
|
.serverStatus,
|
||||||
.clientConnections,
|
.clientConnections,
|
||||||
.users,
|
.users,
|
||||||
.variables
|
.variables,
|
||||||
|
.serverLogs
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1272,11 +1273,13 @@ enum WorkbenchAdminPage: String, CaseIterable, Identifiable {
|
|||||||
case dashboard = "Dashboard"
|
case dashboard = "Dashboard"
|
||||||
case performanceReports = "Performance Reports"
|
case performanceReports = "Performance Reports"
|
||||||
case performanceSchema = "Performance Schema Setup"
|
case performanceSchema = "Performance Schema Setup"
|
||||||
|
case serverLogs = "Server Error Log"
|
||||||
|
|
||||||
var id: String { rawValue }
|
var id: String { rawValue }
|
||||||
|
|
||||||
var icon: String {
|
var icon: String {
|
||||||
switch self {
|
switch self {
|
||||||
|
case .serverLogs: return "text.alignleft"
|
||||||
case .serverStatus: return "server.rack"
|
case .serverStatus: return "server.rack"
|
||||||
case .clientConnections: return "person.2"
|
case .clientConnections: return "person.2"
|
||||||
case .users: return "person.crop.circle.badge.checkmark"
|
case .users: return "person.crop.circle.badge.checkmark"
|
||||||
@@ -1289,6 +1292,8 @@ enum WorkbenchAdminPage: String, CaseIterable, Identifiable {
|
|||||||
|
|
||||||
var statement: String {
|
var statement: String {
|
||||||
switch self {
|
switch self {
|
||||||
|
case .serverLogs:
|
||||||
|
return "SELECT LOGGED, PRIO, ERROR_CODE, SUBSYSTEM, DATA FROM performance_schema.error_log ORDER BY LOGGED DESC LIMIT 500"
|
||||||
case .serverStatus:
|
case .serverStatus:
|
||||||
return """
|
return """
|
||||||
SHOW GLOBAL STATUS WHERE Variable_name IN (
|
SHOW GLOBAL STATUS WHERE Variable_name IN (
|
||||||
@@ -1359,6 +1364,19 @@ struct WorkbenchAdministrationView: View {
|
|||||||
@State private var loading = false
|
@State private var loading = false
|
||||||
@State private var errorMessage: String?
|
@State private var errorMessage: String?
|
||||||
@State private var lastUpdated: Date?
|
@State private var lastUpdated: Date?
|
||||||
|
@State private var searchText = ""
|
||||||
|
@State private var autoRefresh = false
|
||||||
|
@State private var selectedAccount: String? = nil
|
||||||
|
@State private var grants: [String] = []
|
||||||
|
@State private var grantsError: String? = nil
|
||||||
|
@State private var showingGrants = false
|
||||||
|
|
||||||
|
private var filteredRows: [[String]] {
|
||||||
|
guard !searchText.isEmpty else { return result.rows }
|
||||||
|
return result.rows.filter { row in
|
||||||
|
row.contains { $0.localizedCaseInsensitiveContains(searchText) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
VStack(spacing: 0) {
|
VStack(spacing: 0) {
|
||||||
@@ -1399,6 +1417,31 @@ struct WorkbenchAdministrationView: View {
|
|||||||
resultContent
|
resultContent
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if page == .users && !result.rows.isEmpty {
|
||||||
|
HStack {
|
||||||
|
Picker("Account", selection: $selectedAccount) {
|
||||||
|
Text("Select account").tag(String?.none)
|
||||||
|
ForEach(result.rows.indices, id: \.self) { i in
|
||||||
|
let row = result.rows[i]
|
||||||
|
if row.count >= 2 {
|
||||||
|
Text("\(row[0])@\(row[1])")
|
||||||
|
.tag(Optional("\(row[0])\u{001f}\(row[1])"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.frame(maxWidth: 320)
|
||||||
|
Button("Show Grants") {
|
||||||
|
Task { await showGrants() }
|
||||||
|
}
|
||||||
|
.disabled(selectedAccount == nil)
|
||||||
|
Spacer()
|
||||||
|
Text("Read-only account inspection")
|
||||||
|
.foregroundStyle(.secondary)
|
||||||
|
}
|
||||||
|
.padding(.horizontal, 16)
|
||||||
|
.padding(.vertical, 8)
|
||||||
|
}
|
||||||
|
|
||||||
Divider()
|
Divider()
|
||||||
|
|
||||||
footer
|
footer
|
||||||
@@ -1407,6 +1450,32 @@ struct WorkbenchAdministrationView: View {
|
|||||||
.task(id: "\(page.id)-\(profile?.id.uuidString ?? "")") {
|
.task(id: "\(page.id)-\(profile?.id.uuidString ?? "")") {
|
||||||
await refresh()
|
await refresh()
|
||||||
}
|
}
|
||||||
|
.task(id: "\(page.id)-\(autoRefresh)-\(profile?.id.uuidString ?? "")") {
|
||||||
|
while autoRefresh && !Task.isCancelled {
|
||||||
|
try? await Task.sleep(for: .seconds(5))
|
||||||
|
if Task.isCancelled || !autoRefresh { break }
|
||||||
|
await refresh()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.sheet(isPresented: $showingGrants) {
|
||||||
|
VStack(alignment: .leading, spacing: 12) {
|
||||||
|
Text("Grants: \(selectedAccount ?? "")")
|
||||||
|
.font(.title2.bold())
|
||||||
|
if let grantsError {
|
||||||
|
Text(grantsError).foregroundStyle(.red)
|
||||||
|
} else {
|
||||||
|
ScrollView {
|
||||||
|
Text(grants.joined(separator: "\n\n"))
|
||||||
|
.font(.system(.body, design: .monospaced))
|
||||||
|
.textSelection(.enabled)
|
||||||
|
.frame(maxWidth: .infinity, alignment: .leading)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Button("Close") { showingGrants = false }
|
||||||
|
}
|
||||||
|
.padding(20)
|
||||||
|
.frame(minWidth: 580, minHeight: 300)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private var header: some View {
|
private var header: some View {
|
||||||
@@ -1427,6 +1496,16 @@ struct WorkbenchAdministrationView: View {
|
|||||||
|
|
||||||
Spacer()
|
Spacer()
|
||||||
|
|
||||||
|
if page != .dashboard && page != .serverStatus {
|
||||||
|
TextField("Filter results", text: $searchText)
|
||||||
|
.textFieldStyle(.roundedBorder)
|
||||||
|
.frame(width: 175)
|
||||||
|
}
|
||||||
|
|
||||||
|
Toggle("Auto-refresh", isOn: $autoRefresh)
|
||||||
|
.toggleStyle(.checkbox)
|
||||||
|
.help("Refresh every five seconds")
|
||||||
|
|
||||||
Button {
|
Button {
|
||||||
Task { await refresh() }
|
Task { await refresh() }
|
||||||
} label: {
|
} label: {
|
||||||
@@ -1499,7 +1578,7 @@ struct WorkbenchAdministrationView: View {
|
|||||||
} else {
|
} else {
|
||||||
NativeResultGrid(
|
NativeResultGrid(
|
||||||
columns: result.columns,
|
columns: result.columns,
|
||||||
rows: result.rows
|
rows: filteredRows
|
||||||
)
|
)
|
||||||
.frame(
|
.frame(
|
||||||
maxWidth: .infinity,
|
maxWidth: .infinity,
|
||||||
@@ -1528,6 +1607,29 @@ struct WorkbenchAdministrationView: View {
|
|||||||
.frame(height: 30)
|
.frame(height: 30)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@MainActor
|
||||||
|
private func showGrants() async {
|
||||||
|
guard let profile, let selectedAccount else { return }
|
||||||
|
let components = selectedAccount.split(separator: "\u{001f}", omittingEmptySubsequences: false)
|
||||||
|
guard components.count == 2 else { return }
|
||||||
|
func quoted(_ text: String) -> String {
|
||||||
|
"'" + text.replacingOccurrences(of: "'", with: "''") + "'"
|
||||||
|
}
|
||||||
|
grants = []
|
||||||
|
grantsError = nil
|
||||||
|
showingGrants = true
|
||||||
|
do {
|
||||||
|
let sql = "SHOW GRANTS FOR \(quoted(String(components[0])))@\(quoted(String(components[1])))"
|
||||||
|
let response = try await NativeMySQLRunner.run(
|
||||||
|
profile: profile, database: "",
|
||||||
|
password: PasswordStore.read(profile.id), sql: sql
|
||||||
|
)
|
||||||
|
grants = response.rows.compactMap { $0.first }
|
||||||
|
} catch {
|
||||||
|
grantsError = error.localizedDescription
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@MainActor
|
@MainActor
|
||||||
private func refresh() async {
|
private func refresh() async {
|
||||||
guard let profile else {
|
guard let profile else {
|
||||||
|
|||||||
BIN
Binary file not shown.
+401
-305
@@ -55,7 +55,7 @@
|
|||||||
"key": "Set as Default Schema",
|
"key": "Set as Default Schema",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 24,
|
"startingColumn": 24,
|
||||||
"startingLine": 381
|
"startingLine": 382
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -63,7 +63,7 @@
|
|||||||
"key": "Refresh Tables",
|
"key": "Refresh Tables",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 24,
|
"startingColumn": 24,
|
||||||
"startingLine": 385
|
"startingLine": 386
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -71,7 +71,7 @@
|
|||||||
"key": "Load Tables",
|
"key": "Load Tables",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 28,
|
"startingColumn": 28,
|
||||||
"startingLine": 455
|
"startingLine": 456
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -79,7 +79,7 @@
|
|||||||
"key": "Tables",
|
"key": "Tables",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 22,
|
"startingColumn": 22,
|
||||||
"startingLine": 428
|
"startingLine": 429
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -87,7 +87,7 @@
|
|||||||
"key": "Select First 100 Rows",
|
"key": "Select First 100 Rows",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 20,
|
"startingColumn": 20,
|
||||||
"startingLine": 511
|
"startingLine": 512
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -95,7 +95,7 @@
|
|||||||
"key": "New Query Tab",
|
"key": "New Query Tab",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 19,
|
"startingColumn": 19,
|
||||||
"startingLine": 632
|
"startingLine": 633
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -103,7 +103,7 @@
|
|||||||
"key": "Default Schema:",
|
"key": "Default Schema:",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 18,
|
"startingColumn": 18,
|
||||||
"startingLine": 657
|
"startingLine": 658
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -111,7 +111,7 @@
|
|||||||
"key": "SQL Editor",
|
"key": "SQL Editor",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 18,
|
"startingColumn": 18,
|
||||||
"startingLine": 667
|
"startingLine": 668
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -119,7 +119,7 @@
|
|||||||
"key": "Execute SQL",
|
"key": "Execute SQL",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 19,
|
"startingColumn": 19,
|
||||||
"startingLine": 645
|
"startingLine": 646
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -127,7 +127,7 @@
|
|||||||
"key": "Format SQL",
|
"key": "Format SQL",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 19,
|
"startingColumn": 19,
|
||||||
"startingLine": 652
|
"startingLine": 653
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -135,7 +135,7 @@
|
|||||||
"key": "%lld",
|
"key": "%lld",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 26,
|
"startingColumn": 26,
|
||||||
"startingLine": 707
|
"startingLine": 708
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -143,7 +143,7 @@
|
|||||||
"key": "Result Grid",
|
"key": "Result Grid",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 22,
|
"startingColumn": 22,
|
||||||
"startingLine": 739
|
"startingLine": 740
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -151,7 +151,7 @@
|
|||||||
"key": "No query results",
|
"key": "No query results",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 26,
|
"startingColumn": 26,
|
||||||
"startingLine": 757
|
"startingLine": 758
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -159,7 +159,7 @@
|
|||||||
"key": "Action Output",
|
"key": "Action Output",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 22,
|
"startingColumn": 22,
|
||||||
"startingLine": 779
|
"startingLine": 780
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -167,7 +167,7 @@
|
|||||||
"key": "UTF-8",
|
"key": "UTF-8",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 18,
|
"startingColumn": 18,
|
||||||
"startingLine": 854
|
"startingLine": 855
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -175,7 +175,7 @@
|
|||||||
"key": "Connection Settings",
|
"key": "Connection Settings",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 18,
|
"startingColumn": 18,
|
||||||
"startingLine": 1029
|
"startingLine": 1030
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -183,7 +183,7 @@
|
|||||||
"key": "Connection Name",
|
"key": "Connection Name",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 21,
|
"startingColumn": 21,
|
||||||
"startingLine": 1034
|
"startingLine": 1035
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -191,7 +191,7 @@
|
|||||||
"key": "Hostname",
|
"key": "Hostname",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 21,
|
"startingColumn": 21,
|
||||||
"startingLine": 1039
|
"startingLine": 1040
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -199,7 +199,7 @@
|
|||||||
"key": "Port",
|
"key": "Port",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 21,
|
"startingColumn": 21,
|
||||||
"startingLine": 1044
|
"startingLine": 1045
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -207,7 +207,7 @@
|
|||||||
"key": "Username",
|
"key": "Username",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 21,
|
"startingColumn": 21,
|
||||||
"startingLine": 1050
|
"startingLine": 1051
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -215,7 +215,7 @@
|
|||||||
"key": "Password (macOS Keychain)",
|
"key": "Password (macOS Keychain)",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 21,
|
"startingColumn": 21,
|
||||||
"startingLine": 1055
|
"startingLine": 1056
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -223,7 +223,7 @@
|
|||||||
"key": "Default Schema",
|
"key": "Default Schema",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 21,
|
"startingColumn": 21,
|
||||||
"startingLine": 1060
|
"startingLine": 1061
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -231,7 +231,7 @@
|
|||||||
"key": "Cancel",
|
"key": "Cancel",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 24,
|
"startingColumn": 24,
|
||||||
"startingLine": 1068
|
"startingLine": 1069
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -239,7 +239,7 @@
|
|||||||
"key": "Save",
|
"key": "Save",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 24,
|
"startingColumn": 24,
|
||||||
"startingLine": 1072
|
"startingLine": 1073
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -247,7 +247,7 @@
|
|||||||
"key": "The server did not return any columns.",
|
"key": "The server did not return any columns.",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 25,
|
"startingColumn": 25,
|
||||||
"startingLine": 1394
|
"startingLine": 1412
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -255,7 +255,7 @@
|
|||||||
"key": "Loading %@…",
|
"key": "Loading %@…",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 30,
|
"startingColumn": 30,
|
||||||
"startingLine": 1372
|
"startingLine": 1390
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -263,7 +263,7 @@
|
|||||||
"key": "No Data",
|
"key": "No Data",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 21,
|
"startingColumn": 21,
|
||||||
"startingLine": 1391
|
"startingLine": 1409
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -271,7 +271,7 @@
|
|||||||
"key": "Unable to Load %@",
|
"key": "Unable to Load %@",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 25,
|
"startingColumn": 25,
|
||||||
"startingLine": 1378
|
"startingLine": 1396
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -279,295 +279,55 @@
|
|||||||
"key": "Retry",
|
"key": "Retry",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 28,
|
"startingColumn": 28,
|
||||||
"startingLine": 1384
|
"startingLine": 1402
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"comment": "",
|
"comment": "",
|
||||||
"key": "Refresh",
|
"key": "Read-only account inspection",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 23,
|
"startingColumn": 26,
|
||||||
|
"startingLine": 1438
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Account",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 28,
|
||||||
|
"startingLine": 1422
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Show Grants",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 28,
|
||||||
"startingLine": 1433
|
"startingLine": 1433
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"comment": "",
|
"comment": "",
|
||||||
"key": "SQL Editor",
|
"key": "Select account",
|
||||||
"location": {
|
|
||||||
"startingColumn": 23,
|
|
||||||
"startingLine": 1440
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "Not loaded",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 22,
|
|
||||||
"startingLine": 1518
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "Updated %@",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 21,
|
|
||||||
"startingLine": 1515
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "%lld rows",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 18,
|
|
||||||
"startingLine": 1523
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "Import SQL into %@?",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 13,
|
|
||||||
"startingLine": 1789
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "Operation",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 20,
|
|
||||||
"startingLine": 1603
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "Data Export",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 22,
|
|
||||||
"startingLine": 1604
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "Data Import / Restore",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 22,
|
|
||||||
"startingLine": 1605
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "MySQL Connection",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 26,
|
|
||||||
"startingLine": 1612
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "Export Options",
|
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 30,
|
"startingColumn": 30,
|
||||||
"startingLine": 1636
|
"startingLine": 1423
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"comment": "",
|
"comment": "",
|
||||||
"key": "Import Options",
|
"key": "%@@%@",
|
||||||
"location": {
|
|
||||||
"startingColumn": 30,
|
|
||||||
"startingLine": 1692
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "Progress",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 26,
|
|
||||||
"startingLine": 1704
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "Connection",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 36,
|
|
||||||
"startingLine": 1614
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "Database",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 28,
|
|
||||||
"startingLine": 1618
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "Select Database",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 30,
|
|
||||||
"startingLine": 1619
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "Refresh Databases",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 32,
|
|
||||||
"startingLine": 1627
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "No tables found. Select a database or refresh the list.",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 34,
|
|
||||||
"startingLine": 1658
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "InnoDB data is exported using a consistent snapshot and a single streamed query per table. Tables without unique indexes are supported.",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 30,
|
|
||||||
"startingLine": 1687
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "Table structure",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 32,
|
|
||||||
"startingLine": 1638
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "Table data",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 32,
|
|
||||||
"startingLine": 1639
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "Add DROP TABLE IF EXISTS",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 32,
|
|
||||||
"startingLine": 1640
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "Include views (definitions)",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 32,
|
|
||||||
"startingLine": 1642
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "Include triggers",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 32,
|
|
||||||
"startingLine": 1644
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "Include stored procedures and functions",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 32,
|
|
||||||
"startingLine": 1646
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "Loading tables…",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 57,
|
|
||||||
"startingLine": 1656
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "Tables (%lld selected)",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 34,
|
|
||||||
"startingLine": 1649
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "All",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 36,
|
|
||||||
"startingLine": 1651
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "None",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 36,
|
|
||||||
"startingLine": 1652
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "Refresh",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 36,
|
|
||||||
"startingLine": 1653
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "Views (%lld selected)",
|
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 38,
|
"startingColumn": 38,
|
||||||
"startingLine": 1672
|
"startingLine": 1427
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"comment": "",
|
"comment": "",
|
||||||
"key": "All",
|
"key": "Grants: %@",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 40,
|
"startingColumn": 22,
|
||||||
"startingLine": 1674
|
"startingLine": 1462
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "None",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 40,
|
|
||||||
"startingLine": 1675
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "Import SQL statements into the selected database.",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 30,
|
|
||||||
"startingLine": 1694
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "Supports MySQL DELIMITER directives, triggers and stored routines. Import is not transactional; use a verified backup before restoring.",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 30,
|
|
||||||
"startingLine": 1697
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"comment": "",
|
|
||||||
"key": "Current table: %@ / %@ rows · Total exported: %@",
|
|
||||||
"location": {
|
|
||||||
"startingColumn": 30,
|
|
||||||
"startingLine": 1715
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -575,7 +335,327 @@
|
|||||||
"key": "Close",
|
"key": "Close",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 24,
|
"startingColumn": 24,
|
||||||
"startingLine": 1729
|
"startingLine": 1474
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Filter results",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 27,
|
||||||
|
"startingLine": 1500
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Auto-refresh",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 20,
|
||||||
|
"startingLine": 1505
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Refresh every five seconds",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 23,
|
||||||
|
"startingLine": 1507
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Refresh",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 23,
|
||||||
|
"startingLine": 1512
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "SQL Editor",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 23,
|
||||||
|
"startingLine": 1519
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Not loaded",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 22,
|
||||||
|
"startingLine": 1597
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Updated %@",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 21,
|
||||||
|
"startingLine": 1594
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "%lld rows",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 18,
|
||||||
|
"startingLine": 1602
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Import SQL into %@?",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 13,
|
||||||
|
"startingLine": 1904
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Operation",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 20,
|
||||||
|
"startingLine": 1707
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Data Export",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 22,
|
||||||
|
"startingLine": 1708
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Data Import / Restore",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 22,
|
||||||
|
"startingLine": 1709
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "MySQL Connection",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 26,
|
||||||
|
"startingLine": 1716
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Export Options",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 30,
|
||||||
|
"startingLine": 1740
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Import Options",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 30,
|
||||||
|
"startingLine": 1796
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Progress",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 26,
|
||||||
|
"startingLine": 1808
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Connection",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 36,
|
||||||
|
"startingLine": 1718
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Database",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 28,
|
||||||
|
"startingLine": 1722
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Select Database",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 30,
|
||||||
|
"startingLine": 1723
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Refresh Databases",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 32,
|
||||||
|
"startingLine": 1731
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "No tables found. Select a database or refresh the list.",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 34,
|
||||||
|
"startingLine": 1762
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "InnoDB data is exported using a consistent snapshot and a single streamed query per table. Tables without unique indexes are supported.",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 30,
|
||||||
|
"startingLine": 1791
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Table structure",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 32,
|
||||||
|
"startingLine": 1742
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Table data",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 32,
|
||||||
|
"startingLine": 1743
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Add DROP TABLE IF EXISTS",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 32,
|
||||||
|
"startingLine": 1744
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Include views (definitions)",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 32,
|
||||||
|
"startingLine": 1746
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Include triggers",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 32,
|
||||||
|
"startingLine": 1748
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Include stored procedures and functions",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 32,
|
||||||
|
"startingLine": 1750
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Loading tables…",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 57,
|
||||||
|
"startingLine": 1760
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Tables (%lld selected)",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 34,
|
||||||
|
"startingLine": 1753
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "All",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 36,
|
||||||
|
"startingLine": 1755
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "None",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 36,
|
||||||
|
"startingLine": 1756
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Refresh",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 36,
|
||||||
|
"startingLine": 1757
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Views (%lld selected)",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 38,
|
||||||
|
"startingLine": 1776
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "All",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 40,
|
||||||
|
"startingLine": 1778
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "None",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 40,
|
||||||
|
"startingLine": 1779
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Import SQL statements into the selected database.",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 30,
|
||||||
|
"startingLine": 1798
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Supports MySQL DELIMITER directives, triggers and stored routines. Import is not transactional; use a verified backup before restoring.",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 30,
|
||||||
|
"startingLine": 1801
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Current table: %@ / %@ rows · Total exported: %@",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 30,
|
||||||
|
"startingLine": 1825
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Close",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 24,
|
||||||
|
"startingLine": 1839
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -583,7 +663,7 @@
|
|||||||
"key": "Verify Backup…",
|
"key": "Verify Backup…",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 28,
|
"startingColumn": 28,
|
||||||
"startingLine": 1737
|
"startingLine": 1847
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -591,7 +671,23 @@
|
|||||||
"key": "Verify an SQL file against its SHA-256 checksum sidecar",
|
"key": "Verify an SQL file against its SHA-256 checksum sidecar",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 27,
|
"startingColumn": 27,
|
||||||
"startingLine": 1740
|
"startingLine": 1850
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Verify Restored Database…",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 28,
|
||||||
|
"startingLine": 1851
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment": "",
|
||||||
|
"key": "Compare restored table row counts and object names with the export manifest",
|
||||||
|
"location": {
|
||||||
|
"startingColumn": 27,
|
||||||
|
"startingLine": 1855
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -599,7 +695,7 @@
|
|||||||
"key": "Cancel",
|
"key": "Cancel",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 28,
|
"startingColumn": 28,
|
||||||
"startingLine": 1744
|
"startingLine": 1859
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -607,7 +703,7 @@
|
|||||||
"key": "Export SQL…",
|
"key": "Export SQL…",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 31,
|
"startingColumn": 31,
|
||||||
"startingLine": 1751
|
"startingLine": 1866
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -615,7 +711,7 @@
|
|||||||
"key": "Import SQL…",
|
"key": "Import SQL…",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 31,
|
"startingColumn": 31,
|
||||||
"startingLine": 1752
|
"startingLine": 1867
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -623,7 +719,7 @@
|
|||||||
"key": "Import SQL",
|
"key": "Import SQL",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 20,
|
"startingColumn": 20,
|
||||||
"startingLine": 1792
|
"startingLine": 1907
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -631,7 +727,7 @@
|
|||||||
"key": "Cancel",
|
"key": "Cancel",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 20,
|
"startingColumn": 20,
|
||||||
"startingLine": 1800
|
"startingLine": 1915
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -639,7 +735,7 @@
|
|||||||
"key": "SQL files can modify or delete existing database objects and data. Ensure you have a backup before continuing.",
|
"key": "SQL files can modify or delete existing database objects and data. Ensure you have a backup before continuing.",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 17,
|
"startingColumn": 17,
|
||||||
"startingLine": 1805
|
"startingLine": 1920
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -647,7 +743,7 @@
|
|||||||
"key": "Database Import / Export",
|
"key": "Database Import / Export",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 22,
|
"startingColumn": 22,
|
||||||
"startingLine": 1817
|
"startingLine": 1932
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -655,7 +751,7 @@
|
|||||||
"key": "Built-in native MySQL database tools",
|
"key": "Built-in native MySQL database tools",
|
||||||
"location": {
|
"location": {
|
||||||
"startingColumn": 22,
|
"startingColumn": 22,
|
||||||
"startingLine": 1820
|
"startingLine": 1935
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
@@ -17,3 +17,5 @@
|
|||||||
/Volumes/Developer/Applications/WorkbenchReplacement/build/Build/Products/Debug/WorkbenchReplacement.app
|
/Volumes/Developer/Applications/WorkbenchReplacement/build/Build/Products/Debug/WorkbenchReplacement.app
|
||||||
/Volumes/Developer/Applications/WorkbenchReplacement/build/Build/Products/Debug/WorkbenchReplacement.app
|
/Volumes/Developer/Applications/WorkbenchReplacement/build/Build/Products/Debug/WorkbenchReplacement.app
|
||||||
/Volumes/Developer/Applications/WorkbenchReplacement/build/Build/Products/Debug/WorkbenchReplacement.app
|
/Volumes/Developer/Applications/WorkbenchReplacement/build/Build/Products/Debug/WorkbenchReplacement.app
|
||||||
|
/Volumes/Developer/Applications/WorkbenchReplacement/build/Build/Products/Debug/WorkbenchReplacement.app
|
||||||
|
/Volumes/Developer/Applications/WorkbenchReplacement/build/Build/Products/Debug/WorkbenchReplacement.app
|
||||||
|
|||||||
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
+1
-1
@@ -19,7 +19,7 @@
|
|||||||
<dict>
|
<dict>
|
||||||
<key>cdhash</key>
|
<key>cdhash</key>
|
||||||
<data>
|
<data>
|
||||||
NSM7hOCoNX+DMsteke6Yge2XHGs=
|
lXsCGsMbs4xf0Myx5xVMRot9mP8=
|
||||||
</data>
|
</data>
|
||||||
<key>requirement</key>
|
<key>requirement</key>
|
||||||
<string>identifier "WorkbenchReplacement.debug" and anchor apple generic and certificate leaf[subject.CN] = "Apple Development: Mark Gregory (FLBRJ3BYDD)" and certificate 1[field.1.2.840.113635.100.6.2.1] /* exists */</string>
|
<string>identifier "WorkbenchReplacement.debug" and anchor apple generic and certificate leaf[subject.CN] = "Apple Development: Mark Gregory (FLBRJ3BYDD)" and certificate 1[field.1.2.840.113635.100.6.2.1] /* exists */</string>
|
||||||
|
|||||||
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
@@ -90,6 +90,48 @@
|
|||||||
<key>uniqueIdentifier</key>
|
<key>uniqueIdentifier</key>
|
||||||
<string>B2C949DC-0503-4157-BC15-F74641625B50</string>
|
<string>B2C949DC-0503-4157-BC15-F74641625B50</string>
|
||||||
</dict>
|
</dict>
|
||||||
|
<key>B8940B11-E198-4118-908A-6DCC06A473A1</key>
|
||||||
|
<dict>
|
||||||
|
<key>className</key>
|
||||||
|
<string>IDECommandLineBuildLog</string>
|
||||||
|
<key>documentTypeString</key>
|
||||||
|
<string><nil></string>
|
||||||
|
<key>domainType</key>
|
||||||
|
<string>Xcode.IDEActivityLogDomainType.BuildLog</string>
|
||||||
|
<key>fileName</key>
|
||||||
|
<string>B8940B11-E198-4118-908A-6DCC06A473A1.xcactivitylog</string>
|
||||||
|
<key>hasPrimaryLog</key>
|
||||||
|
<true/>
|
||||||
|
<key>primaryObservable</key>
|
||||||
|
<dict>
|
||||||
|
<key>highLevelStatus</key>
|
||||||
|
<string>S</string>
|
||||||
|
<key>totalNumberOfAnalyzerIssues</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>totalNumberOfErrors</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>totalNumberOfTestFailures</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>totalNumberOfWarnings</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
</dict>
|
||||||
|
<key>schemeIdentifier-containerName</key>
|
||||||
|
<string>WorkbenchReplacement project</string>
|
||||||
|
<key>schemeIdentifier-schemeName</key>
|
||||||
|
<string>WorkbenchReplacement</string>
|
||||||
|
<key>schemeIdentifier-sharedScheme</key>
|
||||||
|
<integer>1</integer>
|
||||||
|
<key>signature</key>
|
||||||
|
<string>Building project WorkbenchReplacement with scheme WorkbenchReplacement and configuration Debug</string>
|
||||||
|
<key>timeStartedRecording</key>
|
||||||
|
<real>813878192.18681705</real>
|
||||||
|
<key>timeStoppedRecording</key>
|
||||||
|
<real>813878206.57349706</real>
|
||||||
|
<key>title</key>
|
||||||
|
<string>Building project WorkbenchReplacement with scheme WorkbenchReplacement and configuration Debug</string>
|
||||||
|
<key>uniqueIdentifier</key>
|
||||||
|
<string>B8940B11-E198-4118-908A-6DCC06A473A1</string>
|
||||||
|
</dict>
|
||||||
<key>D705A532-F8F7-4B72-94B4-3464B760E3E3</key>
|
<key>D705A532-F8F7-4B72-94B4-3464B760E3E3</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>className</key>
|
<key>className</key>
|
||||||
@@ -132,48 +174,6 @@
|
|||||||
<key>uniqueIdentifier</key>
|
<key>uniqueIdentifier</key>
|
||||||
<string>D705A532-F8F7-4B72-94B4-3464B760E3E3</string>
|
<string>D705A532-F8F7-4B72-94B4-3464B760E3E3</string>
|
||||||
</dict>
|
</dict>
|
||||||
<key>EB994874-BDA8-4BAC-BAF2-6EB6F20E2468</key>
|
|
||||||
<dict>
|
|
||||||
<key>className</key>
|
|
||||||
<string>IDECommandLineBuildLog</string>
|
|
||||||
<key>documentTypeString</key>
|
|
||||||
<string><nil></string>
|
|
||||||
<key>domainType</key>
|
|
||||||
<string>Xcode.IDEActivityLogDomainType.BuildLog</string>
|
|
||||||
<key>fileName</key>
|
|
||||||
<string>EB994874-BDA8-4BAC-BAF2-6EB6F20E2468.xcactivitylog</string>
|
|
||||||
<key>hasPrimaryLog</key>
|
|
||||||
<true/>
|
|
||||||
<key>primaryObservable</key>
|
|
||||||
<dict>
|
|
||||||
<key>highLevelStatus</key>
|
|
||||||
<string>S</string>
|
|
||||||
<key>totalNumberOfAnalyzerIssues</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>totalNumberOfErrors</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>totalNumberOfTestFailures</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>totalNumberOfWarnings</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
</dict>
|
|
||||||
<key>schemeIdentifier-containerName</key>
|
|
||||||
<string>WorkbenchReplacement project</string>
|
|
||||||
<key>schemeIdentifier-schemeName</key>
|
|
||||||
<string>WorkbenchReplacement</string>
|
|
||||||
<key>schemeIdentifier-sharedScheme</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>signature</key>
|
|
||||||
<string>Building project WorkbenchReplacement with scheme WorkbenchReplacement and configuration Debug</string>
|
|
||||||
<key>timeStartedRecording</key>
|
|
||||||
<real>813877513.105088</real>
|
|
||||||
<key>timeStoppedRecording</key>
|
|
||||||
<real>813877526.28998804</real>
|
|
||||||
<key>title</key>
|
|
||||||
<string>Building project WorkbenchReplacement with scheme WorkbenchReplacement and configuration Debug</string>
|
|
||||||
<key>uniqueIdentifier</key>
|
|
||||||
<string>EB994874-BDA8-4BAC-BAF2-6EB6F20E2468</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
1792185273.801373: Module build session file for module cache at Path(str: "/Volumes/Developer/Applications/WorkbenchReplacement/build/ModuleCache.noindex")
|
1792185392.568994: Module build session file for module cache at Path(str: "/Volumes/Developer/Applications/WorkbenchReplacement/build/ModuleCache.noindex")
|
||||||
|
|||||||
BIN
Binary file not shown.
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict>
|
<dict>
|
||||||
<key>LastAccessedDate</key>
|
<key>LastAccessedDate</key>
|
||||||
<date>2026-10-16T21:14:33Z</date>
|
<date>2026-10-16T21:16:32Z</date>
|
||||||
<key>WorkspacePath</key>
|
<key>WorkspacePath</key>
|
||||||
<string>/Volumes/Developer/Applications/WorkbenchReplacement/WorkbenchReplacement.xcodeproj</string>
|
<string>/Volumes/Developer/Applications/WorkbenchReplacement/WorkbenchReplacement.xcodeproj</string>
|
||||||
</dict>
|
</dict>
|
||||||
|
|||||||
Reference in New Issue
Block a user