diff options
Diffstat (limited to 'tko/query_lib.py')
-rw-r--r-- | tko/query_lib.py | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/tko/query_lib.py b/tko/query_lib.py index e20a6671..9f492b9d 100644 --- a/tko/query_lib.py +++ b/tko/query_lib.py @@ -88,102 +88,3 @@ def parse_scrub_and_gen_condition(condition, valid_field_dict): raise "Could not parse '%s' (%s)" % (condition, regex) - -### -### Everything past here is depricated. -### - -def generate_sql_condition(condition_list): - """ generate the sql for the condition list.""" - sql = '' - value = [] - for field, operator, values in condition_list: - if len(values) == 1: - if sql != '': - sql += " and " - sql += " %s%s%%s" % (field, operator) - value.append(values[0][0]) - elif len(values) > 1: - expression = [" %s %s %%s" % (field, operator) for val in values] - for val in values: - value.append(val[0]) - if sql != '': - sql += " and " - sql += "(%s)" % " or ".join(expression) - return sql, value - - -def prune_list(thelist, condition_sql, condition_value): - """ keep track of which columns do not have any elements.""" - pruned_list = [] - for g in thelist: - # check for multiple index values in the db. - sql = "t where " - expr = [" %s = %%s" % (g.idx_name) for val in g.idx_value] - sql += " (%s) " % " or ".join(expr) - value = [] - value.extend(g.idx_value) - if condition_sql: - sql += " and " - sql += condition_sql - value.extend(condition_value) - tests = frontend.test.select_sql(db, sql, value) - if len(tests) > 0: - pruned_list.append(g) - return pruned_list - - -def parse_condition(condition): - """ parse the condition into independent clauses.""" - condition_list = [] - if not condition: - return condition_list - attribute_re = r"(\w+)" - op_re = r"(=|!=)" - value_re = r"('[^']*')" - # condition is clause & clause & .. - clause_re = r"%s\s*%s\s*%s" % (attribute_re, op_re, value_re) - condition_re = re.compile(r"^\s*%s(\s*&\s*%s)*\s*$" % (clause_re, clause_re)) - if not condition_re.match(condition): - print "Condition not in the correct format: %s" % condition - sys.exit(0) - triples = [] - for clause in [c.strip() for c in condition.split('&')]: - attribute, op, value = re.match(clause_re, clause).groups() - triples.append((attribute, op, value)) - for (field_name, operator, value) in triples: - match, field = frontend.select(db, field_name, value, distinct=True) - if len(match) > 0: - condition_list.append((field, operator, match)) - else: - print "No matching results found for condition %s." % \ - condition - sys.exit(0) - return condition_list - - -def get_value(test, field): - """ get specific field values from the given test object.""" - if field == 'test': - return test.testname - elif field == 'kernel_idx': - return test.kernel_idx - elif field == 'machine_idx': - return test.machine_idx - elif field == 'status': - return test.status_num - - -def get_tests(condition_sql, condition_value): - # get all the tests that satify the given condition. - if condition_sql: - sql = "t where " - sql += condition_sql - value = [str(val) for val in condition_value] - #print sql , value - tests = frontend.test.select_sql(db, sql, value) - else: - sql = None - value = None - tests = frontend.test.select_sql(db, " t ", None) - return tests |