Add fallback for constraint parsing

This commit is contained in:
Alexey Romanov
2015-03-02 10:27:22 +03:00
parent a4f1d990a0
commit 32149a35ad
2 changed files with 21 additions and 4 deletions

View File

@@ -1155,7 +1155,7 @@ parse_table_info(Info) ->
Rest1 = list_init(Rest),
Cols = string:tokens(Rest1, ","),
build_table_info(lists:map(fun(X) ->
string:tokens(X, " ")
string:tokens(X, " \n\t")
end, Cols), []).
build_table_info([], Acc) ->
@@ -1174,12 +1174,15 @@ build_constraints(["UNIQUE" | Tail]) ->
[unique | build_constraints(Tail)];
build_constraints(["NOT", "NULL" | Tail]) ->
[not_null | build_constraints(Tail)];
build_constraints(["NULL" | Tail]) ->
[null | build_constraints(Tail)];
build_constraints(["DEFAULT", DefaultValue | Tail]) ->
[{default, sqlite3_lib:sql_to_value(DefaultValue)} | build_constraints(Tail)];
build_constraints(["CHECK", _ | Tail]) ->
%% currently ignored
build_constraints(Tail).
% build_constraints(["CHECK", _ | Tail]) ->
% build_constraints(Tail);
% build_constraints(["REFERENCES", Check | Tail]) -> ...
build_constraints(UnknownConstraints) ->
[{cant_parse_constraints, string:join(UnknownConstraints, " ")}].
build_primary_key_constraint(Tokens) -> build_primary_key_constraint(Tokens, []).