Browse Source

Finish parameterize() for Text.

tags/v1.0^2
Ben Kurtovic 10 years ago
parent
commit
91256b1384
2 changed files with 10 additions and 3 deletions
  1. +1
    -1
      bitshift/database/__init__.py
  2. +9
    -2
      bitshift/query/nodes.py

+ 1
- 1
bitshift/database/__init__.py View File

@@ -62,7 +62,7 @@ class Database(object):
base = """SELECT codelet_id
FROM codelets %s
WHERE %s
ORDER BY codelet_rank LIMIT 10"""
GROUP BY codelet_id ORDER BY codelet_rank DESC LIMIT 10"""
conditional, tables, args = query.parameterize()
joins = " ".join(tables)
qstring = base % (joins, conditional)


+ 9
- 2
bitshift/query/nodes.py View File

@@ -84,8 +84,15 @@ class Text(_Node):

def parameterize(self, tables):
tables |= {"code", "symbols"}
# (FTS: codelet_name, =: symbol_name, FTS: code_code) vs. node.text (_Literal)
pass
if isinstance(self.text, Regex):
cols = ["codelet_name", "symbol_name", "code_code"]
cond = "((" + " REGEXP ?) OR (".join(cols) + " REGEXP ?))"
return cond, [self.text.regex] * 3
conds = ["MATCH(codelet_name) AGAINST (? IN BOOLEAN MODE)",
"MATCH(code_code) AGAINST (? IN BOOLEAN MODE)",
"symbol_name = ?"]
cond = "((" + ") OR (".join(conds) + "))"
return cond, tables, [self.text.string] * 3


class Language(_Node):


Loading…
Cancel
Save