code: def execute(self, conn, dsType = "", dataset="", transaction = False):
          
          sql = self.sql
          binds={}
          if not dsType  and not dataset:
              pass
          elif dsType and dataset in ("", None, '%'):
              op = ("=", "like")["%" in dsType]
              sql += "WHERE PDT.PRIMARY_DS_TYPE %s :primdstype"%op 
              binds = {"primdstype":dsType}
  	elif dataset and dsType in ("", None, '%'):
  	    op = ("=", "like")["%" in dataset]
  	    sql += "JOIN %sPRIMARY_DATASETS PDS on PDS.PRIMARY_DS_TYPE_ID = PDT.PRIMARY_DS_TYPE_ID \
  	            JOIN %sDATASETS DS ON DS.PRIMARY_DS_ID = PDS.PRIMARY_DS_ID \
  	            WHERE DS.DATASET %s :dataset"  %(self.owner, self.owner, op)
  	    binds={"dataset":dataset}
          elif dataset and dsType:
              op = ("=", "like")["%" in dsType]
              op1 = ("=", "like")["%" in dataset]
              sql += "JOIN %sPRIMARY_DATASETS PDS on PDS.PRIMARY_DS_TYPE_ID = PDT.PRIMARY_DS_TYPE_ID \
                      JOIN %sDATASETS DS ON DS.PRIMARY_DS_ID = PDS.PRIMARY_DS_ID \
                      WHERE DS.DATASET %s :dataset and PDT.PRIMARY_DS_TYPE %s :primdstype" \
                      %(self.owner, self.owner, op1, op)
              binds = {"primdstype":dsType, "dataset":dataset}
  	else:
  	    dbsExceptionHandler('dbsException-invalid-input', "DAO Primary_DS_TYPE List accepts no input, or\
              dataset,primary_ds_type as input.", self.logger.exception)
          cursors = self.dbi.processData(sql, binds, conn, transaction, returnCursor=True)
          result = []
          for c in cursors:
              result.extend(self.formatCursor(c, size=100))
          return result
docs: Lists all primary dataset types if no user input is provided.