Skip to content

Commit

Permalink
Merge pull request #1013 from Mause/c-api-format
Browse files Browse the repository at this point in the history
Fix C API format
  • Loading branch information
Mause committed Aug 19, 2023
2 parents c3eef89 + e098cdd commit 1ac0538
Show file tree
Hide file tree
Showing 7 changed files with 94 additions and 25 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,16 @@ jobs:
rm -rf docs/archive
- uses: errata-ai/vale-action@reviewdog
with:
files: |
docs/
_posts/
dev/
files: 'docs/,_posts/,dev/'
separator: ","
filter_mode: added
fail_on_error: false
- uses: articulate/actions-markdownlint@main
with:
config: .markdownlint.jsonc
files: 'docs/**/*.md'
# TODO:
# files: 'docs/**/*.md _posts/*.md dev/*.md'

python:
runs-on: ubuntu-latest
Expand Down
49 changes: 48 additions & 1 deletion docs/api/c/api.md

Large diffs are not rendered by default.

8 changes: 6 additions & 2 deletions docs/api/c/data_chunk.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@ The primary manner of interfacing with data chunks is by obtaining the internal
<span class="kt">idx_t</span> <span class="nf"><a href="#duckdb_data_chunk_get_size">duckdb_data_chunk_get_size</a></span>(<span class="kt">duckdb_data_chunk</span> <span class="k">chunk</span>);
<span class="kt">void</span> <span class="nf"><a href="#duckdb_data_chunk_set_size">duckdb_data_chunk_set_size</a></span>(<span class="kt">duckdb_data_chunk</span> <span class="k">chunk</span>, <span class="kt">idx_t</span> <span class="k">size</span>);
</code></pre></div></div>
#### Vector Interface

### Vector Interface

<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_logical_type</span> <span class="nf"><a href="#duckdb_vector_get_column_type">duckdb_vector_get_column_type</a></span>(<span class="kt">duckdb_vector</span> <span class="k">vector</span>);
<span class="kt">void</span> *<span class="nf"><a href="#duckdb_vector_get_data">duckdb_vector_get_data</a></span>(<span class="kt">duckdb_vector</span> <span class="k">vector</span>);
<span class="kt">uint64_t</span> *<span class="nf"><a href="#duckdb_vector_get_validity">duckdb_vector_get_validity</a></span>(<span class="kt">duckdb_vector</span> <span class="k">vector</span>);
Expand All @@ -34,7 +36,9 @@ The primary manner of interfacing with data chunks is by obtaining the internal
<span class="kt">duckdb_state</span> <span class="nf"><a href="#duckdb_list_vector_reserve">duckdb_list_vector_reserve</a></span>(<span class="kt">duckdb_vector</span> <span class="k">vector</span>, <span class="kt">idx_t</span> <span class="k">required_capacity</span>);
<span class="kt">duckdb_vector</span> <span class="nf"><a href="#duckdb_struct_vector_get_child">duckdb_struct_vector_get_child</a></span>(<span class="kt">duckdb_vector</span> <span class="k">vector</span>, <span class="kt">idx_t</span> <span class="k">index</span>);
</code></pre></div></div>
#### Validity Mask Functions

### Validity Mask Functions

<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">bool</span> <span class="nf"><a href="#duckdb_validity_row_is_valid">duckdb_validity_row_is_valid</a></span>(<span class="kt">uint64_t</span> *<span class="k">validity</span>, <span class="kt">idx_t</span> <span class="k">row</span>);
<span class="kt">void</span> <span class="nf"><a href="#duckdb_validity_set_row_validity">duckdb_validity_set_row_validity</a></span>(<span class="kt">uint64_t</span> *<span class="k">validity</span>, <span class="kt">idx_t</span> <span class="k">row</span>, <span class="kt">bool</span> <span class="k">valid</span>);
<span class="kt">void</span> <span class="nf"><a href="#duckdb_validity_set_row_invalid">duckdb_validity_set_row_invalid</a></span>(<span class="kt">uint64_t</span> *<span class="k">validity</span>, <span class="kt">idx_t</span> <span class="k">row</span>);
Expand Down
12 changes: 9 additions & 3 deletions docs/api/c/table_functions.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@ The table function API can be used to define a table function that can then be c
<span class="kt">void</span> <span class="nf"><a href="#duckdb_table_function_supports_projection_pushdown">duckdb_table_function_supports_projection_pushdown</a></span>(<span class="kt">duckdb_table_function</span> <span class="k">table_function</span>, <span class="kt">bool</span> <span class="k">pushdown</span>);
<span class="kt">duckdb_state</span> <span class="nf"><a href="#duckdb_register_table_function">duckdb_register_table_function</a></span>(<span class="kt">duckdb_connection</span> <span class="k">con</span>, <span class="kt">duckdb_table_function</span> <span class="k">function</span>);
</code></pre></div></div>
#### Table Function Bind

### Table Function Bind

<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> *<span class="nf"><a href="#duckdb_bind_get_extra_info">duckdb_bind_get_extra_info</a></span>(<span class="kt">duckdb_bind_info</span> <span class="k">info</span>);
<span class="kt">void</span> <span class="nf"><a href="#duckdb_bind_add_result_column">duckdb_bind_add_result_column</a></span>(<span class="kt">duckdb_bind_info</span> <span class="k">info</span>, <span class="kt">const</span> <span class="kt">char</span> *<span class="k">name</span>, <span class="kt">duckdb_logical_type</span> <span class="k">type</span>);
<span class="kt">idx_t</span> <span class="nf"><a href="#duckdb_bind_get_parameter_count">duckdb_bind_get_parameter_count</a></span>(<span class="kt">duckdb_bind_info</span> <span class="k">info</span>);
Expand All @@ -30,7 +32,9 @@ The table function API can be used to define a table function that can then be c
<span class="kt">void</span> <span class="nf"><a href="#duckdb_bind_set_cardinality">duckdb_bind_set_cardinality</a></span>(<span class="kt">duckdb_bind_info</span> <span class="k">info</span>, <span class="kt">idx_t</span> <span class="k">cardinality</span>, <span class="kt">bool</span> <span class="k">is_exact</span>);
<span class="kt">void</span> <span class="nf"><a href="#duckdb_bind_set_error">duckdb_bind_set_error</a></span>(<span class="kt">duckdb_bind_info</span> <span class="k">info</span>, <span class="kt">const</span> <span class="kt">char</span> *<span class="k">error</span>);
</code></pre></div></div>
#### Table Function Init

### Table Function Init

<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> *<span class="nf"><a href="#duckdb_init_get_extra_info">duckdb_init_get_extra_info</a></span>(<span class="kt">duckdb_init_info</span> <span class="k">info</span>);
<span class="kt">void</span> *<span class="nf"><a href="#duckdb_init_get_bind_data">duckdb_init_get_bind_data</a></span>(<span class="kt">duckdb_init_info</span> <span class="k">info</span>);
<span class="kt">void</span> <span class="nf"><a href="#duckdb_init_set_init_data">duckdb_init_set_init_data</a></span>(<span class="kt">duckdb_init_info</span> <span class="k">info</span>, <span class="kt">void</span> *<span class="k">init_data</span>, <span class="k">duckdb_delete_callback_t</span> <span class="k">destroy</span>);
Expand All @@ -39,7 +43,9 @@ The table function API can be used to define a table function that can then be c
<span class="kt">void</span> <span class="nf"><a href="#duckdb_init_set_max_threads">duckdb_init_set_max_threads</a></span>(<span class="kt">duckdb_init_info</span> <span class="k">info</span>, <span class="kt">idx_t</span> <span class="k">max_threads</span>);
<span class="kt">void</span> <span class="nf"><a href="#duckdb_init_set_error">duckdb_init_set_error</a></span>(<span class="kt">duckdb_init_info</span> <span class="k">info</span>, <span class="kt">const</span> <span class="kt">char</span> *<span class="k">error</span>);
</code></pre></div></div>
#### Table Function

### Table Function

<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> *<span class="nf"><a href="#duckdb_function_get_extra_info">duckdb_function_get_extra_info</a></span>(<span class="kt">duckdb_function_info</span> <span class="k">info</span>);
<span class="kt">void</span> *<span class="nf"><a href="#duckdb_function_get_bind_data">duckdb_function_get_bind_data</a></span>(<span class="kt">duckdb_function_info</span> <span class="k">info</span>);
<span class="kt">void</span> *<span class="nf"><a href="#duckdb_function_get_init_data">duckdb_function_get_init_data</a></span>(<span class="kt">duckdb_function_info</span> <span class="k">info</span>);
Expand Down
16 changes: 12 additions & 4 deletions docs/api/c/types.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,23 +95,31 @@ For more information about data chunks, see the [documentation on data chunks](d
<span class="kt">duckdb_blob</span> <span class="nf"><a href="#duckdb_value_blob">duckdb_value_blob</a></span>(<span class="kt">duckdb_result</span> *<span class="k">result</span>, <span class="kt">idx_t</span> <span class="k">col</span>, <span class="kt">idx_t</span> <span class="k">row</span>);
<span class="kt">bool</span> <span class="nf"><a href="#duckdb_value_is_null">duckdb_value_is_null</a></span>(<span class="kt">duckdb_result</span> *<span class="k">result</span>, <span class="kt">idx_t</span> <span class="k">col</span>, <span class="kt">idx_t</span> <span class="k">row</span>);
</code></pre></div></div>
#### Date/Time/Timestamp Helpers

### Date/Time/Timestamp Helpers

<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_date_struct</span> <span class="nf"><a href="#duckdb_from_date">duckdb_from_date</a></span>(<span class="kt">duckdb_date</span> <span class="k">date</span>);
<span class="kt">duckdb_date</span> <span class="nf"><a href="#duckdb_to_date">duckdb_to_date</a></span>(<span class="kt">duckdb_date_struct</span> <span class="k">date</span>);
<span class="kt">duckdb_time_struct</span> <span class="nf"><a href="#duckdb_from_time">duckdb_from_time</a></span>(<span class="kt">duckdb_time</span> <span class="k">time</span>);
<span class="kt">duckdb_time</span> <span class="nf"><a href="#duckdb_to_time">duckdb_to_time</a></span>(<span class="kt">duckdb_time_struct</span> <span class="k">time</span>);
<span class="kt">duckdb_timestamp_struct</span> <span class="nf"><a href="#duckdb_from_timestamp">duckdb_from_timestamp</a></span>(<span class="kt">duckdb_timestamp</span> <span class="k">ts</span>);
<span class="kt">duckdb_timestamp</span> <span class="nf"><a href="#duckdb_to_timestamp">duckdb_to_timestamp</a></span>(<span class="kt">duckdb_timestamp_struct</span> <span class="k">ts</span>);
</code></pre></div></div>
#### Hugeint Helpers

### Hugeint Helpers

<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">double</span> <span class="nf"><a href="#duckdb_hugeint_to_double">duckdb_hugeint_to_double</a></span>(<span class="kt">duckdb_hugeint</span> <span class="k">val</span>);
<span class="kt">duckdb_hugeint</span> <span class="nf"><a href="#duckdb_double_to_hugeint">duckdb_double_to_hugeint</a></span>(<span class="kt">double</span> <span class="k">val</span>);
<span class="k">duckdb_decimal</span> <span class="nf"><a href="#duckdb_double_to_decimal">duckdb_double_to_decimal</a></span>(<span class="kt">double</span> <span class="k">val</span>, <span class="kt">uint8_t</span> <span class="k">width</span>, <span class="kt">uint8_t</span> <span class="k">scale</span>);
</code></pre></div></div>
#### Decimal Helpers

### Decimal Helpers

<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">double</span> <span class="nf"><a href="#duckdb_decimal_to_double">duckdb_decimal_to_double</a></span>(<span class="k">duckdb_decimal</span> <span class="k">val</span>);
</code></pre></div></div>
#### Logical Type Interface

### Logical Type Interface

<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_logical_type</span> <span class="nf"><a href="#duckdb_create_logical_type">duckdb_create_logical_type</a></span>(<span class="k">duckdb_type</span> <span class="k">type</span>);
<span class="kt">duckdb_logical_type</span> <span class="nf"><a href="#duckdb_create_list_type">duckdb_create_list_type</a></span>(<span class="kt">duckdb_logical_type</span> <span class="k">type</span>);
<span class="kt">duckdb_logical_type</span> <span class="nf"><a href="#duckdb_create_map_type">duckdb_create_map_type</a></span>(<span class="kt">duckdb_logical_type</span> <span class="k">key_type</span>, <span class="kt">duckdb_logical_type</span> <span class="k">value_type</span>);
Expand Down
22 changes: 13 additions & 9 deletions scripts/generate_docs.py
Original file line number Diff line number Diff line change
Expand Up @@ -191,11 +191,15 @@ def add_function(function_prototype, documentation, group):
function_name = extract_function_name(function_prototype_str)
docs_str = '\n'.join(documentation) + '\n'
(docs_str, parameters) = extract_parameters(docs_str)
docs_string = ''
docs_string += f'### `{function_name}`\n'
docs_string = '\n'
docs_string += f'### `{function_name}`\n\n'
docs_string += '---\n'
docs_string += docs_str.replace('e.g. ', 'e.g., ').replace('i.e. ', 'i.e., ')
docs_string += '#### Syntax\n'
docs_string += (
docs_str.replace('e.g. ', 'e.g., ').replace('i.e. ', 'i.e., ').strip() + '\n'
if docs_str
else ''
)
docs_string += '\n#### Syntax\n\n'
docs_string += '---\n'
docs_string += quick_docs_start()
docs_string += (
Expand All @@ -204,7 +208,7 @@ def add_function(function_prototype, documentation, group):
)
docs_string += quick_docs_end()
if len(parameters) > 0:
docs_string += '#### Parameters\n'
docs_string += '\n#### Parameters\n\n'
docs_string += '---\n'
for parameter_pair in parameters:
docs_string += "* `" + parameter_pair[0] + '`\n\n'
Expand Down Expand Up @@ -273,7 +277,7 @@ def replace_docs_in_file(file_name, group_name, docs_string_for_this_group):
text = (
text.rsplit(api_ref_split, 1)[0]
+ api_ref_split
+ '\n'
+ '\n\n'
+ docs_string_for_this_group
)
found = True
Expand Down Expand Up @@ -303,7 +307,7 @@ def replace_docs_in_file(file_name, group_name, docs_string_for_this_group):
else:
quick_docs = file_docs[file_name][0]
docs_string_for_this_group = file_docs[file_name][1]
quick_docs += '#### ' + group_name + '\n'
quick_docs += '\n### ' + group_name + '\n\n'
quick_docs += quick_docs_start()
for entry in group_docs[group_name]:
quick_docs += entry[1] + '\n'
Expand All @@ -324,8 +328,8 @@ def replace_docs_in_file(file_name, group_name, docs_string_for_this_group):
group_name = entry[1]
if group_name is not current_group_name:
if current_group_name is not None:
total_quick_docs += quick_docs_end()
total_quick_docs += '### **' + group_name + '**\n'
total_quick_docs += quick_docs_end() + '\n'
total_quick_docs += '### **' + group_name + '**\n\n'

total_quick_docs += quick_docs_start()
current_group_name = group_name
Expand Down
4 changes: 2 additions & 2 deletions scripts/lint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ while getopts "f" opt; do
esac
done

npx markdownlint-cli docs/ dev/ _posts/ --config .markdownlint.jsonc --ignore docs/archive $fix
npx markdownlint-cli docs/ dev/ _posts/ --config .markdownlint.jsonc --ignore docs/archive $fix || echo 'mdlit failed'

black scripts --skip-string-normalization $check
black scripts --skip-string-normalization $check || echo 'black failed'

vale sync
vale docs/ dev/ _posts/ --glob "!docs/archive/*"
Expand Down

0 comments on commit 1ac0538

Please sign in to comment.