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