# Other New Features

> Source chapter 3.7 for PostgreSQL 9.5.

---

LLMS index: [llms.txt](/en/llms.txt)

---

<div class="feature-source-note"><span class="feature-edition-badge">Alpha 2</span><span><strong>Source pages:</strong> PDF 72-74</span><span><a href="https://github.com/nori-shinoda/documents/blob/1773200c5362476c4a549222b7d17fa91f546cae/postgresql95_alpha2_new_feature_en_20150807-1.pdf">Original PDF on GitHub</a></span></div>

<p class="feature-page-marker" id="pgfeat-9-5-other-pdf-page-72">PDF page 72</p>

#### 3.7.1 Process Name {#pg9-5-3-7-1-process-name}

If a character string is specified to the new parameter cluster_name, specified string is given to the process name. Characters that can be specified in the parameter cluster_name is an ASCII characters (0x20 - 0x7E). The other characters are output after being converted to a question mark (?). The following example shown the process name that was specified as "cluster1" to cluster_name parameter. Postmaster process is not affected by this parameter.

**Example 71.** Parameter cluster\_name

```bash
$ ps -ef | grep postgres
postgres 12364     1  0 06:14 pts/0 00:00:00 /usr/local/pgsql/bin/postgres -D data
postgres 12365 12364  0 06:14 ?    00:00:00 postgres: cluster1: logger process
postgres 12367 12364  0 06:14 ?    00:00:00 postgres: cluster1: checkpointer process
postgres 12368 12364  0 06:14 ?    00:00:00 postgres: cluster1: writer process
postgres 12369 12364  0 06:14 ?    00:00:00 postgres: cluster1: wal writer process
postgres 12370 12364  0 06:14 ?    00:00:00 postgres: cluster1: autovacuum launcher process
postgres 12371 12364  0 06:14 ?    00:00:00 postgres: cluster1: stats collector process
It does not mean that cluster_name parameter is checked between database clusters. Even if multiple
instance, specified the same value to the cluster_name parameter, are executed in one host, it does not
result in an error.
```

<p class="feature-page-marker" id="pgfeat-9-5-other-pdf-page-73">PDF page 73</p>

#### 3.7.2 Output of EXPLAIN statement {#pg9-5-3-7-2-output-of-explain-statement}

In the output of EXPLAIN VERBOSE statement, additional information about the sort is now added. Underlined parts of the following example are the output added in PostgreSQL 9.5.

**Example 72.** Additional sort information

```text
postgres=> EXPLAIN VERBOSE SELECT * FROM sort1
ORDER BY c1 DESC, c2 COLLATE "C" ;
                      QUERY PLAN
-----------------------------------------------------------------------
 Sort  (cost=65.83..68.33 rows=1000 width=12)
   Output: c1, c2, ((c2)::character varying(10))
   Sort Key: sort1.c1 DESC, sort1.c2 COLLATE "C"
   ->  Seq Scan on public.sort1  (cost=0.00..16.00 rows=1000 width=12)
         Output: c1, c2, c2
```

#### 3.7.3 Log for Replication Command {#pg9-5-3-7-3-log-for-replication-command}

When you set the parameters log_replication_commands to "on" the master instance of the replication environment, the log of the replication operations which wal sender process executed is output. If this parameter is set to be "on", the message of which the output LOG level log is output. In case of default value ("off"), the log is output at DEBUG1 level. The beginning of the log is "received replication command:", followed by a replication-related command. For example, the following log is output when the slave instance connects.

**Example 73.** Log of slave instance connection

```text
LOG:  received replication command: IDENTIFY_SYSTEM
LOG:  received replication command: START_REPLICATION SLOT "slot_1" 0/7000000 TIMELINE 1
Log is not output at the time of the slave instance stop. Since pg_basebackup command also uses the
replication feature, the following log is output.
```

<p class="feature-page-marker" id="pgfeat-9-5-other-pdf-page-74">PDF page 74</p>

**Example 74.** Log of pg\_basebackup command

```text
LOG:  received replication command: IDENTIFY_SYSTEM
LOG:  received replication command: BASE_BACKUP LABEL 'pg_basebackup base backup'  WAL
NOWAIT
```

#### 3.7.4 Cast Type {#pg9-5-3-7-4-cast-type}

Newly added Cast type is utilized to convert oid type to object name. The following data types can be used.

**Table 32.** Data Type

| Data Type | Description |
| --- | --- |
| regnamespaceregrole | Get schema name Get role name |

In the following example, I have searched the schema name, table name, the owner name from pg_class catalog. Since "relowner" column, "relnamespace" column is type oid, type conversion is executed.

**Example 75.** search pg\_class catalog

```text
postgres=> SELECT relnamespace::regnamespace, relname, relowner::regrole
FROM pg_class WHERE relnamespace = 'public'::regnamespace ;
relnamespace | relname | relowner
--------------+---------+----------
public       | data1   | user1
 public       | data2   | user1
(2 rows)
```
