Skip to content

RDoc-3928 PostgreSQL & Power BI integration refactor - documentation update#2557

Open
reebhub wants to merge 7 commits into
ravendb:mainfrom
reebhub:RDoc-3928_PostgreSqlPowerBiUpdate
Open

RDoc-3928 PostgreSQL & Power BI integration refactor - documentation update#2557
reebhub wants to merge 7 commits into
ravendb:mainfrom
reebhub:RDoc-3928_PostgreSqlPowerBiUpdate

Conversation

@reebhub

@reebhub reebhub commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Issue link

RDoc-3928
RDoc-3980
RDoc-3981

Additional description

Update PostgreSQL and Power BI documentation by source updates (content, organization, layout)
Write a new PostgreSQL Querying with SQL page
Update the integrations-view page

Type of change

  • Content - docs
  • Content - cloud
  • Content - guides
  • Content - start pages/other
  • New docs feature (consider updating /templates or readme)
  • Bug fix
  • Optimization
  • Other

Changes in docs URLs

  • No changes in docs URLs
  • Articles are restructured, URLs will change, mapping is required (update /scripts/redirects.json file, set Documents Moved PR label)

Changes in UX/UI

  • No changes in UX/UI
  • Changes in UX/UI (include screenshots and description)

@reebhub reebhub requested a review from Lwiel July 10, 2026 06:34
Comment on lines +105 to +107
* When the RavenDB server runs on a platform that this library does not ship for, like the
Raspberry Pi (32-bit ARM) package, the PostgreSQL integration will not start even if
enabled in your settings, and the server will log a warning.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This is the only platform that has no support I think

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

almost, there's one other.
-->
"The library does not ship for 32-bit platforms: the Raspberry Pi and Windows x86 packages.
When the RavenDB server runs on one of these platforms, the PostgreSQL integration will not start even if enabled in your settings, and the server will log a warning."


<Panel heading="Supported clients">

RavenDB supports these PostgreSQL clients:

@Lwiel Lwiel Jul 10, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This can be misleading, technically any client should work, these are just the clients we performed tests on, and in case of pgAdmin, PowerBI Desktop, PoweBI online service and Microsoft Fabric we support significant number of their probes so the user isn't flooded with errors when using the UI

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

-->
Any PostgreSQL client can connect to RavenDB over the protocol. The clients listed in the
table below are tested with RavenDB.
Power BI, pgAdmin, and Microsoft Fabric also send many PostgreSQL metadata queries of
their own. RavenDB recognizes these queries, so you can use these clients' interfaces
without repeated errors.

Comment on lines +155 to +156
The following RQL query retrieves the destination city and freight charge of orders
shipped to France.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Maybe let's mention it's Northwind dataset

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

done
added a general "The examples on this page use the Northwind sample data." top-note bullet + changed the text you commented on to:
--> "The following RQL query runs on the
Northwind sample data, retrieving
the destination city and freight charge of orders shipped to France."

title: "Integrations View"
sidebar_label: Integrations
description: "Configure third-party integrations in RavenDB Studio including PostgreSQL wire protocol for BI tools like Power BI and Grafana."
description: "Define the credentials that PostgreSQL-protocol clients like Power BI must provide to access a RavenDB database, in the Studio Integrations view."

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The title suggests it's generic integrations view, here we mention PowerBI explicitly

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

done (separated between the top note and the top of the PostgreSQL panel)

```sql
SELECT *
FROM "public"."Companies"
WHERE "Name" <> 'Ernst Handel'

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I'd rather use != here

@reebhub reebhub Jul 11, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I can't currently change it to !=, see in the attached image how this is rendered.
if you want it to be != (here, as well as in RQL queries where I left it so like "from 'Companies' where Name != 'Ernst Handel' order by Name limit 0, 20") please edit src/css/custom.css first to leave such strings (including others, e.g. =>) unchanged all over the site, ping me and I'll re-introduce the change.
image


* Since the SQL query selects `*`, the results include all the fields of each `Companies`
document, plus the two columns RavenDB adds: `id`, holding the document's ID, and
`json`, holding results that do not fit the regular columns.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

holding properties

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

done

### SELECT and FROM

* **SELECT** takes a list of the table's columns, or `*` for all of them.
A column can be renamed using `AS`, like `"Freight" AS "shipping_cost"`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

renamed -> aliased

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

done


</Panel>

<Panel heading="Supported SQL">

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Supported SQL clauses

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

--> Supported SQL clauses and parameters
(there's "query parameters" there too, not just clauses)

Comment on lines +299 to +300
* The client sends the query text once, and RavenDB keeps the parsed query as a
**prepared statement**.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We don't support prepared statements

@reebhub reebhub Jul 11, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

not sure what you mean exactly, guessing you're talking about the term "prepared statement" and not about the entire feature. changed it for now to the following, let me know if you meant something else.

-->

  • A WHERE condition can use numbered placeholders like $1 and $2 instead of
    literal values, and the client can provide the values separately (using PostgreSQL's
    extended query protocol):
    • The client sends the query text to RavenDB once, under a name of its choice, and
      RavenDB registers the parsed query under this name.
    • On each subsequent run, the client sends only the query's name and the values, as an
      ordered list that fills the placeholders by position: the first value fills $1, the
      second fills $2, and so on.
    • RavenDB runs the named query with the received values, and returns the results to
      the client.
    • When the connection between the client and RavenDB is terminated, both discard
      the query.

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.

2 participants