Repository navigation
Commit cafcd8f
committed
Map a parameter type by its canonical spelling and stop on an unknown one
tools/codegen reads each parameter's canonical spelling from the MEOS-API catalog, the C spelling with every typedef the catalog states resolved, and fills the one further parameter of a math operation by that spelling: argConversions fills a double, an int and a bool, so a typedef the catalog resolves to one of them is filled as that type. argUnfillable states the two types the one value of a query cannot fill, const Interval * and interpType, each with its reason, and an operation taking one keeps its row in mathOps and gets no case in the cgo dispatch. A parameter whose canonical spelling is absent, or names a type in neither map, stops the generator with an error naming the function and the type, so a type the catalog gives a parameter reaches the tier as a failing check rather than as an operation missing from the dispatch.
Measured. Over the catalog of MobilityDB master the generator selects 21 math operations and serves 18, the operations and cases of master's tables, whose generated dispatch differs only in the header comment naming the two unfillable types; the three without a case are the two taking an interval and the one taking an interpolation.
Witness. tools/codegen/main_test.go builds catalog entries and asserts that an int32 parameter whose canonical spelling is int is filled as an int, that an interval parameter keeps its operation out of the dispatch, and that a parameter of an unknown type, or one without a canonical spelling, stops the generator naming the function. GENERATION.md states the rule.1 parent fc57fb3 commit cafcd8f
4 files changed
Lines changed: 144 additions & 20 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
20 | 26 | | |
21 | 27 | | |
22 | 28 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
52 | 55 | | |
53 | | - | |
54 | | - | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
55 | 59 | | |
56 | 60 | | |
57 | 61 | | |
| |||
89 | 93 | | |
90 | 94 | | |
91 | 95 | | |
92 | | - | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
93 | 100 | | |
94 | 101 | | |
95 | 102 | | |
| |||
139 | 146 | | |
140 | 147 | | |
141 | 148 | | |
142 | | - | |
143 | | - | |
144 | | - | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
145 | 153 | | |
146 | 154 | | |
147 | 155 | | |
| |||
157 | 165 | | |
158 | 166 | | |
159 | 167 | | |
160 | | - | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
161 | 175 | | |
162 | 176 | | |
163 | 177 | | |
| |||
176 | 190 | | |
177 | 191 | | |
178 | 192 | | |
179 | | - | |
| 193 | + | |
180 | 194 | | |
181 | | - | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
182 | 208 | | |
183 | | - | |
| 209 | + | |
184 | 210 | | |
185 | 211 | | |
186 | 212 | | |
187 | 213 | | |
188 | 214 | | |
189 | 215 | | |
190 | 216 | | |
191 | | - | |
| 217 | + | |
192 | 218 | | |
193 | 219 | | |
194 | 220 | | |
195 | | - | |
196 | | - | |
197 | | - | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
198 | 224 | | |
199 | 225 | | |
200 | 226 | | |
201 | 227 | | |
202 | 228 | | |
203 | 229 | | |
204 | 230 | | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
205 | 240 | | |
206 | 241 | | |
207 | 242 | | |
| |||
217 | 252 | | |
218 | 253 | | |
219 | 254 | | |
220 | | - | |
221 | | - | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
222 | 258 | | |
223 | 259 | | |
224 | 260 | | |
| |||
237 | 273 | | |
238 | 274 | | |
239 | 275 | | |
240 | | - | |
| 276 | + | |
241 | 277 | | |
242 | 278 | | |
243 | 279 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
0 commit comments