Commit 0dc1ce0224fd2c94a99c8b7a715431086299d18c

Authored by David RENÉ
1 parent a8661a46

[*] get_column_name has option to return also primary key. This is useful for ge…

…nerating full insert.
Showing 1 changed file with 11 additions and 8 deletions   Show diff stats
src/generation/columns.anubis
... ... @@ -138,13 +138,14 @@ public define Maybe(String)
138 138 get_column_name
139 139 (
140 140 HK_Model_Column col,
141   - Bool insert //true if insert time else false for update
  141 + Bool p_key_id, //true if the "id" column must be returned
  142 + Bool insert //true if insert time else false for update
142 143 ) =
143 144 since col is hk_column(name, col_type, _, _),
144 145 if col_type is
145 146 {
146 147 //anubis(_T) then "constant_byte_array(0,0)",
147   - p_key then if name = "id" then failure else success(name),
  148 + p_key then if name = "id" & p_key_id = false then failure else success(name),
148 149 //binary then "constant_byte_array(0,0)",
149 150 boolean_field then success(name),
150 151 date_field(attrs) then success(name),
... ... @@ -172,6 +173,7 @@ public define List(String)
172 173 columns_name
173 174 (
174 175 List(HK_Model_Column) columns,
  176 + Bool p_key_id, //true if we need to have the first primary_key column named "id"
175 177 Bool insert, //true if insert time else false for update
176 178 List(String) so_far
177 179 ) =
... ... @@ -179,14 +181,14 @@ public define List(String)
179 181 {
180 182 [] then reverse(so_far),
181 183 [h . t] then
182   - if get_column_name(h, insert) is
  184 + if get_column_name(h, p_key_id, insert) is
183 185 {
184   - failure then columns_name(t, insert, so_far)
  186 + failure then columns_name(t, p_key_id, insert, so_far)
185 187 success(result) then
186 188 if insert then
187   - columns_name(t, insert, [result . so_far])
  189 + columns_name(t, p_key_id, insert, [result . so_far])
188 190 else
189   - columns_name(t, insert, [enclose("\\"",result)+" = :v_"+result . so_far])
  191 + columns_name(t, p_key_id, insert, [enclose("\\"",result)+" = :v_"+result . so_far])
190 192 }
191 193 }.
192 194  
... ... @@ -198,9 +200,10 @@ public define String
198 200 insert_values
199 201 (
200 202 List(HK_Model_Column) columns,
  203 + Bool p_key_id,
201 204 String indent
202 205 )=
203   - with columns_list = columns_name(columns, true, []),
  206 + with columns_list = columns_name(columns, p_key_id, true, []),
204 207 indent+" ("+join(", ", enclose("\\\"",columns_list))+")\n"+indent+"VALUES\n"+indent+" ("+prefixed_join(":v_", columns_list, ", ")+")".
205 208  
206 209  
... ... @@ -214,7 +217,7 @@ public define String
214 217 List(HK_Model_Column) columns,
215 218 String indent
216 219 )=
217   - with columns_list = columns_name(columns, false, []),
  220 + with columns_list = columns_name(columns, false, false, []),
218 221 indent+" "+join(", ", columns_list).
219 222  
220 223  
... ...