From c7b8cde5303eb93ee10eb6a93022a56dc710dada Mon Sep 17 00:00:00 2001 From: totoro Date: Sat, 29 Apr 2023 18:18:58 +0900 Subject: [PATCH] use the escaped_quoted_sqlite_reserved_keyword() function from standard library in create_table_generate_one_column and in constraint for unique version 1.19.5 --- hayamiki_lib | 2 +- src/app/app_version.anubis | 2 +- src/generation/create_table.anubis | 301 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------------- 3 files changed, 155 insertions(+), 150 deletions(-) diff --git a/hayamiki_lib b/hayamiki_lib index accc749..f929f8f 160000 --- a/hayamiki_lib +++ b/hayamiki_lib @@ -1 +1 @@ -Subproject commit accc7490a42d73a0666e87883bf9170dfd85be8b +Subproject commit f929f8f4e7f4fa27a4a7051b98887401f6bf812e diff --git a/src/app/app_version.anubis b/src/app/app_version.anubis index a4475a9..f626f9e 100644 --- a/src/app/app_version.anubis +++ b/src/app/app_version.anubis @@ -11,7 +11,7 @@ read system/string.anubis public define Int major = 1. public define Int minor = 19. -public define Int release = 4. +public define Int release = 5. public define Int build = 0. public define String status = "". diff --git a/src/generation/create_table.anubis b/src/generation/create_table.anubis index 70fb680..6e9f5b4 100644 --- a/src/generation/create_table.anubis +++ b/src/generation/create_table.anubis @@ -35,6 +35,7 @@ read tools/basis.anubis read tools/int.anubis read system/string.anubis read system/files.anubis +read data_base/sqlite.anubis read tools/streams.anubis read tools/ISO-8601.anubis @@ -43,149 +44,155 @@ read columns.anubis read utils/utils.anubis -define List(String) sqlite_reserved_keywords = (List(String)) - [ - "ABORT", - "ACTION", - "ADD", - "AFTER", - "ALL", - "ALTER", - "ANALYZE", - "AND", - "AS", - "ASC", - "ATTACH", - "AUTOINCREMENT", - "BEFORE", - "BEGIN", - "BETWEEN", - "BY", - "CASCADE", - "CASE", - "CAST", - "CHECK", - "COLLATE", - "COLUMN", - "COMMIT", - "CONFLICT", - "CONSTRAINT", - "CREATE", - "CROSS", - "CURRENT", - "CURRENT_DATE", - "CURRENT_TIME", - "CURRENT_TIMESTAMP", - "DATABASE", - "DEFAULT", - "DEFERRABLE", - "DEFERRED", - "DELETE", - "DESC", - "DETACH", - "DISTINCT", - "DO", - "DROP", - "EACH", - "ELSE", - "END", - "ESCAPE", - "EXCEPT", - "EXCLUDE", - "EXCLUSIVE", - "EXISTS", - "EXPLAIN", - "FAIL", - "FILTER", - "FOLLOWING", - "FOR", - "FOREIGN", - "FROM", - "FULL", - "GLOB", - "GROUP", - "GROUPS", - "HAVING", - "IF", - "IGNORE", - "IMMEDIATE", - "IN", - "INDEX", - "INDEXED", - "INITIALLY", - "INNER", - "INSERT", - "INSTEAD", - "INTERSECT", - "INTO", - "IS", - "ISNULL", - "JOIN", - "KEY", - "LEFT", - "LIKE", - "LIMIT", - "MATCH", - "NATURAL", - "NO", - "NOT", - "NOTHING", - "NOTNULL", - "NULL", - "OF", - "OFFSET", - "ON", - "OR", - "ORDER", - "OTHERS", - "OUTER", - "OVER", - "PARTITION", - "PLAN", - "PRAGMA", - "PRECEDING", - "PRIMARY", - "QUERY", - "RAISE", - "RANGE", - "RECURSIVE", - "REFERENCES", - "REGEXP", - "REINDEX", - "RELEASE", - "RENAME", - "REPLACE", - "RESTRICT", - "RIGHT", - "ROLLBACK", - "ROW", - "ROWS", - "SAVEPOINT", - "SELECT", - "SET", - "TABLE", - "TEMP", - "TEMPORARY", - "THEN", - "TIES", - "TO", - "TRANSACTION", - "TRIGGER", - "UNBOUNDED", - "UNION", - "UNIQUE", - "UPDATE", - "USING", - "VACUUM", - "VALUES", - "VIEW", - "VIRTUAL", - "WHEN", - "WHERE", - "WINDOW", - "WITH", - "WITHOUT" -]. +//define List(String) sqlite_reserved_keywords = (List(String)) +// [ +// "ABORT", +// "ACTION", +// "ADD", +// "AFTER", +// "ALL", +// "ALTER", +// "ALWAYS", +// "ANALYZE", +// "AND", +// "AS", +// "ASC", +// "ATTACH", +// "AUTOINCREMENT", +// "BEFORE", +// "BEGIN", +// "BETWEEN", +// "BY", +// "CASCADE", +// "CASE", +// "CAST", +// "CHECK", +// "COLLATE", +// "COLUMN", +// "COMMIT", +// "CONFLICT", +// "CONSTRAINT", +// "CREATE", +// "CROSS", +// "CURRENT", +// "CURRENT_DATE", +// "CURRENT_TIME", +// "CURRENT_TIMESTAMP", +// "DATABASE", +// "DEFAULT", +// "DEFERRABLE", +// "DEFERRED", +// "DELETE", +// "DESC", +// "DETACH", +// "DISTINCT", +// "DO", +// "DROP", +// "EACH", +// "ELSE", +// "END", +// "ESCAPE", +// "EXCEPT", +// "EXCLUDE", +// "EXCLUSIVE", +// "EXISTS", +// "EXPLAIN", +// "FAIL", +// "FILTER", +// "FOLLOWING", +// "FOR", +// "FOREIGN", +// "FROM", +// "FULL", +// "GENERATED", +// "GLOB", +// "GROUP", +// "GROUPS", +// "HAVING", +// "IF", +// "IGNORE", +// "IMMEDIATE", +// "IN", +// "INDEX", +// "INDEXED", +// "INITIALLY", +// "INNER", +// "INSERT", +// "INSTEAD", +// "INTERSECT", +// "INTO", +// "IS", +// "ISNULL", +// "JOIN", +// "KEY", +// "LAST", +// "LEFT", +// "LIKE", +// "LIMIT", +// "MATCH", +// "MATERIALIZED", +// "NATURAL", +// "NO", +// "NOT", +// "NOTHING", +// "NOTNULL", +// "NULL", +// "NULLS", +// "OF", +// "OFFSET", +// "ON", +// "OR", +// "ORDER", +// "OTHERS", +// "OUTER", +// "OVER", +// "PARTITION", +// "PLAN", +// "PRAGMA", +// "PRECEDING", +// "PRIMARY", +// "QUERY", +// "RAISE", +// "RANGE", +// "RECURSIVE", +// "REFERENCES", +// "REGEXP", +// "REINDEX", +// "RELEASE", +// "RENAME", +// "REPLACE", +// "RESTRICT", +// "RETURNING", +// "RIGHT", +// "ROLLBACK", +// "ROW", +// "ROWS", +// "SAVEPOINT", +// "SELECT", +// "SET", +// "TABLE", +// "TEMP", +// "TEMPORARY", +// "THEN", +// "TIES", +// "TO", +// "TRANSACTION", +// "TRIGGER", +// "UNBOUNDED", +// "UNION", +// "UNIQUE", +// "UPDATE", +// "USING", +// "VACUUM", +// "VALUES", +// "VIEW", +// "VIRTUAL", +// "WHEN", +// "WHERE", +// "WINDOW", +// "WITH", +// "WITHOUT" +//]. define String create_table_generate_one_column @@ -194,10 +201,8 @@ define String Int fill_size )= since column is hk_column(name, col_type, attributes, _), - if to_upper(name):sqlite_reserved_keywords then - fill("\\\""+name+"\\\"", fill_size)+ to_SQL_CREATE(col_type, attributes, name) - else - fill(name, fill_size)+ to_SQL_CREATE(col_type, attributes, name) + + fill(escaped_quoted_sqlite_reserved_keyword(name), fill_size)+ to_SQL_CREATE(col_type, attributes, name) . define String @@ -236,7 +241,7 @@ define String with name = if _name = "" then "" else "CONSTRAINT "+_name+" ", ",\n"+ indent+name+"UNIQUE (\n"+ - indent+indent+join(",\n"+indent+indent, columns)+"\n"+ + indent+indent+join(",\n"+indent+indent, escaped_quoted_sqlite_reserved_keyword(columns))+"\n"+ indent+")\n"+ indent+"ON CONFLICT "+to_String(_on_conflict) . -- libgit2 0.21.4