diff --git a/pkg/pgexplain/pgexplain.go b/pkg/pgexplain/pgexplain.go index 9a46901..93b6410 100644 --- a/pkg/pgexplain/pgexplain.go +++ b/pkg/pgexplain/pgexplain.go @@ -52,10 +52,11 @@ type Explain struct { Plan Plan `json:"Plan"` Triggers []Trigger `json:"Triggers"` - Settings map[string]string `json:"Settings"` - PlanningTime float64 `json:"Planning Time"` - ExecutionTime float64 `json:"Execution Time"` - TotalTime float64 + QueryIdentifier uint64 `json:"Query Identifier"` + Settings map[string]string `json:"Settings"` + PlanningTime float64 `json:"Planning Time"` + ExecutionTime float64 `json:"Execution Time"` + TotalTime float64 TotalCost float64 @@ -329,6 +330,10 @@ func (ex *Explain) writeExplainText(writer io.Writer) { if len(ex.Settings) > 0 { _, _ = fmt.Fprintf(writer, "Settings: %s\n", printMap(ex.Settings)) } + + if ex.QueryIdentifier != 0 { + _, _ = fmt.Fprintf(writer, "Query ID: %d\n", ex.QueryIdentifier) + } } func (ex *Explain) writeExplainTextWithoutCosts(writer io.Writer) { diff --git a/pkg/pgexplain/pgexplain_test.go b/pkg/pgexplain/pgexplain_test.go index b12aa74..2c5e408 100644 --- a/pkg/pgexplain/pgexplain_test.go +++ b/pkg/pgexplain/pgexplain_test.go @@ -1165,6 +1165,7 @@ const InputJSON2 = `[ "Calls": 100 } ], + "Query Identifier": 1203128915683675161, "Execution Time": 0.199 } ]` @@ -1178,6 +1179,7 @@ const ExpectedText2 = ` Limit (cost=0.43..8.45 rows=1 width=22) (actual time=0. Trigger ConstraintTrigger_a_1645468 for constraint fk_636678b3bd: time=12.443 calls=100 Trigger ConstraintTrigger_a_12751 for constraint fk_0c0f730375: time=0.990 calls=100 Trigger ConstraintTrigger_a_21567 for constraint fk_1fa7a5f4da: time=131.407 calls=100 +Query ID: 1203128915683675161 ` const InputJSON3 = `[