123456789101112131415161718192021222324252627 |
- -- Copyright Materialize, Inc. and contributors. All rights reserved.
- --
- -- Licensed under the Apache License, Version 2.0 (the "License");
- -- you may not use this file except in compliance with the License.
- -- You may obtain a copy of the License in the LICENSE file at the
- -- root of this repository, or online at
- --
- -- http://www.apache.org/licenses/LICENSE-2.0
- --
- -- Unless required by applicable law or agreed to in writing, software
- -- distributed under the License is distributed on an "AS IS" BASIS,
- -- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- -- See the License for the specific language governing permissions and
- -- limitations under the License.
- {% macro materialize__cast(expression, data_type) -%}
- {#-- Handle types that don't support cast(NULL as type) --#}
- {%- if expression.strip().lower() == "null" and data_type.strip().lower() == "map" -%}
- NULL::map[text => text]
- {%- elif expression.strip().lower() == "null" and data_type.strip().lower() == "list" -%}
- NULL::text list
- {%- elif expression.strip().lower() == "null" and data_type.strip().lower() == "record" -%}
- (SELECT row() WHERE false)
- {%- else -%}
- cast({{ expression }} as {{ data_type }})
- {%- endif -%}
- {%- endmacro %}
|