ARROW-15721: [Docs][FlightRPC] Add Flight/Flight SQL to subprojects - #12573

Closed
lidavidm wants to merge 5 commits into
apache:masterfrom
lidavidm:arrow-15721
Closed

ARROW-15721: [Docs][FlightRPC] Add Flight/Flight SQL to subprojects#12573
lidavidm wants to merge 5 commits into
apache:masterfrom
lidavidm:arrow-15721

Conversation

@lidavidm

Copy link
Copy Markdown
Member

Adds a Flight SQL documentation page that we can link to from the website.

@github-actions

Copy link
Copy Markdown

@lidavidm

Copy link
Copy Markdown
MemberAuthor

I would like to add sequence diagrams, how do we feel about something like sphinxcontrib-mermaid?

@lidavidm

Copy link
Copy Markdown
MemberAuthor

CC @jduo if you'd like to take a look

Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
Generally, a database will implement the RPC methods according to the
specification, but does not need to implement a client-side driver. A
database client can use the provided Flight SQL client to interact
with any database that supports the necessary endpoints.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's mention that Flight SQL clients decorate existing Flight client classes to add methods corresponding to the new RPC calls.

lidavidmand others added 2 commits March 7, 2022 08:04
@lidavidm

Copy link
Copy Markdown
MemberAuthor

Thanks for the suggestions!

@pitrou

Copy link
Copy Markdown
Member

I would like to add sequence diagrams, how do we feel about something like sphinxcontrib-mermaid?

Looks interesting. @jorisvandenbossche What do you think?

@pitroupitrou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice addition, thank you.

Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
``CommandPreparedStatementQuery``
Execute a previously created prepared statement and get the results.

When used with DoPut: binds parameter values to the prepared statement.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So one must call first DoPut then GetFlightInfo to execute a query with parameters? Wouldn't it be nicer to be able to use DoExchange for that?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe this was considered during the initial discussion but was rejected; @jduo do you remember why?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, it was due to output parameters potentially changing the schema mid-stream. #9368 (comment)

Create a new prepared statement for a SQL query.

``CommandPreparedStatementQuery``
Execute a previously created prepared statement and get the results.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this also close the prepared statement or can it be reused multiple times?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is reusable (else, you don't save much from having a prepared statement).

@lidavidmlidavidm changed the title ARROW-15721: [Docs][FlightSQL] Add Flight/Flight SQL to subprojectsARROW-15721: [Docs][FlightRPC] Add Flight/Flight SQL to subprojectsMar 8, 2022
@lidavidm

Copy link
Copy Markdown
MemberAuthor

@jduo@pitrou any other comments here? I think we can use ARROW-14698 to expand the documentation once this lands

All of these commands can be used with the GetFlightInfo and GetSchema
RPC methods. The Protobuf request message should be packed into a
google.protobuf.Any message, then serialized and packed as the ``cmd``
field in a CMD-type FlightDescriptor.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the record, would there be an easy way to cross-reference the table definitions in the Flight protobuf file (such as FlightDescriptor here)? I guess not, but just asking.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, we would probably need to have Sphinx index the Protobuf file somehow and then use Sphinx's cross-reference support. Unfortunately there doesn't seem to be such integration from a quick glance (and if we wanted to do it, we would need to create a custom Protobuf plugin or modify the existing one (which supports neither Doxygen nor Sphinx): https://github.com/pseudomuto/protoc-gen-doc/

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That may be worthwhile, though, since then we could avoid repeating docs between both files.

@pitroupitrou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

jduo
jduo approved these changes Mar 9, 2022
@ursabot

ursabot commented Mar 9, 2022

Copy link
Copy Markdown

Benchmark runs are scheduled for baseline = 875af62 and contender = 76b1403. 76b1403 is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
Conbench compare runs links:
[Finished ⬇️0.0% ⬆️0.0%] ec2-t3-xlarge-us-east-2
[Finished ⬇️0.08% ⬆️0.04%] test-mac-arm
[Finished ⬇️0.0% ⬆️0.0%] ursa-i9-9960x
[Finished ⬇️0.09% ⬆️0.0%] ursa-thinkcentre-m75q
Supported benchmarks:
ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python. Runs only benchmarks with cloud = True
test-mac-arm: Supported benchmark langs: C++, Python, R
ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java

@lidavidm
lidavidm deleted the arrow-15721 branch March 11, 2022 14:10
Sign up for freeto 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.

4 participants

@lidavidm@pitrou@ursabot@jduo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

ARROW-15721: [Docs][FlightRPC] Add Flight/Flight SQL to subprojects - #12573

Closed
lidavidm wants to merge 5 commits into
apache:masterfrom
lidavidm:arrow-15721
Closed

ARROW-15721: [Docs][FlightRPC] Add Flight/Flight SQL to subprojects#12573
lidavidm wants to merge 5 commits into
apache:masterfrom
lidavidm:arrow-15721

Conversation

@lidavidm

Copy link
Copy Markdown
Member

Adds a Flight SQL documentation page that we can link to from the website.

@github-actions

Copy link
Copy Markdown

@lidavidm

Copy link
Copy Markdown
MemberAuthor

I would like to add sequence diagrams, how do we feel about something like sphinxcontrib-mermaid?

@lidavidm

Copy link
Copy Markdown
MemberAuthor

CC @jduo if you'd like to take a look

Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
Generally, a database will implement the RPC methods according to the
specification, but does not need to implement a client-side driver. A
database client can use the provided Flight SQL client to interact
with any database that supports the necessary endpoints.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's mention that Flight SQL clients decorate existing Flight client classes to add methods corresponding to the new RPC calls.

lidavidmand others added 2 commits March 7, 2022 08:04
@lidavidm

Copy link
Copy Markdown
MemberAuthor

Thanks for the suggestions!

@pitrou

Copy link
Copy Markdown
Member

I would like to add sequence diagrams, how do we feel about something like sphinxcontrib-mermaid?

Looks interesting. @jorisvandenbossche What do you think?

@pitroupitrou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice addition, thank you.

Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
``CommandPreparedStatementQuery``
Execute a previously created prepared statement and get the results.

When used with DoPut: binds parameter values to the prepared statement.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So one must call first DoPut then GetFlightInfo to execute a query with parameters? Wouldn't it be nicer to be able to use DoExchange for that?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe this was considered during the initial discussion but was rejected; @jduo do you remember why?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, it was due to output parameters potentially changing the schema mid-stream. #9368 (comment)

Create a new prepared statement for a SQL query.

``CommandPreparedStatementQuery``
Execute a previously created prepared statement and get the results.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this also close the prepared statement or can it be reused multiple times?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is reusable (else, you don't save much from having a prepared statement).

@lidavidmlidavidm changed the title ARROW-15721: [Docs][FlightSQL] Add Flight/Flight SQL to subprojectsARROW-15721: [Docs][FlightRPC] Add Flight/Flight SQL to subprojectsMar 8, 2022
@lidavidm

Copy link
Copy Markdown
MemberAuthor

@jduo@pitrou any other comments here? I think we can use ARROW-14698 to expand the documentation once this lands

All of these commands can be used with the GetFlightInfo and GetSchema
RPC methods. The Protobuf request message should be packed into a
google.protobuf.Any message, then serialized and packed as the ``cmd``
field in a CMD-type FlightDescriptor.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the record, would there be an easy way to cross-reference the table definitions in the Flight protobuf file (such as FlightDescriptor here)? I guess not, but just asking.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, we would probably need to have Sphinx index the Protobuf file somehow and then use Sphinx's cross-reference support. Unfortunately there doesn't seem to be such integration from a quick glance (and if we wanted to do it, we would need to create a custom Protobuf plugin or modify the existing one (which supports neither Doxygen nor Sphinx): https://github.com/pseudomuto/protoc-gen-doc/

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That may be worthwhile, though, since then we could avoid repeating docs between both files.

@pitroupitrou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

jduo
jduo approved these changes Mar 9, 2022
@ursabot

ursabot commented Mar 9, 2022

Copy link
Copy Markdown

Benchmark runs are scheduled for baseline = 875af62 and contender = 76b1403. 76b1403 is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
Conbench compare runs links:
[Finished ⬇️0.0% ⬆️0.0%] ec2-t3-xlarge-us-east-2
[Finished ⬇️0.08% ⬆️0.04%] test-mac-arm
[Finished ⬇️0.0% ⬆️0.0%] ursa-i9-9960x
[Finished ⬇️0.09% ⬆️0.0%] ursa-thinkcentre-m75q
Supported benchmarks:
ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python. Runs only benchmarks with cloud = True
test-mac-arm: Supported benchmark langs: C++, Python, R
ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java

@lidavidm
lidavidm deleted the arrow-15721 branch March 11, 2022 14:10
Sign up for freeto 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.

4 participants

@lidavidm@pitrou@ursabot@jduo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

ARROW-15721: [Docs][FlightRPC] Add Flight/Flight SQL to subprojects - #12573

Closed
lidavidm wants to merge 5 commits into
apache:masterfrom
lidavidm:arrow-15721
Closed

ARROW-15721: [Docs][FlightRPC] Add Flight/Flight SQL to subprojects#12573
lidavidm wants to merge 5 commits into
apache:masterfrom
lidavidm:arrow-15721

Conversation

@lidavidm

Copy link
Copy Markdown
Member

Adds a Flight SQL documentation page that we can link to from the website.

@github-actions

Copy link
Copy Markdown

@lidavidm

Copy link
Copy Markdown
MemberAuthor

I would like to add sequence diagrams, how do we feel about something like sphinxcontrib-mermaid?

@lidavidm

Copy link
Copy Markdown
MemberAuthor

CC @jduo if you'd like to take a look

Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
Generally, a database will implement the RPC methods according to the
specification, but does not need to implement a client-side driver. A
database client can use the provided Flight SQL client to interact
with any database that supports the necessary endpoints.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's mention that Flight SQL clients decorate existing Flight client classes to add methods corresponding to the new RPC calls.

lidavidmand others added 2 commits March 7, 2022 08:04
@lidavidm

Copy link
Copy Markdown
MemberAuthor

Thanks for the suggestions!

@pitrou

Copy link
Copy Markdown
Member

I would like to add sequence diagrams, how do we feel about something like sphinxcontrib-mermaid?

Looks interesting. @jorisvandenbossche What do you think?

@pitroupitrou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice addition, thank you.

Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
``CommandPreparedStatementQuery``
Execute a previously created prepared statement and get the results.

When used with DoPut: binds parameter values to the prepared statement.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So one must call first DoPut then GetFlightInfo to execute a query with parameters? Wouldn't it be nicer to be able to use DoExchange for that?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe this was considered during the initial discussion but was rejected; @jduo do you remember why?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, it was due to output parameters potentially changing the schema mid-stream. #9368 (comment)

Create a new prepared statement for a SQL query.

``CommandPreparedStatementQuery``
Execute a previously created prepared statement and get the results.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this also close the prepared statement or can it be reused multiple times?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is reusable (else, you don't save much from having a prepared statement).

@lidavidmlidavidm changed the title ARROW-15721: [Docs][FlightSQL] Add Flight/Flight SQL to subprojectsARROW-15721: [Docs][FlightRPC] Add Flight/Flight SQL to subprojectsMar 8, 2022
@lidavidm

Copy link
Copy Markdown
MemberAuthor

@jduo@pitrou any other comments here? I think we can use ARROW-14698 to expand the documentation once this lands

All of these commands can be used with the GetFlightInfo and GetSchema
RPC methods. The Protobuf request message should be packed into a
google.protobuf.Any message, then serialized and packed as the ``cmd``
field in a CMD-type FlightDescriptor.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the record, would there be an easy way to cross-reference the table definitions in the Flight protobuf file (such as FlightDescriptor here)? I guess not, but just asking.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, we would probably need to have Sphinx index the Protobuf file somehow and then use Sphinx's cross-reference support. Unfortunately there doesn't seem to be such integration from a quick glance (and if we wanted to do it, we would need to create a custom Protobuf plugin or modify the existing one (which supports neither Doxygen nor Sphinx): https://github.com/pseudomuto/protoc-gen-doc/

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That may be worthwhile, though, since then we could avoid repeating docs between both files.

@pitroupitrou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

jduo
jduo approved these changes Mar 9, 2022
@ursabot

ursabot commented Mar 9, 2022

Copy link
Copy Markdown

Benchmark runs are scheduled for baseline = 875af62 and contender = 76b1403. 76b1403 is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
Conbench compare runs links:
[Finished ⬇️0.0% ⬆️0.0%] ec2-t3-xlarge-us-east-2
[Finished ⬇️0.08% ⬆️0.04%] test-mac-arm
[Finished ⬇️0.0% ⬆️0.0%] ursa-i9-9960x
[Finished ⬇️0.09% ⬆️0.0%] ursa-thinkcentre-m75q
Supported benchmarks:
ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python. Runs only benchmarks with cloud = True
test-mac-arm: Supported benchmark langs: C++, Python, R
ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java

@lidavidm
lidavidm deleted the arrow-15721 branch March 11, 2022 14:10
Sign up for freeto 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.

4 participants

@lidavidm@pitrou@ursabot@jduo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

ARROW-15721: [Docs][FlightRPC] Add Flight/Flight SQL to subprojects - #12573

Closed
lidavidm wants to merge 5 commits into
apache:masterfrom
lidavidm:arrow-15721
Closed

ARROW-15721: [Docs][FlightRPC] Add Flight/Flight SQL to subprojects#12573
lidavidm wants to merge 5 commits into
apache:masterfrom
lidavidm:arrow-15721

Conversation

@lidavidm

Copy link
Copy Markdown
Member

Adds a Flight SQL documentation page that we can link to from the website.

@github-actions

Copy link
Copy Markdown

@lidavidm

Copy link
Copy Markdown
MemberAuthor

I would like to add sequence diagrams, how do we feel about something like sphinxcontrib-mermaid?

@lidavidm

Copy link
Copy Markdown
MemberAuthor

CC @jduo if you'd like to take a look

Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
Generally, a database will implement the RPC methods according to the
specification, but does not need to implement a client-side driver. A
database client can use the provided Flight SQL client to interact
with any database that supports the necessary endpoints.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's mention that Flight SQL clients decorate existing Flight client classes to add methods corresponding to the new RPC calls.

lidavidmand others added 2 commits March 7, 2022 08:04
@lidavidm

Copy link
Copy Markdown
MemberAuthor

Thanks for the suggestions!

@pitrou

Copy link
Copy Markdown
Member

I would like to add sequence diagrams, how do we feel about something like sphinxcontrib-mermaid?

Looks interesting. @jorisvandenbossche What do you think?

@pitroupitrou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice addition, thank you.

Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
``CommandPreparedStatementQuery``
Execute a previously created prepared statement and get the results.

When used with DoPut: binds parameter values to the prepared statement.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So one must call first DoPut then GetFlightInfo to execute a query with parameters? Wouldn't it be nicer to be able to use DoExchange for that?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe this was considered during the initial discussion but was rejected; @jduo do you remember why?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, it was due to output parameters potentially changing the schema mid-stream. #9368 (comment)

Create a new prepared statement for a SQL query.

``CommandPreparedStatementQuery``
Execute a previously created prepared statement and get the results.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this also close the prepared statement or can it be reused multiple times?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is reusable (else, you don't save much from having a prepared statement).

@lidavidmlidavidm changed the title ARROW-15721: [Docs][FlightSQL] Add Flight/Flight SQL to subprojectsARROW-15721: [Docs][FlightRPC] Add Flight/Flight SQL to subprojectsMar 8, 2022
@lidavidm

Copy link
Copy Markdown
MemberAuthor

@jduo@pitrou any other comments here? I think we can use ARROW-14698 to expand the documentation once this lands

All of these commands can be used with the GetFlightInfo and GetSchema
RPC methods. The Protobuf request message should be packed into a
google.protobuf.Any message, then serialized and packed as the ``cmd``
field in a CMD-type FlightDescriptor.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the record, would there be an easy way to cross-reference the table definitions in the Flight protobuf file (such as FlightDescriptor here)? I guess not, but just asking.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, we would probably need to have Sphinx index the Protobuf file somehow and then use Sphinx's cross-reference support. Unfortunately there doesn't seem to be such integration from a quick glance (and if we wanted to do it, we would need to create a custom Protobuf plugin or modify the existing one (which supports neither Doxygen nor Sphinx): https://github.com/pseudomuto/protoc-gen-doc/

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That may be worthwhile, though, since then we could avoid repeating docs between both files.

@pitroupitrou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

jduo
jduo approved these changes Mar 9, 2022
@ursabot

ursabot commented Mar 9, 2022

Copy link
Copy Markdown

Benchmark runs are scheduled for baseline = 875af62 and contender = 76b1403. 76b1403 is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
Conbench compare runs links:
[Finished ⬇️0.0% ⬆️0.0%] ec2-t3-xlarge-us-east-2
[Finished ⬇️0.08% ⬆️0.04%] test-mac-arm
[Finished ⬇️0.0% ⬆️0.0%] ursa-i9-9960x
[Finished ⬇️0.09% ⬆️0.0%] ursa-thinkcentre-m75q
Supported benchmarks:
ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python. Runs only benchmarks with cloud = True
test-mac-arm: Supported benchmark langs: C++, Python, R
ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java

@lidavidm
lidavidm deleted the arrow-15721 branch March 11, 2022 14:10
Sign up for freeto 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.

4 participants

@lidavidm@pitrou@ursabot@jduo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

ARROW-15721: [Docs][FlightRPC] Add Flight/Flight SQL to subprojects - #12573

Closed
lidavidm wants to merge 5 commits into
apache:masterfrom
lidavidm:arrow-15721
Closed

ARROW-15721: [Docs][FlightRPC] Add Flight/Flight SQL to subprojects#12573
lidavidm wants to merge 5 commits into
apache:masterfrom
lidavidm:arrow-15721

Conversation

@lidavidm

Copy link
Copy Markdown
Member

Adds a Flight SQL documentation page that we can link to from the website.

@github-actions

Copy link
Copy Markdown

@lidavidm

Copy link
Copy Markdown
MemberAuthor

I would like to add sequence diagrams, how do we feel about something like sphinxcontrib-mermaid?

@lidavidm

Copy link
Copy Markdown
MemberAuthor

CC @jduo if you'd like to take a look

Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
Generally, a database will implement the RPC methods according to the
specification, but does not need to implement a client-side driver. A
database client can use the provided Flight SQL client to interact
with any database that supports the necessary endpoints.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's mention that Flight SQL clients decorate existing Flight client classes to add methods corresponding to the new RPC calls.

lidavidmand others added 2 commits March 7, 2022 08:04
@lidavidm

Copy link
Copy Markdown
MemberAuthor

Thanks for the suggestions!

@pitrou

Copy link
Copy Markdown
Member

I would like to add sequence diagrams, how do we feel about something like sphinxcontrib-mermaid?

Looks interesting. @jorisvandenbossche What do you think?

@pitroupitrou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice addition, thank you.

Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
``CommandPreparedStatementQuery``
Execute a previously created prepared statement and get the results.

When used with DoPut: binds parameter values to the prepared statement.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So one must call first DoPut then GetFlightInfo to execute a query with parameters? Wouldn't it be nicer to be able to use DoExchange for that?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe this was considered during the initial discussion but was rejected; @jduo do you remember why?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, it was due to output parameters potentially changing the schema mid-stream. #9368 (comment)

Create a new prepared statement for a SQL query.

``CommandPreparedStatementQuery``
Execute a previously created prepared statement and get the results.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this also close the prepared statement or can it be reused multiple times?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is reusable (else, you don't save much from having a prepared statement).

@lidavidmlidavidm changed the title ARROW-15721: [Docs][FlightSQL] Add Flight/Flight SQL to subprojectsARROW-15721: [Docs][FlightRPC] Add Flight/Flight SQL to subprojectsMar 8, 2022
@lidavidm

Copy link
Copy Markdown
MemberAuthor

@jduo@pitrou any other comments here? I think we can use ARROW-14698 to expand the documentation once this lands

All of these commands can be used with the GetFlightInfo and GetSchema
RPC methods. The Protobuf request message should be packed into a
google.protobuf.Any message, then serialized and packed as the ``cmd``
field in a CMD-type FlightDescriptor.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the record, would there be an easy way to cross-reference the table definitions in the Flight protobuf file (such as FlightDescriptor here)? I guess not, but just asking.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, we would probably need to have Sphinx index the Protobuf file somehow and then use Sphinx's cross-reference support. Unfortunately there doesn't seem to be such integration from a quick glance (and if we wanted to do it, we would need to create a custom Protobuf plugin or modify the existing one (which supports neither Doxygen nor Sphinx): https://github.com/pseudomuto/protoc-gen-doc/

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That may be worthwhile, though, since then we could avoid repeating docs between both files.

@pitroupitrou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

jduo
jduo approved these changes Mar 9, 2022
@ursabot

ursabot commented Mar 9, 2022

Copy link
Copy Markdown

Benchmark runs are scheduled for baseline = 875af62 and contender = 76b1403. 76b1403 is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
Conbench compare runs links:
[Finished ⬇️0.0% ⬆️0.0%] ec2-t3-xlarge-us-east-2
[Finished ⬇️0.08% ⬆️0.04%] test-mac-arm
[Finished ⬇️0.0% ⬆️0.0%] ursa-i9-9960x
[Finished ⬇️0.09% ⬆️0.0%] ursa-thinkcentre-m75q
Supported benchmarks:
ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python. Runs only benchmarks with cloud = True
test-mac-arm: Supported benchmark langs: C++, Python, R
ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java

@lidavidm
lidavidm deleted the arrow-15721 branch March 11, 2022 14:10
Sign up for freeto 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.

4 participants

@lidavidm@pitrou@ursabot@jduo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

ARROW-15721: [Docs][FlightRPC] Add Flight/Flight SQL to subprojects - #12573

Closed
lidavidm wants to merge 5 commits into
apache:masterfrom
lidavidm:arrow-15721
Closed

ARROW-15721: [Docs][FlightRPC] Add Flight/Flight SQL to subprojects#12573
lidavidm wants to merge 5 commits into
apache:masterfrom
lidavidm:arrow-15721

Conversation

@lidavidm

Copy link
Copy Markdown
Member

Adds a Flight SQL documentation page that we can link to from the website.

@github-actions

Copy link
Copy Markdown

@lidavidm

Copy link
Copy Markdown
MemberAuthor

I would like to add sequence diagrams, how do we feel about something like sphinxcontrib-mermaid?

@lidavidm

Copy link
Copy Markdown
MemberAuthor

CC @jduo if you'd like to take a look

Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
Generally, a database will implement the RPC methods according to the
specification, but does not need to implement a client-side driver. A
database client can use the provided Flight SQL client to interact
with any database that supports the necessary endpoints.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's mention that Flight SQL clients decorate existing Flight client classes to add methods corresponding to the new RPC calls.

lidavidmand others added 2 commits March 7, 2022 08:04
@lidavidm

Copy link
Copy Markdown
MemberAuthor

Thanks for the suggestions!

@pitrou

Copy link
Copy Markdown
Member

I would like to add sequence diagrams, how do we feel about something like sphinxcontrib-mermaid?

Looks interesting. @jorisvandenbossche What do you think?

@pitroupitrou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice addition, thank you.

Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
``CommandPreparedStatementQuery``
Execute a previously created prepared statement and get the results.

When used with DoPut: binds parameter values to the prepared statement.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So one must call first DoPut then GetFlightInfo to execute a query with parameters? Wouldn't it be nicer to be able to use DoExchange for that?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe this was considered during the initial discussion but was rejected; @jduo do you remember why?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, it was due to output parameters potentially changing the schema mid-stream. #9368 (comment)

Create a new prepared statement for a SQL query.

``CommandPreparedStatementQuery``
Execute a previously created prepared statement and get the results.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this also close the prepared statement or can it be reused multiple times?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is reusable (else, you don't save much from having a prepared statement).

@lidavidmlidavidm changed the title ARROW-15721: [Docs][FlightSQL] Add Flight/Flight SQL to subprojectsARROW-15721: [Docs][FlightRPC] Add Flight/Flight SQL to subprojectsMar 8, 2022
@lidavidm

Copy link
Copy Markdown
MemberAuthor

@jduo@pitrou any other comments here? I think we can use ARROW-14698 to expand the documentation once this lands

All of these commands can be used with the GetFlightInfo and GetSchema
RPC methods. The Protobuf request message should be packed into a
google.protobuf.Any message, then serialized and packed as the ``cmd``
field in a CMD-type FlightDescriptor.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the record, would there be an easy way to cross-reference the table definitions in the Flight protobuf file (such as FlightDescriptor here)? I guess not, but just asking.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, we would probably need to have Sphinx index the Protobuf file somehow and then use Sphinx's cross-reference support. Unfortunately there doesn't seem to be such integration from a quick glance (and if we wanted to do it, we would need to create a custom Protobuf plugin or modify the existing one (which supports neither Doxygen nor Sphinx): https://github.com/pseudomuto/protoc-gen-doc/

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That may be worthwhile, though, since then we could avoid repeating docs between both files.

@pitroupitrou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

jduo
jduo approved these changes Mar 9, 2022
@ursabot

ursabot commented Mar 9, 2022

Copy link
Copy Markdown

Benchmark runs are scheduled for baseline = 875af62 and contender = 76b1403. 76b1403 is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
Conbench compare runs links:
[Finished ⬇️0.0% ⬆️0.0%] ec2-t3-xlarge-us-east-2
[Finished ⬇️0.08% ⬆️0.04%] test-mac-arm
[Finished ⬇️0.0% ⬆️0.0%] ursa-i9-9960x
[Finished ⬇️0.09% ⬆️0.0%] ursa-thinkcentre-m75q
Supported benchmarks:
ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python. Runs only benchmarks with cloud = True
test-mac-arm: Supported benchmark langs: C++, Python, R
ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java

@lidavidm
lidavidm deleted the arrow-15721 branch March 11, 2022 14:10
Sign up for freeto 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.

4 participants

@lidavidm@pitrou@ursabot@jduo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

ARROW-15721: [Docs][FlightRPC] Add Flight/Flight SQL to subprojects - #12573

Closed
lidavidm wants to merge 5 commits into
apache:masterfrom
lidavidm:arrow-15721
Closed

ARROW-15721: [Docs][FlightRPC] Add Flight/Flight SQL to subprojects#12573
lidavidm wants to merge 5 commits into
apache:masterfrom
lidavidm:arrow-15721

Conversation

@lidavidm

Copy link
Copy Markdown
Member

Adds a Flight SQL documentation page that we can link to from the website.

@github-actions

Copy link
Copy Markdown

@lidavidm

Copy link
Copy Markdown
MemberAuthor

I would like to add sequence diagrams, how do we feel about something like sphinxcontrib-mermaid?

@lidavidm

Copy link
Copy Markdown
MemberAuthor

CC @jduo if you'd like to take a look

Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
Generally, a database will implement the RPC methods according to the
specification, but does not need to implement a client-side driver. A
database client can use the provided Flight SQL client to interact
with any database that supports the necessary endpoints.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's mention that Flight SQL clients decorate existing Flight client classes to add methods corresponding to the new RPC calls.

lidavidmand others added 2 commits March 7, 2022 08:04
@lidavidm

Copy link
Copy Markdown
MemberAuthor

Thanks for the suggestions!

@pitrou

Copy link
Copy Markdown
Member

I would like to add sequence diagrams, how do we feel about something like sphinxcontrib-mermaid?

Looks interesting. @jorisvandenbossche What do you think?

@pitroupitrou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice addition, thank you.

Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
``CommandPreparedStatementQuery``
Execute a previously created prepared statement and get the results.

When used with DoPut: binds parameter values to the prepared statement.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So one must call first DoPut then GetFlightInfo to execute a query with parameters? Wouldn't it be nicer to be able to use DoExchange for that?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe this was considered during the initial discussion but was rejected; @jduo do you remember why?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, it was due to output parameters potentially changing the schema mid-stream. #9368 (comment)

Create a new prepared statement for a SQL query.

``CommandPreparedStatementQuery``
Execute a previously created prepared statement and get the results.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this also close the prepared statement or can it be reused multiple times?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is reusable (else, you don't save much from having a prepared statement).

@lidavidmlidavidm changed the title ARROW-15721: [Docs][FlightSQL] Add Flight/Flight SQL to subprojectsARROW-15721: [Docs][FlightRPC] Add Flight/Flight SQL to subprojectsMar 8, 2022
@lidavidm

Copy link
Copy Markdown
MemberAuthor

@jduo@pitrou any other comments here? I think we can use ARROW-14698 to expand the documentation once this lands

All of these commands can be used with the GetFlightInfo and GetSchema
RPC methods. The Protobuf request message should be packed into a
google.protobuf.Any message, then serialized and packed as the ``cmd``
field in a CMD-type FlightDescriptor.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the record, would there be an easy way to cross-reference the table definitions in the Flight protobuf file (such as FlightDescriptor here)? I guess not, but just asking.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, we would probably need to have Sphinx index the Protobuf file somehow and then use Sphinx's cross-reference support. Unfortunately there doesn't seem to be such integration from a quick glance (and if we wanted to do it, we would need to create a custom Protobuf plugin or modify the existing one (which supports neither Doxygen nor Sphinx): https://github.com/pseudomuto/protoc-gen-doc/

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That may be worthwhile, though, since then we could avoid repeating docs between both files.

@pitroupitrou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

jduo
jduo approved these changes Mar 9, 2022
@ursabot

ursabot commented Mar 9, 2022

Copy link
Copy Markdown

Benchmark runs are scheduled for baseline = 875af62 and contender = 76b1403. 76b1403 is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
Conbench compare runs links:
[Finished ⬇️0.0% ⬆️0.0%] ec2-t3-xlarge-us-east-2
[Finished ⬇️0.08% ⬆️0.04%] test-mac-arm
[Finished ⬇️0.0% ⬆️0.0%] ursa-i9-9960x
[Finished ⬇️0.09% ⬆️0.0%] ursa-thinkcentre-m75q
Supported benchmarks:
ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python. Runs only benchmarks with cloud = True
test-mac-arm: Supported benchmark langs: C++, Python, R
ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java

@lidavidm
lidavidm deleted the arrow-15721 branch March 11, 2022 14:10
Sign up for freeto 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.

4 participants

@lidavidm@pitrou@ursabot@jduo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

ARROW-15721: [Docs][FlightRPC] Add Flight/Flight SQL to subprojects - #12573

Closed
lidavidm wants to merge 5 commits into
apache:masterfrom
lidavidm:arrow-15721
Closed

ARROW-15721: [Docs][FlightRPC] Add Flight/Flight SQL to subprojects#12573
lidavidm wants to merge 5 commits into
apache:masterfrom
lidavidm:arrow-15721

Conversation

@lidavidm

Copy link
Copy Markdown
Member

Adds a Flight SQL documentation page that we can link to from the website.

@github-actions

Copy link
Copy Markdown

@lidavidm

Copy link
Copy Markdown
MemberAuthor

I would like to add sequence diagrams, how do we feel about something like sphinxcontrib-mermaid?

@lidavidm

Copy link
Copy Markdown
MemberAuthor

CC @jduo if you'd like to take a look

Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
Generally, a database will implement the RPC methods according to the
specification, but does not need to implement a client-side driver. A
database client can use the provided Flight SQL client to interact
with any database that supports the necessary endpoints.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's mention that Flight SQL clients decorate existing Flight client classes to add methods corresponding to the new RPC calls.

lidavidmand others added 2 commits March 7, 2022 08:04
@lidavidm

Copy link
Copy Markdown
MemberAuthor

Thanks for the suggestions!

@pitrou

Copy link
Copy Markdown
Member

I would like to add sequence diagrams, how do we feel about something like sphinxcontrib-mermaid?

Looks interesting. @jorisvandenbossche What do you think?

@pitroupitrou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice addition, thank you.

Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
Comment threaddocs/source/format/FlightSql.rst Outdated
``CommandPreparedStatementQuery``
Execute a previously created prepared statement and get the results.

When used with DoPut: binds parameter values to the prepared statement.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So one must call first DoPut then GetFlightInfo to execute a query with parameters? Wouldn't it be nicer to be able to use DoExchange for that?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe this was considered during the initial discussion but was rejected; @jduo do you remember why?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, it was due to output parameters potentially changing the schema mid-stream. #9368 (comment)

Create a new prepared statement for a SQL query.

``CommandPreparedStatementQuery``
Execute a previously created prepared statement and get the results.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this also close the prepared statement or can it be reused multiple times?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is reusable (else, you don't save much from having a prepared statement).

@lidavidmlidavidm changed the title ARROW-15721: [Docs][FlightSQL] Add Flight/Flight SQL to subprojectsARROW-15721: [Docs][FlightRPC] Add Flight/Flight SQL to subprojectsMar 8, 2022
@lidavidm

Copy link
Copy Markdown
MemberAuthor

@jduo@pitrou any other comments here? I think we can use ARROW-14698 to expand the documentation once this lands

All of these commands can be used with the GetFlightInfo and GetSchema
RPC methods. The Protobuf request message should be packed into a
google.protobuf.Any message, then serialized and packed as the ``cmd``
field in a CMD-type FlightDescriptor.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the record, would there be an easy way to cross-reference the table definitions in the Flight protobuf file (such as FlightDescriptor here)? I guess not, but just asking.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, we would probably need to have Sphinx index the Protobuf file somehow and then use Sphinx's cross-reference support. Unfortunately there doesn't seem to be such integration from a quick glance (and if we wanted to do it, we would need to create a custom Protobuf plugin or modify the existing one (which supports neither Doxygen nor Sphinx): https://github.com/pseudomuto/protoc-gen-doc/

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That may be worthwhile, though, since then we could avoid repeating docs between both files.

@pitroupitrou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

jduo
jduo approved these changes Mar 9, 2022
@ursabot

ursabot commented Mar 9, 2022

Copy link
Copy Markdown

Benchmark runs are scheduled for baseline = 875af62 and contender = 76b1403. 76b1403 is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
Conbench compare runs links:
[Finished ⬇️0.0% ⬆️0.0%] ec2-t3-xlarge-us-east-2
[Finished ⬇️0.08% ⬆️0.04%] test-mac-arm
[Finished ⬇️0.0% ⬆️0.0%] ursa-i9-9960x
[Finished ⬇️0.09% ⬆️0.0%] ursa-thinkcentre-m75q
Supported benchmarks:
ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python. Runs only benchmarks with cloud = True
test-mac-arm: Supported benchmark langs: C++, Python, R
ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java

@lidavidm
lidavidm deleted the arrow-15721 branch March 11, 2022 14:10
Sign up for freeto 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.

4 participants

@lidavidm@pitrou@ursabot@jduo