Example #1
0
def bookNewEntry(schema,datatableName):
    '''
    allocate new revision_id,entry_id,data_id
    '''
    try:
        entrytableName=nameDealer.entryTableName(datatableName)
        iddealer=idDealer.idDealer(schema)
        revision_id=iddealer.generateNextIDForTable( nameDealer.revisionTableName() )
        data_id=iddealer.generateNextIDForTable( datatableName)
        entry_id=iddealer.generateNextIDForTable( nameDealer.entryTableName(datatableName) )
        return (revision_id,entry_id,data_id)
    except:
        raise
Example #2
0
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 
Example #3
0
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
Example #4
0
 def createTable( self,description,withIdTable=False,withEntryTables=False,withRevMapTable=False):
     """
     Create table if non-existing, create Id table if required
     """
     try:
         tableHandle=self.__schema.createTable(description)
         tableName=tableHandle.description().name()
         tableHandle.privilegeManager().grantToPublic(coral.privilege_Select)
         if withIdTable is True:
             self.createIDTable(tableName,True)
         if withEntryTables is True:
             entrytableName=nameDealer.entryTableName(tableName)
             self.createEntryTable(tableName,True)
             self.createIDTable(entrytableName,True)
         if withRevMapTable is True:
             self.createRevMapTable(tableName,True)
     except Exception, e:
         raise RuntimeError('dbUtil.createTable'+str(e))
Example #5
0
def 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
    '''
    try:
        result=None
        byname=False
        if isinstance(branch,str):
            byname=True
        qHandle=schema.newQuery()
        qHandle.addToTableList( nameDealer.entryTableName(datatableName),'e' )
        qHandle.addToTableList( nameDealer.revisionTableName(),'r' )
        qHandle.addToOutputList('e.ENTRY_ID','entry_id')
        qCondition=coral.AttributeList()
        qCondition.extend('entryname','string')
        qCondition['entryname'].setData(entryname)
        qConditionStr='r.REVISION_ID=e.REVISION_ID and e.NAME=:entryname and '
        if byname:
            qCondition.extend('branch_name','string')
            qCondition['branch_name'].setData(branch)
            qConditionStr+='r.BRANCH_NAME=:branch_name'
        else:
            qCondition.extend('branch_id','unsigned long long')
            qCondition['branch_id'].setData(branch)
            qConditionStr+='r.BRANCH_ID=:branch_id'
        qResult=coral.AttributeList()
        qResult.extend('entry_id','unsigned long long')
        qHandle.defineOutput(qResult)
        qHandle.setCondition(qConditionStr,qCondition)
        cursor=qHandle.execute()
        while next(cursor):
            entry_id=cursor.currentRow()['entry_id'].data()
            result=entry_id
        del qHandle
        return result
    except :
        raise 
Example #6
0
 def createEntryTable( self, tableName, deleteOld=True ):
     """
     Create Entry table  for the given table.\n
     Input: name of the table which needs new associated id table
     Output: name of the id table created
     """
     try:
       entrytableName=nameDealer.entryTableName(tableName)
       if deleteOld is True:
         self.__schema.dropIfExistsTable(entrytableName)
       else:
         if self.__schema.existsTable(entrytableName):
            print 'table '+entrytableName+' exists, do nothing'
            return
       description = coral.TableDescription()
       description.setName( entrytableName )
       description.insertColumn( 'ENTRY_ID' ,'unsigned long long')
       description.insertColumn( 'REVISION_ID' ,'unsigned long long')
       description.insertColumn( 'NAME' ,'string',56,False)
       tableHandle=self.__schema.createTable( description )
       tableHandle.privilegeManager().grantToPublic(coral.privilege_Select)
     except Exception, e:
       raise RuntimeError(' dbUtil.createEntryTable '+str(e))
Example #7
0
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