2 ===================================================================
3 --- src/dird/job.c (revision 8456)
4 +++ src/dird/job.c (working copy)
6 jcr->jr.JobStatus = jcr->JobStatus;
7 jcr->jr.JobFiles = jcr->JobFiles;
8 jcr->jr.JobBytes = jcr->JobBytes;
9 + jcr->jr.ReadBytes = jcr->ReadBytes;
10 jcr->jr.VolSessionId = jcr->VolSessionId;
11 jcr->jr.VolSessionTime = jcr->VolSessionTime;
12 jcr->jr.JobErrors = jcr->Errors;
13 Index: src/dird/ua_prune.c
14 ===================================================================
15 --- src/dird/ua_prune.c (revision 8456)
16 +++ src/dird/ua_prune.c (working copy)
18 utime_t now = (utime_t)time(NULL);
21 - Mmsg(query, "DELETE FROM JobHistory WHERE JobTDate < %s",
22 + Mmsg(query, "DELETE FROM JobHisto WHERE JobTDate < %s",
23 edit_int64(now - retention, ed1));
24 db_sql_query(ua->db, query.c_str(), NULL, NULL);
27 - ua->info_msg(_("Pruned Jobs from JobHistory catalog.\n"));
28 + ua->info_msg(_("Pruned Jobs from JobHisto catalog.\n"));
32 Index: src/cats/sql_update.c
33 ===================================================================
34 --- src/cats/sql_update.c (revision 8456)
35 +++ src/cats/sql_update.c (working copy)
37 utime_t now = (utime_t)time(NULL);
38 edit_uint64(now - age, ed1);
41 - "INSERT INTO JobHistory "
44 - "WHERE JobStatus IN ('T', 'f', 'A', 'E') "
45 - "AND JobId NOT IN (SELECT JobId FROM JobHistory) "
46 - "AND JobTDate < %s ", ed1);
47 + Mmsg(mdb->cmd, fill_jobhisto, ed1);
48 QUERY_DB(jcr, mdb, mdb->cmd); /* TODO: get a message ? */
49 return sql_affected_rows(mdb);
55 - char ed1[30], ed2[30], ed3[50];
56 + char ed1[30], ed2[30], ed3[50], ed4[50];
63 "UPDATE Job SET JobStatus='%c',EndTime='%s',"
64 -"ClientId=%u,JobBytes=%s,JobFiles=%u,JobErrors=%u,VolSessionId=%u,"
65 +"ClientId=%u,JobBytes=%s,ReadBytes=%s,JobFiles=%u,JobErrors=%u,VolSessionId=%u,"
66 "VolSessionTime=%u,PoolId=%u,FileSetId=%u,JobTDate=%s,"
67 "RealEndTime='%s',PriorJobId=%s WHERE JobId=%s",
68 (char)(jr->JobStatus), dt, jr->ClientId, edit_uint64(jr->JobBytes, ed1),
69 + edit_uint64(jr->ReadBytes, ed4),
70 jr->JobFiles, jr->JobErrors, jr->VolSessionId, jr->VolSessionTime,
71 jr->PoolId, jr->FileSetId, edit_uint64(JobTDate, ed2),
73 Index: src/cats/drop_postgresql_tables.in
74 ===================================================================
75 --- src/cats/drop_postgresql_tables.in (revision 8456)
76 +++ src/cats/drop_postgresql_tables.in (working copy)
81 -drop table jobhistory;
86 Index: src/cats/update_postgresql_tables.in
87 ===================================================================
88 --- src/cats/update_postgresql_tables.in (revision 8456)
89 +++ src/cats/update_postgresql_tables.in (working copy)
92 if $bindir/psql -f - -d ${db_name} $* <<END-OF-DATA
94 +-- The alter table operation can be faster with a big maintenance_work_mem
95 +-- Uncomment and adapt this value to your environment
96 +-- SET maintenance_work_mem = '1GB';
99 +ALTER TABLE file ALTER fileid TYPE bigint ;
100 +ALTER TABLE basefiles ALTER fileid TYPE bigint;
101 +ALTER TABLE job ADD COLUMN readbytes bigint default 0;
102 +ALTER TABLE media ADD COLUMN ActionOnPurge smallint default 0;
103 +ALTER TABLE pool ADD COLUMN ActionOnPurge smallint default 0;
105 -- Create a table like Job for long term statistics
106 -CREATE TABLE JobHistory (LIKE Job);
107 +CREATE TABLE JobHisto (LIKE Job);
108 +CREATE INDEX jobhisto_idx ON JobHisto ( starttime );
110 UPDATE Version SET VersionId=11;
113 +-- If you have already this table, you can remove it with:
114 +-- DROP TABLE JobHistory;
120 echo "Update of Bacula PostgreSQL tables succeeded."
121 Index: src/cats/make_sqlite3_tables.in
122 ===================================================================
123 --- src/cats/make_sqlite3_tables.in (revision 8456)
124 +++ src/cats/make_sqlite3_tables.in (working copy)
126 VolSessionTime INTEGER UNSIGNED DEFAULT 0,
127 JobFiles INTEGER UNSIGNED DEFAULT 0,
128 JobBytes BIGINT UNSIGNED DEFAULT 0,
129 + ReadBytes BIGINT UNSIGNED DEFAULT 0,
130 JobErrors INTEGER UNSIGNED DEFAULT 0,
131 JobMissingFiles INTEGER UNSIGNED DEFAULT 0,
132 PoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
134 CREATE INDEX inx6 ON Job (Name);
136 -- Create a table like Job for long term statistics
137 -CREATE TABLE JobHistory (
138 +CREATE TABLE JobHisto (
140 Job VARCHAR(128) NOT NULL,
141 Name VARCHAR(128) NOT NULL,
142 Type CHAR(1) NOT NULL,
143 Level CHAR(1) NOT NULL,
144 - ClientId INTEGER REFERENCES Client DEFAULT 0,
145 + ClientId INTEGER DEFAULT 0,
146 JobStatus CHAR(1) NOT NULL,
147 SchedTime DATETIME NOT NULL,
148 StartTime DATETIME DEFAULT 0,
150 VolSessionTime INTEGER UNSIGNED DEFAULT 0,
151 JobFiles INTEGER UNSIGNED DEFAULT 0,
152 JobBytes BIGINT UNSIGNED DEFAULT 0,
153 + ReadBytes BIGINT UNSIGNED DEFAULT 0,
154 JobErrors INTEGER UNSIGNED DEFAULT 0,
155 JobMissingFiles INTEGER UNSIGNED DEFAULT 0,
156 - PoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
157 - FileSetId INTEGER UNSIGNED REFERENCES FileSet DEFAULT 0,
158 - PriorJobId INTEGER UNSIGNED REFERENCES Job DEFAULT 0,
159 + PoolId INTEGER UNSIGNED DEFAULT 0,
160 + FileSetId INTEGER UNSIGNED DEFAULT 0,
161 + PriorJobId INTEGER UNSIGNED DEFAULT 0,
162 PurgedFiles TINYINT DEFAULT 0,
163 - HasBase TINYINT DEFAULT 0,
165 + HasBase TINYINT DEFAULT 0
167 -CREATE INDEX inx61 ON JobHistory (Name);
168 +CREATE INDEX inx61 ON JobHisto (Name);
170 CREATE TABLE Location (
173 VolStatus VARCHAR(20) NOT NULL,
174 Enabled TINYINT DEFAULT 1,
175 Recycle TINYINT DEFAULT 0,
176 + ActionOnPurge TINYINT DEFAULT 0,
177 VolRetention BIGINT UNSIGNED DEFAULT 0,
178 VolUseDuration BIGINT UNSIGNED DEFAULT 0,
179 MaxVolJobs INTEGER UNSIGNED DEFAULT 0,
181 MaxVolBytes BIGINT UNSIGNED DEFAULT 0,
182 AutoPrune TINYINT DEFAULT 0,
183 Recycle TINYINT DEFAULT 0,
184 + ActionOnPurge TINYINT DEFAULT 0,
185 PoolType VARCHAR(20) NOT NULL,
186 LabelType TINYINT DEFAULT 0,
187 LabelFormat VARCHAR(128) NOT NULL,
191 -- Initialize Version
192 -INSERT INTO Version (VersionId) VALUES (10);
193 +INSERT INTO Version (VersionId) VALUES (11);
196 PRAGMA default_cache_size = 100000;
197 Index: src/cats/cats.h
198 ===================================================================
199 --- src/cats/cats.h (revision 8456)
200 +++ src/cats/cats.h (working copy)
202 #if defined(BUILDING_CATS)
205 -#define BDB_VERSION 10
206 +#define BDB_VERSION 11
214 -#define BDB_VERSION 10
215 +#define BDB_VERSION 11
223 -#define BDB_VERSION 10
224 +#define BDB_VERSION 11
230 #ifdef HAVE_POSTGRESQL
232 -#define BDB_VERSION 10
233 +#define BDB_VERSION 11
235 #include <libpq-fe.h>
241 -#define BDB_VERSION 10
242 +#define BDB_VERSION 11
248 uint32_t JobMissingFiles;
250 + uint64_t ReadBytes;
254 Index: src/cats/update_sqlite3_tables.in
255 ===================================================================
256 --- src/cats/update_sqlite3_tables.in (revision 8456)
257 +++ src/cats/update_sqlite3_tables.in (working copy)
261 ${bindir}/${sqlite} $* ${db_name}.db <<END-OF-DATA
262 +-- Can be replaced by
263 +-- ALTER TABLE Job ADD COLUMN (ReadBytes BIGINT UNSIGNED DEFAULT 0);
266 +CREATE TEMPORARY TABLE job_backup AS SELECT * FROM Job;
269 --- Create a table like Job for long term statistics
270 -CREATE TABLE JobHistory (
274 Job VARCHAR(128) NOT NULL,
275 Name VARCHAR(128) NOT NULL,
277 VolSessionTime INTEGER UNSIGNED DEFAULT 0,
278 JobFiles INTEGER UNSIGNED DEFAULT 0,
279 JobBytes BIGINT UNSIGNED DEFAULT 0,
280 + ReadBytes BIGINT UNSIGNED DEFAULT 0,
281 JobErrors INTEGER UNSIGNED DEFAULT 0,
282 JobMissingFiles INTEGER UNSIGNED DEFAULT 0,
283 PoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
285 PriorJobId INTEGER UNSIGNED REFERENCES Job DEFAULT 0,
286 PurgedFiles TINYINT DEFAULT 0,
287 HasBase TINYINT DEFAULT 0,
291 -CREATE INDEX inx61 ON JobHistory (Name);
292 +CREATE INDEX inx6 ON Job (Name);
294 +INSERT INTO Job (JobId, Job, Name, Type, Level, ClientId, JobStatus,
295 +SchedTime, StartTime, EndTime, RealEndTime, JobTDate, VolSessionId,
296 +VolSessionTime, JobFiles, JobBytes, JobErrors, JobMissingFiles,
297 +PoolId, FileSetId, PriorJobId, PurgedFiles, HasBase) SELECT
298 +JobId, Job, Name, Type, Level, ClientId, JobStatus, SchedTime, StartTime,
299 +EndTime, RealEndTime, JobTDate, VolSessionId, VolSessionTime, JobFiles,
300 +JobBytes, JobErrors, JobMissingFiles, PoolId, FileSetId, PriorJobId,
301 +PurgedFiles, HasBase FROM Job_backup;
303 +DROP TABLE Job_backup;
306 +-- ----------------------------------------------------------------
307 +-- New ActionOnPurge field
309 +CREATE TEMPORARY TABLE pool_backup AS SELECT * FROM Pool;
314 + Name VARCHAR(128) NOT NULL,
315 + NumVols INTEGER UNSIGNED DEFAULT 0,
316 + MaxVols INTEGER UNSIGNED DEFAULT 0,
317 + UseOnce TINYINT DEFAULT 0,
318 + UseCatalog TINYINT DEFAULT 1,
319 + AcceptAnyVolume TINYINT DEFAULT 0,
320 + VolRetention BIGINT UNSIGNED DEFAULT 0,
321 + VolUseDuration BIGINT UNSIGNED DEFAULT 0,
322 + MaxVolJobs INTEGER UNSIGNED DEFAULT 0,
323 + MaxVolFiles INTEGER UNSIGNED DEFAULT 0,
324 + MaxVolBytes BIGINT UNSIGNED DEFAULT 0,
325 + AutoPrune TINYINT DEFAULT 0,
326 + Recycle TINYINT DEFAULT 0,
327 + ActionOnPurge TINYINT DEFAULT 0,
328 + PoolType VARCHAR(20) NOT NULL,
329 + LabelType TINYINT DEFAULT 0,
330 + LabelFormat VARCHAR(128) NOT NULL,
331 + Enabled TINYINT DEFAULT 1,
332 + ScratchPoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
333 + RecyclePoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
334 + NextPoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
335 + MigrationHighBytes BIGINT UNSIGNED DEFAULT 0,
336 + MigrationLowBytes BIGINT UNSIGNED DEFAULT 0,
337 + MigrationTime BIGINT UNSIGNED DEFAULT 0,
339 + PRIMARY KEY (PoolId)
342 +INSERT INTO Pool (PoolId, Name, NumVols, MaxVols, UseOnce, UseCatalog,
343 +AcceptAnyVolume, VolRetention, VolUseDuration, MaxVolJobs, MaxVolFiles,
344 +MaxVolBytes, AutoPrune, Recycle, PoolType, LabelType,
345 +LabelFormat, Enabled, ScratchPoolId, RecyclePoolId, NextPoolId,
346 +MigrationHighBytes, MigrationLowBytes, MigrationTime)
347 +SELECT PoolId, Name, NumVols, MaxVols, UseOnce, UseCatalog, AcceptAnyVolume,
348 +VolRetention, VolUseDuration, MaxVolJobs, MaxVolFiles, MaxVolBytes, AutoPrune,
349 +Recycle, PoolType, LabelType, LabelFormat, Enabled,
350 +ScratchPoolId, RecyclePoolId, NextPoolId, MigrationHighBytes,
351 +MigrationLowBytes, MigrationTime FROM pool_backup;
353 +DROP TABLE pool_backup;
355 +-- ----------------------------------------------------------------
356 +-- New ActionOnPurge field
358 +CREATE TEMPORARY TABLE media_backup AS SELECT * FROM Media;
361 +CREATE TABLE Media (
363 + VolumeName VARCHAR(128) NOT NULL,
364 + Slot INTEGER DEFAULT 0,
365 + PoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
366 + MediaType VARCHAR(128) NOT NULL,
367 + MediaTypeId INTEGER UNSIGNED REFERENCES MediaType DEFAULT 0,
368 + LabelType TINYINT DEFAULT 0,
369 + FirstWritten DATETIME DEFAULT 0,
370 + LastWritten DATETIME DEFAULT 0,
371 + LabelDate DATETIME DEFAULT 0,
372 + VolJobs INTEGER UNSIGNED DEFAULT 0,
373 + VolFiles INTEGER UNSIGNED DEFAULT 0,
374 + VolBlocks INTEGER UNSIGNED DEFAULT 0,
375 + VolMounts INTEGER UNSIGNED DEFAULT 0,
376 + VolBytes BIGINT UNSIGNED DEFAULT 0,
377 + VolParts INTEGER UNSIGNED DEFAULT 0,
378 + VolErrors INTEGER UNSIGNED DEFAULT 0,
379 + VolWrites INTEGER UNSIGNED DEFAULT 0,
380 + VolCapacityBytes BIGINT UNSIGNED DEFAULT 0,
381 + VolStatus VARCHAR(20) NOT NULL,
382 + Enabled TINYINT DEFAULT 1,
383 + Recycle TINYINT DEFAULT 0,
384 + ActionOnPurge TINYINT DEFAULT 0,
385 + VolRetention BIGINT UNSIGNED DEFAULT 0,
386 + VolUseDuration BIGINT UNSIGNED DEFAULT 0,
387 + MaxVolJobs INTEGER UNSIGNED DEFAULT 0,
388 + MaxVolFiles INTEGER UNSIGNED DEFAULT 0,
389 + MaxVolBytes BIGINT UNSIGNED DEFAULT 0,
390 + InChanger TINYINT DEFAULT 0,
391 + StorageId INTEGER UNSIGNED REFERENCES Storage DEFAULT 0,
392 + DeviceId INTEGER UNSIGNED REFERENCES Device DEFAULT 0,
393 + MediaAddressing TINYINT DEFAULT 0,
394 + VolReadTime BIGINT UNSIGNED DEFAULT 0,
395 + VolWriteTime BIGINT UNSIGNED DEFAULT 0,
396 + EndFile INTEGER UNSIGNED DEFAULT 0,
397 + EndBlock INTEGER UNSIGNED DEFAULT 0,
398 + LocationId INTEGER UNSIGNED REFERENCES Location DEFAULT 0,
399 + RecycleCount INTEGER UNSIGNED DEFAULT 0,
400 + InitialWrite DATETIME DEFAULT 0,
401 + ScratchPoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
402 + RecyclePoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
404 + PRIMARY KEY(MediaId)
407 +CREATE INDEX inx8 ON Media (PoolId);
410 + MediaId, VolumeName, Slot, PoolId, MediaType, MediaTypeId,
411 + LabelType, FirstWritten, LastWritten, LabelDate, VolJobs,
412 + VolFiles, VolBlocks, VolMounts, VolBytes, VolParts, VolErrors,
413 + VolWrites, VolCapacityBytes, VolStatus, Enabled, Recycle,
414 + VolRetention, VolUseDuration, MaxVolJobs,
415 + MaxVolFiles, MaxVolBytes, InChanger, StorageId, DeviceId,
416 + MediaAddressing, VolReadTime, VolWriteTime, EndFile, EndBlock,
417 + LocationId, RecycleCount, InitialWrite, ScratchPoolId,
418 + RecyclePoolId, Comment)
419 +SELECT MediaId, VolumeName, Slot, PoolId, MediaType, MediaTypeId,
420 + LabelType, FirstWritten, LastWritten, LabelDate, VolJobs,
421 + VolFiles, VolBlocks, VolMounts, VolBytes, VolParts, VolErrors,
422 + VolWrites, VolCapacityBytes, VolStatus, Enabled, Recycle,
423 + VolRetention, VolUseDuration, MaxVolJobs,
424 + MaxVolFiles, MaxVolBytes, InChanger, StorageId, DeviceId,
425 + MediaAddressing, VolReadTime, VolWriteTime, EndFile, EndBlock,
426 + LocationId, RecycleCount, InitialWrite, ScratchPoolId,
427 + RecyclePoolId, Comment FROM media_backup;
429 +DROP TABLE media_backup;
431 UPDATE Version SET VersionId=11;
435 +-- If you have already this table, you can remove it with:
436 +-- DROP TABLE JobHistory;
438 +-- Create a table like Job for long term statistics
439 +CREATE TABLE JobHisto (
441 + Job VARCHAR(128) NOT NULL,
442 + Name VARCHAR(128) NOT NULL,
443 + Type CHAR NOT NULL,
444 + Level CHAR NOT NULL,
445 + ClientId INTEGER REFERENCES Client DEFAULT 0,
446 + JobStatus CHAR NOT NULL,
447 + SchedTime DATETIME NOT NULL,
448 + StartTime DATETIME DEFAULT 0,
449 + EndTime DATETIME DEFAULT 0,
450 + RealEndTime DATETIME DEFAULT 0,
451 + JobTDate BIGINT UNSIGNED DEFAULT 0,
452 + VolSessionId INTEGER UNSIGNED DEFAULT 0,
453 + VolSessionTime INTEGER UNSIGNED DEFAULT 0,
454 + JobFiles INTEGER UNSIGNED DEFAULT 0,
455 + JobBytes BIGINT UNSIGNED DEFAULT 0,
456 + ReadBytes BIGINT UNSIGNED DEFAULT 0,
457 + JobErrors INTEGER UNSIGNED DEFAULT 0,
458 + JobMissingFiles INTEGER UNSIGNED DEFAULT 0,
459 + PoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
460 + FileSetId INTEGER UNSIGNED REFERENCES FileSet DEFAULT 0,
461 + PriorJobId INTEGER UNSIGNED REFERENCES Job DEFAULT 0,
462 + PurgedFiles TINYINT DEFAULT 0,
463 + HasBase TINYINT DEFAULT 0
465 +CREATE INDEX inx61 ON JobHisto (Name);
468 Index: src/cats/make_postgresql_tables.in
469 ===================================================================
470 --- src/cats/make_postgresql_tables.in (revision 8456)
471 +++ src/cats/make_postgresql_tables.in (working copy)
475 ALTER TABLE filename ALTER COLUMN name SET STATISTICS 1000;
476 -CREATE INDEX filename_name_idx on filename (name);
477 +CREATE UNIQUE INDEX filename_name_idx on filename (name);
484 ALTER TABLE path ALTER COLUMN path SET STATISTICS 1000;
485 -CREATE INDEX path_name_idx on path (path);
486 +CREATE UNIQUE INDEX path_name_idx on path (path);
490 - fileid serial not null,
491 + fileid bigserial not null,
492 fileindex integer not null default 0,
493 jobid integer not null,
494 pathid integer not null,
496 volsessiontime integer default 0,
497 jobfiles integer default 0,
498 jobbytes bigint default 0,
499 + readbytes bigint default 0,
500 joberrors integer default 0,
501 jobmissingfiles integer default 0,
502 poolid integer default 0,
504 CREATE INDEX job_name_idx on job (name);
506 -- Create a table like Job for long term statistics
507 -CREATE TABLE JobHistory (LIKE Job);
508 +CREATE TABLE JobHisto (LIKE Job);
509 +CREATE INDEX jobhisto_idx ON jobhisto ( starttime );
512 CREATE TABLE Location (
513 LocationId serial not null,
514 Location text not null,
516 'Error','Busy','Used','Cleaning','Scratch')),
517 enabled smallint default 1,
518 recycle smallint default 0,
519 + ActionOnPurge smallint default 0,
520 volretention bigint default 0,
521 voluseduration bigint default 0,
522 maxvoljobs integer default 0,
524 maxvolbytes bigint default 0,
525 autoprune smallint default 0,
526 recycle smallint default 0,
527 + ActionOnPurge smallint default 0,
529 check (pooltype in ('Backup','Copy','Cloned','Archive','Migration','Scratch')),
530 labeltype integer default 0,
533 baseid serial not null,
534 jobid integer not null,
535 - fileid integer not null,
536 + fileid bigint not null,
541 INSERT INTO Status (JobStatus,JobStatusLong) VALUES
542 ('i', 'Doing batch insert file records');
544 -INSERT INTO Version (VersionId) VALUES (10);
545 +INSERT INTO Version (VersionId) VALUES (11);
547 -- Make sure we have appropriate permissions
549 Index: src/cats/update_sqlite_tables.in
550 ===================================================================
551 --- src/cats/update_sqlite_tables.in (revision 8456)
552 +++ src/cats/update_sqlite_tables.in (working copy)
554 ${bindir}/${sqlite} $* ${db_name}.db <<END-OF-DATA
557 --- Create a table like Job for long term statistics
558 +CREATE TEMPORARY TABLE job_backup AS SELECT * FROM Job;
561 -CREATE TABLE JobHistory (
565 Job VARCHAR(128) NOT NULL,
566 Name VARCHAR(128) NOT NULL,
568 VolSessionTime INTEGER UNSIGNED DEFAULT 0,
569 JobFiles INTEGER UNSIGNED DEFAULT 0,
570 JobBytes BIGINT UNSIGNED DEFAULT 0,
571 + ReadBytes BIGINT UNSIGNED DEFAULT 0,
572 JobErrors INTEGER UNSIGNED DEFAULT 0,
573 JobMissingFiles INTEGER UNSIGNED DEFAULT 0,
574 PoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
576 PriorJobId INTEGER UNSIGNED REFERENCES Job DEFAULT 0,
577 PurgedFiles TINYINT DEFAULT 0,
578 HasBase TINYINT DEFAULT 0,
582 -CREATE INDEX inx61 ON JobHistory (Name);
583 +CREATE INDEX inx6 ON Job (Name);
585 +INSERT INTO Job (JobId, Job, Name, Type, Level, ClientId, JobStatus,
586 +SchedTime, StartTime, EndTime, RealEndTime, JobTDate, VolSessionId,
587 +VolSessionTime, JobFiles, JobBytes, JobErrors, JobMissingFiles,
588 +PoolId, FileSetId, PriorJobId, PurgedFiles, HasBase) SELECT
589 +JobId, Job, Name, Type, Level, ClientId, JobStatus, SchedTime, StartTime,
590 +EndTime, RealEndTime, JobTDate, VolSessionId, VolSessionTime, JobFiles,
591 +JobBytes, JobErrors, JobMissingFiles, PoolId, FileSetId, PriorJobId,
592 +PurgedFiles, HasBase FROM Job_backup;
594 +DROP TABLE Job_backup;
596 +-- ----------------------------------------------------------------
597 +-- New ActionOnPurge field
599 +CREATE TEMPORARY TABLE pool_backup AS SELECT * FROM Pool;
604 + Name VARCHAR(128) NOT NULL,
605 + NumVols INTEGER UNSIGNED DEFAULT 0,
606 + MaxVols INTEGER UNSIGNED DEFAULT 0,
607 + UseOnce TINYINT DEFAULT 0,
608 + UseCatalog TINYINT DEFAULT 1,
609 + AcceptAnyVolume TINYINT DEFAULT 0,
610 + VolRetention BIGINT UNSIGNED DEFAULT 0,
611 + VolUseDuration BIGINT UNSIGNED DEFAULT 0,
612 + MaxVolJobs INTEGER UNSIGNED DEFAULT 0,
613 + MaxVolFiles INTEGER UNSIGNED DEFAULT 0,
614 + MaxVolBytes BIGINT UNSIGNED DEFAULT 0,
615 + AutoPrune TINYINT DEFAULT 0,
616 + Recycle TINYINT DEFAULT 0,
617 + ActionOnPurge TINYINT DEFAULT 0,
618 + PoolType VARCHAR(20) NOT NULL,
619 + LabelType TINYINT DEFAULT 0,
620 + LabelFormat VARCHAR(128) NOT NULL,
621 + Enabled TINYINT DEFAULT 1,
622 + ScratchPoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
623 + RecyclePoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
624 + NextPoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
625 + MigrationHighBytes BIGINT UNSIGNED DEFAULT 0,
626 + MigrationLowBytes BIGINT UNSIGNED DEFAULT 0,
627 + MigrationTime BIGINT UNSIGNED DEFAULT 0,
629 + PRIMARY KEY (PoolId)
632 +INSERT INTO Pool (PoolId, Name, NumVols, MaxVols, UseOnce, UseCatalog,
633 +AcceptAnyVolume, VolRetention, VolUseDuration, MaxVolJobs, MaxVolFiles,
634 +MaxVolBytes, AutoPrune, Recycle, PoolType, LabelType,
635 +LabelFormat, Enabled, ScratchPoolId, RecyclePoolId, NextPoolId,
636 +MigrationHighBytes, MigrationLowBytes, MigrationTime)
637 +SELECT PoolId, Name, NumVols, MaxVols, UseOnce, UseCatalog, AcceptAnyVolume,
638 +VolRetention, VolUseDuration, MaxVolJobs, MaxVolFiles, MaxVolBytes, AutoPrune,
639 +Recycle, PoolType, LabelType, LabelFormat, Enabled,
640 +ScratchPoolId, RecyclePoolId, NextPoolId, MigrationHighBytes,
641 +MigrationLowBytes, MigrationTime FROM pool_backup;
643 +DROP TABLE pool_backup;
645 +-- ----------------------------------------------------------------
646 +-- New ActionOnPurge field
648 +CREATE TEMPORARY TABLE media_backup AS SELECT * FROM Media;
651 +CREATE TABLE Media (
653 + VolumeName VARCHAR(128) NOT NULL,
654 + Slot INTEGER DEFAULT 0,
655 + PoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
656 + MediaType VARCHAR(128) NOT NULL,
657 + MediaTypeId INTEGER UNSIGNED REFERENCES MediaType DEFAULT 0,
658 + LabelType TINYINT DEFAULT 0,
659 + FirstWritten DATETIME DEFAULT 0,
660 + LastWritten DATETIME DEFAULT 0,
661 + LabelDate DATETIME DEFAULT 0,
662 + VolJobs INTEGER UNSIGNED DEFAULT 0,
663 + VolFiles INTEGER UNSIGNED DEFAULT 0,
664 + VolBlocks INTEGER UNSIGNED DEFAULT 0,
665 + VolMounts INTEGER UNSIGNED DEFAULT 0,
666 + VolBytes BIGINT UNSIGNED DEFAULT 0,
667 + VolParts INTEGER UNSIGNED DEFAULT 0,
668 + VolErrors INTEGER UNSIGNED DEFAULT 0,
669 + VolWrites INTEGER UNSIGNED DEFAULT 0,
670 + VolCapacityBytes BIGINT UNSIGNED DEFAULT 0,
671 + VolStatus VARCHAR(20) NOT NULL,
672 + Enabled TINYINT DEFAULT 1,
673 + Recycle TINYINT DEFAULT 0,
674 + ActionOnPurge TINYINT DEFAULT 0,
675 + VolRetention BIGINT UNSIGNED DEFAULT 0,
676 + VolUseDuration BIGINT UNSIGNED DEFAULT 0,
677 + MaxVolJobs INTEGER UNSIGNED DEFAULT 0,
678 + MaxVolFiles INTEGER UNSIGNED DEFAULT 0,
679 + MaxVolBytes BIGINT UNSIGNED DEFAULT 0,
680 + InChanger TINYINT DEFAULT 0,
681 + StorageId INTEGER UNSIGNED REFERENCES Storage DEFAULT 0,
682 + DeviceId INTEGER UNSIGNED REFERENCES Device DEFAULT 0,
683 + MediaAddressing TINYINT DEFAULT 0,
684 + VolReadTime BIGINT UNSIGNED DEFAULT 0,
685 + VolWriteTime BIGINT UNSIGNED DEFAULT 0,
686 + EndFile INTEGER UNSIGNED DEFAULT 0,
687 + EndBlock INTEGER UNSIGNED DEFAULT 0,
688 + LocationId INTEGER UNSIGNED REFERENCES Location DEFAULT 0,
689 + RecycleCount INTEGER UNSIGNED DEFAULT 0,
690 + InitialWrite DATETIME DEFAULT 0,
691 + ScratchPoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
692 + RecyclePoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
694 + PRIMARY KEY(MediaId)
697 +CREATE INDEX inx8 ON Media (PoolId);
700 + MediaId, VolumeName, Slot, PoolId, MediaType, MediaTypeId,
701 + LabelType, FirstWritten, LastWritten, LabelDate, VolJobs,
702 + VolFiles, VolBlocks, VolMounts, VolBytes, VolParts, VolErrors,
703 + VolWrites, VolCapacityBytes, VolStatus, Enabled, Recycle,
704 + VolRetention, VolUseDuration, MaxVolJobs,
705 + MaxVolFiles, MaxVolBytes, InChanger, StorageId, DeviceId,
706 + MediaAddressing, VolReadTime, VolWriteTime, EndFile, EndBlock,
707 + LocationId, RecycleCount, InitialWrite, ScratchPoolId,
708 + RecyclePoolId, Comment)
709 +SELECT MediaId, VolumeName, Slot, PoolId, MediaType, MediaTypeId,
710 + LabelType, FirstWritten, LastWritten, LabelDate, VolJobs,
711 + VolFiles, VolBlocks, VolMounts, VolBytes, VolParts, VolErrors,
712 + VolWrites, VolCapacityBytes, VolStatus, Enabled, Recycle,
713 + VolRetention, VolUseDuration, MaxVolJobs,
714 + MaxVolFiles, MaxVolBytes, InChanger, StorageId, DeviceId,
715 + MediaAddressing, VolReadTime, VolWriteTime, EndFile, EndBlock,
716 + LocationId, RecycleCount, InitialWrite, ScratchPoolId,
717 + RecyclePoolId, Comment FROM media_backup;
719 +DROP TABLE media_backup;
721 +-- ----------------------------------------------------------------
723 UPDATE Version SET VersionId=11;
727 +-- If you have already this table, you can remove it with:
728 +-- DROP TABLE JobHistory;
730 +-- Create a table like Job for long term statistics
731 +CREATE TABLE JobHisto (
733 + Job VARCHAR(128) NOT NULL,
734 + Name VARCHAR(128) NOT NULL,
735 + Type CHAR NOT NULL,
736 + Level CHAR NOT NULL,
737 + ClientId INTEGER REFERENCES Client DEFAULT 0,
738 + JobStatus CHAR NOT NULL,
739 + SchedTime DATETIME NOT NULL,
740 + StartTime DATETIME DEFAULT 0,
741 + EndTime DATETIME DEFAULT 0,
742 + RealEndTime DATETIME DEFAULT 0,
743 + JobTDate BIGINT UNSIGNED DEFAULT 0,
744 + VolSessionId INTEGER UNSIGNED DEFAULT 0,
745 + VolSessionTime INTEGER UNSIGNED DEFAULT 0,
746 + JobFiles INTEGER UNSIGNED DEFAULT 0,
747 + JobBytes BIGINT UNSIGNED DEFAULT 0,
748 + ReadBytes BIGINT UNSIGNED DEFAULT 0,
749 + JobErrors INTEGER UNSIGNED DEFAULT 0,
750 + JobMissingFiles INTEGER UNSIGNED DEFAULT 0,
751 + PoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
752 + FileSetId INTEGER UNSIGNED REFERENCES FileSet DEFAULT 0,
753 + PriorJobId INTEGER UNSIGNED REFERENCES Job DEFAULT 0,
754 + PurgedFiles TINYINT DEFAULT 0,
755 + HasBase TINYINT DEFAULT 0
757 +CREATE INDEX inx61 ON JobHisto (Name);
760 Index: src/cats/update_mysql_tables.in
761 ===================================================================
762 --- src/cats/update_mysql_tables.in (revision 8456)
763 +++ src/cats/update_mysql_tables.in (working copy)
765 if $bindir/mysql $* -f <<END-OF-DATA
768 --- Create a table like Job for long term statistics
769 -CREATE TABLE JobHistory (LIKE Job);
771 -- Fix bad index on Media table
773 +DROP INDEX inx8 ON Media;
774 CREATE UNIQUE INDEX inx8 ON Media (VolumeName(128));
775 +ALTER TABLE File CHANGE FileId FileId BIGINT UNSIGNED NOT NULL AUTO_INCREMENT;
776 +ALTER TABLE BaseFiles CHANGE FileId FileId BIGINT UNSIGNED NOT NULL;
777 +ALTER TABLE Job ADD ReadBytes BIGINT UNSIGNED DEFAULT 0 AFTER JobBytes;
778 +ALTER TABLE Media ADD ActionOnPurge TINYINT DEFAULT 0 AFTER Recycle;
779 +ALTER TABLE Pool ADD ActionOnPurge TINYINT DEFAULT 0 AFTER Recycle;
782 INSERT INTO Version (VersionId) VALUES (11);
784 +-- If you have already this table, you can remove it with:
785 +-- DROP TABLE JobHistory;
787 +-- Create a table like Job for long term statistics
788 +CREATE TABLE JobHisto (
789 + JobId INTEGER UNSIGNED NOT NULL,
790 + Job TINYBLOB NOT NULL,
791 + Name TINYBLOB NOT NULL,
792 + Type BINARY(1) NOT NULL,
793 + Level BINARY(1) NOT NULL,
794 + ClientId INTEGER DEFAULT 0,
795 + JobStatus BINARY(1) NOT NULL,
796 + SchedTime DATETIME DEFAULT 0,
797 + StartTime DATETIME DEFAULT 0,
798 + EndTime DATETIME DEFAULT 0,
799 + RealEndTime DATETIME DEFAULT 0,
800 + JobTDate BIGINT UNSIGNED DEFAULT 0,
801 + VolSessionId INTEGER UNSIGNED DEFAULT 0,
802 + VolSessionTime INTEGER UNSIGNED DEFAULT 0,
803 + JobFiles INTEGER UNSIGNED DEFAULT 0,
804 + JobBytes BIGINT UNSIGNED DEFAULT 0,
805 + ReadBytes BIGINT UNSIGNED DEFAULT 0,
806 + JobErrors INTEGER UNSIGNED DEFAULT 0,
807 + JobMissingFiles INTEGER UNSIGNED DEFAULT 0,
808 + PoolId INTEGER UNSIGNED DEFAULT 0,
809 + FileSetId INTEGER UNSIGNED DEFAULT 0,
810 + PriorJobId INTEGER UNSIGNED DEFAULT 0,
811 + PurgedFiles TINYINT DEFAULT 0,
812 + HasBase TINYINT DEFAULT 0,
818 echo "Update of Bacula MySQL tables succeeded."
819 Index: src/cats/make_sqlite_tables.in
820 ===================================================================
821 --- src/cats/make_sqlite_tables.in (revision 8456)
822 +++ src/cats/make_sqlite_tables.in (working copy)
824 VolSessionTime INTEGER UNSIGNED DEFAULT 0,
825 JobFiles INTEGER UNSIGNED DEFAULT 0,
826 JobBytes BIGINT UNSIGNED DEFAULT 0,
827 + ReadBytes BIGINT UNSIGNED DEFAULT 0,
828 JobErrors INTEGER UNSIGNED DEFAULT 0,
829 JobMissingFiles INTEGER UNSIGNED DEFAULT 0,
830 PoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
832 CREATE INDEX inx6 ON Job (Name);
834 -- Create a table like Job for long term statistics
835 -CREATE TABLE JobHistory (
836 +CREATE TABLE JobHisto (
838 Job VARCHAR(128) NOT NULL,
839 Name VARCHAR(128) NOT NULL,
840 Type CHAR(1) NOT NULL,
841 Level CHAR(1) NOT NULL,
842 - ClientId INTEGER REFERENCES Client DEFAULT 0,
843 + ClientId INTEGER DEFAULT 0,
844 JobStatus CHAR(1) NOT NULL,
845 SchedTime DATETIME NOT NULL,
846 StartTime DATETIME DEFAULT 0,
848 VolSessionTime INTEGER UNSIGNED DEFAULT 0,
849 JobFiles INTEGER UNSIGNED DEFAULT 0,
850 JobBytes BIGINT UNSIGNED DEFAULT 0,
851 + ReadBytes BIGINT UNSIGNED DEFAULT 0,
852 JobErrors INTEGER UNSIGNED DEFAULT 0,
853 JobMissingFiles INTEGER UNSIGNED DEFAULT 0,
854 - PoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
855 - FileSetId INTEGER UNSIGNED REFERENCES FileSet DEFAULT 0,
856 - PriorJobId INTEGER UNSIGNED REFERENCES Job DEFAULT 0,
857 + PoolId INTEGER UNSIGNED DEFAULT 0,
858 + FileSetId INTEGER UNSIGNED DEFAULT 0,
859 + PriorJobId INTEGER UNSIGNED DEFAULT 0,
860 PurgedFiles TINYINT DEFAULT 0,
861 - HasBase TINYINT DEFAULT 0,
863 + HasBase TINYINT DEFAULT 0
865 -CREATE INDEX inx61 ON JobHistory (Name);
866 +CREATE INDEX inx61 ON JobHisto (Name);
868 CREATE TABLE Location (
871 VolStatus VARCHAR(20) NOT NULL,
872 Enabled TINYINT DEFAULT 1,
873 Recycle TINYINT DEFAULT 0,
874 + ActionOnPurge TINYINT DEFAULT 0,
875 VolRetention BIGINT UNSIGNED DEFAULT 0,
876 VolUseDuration BIGINT UNSIGNED DEFAULT 0,
877 MaxVolJobs INTEGER UNSIGNED DEFAULT 0,
879 MaxVolBytes BIGINT UNSIGNED DEFAULT 0,
880 AutoPrune TINYINT DEFAULT 0,
881 Recycle TINYINT DEFAULT 0,
882 + ActionOnPurge TINYINT DEFAULT 0,
883 PoolType VARCHAR(20) NOT NULL,
884 LabelType TINYINT DEFAULT 0,
885 LabelFormat VARCHAR(128) NOT NULL,
889 -- Initialize Version
890 -INSERT INTO Version (VersionId) VALUES (10);
891 +INSERT INTO Version (VersionId) VALUES (11);
894 PRAGMA default_synchronous = OFF;
895 Index: src/cats/sql_get.c
896 ===================================================================
897 --- src/cats/sql_get.c (revision 8456)
898 +++ src/cats/sql_get.c (working copy)
899 @@ -297,13 +297,13 @@
900 Mmsg(mdb->cmd, "SELECT VolSessionId,VolSessionTime,"
901 "PoolId,StartTime,EndTime,JobFiles,JobBytes,JobTDate,Job,JobStatus,"
902 "Type,Level,ClientId,Name,PriorJobId,RealEndTime,JobId,FileSetId,"
903 -"SchedTime,RealEndTime "
904 +"SchedTime,RealEndTime,ReadBytes "
905 "FROM Job WHERE Job='%s'", jr->Job);
907 Mmsg(mdb->cmd, "SELECT VolSessionId,VolSessionTime,"
908 "PoolId,StartTime,EndTime,JobFiles,JobBytes,JobTDate,Job,JobStatus,"
909 "Type,Level,ClientId,Name,PriorJobId,RealEndTime,JobId,FileSetId,"
910 -"SchedTime,RealEndTime "
911 +"SchedTime,RealEndTime,ReadBytes "
912 "FROM Job WHERE JobId=%s",
913 edit_int64(jr->JobId, ed1));
916 jr->FileSetId = str_to_int64(row[17]);
917 bstrncpy(jr->cSchedTime, row[3]!=NULL?row[18]:"", sizeof(jr->cSchedTime));
918 bstrncpy(jr->cRealEndTime, row[3]!=NULL?row[19]:"", sizeof(jr->cRealEndTime));
919 + jr->ReadBytes = str_to_int64(row[20]);
920 jr->StartTime = str_to_utime(jr->cStartTime);
921 jr->SchedTime = str_to_utime(jr->cSchedTime);
922 jr->EndTime = str_to_utime(jr->cEndTime);
923 Index: src/cats/sql_cmds.c
924 ===================================================================
925 --- src/cats/sql_cmds.c (revision 8456)
926 +++ src/cats/sql_cmds.c (working copy)
932 +/* For sql_update.c db_update_stats */
933 +const char *fill_jobhisto =
934 + "INSERT INTO JobHisto ("
935 + "JobId, Job, Name, Type, Level, ClientId, JobStatus, "
936 + "SchedTime, StartTime, EndTime, RealEndTime, JobTDate, "
937 + "VolSessionId, VolSessionTime, JobFiles, JobBytes, ReadBytes, "
938 + "JobErrors, JobMissingFiles, PoolId, FileSetId, PriorJobId, "
939 + "PurgedFiles, HasBase ) "
941 + "JobId, Job, Name, Type, Level, ClientId, JobStatus, "
942 + "SchedTime, StartTime, EndTime, RealEndTime, JobTDate, "
943 + "VolSessionId, VolSessionTime, JobFiles, JobBytes, ReadBytes, "
944 + "JobErrors, JobMissingFiles, PoolId, FileSetId, PriorJobId, "
945 + "PurgedFiles, HasBase "
947 + "WHERE JobStatus IN ('T', 'f', 'A', 'E') "
948 + "AND JobId NOT IN (SELECT JobId FROM JobHisto) "
949 + "AND JobTDate < %s ";
951 /* For ua_update.c */
952 const char *list_pool = "SELECT * FROM Pool WHERE PoolId=%s";
954 Index: src/cats/drop_mysql_tables.in
955 ===================================================================
956 --- src/cats/drop_mysql_tables.in (revision 8456)
957 +++ src/cats/drop_mysql_tables.in (working copy)
959 DROP TABLE IF EXISTS File;
960 DROP TABLE IF EXISTS Client;
961 DROP TABLE IF EXISTS Job;
962 -DROP TABLE IF EXISTS JobHistory;
963 +DROP TABLE IF EXISTS JobHisto;
964 DROP TABLE IF EXISTS Media;
965 DROP TABLE IF EXISTS JobMedia;
966 DROP TABLE IF EXISTS Pool;
967 Index: src/cats/sql_cmds.h
968 ===================================================================
969 --- src/cats/sql_cmds.h (revision 8456)
970 +++ src/cats/sql_cmds.h (working copy)
972 Switzerland, email:ftf@fsfeurope.org.
976 +extern const char CATS_IMP_EXP *fill_jobhisto;
977 extern const char CATS_IMP_EXP *client_backups;
978 extern const char CATS_IMP_EXP *list_pool;
979 extern const char CATS_IMP_EXP *drop_deltabs[];
980 Index: src/cats/grant_postgresql_privileges.in
981 ===================================================================
982 --- src/cats/grant_postgresql_privileges.in (revision 8456)
983 +++ src/cats/grant_postgresql_privileges.in (working copy)
985 grant all on location to ${db_user};
986 grant all on locationlog to ${db_user};
987 grant all on log to ${db_user};
988 -grant all on jobhistory to ${db_user};
989 +grant all on jobhisto to ${db_user};
991 -- for sequences on those tables
993 Index: src/cats/make_mysql_tables.in
994 ===================================================================
995 --- src/cats/make_mysql_tables.in (revision 8456)
996 +++ src/cats/make_mysql_tables.in (working copy)
1001 - FileId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
1002 + FileId BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
1003 FileIndex INTEGER UNSIGNED DEFAULT 0,
1004 JobId INTEGER UNSIGNED NOT NULL REFERENCES Job,
1005 PathId INTEGER UNSIGNED NOT NULL REFERENCES Path,
1007 VolSessionTime INTEGER UNSIGNED DEFAULT 0,
1008 JobFiles INTEGER UNSIGNED DEFAULT 0,
1009 JobBytes BIGINT UNSIGNED DEFAULT 0,
1010 + ReadBytes BIGINT UNSIGNED DEFAULT 0,
1011 JobErrors INTEGER UNSIGNED DEFAULT 0,
1012 JobMissingFiles INTEGER UNSIGNED DEFAULT 0,
1013 PoolId INTEGER UNSIGNED DEFAULT 0 REFERENCES Pool,
1014 @@ -116,7 +117,33 @@
1017 -- Create a table like Job for long term statistics
1018 -CREATE TABLE JobHistory (LIKE Job);
1019 +CREATE TABLE JobHisto (
1020 + JobId INTEGER UNSIGNED NOT NULL,
1021 + Job TINYBLOB NOT NULL,
1022 + Name TINYBLOB NOT NULL,
1023 + Type BINARY(1) NOT NULL,
1024 + Level BINARY(1) NOT NULL,
1025 + ClientId INTEGER DEFAULT 0,
1026 + JobStatus BINARY(1) NOT NULL,
1027 + SchedTime DATETIME DEFAULT 0,
1028 + StartTime DATETIME DEFAULT 0,
1029 + EndTime DATETIME DEFAULT 0,
1030 + RealEndTime DATETIME DEFAULT 0,
1031 + JobTDate BIGINT UNSIGNED DEFAULT 0,
1032 + VolSessionId INTEGER UNSIGNED DEFAULT 0,
1033 + VolSessionTime INTEGER UNSIGNED DEFAULT 0,
1034 + JobFiles INTEGER UNSIGNED DEFAULT 0,
1035 + JobBytes BIGINT UNSIGNED DEFAULT 0,
1036 + ReadBytes BIGINT UNSIGNED DEFAULT 0,
1037 + JobErrors INTEGER UNSIGNED DEFAULT 0,
1038 + JobMissingFiles INTEGER UNSIGNED DEFAULT 0,
1039 + PoolId INTEGER UNSIGNED DEFAULT 0,
1040 + FileSetId INTEGER UNSIGNED DEFAULT 0,
1041 + PriorJobId INTEGER UNSIGNED DEFAULT 0,
1042 + PurgedFiles TINYINT DEFAULT 0,
1043 + HasBase TINYINT DEFAULT 0,
1047 CREATE TABLE Location (
1048 LocationId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
1050 'Read-Only', 'Disabled', 'Error', 'Busy', 'Used', 'Cleaning') NOT NULL,
1051 Enabled TINYINT DEFAULT 1,
1052 Recycle TINYINT DEFAULT 0,
1053 + ActionOnPurge TINYINT DEFAULT 0,
1054 VolRetention BIGINT UNSIGNED DEFAULT 0,
1055 VolUseDuration BIGINT UNSIGNED DEFAULT 0,
1056 MaxVolJobs INTEGER UNSIGNED DEFAULT 0,
1058 MaxVolBytes BIGINT UNSIGNED DEFAULT 0,
1059 AutoPrune TINYINT DEFAULT 0,
1060 Recycle TINYINT DEFAULT 0,
1061 + ActionOnPurge TINYINT DEFAULT 0,
1062 PoolType ENUM('Backup', 'Copy', 'Cloned', 'Archive', 'Migration', 'Scratch') NOT NULL,
1063 LabelType TINYINT DEFAULT 0,
1064 LabelFormat TINYBLOB,
1066 BaseId INTEGER UNSIGNED AUTO_INCREMENT,
1067 BaseJobId INTEGER UNSIGNED NOT NULL REFERENCES Job,
1068 JobId INTEGER UNSIGNED NOT NULL REFERENCES Job,
1069 - FileId INTEGER UNSIGNED NOT NULL REFERENCES File,
1070 + FileId BIGINT UNSIGNED NOT NULL REFERENCES File,
1071 FileIndex INTEGER UNSIGNED,
1077 -- Initialize Version
1078 -INSERT INTO Version (VersionId) VALUES (10);
1079 +INSERT INTO Version (VersionId) VALUES (11);
1083 Index: src/bc_types.h
1084 ===================================================================
1085 --- src/bc_types.h (revision 8456)
1086 +++ src/bc_types.h (working copy)
1088 * In principle, the only field that really should need to be
1089 * 64 bits is the FileId_t
1091 -typedef uint32_t FileId_t;
1092 +typedef uint64_t FileId_t;
1093 typedef uint32_t DBId_t; /* general DB id type */
1094 typedef uint32_t JobId_t;