Commit c7b8cde5303eb93ee10eb6a93022a56dc710dada

Authored by David RENÉ
1 parent a7e2e1dd

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 @ f929f8f4e7f
1 -Subproject commit accc7490a42d73a0666e87883bf9170dfd85be8b 1 +Subproject commit f929f8f4e7f4fa27a4a7051b98887401f6bf812e
src/app/app_version.anubis
@@ -11,7 +11,7 @@ read system/string.anubis @@ -11,7 +11,7 @@ read system/string.anubis
11 11
12 public define Int major = 1. 12 public define Int major = 1.
13 public define Int minor = 19. 13 public define Int minor = 19.
14 -public define Int release = 4. 14 +public define Int release = 5.
15 public define Int build = 0. 15 public define Int build = 0.
16 public define String status = "". 16 public define String status = "".
17 17
src/generation/create_table.anubis
@@ -35,6 +35,7 @@ read tools/basis.anubis @@ -35,6 +35,7 @@ read tools/basis.anubis
35 read tools/int.anubis 35 read tools/int.anubis
36 read system/string.anubis 36 read system/string.anubis
37 read system/files.anubis 37 read system/files.anubis
  38 +read data_base/sqlite.anubis
38 read tools/streams.anubis 39 read tools/streams.anubis
39 read tools/ISO-8601.anubis 40 read tools/ISO-8601.anubis
40 41
@@ -43,149 +44,155 @@ read columns.anubis @@ -43,149 +44,155 @@ read columns.anubis
43 44
44 read utils/utils.anubis 45 read utils/utils.anubis
45 46
46 -define List(String) sqlite_reserved_keywords = (List(String))  
47 - [  
48 - "ABORT",  
49 - "ACTION",  
50 - "ADD",  
51 - "AFTER",  
52 - "ALL",  
53 - "ALTER",  
54 - "ANALYZE",  
55 - "AND",  
56 - "AS",  
57 - "ASC",  
58 - "ATTACH",  
59 - "AUTOINCREMENT",  
60 - "BEFORE",  
61 - "BEGIN",  
62 - "BETWEEN",  
63 - "BY",  
64 - "CASCADE",  
65 - "CASE",  
66 - "CAST",  
67 - "CHECK",  
68 - "COLLATE",  
69 - "COLUMN",  
70 - "COMMIT",  
71 - "CONFLICT",  
72 - "CONSTRAINT",  
73 - "CREATE",  
74 - "CROSS",  
75 - "CURRENT",  
76 - "CURRENT_DATE",  
77 - "CURRENT_TIME",  
78 - "CURRENT_TIMESTAMP",  
79 - "DATABASE",  
80 - "DEFAULT",  
81 - "DEFERRABLE",  
82 - "DEFERRED",  
83 - "DELETE",  
84 - "DESC",  
85 - "DETACH",  
86 - "DISTINCT",  
87 - "DO",  
88 - "DROP",  
89 - "EACH",  
90 - "ELSE",  
91 - "END",  
92 - "ESCAPE",  
93 - "EXCEPT",  
94 - "EXCLUDE",  
95 - "EXCLUSIVE",  
96 - "EXISTS",  
97 - "EXPLAIN",  
98 - "FAIL",  
99 - "FILTER",  
100 - "FOLLOWING",  
101 - "FOR",  
102 - "FOREIGN",  
103 - "FROM",  
104 - "FULL",  
105 - "GLOB",  
106 - "GROUP",  
107 - "GROUPS",  
108 - "HAVING",  
109 - "IF",  
110 - "IGNORE",  
111 - "IMMEDIATE",  
112 - "IN",  
113 - "INDEX",  
114 - "INDEXED",  
115 - "INITIALLY",  
116 - "INNER",  
117 - "INSERT",  
118 - "INSTEAD",  
119 - "INTERSECT",  
120 - "INTO",  
121 - "IS",  
122 - "ISNULL",  
123 - "JOIN",  
124 - "KEY",  
125 - "LEFT",  
126 - "LIKE",  
127 - "LIMIT",  
128 - "MATCH",  
129 - "NATURAL",  
130 - "NO",  
131 - "NOT",  
132 - "NOTHING",  
133 - "NOTNULL",  
134 - "NULL",  
135 - "OF",  
136 - "OFFSET",  
137 - "ON",  
138 - "OR",  
139 - "ORDER",  
140 - "OTHERS",  
141 - "OUTER",  
142 - "OVER",  
143 - "PARTITION",  
144 - "PLAN",  
145 - "PRAGMA",  
146 - "PRECEDING",  
147 - "PRIMARY",  
148 - "QUERY",  
149 - "RAISE",  
150 - "RANGE",  
151 - "RECURSIVE",  
152 - "REFERENCES",  
153 - "REGEXP",  
154 - "REINDEX",  
155 - "RELEASE",  
156 - "RENAME",  
157 - "REPLACE",  
158 - "RESTRICT",  
159 - "RIGHT",  
160 - "ROLLBACK",  
161 - "ROW",  
162 - "ROWS",  
163 - "SAVEPOINT",  
164 - "SELECT",  
165 - "SET",  
166 - "TABLE",  
167 - "TEMP",  
168 - "TEMPORARY",  
169 - "THEN",  
170 - "TIES",  
171 - "TO",  
172 - "TRANSACTION",  
173 - "TRIGGER",  
174 - "UNBOUNDED",  
175 - "UNION",  
176 - "UNIQUE",  
177 - "UPDATE",  
178 - "USING",  
179 - "VACUUM",  
180 - "VALUES",  
181 - "VIEW",  
182 - "VIRTUAL",  
183 - "WHEN",  
184 - "WHERE",  
185 - "WINDOW",  
186 - "WITH",  
187 - "WITHOUT"  
188 -]. 47 +//define List(String) sqlite_reserved_keywords = (List(String))
  48 +// [
  49 +// "ABORT",
  50 +// "ACTION",
  51 +// "ADD",
  52 +// "AFTER",
  53 +// "ALL",
  54 +// "ALTER",
  55 +// "ALWAYS",
  56 +// "ANALYZE",
  57 +// "AND",
  58 +// "AS",
  59 +// "ASC",
  60 +// "ATTACH",
  61 +// "AUTOINCREMENT",
  62 +// "BEFORE",
  63 +// "BEGIN",
  64 +// "BETWEEN",
  65 +// "BY",
  66 +// "CASCADE",
  67 +// "CASE",
  68 +// "CAST",
  69 +// "CHECK",
  70 +// "COLLATE",
  71 +// "COLUMN",
  72 +// "COMMIT",
  73 +// "CONFLICT",
  74 +// "CONSTRAINT",
  75 +// "CREATE",
  76 +// "CROSS",
  77 +// "CURRENT",
  78 +// "CURRENT_DATE",
  79 +// "CURRENT_TIME",
  80 +// "CURRENT_TIMESTAMP",
  81 +// "DATABASE",
  82 +// "DEFAULT",
  83 +// "DEFERRABLE",
  84 +// "DEFERRED",
  85 +// "DELETE",
  86 +// "DESC",
  87 +// "DETACH",
  88 +// "DISTINCT",
  89 +// "DO",
  90 +// "DROP",
  91 +// "EACH",
  92 +// "ELSE",
  93 +// "END",
  94 +// "ESCAPE",
  95 +// "EXCEPT",
  96 +// "EXCLUDE",
  97 +// "EXCLUSIVE",
  98 +// "EXISTS",
  99 +// "EXPLAIN",
  100 +// "FAIL",
  101 +// "FILTER",
  102 +// "FOLLOWING",
  103 +// "FOR",
  104 +// "FOREIGN",
  105 +// "FROM",
  106 +// "FULL",
  107 +// "GENERATED",
  108 +// "GLOB",
  109 +// "GROUP",
  110 +// "GROUPS",
  111 +// "HAVING",
  112 +// "IF",
  113 +// "IGNORE",
  114 +// "IMMEDIATE",
  115 +// "IN",
  116 +// "INDEX",
  117 +// "INDEXED",
  118 +// "INITIALLY",
  119 +// "INNER",
  120 +// "INSERT",
  121 +// "INSTEAD",
  122 +// "INTERSECT",
  123 +// "INTO",
  124 +// "IS",
  125 +// "ISNULL",
  126 +// "JOIN",
  127 +// "KEY",
  128 +// "LAST",
  129 +// "LEFT",
  130 +// "LIKE",
  131 +// "LIMIT",
  132 +// "MATCH",
  133 +// "MATERIALIZED",
  134 +// "NATURAL",
  135 +// "NO",
  136 +// "NOT",
  137 +// "NOTHING",
  138 +// "NOTNULL",
  139 +// "NULL",
  140 +// "NULLS",
  141 +// "OF",
  142 +// "OFFSET",
  143 +// "ON",
  144 +// "OR",
  145 +// "ORDER",
  146 +// "OTHERS",
  147 +// "OUTER",
  148 +// "OVER",
  149 +// "PARTITION",
  150 +// "PLAN",
  151 +// "PRAGMA",
  152 +// "PRECEDING",
  153 +// "PRIMARY",
  154 +// "QUERY",
  155 +// "RAISE",
  156 +// "RANGE",
  157 +// "RECURSIVE",
  158 +// "REFERENCES",
  159 +// "REGEXP",
  160 +// "REINDEX",
  161 +// "RELEASE",
  162 +// "RENAME",
  163 +// "REPLACE",
  164 +// "RESTRICT",
  165 +// "RETURNING",
  166 +// "RIGHT",
  167 +// "ROLLBACK",
  168 +// "ROW",
  169 +// "ROWS",
  170 +// "SAVEPOINT",
  171 +// "SELECT",
  172 +// "SET",
  173 +// "TABLE",
  174 +// "TEMP",
  175 +// "TEMPORARY",
  176 +// "THEN",
  177 +// "TIES",
  178 +// "TO",
  179 +// "TRANSACTION",
  180 +// "TRIGGER",
  181 +// "UNBOUNDED",
  182 +// "UNION",
  183 +// "UNIQUE",
  184 +// "UPDATE",
  185 +// "USING",
  186 +// "VACUUM",
  187 +// "VALUES",
  188 +// "VIEW",
  189 +// "VIRTUAL",
  190 +// "WHEN",
  191 +// "WHERE",
  192 +// "WINDOW",
  193 +// "WITH",
  194 +// "WITHOUT"
  195 +//].
189 196
190 define String 197 define String
191 create_table_generate_one_column 198 create_table_generate_one_column
@@ -194,10 +201,8 @@ define String @@ -194,10 +201,8 @@ define String
194 Int fill_size 201 Int fill_size
195 )= 202 )=
196 since column is hk_column(name, col_type, attributes, _), 203 since column is hk_column(name, col_type, attributes, _),
197 - if to_upper(name):sqlite_reserved_keywords then  
198 - fill("\\\""+name+"\\\"", fill_size)+ to_SQL_CREATE(col_type, attributes, name)  
199 - else  
200 - fill(name, fill_size)+ to_SQL_CREATE(col_type, attributes, name) 204 +
  205 + fill(escaped_quoted_sqlite_reserved_keyword(name), fill_size)+ to_SQL_CREATE(col_type, attributes, name)
201 . 206 .
202 207
203 define String 208 define String
@@ -236,7 +241,7 @@ define String @@ -236,7 +241,7 @@ define String
236 with name = if _name = "" then "" else "CONSTRAINT "+_name+" ", 241 with name = if _name = "" then "" else "CONSTRAINT "+_name+" ",
237 ",\n"+ 242 ",\n"+
238 indent+name+"UNIQUE (\n"+ 243 indent+name+"UNIQUE (\n"+
239 - indent+indent+join(",\n"+indent+indent, columns)+"\n"+ 244 + indent+indent+join(",\n"+indent+indent, escaped_quoted_sqlite_reserved_keyword(columns))+"\n"+
240 indent+")\n"+ 245 indent+")\n"+
241 indent+"ON CONFLICT "+to_String(_on_conflict) 246 indent+"ON CONFLICT "+to_String(_on_conflict)
242 . 247 .