Add Join should warn us if join table has a definition query

12-10-2022 08:22 AM
Status: Under Consideration
Labels (1)
Frequent Contributor

The Add Join tool should warn us if the join table has a definition query, since the definition query will be applied to the join.


For example, if we're using a map that someone else created, we might not be aware that the join table has a definition query. And so the definition query would be applied unknowingly.


I suppose the GP tool could be enhanced so that the definition query is shown as an editable SQL expression text box right in the tool. We’d have the option of changing the definition query or removing it, if needed (in the join, not the underlying table). Or we could even add a new definition query, if there wasn’t one already.

That would have the added benefit of making it abundantly clear that there is a definition query. It would be hard to ignore. Whereas a small yellow exclamation mark beside a field is easy to accidentally overlook, especially when we see those exclamation points regularly for things like “no index” warnings.

ArcGIS 3.0.3


Do you mean in the interface? Because it is in the help

Add Join (Data Management)—ArcGIS Pro | Documentation

The definition query of the join table will be applied to the input layer or table view. The definition query can be removed using the Remove Join tool or by manually removing the definition query from the layer.


@DanPatterson  Yeah, I meant in the GP tool UI.

Status changed to: Under Consideration

An informational tip will be added below the Join Table parameter in a future release, to indicate that the specified layer/table has a definition query which will be moved to the input layer when performing the join. This is such a special case and behavior we agree the information should be presented directly to the user, not behind a small warning icon or solely in the tool documentation. An editable definition query control will not be placed on the tool dialog, that is outside what we can do at this time. 


For our notes, here's a related post (but a different scenario):

When creating a new join, will an existing INNER join on the join table be honored?

Unlike a definition query on a join table, an inner join on a join table only omits rows in the join table, it doesn't omit rows in the input table.