def __init__(self, row): SegmentGuc.__init__(self, row) if len(row) < 3: raise Exception("must provide ['context', 'guc name', 'value']") self.value = row[2]
def __init__(self, guc1, guc2): """ accept 2 gucs in any order. gucs can be any combination of: * database guc * file guc - primary - mirror * existing comparison guc, with or without mirror """ self.primary_file_seg_guc = None self.mirror_file_seg_guc = None self.db_seg_guc = None if not guc1 or not guc2: raise Exception("comparison requires two gucs") SegmentGuc.__init__(self, [guc1.context, guc1.name]) if guc1.context != guc2.context: raise Exception("Not the same context") if isinstance(guc1, MultiValueGuc): # copy constructor self.db_seg_guc = guc1.db_seg_guc self.primary_file_seg_guc = guc1.primary_file_seg_guc self.mirror_file_seg_guc = guc1.mirror_file_seg_guc if isinstance(guc2, MultiValueGuc): # copy constructor self.db_seg_guc = guc2.db_seg_guc self.primary_file_seg_guc = guc2.primary_file_seg_guc self.mirror_file_seg_guc = guc2.mirror_file_seg if isinstance(guc1, FileSegmentGuc): if self.primary_file_seg_guc: if self.primary_file_seg_guc.dbid == guc1.dbid: self.primary_file_seg_guc = guc1 else: self.mirror_file_seg_guc = guc1 else: self.primary_file_seg_guc = guc1 if isinstance(guc2, FileSegmentGuc): if self.primary_file_seg_guc: if self.primary_file_seg_guc.dbid == guc2.dbid: self.primary_file_seg_guc = guc2 else: self.mirror_file_seg_guc = guc2 else: self.primary_file_seg_guc = guc2 if isinstance(guc1, DatabaseSegmentGuc): self.db_seg_guc = guc1 if isinstance(guc2, DatabaseSegmentGuc): self.db_seg_guc = guc2