1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
#!/bin/bash
#
# Script to create sqlite files with single-IOV tags from files with
# multi-IOV tags.
# The multi-IOV tags are kept in the resulting 'split' db file.
#
################################################################################
if [ x${1} = 'x-h' ] || [ x${1} = 'x--help' ] || [ ${#} -ne 2 ]
then
echo "Usage: ${0} <input db name> <output db name>"
exit 1
elif [ x${CMSSW_BASE} = 'x' ]
then
echo "Please source a CMSSW environment."
exit 1
fi
cp ${1} ${2}
tags=$(sqlite3 ${1} "SELECT NAME FROM TAG;")
count_copied_iovs=0
for tag in ${tags}
do
tag_info_query="SELECT SINCE,PAYLOAD_HASH FROM IOV
WHERE TAG_NAME IS '${tag}';"
tag_infos=$(sqlite3 ${1} "${tag_info_query}" | sort)
if [ $(echo "${tag_infos}" | wc -l) -eq 1 ] # Is already a single-IOV tag?
then
continue
fi
count=0
for tag_info in ${tag_infos}
do
since=$(echo ${tag_info} | cut -d'|' -f1)
payload_hash=$(echo ${tag_info} | cut -d'|' -f2)
new_tag=${tag}_${count}
count=$(( count + 1 ))
exists_query="SELECT EXISTS (
SELECT * FROM IOV
WHERE TAG_NAME IS '${new_tag}'
AND SINCE IS 1
AND PAYLOAD_HASH IS '${payload_hash}');"
if [ $(sqlite3 ${1} "${exists_query}") -ne 0 ]
then
continue
fi
conddb_copy_iov -c sqlite_file:${2} -s ${since} -d 1 -t ${new_tag} -i ${tag}
count_copied_iovs=$(( count_copied_iovs + 1 ))
done
done
if [ ${count_copied_iovs} -eq 0 ]
then
echo " >>> '${1}' is already a 'split' db file or contains only single-IOV tags."
echo " >>> The created db file '${2}' is therefore just a copy of '${1}'."
fi
|