소스 검색

Finish parameterize() for Text.

tags/v1.0^2
Ben Kurtovic 10 년 전
부모
커밋
91256b1384
2개의 변경된 파일10개의 추가작업 그리고 3개의 파일을 삭제
  1. +1
    -1
      bitshift/database/__init__.py
  2. +9
    -2
      bitshift/query/nodes.py

+ 1
- 1
bitshift/database/__init__.py 파일 보기

@@ -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 파일 보기

@@ -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):


불러오는 중...
취소
저장