Commit 0dc1ce0224fd2c94a99c8b7a715431086299d18c
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 | ... | ... |