248 } |
281 } |
249 $field_list =~ s/,$//; |
282 $field_list =~ s/,$//; |
250 $qm_list =~ s/,$//; |
283 $qm_list =~ s/,$//; |
251 |
284 |
252 my $query = $db->prepare("insert into builds ($field_list) values ($qm_list)") |
285 my $query = $db->prepare("insert into builds ($field_list) values ($qm_list)") |
253 or die("Couldn't prepare query insert into builds: " . $db->errstr()); |
286 or die("Couldn't prepare query insert into builds: " . $db->errstr()) if (!$dryrun); |
254 |
287 |
255 $query->execute(@fields) |
288 $query->execute(@fields) |
256 or print "WARNING: Couldn't execute insert into builds (@fields): " . $db->errstr() . "\n"; |
289 or print "WARNING: Couldn't execute insert into builds (@fields): " . $db->errstr() . "\n" if (!$dryrun); |
257 |
290 |
258 $newbuildid = $db->last_insert_id(undef, undef, undef, undef); |
291 $newbuildid = $db->last_insert_id(undef, undef, undef, undef) if (!$dryrun); |
259 } |
292 } |
260 if (@{$envinfo}) |
293 if (@{$envinfo}) |
261 { |
294 { |
262 my $query = $db->prepare_cached("insert into envinfo (build_id,tool,version) values ($newbuildid,?,?)") |
295 my $query = $db->prepare_cached("insert into envinfo (build_id,tool,version) values ($newbuildid,?,?)") |
263 or die("Couldn't prepare query insert into envinfo: " . $db->errstr()); |
296 or die("Couldn't prepare query insert into envinfo: " . $db->errstr()) if (!$dryrun); |
264 |
297 |
265 for my $entry (@{$envinfo}) |
298 for my $entry (@{$envinfo}) |
266 { |
299 { |
267 my $tool = $entry->{tool}; |
300 my $tool = $entry->{tool}; |
268 my $version = $entry->{version}; |
301 my $version = $entry->{version}; |
269 |
302 |
270 $query->execute($tool, $version) |
303 $query->execute($tool, $version) |
271 or print "WARNING: Couldn't execute insert into envinfo ($tool,$version): " . $db->errstr() . "\n"; |
304 or print "WARNING: Couldn't execute insert into envinfo ($tool,$version): " . $db->errstr() . "\n" if (!$dryrun); |
272 } |
305 } |
273 } |
306 } |
274 if (@{$failures}) |
307 if (@{$failures}) |
275 { |
308 { |
276 print " prepare_cached 'insert into failures (build_id,category,count) values ($newbuildid,?,?)'\n" if ($verbose); |
309 print " prepare_cached 'insert into failures (build_id,category,count) values ($newbuildid,?,?)'\n" if ($verbose); |
277 my $query = $db->prepare_cached("insert into failures (build_id,category,count) values ($newbuildid,?,?)") |
310 my $query = $db->prepare_cached("insert into failures (build_id,category,count) values ($newbuildid,?,?)") |
278 or die("Couldn't prepare query insert into failures: " . $db->errstr()); |
311 or die("Couldn't prepare query insert into failures: " . $db->errstr()) if (!$dryrun); |
279 |
312 |
280 for my $entry (@{$failures}) |
313 for my $entry (@{$failures}) |
281 { |
314 { |
282 my $category = $entry->{category}; |
315 my $category = $entry->{category}; |
283 my $count = $entry->{count}; |
316 my $count = $entry->{count}; |
284 |
317 |
285 print " execute '$category, $count'\n" if ($verbose); |
318 print " execute '$category, $count'\n" if ($verbose); |
286 $query->execute($category, $count) |
319 $query->execute($category, $count) |
287 or print "WARNING: Couldn't execute insert into failures ($category,$count): " . $db->errstr() . "\n"; |
320 or print "WARNING: Couldn't execute insert into failures ($category,$count): " . $db->errstr() . "\n" if (!$dryrun); |
288 } |
321 } |
289 } |
322 } |
290 if (@{$reports}) |
323 if (@{$reports}) |
291 { |
324 { |
292 print " prepare_cached 'insert into reports (build_id,name,url,type) values ($newbuildid,?,?,?)'\n" if ($verbose); |
325 print " prepare_cached 'insert into reports (build_id,name,url,type) values ($newbuildid,?,?,?)'\n" if ($verbose); |
293 my $query = $db->prepare_cached("insert into reports (build_id,name,url,type) values ($newbuildid,?,?,?)") |
326 my $query = $db->prepare_cached("insert into reports (build_id,name,url,type) values ($newbuildid,?,?,?)") |
294 or die("Couldn't prepare query insert into reports: " . $db->errstr()); |
327 or die("Couldn't prepare query insert into reports: " . $db->errstr()) if (!$dryrun); |
295 |
328 |
296 for my $entry (@{$reports}) |
329 for my $entry (@{$reports}) |
297 { |
330 { |
298 my $name = $entry->{name}; |
331 my $name = $entry->{name}; |
299 my $url = $entry->{url}; |
332 my $url = $entry->{url}; |
300 my $type = $entry->{type}; |
333 my $type = $entry->{type}; |
301 |
334 |
302 print " execute '$name, $url, $type'\n" if ($verbose); |
335 print " execute '$name, $url, $type'\n" if ($verbose); |
303 $query->execute($name, $url, $type) |
336 $query->execute($name, $url, $type) |
304 or print "WARNING: Couldn't execute insert into reports ($name,$url,$type): " . $db->errstr() . "\n"; |
337 or print "WARNING: Couldn't execute insert into reports ($name,$url,$type): " . $db->errstr() . "\n" if (!$dryrun); |
305 } |
338 } |
306 } |
339 } |
307 if (@{$content}) |
340 if (@{$content}) |
308 { |
341 { |
309 print " prepare_cached 'insert into content (build_id,name,url,revision) values ($newbuildid,?,?,?)'\n" if ($verbose); |
342 print " prepare_cached 'insert into content (build_id,name,url,revision) values ($newbuildid,?,?,?)'\n" if ($verbose); |
310 my $query = $db->prepare_cached("insert into content (build_id,name,url,revision) values ($newbuildid,?,?,?)") |
343 my $query = $db->prepare_cached("insert into content (build_id,name,url,revision) values ($newbuildid,?,?,?)") |
311 or die("Couldn't prepare query insert into content: " . $db->errstr()); |
344 or die("Couldn't prepare query insert into content: " . $db->errstr()) if (!$dryrun); |
312 |
345 |
313 for my $entry (@{$content}) |
346 for my $entry (@{$content}) |
314 { |
347 { |
315 my $name = $entry->{name}; |
348 my $name = $entry->{name}; |
316 my $url = $entry->{url}; |
349 my $url = $entry->{url}; |
317 my $revision = $entry->{revision}; |
350 my $revision = $entry->{revision}; |
318 |
351 |
319 print " execute '$name, $url, $revision'\n" if ($verbose); |
352 print " execute '$name, $url, $revision'\n" if ($verbose); |
320 $query->execute($name, $url, $revision) |
353 $query->execute($name, $url, $revision) |
321 or print "WARNING: Couldn't execute insert into content ($name,$url,$revision): " . $db->errstr() . "\n"; |
354 or print "WARNING: Couldn't execute insert into content ($name,$url,$revision): " . $db->errstr() . "\n" if (!$dryrun); |
|
355 } |
|
356 } |
|
357 if (@{$baselines}) |
|
358 { |
|
359 print " prepare_cached 'insert into baselines (build_id,type,path) values ($newbuildid,?,?)'\n" if ($verbose); |
|
360 my $query = $db->prepare_cached("insert into baselines (build_id,type,path) values ($newbuildid,?,?)") |
|
361 or die("Couldn't prepare query insert into baselines: " . $db->errstr()) if (!$dryrun); |
|
362 |
|
363 for my $entry (@{$baselines}) |
|
364 { |
|
365 my $type = $entry->{type}; |
|
366 my $path = $entry->{path}; |
|
367 |
|
368 print " execute '$type, $path'\n" if ($verbose); |
|
369 $query->execute($type, $path) |
|
370 or print "WARNING: Couldn't execute insert into baselines ($type,$path): " . $db->errstr() . "\n" if (!$dryrun); |
322 } |
371 } |
323 } |
372 } |
324 if (@{$labels}) |
373 if (@{$labels}) |
325 { |
374 { |
326 print " prepare_cached 'insert into labels (build_id,label) values ($newbuildid,?)'\n" if ($verbose); |
375 print " prepare_cached 'insert into labels (build_id,label) values ($newbuildid,?)'\n" if ($verbose); |
327 my $query = $db->prepare_cached("insert into labels (build_id,label) values ($newbuildid,?)") |
376 my $query = $db->prepare_cached("insert into labels (build_id,label) values ($newbuildid,?)") |
328 or die("Couldn't prepare query insert into labels: " . $db->errstr()); |
377 or die("Couldn't prepare query insert into labels: " . $db->errstr()) if (!$dryrun); |
329 |
378 |
330 for my $entry (@{$labels}) |
379 for my $entry (@{$labels}) |
331 { |
380 { |
332 my $label = $entry->{label}; |
381 my $label = $entry->{label}; |
333 |
382 |
334 print " execute '$label'\n" if ($verbose); |
383 print " execute '$label'\n" if ($verbose); |
335 $query->execute($label) |
384 $query->execute($label) |
336 or print "WARNING: Couldn't execute insert into revision ($label): " . $db->errstr() . "\n"; |
385 or print "WARNING: Couldn't execute insert into revision ($label): " . $db->errstr() . "\n" if (!$dryrun); |
337 } |
386 } |
338 } |
387 } |
339 print "new build id: $newbuildid\n"; |
388 print "new build id: $newbuildid\n"; |
340 } |
389 } |
341 else |
390 else |
353 } |
402 } |
354 $field_list =~ s/,$//; |
403 $field_list =~ s/,$//; |
355 |
404 |
356 print " prepare 'update builds set $field_list where id=$id'\n" if ($verbose); |
405 print " prepare 'update builds set $field_list where id=$id'\n" if ($verbose); |
357 my $query = $db->prepare("update builds set $field_list where id=$id") |
406 my $query = $db->prepare("update builds set $field_list where id=$id") |
358 or die("Couldn't prepare query update builds: " . $db->errstr()); |
407 or die("Couldn't prepare query update builds: " . $db->errstr()) if (!$dryrun); |
359 |
408 |
360 print " execute '@fields'\n" if ($verbose); |
409 print " execute '@fields'\n" if ($verbose); |
361 $query->execute(@fields) |
410 $query->execute(@fields) |
362 or print "WARNING: Couldn't execute update builds (@fields): " . $db->errstr() . "\n"; |
411 or print "WARNING: Couldn't execute update builds (@fields): " . $db->errstr() . "\n" if (!$dryrun); |
363 } |
412 } |
364 if (@{$envinfo}) |
413 if (@{$envinfo}) |
365 { |
414 { |
366 print " prepare 'delete from envinfo where build_id=$id'\n" if ($verbose); |
415 print " prepare 'delete from envinfo where build_id=$id'\n" if ($verbose); |
367 my $delete_query = $db->prepare("delete from envinfo where build_id=$id") |
416 my $delete_query = $db->prepare("delete from envinfo where build_id=$id") |
368 or die("Couldn't prepare query delete from envinfo: " . $db->errstr()); |
417 or die("Couldn't prepare query delete from envinfo: " . $db->errstr()) if (!$dryrun); |
369 |
418 |
370 print " execute ''\n" if ($verbose); |
419 print " execute ''\n" if ($verbose); |
371 $delete_query->execute() |
420 $delete_query->execute() |
372 or print "WARNING: Couldn't execute delete from envinfo: " . $db->errstr() . "\n"; |
421 or print "WARNING: Couldn't execute delete from envinfo: " . $db->errstr() . "\n" if (!$dryrun); |
373 |
422 |
374 print " prepare 'insert into envinfo (build_id,tool,version) values ($id,?,?)'\n" if ($verbose); |
423 print " prepare 'insert into envinfo (build_id,tool,version) values ($id,?,?)'\n" if ($verbose); |
375 my $query = $db->prepare_cached("insert into envinfo (build_id,tool,version) values ($id,?,?)") |
424 my $query = $db->prepare_cached("insert into envinfo (build_id,tool,version) values ($id,?,?)") |
376 or die("Couldn't prepare query insert into envinfo: " . $db->errstr()); |
425 or die("Couldn't prepare query insert into envinfo: " . $db->errstr()) if (!$dryrun); |
377 |
426 |
378 for my $entry (@{$envinfo}) |
427 for my $entry (@{$envinfo}) |
379 { |
428 { |
380 my $tool = $entry->{tool}; |
429 my $tool = $entry->{tool}; |
381 my $version = $entry->{version}; |
430 my $version = $entry->{version}; |
382 |
431 |
383 print " execute '$tool,$version'\n" if ($verbose); |
432 print " execute '$tool,$version'\n" if ($verbose); |
384 $query->execute($tool, $version) |
433 $query->execute($tool, $version) |
385 or print "WARNING: Couldn't execute insert into envinfo ($tool,$version): " . $db->errstr() . "\n"; |
434 or print "WARNING: Couldn't execute insert into envinfo ($tool,$version): " . $db->errstr() . "\n" if (!$dryrun); |
386 } |
435 } |
387 } |
436 } |
388 if (@{$failures}) |
437 if (@{$failures}) |
389 { |
438 { |
390 print " prepare 'delete from failures where build_id=$id'\n" if ($verbose); |
439 print " prepare 'delete from failures where build_id=$id'\n" if ($verbose); |
391 my $delete_query = $db->prepare("delete from failures where build_id=$id") |
440 my $delete_query = $db->prepare("delete from failures where build_id=$id") |
392 or die("Couldn't prepare query delete from failures: " . $db->errstr()); |
441 or die("Couldn't prepare query delete from failures: " . $db->errstr()) if (!$dryrun); |
393 |
442 |
394 print " execute ''\n" if ($verbose); |
443 print " execute ''\n" if ($verbose); |
395 $delete_query->execute() |
444 $delete_query->execute() |
396 or print "WARNING: Couldn't execute delete from failures: " . $db->errstr() . "\n"; |
445 or print "WARNING: Couldn't execute delete from failures: " . $db->errstr() . "\n" if (!$dryrun); |
397 |
446 |
398 print " prepare 'insert into failures (build_id,category,count) values ($id,?,?)'\n" if ($verbose); |
447 print " prepare 'insert into failures (build_id,category,count) values ($id,?,?)'\n" if ($verbose); |
399 my $query = $db->prepare_cached("insert into failures (build_id,category,count) values ($id,?,?)") |
448 my $query = $db->prepare_cached("insert into failures (build_id,category,count) values ($id,?,?)") |
400 or die("Couldn't prepare query insert into failures: " . $db->errstr()); |
449 or die("Couldn't prepare query insert into failures: " . $db->errstr()) if (!$dryrun); |
401 |
450 |
402 for my $entry (@{$failures}) |
451 for my $entry (@{$failures}) |
403 { |
452 { |
404 my $category = $entry->{category}; |
453 my $category = $entry->{category}; |
405 my $count = $entry->{count}; |
454 my $count = $entry->{count}; |
406 |
455 |
407 print " execute '$category,$count'\n" if ($verbose); |
456 print " execute '$category,$count'\n" if ($verbose); |
408 $query->execute($category, $count) |
457 $query->execute($category, $count) |
409 or print "WARNING: Couldn't execute insert into failures ($category,$count): " . $db->errstr() . "\n"; |
458 or print "WARNING: Couldn't execute insert into failures ($category,$count): " . $db->errstr() . "\n" if (!$dryrun); |
410 } |
459 } |
411 } |
460 } |
412 if (@{$reports}) |
461 if (@{$reports}) |
413 { |
462 { |
414 print " prepare 'delete from reports where build_id=$id'\n" if ($verbose); |
463 print " prepare 'delete from reports where build_id=$id'\n" if ($verbose); |
415 my $delete_query = $db->prepare("delete from reports where build_id=$id") |
464 my $delete_query = $db->prepare("delete from reports where build_id=$id") |
416 or die("Couldn't prepare query delete from reports: " . $db->errstr()); |
465 or die("Couldn't prepare query delete from reports: " . $db->errstr()) if (!$dryrun); |
417 |
466 |
418 print " execute ''\n" if ($verbose); |
467 print " execute ''\n" if ($verbose); |
419 $delete_query->execute() |
468 $delete_query->execute() |
420 or print "WARNING: Couldn't execute delete from reports: " . $db->errstr() . "\n"; |
469 or print "WARNING: Couldn't execute delete from reports: " . $db->errstr() . "\n"; |
421 |
470 |
422 print " prepare 'insert into reports (build_id,name,url,type) values ($id,?,?,?)'\n" if ($verbose); |
471 print " prepare 'insert into reports (build_id,name,url,type) values ($id,?,?,?)'\n" if ($verbose); |
423 my $query = $db->prepare_cached("insert into reports (build_id,name,url,type) values ($id,?,?,?)") |
472 my $query = $db->prepare_cached("insert into reports (build_id,name,url,type) values ($id,?,?,?)") |
424 or die("Couldn't prepare query insert into failures: " . $db->errstr()); |
473 or die("Couldn't prepare query insert into failures: " . $db->errstr()) if (!$dryrun); |
425 |
474 |
426 for my $entry (@{$reports}) |
475 for my $entry (@{$reports}) |
427 { |
476 { |
428 my $name = $entry->{name}; |
477 my $name = $entry->{name}; |
429 my $url = $entry->{url}; |
478 my $url = $entry->{url}; |
430 my $type = $entry->{type}; |
479 my $type = $entry->{type}; |
431 |
480 |
432 print " execute '$name,$url,$type'\n" if ($verbose); |
481 print " execute '$name,$url,$type'\n" if ($verbose); |
433 $query->execute($name, $url, $type) |
482 $query->execute($name, $url, $type) |
434 or print "WARNING: Couldn't execute insert into reports ($name,$url,$type): " . $db->errstr() . "\n"; |
483 or print "WARNING: Couldn't execute insert into reports ($name,$url,$type): " . $db->errstr() . "\n" if (!$dryrun); |
435 } |
484 } |
436 } |
485 } |
437 if (@{$content}) |
486 if (@{$content}) |
438 { |
487 { |
439 print " prepare 'delete from content where build_id=$id'\n" if ($verbose); |
488 print " prepare 'delete from content where build_id=$id'\n" if ($verbose); |
440 my $delete_query = $db->prepare("delete from content where build_id=$id") |
489 my $delete_query = $db->prepare("delete from content where build_id=$id") |
441 or die("Couldn't prepare query delete from content: " . $db->errstr()); |
490 or die("Couldn't prepare query delete from content: " . $db->errstr()) if (!$dryrun); |
442 |
491 |
443 print " execute ''\n" if ($verbose); |
492 print " execute ''\n" if ($verbose); |
444 $delete_query->execute() |
493 $delete_query->execute() |
445 or print "WARNING: Couldn't execute delete from content: " . $db->errstr() . "\n"; |
494 or print "WARNING: Couldn't execute delete from content: " . $db->errstr() . "\n" if (!$dryrun); |
446 |
495 |
447 print " prepare 'insert into content (build_id,name,url,revision) values ($id,?,?,?)'\n" if ($verbose); |
496 print " prepare 'insert into content (build_id,name,url,revision) values ($id,?,?,?)'\n" if ($verbose); |
448 my $query = $db->prepare_cached("insert into content (build_id,name,url,revision) values ($id,?,?,?)") |
497 my $query = $db->prepare_cached("insert into content (build_id,name,url,revision) values ($id,?,?,?)") |
449 or die("Couldn't prepare query insert into content: " . $db->errstr()); |
498 or die("Couldn't prepare query insert into content: " . $db->errstr()) if (!$dryrun); |
450 |
499 |
451 for my $entry (@{$content}) |
500 for my $entry (@{$content}) |
452 { |
501 { |
453 my $name = $entry->{name}; |
502 my $name = $entry->{name}; |
454 my $url = $entry->{url}; |
503 my $url = $entry->{url}; |
455 my $revision = $entry->{revision}; |
504 my $revision = $entry->{revision}; |
456 |
505 |
457 print " execute '$name,$url,$revision'\n" if ($verbose); |
506 print " execute '$name,$url,$revision'\n" if ($verbose); |
458 $query->execute($name, $url, $revision) |
507 $query->execute($name, $url, $revision) |
459 or print "WARNING: Couldn't execute insert into content ($name,$url,$revision): " . $db->errstr() . "\n"; |
508 or print "WARNING: Couldn't execute insert into content ($name,$url,$revision): " . $db->errstr() . "\n" if (!$dryrun); |
|
509 } |
|
510 } |
|
511 if (@{$baselines}) |
|
512 { |
|
513 print " prepare 'delete from baselines where build_id=$id'\n" if ($verbose); |
|
514 my $delete_query = $db->prepare("delete from baselines where build_id=$id") |
|
515 or die("Couldn't prepare query delete from baselines: " . $db->errstr()) if (!$dryrun); |
|
516 |
|
517 print " execute ''\n" if ($verbose); |
|
518 $delete_query->execute() |
|
519 or print "WARNING: Couldn't execute delete from baselines: " . $db->errstr() . "\n" if (!$dryrun); |
|
520 |
|
521 print " prepare 'insert into baselines (build_id,type,path) values ($id,?,?)'\n" if ($verbose); |
|
522 my $query = $db->prepare_cached("insert into baselines (build_id,type,path) values ($id,?,?)") |
|
523 or die("Couldn't prepare query insert into baselines: " . $db->errstr()) if (!$dryrun); |
|
524 |
|
525 for my $entry (@{$baselines}) |
|
526 { |
|
527 my $type = $entry->{type}; |
|
528 my $path = $entry->{path}; |
|
529 |
|
530 print " execute '$type,$path'\n" if ($verbose); |
|
531 $query->execute($type, $path) |
|
532 or print "WARNING: Couldn't execute insert into baselines ($type,$path): " . $db->errstr() . "\n" if (!$dryrun); |
460 } |
533 } |
461 } |
534 } |
462 if (@{$labels}) |
535 if (@{$labels}) |
463 { |
536 { |
464 print " prepare 'delete from labels where build_id=$id'\n" if ($verbose); |
537 print " prepare 'delete from labels where build_id=$id'\n" if ($verbose); |
465 my $delete_query = $db->prepare("delete from labels where build_id=$id") |
538 my $delete_query = $db->prepare("delete from labels where build_id=$id") |
466 or die("Couldn't prepare query delete from labels: " . $db->errstr()); |
539 or die("Couldn't prepare query delete from labels: " . $db->errstr()) if (!$dryrun); |
467 |
540 |
468 print " execute ''\n" if ($verbose); |
541 print " execute ''\n" if ($verbose); |
469 $delete_query->execute() |
542 $delete_query->execute() |
470 or print "WARNING: Couldn't execute delete from labels: " . $db->errstr() . "\n"; |
543 or print "WARNING: Couldn't execute delete from labels: " . $db->errstr() . "\n" if (!$dryrun); |
471 |
544 |
472 print " prepare 'insert into labels (build_id,label) values ($id,?)'\n" if ($verbose); |
545 print " prepare 'insert into labels (build_id,label) values ($id,?)'\n" if ($verbose); |
473 my $query = $db->prepare_cached("insert into label (build_id,label) values ($id,?)") |
546 my $query = $db->prepare_cached("insert into label (build_id,label) values ($id,?)") |
474 or die("Couldn't prepare query insert into label: " . $db->errstr()); |
547 or die("Couldn't prepare query insert into label: " . $db->errstr()) if (!$dryrun); |
475 |
548 |
476 for my $entry (@{$labels}) |
549 for my $entry (@{$labels}) |
477 { |
550 { |
478 my $label = $entry->{label}; |
551 my $label = $entry->{label}; |
479 |
552 |
480 print " execute '$label'\n" if ($verbose); |
553 print " execute '$label'\n" if ($verbose); |
481 $query->execute($label) |
554 $query->execute($label) |
482 or print "WARNING: Couldn't execute insert into labels ($label): " . $db->errstr() . "\n"; |
555 or print "WARNING: Couldn't execute insert into labels ($label): " . $db->errstr() . "\n" if (!$dryrun); |
483 } |
556 } |
484 } |
557 } |
485 } |
558 } |
486 DisconnectFromDB(); |
559 DisconnectFromDB(); |
487 |
560 |