def dropTables(schema,tablelist): try: db=dbUtil.dbUtil(schema) for tablename in tablelist: if tablename in [nameDealer.luminormTableName(),nameDealer.lumidataTableName(),nameDealer.trgdataTableName(),nameDealer.hltdataTableName()]: db.dropTable( nameDealer.idTableName(tablename) ) db.dropTable( nameDealer.entryTableName(tablename) ) db.dropTable( nameDealer.revmapTableName(tablename) ) if tablename in [nameDealer.trgTableName(),nameDealer.lumisummaryTableName(),nameDealer.lumisummaryv2TableName(),nameDealer.lumidetailTableName(),nameDealer.hltTableName()]: db.dropTable( nameDealer.idTableName(tablename) ) db.dropTable( tablename ) except : raise
def 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() ''' try: revisiontableName=nameDealer.revisionTableName() entrytableName=nameDealer.entryTableName(datatableName) revtableName=nameDealer.revmapTableName(datatableName) db=dbUtil.dbUtil(schema) tabrowDefDict={} tabrowDefDict['REVISION_ID']='unsigned long long' tabrowDefDict['BRANCH_ID']='unsigned long long' tabrowDefDict['BRANCH_NAME']='string' tabrowDefDict['CTIME']='time stamp' tabrowValueDict={} tabrowValueDict['REVISION_ID']=entryinfo[0] tabrowValueDict['BRANCH_ID']=branchinfo[0] tabrowValueDict['BRANCH_NAME']=branchinfo[1] tabrowValueDict['CTIME']=coral.TimeStamp() db.insertOneRow(revisiontableName,tabrowDefDict,tabrowValueDict) tabrowDefDict={} tabrowDefDict['REVISION_ID']='unsigned long long' tabrowDefDict['ENTRY_ID']='unsigned long long' tabrowDefDict['NAME']='string' tabrowValueDict={} tabrowValueDict['REVISION_ID']=entryinfo[0] tabrowValueDict['ENTRY_ID']=entryinfo[1] tabrowValueDict['NAME']=entryinfo[2] db.insertOneRow(entrytableName,tabrowDefDict,tabrowValueDict) tabrowDefDict={} tabrowDefDict['REVISION_ID']='unsigned long long' tabrowDefDict['DATA_ID']='unsigned long long' tabrowValueDict={} tabrowValueDict['REVISION_ID']=entryinfo[0] tabrowValueDict['DATA_ID']=entryinfo[3] db.insertOneRow(revtableName,tabrowDefDict,tabrowValueDict) except: raise
def 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] ''' qHandle=schema.newQuery() try: result=[] byname=False if isinstance(entry,str): byname=True qHandle.addToTableList( datatableName,'d' ) qHandle.addToTableList( nameDealer.revmapTableName(datatableName), 'r') qHandle.addToOutputList('d.DATA_ID','data_id') qHandle.addToOutputList('r.REVISION_ID','revision_id') qCondition=coral.AttributeList() qConditionStr='d.DATA_ID=r.DATA_ID and ' if byname: qCondition.extend('entry_name','string') qCondition['entry_name'].setData(entry) qConditionStr+='d.ENTRY_NAME=:entry_name' else: qCondition.extend('entry_id','unsigned long long') qCondition['entry_id'].setData(entry) qConditionStr+='d.ENTRY_ID=:entry_id' qResult=coral.AttributeList() qResult.extend('data_id','unsigned long long') qResult.extend('revision_id','unsigned long long') qHandle.defineOutput(qResult) qHandle.setCondition(qConditionStr,qCondition) cursor=qHandle.execute() while next(cursor): data_id=cursor.currentRow()['data_id'].data() revision_id=cursor.currentRow()['revision_id'].data() if revision_id in revrange: result.append(data_id) return result except : del qHandle raise
def createRevMapTable( self, tableName, deleteOld=True ): """ Create Rev table for the given table.\n Input: name of the table Output: name of the id table """ try: revmaptableName=nameDealer.revmapTableName(tableName) if deleteOld is True: self.__schema.dropIfExistsTable(revmaptableName) else: if self.__schema.existsTable(revmaptableName): print 'table '+revmaptableName+' exists, do nothing' return description = coral.TableDescription() description.setName( revmaptableName ) description.insertColumn( 'DATA_ID','unsigned long long') description.insertColumn( 'REVISION_ID' ,'unsigned long long') tableHandle=self.__schema.createTable( description ) tableHandle.privilegeManager().grantToPublic(coral.privilege_Select) except Exception, e: raise RuntimeError(' dbUtil.createRevMapTable '+str(e))
def 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)) ''' try: revisiontableName=nameDealer.revisionTableName() revtableName=nameDealer.revmapTableName(datatableName) db=dbUtil.dbUtil(schema) tabrowDefDict={} tabrowDefDict['REVISION_ID']='unsigned long long' tabrowDefDict['BRANCH_ID']='unsigned long long' tabrowDefDict['BRANCH_NAME']='string' tabrowDefDict['CTIME']='time stamp' tabrowValueDict={} tabrowValueDict['REVISION_ID']=revisioninfo[0] tabrowValueDict['BRANCH_ID']=branchinfo[0] tabrowValueDict['BRANCH_NAME']=branchinfo[1] tabrowValueDict['CTIME']=coral.TimeStamp() db.insertOneRow(revisiontableName,tabrowDefDict,tabrowValueDict) tabrowDefDict={} tabrowDefDict['REVISION_ID']='unsigned long long' tabrowDefDict['DATA_ID']='unsigned long long' tabrowValueDict={} tabrowValueDict['REVISION_ID']=revisioninfo[0] tabrowValueDict['DATA_ID']=revisioninfo[1] db.insertOneRow(revtableName,tabrowDefDict,tabrowValueDict) except: raise
def dropTables(schema, tablelist): try: db = dbUtil.dbUtil(schema) for tablename in tablelist: if tablename in [ nameDealer.luminormTableName(), nameDealer.lumidataTableName(), nameDealer.trgdataTableName(), nameDealer.hltdataTableName() ]: db.dropTable(nameDealer.idTableName(tablename)) db.dropTable(nameDealer.entryTableName(tablename)) db.dropTable(nameDealer.revmapTableName(tablename)) if tablename in [ nameDealer.trgTableName(), nameDealer.lumisummaryTableName(), nameDealer.lumisummaryv2TableName(), nameDealer.lumidetailTableName(), nameDealer.hltTableName() ]: db.dropTable(nameDealer.idTableName(tablename)) db.dropTable(tablename) except: raise