2 CREATE TABLE CurrentBackupId
4 BackupId serial not null,
5 ClientId integer not null,
7 FileSetId integer not null,
11 -- Serait bien de prendre la meme table pour
12 -- les File et le CurrentBackup...
13 -- Quand on prune, il faut purger ici aussi
15 CREATE TABLE CurrentBackup
17 FileId integer not null,
18 BackupId integer not null,
19 FullMark char(1) default 0,
20 MarkId integer default 0,
24 CREATE INDEX currentbackup_fileid on CurrentBackup (BackupId);
26 -- On batch insert dans la table temporaire
28 -- il faut trouver les fichiers manquant
29 -- INSERT des nouveaux, UPDATE des anciens, SELECT pour trouver les deletes
31 -- UPDATE CurrentBackup SET MarkId = 1
32 -- WHERE CurrentBackup.Id IN (
33 -- SELECT CurrentBackup.Id
35 -- JOIN Filename USING (Name)
36 -- JOIN Path USING (Path)
38 -- ON (Filename.FilenameId = CurrentBackup.FilenameId
40 -- Path.PathId = CurrentBackup.PathId)
41 -- WHERE CurrentBackup.BackupId = 1
44 -- INSERT INTO CurrentBackup (BackupId, FullMark, PathId, FilenameId, LStat, MD5)
45 -- (SELECT CurrentBackup.BackupId, 'F', Path.PathId, Filename.FilenameId,
46 -- batch.LStat, batch.MD5
48 -- JOIN Path USING (Path)
49 -- JOIN Filename USING (Name)
50 -- LEFT OUTER JOIN CurrentBackup
51 -- ON (Filename.FilenameId = CurrentBackup.FilenameId
52 -- AND Path.PathId = CurrentBackup.PathId
53 -- AND CurrentBackup.BackupId = 1)
54 -- WHERE BackupId IS NULL
58 -- il faut trouver les fichiers modifies
59 -- Le champs LStat n'est plus le meme
62 -- JOIN Path USING (Path)
63 -- JOIN Filename USING (Name)
64 -- JOIN CurrentBackup USING (FilenameId, PathId)
66 -- WHERE CurrentBackup.LStat != batch.LStat
67 -- AND CurrentBackup.BackupId = 1
69 -- il faut mettre a jour la liste des fichiers