(self, expression)
| 1170 | return limitedQuery |
| 1171 | |
| 1172 | def forgeQueryOutputLength(self, expression): |
| 1173 | lengthQuery = queries[Backend.getIdentifiedDbms()].length.query |
| 1174 | select = re.search(r"\ASELECT\s+", expression, re.I) |
| 1175 | selectFrom = re.search(r"\ASELECT\s+(.+)\s+FROM\s+(.+)", expression, re.I) |
| 1176 | selectTopExpr = re.search(r"\ASELECT\s+TOP\s+[\d]+\s+(.+?)\s+FROM", expression, re.I) |
| 1177 | selectMinMaxExpr = re.search(r"\ASELECT\s+(MIN|MAX)\(.+?\)\s+FROM", expression, re.I) |
| 1178 | |
| 1179 | _, _, _, _, _, _, fieldsStr, _ = self.getFields(expression) |
| 1180 | |
| 1181 | if Backend.getIdentifiedDbms() in (DBMS.MCKOI,) and selectFrom: |
| 1182 | lengthExpr = "SELECT %s FROM %s" % (lengthQuery % selectFrom.group(1), selectFrom.group(2)) |
| 1183 | elif selectTopExpr or selectMinMaxExpr: |
| 1184 | lengthExpr = lengthQuery % ("(%s)" % expression) |
| 1185 | elif select: |
| 1186 | lengthExpr = expression.replace(fieldsStr, lengthQuery % fieldsStr, 1) |
| 1187 | else: |
| 1188 | lengthExpr = lengthQuery % expression |
| 1189 | |
| 1190 | return unescaper.escape(lengthExpr) |
| 1191 | |
| 1192 | def forgeCaseStatement(self, expression): |
| 1193 | """ |
no test coverage detected