Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 15 additions & 1 deletion adbc_drivers_validation/generate_documentation.py
Original file line number Diff line number Diff line change
Expand Up @@ -386,6 +386,20 @@ def render(
**dataclasses.asdict(report.versions[default_vendor_version]),
"driver": report.driver,
}

# Combine bind and ingest into a single type_bind_ingest table
# TODO: This could be factored up into add_table_entry or something but that
# method is built for a two-column table not three. Or this could be done
# entirely with SQL.
#
# This makes a list with 3-tuple items: (arrow_type, bind_type, ingest_type)
bind_dict = dict(template_vars["type_bind"])
ingest_dict = dict(template_vars["type_ingest"])
template_vars["type_bind_ingest"] = [
(k, bind_dict.get(k), ingest_dict.get(k))
for k in set(bind_dict) | set(ingest_dict)
]

types = render_part(env.get_template("types.md"), template_vars)
features = render_part(env.get_template("features.md"), template_vars)
footnotes = render_part(
Expand All @@ -405,7 +419,7 @@ def render(
heading = f"{{badge-primary}}`Driver Version|{report.driver_version}`"
else:
ref = f"driver-{driver}-{report.driver_version}"
heading = f"[{{badge-primary}}`Driver Version|{report.driver_version}`]({ref})"
heading = f'[{{badge-primary}}`Driver Version|{report.driver_version}`](#{ref} "Permalink")'

# TODO: Improve this display for drivers tested with many versions. We
# probably want to show one badge with a range rather than a badge for every
Expand Down
59 changes: 24 additions & 35 deletions adbc_drivers_validation/templates/types.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@
limitations under the License.
#}

#### SELECT (SQL to Arrow) type mapping
#### {{quirks.vendor_name}} to Arrow

:::{list-table}
:header-rows: 1
:width: 100%
:widths: 1 3

* - SQL Type
* - {{quirks.vendor_name}} Type
- Arrow Type

{%- for sql_type, arrow_type in type_select|sort %}
Expand All @@ -31,36 +31,25 @@
{{ "" }}
:::

#### Bind parameter (Arrow to SQL) type mapping

:::{list-table}
:header-rows: 1
:width: 100%
:widths: 1 3

* - Arrow Type
- SQL Type

{%- for arrow_type, sql_type in type_bind|sort %}
* - {{ arrow_type }}
- {{ sql_type }}
{%- endfor -%}
{{ "" }}
:::

#### Bulk ingest (Arrow to SQL) type mapping

:::{list-table}
:header-rows: 1
:width: 100%
:widths: 1 3

* - Arrow Type
- SQL Type

{%- for arrow_type, sql_type in type_ingest|sort %}
* - {{ arrow_type }}
- {{ sql_type }}
{%- endfor -%}
{{ "" }}
:::
#### Arrow to {{quirks.vendor_name}}

<table class="docutils data align-default" style="width: 100%;">
<tr>
<th rowspan="2" style="text-align: center; vertical-align: middle;">Arrrow Type</th>
<th colspan="2" style="text-align: center;">{{quirks.vendor_name}} Type</th>
</tr>
<tr>
<th style="text-align: center;">Bind</th>
<th style="text-align: center;">Ingest</th>
</tr>
{%- for arrow_type, sql_type_bind, sql_type_ingest in type_bind_ingest|sort %}
<tr>
<td>{{ arrow_type }}</td>
{%- if sql_type_bind == sql_type_ingest %}
<td colspan="2" style="text-align: center;">{{ sql_type_bind }}</td>
{% else %}
<td style="text-align: center;">{{ sql_type_bind }}</td><td style="text-align: center;">{{ sql_type_ingest }}</td>
{% endif %}
</tr>
{%- endfor %}
</table>
Loading