From 482360e9fae0c2bfb1bdb860f06a8f769160131f Mon Sep 17 00:00:00 2001 From: Joaquin Bravo Contreras Date: Sat, 4 Jul 2020 15:01:12 -0500 Subject: [PATCH 1/2] feat: varchar types can be written without length parameter --- datafiller | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/datafiller b/datafiller index 0b2cd55..877b827 100755 --- a/datafiller +++ b/datafiller @@ -2389,7 +2389,7 @@ RE_SER=r'(SMALL|BIG)?SERIAL|SERIAL[248]' RE_BLO=r'BYTEA|BLOB' RE_INT=r'{0}|(TINY|SMALL|MEDIUM)INT|INT[248]|INTEGER|INT\b'.format(RE_SER) RE_FLT=r'REAL|FLOAT|DOUBLE\s+PRECISION|NUMERIC|DECIMAL' -RE_TXT=r'TEXT|CHAR\(\d+\)|VARCHAR\(\d+\)' +RE_TXT=r'TEXT|CHAR\(\d+\)|VARCHAR(\(\d+\))?' RE_BIT=r'BIT\(\d+\)|VARBIT\(\d+\)' RE_TSTZ=r'TIMESTAMP(\s+WITH\s+TIME\s+ZONE)?' RE_INTV=r'INTERVAL' @@ -4370,8 +4370,7 @@ class Database(object): t = type.lower() return t == 'smallint' or t == 'int' or t == 'integer' or t == 'bigint' def textType(self, type): - t = type.lower() - return t == 'text' or re.match(r'(var)?char\(', t) + return re.match(RE_TXT + '$', type, re.I) def boolType(self, type): t = type.lower() return t == 'bool' or t == 'boolean' From 58801d58a54f2ad34b4ff6cc1b4cf8bcee4e3448 Mon Sep 17 00:00:00 2001 From: Joaquin Bravo Contreras Date: Sat, 4 Jul 2020 15:01:49 -0500 Subject: [PATCH 2/2] feat: make uuid types use a count hexadecimal generator, that way they can have unique indexes --- datafiller | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/datafiller b/datafiller index 877b827..c44964c 100755 --- a/datafiller +++ b/datafiller @@ -3979,8 +3979,8 @@ class BitGenerator(WithLength, RandomGenerator): def UUIDGenerator(att, params=None): if not params: params = att.params - params['pattern'] = r'\h{4}(\h{4}-){4}\h{12}' - return PatternGenerator(att, params) + params['format'] = '032X' + return CountGenerator(att, params) # all user-visible generators GENERATORS = {