Add integer arrays

This commit is contained in:
Peter J. Holzer 2023-08-18 15:53:27 +02:00
parent 6c3437a5f1
commit ccf10d5690
2 changed files with 14 additions and 10 deletions

View File

@ -1,6 +1,6 @@
[metadata] [metadata]
name = ProcruSQL name = ProcruSQL
version = 0.0.12 version = 0.0.13
author = Peter J. Holzer author = Peter J. Holzer
author_email = hjp@hjp.at author_email = hjp@hjp.at
description = Make a database fit its description description = Make a database fit its description

View File

@ -285,7 +285,8 @@ def parse_column_definition(ps):
ps2 = ps.clone() ps2 = ps.clone()
ps2.ast = [] ps2.ast = []
ps2.skip_whitespace_and_comments() ps2.skip_whitespace_and_comments()
sqltypes = ( sqltypes = sorted(
(
"integer", "int", "serial", "bigint", "integer", "int", "serial", "bigint",
"boolean", "boolean",
"text", "character varying", "text", "character varying",
@ -294,6 +295,9 @@ def parse_column_definition(ps):
"inet", "inet",
"double precision", "float8", "real", "float4", "double precision", "float8", "real", "float4",
"json", "jsonb", "json", "jsonb",
r"integer\[\]", r"int\[\]", r"bigint\[\]",
),
key=lambda x: -len(x) # longest match first
) )
pattern = "(" + "|".join(sqltypes) + ")" + r"([ \t]+(default .*|not null\b|primary key\b|unique\b|references \w+\b))*" pattern = "(" + "|".join(sqltypes) + ")" + r"([ \t]+(default .*|not null\b|primary key\b|unique\b|references \w+\b))*"
m = ps2.match(pattern) m = ps2.match(pattern)