This is an automated email from the ASF dual-hosted git repository.

karan pushed a commit to branch 29.0.0
in repository https://gitbox.apache.org/repos/asf/druid.git


The following commit(s) were added to refs/heads/29.0.0 by this push:
     new 86ee778a20a Update docs to document breaking change in explain 
attributes (#16031)
86ee778a20a is described below

commit 86ee778a20ac9569951e584b058820d5fa1ae639
Author: Adarsh Sanjeev <[email protected]>
AuthorDate: Wed Mar 6 11:42:16 2024 +0530

    Update docs to document breaking change in explain attributes (#16031)
    
    
    Updates the docs to include a breaking change made regarding the attributes 
returned by an explain query. The return type of the field targetDataSource was 
changed to an object instead of a string containing the data source name.
    
    This change is only present in Druid 29, and not in future versions, so it 
has been documented here. The change has been reverted in future versions here: 
#16004
---
 docs/querying/sql-translation.md   | 12 +++++++++---
 docs/release-info/release-notes.md | 29 +++++++++++++++++++++++++++++
 docs/release-info/upgrade-notes.md |  4 ++++
 3 files changed, 42 insertions(+), 3 deletions(-)

diff --git a/docs/querying/sql-translation.md b/docs/querying/sql-translation.md
index 29edc932531..d4c100daff0 100644
--- a/docs/querying/sql-translation.md
+++ b/docs/querying/sql-translation.md
@@ -71,7 +71,7 @@ EXPLAIN PLAN statements return:
 - a `RESOURCES` column that describes the resources used in the query
 - an `ATTRIBUTES` column that describes the attributes of the query, including:
   - `statementType`: the SQL statement type
-  - `targetDataSource`: the target datasource in an INSERT or REPLACE statement
+  - `targetDataSource`: a JSON object representing the target datasource in an 
INSERT or REPLACE statement
   - `partitionedBy`: the time-based partitioning granularity in an INSERT or 
REPLACE statement
   - `clusteredBy`: the clustering columns in an INSERT or REPLACE statement
   - `replaceTimeChunks`: the time chunks in a REPLACE statement
@@ -444,7 +444,10 @@ The above EXPLAIN PLAN returns the following result:
   ],
   {
     "statementType": "INSERT",
-    "targetDataSource": "wikipedia",
+    "targetDataSource": {
+      "type":"table",
+      "tableName":"wikipedia"
+    },
     "partitionedBy": {
       "type": "all"
     }
@@ -665,7 +668,10 @@ The above EXPLAIN PLAN query returns the following result:
   ],
   {
     "statementType": "REPLACE",
-    "targetDataSource": "wikipedia",
+    "targetDataSource": {
+      "type":"table",
+      "tableName":"wikipedia"
+    },
     "partitionedBy": "DAY",
     "clusteredBy": ["cityName","countryName"],
     "replaceTimeChunks": "all"
diff --git a/docs/release-info/release-notes.md 
b/docs/release-info/release-notes.md
index 778d878b737..73319fb7dbb 100644
--- a/docs/release-info/release-notes.md
+++ b/docs/release-info/release-notes.md
@@ -555,6 +555,35 @@ Improved the Iceberg extension as follows:
 
 ### Upgrade notes
 
+#### Changes in `targetDataSource` payload present in the explain plan for MSQ 
queries
+
+Druid 29 has a breaking change for EXPLAIN for INSERT/REPLACE MSQ queries.
+In the attribute field returned as part of the result for an explain query, 
the value of the key `targetDataSource` from a string to a JSON object.
+This change is only present in Druid 29 and is not present in earlier or later 
versions.
+
+The JSON object returned plan will have the structure if the target is a 
datasource:
+```json
+{
+  "targetDataSource": {
+    "type": "table",
+    "tableName": "wikipedia"
+  }
+}
+```
+
+The JSON object returned plan will have the structure if the target is an 
external export location using :
+```json
+{
+  "targetDataSource": {
+    "type": "external",
+    "storageConnectorProvider": {
+      "type": "<export-type>",
+      "exportPath": "<export-path>"
+    }
+  }
+}
+```
+
 #### Changed `equals` filter for native queries
 
 The [equality 
filter](https://druid.apache.org/docs/latest/querying/filters#equality-filter) 
on mixed type `auto` columns that contain arrays must now be filtered as their 
presenting type. This means that if any rows are arrays (for example, the 
segment metadata and `information_schema` reports the type as some array type), 
then the native queries must also filter as if they are some array type.
diff --git a/docs/release-info/upgrade-notes.md 
b/docs/release-info/upgrade-notes.md
index d564224ee01..e995e2e9b14 100644
--- a/docs/release-info/upgrade-notes.md
+++ b/docs/release-info/upgrade-notes.md
@@ -30,6 +30,10 @@ For the full release notes for a specific version, see the 
[releases page](https
 
 ### Upgrade notes
 
+#### Changes in `targetDataSource` payload present in the explain plan for MSQ 
queries
+
+In the attribute field returned as part of the result for an EXPLAIN MSQ 
query, the value of the key `targetDataSource` from a string to a JSON object. 
This change is only present in Druid 29 and is not present in earlier or later 
versions.
+
 #### Changed `equals` filter for native queries
 
 The [equality 
filter](https://druid.apache.org/docs/latest/querying/filters#equality-filter) 
on mixed type `auto` columns that contain arrays must now be filtered as their 
presenting type. This means that if any rows are arrays (for example, the 
segment metadata and `information_schema` reports the type as some array type), 
then the native queries must also filter as if they are some array type.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to