Skip to content

Commit d270251

Browse files
committed
tmp
1 parent f731d70 commit d270251

File tree

2 files changed

+20
-9
lines changed

2 files changed

+20
-9
lines changed

PowerSync/PowerSync.Common/Client/Sync/Bucket/SqliteBucketStorage.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public SqliteBucketStorage(IDBAdapter db, ILogger? logger = null)
4040
this.logger = logger ?? NullLogger.Instance; ;
4141
hasCompletedSync = false;
4242
pendingBucketDeletes = true;
43-
tableNames = [];
43+
tableNames = new HashSet<string>();
4444

4545
updateCts = new CancellationTokenSource();
4646

@@ -110,8 +110,10 @@ await db.WriteTransaction(async tx =>
110110
int count = 0;
111111
foreach (var b in batch.Buckets)
112112
{
113+
var bucketJson = b.ToJSON();
114+
var jsonData = $"{{\"buckets\":[{bucketJson}]}}";
113115
var result = await tx.Execute("INSERT INTO powersync_operations(op, data) VALUES(?, ?)",
114-
["save", JsonConvert.SerializeObject(new { buckets = new[] { JsonConvert.DeserializeObject(b.ToJSON()) } })]);
116+
["save", jsonData]);
115117
logger.LogDebug("saveSyncData {message}", JsonConvert.SerializeObject(result));
116118
count += b.Data.Length;
117119
}
@@ -156,7 +158,7 @@ public async Task<SyncLocalDatabaseResult> SyncLocalDatabase(Checkpoint checkpoi
156158
if (!validation.CheckpointValid)
157159
{
158160
logger.LogError("Checksums failed for {failures}", JsonConvert.SerializeObject(validation.CheckpointFailures));
159-
foreach (var failedBucket in validation.CheckpointFailures ?? [])
161+
foreach (var failedBucket in validation.CheckpointFailures ?? new string[0])
160162
{
161163
await DeleteBucket(failedBucket);
162164
}
@@ -249,7 +251,7 @@ public async Task<SyncLocalDatabaseResult> ValidateChecksums(
249251
{
250252
CheckpointValid = false,
251253
Ready = false,
252-
CheckpointFailures = resultDetail?.FailedBuckets?.ToArray() ?? []
254+
CheckpointFailures = resultDetail?.FailedBuckets?.ToArray() ?? new string[0]
253255
};
254256
}
255257
}

PowerSync/PowerSync.Common/Client/Sync/Bucket/SyncDataBucket.cs

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public class SyncDataBucketJSON
1919
// public string? NextAfter { get; set; }
2020

2121
[JsonProperty("data")]
22-
public List<object> Data { get; set; } = [];
22+
public List<object> Data { get; set; } = new List<object>();
2323
}
2424

2525
public class SyncDataBucket(
@@ -37,7 +37,7 @@ public static SyncDataBucket FromRow(SyncDataBucketJSON row)
3737
.Select(obj => JsonConvert.DeserializeObject<OplogEntryJSON>(JsonConvert.SerializeObject(obj))!) // Convert object to JSON string, then deserialize
3838
.Select(OplogEntry.FromRow)
3939
.ToArray()
40-
: [];
40+
: new OplogEntry[0];
4141

4242
return new SyncDataBucket(
4343
row.Bucket,
@@ -48,9 +48,18 @@ public static SyncDataBucket FromRow(SyncDataBucketJSON row)
4848
public string ToJSON()
4949
{
5050
List<object> dataObjects = Data
51-
.Select(entry => JsonConvert.DeserializeObject<object>(entry.ToJSON()))
52-
.Where(obj => obj != null)
53-
.ToList()!;
51+
.Select(entry => new OplogEntryJSON
52+
{
53+
OpId = entry.OpId,
54+
Op = entry.Op.ToJSON(),
55+
Checksum = entry.Checksum,
56+
Data = entry.Data != null ? JsonConvert.SerializeObject(entry.Data) : null,
57+
ObjectType = entry.ObjectType,
58+
ObjectId = entry.ObjectId,
59+
Subkey = entry.Subkey
60+
})
61+
.Cast<object>()
62+
.ToList();
5463

5564
var jsonObject = new SyncDataBucketJSON
5665
{

0 commit comments

Comments
 (0)