You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: ENHANCEMENTS.md
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -355,16 +355,16 @@ config :my_app, MyApp.Repo,
355
355
**Reason**: Rustler threading model incompatibility
356
356
357
357
**Why Not Supported**:
358
-
Both update hooks and authorizer hooks are fundamentally incompatible with Rustler's threading model:
358
+
Both update hooks and authoriser hooks are fundamentally incompatible with Rustler's threading model:
359
359
360
360
1.**Update Hooks Problem**:
361
361
- SQLite's update hook callback runs synchronously during INSERT/UPDATE/DELETE operations
362
362
- Callback executes on Erlang scheduler threads (managed by BEAM)
363
363
- Rustler's `OwnedEnv::send_and_clear()` can ONLY be called from unmanaged threads
364
364
- Calling `send_and_clear()` from managed thread causes panic: "current thread is managed"
365
365
366
-
2.**Authorizer Hooks Problem**:
367
-
- SQLite's authorizer callback is synchronous and expects immediate response (Allow/Deny/Ignore)
366
+
2.**Authoriser Hooks Problem**:
367
+
- SQLite's authoriser callback is synchronous and expects immediate response (Allow/Deny/Ignore)
368
368
- Would require blocking Rust thread waiting for Elixir response
369
369
- No safe way to do synchronous Rust→Elixir→Rust calls
370
370
- Blocking on scheduler threads can cause deadlocks
@@ -377,8 +377,8 @@ For **Change Data Capture / Real-time Updates**:
377
377
- Polling-based CDC with timestamps
378
378
- Phoenix.Tracker for state tracking
379
379
380
-
For **Row-Level Security / Authorization**:
381
-
- Application-level authorization checks before queries
380
+
For **Row-Level Security / Authorisation**:
381
+
- Application-level authorisation checks before queries
382
382
- Database views with WHERE clauses
383
383
- Query rewriting in Ecto
384
384
- Connection-level privileges
@@ -445,13 +445,13 @@ For **Row-Level Security / Authorization**:
445
445
### Potential Enhancements
446
446
1.**Haversine Formula**: Implement actual geographic distance calculations for accuracy
447
447
2.**Higher Dimensions**: Support for more complex geospatial data (elevation, time, etc.)
448
-
3.**Index Optimization**: Add spatial indexes for performance on large datasets
448
+
3.**Index Optimisation**: Add spatial indexes for performance on large datasets
449
449
4.**Batch Queries**: Use batch operations for multiple location lookups
450
450
5.**Clustering**: Find geographic clusters of locations using vector analysis
451
451
452
452
### Real-World Applications
453
453
-**Location-based services**: Find nearby restaurants, hotels, gas stations
454
-
-**Delivery optimization**: Locate nearest warehouse to customer location
454
+
-**Delivery optimisation**: Locate nearest warehouse to customer location
455
455
-**Regional analytics**: Find closest office/branch in each region
456
456
-**Social discovery**: Find nearby users, events, or meetup groups
457
457
-**Asset tracking**: Locate nearest available equipment or resources
@@ -885,4 +885,4 @@ disallowed-methods = [
885
885
8.**Ecto Integration Improvements**
886
886
9.**P3 Low Priority Features**
887
887
888
-
This prioritization ensures we address the most critical production issues first, then focus on performance and reliability, before moving to nice-to-have features and advanced functionality.
888
+
This prioritisation ensures we address the most critical production issues first, then focus on performance and reliability, before moving to nice-to-have features and advanced functionality.
0 commit comments