Changeset 23885
- Timestamp:
- Apr 16, 2009, 12:39:27 PM (17 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 8 edited
- 1 moved
-
dbconfig/changes.txt (modified) (1 diff)
-
dbconfig/receive.md (modified) (1 diff)
-
ippTools/share/Makefile.am (modified) (1 diff)
-
ippTools/share/pxadmin_create_tables.sql (modified) (1 diff)
-
ippTools/share/receivetool_pendingfile.sql (added)
-
ippTools/share/receivetool_pendingfileset.sql (moved) (moved from trunk/ippTools/share/receivetool_pendingrun.sql ) (1 diff)
-
ippTools/share/receivetool_revert.sql (modified) (1 diff)
-
ippTools/src/receivetool.c (modified) (12 diffs)
-
ippTools/src/receivetool.h (modified) (1 diff)
-
ippTools/src/receivetoolConfig.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/dbconfig/changes.txt
r23881 r23885 1048 1048 ) ENGINE=innodb DEFAULT CHARSET=latin1; 1049 1049 1050 -- Run for receiving files1051 CREATE TABLE receive Run(1052 receive_id BIGINT AUTO_INCREMENT, -- unique identifier1050 -- Filesets to receive 1051 CREATE TABLE receiveFileset ( 1052 fileset_id BIGINT AUTO_INCREMENT, -- unique identifier 1053 1053 source_id BIGINT NOT NULL, -- link to receiveSource 1054 1054 fileset VARCHAR(128) NOT NULL, -- fileset to receive 1055 PRIMARY KEY( receive_id),1055 PRIMARY KEY(fileset_id), 1056 1056 KEY(source_id), 1057 1057 FOREIGN KEY(source_id) REFERENCES receiveSource(source_id) 1058 1058 ) ENGINE=innodb DEFAULT CHARSET=latin1; 1059 1059 1060 -- Files to receive 1061 CREATE TABLE receiveFile ( 1062 file_id BIGINT AUTO_INCREMENT, -- unique identifier 1063 fileset_id BIGINT NOT NULL, -- link to receiveFileset 1064 file VARCHAR(128) NOT NULL, -- file to receive 1065 PRIMARY KEY(file_id), 1066 KEY(fileset_id), 1067 FOREIGN KEY(fileset_id) REFERENCES receiveFileset(fileset_id) 1068 ) ENGINE=innodb DEFAULT CHARSET=latin1; 1069 1060 1070 -- Result of receiving files 1061 1071 CREATE TABLE receiveResult ( 1062 receive_id BIGINT AUTO_INCREMENT, -- unique identifier, link to receiveRun1072 file_id BIGINT AUTO_INCREMENT, -- link to receiveFile 1063 1073 dtime_copy FLOAT, -- Time to copy 1064 1074 dtime_extract FLOAT, -- Time to extract 1065 1075 fault SMALLINT NOT NULL DEFAULT 0, -- Fault code 1066 PRIMARY KEY( receive_id),1076 PRIMARY KEY(file_id), 1067 1077 KEY(fault), 1068 FOREIGN KEY( receive_id) REFERENCES receiveRun(receive_id)1078 FOREIGN KEY(file_id) REFERENCES receiveFile(file_id) 1069 1079 ) ENGINE=innodb DEFAULT CHARSET=latin1; -
trunk/dbconfig/receive.md
r23880 r23885 10 10 END 11 11 12 receive RunMETADATA13 receive_id S64 0 # Primary Key AUTO_INCREMENT12 receiveFileset METADATA 13 fileset_id S64 0 # Primary Key AUTO_INCREMENT 14 14 source_id S64 0 # Key fkey (source_id) ref receiveSource(source_id) 15 15 fileset STR 128 16 16 END 17 17 18 receiveFile METADATA 19 file_id S64 0 # Primary Key AUTO_INCREMENT 20 fileset_id S64 0 # Key fkey (fileset_id) ref receiveFileset(fileset_id) 21 file STR 128 22 END 23 18 24 receiveResult METADATA 19 receive_id S64 0 # Primary Key fkey (receive_id) ref receiveRun(receive_id)25 file_id S64 0 # Primary Key fkey (file_id) ref receiveFile(file_id) 20 26 dtime_copy F32 0.0 21 27 dtime_extract F32 0.0 22 28 fault S32 0 # Key 23 29 END 24 -
trunk/ippTools/share/Makefile.am
r23879 r23885 171 171 pztool_revertcopied.sql \ 172 172 receivetool_list.sql \ 173 receivetool_pendingrun.sql \ 173 receivetool_pendingfileset.sql \ 174 receivetool_pendingfile.sql \ 174 175 receivetool_revert.sql \ 175 176 regtool_create_dup_table.sql \ -
trunk/ippTools/share/pxadmin_create_tables.sql
r23880 r23885 1317 1317 ) ENGINE=innodb DEFAULT CHARSET=latin1; 1318 1318 1319 -- Run for receiving files1320 CREATE TABLE receive Run(1321 receive_id BIGINT AUTO_INCREMENT, -- unique identifier1319 -- Filesets to receive 1320 CREATE TABLE receiveFileset ( 1321 fileset_id BIGINT AUTO_INCREMENT, -- unique identifier 1322 1322 source_id BIGINT NOT NULL, -- link to receiveSource 1323 1323 fileset VARCHAR(128) NOT NULL, -- fileset to receive 1324 PRIMARY KEY( receive_id),1324 PRIMARY KEY(fileset_id), 1325 1325 KEY(source_id), 1326 1326 FOREIGN KEY(source_id) REFERENCES receiveSource(source_id) 1327 1327 ) ENGINE=innodb DEFAULT CHARSET=latin1; 1328 1328 1329 -- Files to receive 1330 CREATE TABLE receiveFile ( 1331 file_id BIGINT AUTO_INCREMENT, -- unique identifier 1332 fileset_id BIGINT NOT NULL, -- link to receiveFileset 1333 file VARCHAR(128) NOT NULL, -- file to receive 1334 PRIMARY KEY(file_id), 1335 KEY(fileset_id), 1336 FOREIGN KEY(fileset_id) REFERENCES receiveFileset(fileset_id) 1337 ) ENGINE=innodb DEFAULT CHARSET=latin1; 1338 1329 1339 -- Result of receiving files 1330 1340 CREATE TABLE receiveResult ( 1331 receive_id BIGINT AUTO_INCREMENT, -- unique identifier, link to receiveRun1341 file_id BIGINT AUTO_INCREMENT, -- link to receiveFile 1332 1342 dtime_copy FLOAT, -- Time to copy 1333 1343 dtime_extract FLOAT, -- Time to extract 1334 1344 fault SMALLINT NOT NULL DEFAULT 0, -- Fault code 1335 PRIMARY KEY( receive_id),1336 KEY(fault), 1337 FOREIGN KEY( receive_id) REFERENCES receiveRun(receive_id)1345 PRIMARY KEY(file_id), 1346 KEY(fault), 1347 FOREIGN KEY(file_id) REFERENCES receiveFile(file_id) 1338 1348 ) ENGINE=innodb DEFAULT CHARSET=latin1; 1339 1349 -
trunk/ippTools/share/receivetool_pendingfileset.sql
r23884 r23885 1 1 SELECT * 2 FROM receive Run2 FROM receiveFileset 3 3 JOIN receiveSource USING(source_id) 4 LEFT JOIN receive Result USING(receive_id)5 WHERE receive Result.receive_id IS NULL4 LEFT JOIN receiveFile USING(fileset_id) 5 WHERE receiveFile.fileset_id IS NULL -
trunk/ippTools/share/receivetool_revert.sql
r23880 r23885 1 1 DELETE FROM receiveResult 2 USING receiveResult, receiveRun, receiveSource 3 WHERE receiveResult.receive_id = receiveRun.receive_id 4 AND receiveRun.source_id = receiveSource.source_id 2 USING receiveResult, receiveFile, receiveFileset, receiveSource 3 WHERE receiveResult.file_id = receiveFile.file_id 4 AND receiveFile.fileset_id = receiveFileset.fileset_id 5 AND receiveFileset.source_id = receiveSource.source_id 5 6 AND fault != 0 -
trunk/ippTools/src/receivetool.c
r23880 r23885 33 33 static bool definesourceMode(pxConfig *config); 34 34 static bool listMode(pxConfig *config); 35 static bool definerunMode(pxConfig *config);35 static bool addfilesetMode(pxConfig *config); 36 36 static bool updatelastMode(pxConfig *config); 37 static bool pendingrunMode(pxConfig *config); 37 static bool pendingfilesetMode(pxConfig *config); 38 static bool addfileMode(pxConfig *config); 39 static bool pendingfileMode(pxConfig *config); 38 40 static bool addresultMode(pxConfig *config); 39 41 static bool revertMode(pxConfig *config); … … 60 62 MODECASE(RECEIVETOOL_MODE_DEFINESOURCE, definesourceMode); 61 63 MODECASE(RECEIVETOOL_MODE_LIST, listMode); 62 MODECASE(RECEIVETOOL_MODE_ DEFINERUN, definerunMode);64 MODECASE(RECEIVETOOL_MODE_ADDFILESET, addfilesetMode); 63 65 MODECASE(RECEIVETOOL_MODE_UPDATELAST, updatelastMode); 64 MODECASE(RECEIVETOOL_MODE_PENDINGRUN, pendingrunMode); 66 MODECASE(RECEIVETOOL_MODE_PENDINGFILESET, pendingfilesetMode); 67 MODECASE(RECEIVETOOL_MODE_ADDFILE, addfileMode); 68 MODECASE(RECEIVETOOL_MODE_PENDINGFILE, pendingfileMode); 65 69 MODECASE(RECEIVETOOL_MODE_ADDRESULT, addresultMode); 66 70 MODECASE(RECEIVETOOL_MODE_REVERT, revertMode); … … 100 104 101 105 if (!receiveSourceInsert(config->dbh, 0, source, product, workdir, comment, last)) { 102 psError(PS_ERR_UNKNOWN, false, " database error");106 psError(PS_ERR_UNKNOWN, false, "Database error"); 103 107 return false; 104 108 } … … 159 163 } 160 164 161 static bool definerunMode(pxConfig *config)165 static bool addfilesetMode(pxConfig *config) 162 166 { 163 167 PS_ASSERT_PTR_NON_NULL(config, false); … … 167 171 PXOPT_LOOKUP_STR(fileset, config->args, "-fileset", true, false); 168 172 169 if (!receive RunInsert(config->dbh, 0, source_id, fileset)) {170 psError(PS_ERR_UNKNOWN, false, " database error");173 if (!receiveFilesetInsert(config->dbh, 0, source_id, fileset)) { 174 psError(PS_ERR_UNKNOWN, false, "Database error"); 171 175 return false; 172 176 } … … 198 202 199 203 200 static bool pending runMode(pxConfig *config)204 static bool pendingfilesetMode(pxConfig *config) 201 205 { 202 206 PS_ASSERT_PTR_NON_NULL(config, false); … … 207 211 PXOPT_COPY_STR(config->args, where, "-source", "receiveSource.source", "=="); 208 212 PXOPT_COPY_STR(config->args, where, "-product", "receiveSource.product", "=="); 209 PXOPT_COPY_S 64(config->args, where, "-comment", "receiveSource.comment", "LIKE");210 211 psString query = pxDataGet("receivetool_pending run.sql");213 PXOPT_COPY_STR(config->args, where, "-comment", "receiveSource.comment", "LIKE"); 214 215 psString query = pxDataGet("receivetool_pendingfileset.sql"); 212 216 if (!query) { 213 217 psError(PXTOOLS_ERR_DATA, false, "Failed to retreive SQL statement"); … … 240 244 return true; 241 245 } 242 if (!ippdbPrintMetadatas(stdout, output, "receive Run", true)) {246 if (!ippdbPrintMetadatas(stdout, output, "receiveFileset", true)) { 243 247 psError(PS_ERR_UNKNOWN, false, "Failed to print array"); 244 248 psFree(output); … … 250 254 } 251 255 256 static bool addfileMode(pxConfig *config) 257 { 258 PS_ASSERT_PTR_NON_NULL(config, false); 259 260 // required 261 PXOPT_LOOKUP_S64(fileset_id, config->args, "-fileset_id", true, false); 262 PXOPT_LOOKUP_STR(file, config->args, "-file", true, false); 263 264 if (!receiveFileInsert(config->dbh, 0, fileset_id, file)) { 265 psError(PS_ERR_UNKNOWN, false, "Database error"); 266 return false; 267 } 268 269 return true; 270 } 271 272 static bool pendingfileMode(pxConfig *config) 273 { 274 PS_ASSERT_PTR_NON_NULL(config, false); 275 276 psMetadata *where = psMetadataAlloc(); // WHERE conditions 277 278 // required 279 PXOPT_COPY_STR(config->args, where, "-source", "receiveSource.source", "=="); 280 PXOPT_COPY_STR(config->args, where, "-product", "receiveSource.product", "=="); 281 PXOPT_COPY_STR(config->args, where, "-comment", "receiveSource.comment", "LIKE"); 282 PXOPT_COPY_S64(config->args, where, "-fileset_id", "receiveFile.file_id", "=="); 283 284 psString query = pxDataGet("receivetool_pendingfile.sql"); 285 if (!query) { 286 psError(PXTOOLS_ERR_DATA, false, "Failed to retreive SQL statement"); 287 psFree(where); 288 return false; 289 } 290 291 if (psListLength(where->list)) { 292 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 293 psStringAppend(&query, " AND %s", whereClause); 294 psFree(whereClause); 295 } 296 psFree(where); 297 298 if (!p_psDBRunQueryF(config->dbh, query)) { 299 psError(PS_ERR_UNKNOWN, false, "Database error"); 300 psFree(query); 301 return false; 302 } 303 psFree(query); 304 305 psArray *output = p_psDBFetchResult(config->dbh); 306 if (!output) { 307 psError(PS_ERR_UNKNOWN, false, "Database error"); 308 return false; 309 } 310 if (!psArrayLength(output)) { 311 psTrace("receivetool", PS_LOG_INFO, "No rows found"); 312 psFree(output); 313 return true; 314 } 315 if (!ippdbPrintMetadatas(stdout, output, "receiveFile", true)) { 316 psError(PS_ERR_UNKNOWN, false, "Failed to print array"); 317 psFree(output); 318 return false; 319 } 320 psFree(output); 321 322 return true; 323 } 324 252 325 static bool addresultMode(pxConfig *config) 253 326 { … … 255 328 256 329 // required 257 PXOPT_LOOKUP_S64( receive_id, config->args, "-source_id", true, false);330 PXOPT_LOOKUP_S64(fileset_id, config->args, "-source_id", true, false); 258 331 259 332 // optional … … 262 335 PXOPT_LOOKUP_S32(fault, config->args, "-fault", false, false); 263 336 264 if (!receiveResultInsert(config->dbh, receive_id, dtime_copy, dtime_extract, fault)) {337 if (!receiveResultInsert(config->dbh, fileset_id, dtime_copy, dtime_extract, fault)) { 265 338 psError(PS_ERR_UNKNOWN, false, "Database error"); 266 339 return false; … … 276 349 psMetadata *where = psMetadataAlloc(); // WHERE conditions 277 350 278 PXOPT_COPY_S64(config->args, where, "- receive_id", "receiveResult.receive_id", "==");351 PXOPT_COPY_S64(config->args, where, "-fileset_id", "receiveResult.fileset_id", "=="); 279 352 PXOPT_COPY_S32(config->args, where, "-fault", "receiveResult.fault", "=="); 280 353 PXOPT_COPY_STR(config->args, where, "-source", "receiveSource.source", "=="); -
trunk/ippTools/src/receivetool.h
r23880 r23885 27 27 RECEIVETOOL_MODE_DEFINESOURCE, 28 28 RECEIVETOOL_MODE_LIST, 29 RECEIVETOOL_MODE_ DEFINERUN,29 RECEIVETOOL_MODE_ADDFILESET, 30 30 RECEIVETOOL_MODE_UPDATELAST, 31 RECEIVETOOL_MODE_PENDINGRUN, 31 RECEIVETOOL_MODE_PENDINGFILESET, 32 RECEIVETOOL_MODE_ADDFILE, 33 RECEIVETOOL_MODE_PENDINGFILE, 32 34 RECEIVETOOL_MODE_ADDRESULT, 33 35 RECEIVETOOL_MODE_REVERT, -
trunk/ippTools/src/receivetoolConfig.c
r23880 r23885 57 57 psMetadataAddStr(listArgs, PS_LIST_TAIL, "-comment", 0, "search on comment (LIKE)", NULL); 58 58 59 // - definerun60 psMetadata * definerunArgs = psMetadataAlloc();61 psMetadataAddS64( definerunArgs, PS_LIST_TAIL, "-source_id", 0, "define source_id (required)", 0);62 psMetadataAddStr( definerunArgs, PS_LIST_TAIL, "-fileset", 0, "define fileset (required)", NULL);59 // -addfileset 60 psMetadata *addfilesetArgs = psMetadataAlloc(); 61 psMetadataAddS64(addfilesetArgs, PS_LIST_TAIL, "-source_id", 0, "define source_id (required)", 0); 62 psMetadataAddStr(addfilesetArgs, PS_LIST_TAIL, "-fileset", 0, "define fileset (required)", NULL); 63 63 64 64 // -updatelast … … 67 67 psMetadataAddStr(updatelastArgs, PS_LIST_TAIL, "-fileset", 0, "define last fileset (required)", NULL); 68 68 69 // -pendingrun 70 psMetadata *pendingrunArgs = psMetadataAlloc(); 71 psMetadataAddStr(pendingrunArgs, PS_LIST_TAIL, "-source", 0, "search on source", NULL); 72 psMetadataAddStr(pendingrunArgs, PS_LIST_TAIL, "-product", 0, "search on product", NULL); 73 psMetadataAddStr(pendingrunArgs, PS_LIST_TAIL, "-comment", 0, "search on comment (LIKE)", NULL); 69 // -pendingfileset 70 psMetadata *pendingfilesetArgs = psMetadataAlloc(); 71 psMetadataAddStr(pendingfilesetArgs, PS_LIST_TAIL, "-source", 0, "search on source", NULL); 72 psMetadataAddStr(pendingfilesetArgs, PS_LIST_TAIL, "-product", 0, "search on product", NULL); 73 psMetadataAddStr(pendingfilesetArgs, PS_LIST_TAIL, "-comment", 0, "search on comment (LIKE)", NULL); 74 75 // -addfile 76 psMetadata *addfileArgs = psMetadataAlloc(); 77 psMetadataAddS64(addfileArgs, PS_LIST_TAIL, "-fileset_id", 0, "define fileset_id (required)", 0); 78 psMetadataAddStr(addfileArgs, PS_LIST_TAIL, "-file", PS_META_DUPLICATE_OK, "define file (multiple OK, required)", NULL); 79 80 // -pendingfile 81 psMetadata *pendingfileArgs = psMetadataAlloc(); 82 psMetadataAddStr(pendingfileArgs, PS_LIST_TAIL, "-source", 0, "search on source", NULL); 83 psMetadataAddStr(pendingfileArgs, PS_LIST_TAIL, "-product", 0, "search on product", NULL); 84 psMetadataAddStr(pendingfileArgs, PS_LIST_TAIL, "-comment", 0, "search on comment (LIKE)", NULL); 85 psMetadataAddS64(pendingfileArgs, PS_LIST_TAIL, "-fileset_id", 0, "search on fileset_id", 0); 74 86 75 87 // -addresult 76 88 psMetadata *addresultArgs = psMetadataAlloc(); 77 psMetadataAddS64(addresultArgs, PS_LIST_TAIL, "- receive_id", 0, "define receive_id (required)", 0);89 psMetadataAddS64(addresultArgs, PS_LIST_TAIL, "-file_id", 0, "define receive_id (required)", 0); 78 90 psMetadataAddF32(addresultArgs, PS_LIST_TAIL, "-dtime_copy", 0, "define time to copy", NAN); 79 91 psMetadataAddF32(addresultArgs, PS_LIST_TAIL, "-dtime_extract", 0, "define time to extract", NAN); … … 82 94 // -revert 83 95 psMetadata *revertArgs = psMetadataAlloc(); 84 psMetadataAddS64(revertArgs, PS_LIST_TAIL, "-receive_id", 0, "search on receive_id", 0); 96 psMetadataAddS64(revertArgs, PS_LIST_TAIL, "-file_id", 0, "search on file_id", 0); 97 psMetadataAddS64(revertArgs, PS_LIST_TAIL, "-fileset_id", 0, "search on fileset_id", 0); 85 98 psMetadataAddS32(revertArgs, PS_LIST_TAIL, "-fault", 0, "search on fault code", 0); 86 99 psMetadataAddStr(revertArgs, PS_LIST_TAIL, "-source", 0, "search on source", NULL); … … 93 106 PXOPT_ADD_MODE("-definesource", "", RECEIVETOOL_MODE_DEFINESOURCE, definesourceArgs); 94 107 PXOPT_ADD_MODE("-list", "", RECEIVETOOL_MODE_LIST, listArgs); 95 PXOPT_ADD_MODE("- definerun", "", RECEIVETOOL_MODE_DEFINERUN, definerunArgs);108 PXOPT_ADD_MODE("-addfileset", "", RECEIVETOOL_MODE_ADDFILESET, addfilesetArgs); 96 109 PXOPT_ADD_MODE("-updatelast", "", RECEIVETOOL_MODE_UPDATELAST, updatelastArgs); 97 PXOPT_ADD_MODE("-pendingrun", "", RECEIVETOOL_MODE_PENDINGRUN, pendingrunArgs); 110 PXOPT_ADD_MODE("-pendingfileset", "", RECEIVETOOL_MODE_PENDINGFILESET, pendingfilesetArgs); 111 PXOPT_ADD_MODE("-addfile", "", RECEIVETOOL_MODE_ADDFILE, addfileArgs); 112 PXOPT_ADD_MODE("-pendingfile", "", RECEIVETOOL_MODE_PENDINGFILE, pendingfileArgs); 98 113 PXOPT_ADD_MODE("-addresult", "", RECEIVETOOL_MODE_ADDRESULT, addresultArgs); 99 114 PXOPT_ADD_MODE("-revert", "", RECEIVETOOL_MODE_REVERT, revertArgs);
Note:
See TracChangeset
for help on using the changeset viewer.
