Skip to content

docgen: add execute_stmt diagram with inline parameter demo#35

Open
ebembi-crdb wants to merge 1 commit into
masterfrom
demo/add-execute-stmt-diagram
Open

docgen: add execute_stmt diagram with inline parameter demo#35
ebembi-crdb wants to merge 1 commit into
masterfrom
demo/add-execute-stmt-diagram

Conversation

@ebembi-crdb
Copy link
Copy Markdown
Owner

Summary

This PR demonstrates adding a new SQL diagram with the inline parameter to surface nested grammar elements.

What this PR does

  1. Adds execute_stmt diagram to diagrams.go
  2. Uses inline parameter to surface execute_param_clause and expr_list contents
  3. Updates Bazel file (pkg/gen/diagrams.bzl) for the new diagram

The inline parameter explained

From the SQL grammar, execute_stmt is defined as:

EXECUTE name execute_param_clause

Where execute_param_clause is:

'(' expr_list ')' | /* EMPTY */

Without inline: The diagram shows execute_param_clause as an opaque box
With inline: The diagram surfaces the contents, showing the optional parenthesized expression list

{
    name:    "execute_stmt",
    inline:  []string{"execute_param_clause", "expr_list"},  // <-- surfaces these
    replace: map[string]string{"table_alias_name": "name"},
    unlink:  []string{"name"},
}

Bazel file requirements

When adding a new diagram, these files need entries:

  • docs/generated/sql/bnf/BUILD.bazel - ✓ (already existed)
  • pkg/gen/bnf.bzl - ✓ (already existed)
  • pkg/gen/diagrams.bzl - added execute_stmt.html
  • pkg/gen/docs.bzl - ✓ (already existed)

Test plan

  • Workflow completes successfully
  • PR comment shows the new execute_stmt diagram preview
  • Diagram displays inlined execute_param_clause contents

Add a new `execute_stmt` diagram to demonstrate:
1. How to add a new diagram to diagrams.go
2. How the `inline` parameter surfaces nested grammar elements
3. The required Bazel file updates for new diagrams

The execute_stmt diagram uses:
- `inline: []string{"execute_param_clause", "expr_list"}` to surface the
  parameter clause contents instead of just showing the element name
- `replace` to rename `table_alias_name` to the more readable `name`
- `unlink` to remove the hyperlink from `name`

Bazel files updated:
- pkg/gen/diagrams.bzl (added execute_stmt.html)

Note: BUILD.bazel, bnf.bzl, and docs.bzl already had execute_stmt entries.

Release note: None

Epic: None
@github-actions
Copy link
Copy Markdown

SQL Diagram Generation Report

Validation Passed

🔄 Diagram changes detected
A PR has been opened to sync these changes: ebembi-crdb/generated-diagrams#16

Changed Diagram Previews

execute

execute

Showing 1 changed diagram(s). Only diagrams that differ from master are shown.

SKIP DOC Warnings (click to expand)

The following grammar rules are suppressed from documentation:

The following grammar rules are suppressed with SKIP DOC:
1986:| alter_virtual_cluster_stmt   /* SKIP DOC */
2579:    /* SKIP DOC */
2591:    /* SKIP DOC */
2716:    /* SKIP DOC */
2733:    /* SKIP DOC */
3044:    /* SKIP DOC */
3050:    /* SKIP DOC */
3102:    /* SKIP DOC */
3110:    /* SKIP DOC */
3262:  SET CYCLE                        { /* SKIP DOC */
3643:    /* SKIP DOC */
3664:  INCLUDE_ALL_SECONDARY_TENANTS { /* SKIP DOC */ }
4245:  TENANT  { /* SKIP DOC */ }
4249:  TENANT_NAME { /* SKIP DOC */ }
4840:    /* SKIP DOC */
4983:  /* SKIP DOC */
5022:    /* SKIP DOC */
5029:    /* SKIP DOC */
5037:    /* SKIP DOC */
5047:    /* SKIP DOC */
5059:  TENANT { /* SKIP DOC */ }
6251:    /* SKIP DOC */
6289:    /* SKIP DOC */
6366:    /* SKIP DOC */
6489:    /* SKIP DOC */
6775:   /* SKIP DOC */
6784:    /* SKIP DOC */
7206:    /* SKIP DOC */
7217:    /* SKIP DOC */
7222:    /* SKIP DOC */
7227:    /* SKIP DOC */
7246:    /* SKIP DOC */
7251:    /* SKIP DOC */
7258:    /* SKIP DOC */
7263:    /* SKIP DOC */
7268:    /* SKIP DOC */
7273:    /* SKIP DOC */
7280:    /* SKIP DOC */
7287:    /* SKIP DOC */
7302:		/* SKIP DOC */
7312:    /* SKIP DOC */
7317:    /* SKIP DOC */
7324:    /* SKIP DOC */
7343:    /* SKIP DOC */
7376:    /* SKIP DOC */
7834:| set_exprs_internal   { /* SKIP DOC */ }
8139:    /* SKIP DOC */
8168:    /* SKIP DOC */
8269:    /* SKIP DOC */
8278:    /* SKIP DOC */
8287:    /* SKIP DOC */
8347:    /* SKIP DOC */
8354:    /* SKIP DOC */
8364:    /* SKIP DOC */
8369:    /* SKIP DOC */
8394:    /* SKIP DOC */
8400:    /* SKIP DOC */
8477:    /* SKIP DOC */
8485:    /* SKIP DOC */
8490:		/* SKIP DOC */
8499:    /* SKIP DOC */
8520:    /* SKIP DOC */
8525:    /* SKIP DOC */
8934:    /* SKIP DOC */
8939:    /* SKIP DOC */
8944:    /* SKIP DOC */
8949:    /* SKIP DOC */
8954:    /* SKIP DOC */
8985:| TRACING { /* SKIP DOC */ }
8988:    /* SKIP DOC */
9030:    /* SKIP DOC */
9051:    /* SKIP DOC */
9104:    /* SKIP DOC */
9110:    /* SKIP DOC */
9116:		/* SKIP DOC */
9122:		/* SKIP DOC */
9139:    /* SKIP DOC */
9144:    /* SKIP DOC */
9149:    /* SKIP DOC */
9195: /* SKIP DOC */
9291:    /* SKIP DOC */
9296:    /* SKIP DOC */
9795:    /* SKIP DOC */
9960:    /* SKIP DOC */
9968:    /* SKIP DOC */
9981:    /* SKIP DOC */
9991:   /* SKIP DOC */
10024:    /* SKIP DOC */
10029:    /* SKIP DOC */
10034:    /* SKIP DOC */
10074:    /* SKIP DOC */
10083:    /* SKIP DOC */
10092:    /* SKIP DOC */
10097:    /* SKIP DOC */
10102:    /* SKIP DOC */
10107:    /* SKIP DOC */
10112:    /* SKIP DOC */
10121:    /* SKIP DOC */
10131:    /* SKIP DOC */
10307:| for_with_lookahead_variants { /* SKIP DOC */ }
10314:| FOR_JOB { /* SKIP DOC */ }
10509:    /* SKIP DOC */
10518:    /* SKIP DOC */
10883:    /* SKIP DOC */
10892:    /* SKIP DOC */
11201:    /* SKIP DOC */
11217:    /* SKIP DOC */
11307:| WITH DATA    { /* SKIP DOC */ /* This is the default */ }
11698:    /* SKIP DOC */
12205:| CYCLE                        { /* SKIP DOC */
12261:    /* SKIP DOC */
12342:    /* SKIP DOC */
12365:    /* SKIP DOC */
12643:    /* SKIP DOC */
12649:    /* SKIP DOC */
12654:    /* SKIP DOC */
12659:    /* SKIP DOC */
13683:| abort_stmt               /* SKIP DOC */
14013:    /* SKIP DOC */
14028:    /* SKIP DOC */
14174:    /* SKIP DOC */
14675:    /* SKIP DOC */
15098:    /* SKIP DOC */
15103:    /* SKIP DOC */
15108:    /* SKIP DOC */
15130:    /* SKIP DOC */
15135:    /* SKIP DOC */
15148:    /* SKIP DOC */
15153:    /* SKIP DOC */
15228:    /* SKIP DOC */
15314:    /* SKIP DOC */
15643:    /* SKIP DOC */
15715:    /* SKIP DOC */
15744:    /* SKIP DOC */

This comment was generated by the SQL Diagram CI workflow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant