Functions | |
def | addEntry |
def | addRevision |
def | addRunToCurrentDataTag |
def | alldataTags |
def | bookNewEntry |
def | bookNewRevision |
def | branchInfoByName |
def | branchType |
def | createBranch |
def | createDataTag |
Data Tagging API. | |
def | currentDataTag |
def | dataIdsByCurrentTag |
def | dataIdsByTagId |
def | dataIdsByTagName |
def | dataRevisionsOfEntry |
def | dataTagInfo |
def | entryInBranch |
def | latestDataRevisionOfEntry |
def | revisionsInBranch |
def | revisionsInBranchName |
def | revisionsInTag |
Variables | |
tuple | databranchinfo = (branchid,'DATA') |
tuple | datainfo = createBranch(schema,'DATA','TRUNK',comment='hold data') |
tuple | entryinfo = (revision_id,entry_id,str(runnum),data_id) |
tuple | hltentryid = entryInBranch(schema,nameDealer.hltdataTableName(),str(runnum),'DATA') |
tuple | latestrevision = latestDataRevisionOfEntry(schema,nameDealer.lumidataTableName(),lumientry_id,revlist) |
tuple | lumientry_id = entryInBranch(schema,nameDealer.lumidataTableName(),'1211','DATA') |
tuple | lumientryid = entryInBranch(schema,nameDealer.lumidataTableName(),str(runnum),'DATA') |
string | myconstr = 'sqlite_file:test.db' |
tuple | norminfo = createBranch(schema,'NORM','TRUNK',comment='hold normalization factor') |
tuple | revisioninfo = bookNewRevision( schema,nameDealer.lumidataTableName() ) |
tuple | revlist = revisionsInBranchName(schema,'DATA') |
tuple | schema = session.nominalSchema() |
tuple | session = svc.openSession(isReadOnly=False,cpp2sqltype=[('unsigned int','NUMBER(10)'),('unsigned long long','NUMBER(20)')]) |
tuple | svc = sessionManager.sessionManager(myconstr,debugON=False) |
tuple | tables = lumidbDDL.createTables(schema) |
tuple | trgentryid = entryInBranch(schema,nameDealer.trgdataTableName(),str(runnum),'DATA') |
tuple | trunkinfo = createBranch(schema,'TRUNK',None,comment='main') |
def revisionDML::addEntry | ( | schema, | |
datatableName, | |||
entryinfo, | |||
branchinfo | |||
) |
input: entryinfo (revision_id(0),entry_id(1),entry_name(2),data_id(3)) branchinfo (branch_id,branch_name) 1.allocate and insert a new revision into the revisions table 2.allocate and insert a new entry into the entry table with the new revision 3.inset into data_rev table with new data_id ,revision)id mapping insert into revisions(revision_id,branch_id,branch_name,comment,ctime) values() insert into datatablename_entries (entry_id,revision_id) values() insert into datatablename_rev(data_id,revision_id) values()
Definition at line 342 of file revisionDML.py.
Referenced by CalibrationInterface< CategoryT, CalibDataT >::addCategoryDefinition(), TAPD::addEntry(), TMom::addEntry(), EcalMatacqAnalyzer::endJob(), and AlgorithmCalibration< T, CO >::readCategories().
00343 : 00344 ''' 00345 input: 00346 entryinfo (revision_id(0),entry_id(1),entry_name(2),data_id(3)) 00347 branchinfo (branch_id,branch_name) 00348 1.allocate and insert a new revision into the revisions table 00349 2.allocate and insert a new entry into the entry table with the new revision 00350 3.inset into data_rev table with new data_id ,revision)id mapping 00351 00352 insert into revisions(revision_id,branch_id,branch_name,comment,ctime) values() 00353 insert into datatablename_entries (entry_id,revision_id) values() 00354 insert into datatablename_rev(data_id,revision_id) values() 00355 ''' 00356 try: 00357 revisiontableName=nameDealer.revisionTableName() 00358 entrytableName=nameDealer.entryTableName(datatableName) 00359 revtableName=nameDealer.revmapTableName(datatableName) 00360 00361 db=dbUtil.dbUtil(schema) 00362 tabrowDefDict={} 00363 tabrowDefDict['REVISION_ID']='unsigned long long' 00364 tabrowDefDict['BRANCH_ID']='unsigned long long' 00365 tabrowDefDict['BRANCH_NAME']='string' 00366 tabrowDefDict['CTIME']='time stamp' 00367 tabrowValueDict={} 00368 tabrowValueDict['REVISION_ID']=entryinfo[0] 00369 tabrowValueDict['BRANCH_ID']=branchinfo[0] 00370 tabrowValueDict['BRANCH_NAME']=branchinfo[1] 00371 tabrowValueDict['CTIME']=coral.TimeStamp() 00372 db.insertOneRow(revisiontableName,tabrowDefDict,tabrowValueDict) 00373 00374 tabrowDefDict={} 00375 tabrowDefDict['REVISION_ID']='unsigned long long' 00376 tabrowDefDict['ENTRY_ID']='unsigned long long' 00377 tabrowDefDict['NAME']='string' 00378 00379 tabrowValueDict={} 00380 tabrowValueDict['REVISION_ID']=entryinfo[0] 00381 tabrowValueDict['ENTRY_ID']=entryinfo[1] 00382 tabrowValueDict['NAME']=entryinfo[2] 00383 db.insertOneRow(entrytableName,tabrowDefDict,tabrowValueDict) 00384 00385 tabrowDefDict={} 00386 tabrowDefDict['REVISION_ID']='unsigned long long' 00387 tabrowDefDict['DATA_ID']='unsigned long long' 00388 tabrowValueDict={} 00389 tabrowValueDict['REVISION_ID']=entryinfo[0] 00390 tabrowValueDict['DATA_ID']=entryinfo[3] 00391 db.insertOneRow(revtableName,tabrowDefDict,tabrowValueDict) 00392 except: 00393 raise
def revisionDML::addRevision | ( | schema, | |
datatableName, | |||
revisioninfo, | |||
branchinfo | |||
) |
1.insert a new revision into the revisions table 2.insert into data_id, revision_id pair to datatable_revmap insert into revisions(revision_id,branch_id,branch_name,ctime) values() insert into datatable_rev(data_id,revision_id) values()) input: revisioninfo (revision_id(0),data_id(1)) branchinfo (branch_id(0),branch_name(1))
Definition at line 394 of file revisionDML.py.
00395 : 00396 ''' 00397 1.insert a new revision into the revisions table 00398 2.insert into data_id, revision_id pair to datatable_revmap 00399 insert into revisions(revision_id,branch_id,branch_name,ctime) values() 00400 insert into datatable_rev(data_id,revision_id) values()) 00401 input: 00402 revisioninfo (revision_id(0),data_id(1)) 00403 branchinfo (branch_id(0),branch_name(1)) 00404 ''' 00405 try: 00406 revisiontableName=nameDealer.revisionTableName() 00407 revtableName=nameDealer.revmapTableName(datatableName) 00408 00409 db=dbUtil.dbUtil(schema) 00410 tabrowDefDict={} 00411 tabrowDefDict['REVISION_ID']='unsigned long long' 00412 tabrowDefDict['BRANCH_ID']='unsigned long long' 00413 tabrowDefDict['BRANCH_NAME']='string' 00414 tabrowDefDict['CTIME']='time stamp' 00415 00416 tabrowValueDict={} 00417 tabrowValueDict['REVISION_ID']=revisioninfo[0] 00418 tabrowValueDict['BRANCH_ID']=branchinfo[0] 00419 tabrowValueDict['BRANCH_NAME']=branchinfo[1] 00420 tabrowValueDict['CTIME']=coral.TimeStamp() 00421 00422 db.insertOneRow(revisiontableName,tabrowDefDict,tabrowValueDict) 00423 00424 tabrowDefDict={} 00425 tabrowDefDict['REVISION_ID']='unsigned long long' 00426 tabrowDefDict['DATA_ID']='unsigned long long' 00427 tabrowValueDict={} 00428 tabrowValueDict['REVISION_ID']=revisioninfo[0] 00429 tabrowValueDict['DATA_ID']=revisioninfo[1] 00430 db.insertOneRow(revtableName,tabrowDefDict,tabrowValueDict) 00431 except: raise
def revisionDML::addRunToCurrentDataTag | ( | schema, | |
runnum, | |||
lumiid, | |||
trgid, | |||
hltid, | |||
lumitype = 'HF' , |
|||
comment = '' |
|||
) |
select tagid from tags insert into tagruns(tagid,runnum,lumidataid,trgdataid,hltdataid,creationtime,comment) values(tagid,runnum,lumiid,trgid,hltid,creationtime,comment)
Definition at line 549 of file revisionDML.py.
00550 : 00551 ''' 00552 select tagid from tags 00553 insert into tagruns(tagid,runnum,lumidataid,trgdataid,hltdataid,creationtime,comment) values(tagid,runnum,lumiid,trgid,hltid,creationtime,comment) 00554 ''' 00555 if lumitype not in ['HF','PIXEL']: 00556 raise ValueError('unknown lumitype '+lumitype) 00557 if lumitype=='HF': 00558 tagrunstablename=nameDealer.tagrunsTableName() 00559 else: 00560 tagrunstablename=nameDealer.pixeltagRunsTableName() 00561 currenttagid=currentDataTag(schema,lumitype=lumitype)[0] 00562 try: 00563 db=dbUtil.dbUtil(schema) 00564 tabrowDefDict={} 00565 tabrowDefDict['TAGID']='unsigned long long' 00566 tabrowDefDict['RUNNUM']='unsigned int' 00567 tabrowDefDict['LUMIDATAID']='unsigned long long' 00568 tabrowDefDict['TRGDATAID']='unsigned long long' 00569 tabrowDefDict['HLTDATAID']='unsigned long long' 00570 tabrowDefDict['CREATIONTIME']='time stamp' 00571 tabrowDefDict['COMMENT']='string' 00572 tabrowValueDict={} 00573 tabrowValueDict['TAGID']=currenttagid 00574 tabrowValueDict['RUNNUM']=runnum 00575 tabrowValueDict['LUMIDATAID']=lumiid 00576 tabrowValueDict['TRGDATAID']=trgid 00577 tabrowValueDict['HLTDATAID']=hltid 00578 tabrowValueDict['CREATIONTIME']=coral.TimeStamp() 00579 tabrowValueDict['COMMENT']=comment 00580 db.insertOneRow( tagrunstablename,tabrowDefDict, tabrowValueDict ) 00581 except: 00582 raise
def revisionDML::alldataTags | ( | schema, | |
lumitype = 'HF' |
|||
) |
select tagname,tagid from tags,tagruns if number of tags==1->open tag if tagid is max ->open tag for closed tag: max run=max(runnum) where tagid=:tagid min run select min(runnum) from tagruns where tagid<=:tagid for open tag: max run=None min run select min(runnum) from tagruns where tagid<=:tagid output: {tagid:(name,minrun,maxrun,creationtime)}
Definition at line 583 of file revisionDML.py.
00584 : 00585 ''' 00586 select tagname,tagid from tags,tagruns 00587 if number of tags==1->open tag 00588 if tagid is max ->open tag 00589 for closed tag: 00590 max run=max(runnum) where tagid=:tagid 00591 min run 00592 select min(runnum) from tagruns where tagid<=:tagid 00593 for open tag: 00594 max run=None 00595 min run 00596 select min(runnum) from tagruns where tagid<=:tagid 00597 output: 00598 {tagid:(name,minrun,maxrun,creationtime)} 00599 ''' 00600 if lumitype not in ['HF','PIXEL']: 00601 raise ValueError('unknown lumitype '+lumitype) 00602 if lumitype=='HF': 00603 tagstablename=nameDealer.tagsTableName() 00604 tagrunstablename=nameDealer.tagRunsTableName() 00605 else: 00606 tagstablename=nameDealer.pixeltagsTableName() 00607 tagrunstablename=nameDealer.pixeltagRunsTableName() 00608 tagmap={}#{tagid:[tagname,minrun,maxrun,creationtime]} 00609 try: 00610 qHandle=schema.newQuery() 00611 qHandle.addToTableList( tagstablename ) 00612 qCondition=coral.AttributeList() 00613 qHandle.addToOutputList('TAGNAME') 00614 qHandle.addToOutputList('TAGID') 00615 qHandle.addToOutputList("TO_CHAR(CREATIONTIME,\'MM/DD/YY HH24:MI:SS\')",'creationtime') 00616 qResult=coral.AttributeList() 00617 qResult.extend('TAGNAME','string') 00618 qResult.extend('TAGID','unsigned long long') 00619 qResult.extend('creationtime','string') 00620 qHandle.defineOutput(qResult) 00621 cursor=qHandle.execute() 00622 while cursor.next(): 00623 tagname=cursor.currentRow()['TAGNAME'].data() 00624 tagid=cursor.currentRow()['TAGID'].data() 00625 creationtime=cursor.currentRow()['creationtime'].data() 00626 tagmap[tagid]=[tagname,0,0,creationtime] 00627 del qHandle 00628 00629 tagids=tagmap.keys() 00630 allruns=set() 00631 for tagid in tagids: 00632 qConditionStr='TAGID<=:tagid' 00633 qCondition=coral.AttributeList() 00634 qCondition.extend('tagid','unsigned long long') 00635 qCondition['tagid'].setData(tagid) 00636 qHandle=schema.newQuery() 00637 qHandle.addToTableList( tagrunstablename ) 00638 qResult=coral.AttributeList() 00639 qResult.extend('RUNNUM','unsigned int') 00640 qHandle.defineOutput(qResult) 00641 qHandle.setCondition(qConditionStr,qCondition) 00642 qHandle.addToOutputList('RUNNUM') 00643 cursor=qHandle.execute() 00644 while cursor.next(): 00645 rnum=cursor.currentRow()['RUNNUM'].data() 00646 allruns.add(rnum) 00647 minrun=0 00648 maxrun=0 00649 if len(allruns)!=0: 00650 minrun=min(allruns) 00651 maxrun=max(allruns) 00652 tagmap[tagid][1]=minrun 00653 if len(tagmap)>1 and tagid!=max(tagids): 00654 tagmap[tagid][2]=maxrun 00655 except: 00656 raise 00657 return tagmap
def revisionDML::bookNewEntry | ( | schema, | |
datatableName | |||
) |
allocate new revision_id,entry_id,data_id
Definition at line 316 of file revisionDML.py.
00317 : 00318 ''' 00319 allocate new revision_id,entry_id,data_id 00320 ''' 00321 try: 00322 entrytableName=nameDealer.entryTableName(datatableName) 00323 iddealer=idDealer.idDealer(schema) 00324 revision_id=iddealer.generateNextIDForTable( nameDealer.revisionTableName() ) 00325 data_id=iddealer.generateNextIDForTable( datatableName) 00326 entry_id=iddealer.generateNextIDForTable( nameDealer.entryTableName(datatableName) ) 00327 return (revision_id,entry_id,data_id) 00328 except: 00329 raise
def revisionDML::bookNewRevision | ( | schema, | |
datatableName | |||
) |
allocate new revision_id,data_id
Definition at line 330 of file revisionDML.py.
00331 : 00332 ''' 00333 allocate new revision_id,data_id 00334 ''' 00335 try: 00336 iddealer=idDealer.idDealer(schema) 00337 revision_id=iddealer.generateNextIDForTable( nameDealer.revisionTableName() ) 00338 data_id=iddealer.generateNextIDForTable(datatableName) 00339 return (revision_id,data_id) 00340 except: 00341 raise
def revisionDML::branchInfoByName | ( | schema, | |
branchName | |||
) |
select (revision_id,branch_id) from revisions where name=:branchName
Definition at line 282 of file revisionDML.py.
00283 : 00284 ''' 00285 select (revision_id,branch_id) from revisions where name=:branchName 00286 ''' 00287 try: 00288 qHandle=schema.newQuery() 00289 qHandle.addToTableList( nameDealer.revisionTableName() ) 00290 qHandle.addToOutputList('REVISION_ID','revision_id') 00291 qHandle.addToOutputList('BRANCH_ID','branch_id') 00292 qCondition=coral.AttributeList() 00293 qCondition.extend('name','string') 00294 qCondition['name'].setData(branchName) 00295 qResult=coral.AttributeList() 00296 qResult.extend('revision_id','unsigned long long') 00297 qResult.extend('branch_id','unsigned long long') 00298 qHandle.defineOutput(qResult) 00299 qHandle.setCondition('NAME=:name',qCondition) 00300 cursor=qHandle.execute() 00301 revision_id=None 00302 branch_id=None 00303 while cursor.next(): 00304 revision_id=cursor.currentRow()['revision_id'].data() 00305 branch_id=cursor.currentRow()['branch_id'].data() 00306 del qHandle 00307 return (revision_id,branch_id) 00308 except Exception,e : 00309 raise RuntimeError(' revisionDML.branchInfoByName: '+str(e)) 00310 00311 00312 #======================================================= 00313 # 00314 # INSERT requires in update transaction 00315 # #=======================================================
def revisionDML::branchType | ( | schema, | |
name | |||
) |
output: tag,branch the difference between tag and branch: tag is an empty branch select count(revision_id) from revisions where branch_name=:name if >0: is real branch else: is tag
Definition at line 112 of file revisionDML.py.
Referenced by edm::PoolOutputModule::beginJob(), PFTauDiscriminants::DiscriminantBase< int >::branchTree(), edm::RootOutputFile::fillBranches(), edm::PoolOutputModule::fillSelectedItemList(), edm::RootOutputFile::finishEndFile(), edm::PrincipalGetAdapter::getBranchDescription(), edm::ProductRegistry::productProduced(), edm::PoolOutputModule::respondToOpenInputFile(), edm::RootOutputFile::RootOutputFile(), and edm::ProductRegistry::setProductProduced().
00113 : 00114 ''' 00115 output: tag,branch 00116 the difference between tag and branch: tag is an empty branch 00117 select count(revision_id) from revisions where branch_name=:name 00118 if >0: is real branch 00119 else: is tag 00120 ''' 00121 result='tag' 00122 try: 00123 qHandle=schema.newQuery() 00124 qHandle.addToTableList( nameDealer.revisionTableName() ) 00125 qHandle.addToOutputList('count(REVISION_ID)','nchildren') 00126 qCondition=coral.AttributeList() 00127 qCondition.extend('branch_name','string') 00128 qCondition['branch_name'].setData(name) 00129 qResult=coral.AttributeList() 00130 qResult.extend('nchildren','unsigned int') 00131 qHandle.defineOutput(qResult) 00132 conditionStr='BRANCH_NAME=:branch_name' 00133 qHandle.setCondition(conditionStr,qCondition) 00134 cursor=qHandle.execute() 00135 while cursor.next(): 00136 if cursor.currentRow()['nchildren'].data()>0: 00137 result='branch' 00138 del qHandle 00139 return result 00140 except : 00141 raise 00142 #def revisionsInBranch(schema,branchid): 00143 # ''' 00144 # returns all revision values in a branch/tag 00145 # result=[revision_id] 00146 # select r.revision_id from revisions r where r.branch_id=:branchid and r.revision_id not in (select distinct a.branch_id from revisions a where a.branch_id>:branchid) 00147 # ''' 00148 # result=[] 00149 # try: 00150 # qHandle=schema.newQuery() 00151 # subquery=qHandle.defineSubQuery('B') 00152 # subquery.addToTableList( nameDealer.revisionTableName(),'a' ) 00153 # subquery.addToOutputList('distinct a.BRANCH_ID') 00154 # subqueryCondition=coral.AttributeList() 00155 # subqueryCondition.extend('branchid','unsigned long long') 00156 # subqueryCondition['branchid'].setData(branchid) 00157 # subquery.setCondition('a.BRANCH_ID>:branchid',subqueryCondition) 00158 # 00159 # qHandle.addToTableList( nameDealer.revisionTableName(),'r' ) 00160 # qHandle.addToTableList( 'B') 00161 # qHandle.addToOutputList('r.REVISION_ID','revision_id') 00162 # qCondition=coral.AttributeList() 00163 # qCondition.extend('branchid','unsigned long long') 00164 # qCondition['branchid'].setData(branchid) 00165 # qResult=coral.AttributeList() 00166 # qResult.extend('revision_id','unsigned long long') 00167 # qHandle.defineOutput(qResult) 00168 # conditionStr='r.BRANCH_ID=:branchid AND r.REVISION_ID NOT IN B' 00169 # qHandle.setCondition(conditionStr,qCondition) 00170 # cursor=qHandle.execute() 00171 # while cursor.next(): 00172 # result.append(cursor.currentRow()['revision_id'].data()) 00173 # del qHandle 00174 # return result 00175 # except : 00176 # raise
def revisionDML::createBranch | ( | schema, | |
name, | |||
parentname, | |||
comment = '' |
|||
) |
create a new branch/tag under given parentnode insert into revisions(revision_id,branch_id,branch_name,name,comment,ctime) values() return (revisionid,parentid,parentname)
Definition at line 432 of file revisionDML.py.
00433 : 00434 ''' 00435 create a new branch/tag under given parentnode 00436 insert into revisions(revision_id,branch_id,branch_name,name,comment,ctime) values() 00437 return (revisionid,parentid,parentname) 00438 ''' 00439 try: 00440 parentid=None 00441 revisionid=0 00442 if not parentname is None: 00443 qHandle=schema.newQuery() 00444 qHandle.addToTableList( nameDealer.revisionTableName() ) 00445 qHandle.addToOutputList( 'REVISION_ID','revision_id' ) 00446 qCondition=coral.AttributeList() 00447 qCondition.extend('parentname','string') 00448 qCondition['parentname'].setData(parentname) 00449 qResult=coral.AttributeList() 00450 qResult.extend('revision_id','unsigned long long') 00451 qHandle.defineOutput(qResult) 00452 qHandle.setCondition('NAME=:parentname',qCondition) 00453 cursor=qHandle.execute() 00454 while cursor.next(): 00455 parentid=cursor.currentRow()['revision_id'].data() 00456 del qHandle 00457 else: 00458 parentname='ROOT' 00459 iddealer=idDealer.idDealer(schema) 00460 revisionid=iddealer.generateNextIDForTable( nameDealer.revisionTableName() ) 00461 db=dbUtil.dbUtil(schema) 00462 tabrowDefDict={} 00463 tabrowDefDict['REVISION_ID']='unsigned long long' 00464 tabrowDefDict['BRANCH_ID']='unsigned long long' 00465 tabrowDefDict['BRANCH_NAME']='string' 00466 tabrowDefDict['NAME']='string' 00467 tabrowDefDict['COMMENT']='string' 00468 tabrowDefDict['CTIME']='time stamp' 00469 tabrowValueDict={} 00470 tabrowValueDict['REVISION_ID']=revisionid 00471 tabrowValueDict['BRANCH_ID']=parentid 00472 tabrowValueDict['BRANCH_NAME']=parentname 00473 tabrowValueDict['NAME']=name 00474 tabrowValueDict['COMMENT']=comment 00475 tabrowValueDict['CTIME']=coral.TimeStamp() 00476 db.insertOneRow(nameDealer.revisionTableName(),tabrowDefDict, tabrowValueDict ) 00477 return (revisionid,parentid,parentname) 00478 except: 00479 raise
def revisionDML::createDataTag | ( | schema, | |
tagname, | |||
lumitype = 'HF' |
|||
) |
Data Tagging API.
insert into tags(tagname,tagid,creationtime) values() output: tagname,tagid,creationtime
Definition at line 483 of file revisionDML.py.
00484 : 00485 ''' 00486 insert into tags(tagname,tagid,creationtime) values() 00487 output: 00488 tagname,tagid,creationtime 00489 ''' 00490 if lumitype not in ['HF','PIXEL']: 00491 raise ValueError('unknown lumitype '+lumitype) 00492 if lumitype=='HF': 00493 tagstablename=nameDealer.tagsTableName() 00494 else: 00495 tagstablename=nameDealer.pixeltagsTableName() 00496 try: 00497 iddealer=idDealer.idDealer(schema) 00498 tagid=iddealer.generateNextIDForTable( tagstablename ) 00499 db=dbUtil.dbUtil(schema) 00500 tabrowDefDict={} 00501 tabrowDefDict['TAGNAME']='string' 00502 tabrowDefDict['TAGID']='unsigned long long' 00503 tabrowDefDict['CREATIONTIME']='time stamp' 00504 tabrowValueDict={} 00505 tabrowValueDict['TAGNAME']=tagname 00506 tabrowValueDict['TAGID']=tagid 00507 creationtime=coral.TimeStamp() 00508 tabrowValueDict['CREATIONTIME']=creationtime 00509 db.insertOneRow(tagstablename,tabrowDefDict, tabrowValueDict ) 00510 return (tagname,tagid,creationtime) 00511 except: 00512 raise
def revisionDML::currentDataTag | ( | schema, | |
lumitype = 'HF' |
|||
) |
select tagid,tagname from tags output:(tagid,tagname)
Definition at line 513 of file revisionDML.py.
00514 : 00515 ''' 00516 select tagid,tagname from tags 00517 output:(tagid,tagname) 00518 ''' 00519 if lumitype not in ['HF','PIXEL']: 00520 raise ValueError('unknown lumitype '+lumitype) 00521 if lumitype=='HF': 00522 tagstablename=nameDealer.tagsTableName() 00523 else: 00524 tagstablename=nameDealer.pixeltagsTableName() 00525 tagmap={} 00526 try: 00527 qHandle=schema.newQuery() 00528 qHandle.addToTableList( tagstablename ) 00529 qHandle.addToOutputList('TAGID') 00530 qHandle.addToOutputList('TAGNAME') 00531 qResult=coral.AttributeList() 00532 qResult.extend('TAGID','unsigned long long') 00533 qResult.extend('TAGNAME','string') 00534 qHandle.defineOutput(qResult) 00535 cursor=qHandle.execute() 00536 currenttagid=0 00537 while cursor.next(): 00538 tagid=cursor.currentRow()['TAGID'].data() 00539 tagname=cursor.currentRow()['TAGNAME'].data() 00540 tagmap[tagid]=tagname 00541 del qHandle 00542 if len(tagmap)!=0: 00543 currenttagid=max(tagmap.keys()) 00544 if currenttagid==0: 00545 raise 'currentDataTag: no tag available' 00546 return (currenttagid,tagmap[currenttagid]) 00547 except: 00548 raise
def revisionDML::dataIdsByCurrentTag | ( | schema, | |
runlist = None , |
|||
lumitype = 'HF' |
|||
) |
dataIdsByTagId(schema,currenttagid,runlist) output: (currenttagname,{run:(lumidataid,trgdataid,hltdataid)})
Definition at line 858 of file revisionDML.py.
00859 : 00860 ''' 00861 dataIdsByTagId(schema,currenttagid,runlist) 00862 output: 00863 (currenttagname,{run:(lumidataid,trgdataid,hltdataid)}) 00864 ''' 00865 (currenttagid,currenttagname)=currentDataTag(schema) 00866 result=dataIdsByTagId(schema,currenttagid,runlist=runlist,withcomment=False,lumitype=lumitype) 00867 return (currenttagname,result)
def revisionDML::dataIdsByTagId | ( | schema, | |
tagid, | |||
runlist = None , |
|||
withcomment = False , |
|||
lumitype = 'HF' |
|||
) |
select runnum,lumidataid,trgdataid,hltdataid,comment from tagruns where TAGID<=:tagid; input: runlist: select run list, if None, all output: {run:(lumidataid,trgdataid,hltdataid,(creationtime,comment))}
Definition at line 767 of file revisionDML.py.
00768 : 00769 ''' 00770 select runnum,lumidataid,trgdataid,hltdataid,comment from tagruns where TAGID<=:tagid; 00771 input: 00772 runlist: select run list, if None, all 00773 output: 00774 {run:(lumidataid,trgdataid,hltdataid,(creationtime,comment))} 00775 ''' 00776 if lumitype not in ['HF','PIXEL']: 00777 raise ValueError('unknown lumitype '+lumitype) 00778 if lumitype=='HF': 00779 tagrunstablename=nameDealer.tagRunsTableName() 00780 else: 00781 tagrunstablename=nameDealer.pixeltagRunsTableName() 00782 result={}#{run:[lumiid,trgid,hltid,comment(optional)]} 00783 commentdict={}#{(lumiid,trgid,hltid):[ctimestr,comment]} 00784 try: 00785 qHandle=schema.newQuery() 00786 qHandle.addToTableList(tagrunstablename) 00787 qConditionStr='TAGID<=:tagid' 00788 qCondition=coral.AttributeList() 00789 qCondition.extend('tagid','unsigned long long') 00790 qCondition['tagid'].setData(tagid) 00791 qResult=coral.AttributeList() 00792 qResult.extend('RUNNUM','unsigned int') 00793 qResult.extend('LUMIDATAID','unsigned long long') 00794 qResult.extend('TRGDATAID','unsigned long long') 00795 qResult.extend('HLTDATAID','unsigned long long') 00796 if withcomment: 00797 qResult.extend('COMMENT','string') 00798 qResult.extend('creationtime','string') 00799 qHandle.defineOutput(qResult) 00800 qHandle.setCondition(qConditionStr,qCondition) 00801 qHandle.addToOutputList('RUNNUM') 00802 qHandle.addToOutputList('LUMIDATAID') 00803 qHandle.addToOutputList('TRGDATAID') 00804 qHandle.addToOutputList('HLTDATAID') 00805 if withcomment: 00806 qHandle.addToOutputList('COMMENT') 00807 qHandle.addToOutputList("TO_CHAR(CREATIONTIME,\'MM/DD/YY HH24:MI:SS\')",'creationtime') 00808 cursor=qHandle.execute() 00809 while cursor.next(): 00810 runnum=cursor.currentRow()['RUNNUM'].data() 00811 if runlist is not None and runnum not in runlist: 00812 continue 00813 lumidataid=0 00814 if not cursor.currentRow()['LUMIDATAID'].isNull(): 00815 lumidataid=cursor.currentRow()['LUMIDATAID'].data() 00816 trgdataid=0 00817 if not cursor.currentRow()['TRGDATAID'].isNull(): 00818 trgdataid=cursor.currentRow()['TRGDATAID'].data() 00819 hltdataid=0 00820 if not cursor.currentRow()['HLTDATAID'].isNull(): 00821 hltdataid=cursor.currentRow()['HLTDATAID'].data() 00822 if not result.has_key(runnum): 00823 result[runnum]=[0,0,0] 00824 if lumidataid>result[runnum][0]: 00825 result[runnum][0]=lumidataid 00826 if trgdataid>result[runnum][1]: 00827 result[runnum][1]=trgdataid 00828 if hltdataid>result[runnum][2]: 00829 result[runnum][2]=hltdataid 00830 if withcomment: 00831 comment='' 00832 creationtime='' 00833 if not cursor.currentRow()['creationtime'].isNull(): 00834 creationtime=cursor.currentRow()['creationtime'].data() 00835 if not cursor.currentRow()['COMMENT'].isNull(): 00836 comment=cursor.currentRow()['COMMENT'].data() 00837 commentdict[(lumidataid,trgdataid,hltdataid)]=(creationtime,comment) 00838 del qHandle 00839 if withcomment: 00840 for run,resultentry in result.items(): 00841 lumiid=resultentry[0] 00842 trgid=resultentry[1] 00843 hltid=resultentry[2] 00844 if commentdict.has_key((lumiid,trgid,hltid)): 00845 resultentry.append(commentdict[(lumiid,trgid,hltid)]) 00846 elif commentdict.has_key((lumiid,0,0)): 00847 resultentry.append(commentdict[(lumiid,0,0)]) 00848 elif commentdict.has_ley((0,trgid,0)): 00849 resultentry.append(commentdict[(0,trgid,0)]) 00850 elif commentdict.has_ley((0,0,hltid)): 00851 resultentry.append(commentdict[(0,0,hltid)]) 00852 else: 00853 resultentry.append(()) 00854 00855 except: 00856 raise 00857 return result
def revisionDML::dataIdsByTagName | ( | schema, | |
tagname, | |||
runlist = None , |
|||
withcomment = False , |
|||
lumitype = 'HF' |
|||
) |
select tagid from tags where tagname=:tagname input: runlist: select run list, if None, all output: {run:(lumidataid,trgdataid,hltdataid,(creationtime,comment)}
Definition at line 658 of file revisionDML.py.
00659 : 00660 ''' 00661 select tagid from tags where tagname=:tagname 00662 input: 00663 runlist: select run list, if None, all 00664 output: 00665 {run:(lumidataid,trgdataid,hltdataid,(creationtime,comment)} 00666 ''' 00667 if lumitype not in ['HF','PIXEL']: 00668 raise ValueError('unknown lumitype '+lumitype) 00669 if lumitype=='HF': 00670 tagstablename=nameDealer.tagsTableName() 00671 else: 00672 tagstablename=nameDealer.pixeltagsTableName() 00673 tagid=None 00674 try: 00675 qHandle=schema.newQuery() 00676 qHandle.addToTableList( tagstablename ) 00677 qConditionStr='TAGNAME=:tagname' 00678 qCondition=coral.AttributeList() 00679 qCondition.extend('tagname','string') 00680 qCondition['tagname'].setData(tagname) 00681 qHandle.addToOutputList('TAGID') 00682 qResult=coral.AttributeList() 00683 qResult.extend('TAGID','unsigned long long') 00684 qHandle.defineOutput(qResult) 00685 qHandle.setCondition(qConditionStr,qCondition) 00686 cursor=qHandle.execute() 00687 while cursor.next(): 00688 if not cursor.currentRow()['TAGID'].isNull(): 00689 tagid=cursor.currentRow()['TAGID'].data() 00690 del qHandle 00691 except: 00692 raise 00693 if tagid is None: 00694 return {} 00695 return dataIdsByTagId(schema,tagid,runlist=runlist,withcomment=withcomment,lumitype=lumitype) 00696
def revisionDML::dataRevisionsOfEntry | ( | schema, | |
datatableName, | |||
entry, | |||
revrange | |||
) |
all data version of the given entry whose revision falls in branch revision range 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 input: if isinstance(entry,str): d.entry_name=:entry ; else d.entry_id=:entry output: [data_id]
Definition at line 231 of file revisionDML.py.
00232 : 00233 ''' 00234 all data version of the given entry whose revision falls in branch revision range 00235 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 00236 input: if isinstance(entry,str): d.entry_name=:entry ; else d.entry_id=:entry 00237 output: [data_id] 00238 ''' 00239 qHandle=schema.newQuery() 00240 try: 00241 result=[] 00242 byname=False 00243 if isinstance(entry,str): 00244 byname=True 00245 qHandle.addToTableList( datatableName,'d' ) 00246 qHandle.addToTableList( nameDealer.revmapTableName(datatableName), 'r') 00247 qHandle.addToOutputList('d.DATA_ID','data_id') 00248 qHandle.addToOutputList('r.REVISION_ID','revision_id') 00249 qCondition=coral.AttributeList() 00250 qConditionStr='d.DATA_ID=r.DATA_ID and ' 00251 if byname: 00252 qCondition.extend('entry_name','string') 00253 qCondition['entry_name'].setData(entry) 00254 qConditionStr+='d.ENTRY_NAME=:entry_name' 00255 else: 00256 qCondition.extend('entry_id','unsigned long long') 00257 qCondition['entry_id'].setData(entry) 00258 qConditionStr+='d.ENTRY_ID=:entry_id' 00259 qResult=coral.AttributeList() 00260 qResult.extend('data_id','unsigned long long') 00261 qResult.extend('revision_id','unsigned long long') 00262 qHandle.defineOutput(qResult) 00263 qHandle.setCondition(qConditionStr,qCondition) 00264 cursor=qHandle.execute() 00265 while cursor.next(): 00266 data_id=cursor.currentRow()['data_id'].data() 00267 revision_id=cursor.currentRow()['revision_id'].data() 00268 if revision_id in revrange: 00269 result.append(data_id) 00270 return result 00271 except : 00272 del qHandle 00273 raise
def revisionDML::dataTagInfo | ( | schema, | |
tagname, | |||
runlist = None , |
|||
lumitype = 'HF' |
|||
) |
select tagid from tags where tagname=:tagname select runnum,comment from tagruns where tagid<=:tagid input: runlist: select run list, if None, all output: {tagid:(name,minrun,maxrun,creationtime)}
Definition at line 697 of file revisionDML.py.
00698 : 00699 ''' 00700 select tagid from tags where tagname=:tagname 00701 select runnum,comment from tagruns where tagid<=:tagid 00702 input: 00703 runlist: select run list, if None, all 00704 output: 00705 {tagid:(name,minrun,maxrun,creationtime)} 00706 ''' 00707 if lumitype not in ['HF','PIXEL']: 00708 raise ValueError('unknown lumitype '+lumitype) 00709 if lumitype=='HF': 00710 tagstablename=nameDealer.tagsTableName() 00711 tagrunstablename=nameDealer.tagRunsTableName() 00712 else: 00713 tagstablename=nameDealer.pixeltagsTableName() 00714 tagrunstablename=nameDealer.pixeltagRunsTableName() 00715 tagmap={}#{tagid:[tagname,minrun,maxrun,creationtime]} 00716 try: 00717 qHandle=schema.newQuery() 00718 qHandle.addToTableList( tagstablename ) 00719 qCondition=coral.AttributeList() 00720 qHandle.addToOutputList('TAGNAME') 00721 qHandle.addToOutputList('TAGID') 00722 qHandle.addToOutputList("TO_CHAR(CREATIONTIME,\'MM/DD/YY HH24:MI:SS\')",'creationtime') 00723 qResult=coral.AttributeList() 00724 qResult.extend('TAGNAME','string') 00725 qResult.extend('TAGID','unsigned long long') 00726 qResult.extend('creationtime','string') 00727 qHandle.defineOutput(qResult) 00728 cursor=qHandle.execute() 00729 while cursor.next(): 00730 tagname=cursor.currentRow()['TAGNAME'].data() 00731 tagid=cursor.currentRow()['TAGID'].data() 00732 creationtime=cursor.currentRow()['creationtime'].data() 00733 tagmap[tagid]=[tagname,0,0,creationtime] 00734 del qHandle 00735 00736 tagids=tagmap.keys() 00737 allruns=set() 00738 for tagid in tagids: 00739 qConditionStr='TAGID<=:tagid' 00740 qCondition=coral.AttributeList() 00741 qCondition.extend('tagid','unsigned long long') 00742 qCondition['tagid'].setData(tagid) 00743 qHandle=schema.newQuery() 00744 qHandle.addToTableList(tagrunstablename) 00745 qResult=coral.AttributeList() 00746 qResult.extend('RUNNUM','unsigned int') 00747 qHandle.defineOutput(qResult) 00748 qHandle.setCondition(qConditionStr,qCondition) 00749 qHandle.addToOutputList('RUNNUM') 00750 cursor=qHandle.execute() 00751 while cursor.next(): 00752 rnum=cursor.currentRow()['RUNNUM'].data() 00753 if runlist is not None and rnum not in runlist: 00754 continue 00755 allruns.add(rnum) 00756 minrun=0 00757 maxrun=0 00758 if len(allruns)!=0: 00759 minrun=min(allruns) 00760 maxrun=max(allruns) 00761 tagmap[tagid][1]=minrun 00762 if len(tagmap)>1 and tagid!=max(tagids): 00763 tagmap[tagid][2]=maxrun 00764 except: 00765 raise 00766 return tagmap
def revisionDML::entryInBranch | ( | schema, | |
datatableName, | |||
entryname, | |||
branch | |||
) |
whether an entry(by name) already exists in the given branch 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 input: if isinstance(branch,str):byname else: byid output:entry_id/None
Definition at line 188 of file revisionDML.py.
00189 : 00190 ''' 00191 whether an entry(by name) already exists in the given branch 00192 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 00193 input: 00194 if isinstance(branch,str):byname 00195 else: byid 00196 output:entry_id/None 00197 ''' 00198 try: 00199 result=None 00200 byname=False 00201 if isinstance(branch,str): 00202 byname=True 00203 qHandle=schema.newQuery() 00204 qHandle.addToTableList( nameDealer.entryTableName(datatableName),'e' ) 00205 qHandle.addToTableList( nameDealer.revisionTableName(),'r' ) 00206 qHandle.addToOutputList('e.ENTRY_ID','entry_id') 00207 qCondition=coral.AttributeList() 00208 qCondition.extend('entryname','string') 00209 qCondition['entryname'].setData(entryname) 00210 qConditionStr='r.REVISION_ID=e.REVISION_ID and e.NAME=:entryname and ' 00211 if byname: 00212 qCondition.extend('branch_name','string') 00213 qCondition['branch_name'].setData(branch) 00214 qConditionStr+='r.BRANCH_NAME=:branch_name' 00215 else: 00216 qCondition.extend('branch_id','unsigned long long') 00217 qCondition['branch_id'].setData(branch) 00218 qConditionStr+='r.BRANCH_ID=:branch_id' 00219 qResult=coral.AttributeList() 00220 qResult.extend('entry_id','unsigned long long') 00221 qHandle.defineOutput(qResult) 00222 qHandle.setCondition(qConditionStr,qCondition) 00223 cursor=qHandle.execute() 00224 while cursor.next(): 00225 entry_id=cursor.currentRow()['entry_id'].data() 00226 result=entry_id 00227 del qHandle 00228 return result 00229 except : 00230 raise
def revisionDML::latestDataRevisionOfEntry | ( | schema, | |
datatableName, | |||
entry, | |||
revrange | |||
) |
return max(data_id) of all datarevisionofEntry
Definition at line 274 of file revisionDML.py.
def revisionDML::revisionsInBranch | ( | schema, | |
branchid | |||
) |
returns all revision values in a branch result=[revision_id] select distinct branch_id from revisions where branch_id>:branchid; select revision_id from revisions where branch_id=:branchid ; if the branchid matches and the revisionid is not in the branchid collection,not 0, then this revision is in the branch require also revisionid>branchid
Definition at line 61 of file revisionDML.py.
00062 : 00063 ''' 00064 returns all revision values in a branch 00065 result=[revision_id] 00066 select distinct branch_id from revisions where branch_id>:branchid; 00067 select revision_id from revisions where branch_id=:branchid ; 00068 if the branchid matches and the revisionid is not in the branchid collection,not 0, then this revision is in the branch 00069 require also revisionid>branchid 00070 ''' 00071 result=[] 00072 qHandle=schema.newQuery() 00073 try: 00074 nextbranches=[] 00075 qHandle.addToTableList( nameDealer.revisionTableName() ) 00076 qHandle.addToOutputList('distinct BRANCH_ID','branch_id') 00077 qCondition=coral.AttributeList() 00078 qCondition.extend('branchid','unsigned long long') 00079 qCondition['branchid'].setData(branchid) 00080 qResult=coral.AttributeList() 00081 qResult.extend('branch_id','unsigned long long') 00082 qHandle.defineOutput(qResult) 00083 qHandle.setCondition('BRANCH_ID>:branchid',qCondition) 00084 cursor=qHandle.execute() 00085 while cursor.next(): 00086 nextbranches.append(cursor.currentRow()['branch_id'].data()) 00087 del qHandle 00088 candidates=[] 00089 conditionStr='BRANCH_ID=:branchid and REVISION_ID!=0' 00090 qHandle=schema.newQuery() 00091 qHandle.addToTableList( nameDealer.revisionTableName() ) 00092 qHandle.addToOutputList('REVISION_ID','revision_id') 00093 qCondition=coral.AttributeList() 00094 qCondition.extend('branchid','unsigned long long') 00095 qCondition['branchid'].setData(branchid) 00096 qResult=coral.AttributeList() 00097 qResult.extend('revision_id','unsigned long long') 00098 qHandle.defineOutput(qResult) 00099 qHandle.setCondition(conditionStr,qCondition) 00100 cursor=qHandle.execute() 00101 while cursor.next(): 00102 candidates.append(cursor.currentRow()['revision_id'].data()) 00103 del qHandle 00104 for c in candidates: 00105 if c in nextbranches: 00106 continue 00107 result.append(c) 00108 return result 00109 except: 00110 if qHandle: del qHandle 00111 raise
def revisionDML::revisionsInBranchName | ( | schema, | |
branchname | |||
) |
returns all revisions in a branch/tag by name
Definition at line 177 of file revisionDML.py.
def revisionDML::revisionsInTag | ( | schema, | |
tagrevisionid, | |||
branchid | |||
) |
returns all revisions before tag in selected branch select revision_id from revisions where revision_id!=0 and revision_id<tagrevisionid and branch_id=:branchid result=[revision_id]
Definition at line 12 of file revisionDML.py.
00013 : 00014 ''' 00015 returns all revisions before tag in selected branch 00016 select revision_id from revisions where revision_id!=0 and revision_id<tagrevisionid and branch_id=:branchid 00017 result=[revision_id] 00018 ''' 00019 result=[] 00020 qHandle=schema.newQuery() 00021 try: 00022 nextbranches=[] 00023 qHandle.addToTableList( nameDealer.revisionTableName() ) 00024 qHandle.addToOutputList('distinct BRANCH_ID','branch_id') 00025 qCondition=coral.AttributeList() 00026 qCondition.extend('branchid','unsigned long long') 00027 qCondition['branchid'].setData(branchid) 00028 qResult=coral.AttributeList() 00029 qResult.extend('branch_id','unsigned long long') 00030 qHandle.defineOutput(qResult) 00031 qHandle.setCondition('BRANCH_ID>:branchid',qCondition) 00032 cursor=qHandle.execute() 00033 while cursor.next(): 00034 nextbranches.append(cursor.currentRow()['branch_id'].data()) 00035 del qHandle 00036 candidates=[] 00037 conditionStr='REVISION_ID!=0 and BRANCH_ID=:branchid and REVISION_ID<:tagrevisionid' 00038 qHandle=schema.newQuery() 00039 qHandle.addToTableList( nameDealer.revisionTableName() ) 00040 qHandle.addToOutputList('REVISION_ID','revision_id') 00041 qCondition=coral.AttributeList() 00042 qCondition.extend('branchid','unsigned long long') 00043 qCondition.extend('tagrevisionid','unsigned long long') 00044 qCondition['branchid'].setData(branchid) 00045 qCondition['tagrevisionid'].setData(tagrevisionid) 00046 qResult=coral.AttributeList() 00047 qResult.extend('revision_id','unsigned long long') 00048 qHandle.defineOutput(qResult) 00049 qHandle.setCondition(conditionStr,qCondition) 00050 cursor=qHandle.execute() 00051 while cursor.next(): 00052 candidates.append(cursor.currentRow()['revision_id'].data()) 00053 del qHandle 00054 for c in candidates: 00055 if c in nextbranches: 00056 continue 00057 result.append(c) 00058 return result 00059 except: 00060 if qHandle:del qHandle raise
tuple revisionDML::databranchinfo = (branchid,'DATA') |
Definition at line 886 of file revisionDML.py.
tuple revisionDML::datainfo = createBranch(schema,'DATA','TRUNK',comment='hold data') |
Definition at line 881 of file revisionDML.py.
tuple revisionDML::entryinfo = (revision_id,entry_id,str(runnum),data_id) |
Definition at line 894 of file revisionDML.py.
tuple revisionDML::hltentryid = entryInBranch(schema,nameDealer.hltdataTableName(),str(runnum),'DATA') |
Definition at line 891 of file revisionDML.py.
tuple revisionDML::latestrevision = latestDataRevisionOfEntry(schema,nameDealer.lumidataTableName(),lumientry_id,revlist) |
Definition at line 928 of file revisionDML.py.
tuple revisionDML::lumientry_id = entryInBranch(schema,nameDealer.lumidataTableName(),'1211','DATA') |
Definition at line 926 of file revisionDML.py.
tuple revisionDML::lumientryid = entryInBranch(schema,nameDealer.lumidataTableName(),str(runnum),'DATA') |
Definition at line 889 of file revisionDML.py.
string revisionDML::myconstr = 'sqlite_file:test.db' |
Definition at line 873 of file revisionDML.py.
tuple revisionDML::norminfo = createBranch(schema,'NORM','TRUNK',comment='hold normalization factor') |
Definition at line 883 of file revisionDML.py.
tuple revisionDML::revisioninfo = bookNewRevision( schema,nameDealer.lumidataTableName() ) |
Definition at line 898 of file revisionDML.py.
tuple revisionDML::revlist = revisionsInBranchName(schema,'DATA') |
Definition at line 924 of file revisionDML.py.
tuple revisionDML::schema = session.nominalSchema() |
Definition at line 876 of file revisionDML.py.
tuple revisionDML::session = svc.openSession(isReadOnly=False,cpp2sqltype=[('unsigned int','NUMBER(10)'),('unsigned long long','NUMBER(20)')]) |
Definition at line 875 of file revisionDML.py.
tuple revisionDML::svc = sessionManager.sessionManager(myconstr,debugON=False) |
Definition at line 874 of file revisionDML.py.
tuple revisionDML::tables = lumidbDDL.createTables(schema) |
Definition at line 878 of file revisionDML.py.
tuple revisionDML::trgentryid = entryInBranch(schema,nameDealer.trgdataTableName(),str(runnum),'DATA') |
Definition at line 890 of file revisionDML.py.
tuple revisionDML::trunkinfo = createBranch(schema,'TRUNK',None,comment='main') |
Definition at line 879 of file revisionDML.py.