Ejemplo n.º 1
0
def listtables( schema,tablename ):
 try:
  listOfTableNames = schema.listTables()

  #Dictionaries are created for resolving table dependencies 
  dTable=mseqdict( [], {}) 
  dCopyTable=mseqdict( [], {}) 

  for tableName in listOfTableNames:
    if tablename==tableName: 
     #Add tablename to dictionary
     dTable.append(tableName,'')
     description = coral.TableDescription()
     description.setName( tableName )
     table = schema.tableHandle(tableName )

     numberOfForeignKeys = table.description().numberOfForeignKeys()
     for i in range(0, numberOfForeignKeys):
      foreignKey = table.description().foreignKey( i )
      columnNames = foreignKey.columnNames()
      columnNamesR = foreignKey.referencedColumnNames()

  for key,value in dTable.items():
       dCopyTable.append(key,'')

  return dCopyTable

 except Exception, e:
  raise Exception (" " + str(e))
  return False
Ejemplo n.º 2
0
def listtables(schema, tablename):
    try:
        listOfTableNames = schema.listTables()

        #Dictionaries are created for resolving table dependencies
        dTable = mseqdict([], {})
        dCopyTable = mseqdict([], {})

        for tableName in listOfTableNames:
            if tablename == tableName:
                #Add tablename to dictionary
                dTable.append(tableName, '')
                description = coral.TableDescription()
                description.setName(tableName)
                table = schema.tableHandle(tableName)

                numberOfForeignKeys = table.description().numberOfForeignKeys()
                for i in range(0, numberOfForeignKeys):
                    foreignKey = table.description().foreignKey(i)
                    columnNames = foreignKey.columnNames()
                    columnNamesR = foreignKey.referencedColumnNames()

        for key, value in dTable.items():
            dCopyTable.append(key, '')

        return dCopyTable

    except Exception, e:
        raise Exception(" " + str(e))
        return False
Ejemplo n.º 3
0
def listobjects( schema ):
 try:

  listOfTableNames = schema.listTables()

  #Dictionaries are created for resolving table dependencies 
  dTable=mseqdict( [], {}) 
  dRefTable=mseqdict( [], {}) 
  dCopyTable=mseqdict( [], {}) 

  for tableName in listOfTableNames:

    #Add tablename to dictionary
    dTable.append(tableName,'')
    description = coral.TableDescription()
    description.setName( tableName )
    table = schema.tableHandle(tableName )

    numberOfForeignKeys = table.description().numberOfForeignKeys()
    for i in range(0, numberOfForeignKeys):
     foreignKey = table.description().foreignKey( i )
     columnNames = foreignKey.columnNames()
     #Add referenced tablename to dictionary
     dRefTable.append (tableName, foreignKey.referencedTableName()) 
     columnNamesR = foreignKey.referencedColumnNames()

  #For retrieving the tables in order of dependency 
  r1=mseqdict( [], {})
  r2=mseqdict( [], {})

  for rTable, refTable in dRefTable.items():
      for table in refTable:
        r1.append(table,'')
      r1.append(rTable,'')

  for rTable, refTable in r1.items():
    test=rTable
    for rTable1, refTable1 in dRefTable.items():
      if rTable1==test:
        for table in refTable1:
          if rTable1!=table:
             r2.append(table,'')

  for key,value in r2.items():
      r1.remove(key,'')
      dTable.remove(key,'')

  for key,value in r1.items():
      dTable.remove(key,'')

  for key,value in dTable.items():
    dCopyTable.append(key,'')

  for key,value in r2.items():
    dCopyTable.append(key,'')
  
  for key,value in r1.items():
    dCopyTable.append(key,'')

  return dCopyTable

 except Exception, e:
  raise Exception (" " + str(e))
  return False
Ejemplo n.º 4
0
def listtableset( schema,tableset ):
 try:
  listOfTableNames = schema.listTables()

  #Dictionaries are created for resolving table dependencies 
  dTable=mseqdict( [], {}) 
  dCircTable=mseqdict( [], {}) 
  dCopyTable=mseqdict( [], {}) 
  dTempTable=mseqdict( [], {}) 

  for table in listOfTableNames:
   for tableName in tableset:
    if tableName==table: 
     #Add tablename to dictionary
     dTable.append(tableName,'')
     description = coral.TableDescription()
     description.setName( tableName )
     table = schema.tableHandle(tableName )

     numberOfForeignKeys = table.description().numberOfForeignKeys()
     for i in range(0, numberOfForeignKeys):
      foreignKey = table.description().foreignKey( i )
      columnNames = foreignKey.columnNames()
      #Add referenced tablename to dictionary
      dTable.append (tableName, foreignKey.referencedTableName()) 
      dCircTable.append (tableName, foreignKey.referencedTableName()) 
      columnNamesR = foreignKey.referencedColumnNames()

  #For checking  circular dependency between the tables 
  d1=mseqdict( [], {})
  d2=mseqdict( [], {})

  for rTable, refTable in dCircTable.items():
    for table in refTable:
           d1.append(rTable,table)

  dCircTable.swap()
  for rTable, refTable in dCircTable.items():
    for table in refTable:
           d2.append(rTable,table)

  for key,value in d1.items():
     firsttable=key
     secondtable=value
     for key,value in d2.items():
        if key==firsttable and value==secondtable:
           raise Exception ("Circular Dependency exists between tables : "+firsttable,secondtable)

  #For retrieving the tables in order of dependency 
  r1=mseqdict( [], {})
  r2=mseqdict( [], {})

  for rTable, refTable in dTable.items():
      for table in refTable:
        r1.append(table,'')
      r1.append(rTable,'')

  for rTable, refTable in r1.items():
    test=rTable
    for rTable1, refTable1 in dTable.items():
      if rTable1==test:
        for table in refTable1:
          if rTable1!=table:
             r2.append(table,'')

  for key,value in r2.items():
      r1.remove(key,'')

  for key,value in r2.items():
    dTempTable.append(key,'')
  
  for key,value in r1.items():
    dTempTable.append(key,'')

  for key,value in dTempTable.items():
       iTable= key
       for table in tableset:
           if table==iTable:
              dCopyTable.append(key,'')

  return dCopyTable

 except Exception, e:
  raise Exception (" " + str(e))
  return False
Ejemplo n.º 5
0
def listobjects(schema):
    try:

        listOfTableNames = schema.listTables()

        #Dictionaries are created for resolving table dependencies
        dTable = mseqdict([], {})
        dRefTable = mseqdict([], {})
        dCopyTable = mseqdict([], {})

        for tableName in listOfTableNames:

            #Add tablename to dictionary
            dTable.append(tableName, '')
            description = coral.TableDescription()
            description.setName(tableName)
            table = schema.tableHandle(tableName)

            numberOfForeignKeys = table.description().numberOfForeignKeys()
            for i in range(0, numberOfForeignKeys):
                foreignKey = table.description().foreignKey(i)
                columnNames = foreignKey.columnNames()
                #Add referenced tablename to dictionary
                dRefTable.append(tableName, foreignKey.referencedTableName())
                columnNamesR = foreignKey.referencedColumnNames()

        #For retrieving the tables in order of dependency
        r1 = mseqdict([], {})
        r2 = mseqdict([], {})

        for rTable, refTable in dRefTable.items():
            for table in refTable:
                r1.append(table, '')
            r1.append(rTable, '')

        for rTable, refTable in r1.items():
            test = rTable
            for rTable1, refTable1 in dRefTable.items():
                if rTable1 == test:
                    for table in refTable1:
                        if rTable1 != table:
                            r2.append(table, '')

        for key, value in r2.items():
            r1.remove(key, '')
            dTable.remove(key, '')

        for key, value in r1.items():
            dTable.remove(key, '')

        for key, value in dTable.items():
            dCopyTable.append(key, '')

        for key, value in r2.items():
            dCopyTable.append(key, '')

        for key, value in r1.items():
            dCopyTable.append(key, '')

        return dCopyTable

    except Exception, e:
        raise Exception(" " + str(e))
        return False
Ejemplo n.º 6
0
def listtableset(schema, tableset):
    try:
        listOfTableNames = schema.listTables()

        #Dictionaries are created for resolving table dependencies
        dTable = mseqdict([], {})
        dCircTable = mseqdict([], {})
        dCopyTable = mseqdict([], {})
        dTempTable = mseqdict([], {})

        for table in listOfTableNames:
            for tableName in tableset:
                if tableName == table:
                    #Add tablename to dictionary
                    dTable.append(tableName, '')
                    description = coral.TableDescription()
                    description.setName(tableName)
                    table = schema.tableHandle(tableName)

                    numberOfForeignKeys = table.description(
                    ).numberOfForeignKeys()
                    for i in range(0, numberOfForeignKeys):
                        foreignKey = table.description().foreignKey(i)
                        columnNames = foreignKey.columnNames()
                        #Add referenced tablename to dictionary
                        dTable.append(tableName,
                                      foreignKey.referencedTableName())
                        dCircTable.append(tableName,
                                          foreignKey.referencedTableName())
                        columnNamesR = foreignKey.referencedColumnNames()

        #For checking  circular dependency between the tables
        d1 = mseqdict([], {})
        d2 = mseqdict([], {})

        for rTable, refTable in dCircTable.items():
            for table in refTable:
                d1.append(rTable, table)

        dCircTable.swap()
        for rTable, refTable in dCircTable.items():
            for table in refTable:
                d2.append(rTable, table)

        for key, value in d1.items():
            firsttable = key
            secondtable = value
            for key, value in d2.items():
                if key == firsttable and value == secondtable:
                    raise Exception(
                        "Circular Dependency exists between tables : " +
                        firsttable, secondtable)

        #For retrieving the tables in order of dependency
        r1 = mseqdict([], {})
        r2 = mseqdict([], {})

        for rTable, refTable in dTable.items():
            for table in refTable:
                r1.append(table, '')
            r1.append(rTable, '')

        for rTable, refTable in r1.items():
            test = rTable
            for rTable1, refTable1 in dTable.items():
                if rTable1 == test:
                    for table in refTable1:
                        if rTable1 != table:
                            r2.append(table, '')

        for key, value in r2.items():
            r1.remove(key, '')

        for key, value in r2.items():
            dTempTable.append(key, '')

        for key, value in r1.items():
            dTempTable.append(key, '')

        for key, value in dTempTable.items():
            iTable = key
            for table in tableset:
                if table == iTable:
                    dCopyTable.append(key, '')

        return dCopyTable

    except Exception, e:
        raise Exception(" " + str(e))
        return False