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 11  
12 12 public define Int major = 1.
13 13 public define Int minor = 19.
14   -public define Int release = 4.
  14 +public define Int release = 5.
15 15 public define Int build = 0.
16 16 public define String status = "".
17 17  
... ...
src/generation/create_table.anubis
... ... @@ -35,6 +35,7 @@ read tools/basis.anubis
35 35 read tools/int.anubis
36 36 read system/string.anubis
37 37 read system/files.anubis
  38 +read data_base/sqlite.anubis
38 39 read tools/streams.anubis
39 40 read tools/ISO-8601.anubis
40 41  
... ... @@ -43,149 +44,155 @@ read columns.anubis
43 44  
44 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 197 define String
191 198 create_table_generate_one_column
... ... @@ -194,10 +201,8 @@ define String
194 201 Int fill_size
195 202 )=
196 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 208 define String
... ... @@ -236,7 +241,7 @@ define String
236 241 with name = if _name = "" then "" else "CONSTRAINT "+_name+" ",
237 242 ",\n"+
238 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 245 indent+")\n"+
241 246 indent+"ON CONFLICT "+to_String(_on_conflict)
242 247 .
... ...