Thanks, Kern
On Saturday 25 August 2007 10:51, Eric Bollengier wrote: > 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 ------------------------------------------------------------------------- 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
