[mob] Rename face tables
This commit is contained in:
parent
baec7a2af8
commit
323521d496
|
@ -50,7 +50,7 @@ class FaceMLDataDB {
|
|||
Future _onCreate(Database db, int version) async {
|
||||
await db.execute(createFacesTable);
|
||||
await db.execute(createPersonTable);
|
||||
await db.execute(createClusterTable);
|
||||
await db.execute(createClusterPersonTable);
|
||||
await db.execute(createClusterSummaryTable);
|
||||
await db.execute(createNotPersonFeedbackTable);
|
||||
}
|
||||
|
@ -137,7 +137,7 @@ class FaceMLDataDB {
|
|||
final db = await instance.database;
|
||||
// find out clusterIds that are assigned to other persons using the clusters table
|
||||
final List<Map<String, dynamic>> maps = await db.rawQuery(
|
||||
'SELECT $cluserIDColumn FROM $clustersTable WHERE $personIdColumn != ? AND $personIdColumn IS NOT NULL',
|
||||
'SELECT $cluserIDColumn FROM $clusterPersonTable WHERE $personIdColumn != ? AND $personIdColumn IS NOT NULL',
|
||||
[personID],
|
||||
);
|
||||
final Set<int> ignoredClusterIDs =
|
||||
|
@ -154,7 +154,7 @@ class FaceMLDataDB {
|
|||
Future<Set<int>> getPersonClusterIDs(String personID) async {
|
||||
final db = await instance.database;
|
||||
final List<Map<String, dynamic>> maps = await db.rawQuery(
|
||||
'SELECT $cluserIDColumn FROM $clustersTable WHERE $personIdColumn = ?',
|
||||
'SELECT $cluserIDColumn FROM $clusterPersonTable WHERE $personIdColumn = ?',
|
||||
[personID],
|
||||
);
|
||||
return maps.map((e) => e[cluserIDColumn] as int).toSet();
|
||||
|
@ -163,7 +163,7 @@ class FaceMLDataDB {
|
|||
Future<void> clearTable() async {
|
||||
final db = await instance.database;
|
||||
await db.delete(facesTable);
|
||||
await db.delete(clustersTable);
|
||||
await db.delete(clusterPersonTable);
|
||||
await db.delete(clusterSummaryTable);
|
||||
await db.delete(personTable);
|
||||
await db.delete(notPersonFeedback);
|
||||
|
@ -220,7 +220,7 @@ class FaceMLDataDB {
|
|||
}
|
||||
}
|
||||
final cluterRows = await db.query(
|
||||
clustersTable,
|
||||
clusterPersonTable,
|
||||
columns: [cluserIDColumn],
|
||||
where: '$personIdColumn = ?',
|
||||
whereArgs: [personID],
|
||||
|
@ -450,7 +450,7 @@ class FaceMLDataDB {
|
|||
conflictAlgorithm: ConflictAlgorithm.replace,
|
||||
);
|
||||
await db.insert(
|
||||
clustersTable,
|
||||
clusterPersonTable,
|
||||
{
|
||||
personIdColumn: p.remoteID,
|
||||
cluserIDColumn: cluserID,
|
||||
|
@ -475,7 +475,7 @@ class FaceMLDataDB {
|
|||
}) async {
|
||||
final db = await instance.database;
|
||||
await db.insert(
|
||||
clustersTable,
|
||||
clusterPersonTable,
|
||||
{
|
||||
personIdColumn: personID,
|
||||
cluserIDColumn: clusterID,
|
||||
|
@ -503,7 +503,7 @@ class FaceMLDataDB {
|
|||
}) async {
|
||||
final db = await instance.database;
|
||||
return db.delete(
|
||||
clustersTable,
|
||||
clusterPersonTable,
|
||||
where: '$personIdColumn = ? AND $cluserIDColumn = ?',
|
||||
whereArgs: [personID, clusterID],
|
||||
);
|
||||
|
@ -514,10 +514,10 @@ class FaceMLDataDB {
|
|||
final db = instance.database;
|
||||
return db.then((db) async {
|
||||
final List<Map<String, dynamic>> maps = await db.rawQuery(
|
||||
'SELECT $clustersTable.$cluserIDColumn, $fileIDColumn FROM $facesTable '
|
||||
'INNER JOIN $clustersTable '
|
||||
'ON $facesTable.$faceClusterId = $clustersTable.$cluserIDColumn '
|
||||
'WHERE $clustersTable.$personIdColumn = ?',
|
||||
'SELECT $clusterPersonTable.$cluserIDColumn, $fileIDColumn FROM $facesTable '
|
||||
'INNER JOIN $clusterPersonTable '
|
||||
'ON $facesTable.$faceClusterId = $clusterPersonTable.$cluserIDColumn '
|
||||
'WHERE $clusterPersonTable.$personIdColumn = ?',
|
||||
[personID],
|
||||
);
|
||||
final Map<int, Set<int>> result = {};
|
||||
|
@ -598,7 +598,7 @@ class FaceMLDataDB {
|
|||
personMap[p.remoteID] = p;
|
||||
}
|
||||
final List<Map<String, dynamic>> maps = await db.rawQuery(
|
||||
'SELECT $personIdColumn, $cluserIDColumn FROM $clustersTable',
|
||||
'SELECT $personIdColumn, $cluserIDColumn FROM $clusterPersonTable',
|
||||
);
|
||||
|
||||
final Map<int, Person> result = {};
|
||||
|
@ -636,38 +636,38 @@ class FaceMLDataDB {
|
|||
if (faces) {
|
||||
await db.execute(deleteFacesTable);
|
||||
await db.execute(createFacesTable);
|
||||
await db.execute(dropFaceClustersTable);
|
||||
await db.execute(createFaceClustersTable);
|
||||
}
|
||||
await db.execute(deletePersonTable);
|
||||
await db.execute(dropClustersTable);
|
||||
await db.execute(dropClusterPersonTable);
|
||||
await db.execute(dropClusterSummaryTable);
|
||||
await db.execute(dropNotPersonFeedbackTable);
|
||||
|
||||
await db.execute(createPersonTable);
|
||||
await db.execute(createClusterTable);
|
||||
await db.execute(createClusterPersonTable);
|
||||
await db.execute(createNotPersonFeedbackTable);
|
||||
await db.execute(createClusterSummaryTable);
|
||||
}
|
||||
|
||||
/// WARNING: This will delete ALL data in the database! Only use this for debug/testing purposes!
|
||||
Future<void> dropPersonTable() async {
|
||||
Future<void> dropFeedbackTables() async {
|
||||
final db = await instance.database;
|
||||
|
||||
await db.execute(deletePersonTable);
|
||||
await db.execute(dropClustersTable);
|
||||
await db.execute(dropClusterPersonTable);
|
||||
await db.execute(dropNotPersonFeedbackTable);
|
||||
|
||||
// await db.execute(createFacesTable);
|
||||
await db.execute(createPersonTable);
|
||||
await db.execute(createClusterTable);
|
||||
await db.execute(createClusterPersonTable);
|
||||
await db.execute(createNotPersonFeedbackTable);
|
||||
}
|
||||
|
||||
Future<void> removeFilesFromPerson(List<EnteFile> files, Person p) async {
|
||||
final db = await instance.database;
|
||||
final result = await db.rawQuery(
|
||||
'SELECT $faceIDColumn FROM $facesTable LEFT JOIN $clustersTable '
|
||||
'ON $facesTable.$faceClusterId = $clustersTable.$cluserIDColumn '
|
||||
'WHERE $clustersTable.$personIdColumn = ? AND $facesTable.$fileIDColumn IN (${files.map((e) => e.uploadedFileID).join(",")})',
|
||||
'SELECT $faceIDColumn FROM $facesTable LEFT JOIN $clusterPersonTable '
|
||||
'ON $facesTable.$faceClusterId = $clusterPersonTable.$cluserIDColumn '
|
||||
'WHERE $clusterPersonTable.$personIdColumn = ? AND $facesTable.$fileIDColumn IN (${files.map((e) => e.uploadedFileID).join(",")})',
|
||||
[p.remoteID],
|
||||
);
|
||||
// get max clusterID
|
||||
|
|
|
@ -27,8 +27,26 @@ const createFacesTable = '''CREATE TABLE IF NOT EXISTS $facesTable (
|
|||
const deleteFacesTable = 'DROP TABLE IF EXISTS $facesTable';
|
||||
// End of Faces Table Fields & Schema Queries
|
||||
|
||||
//##region Face Clusters Table Fields & Schema Queries
|
||||
const faceClustersTable = 'face_clusters';
|
||||
const fcClusterID = 'cluster_id';
|
||||
const fcFaceId = 'face_id';
|
||||
|
||||
// fcClusterId & fcFaceId are the primary keys and fcClusterId is a foreign key to faces table
|
||||
const createFaceClustersTable = '''
|
||||
CREATE TABLE IF NOT EXISTS $faceClustersTable (
|
||||
$fcClusterID INTEGER NOT NULL,
|
||||
$fcFaceId TEXT NOT NULL,
|
||||
PRIMARY KEY($fcClusterID, $fcFaceId),
|
||||
FOREIGN KEY($fcFaceId) REFERENCES $facesTable($faceIDColumn)
|
||||
);
|
||||
''';
|
||||
|
||||
const dropFaceClustersTable = 'DROP TABLE IF EXISTS $faceClustersTable';
|
||||
//##endregion
|
||||
|
||||
// People Table Fields & Schema Queries
|
||||
const personTable = 'people';
|
||||
const personTable = 'person';
|
||||
const idColumn = 'id';
|
||||
const nameColumn = 'name';
|
||||
const personHiddenColumn = 'hidden';
|
||||
|
@ -49,18 +67,18 @@ const deletePersonTable = 'DROP TABLE IF EXISTS $personTable';
|
|||
//End People Table Fields & Schema Queries
|
||||
|
||||
// Clusters Table Fields & Schema Queries
|
||||
const clustersTable = 'clusters';
|
||||
const clusterPersonTable = 'cluster_person';
|
||||
const personIdColumn = 'person_id';
|
||||
const cluserIDColumn = 'cluster_id';
|
||||
|
||||
const createClusterTable = '''
|
||||
CREATE TABLE IF NOT EXISTS $clustersTable (
|
||||
const createClusterPersonTable = '''
|
||||
CREATE TABLE IF NOT EXISTS $clusterPersonTable (
|
||||
$personIdColumn TEXT NOT NULL,
|
||||
$cluserIDColumn INTEGER NOT NULL,
|
||||
PRIMARY KEY($personIdColumn, $cluserIDColumn)
|
||||
);
|
||||
''';
|
||||
const dropClustersTable = 'DROP TABLE IF EXISTS $clustersTable';
|
||||
const dropClusterPersonTable = 'DROP TABLE IF EXISTS $clusterPersonTable';
|
||||
// End Clusters Table Fields & Schema Queries
|
||||
|
||||
/// Cluster Summary Table Fields & Schema Queries
|
||||
|
|
|
@ -173,7 +173,7 @@ class _FaceDebugSectionWidgetState extends State<FaceDebugSectionWidget> {
|
|||
trailingIcon: Icons.chevron_right_outlined,
|
||||
trailingIconIsMuted: true,
|
||||
onTap: () async {
|
||||
await FaceMLDataDB.instance.dropPersonTable();
|
||||
await FaceMLDataDB.instance.dropFeedbackTables();
|
||||
Bus.instance.fire(PeopleChangedEvent());
|
||||
showShortToast(context, "Done");
|
||||
},
|
||||
|
|
Loading…
Reference in a new issue