Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 9a36357

Browse files
authored
SQLite table dumping compatibility improvements. (#4205)
* Fix sqlite regex for create table to support implicit column types * Fix sqlite when dumping large tables
1 parent 667e4d0 commit 9a36357

2 files changed

Lines changed: 4 additions & 2 deletions

File tree

lib/core/common.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3287,9 +3287,9 @@ def parseSqliteTableSchema(value):
32873287
table = {}
32883288
columns = {}
32893289

3290-
for match in re.finditer(r"(\w+)[\"'`]?\s+(INT|INTEGER|TINYINT|SMALLINT|MEDIUMINT|BIGINT|UNSIGNED BIG INT|INT2|INT8|INTEGER|CHARACTER|VARCHAR|VARYING CHARACTER|NCHAR|NATIVE CHARACTER|NVARCHAR|TEXT|CLOB|LONGTEXT|BLOB|NONE|REAL|DOUBLE|DOUBLE PRECISION|FLOAT|REAL|NUMERIC|DECIMAL|BOOLEAN|DATE|DATETIME|NUMERIC)\b", decodeStringEscape(value), re.I):
3290+
for match in re.finditer(r"[(,]\s*[\"'`]?(\w+)[\"'`]?(?:\s+(INT|INTEGER|TINYINT|SMALLINT|MEDIUMINT|BIGINT|UNSIGNED BIG INT|INT2|INT8|INTEGER|CHARACTER|VARCHAR|VARYING CHARACTER|NCHAR|NATIVE CHARACTER|NVARCHAR|TEXT|CLOB|LONGTEXT|BLOB|NONE|REAL|DOUBLE|DOUBLE PRECISION|FLOAT|REAL|NUMERIC|DECIMAL|BOOLEAN|DATE|DATETIME|NUMERIC)\b)?", decodeStringEscape(value), re.I):
32913291
retVal = True
3292-
columns[match.group(1)] = match.group(2)
3292+
columns[match.group(1)] = match.group(2) or "TEXT"
32933293

32943294
table[safeSQLIdentificatorNaming(conf.tbl, True)] = columns
32953295
kb.data.cachedColumns[conf.db] = table

plugins/generic/entries.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,8 @@ def dumpTable(self, foundData=None):
131131
try:
132132
if Backend.isDbms(DBMS.INFORMIX):
133133
kb.dumpTable = "%s:%s" % (conf.db, tbl)
134+
elif Backend.isDbms(DBMS.SQLITE):
135+
kb.dumpTable = tbl
134136
else:
135137
kb.dumpTable = "%s.%s" % (conf.db, tbl)
136138

0 commit comments

Comments
 (0)