macros/cross_db_shim/duckdb_shims.sql (18 lines of code) (raw):
{% macro duckdb__split_part(string_text, delimiter_text, part_number) -%}
str_split({{string_text}}, {{delimiter_text}})[{{part_number}}]
{%- endmacro %}
{% macro duckdb__listagg(measure, delimiter_text, order_by_clause, limit_num) -%}
{#
This is not the full support for listagg on DuckDB but it allows tests to pass/fail for this package
- order_by_clause does not work, so we need to sort the CTE before calling listagg
- support for limit_num was not added
#}
{% if limit_num -%}
{%- do exceptions.raise_compiler_error("listagg on DuckDB doesn't support limit_num") -%}
{%- endif %}
string_agg(
{{ measure }}
, {{ delimiter_text }}
{{ order_by_clause }}
)
{%- endmacro %}