(self)
| 69 | return value |
| 70 | |
| 71 | def _sysTablesCheck(self): |
| 72 | retVal = None |
| 73 | table = ( |
| 74 | ("1.0", ("EXISTS(SELECT CURRENT_USER FROM RDB$DATABASE)",)), |
| 75 | ("1.5", ("NULLIF(%d,%d) IS NULL", "EXISTS(SELECT CURRENT_TRANSACTION FROM RDB$DATABASE)")), |
| 76 | ("2.0", ("EXISTS(SELECT CURRENT_TIME(0) FROM RDB$DATABASE)", "BIT_LENGTH(%d)>0", "CHAR_LENGTH(%d)>0")), |
| 77 | ("2.1", ("BIN_XOR(%d,%d)=0", "PI()>0.%d", "RAND()<1.%d", "FLOOR(1.%d)>=0")), |
| 78 | ("2.5", ("'%s' SIMILAR TO '%s'",)), # Reference: https://firebirdsql.org/refdocs/langrefupd25-similar-to.html |
| 79 | ("3.0", ("FALSE IS FALSE",)), # https://www.firebirdsql.org/file/community/conference-2014/pdf/02_fb.2014.whatsnew.30.en.pdf |
| 80 | ) |
| 81 | |
| 82 | for i in xrange(len(table)): |
| 83 | version, checks = table[i] |
| 84 | failed = False |
| 85 | check = checks[randomRange(0, len(checks) - 1)].replace("%d", getUnicode(randomRange(1, 100))).replace("%s", getUnicode(randomStr())) |
| 86 | result = inject.checkBooleanExpression(check) |
| 87 | |
| 88 | if result: |
| 89 | retVal = version |
| 90 | else: |
| 91 | failed = True |
| 92 | break |
| 93 | |
| 94 | if failed: |
| 95 | break |
| 96 | |
| 97 | return retVal |
| 98 | |
| 99 | def _dialectCheck(self): |
| 100 | retVal = None |
no test coverage detected