|
24 | 24 |
|
25 | 25 | {%- set datatype = datatype | string | upper | trim -%}
|
26 | 26 |
|
| 27 | +{%- set unknown_value__numeric = var('datavault4dbt.unknown_value__numeric', '-1') -%} |
| 28 | +{%- set error_value__numeric = var('datavault4dbt.error_value__numeric', '-2') -%} |
| 29 | + |
27 | 30 | {%- set unknown_value__STRING = var('datavault4dbt.unknown_value__STRING', '(unknown)') -%}
|
28 | 31 | {%- set error_value__STRING = var('datavault4dbt.error_value__STRING', '(error)') -%}
|
| 32 | + |
29 | 33 | {%- if ghost_record_type == 'unknown' -%}
|
30 | 34 | {%- if datatype == 'TIMESTAMP' %} {{ datavault4dbt.string_to_timestamp( timestamp_format , beginning_of_all_times) }} as {{ alias }}
|
31 | 35 | {%- elif datatype == 'DATE'-%} PARSE_DATE('{{date_format}}','{{ beginning_of_all_times_date }}') as {{ alias }}
|
32 | 36 | {%- elif datatype == 'STRING' %} '{{unknown_value__STRING}}' as {{ alias }}
|
33 |
| - {%- elif datatype == 'INT64' %} CAST('0' as INT64) as {{ alias }} |
34 |
| - {%- elif datatype == 'FLOAT64' %} CAST('0' as FLOAT64) as {{ alias }} |
| 37 | + {%- elif datatype == 'INT64' %} CAST({{unknown_value__numeric}} as INT64) as {{ alias }} |
| 38 | + {%- elif datatype == 'FLOAT64' %} CAST({{unknown_value__numeric}} as FLOAT64) as {{ alias }} |
35 | 39 | {%- elif datatype == 'BOOLEAN' %} CAST('FALSE' as BOOLEAN) as {{ alias }}
|
36 | 40 | {%- else %} CAST(NULL as {{ datatype }}) as {{ alias }}
|
37 | 41 | {% endif %}
|
38 | 42 | {%- elif ghost_record_type == 'error' -%}
|
39 | 43 | {%- if datatype == 'TIMESTAMP' %} {{ datavault4dbt.string_to_timestamp( timestamp_format , end_of_all_times) }} as {{ alias }}
|
40 | 44 | {%- elif datatype == 'DATE'-%} PARSE_DATE('{{date_format}}', '{{ end_of_all_times_date }}') as {{ alias }}
|
41 | 45 | {%- elif datatype == 'STRING' %} '{{error_value__STRING}}' as {{ alias }}
|
42 |
| - {%- elif datatype == 'INT64' %} CAST('-1' as INT64) as {{ alias }} |
43 |
| - {%- elif datatype == 'FLOAT64' %} CAST('-1' as FLOAT64) as {{ alias }} |
| 46 | + {%- elif datatype == 'INT64' %} CAST({{error_value__numeric}} as INT64) as {{ alias }} |
| 47 | + {%- elif datatype == 'FLOAT64' %} CAST({{error_value__numeric}} as FLOAT64) as {{ alias }} |
44 | 48 | {%- elif datatype == 'BOOLEAN' %} CAST('FALSE' as BOOLEAN) as {{ alias }}
|
45 | 49 | {%- else %} CAST(NULL as {{ datatype }}) as {{ alias }}
|
46 | 50 | {% endif %}
|
|
62 | 66 | {%- set end_of_all_times_date = datavault4dbt.end_of_all_times_date() -%}
|
63 | 67 | {%- set date_format = datavault4dbt.date_format() -%}
|
64 | 68 |
|
| 69 | +{%- set unknown_value__numeric = var('datavault4dbt.unknown_value__numeric', '-1') -%} |
| 70 | +{%- set error_value__numeric = var('datavault4dbt.error_value__numeric', '-2') -%} |
| 71 | + |
65 | 72 | {%- set unknown_value__STRING = var('datavault4dbt.unknown_value__STRING', '(unknown)') -%}
|
66 | 73 | {%- set error_value__STRING = var('datavault4dbt.error_value__STRING', '(error)') -%}
|
67 | 74 | {%- set unknown_value_alt__STRING = var('datavault4dbt.unknown_value_alt__STRING', 'u') -%}
|
|
94 | 101 | CAST('{{ unknown_value__STRING }}' as {{ datatype }} ) as {{ alias }}
|
95 | 102 | {%- endif -%}
|
96 | 103 | {%- elif datatype.upper().startswith('CHAR') -%} CAST('{{ unknown_value_alt__STRING }}' as {{ datatype }}) as {{ alias }}
|
97 |
| - {%- elif datatype.upper().startswith('DECIMAL') -%} CAST('0' as {{ datatype }}) as {{ alias }} |
98 |
| - {%- elif datatype == 'DOUBLE PRECISION' %} CAST('0' as DOUBLE PRECISION) as {{ alias }} |
| 104 | + {%- elif datatype.upper().startswith('DECIMAL') -%} CAST('{{unknown_value__numeric}}' as {{ datatype }}) as {{ alias }} |
| 105 | + {%- elif datatype == 'DOUBLE PRECISION' %} CAST('{{unknown_value__numeric}}' as DOUBLE PRECISION) as {{ alias }} |
99 | 106 | {%- elif datatype == 'BOOLEAN' %} FALSE as {{ alias }}
|
100 | 107 | {%- elif datatype.upper().startswith('HASHTYPE') -%} CAST('{{ unknown_value__HASHTYPE }}' as {{ datatype }}) as {{ alias }}
|
101 | 108 | {%- else %} CAST(NULL as {{ datatype }}) as {{ alias }}
|
|
122 | 129 | CAST('{{ error_value__STRING }}' as {{ datatype }} ) as {{ alias }}
|
123 | 130 | {%- endif -%}
|
124 | 131 | {%- elif datatype.upper().startswith('CHAR') -%} CAST('{{ error_value_alt__STRING }}' as {{ datatype }}) as {{ alias }}
|
125 |
| - {%- elif datatype.upper().startswith('DECIMAL') -%} CAST('-1' as {{ datatype }}) as {{ alias }} |
126 |
| - {%- elif datatype == 'DOUBLE PRECISION' %} CAST('-1' as DOUBLE PRECISION) as {{ alias }} |
| 132 | + {%- elif datatype.upper().startswith('DECIMAL') -%} CAST('{{error_value__numeric}}' as {{ datatype }}) as {{ alias }} |
| 133 | + {%- elif datatype == 'DOUBLE PRECISION' %} CAST('{{error_value__numeric}}' as DOUBLE PRECISION) as {{ alias }} |
127 | 134 | {%- elif datatype == 'BOOLEAN' %} FALSE as {{ alias }}
|
128 | 135 | {%- elif datatype.upper().startswith('HASHTYPE') -%} CAST('{{ error_value__HASHTYPE }}' as {{ datatype }}) as {{ alias }}
|
129 | 136 | {%- else %} CAST(NULL as {{ datatype }}) as {{ alias }}
|
|
151 | 158 | {%- set end_of_all_times_date = datavault4dbt.end_of_all_times_date() -%}
|
152 | 159 | {%- set date_format = datavault4dbt.date_format() -%}
|
153 | 160 |
|
| 161 | +{%- set unknown_value__numeric = var('datavault4dbt.unknown_value__numeric', '-1') -%} |
| 162 | +{%- set error_value__numeric = var('datavault4dbt.error_value__numeric', '-2') -%} |
| 163 | + |
154 | 164 | {%- set unknown_value__STRING = var('datavault4dbt.unknown_value__STRING', '(unknown)') -%}
|
155 | 165 | {%- set error_value__STRING = var('datavault4dbt.error_value__STRING', '(error)') -%}
|
156 | 166 | {%- set unknown_value_alt__STRING = var('datavault4dbt.unknown_value_alt__STRING', 'u') -%}
|
|
180 | 190 | {%- else -%}
|
181 | 191 | CAST('{{ unknown_value__STRING }}' as {{ datatype }} ) as {{ alias }}
|
182 | 192 | {%- endif -%}
|
183 |
| - {%- elif datatype in ['NUMBER','INT','FLOAT','DECIMAL'] %}0 AS {{ alias }} |
| 193 | + {%- elif datatype in ['NUMBER','INT','FLOAT','DECIMAL'] %}{{unknown_value__numeric}} AS {{ alias }} |
184 | 194 | {%- elif datatype == 'BOOLEAN' %}CAST('FALSE' AS BOOLEAN) AS {{ alias }}
|
185 | 195 | {%- else %}NULL AS {{ alias }}
|
186 | 196 | {% endif %}
|
|
205 | 215 | {%- else -%}
|
206 | 216 | CAST('{{ error_value__STRING }}' as {{ datatype }} ) as {{ alias }}
|
207 | 217 | {%- endif -%}
|
208 |
| - {% elif datatype in ['NUMBER','INT','FLOAT','DECIMAL'] %}-1 AS {{ alias }} |
| 218 | + {% elif datatype in ['NUMBER','INT','FLOAT','DECIMAL'] %}{{error_value__numeric}} AS {{ alias }} |
209 | 219 | {% elif datatype == 'BOOLEAN' %}CAST('FALSE' AS BOOLEAN) AS {{ alias }}
|
210 | 220 | {% else %}NULL AS {{ alias }}
|
211 | 221 | {% endif %}
|
|
226 | 236 |
|
227 | 237 | {%- set beginning_of_all_times_date = datavault4dbt.beginning_of_all_times_date() -%}
|
228 | 238 | {%- set end_of_all_times_date = datavault4dbt.end_of_all_times_date() -%}
|
229 |
| -{%- set date_format = datavault4dbt.date_format() -%} |
| 239 | + |
| 240 | +{%- set unknown_value__numeric = var('datavault4dbt.unknown_value__numeric', '-1') -%} |
| 241 | +{%- set error_value__numeric = var('datavault4dbt.error_value__numeric', '-2') -%} |
230 | 242 |
|
231 | 243 | {%- set unknown_value__STRING = var('datavault4dbt.unknown_value__STRING', '(unknown)') -%}
|
232 | 244 | {%- set error_value__STRING = var('datavault4dbt.error_value__STRING', '(error)') -%}
|
|
263 | 275 | CAST('{{ unknown_value__STRING }}' as {{ datatype }} ) as "{{ alias }}"
|
264 | 276 | {%- endif -%}
|
265 | 277 | {%- elif datatype == 'TINYINT' -%} CAST('254' as {{ datatype }}) as "{{ alias }}"
|
266 |
| - {%- elif 'INT' in datatype or datatype == 'DECIMAL' or datatype == 'NUMERIC' or 'MONEY' in datatype or datatype == 'BIT'%} CAST('-1' as {{ datatype }}) as "{{ alias }}" |
| 278 | + {%- elif 'INT' in datatype or datatype == 'DECIMAL' or datatype == 'NUMERIC' or 'MONEY' in datatype %} CAST('{{unknown_value__numeric}}' as {{ datatype }}) as "{{ alias }}" |
| 279 | + {%- elif datatype == 'BIT' -%} CAST(0 as {{ datatype }}) as "{{ alias }}" |
267 | 280 | {%- elif datatype == 'DATE'-%} CONVERT(DATE, '{{ beginning_of_all_times_date }}') as "{{ alias }}"
|
268 | 281 | {%- elif 'BINARY' in datatype -%}
|
269 | 282 | CAST('{{ unknown_value__HASHTYPE }}' as {{ datatype }}) as "{{ alias }}"
|
|
292 | 305 | CAST('{{ error_value__STRING }}' as {{ datatype }} ) as "{{ alias }}"
|
293 | 306 | {%- endif -%}
|
294 | 307 | {%- elif datatype == 'TINYINT' -%} CAST('255' as {{ datatype }}) as "{{ alias }}"
|
295 |
| - {%- elif 'INT' in datatype or datatype == 'DECIMAL' or datatype == 'NUMERIC' or 'MONEY' in datatype %} CAST('-2' as {{ datatype }}) as "{{ alias }}" |
| 308 | + {%- elif 'INT' in datatype or datatype == 'DECIMAL' or datatype == 'NUMERIC' or 'MONEY' in datatype %} CAST('{{error_value__numeric}}' as {{ datatype }}) as "{{ alias }}" |
296 | 309 | {%- elif datatype == 'BIT' -%} CAST(0 as {{ datatype }}) as "{{ alias }}"
|
297 | 310 | {%- elif datatype == 'DATE'-%} CONVERT(DATE, '{{ end_of_all_times_date }}') as "{{ alias }}"
|
298 | 311 | {%- elif 'BINARY' in datatype -%}
|
|
320 | 333 | {%- set end_of_all_times_date = datavault4dbt.end_of_all_times_date() -%}
|
321 | 334 | {%- set date_format = datavault4dbt.date_format() -%}
|
322 | 335 |
|
| 336 | +{%- set unknown_value__numeric = var('datavault4dbt.unknown_value__numeric', '-1') -%} |
| 337 | +{%- set error_value__numeric = var('datavault4dbt.error_value__numeric', '-2') -%} |
| 338 | + |
323 | 339 | {%- set unknown_value__STRING = var('datavault4dbt.unknown_value__STRING', '(unknown)') -%}
|
324 | 340 | {%- set error_value__STRING = var('datavault4dbt.error_value__STRING', '(error)') -%}
|
325 | 341 | {%- set datatype = datatype | string | upper | trim -%}
|
326 | 342 |
|
327 | 343 | {%- if ghost_record_type == 'unknown' -%}
|
328 | 344 | {%- if 'TIMESTAMP' in datatype %}{{ datavault4dbt.string_to_timestamp(timestamp_format, beginning_of_all_times_date) }} AS {{ alias }}
|
| 345 | + {%- elif datatype == 'TIME WITH TIME ZONE' %} CAST('00:00:01 UTC' as TIMETZ) as {{ alias }} |
| 346 | + {%- elif datatype == 'TIME WITHOUT TIME ZONE' %} CAST('00:00:01' as TIME) as {{ alias }} |
329 | 347 | {%- elif datatype == 'DATE'-%} TO_DATE('{{ beginning_of_all_times_date }}', '{{ date_format }}' ) as {{ alias }}
|
330 |
| - {%- elif datatype == 'TEXT' %} CAST('{{unknown_value__STRING}}' as TEXT) as {{ alias }} |
331 |
| - {%- elif datatype == 'VARCHAR' %} CAST('{{unknown_value__STRING}}' as VARCHAR) as {{ alias }} |
332 |
| - {%- elif datatype == 'INTEGER' %} CAST('0' as INTEGER) as {{ alias }} |
333 |
| - {%- elif datatype == 'DOUBLE PRECISION' %} CAST('0' as DOUBLE PRECISION) as {{ alias }} |
| 348 | + {%- elif 'CHAR' in datatype or datatype == 'TEXT' %} '{{unknown_value__STRING}}' as {{ alias }} |
| 349 | + {%- elif datatype in ['INTEGER', 'INT', 'INT2', 'INT4', 'INT8', 'SMALLINT', 'BIGINT', 'REAL', 'FLOAT4', 'DOUBLE PRECISION', 'DOUBLE', 'FLOAT', 'FLOAT8'] %} CAST({{unknown_value__numeric}} as {{ datatype }}) as {{ alias }} |
| 350 | + {%- elif 'DECIMAL' in datatype or 'NUMERIC' in datatype %} CAST({{unknown_value__numeric}} as {{ datatype }}) as {{ alias }} |
334 | 351 | {%- elif datatype == 'BOOLEAN' %} CAST('FALSE' as BOOLEAN) as {{ alias }}
|
335 | 352 | {%- else %} CAST(NULL as {{ datatype }}) as {{ alias }}
|
336 | 353 | {% endif %}
|
337 |
| -{%- elif ghost_record_type == 'error' -%} |
| 354 | +{%- elif ghost_record_type == 'error' -%} |
338 | 355 | {%- if 'TIMESTAMP' in datatype %}{{ datavault4dbt.string_to_timestamp(timestamp_format, end_of_all_times) }} as {{ alias }}
|
| 356 | + {%- elif datatype == 'TIME WITH TIME ZONE' %} CAST('23:59:59 UTC' as TIMETZ) as {{ alias }} |
| 357 | + {%- elif datatype == 'TIME WITHOUT TIME ZONE' %} CAST('23:59:59' as TIME) as {{ alias }} |
339 | 358 | {%- elif datatype == 'DATE'-%} TO_DATE('{{ end_of_all_times_date }}', '{{ date_format }}' ) as {{ alias }}
|
340 |
| - {%- elif datatype == 'TEXT' %} CAST('{{error_value__STRING}}' as TEXT) as {{ alias }} |
341 |
| - {%- elif datatype == 'VARCHAR' %} CAST('{{error_value__STRING}}' as VARCHAR) as {{ alias }} |
342 |
| - {%- elif datatype == 'INTEGER' %} CAST('-1' as INTEGER) as {{ alias }} |
343 |
| - {%- elif datatype == 'DOUBLE PRECISION' %} CAST('-1' as DOUBLE PRECISION) as {{ alias }} |
| 359 | + {%- elif 'CHAR' in datatype or datatype == 'TEXT' %} '{{error_value__STRING}}' as {{ alias }} |
| 360 | + {%- elif datatype in ['INTEGER', 'INT', 'INT2', 'INT4', 'INT8', 'SMALLINT', 'BIGINT', 'REAL', 'FLOAT4', 'DOUBLE PRECISION', 'DOUBLE', 'FLOAT', 'FLOAT8'] %} CAST({{error_value__numeric}} as {{ datatype }}) as {{ alias }} |
| 361 | + {%- elif 'DECIMAL' in datatype or 'NUMERIC' in datatype %} CAST({{error_value__numeric}} as {{ datatype }}) as {{ alias }} |
344 | 362 | {%- elif datatype == 'BOOLEAN' %} CAST('FALSE' as BOOLEAN) as {{ alias }}
|
345 | 363 | {%- else %} CAST(NULL as {{ datatype }}) as {{ alias }}
|
346 | 364 | {% endif %}
|
|
362 | 380 | {%- set end_of_all_times_date = datavault4dbt.end_of_all_times_date() -%}
|
363 | 381 | {%- set date_format = datavault4dbt.date_format() -%}
|
364 | 382 |
|
| 383 | +{%- set unknown_value__numeric = var('datavault4dbt.unknown_value__numeric', -1) -%} |
| 384 | +{%- set error_value__numeric = var('datavault4dbt.error_value__numeric', -2) -%} |
| 385 | + |
365 | 386 | {%- set unknown_value__STRING = var('datavault4dbt.unknown_value__STRING', '(unknown)') -%}
|
366 | 387 | {%- set error_value__STRING = var('datavault4dbt.error_value__STRING', '(error)') -%}
|
367 | 388 |
|
|
379 | 400 | {%- elif datatype == 'TIME' %} CAST('00:00:01' as TIME) as {{ alias }}
|
380 | 401 | {%- elif datatype == 'DATE'-%} TO_DATE('{{ beginning_of_all_times_date }}', '{{ date_format }}' ) as {{ alias }}
|
381 | 402 | {%- elif 'CHAR' in datatype or datatype == 'TEXT' %} '{{unknown_value__STRING}}' as {{ alias }}
|
382 |
| - {%- elif datatype in ['INTEGER', 'INT', 'INT2', 'INT4', 'INT8', 'SMALLINT', 'BIGINT', 'REAL', 'FLOAT4', 'DOUBLE PRECISION', 'DOUBLE', 'FLOAT', 'FLOAT8'] %} CAST(0 as {{ datatype }}) as {{ alias }} |
383 |
| - {%- elif 'DECIMAL' in datatype or 'NUMERIC' in datatype %} CAST(0 as {{ datatype }}) as {{ alias }} |
| 403 | + {%- elif datatype in ['INTEGER', 'INT', 'INT2', 'INT4', 'INT8', 'SMALLINT', 'BIGINT', 'REAL', 'FLOAT4', 'DOUBLE PRECISION', 'DOUBLE', 'FLOAT', 'FLOAT8'] %} CAST({{unknown_value__numeric}} as {{ datatype }}) as {{ alias }} |
| 404 | + {%- elif 'DECIMAL' in datatype or 'NUMERIC' in datatype %} CAST({{unknown_value__numeric}} as {{ datatype }}) as {{ alias }} |
384 | 405 | {%- elif datatype in ['BOOLEAN', 'BOOL'] %} CAST('FALSE' as BOOLEAN) as {{ alias }}
|
385 | 406 | {%- elif datatype in ['VARBYTE', 'VARBINARY', 'BINARY VARYING'] %} CAST('{{ unknown_value__HASHTYPE }}' as {{ datatype }}) as {{ alias }}
|
386 | 407 | {%- elif datatype == 'GEOMETRY' %} CAST(ST_POINT(0, 90) as {{ datatype }}) as {{ alias }}
|
|
392 | 413 | {%- elif datatype == 'TIME' %} CAST('23:59:59' as TIME) as {{ alias }}
|
393 | 414 | {%- elif datatype == 'DATE'-%} TO_DATE('{{ end_of_all_times_date }}', '{{ date_format }}' ) as {{ alias }}
|
394 | 415 | {%- elif 'CHAR' in datatype or datatype == 'TEXT' %} '{{error_value__STRING}}' as {{ alias }}
|
395 |
| - {%- elif datatype in ['INTEGER', 'INT', 'INT2', 'INT4', 'INT8', 'SMALLINT', 'BIGINT', 'REAL', 'FLOAT4', 'DOUBLE PRECISION', 'DOUBLE', 'FLOAT', 'FLOAT8'] %} CAST(-1 as {{ datatype }}) as {{ alias }} |
396 |
| - {%- elif 'DECIMAL' in datatype or 'NUMERIC' in datatype %} CAST(-1 as {{ datatype }}) as {{ alias }} |
| 416 | + {%- elif datatype in ['INTEGER', 'INT', 'INT2', 'INT4', 'INT8', 'SMALLINT', 'BIGINT', 'REAL', 'FLOAT4', 'DOUBLE PRECISION', 'DOUBLE', 'FLOAT', 'FLOAT8'] %} CAST({{error_value__numeric}} as {{ datatype }}) as {{ alias }} |
| 417 | + {%- elif 'DECIMAL' in datatype or 'NUMERIC' in datatype %} CAST({{error_value__numeric}} as {{ datatype }}) as {{ alias }} |
397 | 418 | {%- elif datatype in ['BOOLEAN', 'BOOL'] %} CAST('FALSE' as BOOLEAN) as {{ alias }}
|
398 | 419 | {%- elif datatype in ['VARBYTE', 'VARBINARY', 'BINARY VARYING'] %} CAST('{{ error_value__HASHTYPE }}' as {{ datatype }}) as {{ alias }}
|
399 | 420 | {%- elif datatype == 'GEOMETRY' %} CAST(ST_POINT(0, 90) as {{ datatype }}) as {{ alias }}
|
|
0 commit comments