是否可以使用 Android 房间数据库创建 R*Tree table?

Is it possible to use Android Room Database to create an R*Tree table?

我想继续使用 Room,但我看不到创建使用 rtree 的实体的方法。有 @FTS3 和 @FTS4 注释,但我没有看到 RTree。是否可以使用 R-Tree 创建实体?

我正在尝试使用此代码进行迁移,但我仍然没有 Room 实体...

val TABLE_CREATE = "CREATE VIRTUAL TABLE if not exists my_table_name USING rtree(" +
       "row_id," +          // Primary key
       "minX, maxX," +      // Minimum and maximum X coordinate
       "minY, maxY" +       // Minimum and maximum Y coordinate
");"
db.execSQL(TABLE_CREATE)

我认为目前无法在 Room 中使用 RTree。

要使用 RTree,您需要一个使用 -DSQLITE_ENABLE_RTREE=1 选项编译的 SQLite 发行版。

Room 是与 Android 设备一起分发的 SQLite 之上的一个抽象层,我相信它没有启用 RTree(如果是的话,我猜 @RTree 注释将可用).

例如在 API 31 上,如果你尝试使用你会得到 :-

E/SQLiteLog: (1) statement aborts at 28: [CREATE VIRTUAL TABLE rtree1 USING rtree(id,minX,maxX,minY,maxY);] no such module: rtree

即rtree 未启用。