Skip to content

Commit 1d60e98

Browse files
authored
Merge pull request #243 from powersync-ja/feat/bucket-priorities
Support bucket priorities and partial checkpoints
2 parents ba18a9f + 12c4124 commit 1d60e98

File tree

36 files changed

+715
-310
lines changed

36 files changed

+715
-310
lines changed

demos/benchmarks/ios/Podfile.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ PODS:
33
- path_provider_foundation (0.0.1):
44
- Flutter
55
- FlutterMacOS
6-
- powersync-sqlite-core (0.3.10)
6+
- powersync-sqlite-core (0.3.11)
77
- powersync_flutter_libs (0.0.1):
88
- Flutter
9-
- powersync-sqlite-core (~> 0.3.10)
9+
- powersync-sqlite-core (~> 0.3.11)
1010
- "sqlite3 (3.46.1+1)":
1111
- "sqlite3/common (= 3.46.1+1)"
1212
- "sqlite3/common (3.46.1+1)"
@@ -50,8 +50,8 @@ EXTERNAL SOURCES:
5050
SPEC CHECKSUMS:
5151
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
5252
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
53-
powersync-sqlite-core: c7045a44bb1040485ba46b42a3b0acaed424a5cd
54-
powersync_flutter_libs: f33ed290b2813a13809ea4f0e6ae6621f3de8218
53+
powersync-sqlite-core: 63f9e7adb74044ab7786e4f60e86994d13dcc7a9
54+
powersync_flutter_libs: 86c1c5214cbeba9d555798de5aece225ad1f5971
5555
sqlite3: 0bb0e6389d824e40296f531b858a2a0b71c0d2fb
5656
sqlite3_flutter_libs: 9379996d65aa23dcda7585a5b58766cebe0aa042
5757

demos/django-todolist/ios/Podfile.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ PODS:
33
- path_provider_foundation (0.0.1):
44
- Flutter
55
- FlutterMacOS
6-
- powersync-sqlite-core (0.3.10)
6+
- powersync-sqlite-core (0.3.11)
77
- powersync_flutter_libs (0.0.1):
88
- Flutter
9-
- powersync-sqlite-core (~> 0.3.10)
9+
- powersync-sqlite-core (~> 0.3.11)
1010
- shared_preferences_foundation (0.0.1):
1111
- Flutter
1212
- FlutterMacOS
@@ -57,8 +57,8 @@ EXTERNAL SOURCES:
5757
SPEC CHECKSUMS:
5858
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
5959
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
60-
powersync-sqlite-core: c7045a44bb1040485ba46b42a3b0acaed424a5cd
61-
powersync_flutter_libs: f33ed290b2813a13809ea4f0e6ae6621f3de8218
60+
powersync-sqlite-core: 63f9e7adb74044ab7786e4f60e86994d13dcc7a9
61+
powersync_flutter_libs: 86c1c5214cbeba9d555798de5aece225ad1f5971
6262
shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
6363
sqlite3: 4922312598b67e1825c6a6c821296dcbf6783046
6464
sqlite3_flutter_libs: 3c323550ef3b928bc0aa9513c841e45a7d242832

demos/django-todolist/macos/Podfile.lock

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ PODS:
33
- path_provider_foundation (0.0.1):
44
- Flutter
55
- FlutterMacOS
6-
- powersync-sqlite-core (0.1.6)
6+
- powersync-sqlite-core (0.3.9)
77
- powersync_flutter_libs (0.0.1):
88
- FlutterMacOS
9-
- powersync-sqlite-core (~> 0.1.6)
9+
- powersync-sqlite-core (~> 0.3.8)
1010
- shared_preferences_foundation (0.0.1):
1111
- Flutter
1212
- FlutterMacOS
@@ -55,13 +55,13 @@ EXTERNAL SOURCES:
5555

5656
SPEC CHECKSUMS:
5757
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24
58-
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
59-
powersync-sqlite-core: 4c38c8f470f6dca61346789fd5436a6826d1e3dd
60-
powersync_flutter_libs: 1eb1c6790a72afe08e68d4cc489d71ab61da32ee
61-
shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
58+
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
59+
powersync-sqlite-core: 7515d321eb8e3c08b5259cdadb9d19b1876fe13a
60+
powersync_flutter_libs: 330d8309223a121ec15a7334d9edc105053e5f82
61+
shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
6262
sqlite3: 292c3e1bfe89f64e51ea7fc7dab9182a017c8630
63-
sqlite3_flutter_libs: 5ca46c1a04eddfbeeb5b16566164aa7ad1616e7b
63+
sqlite3_flutter_libs: 03311aede9d32fb2d24e32bebb8cd01c3b2e6239
6464

6565
PODFILE CHECKSUM: 236401fc2c932af29a9fcf0e97baeeb2d750d367
6666

67-
COCOAPODS: 1.15.2
67+
COCOAPODS: 1.16.2
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
import Cocoa
22
import FlutterMacOS
33

4-
@NSApplicationMain
4+
@main
55
class AppDelegate: FlutterAppDelegate {
66
override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
77
return true
88
}
9+
10+
override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool {
11+
return true
12+
}
913
}

demos/django-todolist/macos/Runner/Configs/AppInfo.xcconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
PRODUCT_NAME = PowerSync Django Demo
99

1010
// The application's bundle identifier
11-
PRODUCT_BUNDLE_IDENTIFIER = co.powersync.demotodolist
11+
PRODUCT_BUNDLE_IDENTIFIER = co.powersync.demotodolist.django
1212

1313
// The copyright displayed in application information
1414
PRODUCT_COPYRIGHT = Copyright © 2023 Journey Mobile, Inc. All rights reserved.

demos/django-todolist/pubspec.lock

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -310,21 +310,21 @@ packages:
310310
path: "../../packages/powersync"
311311
relative: true
312312
source: path
313-
version: "1.11.2"
313+
version: "1.11.3"
314314
powersync_core:
315315
dependency: "direct overridden"
316316
description:
317317
path: "../../packages/powersync_core"
318318
relative: true
319319
source: path
320-
version: "1.1.2"
320+
version: "1.1.3"
321321
powersync_flutter_libs:
322322
dependency: "direct overridden"
323323
description:
324324
path: "../../packages/powersync_flutter_libs"
325325
relative: true
326326
source: path
327-
version: "0.4.4"
327+
version: "0.4.5"
328328
pub_semver:
329329
dependency: transitive
330330
description:

demos/firebase-nodejs-todolist/ios/Podfile.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,10 @@ PODS:
5858
- path_provider_foundation (0.0.1):
5959
- Flutter
6060
- FlutterMacOS
61-
- powersync-sqlite-core (0.3.10)
61+
- powersync-sqlite-core (0.3.11)
6262
- powersync_flutter_libs (0.0.1):
6363
- Flutter
64-
- powersync-sqlite-core (~> 0.3.10)
64+
- powersync-sqlite-core (~> 0.3.11)
6565
- RecaptchaInterop (100.0.0)
6666
- shared_preferences_foundation (0.0.1):
6767
- Flutter
@@ -149,8 +149,8 @@ SPEC CHECKSUMS:
149149
GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d
150150
GTMSessionFetcher: 257ead9ba8e15a2d389d79496e02b9cc5dd0c62c
151151
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
152-
powersync-sqlite-core: c7045a44bb1040485ba46b42a3b0acaed424a5cd
153-
powersync_flutter_libs: f33ed290b2813a13809ea4f0e6ae6621f3de8218
152+
powersync-sqlite-core: 63f9e7adb74044ab7786e4f60e86994d13dcc7a9
153+
powersync_flutter_libs: 86c1c5214cbeba9d555798de5aece225ad1f5971
154154
RecaptchaInterop: 7d1a4a01a6b2cb1610a47ef3f85f0c411434cb21
155155
shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
156156
sqlite3: 4922312598b67e1825c6a6c821296dcbf6783046

demos/supabase-anonymous-auth/ios/Podfile.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ PODS:
55
- path_provider_foundation (0.0.1):
66
- Flutter
77
- FlutterMacOS
8-
- powersync-sqlite-core (0.3.10)
8+
- powersync-sqlite-core (0.3.11)
99
- powersync_flutter_libs (0.0.1):
1010
- Flutter
11-
- powersync-sqlite-core (~> 0.3.10)
11+
- powersync-sqlite-core (~> 0.3.11)
1212
- shared_preferences_foundation (0.0.1):
1313
- Flutter
1414
- FlutterMacOS
@@ -68,8 +68,8 @@ SPEC CHECKSUMS:
6868
app_links: 3da4c36b46cac3bf24eb897f1a6ce80bda109874
6969
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
7070
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
71-
powersync-sqlite-core: c7045a44bb1040485ba46b42a3b0acaed424a5cd
72-
powersync_flutter_libs: f33ed290b2813a13809ea4f0e6ae6621f3de8218
71+
powersync-sqlite-core: 63f9e7adb74044ab7786e4f60e86994d13dcc7a9
72+
powersync_flutter_libs: 86c1c5214cbeba9d555798de5aece225ad1f5971
7373
shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
7474
sqlite3: 4922312598b67e1825c6a6c821296dcbf6783046
7575
sqlite3_flutter_libs: 3c323550ef3b928bc0aa9513c841e45a7d242832

demos/supabase-edge-function-auth/ios/Podfile.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ PODS:
55
- path_provider_foundation (0.0.1):
66
- Flutter
77
- FlutterMacOS
8-
- powersync-sqlite-core (0.3.10)
8+
- powersync-sqlite-core (0.3.11)
99
- powersync_flutter_libs (0.0.1):
1010
- Flutter
11-
- powersync-sqlite-core (~> 0.3.10)
11+
- powersync-sqlite-core (~> 0.3.11)
1212
- shared_preferences_foundation (0.0.1):
1313
- Flutter
1414
- FlutterMacOS
@@ -68,8 +68,8 @@ SPEC CHECKSUMS:
6868
app_links: 3da4c36b46cac3bf24eb897f1a6ce80bda109874
6969
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
7070
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
71-
powersync-sqlite-core: c7045a44bb1040485ba46b42a3b0acaed424a5cd
72-
powersync_flutter_libs: f33ed290b2813a13809ea4f0e6ae6621f3de8218
71+
powersync-sqlite-core: 63f9e7adb74044ab7786e4f60e86994d13dcc7a9
72+
powersync_flutter_libs: 86c1c5214cbeba9d555798de5aece225ad1f5971
7373
shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
7474
sqlite3: 4922312598b67e1825c6a6c821296dcbf6783046
7575
sqlite3_flutter_libs: 3c323550ef3b928bc0aa9513c841e45a7d242832

demos/supabase-simple-chat/ios/Podfile.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ PODS:
55
- path_provider_foundation (0.0.1):
66
- Flutter
77
- FlutterMacOS
8-
- powersync-sqlite-core (0.3.10)
8+
- powersync-sqlite-core (0.3.11)
99
- powersync_flutter_libs (0.0.1):
1010
- Flutter
11-
- powersync-sqlite-core (~> 0.3.10)
11+
- powersync-sqlite-core (~> 0.3.11)
1212
- shared_preferences_foundation (0.0.1):
1313
- Flutter
1414
- FlutterMacOS
@@ -68,8 +68,8 @@ SPEC CHECKSUMS:
6868
app_links: 3da4c36b46cac3bf24eb897f1a6ce80bda109874
6969
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
7070
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
71-
powersync-sqlite-core: c7045a44bb1040485ba46b42a3b0acaed424a5cd
72-
powersync_flutter_libs: f33ed290b2813a13809ea4f0e6ae6621f3de8218
71+
powersync-sqlite-core: 63f9e7adb74044ab7786e4f60e86994d13dcc7a9
72+
powersync_flutter_libs: 86c1c5214cbeba9d555798de5aece225ad1f5971
7373
shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
7474
sqlite3: 4922312598b67e1825c6a6c821296dcbf6783046
7575
sqlite3_flutter_libs: 3c323550ef3b928bc0aa9513c841e45a7d242832

demos/supabase-todolist-drift/ios/Podfile.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ PODS:
77
- path_provider_foundation (0.0.1):
88
- Flutter
99
- FlutterMacOS
10-
- powersync-sqlite-core (0.3.10)
10+
- powersync-sqlite-core (0.3.11)
1111
- powersync_flutter_libs (0.0.1):
1212
- Flutter
13-
- powersync-sqlite-core (~> 0.3.10)
13+
- powersync-sqlite-core (~> 0.3.11)
1414
- shared_preferences_foundation (0.0.1):
1515
- Flutter
1616
- FlutterMacOS
@@ -74,8 +74,8 @@ SPEC CHECKSUMS:
7474
camera_avfoundation: 04b44aeb14070126c6529e5ab82cc7c9fca107cf
7575
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
7676
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
77-
powersync-sqlite-core: c7045a44bb1040485ba46b42a3b0acaed424a5cd
78-
powersync_flutter_libs: f33ed290b2813a13809ea4f0e6ae6621f3de8218
77+
powersync-sqlite-core: 63f9e7adb74044ab7786e4f60e86994d13dcc7a9
78+
powersync_flutter_libs: 86c1c5214cbeba9d555798de5aece225ad1f5971
7979
shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
8080
sqlite3: 4922312598b67e1825c6a6c821296dcbf6783046
8181
sqlite3_flutter_libs: 3c323550ef3b928bc0aa9513c841e45a7d242832

demos/supabase-todolist-optional-sync/ios/Podfile.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ PODS:
77
- path_provider_foundation (0.0.1):
88
- Flutter
99
- FlutterMacOS
10-
- powersync-sqlite-core (0.3.10)
10+
- powersync-sqlite-core (0.3.11)
1111
- powersync_flutter_libs (0.0.1):
1212
- Flutter
13-
- powersync-sqlite-core (~> 0.3.10)
13+
- powersync-sqlite-core (~> 0.3.11)
1414
- shared_preferences_foundation (0.0.1):
1515
- Flutter
1616
- FlutterMacOS
@@ -73,8 +73,8 @@ SPEC CHECKSUMS:
7373
camera_avfoundation: 7262a4e34c2e028f6aa5fb523ae74c9b74d3bd76
7474
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
7575
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
76-
powersync-sqlite-core: c7045a44bb1040485ba46b42a3b0acaed424a5cd
77-
powersync_flutter_libs: f33ed290b2813a13809ea4f0e6ae6621f3de8218
76+
powersync-sqlite-core: 63f9e7adb74044ab7786e4f60e86994d13dcc7a9
77+
powersync_flutter_libs: 86c1c5214cbeba9d555798de5aece225ad1f5971
7878
shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
7979
sqlite3: 0bb0e6389d824e40296f531b858a2a0b71c0d2fb
8080
sqlite3_flutter_libs: 9379996d65aa23dcda7585a5b58766cebe0aa042

demos/supabase-todolist/README.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,26 @@ Create a new PowerSync instance, connecting to the database of the Supabase proj
2929

3030
Then deploy the following sync rules:
3131

32+
```yaml
33+
bucket_definitions:
34+
user_lists:
35+
priority: 1
36+
parameters: select id as list_id from lists where owner_id = request.user_id()
37+
data:
38+
- select * from lists where id = bucket.list_id
39+
40+
user_todos:
41+
parameters: select id as list_id from lists where owner_id = request.user_id()
42+
data:
43+
- select * from todos where list_id = bucket.list_id
44+
```
45+
46+
**Note**: These rules showcase [prioritized sync](https://docs.powersync.com/usage/use-case-examples/prioritized-sync),
47+
by syncing a user's lists with a higher priority than the items within a list (todos). This can be
48+
useful to keep the list overview page reactive during a large sync cycle affecting many
49+
rows in the `user_todos` bucket. The two buckets can also be unified into a single one if
50+
priorities are not important (the app will work without changes):
51+
3252
```yaml
3353
bucket_definitions:
3454
user_lists:

demos/supabase-todolist/ios/Podfile.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ PODS:
77
- path_provider_foundation (0.0.1):
88
- Flutter
99
- FlutterMacOS
10-
- powersync-sqlite-core (0.3.10)
10+
- powersync-sqlite-core (0.3.11)
1111
- powersync_flutter_libs (0.0.1):
1212
- Flutter
13-
- powersync-sqlite-core (~> 0.3.10)
13+
- powersync-sqlite-core (~> 0.3.11)
1414
- shared_preferences_foundation (0.0.1):
1515
- Flutter
1616
- FlutterMacOS
@@ -74,8 +74,8 @@ SPEC CHECKSUMS:
7474
camera_avfoundation: 04b44aeb14070126c6529e5ab82cc7c9fca107cf
7575
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
7676
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
77-
powersync-sqlite-core: c7045a44bb1040485ba46b42a3b0acaed424a5cd
78-
powersync_flutter_libs: f33ed290b2813a13809ea4f0e6ae6621f3de8218
77+
powersync-sqlite-core: 63f9e7adb74044ab7786e4f60e86994d13dcc7a9
78+
powersync_flutter_libs: 86c1c5214cbeba9d555798de5aece225ad1f5971
7979
shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
8080
sqlite3: 4922312598b67e1825c6a6c821296dcbf6783046
8181
sqlite3_flutter_libs: 3c323550ef3b928bc0aa9513c841e45a7d242832

demos/supabase-todolist/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
ignoresPersistentStateOnLaunch = "NO"
4949
debugDocumentVersioning = "YES"
5050
debugServiceExtension = "internal"
51+
enableGPUValidationMode = "1"
5152
allowLocationSimulation = "YES">
5253
<BuildableProductRunnable
5354
runnableDebuggingMode = "0">

0 commit comments

Comments
 (0)