On Saturday 25 August 2007 10:31:04 you wrote:
> Hello Marc,
>
> Thanks for the information. I think this is something that is probably
> well worth the effort to put in the core Bacula code. I'm going to study
> it a bit to see how it might be organized into a project. Code like this
> might also help a lot for the simple restores that Bacula currently does by
> speeding up the retrieval.
>
> Perhaps Eric could send me the SQL that creates the tables so that I can
> see more clearly all the fields.
Sql definitions :
CREATE TABLE brestore_knownjobid
(
JobId int4 NOT NULL,
CONSTRAINT brestore_knownjobid_pkey PRIMARY KEY (JobId)
);
CREATE TABLE brestore_pathhierarchy
(
PathId int4 NOT NULL,
PPathId int4 NOT NULL,
CONSTRAINT brestore_pathhierarchy_pkey PRIMARY KEY (PathId)
);
CREATE INDEX brestore_pathhierarchy_ppathid
ON brestore_pathhierarchy (PPathId);
CREATE TABLE brestore_pathvisibility
(
PathId int4 NOT NULL,
JobId int4 NOT NULL,
Size int8 DEFAULT 0, -- used for statistics
Files int4 DEFAULT 0, -- used for statistics
CONSTRAINT brestore_pathvisibility_pkey PRIMARY KEY (JobId, PathId)
);
CREATE INDEX brestore_pathvisibility_jobid
ON brestore_pathvisibility (JobId);
For example, this is how we list files in a directory :
SELECT File.FilenameId, listfiles.id, listfiles.Name, File.LStat, File.JobId
FROM
(SELECT Filename.Name, max(File.FileId) as id
FROM File, Filename
WHERE File.FilenameId = Filename.FilenameId
AND Filename.Name != ''
AND File.PathId IN ( 10,20,20202,20202 )
AND File.JobId IN ( 1,2,3,4 )
GROUP BY Filename.Name
ORDER BY Filename.Name) AS listfiles,
File
WHERE File.FileId = listfiles.id
I think, i will wrote a new class (something like Bvfs) which will
do basic operations like in a real filesystem.
ch_dir(pathid)
Change current directory to pathid
ls_dirs()
List all directories in the current directory (pathid and jobid)
ls_files()
List all files in a the current directory (pathid and jobid)
up_dir()
Change to parent directory
pwd()
Get the current pathid
get_pathid(path)
Return pathid from a given path
get_root()
Get root pathid
get_all_file_versions(...)
Get all versions for a file
...
Bye
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Bacula-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bacula-devel