1 from __future__
import print_function
9 from RecoLuminosity.LumiDB
import nameDealer,idDealer,dbUtil
15 returns all revisions before tag in selected branch 16 select revision_id from revisions where revision_id!=0 and revision_id<tagrevisionid and branch_id=:branchid 20 qHandle=schema.newQuery()
24 qHandle.addToOutputList(
'distinct BRANCH_ID',
'branch_id')
25 qCondition=coral.AttributeList()
26 qCondition.extend(
'branchid',
'unsigned long long')
27 qCondition[
'branchid'].setData(branchid)
28 qResult=coral.AttributeList()
29 qResult.extend(
'branch_id',
'unsigned long long')
30 qHandle.defineOutput(qResult)
31 qHandle.setCondition(
'BRANCH_ID>:branchid',qCondition)
32 cursor=qHandle.execute()
34 nextbranches.append(cursor.currentRow()[
'branch_id'].
data())
37 conditionStr=
'REVISION_ID!=0 and BRANCH_ID=:branchid and REVISION_ID<:tagrevisionid' 38 qHandle=schema.newQuery()
40 qHandle.addToOutputList(
'REVISION_ID',
'revision_id')
41 qCondition=coral.AttributeList()
42 qCondition.extend(
'branchid',
'unsigned long long')
43 qCondition.extend(
'tagrevisionid',
'unsigned long long')
44 qCondition[
'branchid'].setData(branchid)
45 qCondition[
'tagrevisionid'].setData(tagrevisionid)
46 qResult=coral.AttributeList()
47 qResult.extend(
'revision_id',
'unsigned long long')
48 qHandle.defineOutput(qResult)
49 qHandle.setCondition(conditionStr,qCondition)
50 cursor=qHandle.execute()
52 candidates.append(cursor.currentRow()[
'revision_id'].
data())
60 if qHandle:del qHandle
64 returns all revision values in a branch 66 select distinct branch_id from revisions where branch_id>:branchid; 67 select revision_id from revisions where branch_id=:branchid ; 68 if the branchid matches and the revisionid is not in the branchid collection,not 0, then this revision is in the branch 69 require also revisionid>branchid 72 qHandle=schema.newQuery()
76 qHandle.addToOutputList(
'distinct BRANCH_ID',
'branch_id')
77 qCondition=coral.AttributeList()
78 qCondition.extend(
'branchid',
'unsigned long long')
79 qCondition[
'branchid'].setData(branchid)
80 qResult=coral.AttributeList()
81 qResult.extend(
'branch_id',
'unsigned long long')
82 qHandle.defineOutput(qResult)
83 qHandle.setCondition(
'BRANCH_ID>:branchid',qCondition)
84 cursor=qHandle.execute()
86 nextbranches.append(cursor.currentRow()[
'branch_id'].
data())
89 conditionStr=
'BRANCH_ID=:branchid and REVISION_ID!=0' 90 qHandle=schema.newQuery()
92 qHandle.addToOutputList(
'REVISION_ID',
'revision_id')
93 qCondition=coral.AttributeList()
94 qCondition.extend(
'branchid',
'unsigned long long')
95 qCondition[
'branchid'].setData(branchid)
96 qResult=coral.AttributeList()
97 qResult.extend(
'revision_id',
'unsigned long long')
98 qHandle.defineOutput(qResult)
99 qHandle.setCondition(conditionStr,qCondition)
100 cursor=qHandle.execute()
102 candidates.append(cursor.currentRow()[
'revision_id'].
data())
105 if c
in nextbranches:
110 if qHandle: del qHandle
116 the difference between tag and branch: tag is an empty branch 117 select count(revision_id) from revisions where branch_name=:name 118 if >0: is real branch 123 qHandle=schema.newQuery()
125 qHandle.addToOutputList(
'count(REVISION_ID)',
'nchildren')
126 qCondition=coral.AttributeList()
127 qCondition.extend(
'branch_name',
'string')
128 qCondition[
'branch_name'].setData(name)
129 qResult=coral.AttributeList()
130 qResult.extend(
'nchildren',
'unsigned int')
131 qHandle.defineOutput(qResult)
132 conditionStr=
'BRANCH_NAME=:branch_name' 133 qHandle.setCondition(conditionStr,qCondition)
134 cursor=qHandle.execute()
136 if cursor.currentRow()[
'nchildren'].
data()>0:
180 returns all revisions in a branch/tag by name 191 whether an entry(by name) already exists in the given branch 192 select e.entry_id from entrytable e,revisiontable r where r.revision_id=e.revision_id and e.name=:entryname and r.branch_name=branchname/branch_id 194 if isinstance(branch,str):byname 201 if isinstance(branch,str):
203 qHandle=schema.newQuery()
206 qHandle.addToOutputList('e.ENTRY_ID',
'entry_id')
207 qCondition=coral.AttributeList()
208 qCondition.extend(
'entryname',
'string')
209 qCondition[
'entryname'].setData(entryname)
210 qConditionStr=
'r.REVISION_ID=e.REVISION_ID and e.NAME=:entryname and ' 212 qCondition.extend(
'branch_name',
'string')
213 qCondition[
'branch_name'].setData(branch)
214 qConditionStr+=
'r.BRANCH_NAME=:branch_name' 216 qCondition.extend(
'branch_id',
'unsigned long long')
217 qCondition[
'branch_id'].setData(branch)
218 qConditionStr+=
'r.BRANCH_ID=:branch_id' 219 qResult=coral.AttributeList()
220 qResult.extend(
'entry_id',
'unsigned long long')
221 qHandle.defineOutput(qResult)
222 qHandle.setCondition(qConditionStr,qCondition)
223 cursor=qHandle.execute()
225 entry_id=cursor.currentRow()[
'entry_id'].
data()
234 all data version of the given entry whose revision falls in branch revision range 235 select d.data_id,r.revision_id from datatable d, datarevmaptable r where d.entry_id(or name )=:entry and d.data_id=r.data_id 236 input: if isinstance(entry,str): d.entry_name=:entry ; else d.entry_id=:entry 239 qHandle=schema.newQuery()
243 if isinstance(entry,str):
245 qHandle.addToTableList( datatableName,
'd' )
247 qHandle.addToOutputList('d.DATA_ID',
'data_id')
248 qHandle.addToOutputList(
'r.REVISION_ID',
'revision_id')
249 qCondition=coral.AttributeList()
250 qConditionStr=
'd.DATA_ID=r.DATA_ID and ' 252 qCondition.extend(
'entry_name',
'string')
253 qCondition[
'entry_name'].setData(entry)
254 qConditionStr+=
'd.ENTRY_NAME=:entry_name' 256 qCondition.extend(
'entry_id',
'unsigned long long')
257 qCondition[
'entry_id'].setData(entry)
258 qConditionStr+=
'd.ENTRY_ID=:entry_id' 259 qResult=coral.AttributeList()
260 qResult.extend(
'data_id',
'unsigned long long')
261 qResult.extend(
'revision_id',
'unsigned long long')
262 qHandle.defineOutput(qResult)
263 qHandle.setCondition(qConditionStr,qCondition)
264 cursor=qHandle.execute()
266 data_id=cursor.currentRow()[
'data_id'].
data()
267 revision_id=cursor.currentRow()[
'revision_id'].
data()
268 if revision_id
in revrange:
269 result.append(data_id)
277 return max(data_id) of all datarevisionofEntry 280 if result
and len(result)!=0:
return max(result)
285 select (revision_id,branch_id) from revisions where name=:branchName 288 qHandle=schema.newQuery()
290 qHandle.addToOutputList(
'REVISION_ID',
'revision_id')
291 qHandle.addToOutputList(
'BRANCH_ID',
'branch_id')
292 qCondition=coral.AttributeList()
293 qCondition.extend(
'name',
'string')
294 qCondition[
'name'].setData(branchName)
295 qResult=coral.AttributeList()
296 qResult.extend(
'revision_id',
'unsigned long long')
297 qResult.extend(
'branch_id',
'unsigned long long')
298 qHandle.defineOutput(qResult)
299 qHandle.setCondition(
'NAME=:name',qCondition)
300 cursor=qHandle.execute()
304 revision_id=cursor.currentRow()[
'revision_id'].
data()
305 branch_id=cursor.currentRow()[
'branch_id'].
data()
307 return (revision_id,branch_id)
308 except Exception
as e :
309 raise RuntimeError(
' revisionDML.branchInfoByName: '+
str(e))
319 allocate new revision_id,entry_id,data_id 325 data_id=iddealer.generateNextIDForTable( datatableName)
327 return (revision_id,entry_id,data_id)
333 allocate new revision_id,data_id 338 data_id=iddealer.generateNextIDForTable(datatableName)
339 return (revision_id,data_id)
343 def addEntry(schema,datatableName,entryinfo,branchinfo):
346 entryinfo (revision_id(0),entry_id(1),entry_name(2),data_id(3)) 347 branchinfo (branch_id,branch_name) 348 1.allocate and insert a new revision into the revisions table 349 2.allocate and insert a new entry into the entry table with the new revision 350 3.inset into data_rev table with new data_id ,revision)id mapping 352 insert into revisions(revision_id,branch_id,branch_name,comment,ctime) values() 353 insert into datatablename_entries (entry_id,revision_id) values() 354 insert into datatablename_rev(data_id,revision_id) values() 363 tabrowDefDict[
'REVISION_ID']=
'unsigned long long' 364 tabrowDefDict[
'BRANCH_ID']=
'unsigned long long' 365 tabrowDefDict[
'BRANCH_NAME']=
'string' 366 tabrowDefDict[
'CTIME']=
'time stamp' 368 tabrowValueDict[
'REVISION_ID']=entryinfo[0]
369 tabrowValueDict[
'BRANCH_ID']=branchinfo[0]
370 tabrowValueDict[
'BRANCH_NAME']=branchinfo[1]
371 tabrowValueDict[
'CTIME']=coral.TimeStamp()
372 db.insertOneRow(revisiontableName,tabrowDefDict,tabrowValueDict)
375 tabrowDefDict[
'REVISION_ID']=
'unsigned long long' 376 tabrowDefDict[
'ENTRY_ID']=
'unsigned long long' 377 tabrowDefDict[
'NAME']=
'string' 380 tabrowValueDict[
'REVISION_ID']=entryinfo[0]
381 tabrowValueDict[
'ENTRY_ID']=entryinfo[1]
382 tabrowValueDict[
'NAME']=entryinfo[2]
383 db.insertOneRow(entrytableName,tabrowDefDict,tabrowValueDict)
386 tabrowDefDict[
'REVISION_ID']=
'unsigned long long' 387 tabrowDefDict[
'DATA_ID']=
'unsigned long long' 389 tabrowValueDict[
'REVISION_ID']=entryinfo[0]
390 tabrowValueDict[
'DATA_ID']=entryinfo[3]
391 db.insertOneRow(revtableName,tabrowDefDict,tabrowValueDict)
397 1.insert a new revision into the revisions table 398 2.insert into data_id, revision_id pair to datatable_revmap 399 insert into revisions(revision_id,branch_id,branch_name,ctime) values() 400 insert into datatable_rev(data_id,revision_id) values()) 402 revisioninfo (revision_id(0),data_id(1)) 403 branchinfo (branch_id(0),branch_name(1)) 411 tabrowDefDict[
'REVISION_ID']=
'unsigned long long' 412 tabrowDefDict[
'BRANCH_ID']=
'unsigned long long' 413 tabrowDefDict[
'BRANCH_NAME']=
'string' 414 tabrowDefDict[
'CTIME']=
'time stamp' 417 tabrowValueDict[
'REVISION_ID']=revisioninfo[0]
418 tabrowValueDict[
'BRANCH_ID']=branchinfo[0]
419 tabrowValueDict[
'BRANCH_NAME']=branchinfo[1]
420 tabrowValueDict[
'CTIME']=coral.TimeStamp()
422 db.insertOneRow(revisiontableName,tabrowDefDict,tabrowValueDict)
425 tabrowDefDict[
'REVISION_ID']=
'unsigned long long' 426 tabrowDefDict[
'DATA_ID']=
'unsigned long long' 428 tabrowValueDict[
'REVISION_ID']=revisioninfo[0]
429 tabrowValueDict[
'DATA_ID']=revisioninfo[1]
430 db.insertOneRow(revtableName,tabrowDefDict,tabrowValueDict)
435 create a new branch/tag under given parentnode 436 insert into revisions(revision_id,branch_id,branch_name,name,comment,ctime) values() 437 return (revisionid,parentid,parentname) 442 if not parentname
is None:
443 qHandle=schema.newQuery()
445 qHandle.addToOutputList(
'REVISION_ID',
'revision_id' )
446 qCondition=coral.AttributeList()
447 qCondition.extend(
'parentname',
'string')
448 qCondition[
'parentname'].setData(parentname)
449 qResult=coral.AttributeList()
450 qResult.extend(
'revision_id',
'unsigned long long')
451 qHandle.defineOutput(qResult)
452 qHandle.setCondition(
'NAME=:parentname',qCondition)
453 cursor=qHandle.execute()
455 parentid=cursor.currentRow()[
'revision_id'].
data()
463 tabrowDefDict[
'REVISION_ID']=
'unsigned long long' 464 tabrowDefDict[
'BRANCH_ID']=
'unsigned long long' 465 tabrowDefDict[
'BRANCH_NAME']=
'string' 466 tabrowDefDict[
'NAME']=
'string' 467 tabrowDefDict[
'COMMENT']=
'string' 468 tabrowDefDict[
'CTIME']=
'time stamp' 470 tabrowValueDict[
'REVISION_ID']=revisionid
471 tabrowValueDict[
'BRANCH_ID']=parentid
472 tabrowValueDict[
'BRANCH_NAME']=parentname
473 tabrowValueDict[
'NAME']=name
474 tabrowValueDict[
'COMMENT']=comment
475 tabrowValueDict[
'CTIME']=coral.TimeStamp()
477 return (revisionid,parentid,parentname)
486 insert into tags(tagname,tagid,creationtime) values() 488 tagname,tagid,creationtime 490 if lumitype
not in [
'HF',
'PIXEL']:
491 raise ValueError(
'unknown lumitype '+lumitype)
498 tagid=iddealer.generateNextIDForTable( tagstablename )
501 tabrowDefDict[
'TAGNAME']=
'string' 502 tabrowDefDict[
'TAGID']=
'unsigned long long' 503 tabrowDefDict[
'CREATIONTIME']=
'time stamp' 505 tabrowValueDict[
'TAGNAME']=tagname
506 tabrowValueDict[
'TAGID']=tagid
507 creationtime=coral.TimeStamp()
508 tabrowValueDict[
'CREATIONTIME']=creationtime
509 db.insertOneRow(tagstablename,tabrowDefDict, tabrowValueDict )
510 return (tagname,tagid,creationtime)
516 select tagid,tagname from tags 517 output:(tagid,tagname) 519 if lumitype
not in [
'HF',
'PIXEL']:
520 raise ValueError(
'unknown lumitype '+lumitype)
527 qHandle=schema.newQuery()
528 qHandle.addToTableList( tagstablename )
529 qHandle.addToOutputList(
'TAGID')
530 qHandle.addToOutputList(
'TAGNAME')
531 qResult=coral.AttributeList()
532 qResult.extend(
'TAGID',
'unsigned long long')
533 qResult.extend(
'TAGNAME',
'string')
534 qHandle.defineOutput(qResult)
535 cursor=qHandle.execute()
538 tagid=cursor.currentRow()[
'TAGID'].
data()
539 tagname=cursor.currentRow()[
'TAGNAME'].
data()
540 tagmap[tagid]=tagname
543 currenttagid=
max(tagmap.keys())
545 raise 'currentDataTag: no tag available' 546 return (currenttagid,tagmap[currenttagid])
552 select tagid from tags 553 insert into tagruns(tagid,runnum,lumidataid,trgdataid,hltdataid,creationtime,comment) values(tagid,runnum,lumiid,trgid,hltid,creationtime,comment) 555 if lumitype
not in [
'HF',
'PIXEL']:
556 raise ValueError(
'unknown lumitype '+lumitype)
565 tabrowDefDict[
'TAGID']=
'unsigned long long' 566 tabrowDefDict[
'RUNNUM']=
'unsigned int' 567 tabrowDefDict[
'LUMIDATAID']=
'unsigned long long' 568 tabrowDefDict[
'TRGDATAID']=
'unsigned long long' 569 tabrowDefDict[
'HLTDATAID']=
'unsigned long long' 570 tabrowDefDict[
'CREATIONTIME']=
'time stamp' 571 tabrowDefDict[
'COMMENT']=
'string' 573 tabrowValueDict[
'TAGID']=currenttagid
574 tabrowValueDict[
'RUNNUM']=runnum
575 tabrowValueDict[
'LUMIDATAID']=lumiid
576 tabrowValueDict[
'TRGDATAID']=trgid
577 tabrowValueDict[
'HLTDATAID']=hltid
578 tabrowValueDict[
'CREATIONTIME']=coral.TimeStamp()
579 tabrowValueDict[
'COMMENT']=comment
580 db.insertOneRow( tagrunstablename,tabrowDefDict, tabrowValueDict )
586 select tagname,tagid from tags,tagruns 587 if number of tags==1->open tag 588 if tagid is max ->open tag 590 max run=max(runnum) where tagid=:tagid 592 select min(runnum) from tagruns where tagid<=:tagid 596 select min(runnum) from tagruns where tagid<=:tagid 598 {tagid:(name,minrun,maxrun,creationtime)} 600 if lumitype
not in [
'HF',
'PIXEL']:
601 raise ValueError(
'unknown lumitype '+lumitype)
610 qHandle=schema.newQuery()
611 qHandle.addToTableList( tagstablename )
612 qCondition=coral.AttributeList()
613 qHandle.addToOutputList(
'TAGNAME')
614 qHandle.addToOutputList(
'TAGID')
615 qHandle.addToOutputList(
"TO_CHAR(CREATIONTIME,\'MM/DD/YY HH24:MI:SS\')",
'creationtime')
616 qResult=coral.AttributeList()
617 qResult.extend(
'TAGNAME',
'string')
618 qResult.extend(
'TAGID',
'unsigned long long')
619 qResult.extend(
'creationtime',
'string')
620 qHandle.defineOutput(qResult)
621 cursor=qHandle.execute()
623 tagname=cursor.currentRow()[
'TAGNAME'].
data()
624 tagid=cursor.currentRow()[
'TAGID'].
data()
625 creationtime=cursor.currentRow()[
'creationtime'].
data()
626 tagmap[tagid]=[tagname,0,0,creationtime]
632 qConditionStr=
'TAGID<=:tagid' 633 qCondition=coral.AttributeList()
634 qCondition.extend(
'tagid',
'unsigned long long')
635 qCondition[
'tagid'].setData(tagid)
636 qHandle=schema.newQuery()
637 qHandle.addToTableList( tagrunstablename )
638 qResult=coral.AttributeList()
639 qResult.extend(
'RUNNUM',
'unsigned int')
640 qHandle.defineOutput(qResult)
641 qHandle.setCondition(qConditionStr,qCondition)
642 qHandle.addToOutputList(
'RUNNUM')
643 cursor=qHandle.execute()
645 rnum=cursor.currentRow()[
'RUNNUM'].
data()
652 tagmap[tagid][1]=minrun
653 if len(tagmap)>1
and tagid!=
max(tagids):
654 tagmap[tagid][2]=maxrun
661 select tagid from tags where tagname=:tagname 663 if lumitype
not in [
'HF',
'PIXEL']:
664 raise ValueError(
'unknown lumitype '+lumitype)
671 qHandle=schema.newQuery()
672 qHandle.addToTableList( tagstablename )
673 qConditionStr=
'TAGNAME=:tagname' 674 qCondition=coral.AttributeList()
675 qCondition.extend(
'tagname',
'string')
676 qCondition[
'tagname'].setData(tagname)
677 qHandle.addToOutputList(
'TAGID')
678 qResult=coral.AttributeList()
679 qResult.extend(
'TAGID',
'unsigned long long')
680 qHandle.defineOutput(qResult)
681 qHandle.setCondition(qConditionStr,qCondition)
682 cursor=qHandle.execute()
684 if not cursor.currentRow()[
'TAGID'].isNull():
685 tagid=cursor.currentRow()[
'TAGID'].
data()
692 select tagid from tags where tagname=:tagname 694 runlist: select run list, if None, all 696 {run:(lumidataid,trgdataid,hltdataid,(creationtime,comment)} 698 if lumitype
not in [
'HF',
'PIXEL']:
699 raise ValueError(
'unknown lumitype '+lumitype)
706 qHandle=schema.newQuery()
707 qHandle.addToTableList( tagstablename )
708 qConditionStr=
'TAGNAME=:tagname' 709 qCondition=coral.AttributeList()
710 qCondition.extend(
'tagname',
'string')
711 qCondition[
'tagname'].setData(tagname)
712 qHandle.addToOutputList(
'TAGID')
713 qResult=coral.AttributeList()
714 qResult.extend(
'TAGID',
'unsigned long long')
715 qHandle.defineOutput(qResult)
716 qHandle.setCondition(qConditionStr,qCondition)
717 cursor=qHandle.execute()
719 if not cursor.currentRow()[
'TAGID'].isNull():
720 tagid=cursor.currentRow()[
'TAGID'].
data()
726 return dataIdsByTagId(schema,tagid,runlist=runlist,withcomment=withcomment,lumitype=lumitype)
731 select tagid from tags where tagname=:tagname 732 select runnum,comment from tagruns where tagid<=:tagid 734 runlist: select run list, if None, all 736 {tagid:(name,minrun,maxrun,creationtime)} 738 if lumitype
not in [
'HF',
'PIXEL']:
739 raise ValueError(
'unknown lumitype '+lumitype)
748 qHandle=schema.newQuery()
749 qHandle.addToTableList( tagstablename )
750 qCondition=coral.AttributeList()
751 qHandle.addToOutputList(
'TAGNAME')
752 qHandle.addToOutputList(
'TAGID')
753 qHandle.addToOutputList(
"TO_CHAR(CREATIONTIME,\'MM/DD/YY HH24:MI:SS\')",
'creationtime')
754 qResult=coral.AttributeList()
755 qResult.extend(
'TAGNAME',
'string')
756 qResult.extend(
'TAGID',
'unsigned long long')
757 qResult.extend(
'creationtime',
'string')
758 qHandle.defineOutput(qResult)
759 cursor=qHandle.execute()
761 tagname=cursor.currentRow()[
'TAGNAME'].
data()
762 tagid=cursor.currentRow()[
'TAGID'].
data()
763 creationtime=cursor.currentRow()[
'creationtime'].
data()
764 tagmap[tagid]=[tagname,0,0,creationtime]
770 qConditionStr=
'TAGID<=:tagid' 771 qCondition=coral.AttributeList()
772 qCondition.extend(
'tagid',
'unsigned long long')
773 qCondition[
'tagid'].setData(tagid)
774 qHandle=schema.newQuery()
775 qHandle.addToTableList(tagrunstablename)
776 qResult=coral.AttributeList()
777 qResult.extend(
'RUNNUM',
'unsigned int')
778 qHandle.defineOutput(qResult)
779 qHandle.setCondition(qConditionStr,qCondition)
780 qHandle.addToOutputList(
'RUNNUM')
781 cursor=qHandle.execute()
783 rnum=cursor.currentRow()[
'RUNNUM'].
data()
784 if runlist
is not None and rnum
not in runlist:
792 tagmap[tagid][1]=minrun
793 if len(tagmap)>1
and tagid!=
max(tagids):
794 tagmap[tagid][2]=maxrun
801 select runnum,lumidataid,trgdataid,hltdataid,comment from tagruns where TAGID<=:tagid; 803 runlist: select run list, if None, all 805 {run:(lumidataid,trgdataid,hltdataid,(creationtime,comment))} 807 if lumitype
not in [
'HF',
'PIXEL']:
808 raise ValueError(
'unknown lumitype '+lumitype)
816 qHandle=schema.newQuery()
817 qHandle.addToTableList(tagrunstablename)
818 qConditionStr=
'TAGID<=:tagid' 819 qCondition=coral.AttributeList()
820 qCondition.extend(
'tagid',
'unsigned long long')
821 qCondition[
'tagid'].setData(tagid)
822 qResult=coral.AttributeList()
823 qResult.extend(
'RUNNUM',
'unsigned int')
824 qResult.extend(
'LUMIDATAID',
'unsigned long long')
825 qResult.extend(
'TRGDATAID',
'unsigned long long')
826 qResult.extend(
'HLTDATAID',
'unsigned long long')
828 qResult.extend(
'COMMENT',
'string')
829 qResult.extend(
'creationtime',
'string')
830 qHandle.defineOutput(qResult)
831 qHandle.setCondition(qConditionStr,qCondition)
832 qHandle.addToOutputList(
'RUNNUM')
833 qHandle.addToOutputList(
'LUMIDATAID')
834 qHandle.addToOutputList(
'TRGDATAID')
835 qHandle.addToOutputList(
'HLTDATAID')
837 qHandle.addToOutputList(
'COMMENT')
838 qHandle.addToOutputList(
"TO_CHAR(CREATIONTIME,\'MM/DD/YY HH24:MI:SS\')",
'creationtime')
839 cursor=qHandle.execute()
841 runnum=cursor.currentRow()[
'RUNNUM'].
data()
842 if runlist
is not None and runnum
not in runlist:
845 if not cursor.currentRow()[
'LUMIDATAID'].isNull():
846 lumidataid=cursor.currentRow()[
'LUMIDATAID'].
data()
848 if not cursor.currentRow()[
'TRGDATAID'].isNull():
849 trgdataid=cursor.currentRow()[
'TRGDATAID'].
data()
851 if not cursor.currentRow()[
'HLTDATAID'].isNull():
852 hltdataid=cursor.currentRow()[
'HLTDATAID'].
data()
853 if runnum
not in result:
854 result[runnum]=[0,0,0]
855 if lumidataid>result[runnum][0]:
856 result[runnum][0]=lumidataid
857 if trgdataid>result[runnum][1]:
858 result[runnum][1]=trgdataid
859 if hltdataid>result[runnum][2]:
860 result[runnum][2]=hltdataid
864 if not cursor.currentRow()[
'creationtime'].isNull():
865 creationtime=cursor.currentRow()[
'creationtime'].
data()
866 if not cursor.currentRow()[
'COMMENT'].isNull():
867 comment=cursor.currentRow()[
'COMMENT'].
data()
868 commentdict[(lumidataid,trgdataid,hltdataid)]=(creationtime,comment)
871 for run,resultentry
in result.items():
872 lumiid=resultentry[0]
875 if (lumiid,trgid,hltid)
in commentdict:
876 resultentry.append(commentdict[(lumiid,trgid,hltid)])
877 elif (lumiid,0,0)
in commentdict:
878 resultentry.append(commentdict[(lumiid,0,0)])
879 elif commentdict.has_ley((0,trgid,0)):
880 resultentry.append(commentdict[(0,trgid,0)])
881 elif commentdict.has_ley((0,0,hltid)):
882 resultentry.append(commentdict[(0,0,hltid)])
884 resultentry.append(())
892 dataIdsByTagId(schema,currenttagid,runlist) 894 (currenttagname,{run:(lumidataid,trgdataid,hltdataid)}) 897 result=
dataIdsByTagId(schema,currenttagid,runlist=runlist,withcomment=
False,lumitype=lumitype)
898 return (currenttagname,result)
900 if __name__ ==
"__main__":
901 import sessionManager
905 myconstr=
'sqlite_file:test.db' 907 session=svc.openSession(isReadOnly=
False,cpp2sqltype=[(
'unsigned int',
'NUMBER(10)'),(
'unsigned long long',
'NUMBER(20)')])
908 schema=session.nominalSchema()
909 session.transaction().
start(
False)
915 norminfo=
createBranch(schema,
'NORM',
'TRUNK',comment=
'hold normalization factor')
918 databranchinfo=(branchid,
'DATA')
919 print(databranchinfo)
920 for runnum
in [1200,1211,1222,1233,1345,1222,1200]:
924 if lumientryid
is None:
926 entryinfo=(revision_id,entry_id,
str(runnum),data_id)
933 if trgentryid
is None:
935 entryinfo=(revision_id,entry_id,
str(runnum),data_id)
942 if hltentryid
is None:
944 entryinfo=(revision_id,entry_id,
str(runnum),data_id)
952 session.transaction().commit()
953 print(
'test reading')
954 session.transaction().
start(
True)
957 print(
'DATA revlist ',revlist)
961 print(
'latest data_id for run 1211 ',latestrevision)
962 session.transaction().commit()
def revisionsInBranchName(schema, branchname)
def addRunToCurrentDataTag(schema, runnum, lumiid, trgid, hltid, lumitype='HF', comment='')
def dataIdsByCurrentTag(schema, runlist=None, lumitype='HF')
def dataIdsByTagName(schema, tagname, runlist=None, withcomment=False, lumitype='HF')
def dataRevisionsOfEntry(schema, datatableName, entry, revrange)
def revisionsInBranch(schema, branchid)
def revisionsInTag(schema, tagrevisionid, branchid)
def currentDataTag(schema, lumitype='HF')
def createDataTag(schema, tagname, lumitype='HF')
Data Tagging API.
def pixeltagRunsTableName()
S & print(S &os, JobReport::InputFile const &f)
def addEntry(schema, datatableName, entryinfo, branchinfo)
def entryTableName(dataTableName)
def entryInBranch(schema, datatableName, entryname, branch)
def bookNewRevision(schema, datatableName)
def alldataTags(schema, lumitype='HF')
def revmapTableName(dataTableName)
def bookNewEntry(schema, datatableName)
def addRevision(schema, datatableName, revisioninfo, branchinfo)
def branchInfoByName(schema, branchName)
char data[epos_bytes_allocation]
def dataTagInfo(schema, tagname, runlist=None, lumitype='HF')
def dataIdsByTagId(schema, tagid, runlist=None, withcomment=False, lumitype='HF')
def createBranch(schema, name, parentname, comment='')
def branchType(schema, name)
def getDataTagId(schema, tagname, lumitype='HF')
def latestDataRevisionOfEntry(schema, datatableName, entry, revrange)