How to read the propertyentry database table in Jira

Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.

Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Summary

The propertyentry database table stores a variety of data in Jira, from Issue Properties crucial to some features and apps (like Roadmaps Parent Link and Plans exclusion data) to system configs and app or plugin management.

This article aims at helping to read that table and join each property to the other tables where the actual property values are stored.

You may find the developer-oriented documentation useful, too:

Environment

Any version of Jira Software or Jira Service Management, both Data Center and Server.

Solution

Entity type and Property key distribution

You may learn the distribution of each property type and key through this query:

1 2 3 4 5 6 7 8 9 10 11 12 select entity_name, property_key, count(id) from entity_property /* where entity_name = 'IssueProperty' */ /* OPTIONAL FILTER */ group by entity_name, property_key order by 3 desc, 2 asc;

It should output something like:

1 2 3 4 5 6 7 8 9 10 11 ENTITY_NAME | PROPERTY_KEY | COUNT(ID) ---------------+---------------------------------------------+----------- IssueProperty | sd.initial.field.set | 2919377 IssueProperty | jpo-issue-properties | 1680111 IssueProperty | jpo-exclude-from-plan | 199209 IssueProperty | request.channel.type | 70771 IssueProperty | request.public-activity.lastupdated | 60789 IssueProperty | feedback.token.key | 36503 IssueProperty | service-request-feedback-comment | 1761 IssueProperty | sd.kb.shared | 510 IssueProperty | codebarrel.automation.comment.action.6900 | 502

Corresponding property values

To obtain the respective property values, we need to make left joins to 6 other possible tables based on the value in the propertyentry.propertytype:

Value in propertytype

Table to join

1, 2, 3

propertynumber

4

propertydecimal

5

propertystring

6

propertytext

7

propertydate

8, 9, 10, 11

propertydata

Here's an example query:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 select p.id , p.entity_name , p.entity_id , p.property_key , p.propertytype , case when p.propertytype in (1, 2, 3) then concat('', n.propertyvalue) when p.propertytype = 4 then concat('', c.propertyvalue) when p.propertytype = 5 then concat('', s.propertyvalue) when p.propertytype = 6 then concat('', t.propertyvalue) when p.propertytype = 7 then concat('', d.propertyvalue) when p.propertytype in (8, 9, 10, 11) then concat('', x.propertyvalue) else '?' end as "propertyvalue" from propertyentry p left join propertynumber n on p.propertytype in (1, 2, 3) and n.id = p.id left join propertydecimal c on p.propertytype in (4) and c.id = p.id left join propertystring s on p.propertytype in (5) and s.id = p.id left join propertytext t on p.propertytype in (6) and t.id = p.id left join propertydate d on p.propertytype in (7) and d.id = p.id left join propertydata x on p.propertytype in (8, 9, 10, 11) and x.id = p.id where lower(p.property_key) like lower('%...%') /* REPLACE SEARCH TERM HERE */ OR lower(p.entity_name) like lower('%...%') /* REPLACE SEARCH TERM HERE, TOO */ order by p.property_key ASC;

It should output something like:

1 2 3 4 5 6 7 8 9 id | entity_name | entity_id | property_key | propertytype | propertyvalue -------+-----------------+-----------+---------------------------------------------------------------------+--------------+------------------------ 10810 | INSIGHT-GENERAL | 1 | com.atlassian.assets.dedicated.node.progress.writes.to.db.frequency | 2 | 100 10808 | INSIGHT-GENERAL | 1 | com.atlassian.assets.index.object.load.attempts | 2 | 200 10809 | INSIGHT-GENERAL | 1 | com.atlassian.assets.index.object.load.interval | 2 | 100 10819 | INSIGHT-GENERAL | 1 | com.atlassian.assets.max.nodes.force.graph | 2 | 500 10807 | INSIGHT-GENERAL | 1 | com.atlassian.assets.replication.batch.delay | 3 | 400 10806 | INSIGHT-GENERAL | 1 | com.atlassian.assets.replication.batch.size | 2 | 1000 10817 | INSIGHT-GENERAL | 1 | com.atlassian.assets.replication.dlq.logger.interval | 3 | 300000
Updated on April 2, 2025

Still need help?

The Atlassian Community is here for you.