pgcrypto: Remove explicit hex encoding/decoding from tests

Started by Peter Eisentrautabout 4 years ago5 messages
#1Peter Eisentraut
peter.eisentraut@enterprisedb.com
1 attachment(s)

pgcrypto tests use encode() and decode() calls to convert to/from hex
encoding. This was from before the hex format was available in bytea.
Now we can remove the extra explicit encoding/decoding calls and rely on
the default output format.

Attachments:

0001-pgcrypto-Remove-explicit-hex-encoding-decoding-from-.patchtext/plain; charset=UTF-8; name=0001-pgcrypto-Remove-explicit-hex-encoding-decoding-from-.patchDownload
From 27591ed40bf88b62455fc9cd8ce0ee6b3230da76 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@eisentraut.org>
Date: Thu, 2 Dec 2021 10:13:58 +0100
Subject: [PATCH] pgcrypto: Remove explicit hex encoding/decoding from tests

This was from before the hex format was available in bytea.  Now we
can remove the extra explicit encoding/decoding calls and rely on the
default output format.
---
 contrib/pgcrypto/expected/3des.out            |  74 +++---
 contrib/pgcrypto/expected/blowfish.out        | 221 ++++++++----------
 contrib/pgcrypto/expected/blowfish_1.out      |  85 +++----
 contrib/pgcrypto/expected/cast5.out           |  87 +++----
 contrib/pgcrypto/expected/cast5_1.out         |  35 +--
 contrib/pgcrypto/expected/des.out             |  61 +++--
 contrib/pgcrypto/expected/des_1.out           |  21 +-
 contrib/pgcrypto/expected/hmac-md5.out        |  86 +++----
 contrib/pgcrypto/expected/hmac-sha1.out       |  86 +++----
 contrib/pgcrypto/expected/init.out            |  15 --
 contrib/pgcrypto/expected/md5.out             |  56 ++---
 contrib/pgcrypto/expected/pgp-armor.out       |  30 ++-
 contrib/pgcrypto/expected/pgp-decrypt.out     |  55 ++---
 contrib/pgcrypto/expected/pgp-decrypt_1.out   |  55 ++---
 contrib/pgcrypto/expected/pgp-encrypt.out     |  30 ++-
 .../pgcrypto/expected/pgp-pubkey-encrypt.out  |  10 +-
 contrib/pgcrypto/expected/rijndael.out        | 157 ++++++-------
 contrib/pgcrypto/expected/sha1.out            |  56 ++---
 contrib/pgcrypto/expected/sha2.out            | 176 +++++++-------
 contrib/pgcrypto/sql/3des.sql                 |  28 +--
 contrib/pgcrypto/sql/blowfish.sql             |  91 +++-----
 contrib/pgcrypto/sql/cast5.sql                |  35 +--
 contrib/pgcrypto/sql/des.sql                  |  21 +-
 contrib/pgcrypto/sql/hmac-md5.sql             |  44 ++--
 contrib/pgcrypto/sql/hmac-sha1.sql            |  44 ++--
 contrib/pgcrypto/sql/init.sql                 |   7 -
 contrib/pgcrypto/sql/md5.sql                  |  14 +-
 contrib/pgcrypto/sql/pgp-armor.sql            |  14 +-
 contrib/pgcrypto/sql/pgp-decrypt.sql          |  25 +-
 contrib/pgcrypto/sql/pgp-encrypt.sql          |  14 +-
 contrib/pgcrypto/sql/pgp-pubkey-encrypt.sql   |   6 +-
 contrib/pgcrypto/sql/rijndael.sql             |  75 +++---
 contrib/pgcrypto/sql/sha1.sql                 |  14 +-
 contrib/pgcrypto/sql/sha2.sql                 |  44 ++--
 34 files changed, 820 insertions(+), 1052 deletions(-)

diff --git a/contrib/pgcrypto/expected/3des.out b/contrib/pgcrypto/expected/3des.out
index 8983a73b8a..ee15489877 100644
--- a/contrib/pgcrypto/expected/3des.out
+++ b/contrib/pgcrypto/expected/3des.out
@@ -1,70 +1,64 @@
 --
 -- 3DES cipher
 --
--- ensure consistent test output regardless of the default bytea format
-SET bytea_output TO escape;
 -- test vector from somewhere
-SELECT encode(encrypt(
-decode('80 00 00 00 00 00 00 00', 'hex'),
-decode('01 01 01 01 01 01 01 01
-	01 01 01 01 01 01 01 01
-	01 01 01 01 01 01 01 01', 'hex'),
-'3des-ecb/pad:none'), 'hex');
-      encode      
-------------------
- 95f8a5e5dd31d900
+SELECT encrypt('\x8000000000000000',
+               '\x010101010101010101010101010101010101010101010101',
+               '3des-ecb/pad:none');
+      encrypt       
+--------------------
+ \x95f8a5e5dd31d900
 (1 row)
 
--- val 95 F8 A5 E5 DD 31 D9 00
-select encode(	encrypt('', 'foo', '3des'), 'hex');
-      encode      
-------------------
- 752111e37a2d7ac3
+select encrypt('', 'foo', '3des');
+      encrypt       
+--------------------
+ \x752111e37a2d7ac3
 (1 row)
 
 -- 10 bytes key
-select encode(	encrypt('foo', '0123456789', '3des'), 'hex');
-      encode      
-------------------
- d2fb8baa1717cb02
+select encrypt('foo', '0123456789', '3des');
+      encrypt       
+--------------------
+ \xd2fb8baa1717cb02
 (1 row)
 
 -- 22 bytes key
-select encode(	encrypt('foo', '0123456789012345678901', '3des'), 'hex');
-      encode      
-------------------
- a44360e699269817
+select encrypt('foo', '0123456789012345678901', '3des');
+      encrypt       
+--------------------
+ \xa44360e699269817
 (1 row)
 
 -- decrypt
-select decrypt(encrypt('foo', '0123456', '3des'), '0123456', '3des');
- decrypt 
----------
+select encode(decrypt(encrypt('foo', '0123456', '3des'), '0123456', '3des'), 'escape');
+ encode 
+--------
  foo
 (1 row)
 
 -- iv
-select encode(encrypt_iv('foo', '0123456', 'abcd', '3des'), 'hex');
-      encode      
-------------------
- 50735067b073bb93
+select encrypt_iv('foo', '0123456', 'abcd', '3des');
+     encrypt_iv     
+--------------------
+ \x50735067b073bb93
 (1 row)
 
-select decrypt_iv(decode('50735067b073bb93', 'hex'), '0123456', 'abcd', '3des');
- decrypt_iv 
-------------
+select encode(decrypt_iv('\x50735067b073bb93', '0123456', 'abcd', '3des'), 'escape');
+ encode 
+--------
  foo
 (1 row)
 
 -- long message
-select encode(encrypt('Lets try a longer message.', '0123456789012345678901', '3des'), 'hex');
-                              encode                              
-------------------------------------------------------------------
- b71e3422269d0ded19468f33d65cd663c28e0871984792a7b3ba0ddcecec8d2c
+select encrypt('Lets try a longer message.', '0123456789012345678901', '3des');
+                              encrypt                               
+--------------------------------------------------------------------
+ \xb71e3422269d0ded19468f33d65cd663c28e0871984792a7b3ba0ddcecec8d2c
 (1 row)
 
-select decrypt(encrypt('Lets try a longer message.', '0123456789012345678901', '3des'), '0123456789012345678901', '3des');
-          decrypt           
+select encode(decrypt(encrypt('Lets try a longer message.', '0123456789012345678901', '3des'), '0123456789012345678901', '3des'), 'escape');
+           encode           
 ----------------------------
  Lets try a longer message.
 (1 row)
diff --git a/contrib/pgcrypto/expected/blowfish.out b/contrib/pgcrypto/expected/blowfish.out
index 72557ea161..f0346a7651 100644
--- a/contrib/pgcrypto/expected/blowfish.out
+++ b/contrib/pgcrypto/expected/blowfish.out
@@ -1,174 +1,141 @@
 --
 -- Blowfish cipher
 --
--- ensure consistent test output regardless of the default bytea format
-SET bytea_output TO escape;
 -- some standard Blowfish testvalues
-SELECT encode(encrypt(
-decode('0000000000000000', 'hex'),
-decode('0000000000000000', 'hex'),
-'bf-ecb/pad:none'), 'hex');
-      encode      
-------------------
- 4ef997456198dd78
-(1 row)
-
-SELECT encode(encrypt(
-decode('ffffffffffffffff', 'hex'),
-decode('ffffffffffffffff', 'hex'),
-'bf-ecb/pad:none'), 'hex');
-      encode      
-------------------
- 51866fd5b85ecb8a
-(1 row)
-
-SELECT encode(encrypt(
-decode('1000000000000001', 'hex'),
-decode('3000000000000000', 'hex'),
-'bf-ecb/pad:none'), 'hex');
-      encode      
-------------------
- 7d856f9a613063f2
-(1 row)
-
-SELECT encode(encrypt(
-decode('1111111111111111', 'hex'),
-decode('1111111111111111', 'hex'),
-'bf-ecb/pad:none'), 'hex');
-      encode      
-------------------
- 2466dd878b963c9d
-(1 row)
-
-SELECT encode(encrypt(
-decode('0123456789abcdef', 'hex'),
-decode('fedcba9876543210', 'hex'),
-'bf-ecb/pad:none'), 'hex');
-      encode      
-------------------
- 0aceab0fc6a0a28d
-(1 row)
-
-SELECT encode(encrypt(
-decode('01a1d6d039776742', 'hex'),
-decode('fedcba9876543210', 'hex'),
-'bf-ecb/pad:none'), 'hex');
-      encode      
-------------------
- 3273b8badc9e9e15
-(1 row)
-
-SELECT encode(encrypt(
-decode('ffffffffffffffff', 'hex'),
-decode('0000000000000000', 'hex'),
-'bf-ecb/pad:none'), 'hex');
-      encode      
-------------------
- 014933e0cdaff6e4
+SELECT encrypt('\x0000000000000000', '\x0000000000000000', 'bf-ecb/pad:none');
+      encrypt       
+--------------------
+ \x4ef997456198dd78
+(1 row)
+
+SELECT encrypt('\xffffffffffffffff', '\xffffffffffffffff', 'bf-ecb/pad:none');
+      encrypt       
+--------------------
+ \x51866fd5b85ecb8a
+(1 row)
+
+SELECT encrypt('\x1000000000000001', '\x3000000000000000', 'bf-ecb/pad:none');
+      encrypt       
+--------------------
+ \x7d856f9a613063f2
+(1 row)
+
+SELECT encrypt('\x1111111111111111', '\x1111111111111111', 'bf-ecb/pad:none');
+      encrypt       
+--------------------
+ \x2466dd878b963c9d
+(1 row)
+
+SELECT encrypt('\x0123456789abcdef', '\xfedcba9876543210', 'bf-ecb/pad:none');
+      encrypt       
+--------------------
+ \x0aceab0fc6a0a28d
+(1 row)
+
+SELECT encrypt('\x01a1d6d039776742', '\xfedcba9876543210', 'bf-ecb/pad:none');
+      encrypt       
+--------------------
+ \x3273b8badc9e9e15
+(1 row)
+
+SELECT encrypt('\xffffffffffffffff', '\x0000000000000000', 'bf-ecb/pad:none');
+      encrypt       
+--------------------
+ \x014933e0cdaff6e4
 (1 row)
 
 -- setkey
-SELECT encode(encrypt(
-decode('fedcba9876543210', 'hex'),
-decode('f0e1d2c3b4a5968778695a4b3c2d1e0f', 'hex'),
-'bf-ecb/pad:none'), 'hex');
-      encode      
-------------------
- 93142887ee3be15c
+SELECT encrypt('\xfedcba9876543210', '\xf0e1d2c3b4a5968778695a4b3c2d1e0f', 'bf-ecb/pad:none');
+      encrypt       
+--------------------
+ \x93142887ee3be15c
 (1 row)
 
 -- with padding
-SELECT encode(encrypt(
-decode('01234567890123456789', 'hex'),
-decode('33443344334433443344334433443344', 'hex'),
-'bf-ecb'), 'hex');
-              encode              
-----------------------------------
- 0d04a43a20456dee5ede6ed9e4dcaaa6
+SELECT encrypt('\x01234567890123456789', '\x33443344334433443344334433443344', 'bf-ecb');
+              encrypt               
+------------------------------------
+ \x0d04a43a20456dee5ede6ed9e4dcaaa6
 (1 row)
 
 -- cbc
 -- 28 bytes key
-SELECT encode(encrypt(
-decode('6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5', 'hex'),
-decode('37363534333231204e6f77206973207468652074696d6520666f7220', 'hex'),
-'bf-cbc'), 'hex');
-                              encode                              
-------------------------------------------------------------------
- 4f2beb748c4f689ec755edb9dc252a41b93a3786850b4c75d6a702b6a8e48825
+SELECT encrypt('\x6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5',
+               '\x37363534333231204e6f77206973207468652074696d6520666f7220',
+               'bf-cbc');
+                              encrypt                               
+--------------------------------------------------------------------
+ \x4f2beb748c4f689ec755edb9dc252a41b93a3786850b4c75d6a702b6a8e48825
 (1 row)
 
 -- 29 bytes key
-SELECT encode(encrypt(
-decode('6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5ff92cc', 'hex'),
-decode('37363534333231204e6f77206973207468652074696d6520666f722000', 'hex'),
-'bf-cbc'), 'hex');
-                                      encode                                      
-----------------------------------------------------------------------------------
- 3ea6357a0ee7fad6d0c4b63464f2aafa40c2e91b4b7e1bba8114932fd92b5c8f111e7e50e7b2e541
+SELECT encrypt('\x6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5ff92cc',
+               '\x37363534333231204e6f77206973207468652074696d6520666f722000',
+               'bf-cbc');
+                                      encrypt                                       
+------------------------------------------------------------------------------------
+ \x3ea6357a0ee7fad6d0c4b63464f2aafa40c2e91b4b7e1bba8114932fd92b5c8f111e7e50e7b2e541
 (1 row)
 
 -- blowfish-448
-SELECT encode(encrypt(
-decode('fedcba9876543210', 'hex'),
-decode('f0e1d2c3b4a5968778695a4b3c2d1e0f001122334455667704689104c2fd3b2f584023641aba61761f1f1f1f0e0e0e0effffffffffffffff', 'hex'),
-'bf-ecb/pad:none'), 'hex');
-      encode      
-------------------
- c04504012e4e1f53
+SELECT encrypt('\xfedcba9876543210',
+               '\xf0e1d2c3b4a5968778695a4b3c2d1e0f001122334455667704689104c2fd3b2f584023641aba61761f1f1f1f0e0e0e0effffffffffffffff',
+               'bf-ecb/pad:none');
+      encrypt       
+--------------------
+ \xc04504012e4e1f53
 (1 row)
 
--- result: c04504012e4e1f53
 -- empty data
-select encode(encrypt('', 'foo', 'bf'), 'hex');
-      encode      
-------------------
- 1871949bb2311c8e
+select encrypt('', 'foo', 'bf');
+      encrypt       
+--------------------
+ \x1871949bb2311c8e
 (1 row)
 
 -- 10 bytes key
-select encode(encrypt('foo', '0123456789', 'bf'), 'hex');
-      encode      
-------------------
- 42f58af3b2c03f46
+select encrypt('foo', '0123456789', 'bf');
+      encrypt       
+--------------------
+ \x42f58af3b2c03f46
 (1 row)
 
 -- 22 bytes key
-select encode(encrypt('foo', '0123456789012345678901', 'bf'), 'hex');
-      encode      
-------------------
- 86ab6f0bc72b5f22
+select encrypt('foo', '0123456789012345678901', 'bf');
+      encrypt       
+--------------------
+ \x86ab6f0bc72b5f22
 (1 row)
 
 -- decrypt
-select decrypt(encrypt('foo', '0123456', 'bf'), '0123456', 'bf');
- decrypt 
----------
+select encode(decrypt(encrypt('foo', '0123456', 'bf'), '0123456', 'bf'), 'escape');
+ encode 
+--------
  foo
 (1 row)
 
 -- iv
-select encode(encrypt_iv('foo', '0123456', 'abcd', 'bf'), 'hex');
-      encode      
-------------------
- 95c7e89322525d59
+select encrypt_iv('foo', '0123456', 'abcd', 'bf');
+     encrypt_iv     
+--------------------
+ \x95c7e89322525d59
 (1 row)
 
-select decrypt_iv(decode('95c7e89322525d59', 'hex'), '0123456', 'abcd', 'bf');
- decrypt_iv 
-------------
+select encode(decrypt_iv('\x95c7e89322525d59', '0123456', 'abcd', 'bf'), 'escape');
+ encode 
+--------
  foo
 (1 row)
 
 -- long message
-select encode(encrypt('Lets try a longer message.', '0123456789', 'bf'), 'hex');
-                              encode                              
-------------------------------------------------------------------
- a76059f7a1b627b5b84080d9beb337714c7a7f8b70300023e5feb6dfa6813536
+select encrypt('Lets try a longer message.', '0123456789', 'bf');
+                              encrypt                               
+--------------------------------------------------------------------
+ \xa76059f7a1b627b5b84080d9beb337714c7a7f8b70300023e5feb6dfa6813536
 (1 row)
 
-select decrypt(encrypt('Lets try a longer message.', '0123456789', 'bf'), '0123456789', 'bf');
-          decrypt           
+select encode(decrypt(encrypt('Lets try a longer message.', '0123456789', 'bf'), '0123456789', 'bf'), 'escape');
+           encode           
 ----------------------------
  Lets try a longer message.
 (1 row)
diff --git a/contrib/pgcrypto/expected/blowfish_1.out b/contrib/pgcrypto/expected/blowfish_1.out
index 565a0853cb..4d5ce1fb6e 100644
--- a/contrib/pgcrypto/expected/blowfish_1.out
+++ b/contrib/pgcrypto/expected/blowfish_1.out
@@ -1,95 +1,62 @@
 --
 -- Blowfish cipher
 --
--- ensure consistent test output regardless of the default bytea format
-SET bytea_output TO escape;
 -- some standard Blowfish testvalues
-SELECT encode(encrypt(
-decode('0000000000000000', 'hex'),
-decode('0000000000000000', 'hex'),
-'bf-ecb/pad:none'), 'hex');
+SELECT encrypt('\x0000000000000000', '\x0000000000000000', 'bf-ecb/pad:none');
 ERROR:  encrypt error: Cipher cannot be initialized ?
-SELECT encode(encrypt(
-decode('ffffffffffffffff', 'hex'),
-decode('ffffffffffffffff', 'hex'),
-'bf-ecb/pad:none'), 'hex');
+SELECT encrypt('\xffffffffffffffff', '\xffffffffffffffff', 'bf-ecb/pad:none');
 ERROR:  encrypt error: Cipher cannot be initialized ?
-SELECT encode(encrypt(
-decode('1000000000000001', 'hex'),
-decode('3000000000000000', 'hex'),
-'bf-ecb/pad:none'), 'hex');
+SELECT encrypt('\x1000000000000001', '\x3000000000000000', 'bf-ecb/pad:none');
 ERROR:  encrypt error: Cipher cannot be initialized ?
-SELECT encode(encrypt(
-decode('1111111111111111', 'hex'),
-decode('1111111111111111', 'hex'),
-'bf-ecb/pad:none'), 'hex');
+SELECT encrypt('\x1111111111111111', '\x1111111111111111', 'bf-ecb/pad:none');
 ERROR:  encrypt error: Cipher cannot be initialized ?
-SELECT encode(encrypt(
-decode('0123456789abcdef', 'hex'),
-decode('fedcba9876543210', 'hex'),
-'bf-ecb/pad:none'), 'hex');
+SELECT encrypt('\x0123456789abcdef', '\xfedcba9876543210', 'bf-ecb/pad:none');
 ERROR:  encrypt error: Cipher cannot be initialized ?
-SELECT encode(encrypt(
-decode('01a1d6d039776742', 'hex'),
-decode('fedcba9876543210', 'hex'),
-'bf-ecb/pad:none'), 'hex');
+SELECT encrypt('\x01a1d6d039776742', '\xfedcba9876543210', 'bf-ecb/pad:none');
 ERROR:  encrypt error: Cipher cannot be initialized ?
-SELECT encode(encrypt(
-decode('ffffffffffffffff', 'hex'),
-decode('0000000000000000', 'hex'),
-'bf-ecb/pad:none'), 'hex');
+SELECT encrypt('\xffffffffffffffff', '\x0000000000000000', 'bf-ecb/pad:none');
 ERROR:  encrypt error: Cipher cannot be initialized ?
 -- setkey
-SELECT encode(encrypt(
-decode('fedcba9876543210', 'hex'),
-decode('f0e1d2c3b4a5968778695a4b3c2d1e0f', 'hex'),
-'bf-ecb/pad:none'), 'hex');
+SELECT encrypt('\xfedcba9876543210', '\xf0e1d2c3b4a5968778695a4b3c2d1e0f', 'bf-ecb/pad:none');
 ERROR:  encrypt error: Cipher cannot be initialized ?
 -- with padding
-SELECT encode(encrypt(
-decode('01234567890123456789', 'hex'),
-decode('33443344334433443344334433443344', 'hex'),
-'bf-ecb'), 'hex');
+SELECT encrypt('\x01234567890123456789', '\x33443344334433443344334433443344', 'bf-ecb');
 ERROR:  encrypt error: Cipher cannot be initialized ?
 -- cbc
 -- 28 bytes key
-SELECT encode(encrypt(
-decode('6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5', 'hex'),
-decode('37363534333231204e6f77206973207468652074696d6520666f7220', 'hex'),
-'bf-cbc'), 'hex');
+SELECT encrypt('\x6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5',
+               '\x37363534333231204e6f77206973207468652074696d6520666f7220',
+               'bf-cbc');
 ERROR:  encrypt error: Key was too big
 -- 29 bytes key
-SELECT encode(encrypt(
-decode('6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5ff92cc', 'hex'),
-decode('37363534333231204e6f77206973207468652074696d6520666f722000', 'hex'),
-'bf-cbc'), 'hex');
+SELECT encrypt('\x6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5ff92cc',
+               '\x37363534333231204e6f77206973207468652074696d6520666f722000',
+               'bf-cbc');
 ERROR:  encrypt error: Key was too big
 -- blowfish-448
-SELECT encode(encrypt(
-decode('fedcba9876543210', 'hex'),
-decode('f0e1d2c3b4a5968778695a4b3c2d1e0f001122334455667704689104c2fd3b2f584023641aba61761f1f1f1f0e0e0e0effffffffffffffff', 'hex'),
-'bf-ecb/pad:none'), 'hex');
+SELECT encrypt('\xfedcba9876543210',
+               '\xf0e1d2c3b4a5968778695a4b3c2d1e0f001122334455667704689104c2fd3b2f584023641aba61761f1f1f1f0e0e0e0effffffffffffffff',
+               'bf-ecb/pad:none');
 ERROR:  encrypt error: Key was too big
--- result: c04504012e4e1f53
 -- empty data
-select encode(encrypt('', 'foo', 'bf'), 'hex');
+select encrypt('', 'foo', 'bf');
 ERROR:  encrypt error: Cipher cannot be initialized ?
 -- 10 bytes key
-select encode(encrypt('foo', '0123456789', 'bf'), 'hex');
+select encrypt('foo', '0123456789', 'bf');
 ERROR:  encrypt error: Cipher cannot be initialized ?
 -- 22 bytes key
-select encode(encrypt('foo', '0123456789012345678901', 'bf'), 'hex');
+select encrypt('foo', '0123456789012345678901', 'bf');
 ERROR:  encrypt error: Key was too big
 -- decrypt
-select decrypt(encrypt('foo', '0123456', 'bf'), '0123456', 'bf');
+select encode(decrypt(encrypt('foo', '0123456', 'bf'), '0123456', 'bf'), 'escape');
 ERROR:  encrypt error: Cipher cannot be initialized ?
 -- iv
-select encode(encrypt_iv('foo', '0123456', 'abcd', 'bf'), 'hex');
+select encrypt_iv('foo', '0123456', 'abcd', 'bf');
 ERROR:  encrypt_iv error: Cipher cannot be initialized ?
-select decrypt_iv(decode('95c7e89322525d59', 'hex'), '0123456', 'abcd', 'bf');
+select encode(decrypt_iv('\x95c7e89322525d59', '0123456', 'abcd', 'bf'), 'escape');
 ERROR:  decrypt_iv error: Cipher cannot be initialized ?
 -- long message
-select encode(encrypt('Lets try a longer message.', '0123456789', 'bf'), 'hex');
+select encrypt('Lets try a longer message.', '0123456789', 'bf');
 ERROR:  encrypt error: Cipher cannot be initialized ?
-select decrypt(encrypt('Lets try a longer message.', '0123456789', 'bf'), '0123456789', 'bf');
+select encode(decrypt(encrypt('Lets try a longer message.', '0123456789', 'bf'), '0123456789', 'bf'), 'escape');
 ERROR:  encrypt error: Cipher cannot be initialized ?
diff --git a/contrib/pgcrypto/expected/cast5.out b/contrib/pgcrypto/expected/cast5.out
index c1ecd9197f..8a4da987ab 100644
--- a/contrib/pgcrypto/expected/cast5.out
+++ b/contrib/pgcrypto/expected/cast5.out
@@ -1,87 +1,72 @@
 --
 -- Cast5 cipher
 --
--- ensure consistent test output regardless of the default bytea format
-SET bytea_output TO escape;
 -- test vectors from RFC2144
 -- 128 bit key
-SELECT encode(encrypt(
-decode('01 23 45 67 89 AB CD EF', 'hex'),
-decode('01 23 45 67 12 34 56 78 23 45 67 89 34 56 78 9A', 'hex'),
-'cast5-ecb/pad:none'), 'hex');
-      encode      
-------------------
- 238b4fe5847e44b2
+SELECT encrypt('\x0123456789ABCDEF', '\x0123456712345678234567893456789A', 'cast5-ecb/pad:none');
+      encrypt       
+--------------------
+ \x238b4fe5847e44b2
 (1 row)
 
--- result: 23 8B 4F E5 84 7E 44 B2
 -- 80 bit key
-SELECT encode(encrypt(
-decode('01 23 45 67 89 AB CD EF', 'hex'),
-decode('01 23 45 67 12 34 56 78 23 45', 'hex'),
-'cast5-ecb/pad:none'), 'hex');
-      encode      
-------------------
- eb6a711a2c02271b
+SELECT encrypt('\x0123456789ABCDEF', '\x01234567123456782345', 'cast5-ecb/pad:none');
+      encrypt       
+--------------------
+ \xeb6a711a2c02271b
 (1 row)
 
--- result: EB 6A 71 1A 2C 02 27 1B
 -- 40 bit key
-SELECT encode(encrypt(
-decode('01 23 45 67 89 AB CD EF', 'hex'),
-decode('01 23 45 67 12', 'hex'),
-'cast5-ecb/pad:none'), 'hex');
-      encode      
-------------------
- 7ac816d16e9b302e
+SELECT encrypt('\x0123456789ABCDEF', '\x0123456712', 'cast5-ecb/pad:none');
+      encrypt       
+--------------------
+ \x7ac816d16e9b302e
 (1 row)
 
--- result: 7A C8 16 D1 6E 9B 30 2E
 -- cbc
 -- empty data
-select encode(	encrypt('', 'foo', 'cast5'), 'hex');
-      encode      
-------------------
- a48bd1aabde4de10
+select encrypt('', 'foo', 'cast5');
+      encrypt       
+--------------------
+ \xa48bd1aabde4de10
 (1 row)
 
 -- 10 bytes key
-select encode(	encrypt('foo', '0123456789', 'cast5'), 'hex');
-      encode      
-------------------
- b07f19255e60cb6d
+select encrypt('foo', '0123456789', 'cast5');
+      encrypt       
+--------------------
+ \xb07f19255e60cb6d
 (1 row)
 
 -- decrypt
-select decrypt(encrypt('foo', '0123456', 'cast5'), '0123456', 'cast5');
- decrypt 
----------
+select encode(decrypt(encrypt('foo', '0123456', 'cast5'), '0123456', 'cast5'), 'escape');
+ encode 
+--------
  foo
 (1 row)
 
 -- iv
-select encode(encrypt_iv('foo', '0123456', 'abcd', 'cast5'), 'hex');
-      encode      
-------------------
- 384a970695ce016a
+select encrypt_iv('foo', '0123456', 'abcd', 'cast5');
+     encrypt_iv     
+--------------------
+ \x384a970695ce016a
 (1 row)
 
-select decrypt_iv(decode('384a970695ce016a', 'hex'),
-                '0123456', 'abcd', 'cast5');
- decrypt_iv 
-------------
+select encode(decrypt_iv('\x384a970695ce016a', '0123456', 'abcd', 'cast5'), 'escape');
+ encode 
+--------
  foo
 (1 row)
 
 -- long message
-select encode(encrypt('Lets try a longer message.', '0123456789', 'cast5'), 'hex');
-                              encode                              
-------------------------------------------------------------------
- 04fcffc91533e1505dadcb10766d9fed0937818e663e402384e049942ba60fff
+select encrypt('Lets try a longer message.', '0123456789', 'cast5');
+                              encrypt                               
+--------------------------------------------------------------------
+ \x04fcffc91533e1505dadcb10766d9fed0937818e663e402384e049942ba60fff
 (1 row)
 
-select decrypt(encrypt('Lets try a longer message.', '0123456789', 'cast5'), '0123456789', 'cast5');
-          decrypt           
+select encode(decrypt(encrypt('Lets try a longer message.', '0123456789', 'cast5'), '0123456789', 'cast5'), 'escape');
+           encode           
 ----------------------------
  Lets try a longer message.
 (1 row)
diff --git a/contrib/pgcrypto/expected/cast5_1.out b/contrib/pgcrypto/expected/cast5_1.out
index e3b38dbce2..5acf7e4343 100644
--- a/contrib/pgcrypto/expected/cast5_1.out
+++ b/contrib/pgcrypto/expected/cast5_1.out
@@ -1,48 +1,33 @@
 --
 -- Cast5 cipher
 --
--- ensure consistent test output regardless of the default bytea format
-SET bytea_output TO escape;
 -- test vectors from RFC2144
 -- 128 bit key
-SELECT encode(encrypt(
-decode('01 23 45 67 89 AB CD EF', 'hex'),
-decode('01 23 45 67 12 34 56 78 23 45 67 89 34 56 78 9A', 'hex'),
-'cast5-ecb/pad:none'), 'hex');
+SELECT encrypt('\x0123456789ABCDEF', '\x0123456712345678234567893456789A', 'cast5-ecb/pad:none');
 ERROR:  encrypt error: Cipher cannot be initialized ?
--- result: 23 8B 4F E5 84 7E 44 B2
 -- 80 bit key
-SELECT encode(encrypt(
-decode('01 23 45 67 89 AB CD EF', 'hex'),
-decode('01 23 45 67 12 34 56 78 23 45', 'hex'),
-'cast5-ecb/pad:none'), 'hex');
+SELECT encrypt('\x0123456789ABCDEF', '\x01234567123456782345', 'cast5-ecb/pad:none');
 ERROR:  encrypt error: Cipher cannot be initialized ?
--- result: EB 6A 71 1A 2C 02 27 1B
 -- 40 bit key
-SELECT encode(encrypt(
-decode('01 23 45 67 89 AB CD EF', 'hex'),
-decode('01 23 45 67 12', 'hex'),
-'cast5-ecb/pad:none'), 'hex');
+SELECT encrypt('\x0123456789ABCDEF', '\x0123456712', 'cast5-ecb/pad:none');
 ERROR:  encrypt error: Cipher cannot be initialized ?
--- result: 7A C8 16 D1 6E 9B 30 2E
 -- cbc
 -- empty data
-select encode(	encrypt('', 'foo', 'cast5'), 'hex');
+select encrypt('', 'foo', 'cast5');
 ERROR:  encrypt error: Cipher cannot be initialized ?
 -- 10 bytes key
-select encode(	encrypt('foo', '0123456789', 'cast5'), 'hex');
+select encrypt('foo', '0123456789', 'cast5');
 ERROR:  encrypt error: Cipher cannot be initialized ?
 -- decrypt
-select decrypt(encrypt('foo', '0123456', 'cast5'), '0123456', 'cast5');
+select encode(decrypt(encrypt('foo', '0123456', 'cast5'), '0123456', 'cast5'), 'escape');
 ERROR:  encrypt error: Cipher cannot be initialized ?
 -- iv
-select encode(encrypt_iv('foo', '0123456', 'abcd', 'cast5'), 'hex');
+select encrypt_iv('foo', '0123456', 'abcd', 'cast5');
 ERROR:  encrypt_iv error: Cipher cannot be initialized ?
-select decrypt_iv(decode('384a970695ce016a', 'hex'),
-                '0123456', 'abcd', 'cast5');
+select encode(decrypt_iv('\x384a970695ce016a', '0123456', 'abcd', 'cast5'), 'escape');
 ERROR:  decrypt_iv error: Cipher cannot be initialized ?
 -- long message
-select encode(encrypt('Lets try a longer message.', '0123456789', 'cast5'), 'hex');
+select encrypt('Lets try a longer message.', '0123456789', 'cast5');
 ERROR:  encrypt error: Cipher cannot be initialized ?
-select decrypt(encrypt('Lets try a longer message.', '0123456789', 'cast5'), '0123456789', 'cast5');
+select encode(decrypt(encrypt('Lets try a longer message.', '0123456789', 'cast5'), '0123456789', 'cast5'), 'escape');
 ERROR:  encrypt error: Cipher cannot be initialized ?
diff --git a/contrib/pgcrypto/expected/des.out b/contrib/pgcrypto/expected/des.out
index d0fd0041ca..fdbaea26b9 100644
--- a/contrib/pgcrypto/expected/des.out
+++ b/contrib/pgcrypto/expected/des.out
@@ -1,62 +1,57 @@
 --
 -- DES cipher
 --
--- ensure consistent test output regardless of the default bytea format
-SET bytea_output TO escape;
 -- no official test vectors atm
 -- from blowfish.sql
-SELECT encode(encrypt(
-decode('0123456789abcdef', 'hex'),
-decode('fedcba9876543210', 'hex'),
-'des-ecb/pad:none'), 'hex');
-      encode      
-------------------
- ed39d950fa74bcc4
+SELECT encrypt('\x0123456789abcdef', '\xfedcba9876543210', 'des-ecb/pad:none');
+      encrypt       
+--------------------
+ \xed39d950fa74bcc4
 (1 row)
 
 -- empty data
-select encode(	encrypt('', 'foo', 'des'), 'hex');
-      encode      
-------------------
- 752111e37a2d7ac3
+select encrypt('', 'foo', 'des');
+      encrypt       
+--------------------
+ \x752111e37a2d7ac3
 (1 row)
 
 -- 8 bytes key
-select encode(	encrypt('foo', '01234589', 'des'), 'hex');
-      encode      
-------------------
- dec0f9c602b647a8
+select encrypt('foo', '01234589', 'des');
+      encrypt       
+--------------------
+ \xdec0f9c602b647a8
 (1 row)
 
 -- decrypt
-select decrypt(encrypt('foo', '0123456', 'des'), '0123456', 'des');
- decrypt 
----------
+select encode(decrypt(encrypt('foo', '0123456', 'des'), '0123456', 'des'), 'escape');
+ encode 
+--------
  foo
 (1 row)
 
 -- iv
-select encode(encrypt_iv('foo', '0123456', 'abcd', 'des'), 'hex');
-      encode      
-------------------
- 50735067b073bb93
+select encrypt_iv('foo', '0123456', 'abcd', 'des');
+     encrypt_iv     
+--------------------
+ \x50735067b073bb93
 (1 row)
 
-select decrypt_iv(decode('50735067b073bb93', 'hex'), '0123456', 'abcd', 'des');
- decrypt_iv 
-------------
+select encode(decrypt_iv('\x50735067b073bb93', '0123456', 'abcd', 'des'), 'escape');
+ encode 
+--------
  foo
 (1 row)
 
 -- long message
-select encode(encrypt('Lets try a longer message.', '01234567', 'des'), 'hex');
-                              encode                              
-------------------------------------------------------------------
- 5ad146043e5f30967e06a0fcbae602daf4ff2a5fd0ed12d6c5913cf85f1e36ca
+select encrypt('Lets try a longer message.', '01234567', 'des');
+                              encrypt                               
+--------------------------------------------------------------------
+ \x5ad146043e5f30967e06a0fcbae602daf4ff2a5fd0ed12d6c5913cf85f1e36ca
 (1 row)
 
-select decrypt(encrypt('Lets try a longer message.', '01234567', 'des'), '01234567', 'des');
-          decrypt           
+select encode(decrypt(encrypt('Lets try a longer message.', '01234567', 'des'), '01234567', 'des'), 'escape');
+           encode           
 ----------------------------
  Lets try a longer message.
 (1 row)
diff --git a/contrib/pgcrypto/expected/des_1.out b/contrib/pgcrypto/expected/des_1.out
index e8cca0505f..acacb38aaa 100644
--- a/contrib/pgcrypto/expected/des_1.out
+++ b/contrib/pgcrypto/expected/des_1.out
@@ -1,31 +1,26 @@
 --
 -- DES cipher
 --
--- ensure consistent test output regardless of the default bytea format
-SET bytea_output TO escape;
 -- no official test vectors atm
 -- from blowfish.sql
-SELECT encode(encrypt(
-decode('0123456789abcdef', 'hex'),
-decode('fedcba9876543210', 'hex'),
-'des-ecb/pad:none'), 'hex');
+SELECT encrypt('\x0123456789abcdef', '\xfedcba9876543210', 'des-ecb/pad:none');
 ERROR:  encrypt error: Cipher cannot be initialized ?
 -- empty data
-select encode(	encrypt('', 'foo', 'des'), 'hex');
+select encrypt('', 'foo', 'des');
 ERROR:  encrypt error: Cipher cannot be initialized ?
 -- 8 bytes key
-select encode(	encrypt('foo', '01234589', 'des'), 'hex');
+select encrypt('foo', '01234589', 'des');
 ERROR:  encrypt error: Cipher cannot be initialized ?
 -- decrypt
-select decrypt(encrypt('foo', '0123456', 'des'), '0123456', 'des');
+select encode(decrypt(encrypt('foo', '0123456', 'des'), '0123456', 'des'), 'escape');
 ERROR:  encrypt error: Cipher cannot be initialized ?
 -- iv
-select encode(encrypt_iv('foo', '0123456', 'abcd', 'des'), 'hex');
+select encrypt_iv('foo', '0123456', 'abcd', 'des');
 ERROR:  encrypt_iv error: Cipher cannot be initialized ?
-select decrypt_iv(decode('50735067b073bb93', 'hex'), '0123456', 'abcd', 'des');
+select encode(decrypt_iv('\x50735067b073bb93', '0123456', 'abcd', 'des'), 'escape');
 ERROR:  decrypt_iv error: Cipher cannot be initialized ?
 -- long message
-select encode(encrypt('Lets try a longer message.', '01234567', 'des'), 'hex');
+select encrypt('Lets try a longer message.', '01234567', 'des');
 ERROR:  encrypt error: Cipher cannot be initialized ?
-select decrypt(encrypt('Lets try a longer message.', '01234567', 'des'), '01234567', 'des');
+select encode(decrypt(encrypt('Lets try a longer message.', '01234567', 'des'), '01234567', 'des'), 'escape');
 ERROR:  encrypt error: Cipher cannot be initialized ?
diff --git a/contrib/pgcrypto/expected/hmac-md5.out b/contrib/pgcrypto/expected/hmac-md5.out
index 9eded3b933..0d8d761d48 100644
--- a/contrib/pgcrypto/expected/hmac-md5.out
+++ b/contrib/pgcrypto/expected/hmac-md5.out
@@ -1,72 +1,72 @@
 --
 -- HMAC-MD5
 --
-SELECT encode(hmac(
+SELECT hmac(
 'Hi There',
-decode('0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b', 'hex'),
-'md5'), 'hex');
-              encode              
-----------------------------------
- 9294727a3638bb1c13f48ef8158bfc9d
+'\x0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b'::bytea,
+'md5');
+                hmac                
+------------------------------------
+ \x9294727a3638bb1c13f48ef8158bfc9d
 (1 row)
 
 -- 2
-SELECT encode(hmac(
+SELECT hmac(
 'Jefe',
 'what do ya want for nothing?',
-'md5'), 'hex');
-              encode              
-----------------------------------
- 813aead7c4a34bff01a16d61368e7c13
+'md5');
+                hmac                
+------------------------------------
+ \x813aead7c4a34bff01a16d61368e7c13
 (1 row)
 
 -- 3
-SELECT encode(hmac(
-decode('dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd', 'hex'),
-decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
-'md5'), 'hex');
-              encode              
-----------------------------------
- 56be34521d144c88dbb8c733f0e8b3f6
+SELECT hmac(
+'\xdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd'::bytea,
+'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea,
+'md5');
+                hmac                
+------------------------------------
+ \x56be34521d144c88dbb8c733f0e8b3f6
 (1 row)
 
 -- 4
-SELECT encode(hmac(
-decode('cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd', 'hex'),
-decode('0102030405060708090a0b0c0d0e0f10111213141516171819', 'hex'),
-'md5'), 'hex');
-              encode              
-----------------------------------
- 697eaf0aca3a3aea3a75164746ffaa79
+SELECT hmac(
+'\xcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd'::bytea,
+'\x0102030405060708090a0b0c0d0e0f10111213141516171819'::bytea,
+'md5');
+                hmac                
+------------------------------------
+ \x697eaf0aca3a3aea3a75164746ffaa79
 (1 row)
 
 -- 5
-SELECT encode(hmac(
+SELECT hmac(
 'Test With Truncation',
-decode('0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c', 'hex'),
-'md5'), 'hex');
-              encode              
-----------------------------------
- 56461ef2342edc00f9bab995690efd4c
+'\x0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c'::bytea,
+'md5');
+                hmac                
+------------------------------------
+ \x56461ef2342edc00f9bab995690efd4c
 (1 row)
 
 -- 6
-SELECT encode(hmac(
+SELECT hmac(
 'Test Using Larger Than Block-Size Key - Hash Key First',
-decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
-'md5'), 'hex');
-              encode              
-----------------------------------
- 6b1ab7fe4bd7bf8f0b62e6ce61b9d0cd
+'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea,
+'md5');
+                hmac                
+------------------------------------
+ \x6b1ab7fe4bd7bf8f0b62e6ce61b9d0cd
 (1 row)
 
 -- 7
-SELECT encode(hmac(
+SELECT hmac(
 'Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data',
-decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
-'md5'), 'hex');
-              encode              
-----------------------------------
- 6f630fad67cda0ee1fb1f562db3aa53e
+'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea,
+'md5');
+                hmac                
+------------------------------------
+ \x6f630fad67cda0ee1fb1f562db3aa53e
 (1 row)
 
diff --git a/contrib/pgcrypto/expected/hmac-sha1.out b/contrib/pgcrypto/expected/hmac-sha1.out
index de605b804e..a7d4c38587 100644
--- a/contrib/pgcrypto/expected/hmac-sha1.out
+++ b/contrib/pgcrypto/expected/hmac-sha1.out
@@ -1,72 +1,72 @@
 --
 -- HMAC-SHA1
 --
-SELECT encode(hmac(
+SELECT hmac(
 'Hi There',
-decode('0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b', 'hex'),
-'sha1'), 'hex');
-                  encode                  
-------------------------------------------
- 675b0b3a1b4ddf4e124872da6c2f632bfed957e9
+'\x0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b'::bytea,
+'sha1');
+                    hmac                    
+--------------------------------------------
+ \x675b0b3a1b4ddf4e124872da6c2f632bfed957e9
 (1 row)
 
 -- 2
-SELECT encode(hmac(
+SELECT hmac(
 'Jefe',
 'what do ya want for nothing?',
-'sha1'), 'hex');
-                  encode                  
-------------------------------------------
- 156d4c35468a0339f3fa57a067bf47f814eb7a57
+'sha1');
+                    hmac                    
+--------------------------------------------
+ \x156d4c35468a0339f3fa57a067bf47f814eb7a57
 (1 row)
 
 -- 3
-SELECT encode(hmac(
-decode('dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd', 'hex'),
-decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
-'sha1'), 'hex');
-                  encode                  
-------------------------------------------
- d730594d167e35d5956fd8003d0db3d3f46dc7bb
+SELECT hmac(
+'\xdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd'::bytea,
+'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea,
+'sha1');
+                    hmac                    
+--------------------------------------------
+ \xd730594d167e35d5956fd8003d0db3d3f46dc7bb
 (1 row)
 
 -- 4
-SELECT encode(hmac(
-decode('cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd', 'hex'),
-decode('0102030405060708090a0b0c0d0e0f10111213141516171819', 'hex'),
-'sha1'), 'hex');
-                  encode                  
-------------------------------------------
- 4c9007f4026250c6bc8414f9bf50c86c2d7235da
+SELECT hmac(
+'\xcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd'::bytea,
+'\x0102030405060708090a0b0c0d0e0f10111213141516171819'::bytea,
+'sha1');
+                    hmac                    
+--------------------------------------------
+ \x4c9007f4026250c6bc8414f9bf50c86c2d7235da
 (1 row)
 
 -- 5
-SELECT encode(hmac(
+SELECT hmac(
 'Test With Truncation',
-decode('0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c', 'hex'),
-'sha1'), 'hex');
-                  encode                  
-------------------------------------------
- 37268b7e21e84da5720c53c4ba03ad1104039fa7
+'\x0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c'::bytea,
+'sha1');
+                    hmac                    
+--------------------------------------------
+ \x37268b7e21e84da5720c53c4ba03ad1104039fa7
 (1 row)
 
 -- 6
-SELECT encode(hmac(
+SELECT hmac(
 'Test Using Larger Than Block-Size Key - Hash Key First',
-decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
-'sha1'), 'hex');
-                  encode                  
-------------------------------------------
- aa4ae5e15272d00e95705637ce8a3b55ed402112
+'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea,
+'sha1');
+                    hmac                    
+--------------------------------------------
+ \xaa4ae5e15272d00e95705637ce8a3b55ed402112
 (1 row)
 
 -- 7
-SELECT encode(hmac(
+SELECT hmac(
 'Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data',
-decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
-'sha1'), 'hex');
-                  encode                  
-------------------------------------------
- e8e99d0f45237d786d6bbaa7965c7808bbff1a91
+'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea,
+'sha1');
+                    hmac                    
+--------------------------------------------
+ \xe8e99d0f45237d786d6bbaa7965c7808bbff1a91
 (1 row)
 
diff --git a/contrib/pgcrypto/expected/init.out b/contrib/pgcrypto/expected/init.out
index bd8f8e1380..d1341a6715 100644
--- a/contrib/pgcrypto/expected/init.out
+++ b/contrib/pgcrypto/expected/init.out
@@ -2,21 +2,6 @@
 -- init pgcrypto
 --
 CREATE EXTENSION pgcrypto;
--- ensure consistent test output regardless of the default bytea format
-SET bytea_output TO escape;
--- check for encoding fn's
-SELECT encode('foo', 'hex');
- encode 
---------
- 666f6f
-(1 row)
-
-SELECT decode('666f6f', 'hex');
- decode 
---------
- foo
-(1 row)
-
 -- check error handling
 select gen_salt('foo');
 ERROR:  gen_salt: Unknown salt algorithm
diff --git a/contrib/pgcrypto/expected/md5.out b/contrib/pgcrypto/expected/md5.out
index e3301af45c..179059448b 100644
--- a/contrib/pgcrypto/expected/md5.out
+++ b/contrib/pgcrypto/expected/md5.out
@@ -1,45 +1,45 @@
 --
 -- MD5 message digest
 --
-SELECT encode(digest('', 'md5'), 'hex');
-              encode              
-----------------------------------
- d41d8cd98f00b204e9800998ecf8427e
+SELECT digest('', 'md5');
+               digest               
+------------------------------------
+ \xd41d8cd98f00b204e9800998ecf8427e
 (1 row)
 
-SELECT encode(digest('a', 'md5'), 'hex');
-              encode              
-----------------------------------
- 0cc175b9c0f1b6a831c399e269772661
+SELECT digest('a', 'md5');
+               digest               
+------------------------------------
+ \x0cc175b9c0f1b6a831c399e269772661
 (1 row)
 
-SELECT encode(digest('abc', 'md5'), 'hex');
-              encode              
-----------------------------------
- 900150983cd24fb0d6963f7d28e17f72
+SELECT digest('abc', 'md5');
+               digest               
+------------------------------------
+ \x900150983cd24fb0d6963f7d28e17f72
 (1 row)
 
-SELECT encode(digest('message digest', 'md5'), 'hex');
-              encode              
-----------------------------------
- f96b697d7cb7938d525a2f31aaf161d0
+SELECT digest('message digest', 'md5');
+               digest               
+------------------------------------
+ \xf96b697d7cb7938d525a2f31aaf161d0
 (1 row)
 
-SELECT encode(digest('abcdefghijklmnopqrstuvwxyz', 'md5'), 'hex');
-              encode              
-----------------------------------
- c3fcd3d76192e4007dfb496cca67e13b
+SELECT digest('abcdefghijklmnopqrstuvwxyz', 'md5');
+               digest               
+------------------------------------
+ \xc3fcd3d76192e4007dfb496cca67e13b
 (1 row)
 
-SELECT encode(digest('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 'md5'), 'hex');
-              encode              
-----------------------------------
- d174ab98d277d9f5a5611c2c9f419d9f
+SELECT digest('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 'md5');
+               digest               
+------------------------------------
+ \xd174ab98d277d9f5a5611c2c9f419d9f
 (1 row)
 
-SELECT encode(digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'md5'), 'hex');
-              encode              
-----------------------------------
- 57edf4a22be3c955ac49da2e2107b67a
+SELECT digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'md5');
+               digest               
+------------------------------------
+ \x57edf4a22be3c955ac49da2e2107b67a
 (1 row)
 
diff --git a/contrib/pgcrypto/expected/pgp-armor.out b/contrib/pgcrypto/expected/pgp-armor.out
index 89d410a7dc..0f5ff46180 100644
--- a/contrib/pgcrypto/expected/pgp-armor.out
+++ b/contrib/pgcrypto/expected/pgp-armor.out
@@ -1,8 +1,6 @@
 --
 -- PGP Armor
 --
--- ensure consistent test output regardless of the default bytea format
-SET bytea_output TO escape;
 select armor('');
             armor            
 -----------------------------
@@ -24,15 +22,15 @@ select armor('test');
  
 (1 row)
 
-select dearmor(armor(''));
- dearmor 
----------
+select encode(dearmor(armor('')), 'escape');
+ encode 
+--------
  
 (1 row)
 
-select dearmor(armor('zooka'));
- dearmor 
----------
+select encode(dearmor(armor('zooka')), 'escape');
+ encode 
+--------
  zooka
 (1 row)
 
@@ -50,7 +48,7 @@ select armor('0123456789abcdef0123456789abcdef0123456789abcdef
 (1 row)
 
 -- lots formatting
-select dearmor(' a pgp msg:
+select encode(dearmor(' a pgp msg:
 
 -----BEGIN PGP MESSAGE-----
 Comment: Some junk
@@ -59,14 +57,14 @@ em9va2E=
 
   =D5cR
 
------END PGP MESSAGE-----');
- dearmor 
----------
+-----END PGP MESSAGE-----'), 'escape');
+ encode 
+--------
  zooka
 (1 row)
 
 -- lots messages
-select dearmor('
+select encode(dearmor('
 wrong packet:
   -----BEGIN PGP MESSAGE-----
 
@@ -87,9 +85,9 @@ use only first packet
 d3Jvbmc=
 =vCYP
 -----END PGP MESSAGE-----
-');
- dearmor 
----------
+'), 'escape');
+ encode 
+--------
  right
 (1 row)
 
diff --git a/contrib/pgcrypto/expected/pgp-decrypt.out b/contrib/pgcrypto/expected/pgp-decrypt.out
index e8250b090a..cd8a84249b 100644
--- a/contrib/pgcrypto/expected/pgp-decrypt.out
+++ b/contrib/pgcrypto/expected/pgp-decrypt.out
@@ -287,7 +287,7 @@ FwsDabdQUz5O7bgNSnxfmyw1OifGF+W2bIn/8W+0rDf8u3+O+Q==
 (1 row)
 
 -- Checking various data
-select encode(digest(pgp_sym_decrypt(dearmor('
+select digest(pgp_sym_decrypt(dearmor('
 -----BEGIN PGP MESSAGE-----
 Comment: dat1.aes.sha1.mdc.s2k3.z0
 
@@ -295,14 +295,13 @@ jA0EBwMCGJ+SpuOysINg0kQBJfSjzsW0x4OVcAyr17O7FBvMTwIGeGcJd99oTQU8
 Xtx3kDqnhUq9Z1fS3qPbi5iNP2A9NxOBxPWz2JzxhydANlgbxg==
 =W/ik
 -----END PGP MESSAGE-----
-'), '0123456789abcdefghij'), 'sha1'), 'hex');
-                  encode                  
-------------------------------------------
- 0225e3ede6f2587b076d021a189ff60aad67e066
+'), '0123456789abcdefghij'), 'sha1');
+                   digest                   
+--------------------------------------------
+ \x0225e3ede6f2587b076d021a189ff60aad67e066
 (1 row)
 
--- expected: 0225e3ede6f2587b076d021a189ff60aad67e066
-select encode(digest(pgp_sym_decrypt(dearmor('
+select digest(pgp_sym_decrypt(dearmor('
 -----BEGIN PGP MESSAGE-----
 Comment: dat2.aes.sha1.mdc.s2k3.z0
 
@@ -310,14 +309,13 @@ jA0EBwMCvdpDvidNzMxg0jUBvj8eS2+1t/9/zgemxvhtc0fvdKGGbjH7dleaTJRB
 SaV9L04ky1qECNDx3XjnoKLC+H7IOQ==
 =Fxen
 -----END PGP MESSAGE-----
-'), '0123456789abcdefghij'), 'sha1'), 'hex');
-                  encode                  
-------------------------------------------
- da39a3ee5e6b4b0d3255bfef95601890afd80709
+'), '0123456789abcdefghij'), 'sha1');
+                   digest                   
+--------------------------------------------
+ \xda39a3ee5e6b4b0d3255bfef95601890afd80709
 (1 row)
 
--- expected: da39a3ee5e6b4b0d3255bfef95601890afd80709
-select encode(digest(pgp_sym_decrypt(dearmor('
+select digest(pgp_sym_decrypt(dearmor('
 -----BEGIN PGP MESSAGE-----
 Comment: dat3.aes.sha1.mdc.s2k3.z0
 
@@ -326,15 +324,14 @@ gFnkUKIE0PSaYFp+Yi1VlRfUtRQ/X/LYNGa7tWZS+4VQajz2Xtz4vUeAEiYFYPXk
 73Hb8m1yRhQK
 =ivrD
 -----END PGP MESSAGE-----
-'), '0123456789abcdefghij'), 'sha1'), 'hex');
-                  encode                  
-------------------------------------------
- 5e5c135efc0dd00633efc6dfd6e731ea408a5b4c
+'), '0123456789abcdefghij'), 'sha1');
+                   digest                   
+--------------------------------------------
+ \x5e5c135efc0dd00633efc6dfd6e731ea408a5b4c
 (1 row)
 
--- expected: 5e5c135efc0dd00633efc6dfd6e731ea408a5b4c
 -- Checking CRLF
-select encode(digest(pgp_sym_decrypt(dearmor('
+select digest(pgp_sym_decrypt(dearmor('
 -----BEGIN PGP MESSAGE-----
 Comment: crlf mess
 
@@ -342,14 +339,13 @@ ww0ECQMCt7VAtby6l4Bi0lgB5KMIZiiF/b3CfMfUyY0eDncsGXtkbu1X+l9brjpMP8eJnY79Amms
 a3nsOzKTXUfS9VyaXo8IrncM6n7fdaXpwba/3tNsAhJG4lDv1k4g9v8Ix2dfv6Rs
 =mBP9
 -----END PGP MESSAGE-----
-'), 'key', 'convert-crlf=0'), 'sha1'), 'hex');
-                  encode                  
-------------------------------------------
- 9353062be7720f1446d30b9e75573a4833886784
+'), 'key', 'convert-crlf=0'), 'sha1');
+                   digest                   
+--------------------------------------------
+ \x9353062be7720f1446d30b9e75573a4833886784
 (1 row)
 
--- expected: 9353062be7720f1446d30b9e75573a4833886784
-select encode(digest(pgp_sym_decrypt(dearmor('
+select digest(pgp_sym_decrypt(dearmor('
 -----BEGIN PGP MESSAGE-----
 Comment: crlf mess
 
@@ -357,13 +353,12 @@ ww0ECQMCt7VAtby6l4Bi0lgB5KMIZiiF/b3CfMfUyY0eDncsGXtkbu1X+l9brjpMP8eJnY79Amms
 a3nsOzKTXUfS9VyaXo8IrncM6n7fdaXpwba/3tNsAhJG4lDv1k4g9v8Ix2dfv6Rs
 =mBP9
 -----END PGP MESSAGE-----
-'), 'key', 'convert-crlf=1'), 'sha1'), 'hex');
-                  encode                  
-------------------------------------------
- 7efefcab38467f7484d6fa43dc86cf5281bd78e2
+'), 'key', 'convert-crlf=1'), 'sha1');
+                   digest                   
+--------------------------------------------
+ \x7efefcab38467f7484d6fa43dc86cf5281bd78e2
 (1 row)
 
--- expected: 7efefcab38467f7484d6fa43dc86cf5281bd78e2
 -- check BUG #11905, problem with messages 6 less than a power of 2.
 select pgp_sym_decrypt(pgp_sym_encrypt(repeat('x',65530),'1'),'1') = repeat('x',65530);
  ?column? 
diff --git a/contrib/pgcrypto/expected/pgp-decrypt_1.out b/contrib/pgcrypto/expected/pgp-decrypt_1.out
index 63d5ab9865..6c7f127bec 100644
--- a/contrib/pgcrypto/expected/pgp-decrypt_1.out
+++ b/contrib/pgcrypto/expected/pgp-decrypt_1.out
@@ -283,7 +283,7 @@ FwsDabdQUz5O7bgNSnxfmyw1OifGF+W2bIn/8W+0rDf8u3+O+Q==
 (1 row)
 
 -- Checking various data
-select encode(digest(pgp_sym_decrypt(dearmor('
+select digest(pgp_sym_decrypt(dearmor('
 -----BEGIN PGP MESSAGE-----
 Comment: dat1.aes.sha1.mdc.s2k3.z0
 
@@ -291,14 +291,13 @@ jA0EBwMCGJ+SpuOysINg0kQBJfSjzsW0x4OVcAyr17O7FBvMTwIGeGcJd99oTQU8
 Xtx3kDqnhUq9Z1fS3qPbi5iNP2A9NxOBxPWz2JzxhydANlgbxg==
 =W/ik
 -----END PGP MESSAGE-----
-'), '0123456789abcdefghij'), 'sha1'), 'hex');
-                  encode                  
-------------------------------------------
- 0225e3ede6f2587b076d021a189ff60aad67e066
+'), '0123456789abcdefghij'), 'sha1');
+                   digest                   
+--------------------------------------------
+ \x0225e3ede6f2587b076d021a189ff60aad67e066
 (1 row)
 
--- expected: 0225e3ede6f2587b076d021a189ff60aad67e066
-select encode(digest(pgp_sym_decrypt(dearmor('
+select digest(pgp_sym_decrypt(dearmor('
 -----BEGIN PGP MESSAGE-----
 Comment: dat2.aes.sha1.mdc.s2k3.z0
 
@@ -306,14 +305,13 @@ jA0EBwMCvdpDvidNzMxg0jUBvj8eS2+1t/9/zgemxvhtc0fvdKGGbjH7dleaTJRB
 SaV9L04ky1qECNDx3XjnoKLC+H7IOQ==
 =Fxen
 -----END PGP MESSAGE-----
-'), '0123456789abcdefghij'), 'sha1'), 'hex');
-                  encode                  
-------------------------------------------
- da39a3ee5e6b4b0d3255bfef95601890afd80709
+'), '0123456789abcdefghij'), 'sha1');
+                   digest                   
+--------------------------------------------
+ \xda39a3ee5e6b4b0d3255bfef95601890afd80709
 (1 row)
 
--- expected: da39a3ee5e6b4b0d3255bfef95601890afd80709
-select encode(digest(pgp_sym_decrypt(dearmor('
+select digest(pgp_sym_decrypt(dearmor('
 -----BEGIN PGP MESSAGE-----
 Comment: dat3.aes.sha1.mdc.s2k3.z0
 
@@ -322,15 +320,14 @@ gFnkUKIE0PSaYFp+Yi1VlRfUtRQ/X/LYNGa7tWZS+4VQajz2Xtz4vUeAEiYFYPXk
 73Hb8m1yRhQK
 =ivrD
 -----END PGP MESSAGE-----
-'), '0123456789abcdefghij'), 'sha1'), 'hex');
-                  encode                  
-------------------------------------------
- 5e5c135efc0dd00633efc6dfd6e731ea408a5b4c
+'), '0123456789abcdefghij'), 'sha1');
+                   digest                   
+--------------------------------------------
+ \x5e5c135efc0dd00633efc6dfd6e731ea408a5b4c
 (1 row)
 
--- expected: 5e5c135efc0dd00633efc6dfd6e731ea408a5b4c
 -- Checking CRLF
-select encode(digest(pgp_sym_decrypt(dearmor('
+select digest(pgp_sym_decrypt(dearmor('
 -----BEGIN PGP MESSAGE-----
 Comment: crlf mess
 
@@ -338,14 +335,13 @@ ww0ECQMCt7VAtby6l4Bi0lgB5KMIZiiF/b3CfMfUyY0eDncsGXtkbu1X+l9brjpMP8eJnY79Amms
 a3nsOzKTXUfS9VyaXo8IrncM6n7fdaXpwba/3tNsAhJG4lDv1k4g9v8Ix2dfv6Rs
 =mBP9
 -----END PGP MESSAGE-----
-'), 'key', 'convert-crlf=0'), 'sha1'), 'hex');
-                  encode                  
-------------------------------------------
- 9353062be7720f1446d30b9e75573a4833886784
+'), 'key', 'convert-crlf=0'), 'sha1');
+                   digest                   
+--------------------------------------------
+ \x9353062be7720f1446d30b9e75573a4833886784
 (1 row)
 
--- expected: 9353062be7720f1446d30b9e75573a4833886784
-select encode(digest(pgp_sym_decrypt(dearmor('
+select digest(pgp_sym_decrypt(dearmor('
 -----BEGIN PGP MESSAGE-----
 Comment: crlf mess
 
@@ -353,13 +349,12 @@ ww0ECQMCt7VAtby6l4Bi0lgB5KMIZiiF/b3CfMfUyY0eDncsGXtkbu1X+l9brjpMP8eJnY79Amms
 a3nsOzKTXUfS9VyaXo8IrncM6n7fdaXpwba/3tNsAhJG4lDv1k4g9v8Ix2dfv6Rs
 =mBP9
 -----END PGP MESSAGE-----
-'), 'key', 'convert-crlf=1'), 'sha1'), 'hex');
-                  encode                  
-------------------------------------------
- 7efefcab38467f7484d6fa43dc86cf5281bd78e2
+'), 'key', 'convert-crlf=1'), 'sha1');
+                   digest                   
+--------------------------------------------
+ \x7efefcab38467f7484d6fa43dc86cf5281bd78e2
 (1 row)
 
--- expected: 7efefcab38467f7484d6fa43dc86cf5281bd78e2
 -- check BUG #11905, problem with messages 6 less than a power of 2.
 select pgp_sym_decrypt(pgp_sym_encrypt(repeat('x',65530),'1'),'1') = repeat('x',65530);
  ?column? 
diff --git a/contrib/pgcrypto/expected/pgp-encrypt.out b/contrib/pgcrypto/expected/pgp-encrypt.out
index 8fc558c402..77e45abe53 100644
--- a/contrib/pgcrypto/expected/pgp-encrypt.out
+++ b/contrib/pgcrypto/expected/pgp-encrypt.out
@@ -1,8 +1,6 @@
 --
 -- PGP encrypt
 --
--- ensure consistent test output regardless of the default bytea format
-SET bytea_output TO escape;
 select pgp_sym_decrypt(pgp_sym_encrypt('Secret.', 'key'), 'key');
  pgp_sym_decrypt 
 -----------------
@@ -47,9 +45,9 @@ NOTICE:  pgp_decrypt: unexpected compress_algo: expected 1 got 0
 select pgp_sym_decrypt(pgp_sym_encrypt_bytea('Binary', 'baz'), 'baz');
 ERROR:  Not text data
 -- text as bytea
-select pgp_sym_decrypt_bytea(pgp_sym_encrypt('Text', 'baz'), 'baz');
- pgp_sym_decrypt_bytea 
------------------------
+select encode(pgp_sym_decrypt_bytea(pgp_sym_encrypt('Text', 'baz'), 'baz'), 'escape');
+ encode 
+--------
  Text
 (1 row)
 
@@ -190,21 +188,21 @@ select pgp_sym_decrypt(
 (1 row)
 
 -- crlf
-select encode(pgp_sym_decrypt_bytea(
+select pgp_sym_decrypt_bytea(
 	pgp_sym_encrypt(E'1\n2\n3\r\n', 'key', 'convert-crlf=1'),
-	'key'), 'hex');
-        encode        
-----------------------
- 310d0a320d0a330d0d0a
+	'key');
+ pgp_sym_decrypt_bytea  
+------------------------
+ \x310d0a320d0a330d0d0a
 (1 row)
 
 -- conversion should be lossless
-select encode(digest(pgp_sym_decrypt(
+select digest(pgp_sym_decrypt(
   pgp_sym_encrypt(E'\r\n0\n1\r\r\n\n2\r', 'key', 'convert-crlf=1'),
-	'key', 'convert-crlf=1'), 'sha1'), 'hex') as result,
-  encode(digest(E'\r\n0\n1\r\r\n\n2\r', 'sha1'), 'hex') as expect;
-                  result                  |                  expect                  
-------------------------------------------+------------------------------------------
- 47bde5d88d6ef8770572b9cbb4278b402aa69966 | 47bde5d88d6ef8770572b9cbb4278b402aa69966
+	'key', 'convert-crlf=1'), 'sha1') as result,
+  digest(E'\r\n0\n1\r\r\n\n2\r', 'sha1') as expect;
+                   result                   |                   expect                   
+--------------------------------------------+--------------------------------------------
+ \x47bde5d88d6ef8770572b9cbb4278b402aa69966 | \x47bde5d88d6ef8770572b9cbb4278b402aa69966
 (1 row)
 
diff --git a/contrib/pgcrypto/expected/pgp-pubkey-encrypt.out b/contrib/pgcrypto/expected/pgp-pubkey-encrypt.out
index df2756c4d0..7f90554046 100644
--- a/contrib/pgcrypto/expected/pgp-pubkey-encrypt.out
+++ b/contrib/pgcrypto/expected/pgp-pubkey-encrypt.out
@@ -1,8 +1,6 @@
 --
 -- PGP Public Key Encryption
 --
--- ensure consistent test output regardless of the default bytea format
-SET bytea_output TO escape;
 -- successful encrypt/decrypt
 select pgp_pub_decrypt(
 	pgp_pub_encrypt('Secret msg', dearmor(pubkey)),
@@ -53,12 +51,12 @@ select pgp_pub_decrypt(
 from keytbl where keytbl.id=1;
 ERROR:  Refusing to encrypt with secret key
 -- does text-to-bytea works
-select pgp_pub_decrypt_bytea(
+select encode(pgp_pub_decrypt_bytea(
 		pgp_pub_encrypt('Secret msg', dearmor(pubkey)),
-		dearmor(seckey))
+		dearmor(seckey)), 'escape')
 from keytbl where keytbl.id=1;
- pgp_pub_decrypt_bytea 
------------------------
+   encode   
+------------
  Secret msg
 (1 row)
 
diff --git a/contrib/pgcrypto/expected/rijndael.out b/contrib/pgcrypto/expected/rijndael.out
index 5366604a3d..ad69cdba49 100644
--- a/contrib/pgcrypto/expected/rijndael.out
+++ b/contrib/pgcrypto/expected/rijndael.out
@@ -1,125 +1,122 @@
 --
 -- AES cipher (aka Rijndael-128, -192, or -256)
 --
--- ensure consistent test output regardless of the default bytea format
-SET bytea_output TO escape;
 -- some standard Rijndael testvalues
-SELECT encode(encrypt(
-decode('00112233445566778899aabbccddeeff', 'hex'),
-decode('000102030405060708090a0b0c0d0e0f', 'hex'),
-'aes-ecb/pad:none'), 'hex');
-              encode              
-----------------------------------
- 69c4e0d86a7b0430d8cdb78070b4c55a
+SELECT encrypt(
+'\x00112233445566778899aabbccddeeff',
+'\x000102030405060708090a0b0c0d0e0f',
+'aes-ecb/pad:none');
+              encrypt               
+------------------------------------
+ \x69c4e0d86a7b0430d8cdb78070b4c55a
 (1 row)
 
-SELECT encode(encrypt(
-decode('00112233445566778899aabbccddeeff', 'hex'),
-decode('000102030405060708090a0b0c0d0e0f1011121314151617', 'hex'),
-'aes-ecb/pad:none'), 'hex');
-              encode              
-----------------------------------
- dda97ca4864cdfe06eaf70a0ec0d7191
+SELECT encrypt(
+'\x00112233445566778899aabbccddeeff',
+'\x000102030405060708090a0b0c0d0e0f1011121314151617',
+'aes-ecb/pad:none');
+              encrypt               
+------------------------------------
+ \xdda97ca4864cdfe06eaf70a0ec0d7191
 (1 row)
 
-SELECT encode(encrypt(
-decode('00112233445566778899aabbccddeeff', 'hex'),
-decode('000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f', 'hex'),
-'aes-ecb/pad:none'), 'hex');
-              encode              
-----------------------------------
- 8ea2b7ca516745bfeafc49904b496089
+SELECT encrypt(
+'\x00112233445566778899aabbccddeeff',
+'\x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f',
+'aes-ecb/pad:none');
+              encrypt               
+------------------------------------
+ \x8ea2b7ca516745bfeafc49904b496089
 (1 row)
 
 -- cbc
-SELECT encode(encrypt(
-decode('00112233445566778899aabbccddeeff', 'hex'),
-decode('000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f', 'hex'),
-'aes-cbc/pad:none'), 'hex');
-              encode              
-----------------------------------
- 8ea2b7ca516745bfeafc49904b496089
+SELECT encrypt(
+'\x00112233445566778899aabbccddeeff',
+'\x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f',
+'aes-cbc/pad:none');
+              encrypt               
+------------------------------------
+ \x8ea2b7ca516745bfeafc49904b496089
 (1 row)
 
 -- key padding
-SELECT encode(encrypt(
-decode('0011223344', 'hex'),
-decode('000102030405', 'hex'),
-'aes-cbc'), 'hex');
-              encode              
-----------------------------------
- 189a28932213f017b246678dbc28655f
+SELECT encrypt(
+'\x0011223344',
+'\x000102030405',
+'aes-cbc');
+              encrypt               
+------------------------------------
+ \x189a28932213f017b246678dbc28655f
 (1 row)
 
-SELECT encode(encrypt(
-decode('0011223344', 'hex'),
-decode('000102030405060708090a0b0c0d0e0f10111213', 'hex'),
-'aes-cbc'), 'hex');
-              encode              
-----------------------------------
- 3b02279162d15580e069d3a71407a556
+SELECT encrypt(
+'\x0011223344',
+'\x000102030405060708090a0b0c0d0e0f10111213',
+'aes-cbc');
+              encrypt               
+------------------------------------
+ \x3b02279162d15580e069d3a71407a556
 (1 row)
 
-SELECT encode(encrypt(
-decode('0011223344', 'hex'),
-decode('000102030405060708090a0b0c0d0e0f101112131415161718191a1b', 'hex'),
-'aes-cbc'), 'hex');
-              encode              
-----------------------------------
- 4facb6a041d53e0a5a73289170901fe7
+SELECT encrypt(
+'\x0011223344',
+'\x000102030405060708090a0b0c0d0e0f101112131415161718191a1b',
+'aes-cbc');
+              encrypt               
+------------------------------------
+ \x4facb6a041d53e0a5a73289170901fe7
 (1 row)
 
 -- empty data
-select encode(encrypt('', 'foo', 'aes'), 'hex');
-              encode              
-----------------------------------
- b48cc3338a2eb293b6007ef72c360d48
+select encrypt('', 'foo', 'aes');
+              encrypt               
+------------------------------------
+ \xb48cc3338a2eb293b6007ef72c360d48
 (1 row)
 
 -- 10 bytes key
-select encode(encrypt('foo', '0123456789', 'aes'), 'hex');
-              encode              
-----------------------------------
- f397f03d2819b7172b68d0706fda4693
+select encrypt('foo', '0123456789', 'aes');
+              encrypt               
+------------------------------------
+ \xf397f03d2819b7172b68d0706fda4693
 (1 row)
 
 -- 22 bytes key
-select encode(encrypt('foo', '0123456789012345678901', 'aes'), 'hex');
-              encode              
-----------------------------------
- 5c9db77af02b4678117bcd8a71ae7f53
+select encrypt('foo', '0123456789012345678901', 'aes');
+              encrypt               
+------------------------------------
+ \x5c9db77af02b4678117bcd8a71ae7f53
 (1 row)
 
 -- decrypt
-select decrypt(encrypt('foo', '0123456', 'aes'), '0123456', 'aes');
- decrypt 
----------
+select encode(decrypt(encrypt('foo', '0123456', 'aes'), '0123456', 'aes'), 'escape');
+ encode 
+--------
  foo
 (1 row)
 
 -- iv
-select encode(encrypt_iv('foo', '0123456', 'abcd', 'aes'), 'hex');
-              encode              
-----------------------------------
- 2c24cb7da91d6d5699801268b0f5adad
+select encrypt_iv('foo', '0123456', 'abcd', 'aes');
+             encrypt_iv             
+------------------------------------
+ \x2c24cb7da91d6d5699801268b0f5adad
 (1 row)
 
-select decrypt_iv(decode('2c24cb7da91d6d5699801268b0f5adad', 'hex'),
-		'0123456', 'abcd', 'aes');
- decrypt_iv 
-------------
+select encode(decrypt_iv('\x2c24cb7da91d6d5699801268b0f5adad', '0123456', 'abcd', 'aes'), 'escape');
+ encode 
+--------
  foo
 (1 row)
 
 -- long message
-select encode(encrypt('Lets try a longer message.', '0123456789', 'aes'), 'hex');
-                              encode                              
-------------------------------------------------------------------
- d9beb785dd5403ed02f66b755bb191b93ed93ca54930153f2c3b9ec7785056ad
+select encrypt('Lets try a longer message.', '0123456789', 'aes');
+                              encrypt                               
+--------------------------------------------------------------------
+ \xd9beb785dd5403ed02f66b755bb191b93ed93ca54930153f2c3b9ec7785056ad
 (1 row)
 
-select decrypt(encrypt('Lets try a longer message.', '0123456789', 'aes'), '0123456789', 'aes');
-          decrypt           
+select encode(decrypt(encrypt('Lets try a longer message.', '0123456789', 'aes'), '0123456789', 'aes'), 'escape');
+           encode           
 ----------------------------
  Lets try a longer message.
 (1 row)
diff --git a/contrib/pgcrypto/expected/sha1.out b/contrib/pgcrypto/expected/sha1.out
index 9324d5d924..b8eaed1c5a 100644
--- a/contrib/pgcrypto/expected/sha1.out
+++ b/contrib/pgcrypto/expected/sha1.out
@@ -1,45 +1,45 @@
 --
 -- SHA1 message digest
 --
-SELECT encode(digest('', 'sha1'), 'hex');
-                  encode                  
-------------------------------------------
- da39a3ee5e6b4b0d3255bfef95601890afd80709
+SELECT digest('', 'sha1');
+                   digest                   
+--------------------------------------------
+ \xda39a3ee5e6b4b0d3255bfef95601890afd80709
 (1 row)
 
-SELECT encode(digest('a', 'sha1'), 'hex');
-                  encode                  
-------------------------------------------
- 86f7e437faa5a7fce15d1ddcb9eaeaea377667b8
+SELECT digest('a', 'sha1');
+                   digest                   
+--------------------------------------------
+ \x86f7e437faa5a7fce15d1ddcb9eaeaea377667b8
 (1 row)
 
-SELECT encode(digest('abc', 'sha1'), 'hex');
-                  encode                  
-------------------------------------------
- a9993e364706816aba3e25717850c26c9cd0d89d
+SELECT digest('abc', 'sha1');
+                   digest                   
+--------------------------------------------
+ \xa9993e364706816aba3e25717850c26c9cd0d89d
 (1 row)
 
-SELECT encode(digest('message digest', 'sha1'), 'hex');
-                  encode                  
-------------------------------------------
- c12252ceda8be8994d5fa0290a47231c1d16aae3
+SELECT digest('message digest', 'sha1');
+                   digest                   
+--------------------------------------------
+ \xc12252ceda8be8994d5fa0290a47231c1d16aae3
 (1 row)
 
-SELECT encode(digest('abcdefghijklmnopqrstuvwxyz', 'sha1'), 'hex');
-                  encode                  
-------------------------------------------
- 32d10c7b8cf96570ca04ce37f2a19d84240d3a89
+SELECT digest('abcdefghijklmnopqrstuvwxyz', 'sha1');
+                   digest                   
+--------------------------------------------
+ \x32d10c7b8cf96570ca04ce37f2a19d84240d3a89
 (1 row)
 
-SELECT encode(digest('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 'sha1'), 'hex');
-                  encode                  
-------------------------------------------
- 761c457bf73b14d27e9e9265c46f4b4dda11f940
+SELECT digest('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 'sha1');
+                   digest                   
+--------------------------------------------
+ \x761c457bf73b14d27e9e9265c46f4b4dda11f940
 (1 row)
 
-SELECT encode(digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'sha1'), 'hex');
-                  encode                  
-------------------------------------------
- 50abf5706a150990a08b2c5ea40fa0e585554732
+SELECT digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'sha1');
+                   digest                   
+--------------------------------------------
+ \x50abf5706a150990a08b2c5ea40fa0e585554732
 (1 row)
 
diff --git a/contrib/pgcrypto/expected/sha2.out b/contrib/pgcrypto/expected/sha2.out
index 2df5a0d0f9..6f67fe6eca 100644
--- a/contrib/pgcrypto/expected/sha2.out
+++ b/contrib/pgcrypto/expected/sha2.out
@@ -2,138 +2,138 @@
 -- SHA2 family
 --
 -- SHA224
-SELECT encode(digest('', 'sha224'), 'hex');
-                          encode                          
-----------------------------------------------------------
- d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f
+SELECT digest('', 'sha224');
+                           digest                           
+------------------------------------------------------------
+ \xd14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f
 (1 row)
 
-SELECT encode(digest('a', 'sha224'), 'hex');
-                          encode                          
-----------------------------------------------------------
- abd37534c7d9a2efb9465de931cd7055ffdb8879563ae98078d6d6d5
+SELECT digest('a', 'sha224');
+                           digest                           
+------------------------------------------------------------
+ \xabd37534c7d9a2efb9465de931cd7055ffdb8879563ae98078d6d6d5
 (1 row)
 
-SELECT encode(digest('abc', 'sha224'), 'hex');
-                          encode                          
-----------------------------------------------------------
- 23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7
+SELECT digest('abc', 'sha224');
+                           digest                           
+------------------------------------------------------------
+ \x23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7
 (1 row)
 
-SELECT encode(digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha224'), 'hex');
-                          encode                          
-----------------------------------------------------------
- 75388b16512776cc5dba5da1fd890150b0c6455cb4f58b1952522525
+SELECT digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha224');
+                           digest                           
+------------------------------------------------------------
+ \x75388b16512776cc5dba5da1fd890150b0c6455cb4f58b1952522525
 (1 row)
 
-SELECT encode(digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'sha224'), 'hex');
-                          encode                          
-----------------------------------------------------------
- b50aecbe4e9bb0b57bc5f3ae760a8e01db24f203fb3cdcd13148046e
+SELECT digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'sha224');
+                           digest                           
+------------------------------------------------------------
+ \xb50aecbe4e9bb0b57bc5f3ae760a8e01db24f203fb3cdcd13148046e
 (1 row)
 
 -- SHA256
-SELECT encode(digest('', 'sha256'), 'hex');
-                              encode                              
-------------------------------------------------------------------
- e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
+SELECT digest('', 'sha256');
+                               digest                               
+--------------------------------------------------------------------
+ \xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
 (1 row)
 
-SELECT encode(digest('a', 'sha256'), 'hex');
-                              encode                              
-------------------------------------------------------------------
- ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb
+SELECT digest('a', 'sha256');
+                               digest                               
+--------------------------------------------------------------------
+ \xca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb
 (1 row)
 
-SELECT encode(digest('abc', 'sha256'), 'hex');
-                              encode                              
-------------------------------------------------------------------
- ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
+SELECT digest('abc', 'sha256');
+                               digest                               
+--------------------------------------------------------------------
+ \xba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
 (1 row)
 
-SELECT encode(digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha256'), 'hex');
-                              encode                              
-------------------------------------------------------------------
- 248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1
+SELECT digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha256');
+                               digest                               
+--------------------------------------------------------------------
+ \x248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1
 (1 row)
 
-SELECT encode(digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'sha256'), 'hex');
-                              encode                              
-------------------------------------------------------------------
- f371bc4a311f2b009eef952dd83ca80e2b60026c8e935592d0f9c308453c813e
+SELECT digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'sha256');
+                               digest                               
+--------------------------------------------------------------------
+ \xf371bc4a311f2b009eef952dd83ca80e2b60026c8e935592d0f9c308453c813e
 (1 row)
 
 -- SHA384
-SELECT encode(digest('', 'sha384'), 'hex');
-                                              encode                                              
---------------------------------------------------------------------------------------------------
- 38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b
+SELECT digest('', 'sha384');
+                                               digest                                               
+----------------------------------------------------------------------------------------------------
+ \x38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b
 (1 row)
 
-SELECT encode(digest('a', 'sha384'), 'hex');
-                                              encode                                              
---------------------------------------------------------------------------------------------------
- 54a59b9f22b0b80880d8427e548b7c23abd873486e1f035dce9cd697e85175033caa88e6d57bc35efae0b5afd3145f31
+SELECT digest('a', 'sha384');
+                                               digest                                               
+----------------------------------------------------------------------------------------------------
+ \x54a59b9f22b0b80880d8427e548b7c23abd873486e1f035dce9cd697e85175033caa88e6d57bc35efae0b5afd3145f31
 (1 row)
 
-SELECT encode(digest('abc', 'sha384'), 'hex');
-                                              encode                                              
---------------------------------------------------------------------------------------------------
- cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7
+SELECT digest('abc', 'sha384');
+                                               digest                                               
+----------------------------------------------------------------------------------------------------
+ \xcb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7
 (1 row)
 
-SELECT encode(digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha384'), 'hex');
-                                              encode                                              
---------------------------------------------------------------------------------------------------
- 3391fdddfc8dc7393707a65b1b4709397cf8b1d162af05abfe8f450de5f36bc6b0455a8520bc4e6f5fe95b1fe3c8452b
+SELECT digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha384');
+                                               digest                                               
+----------------------------------------------------------------------------------------------------
+ \x3391fdddfc8dc7393707a65b1b4709397cf8b1d162af05abfe8f450de5f36bc6b0455a8520bc4e6f5fe95b1fe3c8452b
 (1 row)
 
-SELECT encode(digest('abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu', 'sha384'), 'hex');
-                                              encode                                              
---------------------------------------------------------------------------------------------------
- 09330c33f71147e83d192fc782cd1b4753111b173b3b05d22fa08086e3b0f712fcc7c71a557e2db966c3e9fa91746039
+SELECT digest('abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu', 'sha384');
+                                               digest                                               
+----------------------------------------------------------------------------------------------------
+ \x09330c33f71147e83d192fc782cd1b4753111b173b3b05d22fa08086e3b0f712fcc7c71a557e2db966c3e9fa91746039
 (1 row)
 
-SELECT encode(digest('abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz', 'sha384'), 'hex');
-                                              encode                                              
---------------------------------------------------------------------------------------------------
- 3d208973ab3508dbbd7e2c2862ba290ad3010e4978c198dc4d8fd014e582823a89e16f9b2a7bbc1ac938e2d199e8bea4
+SELECT digest('abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz', 'sha384');
+                                               digest                                               
+----------------------------------------------------------------------------------------------------
+ \x3d208973ab3508dbbd7e2c2862ba290ad3010e4978c198dc4d8fd014e582823a89e16f9b2a7bbc1ac938e2d199e8bea4
 (1 row)
 
 -- SHA512
-SELECT encode(digest('', 'sha512'), 'hex');
-                                                              encode                                                              
-----------------------------------------------------------------------------------------------------------------------------------
- cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e
+SELECT digest('', 'sha512');
+                                                               digest                                                               
+------------------------------------------------------------------------------------------------------------------------------------
+ \xcf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e
 (1 row)
 
-SELECT encode(digest('a', 'sha512'), 'hex');
-                                                              encode                                                              
-----------------------------------------------------------------------------------------------------------------------------------
- 1f40fc92da241694750979ee6cf582f2d5d7d28e18335de05abc54d0560e0f5302860c652bf08d560252aa5e74210546f369fbbbce8c12cfc7957b2652fe9a75
+SELECT digest('a', 'sha512');
+                                                               digest                                                               
+------------------------------------------------------------------------------------------------------------------------------------
+ \x1f40fc92da241694750979ee6cf582f2d5d7d28e18335de05abc54d0560e0f5302860c652bf08d560252aa5e74210546f369fbbbce8c12cfc7957b2652fe9a75
 (1 row)
 
-SELECT encode(digest('abc', 'sha512'), 'hex');
-                                                              encode                                                              
-----------------------------------------------------------------------------------------------------------------------------------
- ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f
+SELECT digest('abc', 'sha512');
+                                                               digest                                                               
+------------------------------------------------------------------------------------------------------------------------------------
+ \xddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f
 (1 row)
 
-SELECT encode(digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha512'), 'hex');
-                                                              encode                                                              
-----------------------------------------------------------------------------------------------------------------------------------
- 204a8fc6dda82f0a0ced7beb8e08a41657c16ef468b228a8279be331a703c33596fd15c13b1b07f9aa1d3bea57789ca031ad85c7a71dd70354ec631238ca3445
+SELECT digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha512');
+                                                               digest                                                               
+------------------------------------------------------------------------------------------------------------------------------------
+ \x204a8fc6dda82f0a0ced7beb8e08a41657c16ef468b228a8279be331a703c33596fd15c13b1b07f9aa1d3bea57789ca031ad85c7a71dd70354ec631238ca3445
 (1 row)
 
-SELECT encode(digest('abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu', 'sha512'), 'hex');
-                                                              encode                                                              
-----------------------------------------------------------------------------------------------------------------------------------
- 8e959b75dae313da8cf4f72814fc143f8f7779c6eb9f7fa17299aeadb6889018501d289e4900f7e4331b99dec4b5433ac7d329eeb6dd26545e96e55b874be909
+SELECT digest('abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu', 'sha512');
+                                                               digest                                                               
+------------------------------------------------------------------------------------------------------------------------------------
+ \x8e959b75dae313da8cf4f72814fc143f8f7779c6eb9f7fa17299aeadb6889018501d289e4900f7e4331b99dec4b5433ac7d329eeb6dd26545e96e55b874be909
 (1 row)
 
-SELECT encode(digest('abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz', 'sha512'), 'hex');
-                                                              encode                                                              
-----------------------------------------------------------------------------------------------------------------------------------
- 930d0cefcb30ff1133b6898121f1cf3d27578afcafe8677c5257cf069911f75d8f5831b56ebfda67b278e66dff8b84fe2b2870f742a580d8edb41987232850c9
+SELECT digest('abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz', 'sha512');
+                                                               digest                                                               
+------------------------------------------------------------------------------------------------------------------------------------
+ \x930d0cefcb30ff1133b6898121f1cf3d27578afcafe8677c5257cf069911f75d8f5831b56ebfda67b278e66dff8b84fe2b2870f742a580d8edb41987232850c9
 (1 row)
 
diff --git a/contrib/pgcrypto/sql/3des.sql b/contrib/pgcrypto/sql/3des.sql
index ef54592060..1b71a108c2 100644
--- a/contrib/pgcrypto/sql/3des.sql
+++ b/contrib/pgcrypto/sql/3des.sql
@@ -1,31 +1,25 @@
 --
 -- 3DES cipher
 --
--- ensure consistent test output regardless of the default bytea format
-SET bytea_output TO escape;
 
 -- test vector from somewhere
-SELECT encode(encrypt(
-decode('80 00 00 00 00 00 00 00', 'hex'),
-decode('01 01 01 01 01 01 01 01
-	01 01 01 01 01 01 01 01
-	01 01 01 01 01 01 01 01', 'hex'),
-'3des-ecb/pad:none'), 'hex');
--- val 95 F8 A5 E5 DD 31 D9 00
+SELECT encrypt('\x8000000000000000',
+               '\x010101010101010101010101010101010101010101010101',
+               '3des-ecb/pad:none');
 
-select encode(	encrypt('', 'foo', '3des'), 'hex');
+select encrypt('', 'foo', '3des');
 -- 10 bytes key
-select encode(	encrypt('foo', '0123456789', '3des'), 'hex');
+select encrypt('foo', '0123456789', '3des');
 -- 22 bytes key
-select encode(	encrypt('foo', '0123456789012345678901', '3des'), 'hex');
+select encrypt('foo', '0123456789012345678901', '3des');
 
 -- decrypt
-select decrypt(encrypt('foo', '0123456', '3des'), '0123456', '3des');
+select encode(decrypt(encrypt('foo', '0123456', '3des'), '0123456', '3des'), 'escape');
 
 -- iv
-select encode(encrypt_iv('foo', '0123456', 'abcd', '3des'), 'hex');
-select decrypt_iv(decode('50735067b073bb93', 'hex'), '0123456', 'abcd', '3des');
+select encrypt_iv('foo', '0123456', 'abcd', '3des');
+select encode(decrypt_iv('\x50735067b073bb93', '0123456', 'abcd', '3des'), 'escape');
 
 -- long message
-select encode(encrypt('Lets try a longer message.', '0123456789012345678901', '3des'), 'hex');
-select decrypt(encrypt('Lets try a longer message.', '0123456789012345678901', '3des'), '0123456789012345678901', '3des');
+select encrypt('Lets try a longer message.', '0123456789012345678901', '3des');
+select encode(decrypt(encrypt('Lets try a longer message.', '0123456789012345678901', '3des'), '0123456789012345678901', '3des'), 'escape');
diff --git a/contrib/pgcrypto/sql/blowfish.sql b/contrib/pgcrypto/sql/blowfish.sql
index ba8df41c68..c212cf2e37 100644
--- a/contrib/pgcrypto/sql/blowfish.sql
+++ b/contrib/pgcrypto/sql/blowfish.sql
@@ -1,92 +1,53 @@
 --
 -- Blowfish cipher
 --
--- ensure consistent test output regardless of the default bytea format
-SET bytea_output TO escape;
 
 -- some standard Blowfish testvalues
-SELECT encode(encrypt(
-decode('0000000000000000', 'hex'),
-decode('0000000000000000', 'hex'),
-'bf-ecb/pad:none'), 'hex');
-
-SELECT encode(encrypt(
-decode('ffffffffffffffff', 'hex'),
-decode('ffffffffffffffff', 'hex'),
-'bf-ecb/pad:none'), 'hex');
-
-SELECT encode(encrypt(
-decode('1000000000000001', 'hex'),
-decode('3000000000000000', 'hex'),
-'bf-ecb/pad:none'), 'hex');
-
-SELECT encode(encrypt(
-decode('1111111111111111', 'hex'),
-decode('1111111111111111', 'hex'),
-'bf-ecb/pad:none'), 'hex');
-
-SELECT encode(encrypt(
-decode('0123456789abcdef', 'hex'),
-decode('fedcba9876543210', 'hex'),
-'bf-ecb/pad:none'), 'hex');
-
-SELECT encode(encrypt(
-decode('01a1d6d039776742', 'hex'),
-decode('fedcba9876543210', 'hex'),
-'bf-ecb/pad:none'), 'hex');
-
-SELECT encode(encrypt(
-decode('ffffffffffffffff', 'hex'),
-decode('0000000000000000', 'hex'),
-'bf-ecb/pad:none'), 'hex');
+SELECT encrypt('\x0000000000000000', '\x0000000000000000', 'bf-ecb/pad:none');
+SELECT encrypt('\xffffffffffffffff', '\xffffffffffffffff', 'bf-ecb/pad:none');
+SELECT encrypt('\x1000000000000001', '\x3000000000000000', 'bf-ecb/pad:none');
+SELECT encrypt('\x1111111111111111', '\x1111111111111111', 'bf-ecb/pad:none');
+SELECT encrypt('\x0123456789abcdef', '\xfedcba9876543210', 'bf-ecb/pad:none');
+SELECT encrypt('\x01a1d6d039776742', '\xfedcba9876543210', 'bf-ecb/pad:none');
+SELECT encrypt('\xffffffffffffffff', '\x0000000000000000', 'bf-ecb/pad:none');
 
 -- setkey
-SELECT encode(encrypt(
-decode('fedcba9876543210', 'hex'),
-decode('f0e1d2c3b4a5968778695a4b3c2d1e0f', 'hex'),
-'bf-ecb/pad:none'), 'hex');
+SELECT encrypt('\xfedcba9876543210', '\xf0e1d2c3b4a5968778695a4b3c2d1e0f', 'bf-ecb/pad:none');
 
 -- with padding
-SELECT encode(encrypt(
-decode('01234567890123456789', 'hex'),
-decode('33443344334433443344334433443344', 'hex'),
-'bf-ecb'), 'hex');
+SELECT encrypt('\x01234567890123456789', '\x33443344334433443344334433443344', 'bf-ecb');
 
 -- cbc
 
 -- 28 bytes key
-SELECT encode(encrypt(
-decode('6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5', 'hex'),
-decode('37363534333231204e6f77206973207468652074696d6520666f7220', 'hex'),
-'bf-cbc'), 'hex');
+SELECT encrypt('\x6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5',
+               '\x37363534333231204e6f77206973207468652074696d6520666f7220',
+               'bf-cbc');
 
 -- 29 bytes key
-SELECT encode(encrypt(
-decode('6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5ff92cc', 'hex'),
-decode('37363534333231204e6f77206973207468652074696d6520666f722000', 'hex'),
-'bf-cbc'), 'hex');
+SELECT encrypt('\x6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5ff92cc',
+               '\x37363534333231204e6f77206973207468652074696d6520666f722000',
+               'bf-cbc');
 
 -- blowfish-448
-SELECT encode(encrypt(
-decode('fedcba9876543210', 'hex'),
-decode('f0e1d2c3b4a5968778695a4b3c2d1e0f001122334455667704689104c2fd3b2f584023641aba61761f1f1f1f0e0e0e0effffffffffffffff', 'hex'),
-'bf-ecb/pad:none'), 'hex');
--- result: c04504012e4e1f53
+SELECT encrypt('\xfedcba9876543210',
+               '\xf0e1d2c3b4a5968778695a4b3c2d1e0f001122334455667704689104c2fd3b2f584023641aba61761f1f1f1f0e0e0e0effffffffffffffff',
+               'bf-ecb/pad:none');
 
 -- empty data
-select encode(encrypt('', 'foo', 'bf'), 'hex');
+select encrypt('', 'foo', 'bf');
 -- 10 bytes key
-select encode(encrypt('foo', '0123456789', 'bf'), 'hex');
+select encrypt('foo', '0123456789', 'bf');
 -- 22 bytes key
-select encode(encrypt('foo', '0123456789012345678901', 'bf'), 'hex');
+select encrypt('foo', '0123456789012345678901', 'bf');
 
 -- decrypt
-select decrypt(encrypt('foo', '0123456', 'bf'), '0123456', 'bf');
+select encode(decrypt(encrypt('foo', '0123456', 'bf'), '0123456', 'bf'), 'escape');
 
 -- iv
-select encode(encrypt_iv('foo', '0123456', 'abcd', 'bf'), 'hex');
-select decrypt_iv(decode('95c7e89322525d59', 'hex'), '0123456', 'abcd', 'bf');
+select encrypt_iv('foo', '0123456', 'abcd', 'bf');
+select encode(decrypt_iv('\x95c7e89322525d59', '0123456', 'abcd', 'bf'), 'escape');
 
 -- long message
-select encode(encrypt('Lets try a longer message.', '0123456789', 'bf'), 'hex');
-select decrypt(encrypt('Lets try a longer message.', '0123456789', 'bf'), '0123456789', 'bf');
+select encrypt('Lets try a longer message.', '0123456789', 'bf');
+select encode(decrypt(encrypt('Lets try a longer message.', '0123456789', 'bf'), '0123456789', 'bf'), 'escape');
diff --git a/contrib/pgcrypto/sql/cast5.sql b/contrib/pgcrypto/sql/cast5.sql
index 527a76a160..b3089b2446 100644
--- a/contrib/pgcrypto/sql/cast5.sql
+++ b/contrib/pgcrypto/sql/cast5.sql
@@ -1,47 +1,32 @@
 --
 -- Cast5 cipher
 --
--- ensure consistent test output regardless of the default bytea format
-SET bytea_output TO escape;
 
 -- test vectors from RFC2144
 
 -- 128 bit key
-SELECT encode(encrypt(
-decode('01 23 45 67 89 AB CD EF', 'hex'),
-decode('01 23 45 67 12 34 56 78 23 45 67 89 34 56 78 9A', 'hex'),
-'cast5-ecb/pad:none'), 'hex');
--- result: 23 8B 4F E5 84 7E 44 B2
+SELECT encrypt('\x0123456789ABCDEF', '\x0123456712345678234567893456789A', 'cast5-ecb/pad:none');
 
 -- 80 bit key
-SELECT encode(encrypt(
-decode('01 23 45 67 89 AB CD EF', 'hex'),
-decode('01 23 45 67 12 34 56 78 23 45', 'hex'),
-'cast5-ecb/pad:none'), 'hex');
--- result: EB 6A 71 1A 2C 02 27 1B
+SELECT encrypt('\x0123456789ABCDEF', '\x01234567123456782345', 'cast5-ecb/pad:none');
 
 -- 40 bit key
-SELECT encode(encrypt(
-decode('01 23 45 67 89 AB CD EF', 'hex'),
-decode('01 23 45 67 12', 'hex'),
-'cast5-ecb/pad:none'), 'hex');
--- result: 7A C8 16 D1 6E 9B 30 2E
+SELECT encrypt('\x0123456789ABCDEF', '\x0123456712', 'cast5-ecb/pad:none');
 
 -- cbc
 
 -- empty data
-select encode(	encrypt('', 'foo', 'cast5'), 'hex');
+select encrypt('', 'foo', 'cast5');
 -- 10 bytes key
-select encode(	encrypt('foo', '0123456789', 'cast5'), 'hex');
+select encrypt('foo', '0123456789', 'cast5');
 
 -- decrypt
-select decrypt(encrypt('foo', '0123456', 'cast5'), '0123456', 'cast5');
+select encode(decrypt(encrypt('foo', '0123456', 'cast5'), '0123456', 'cast5'), 'escape');
 
 -- iv
-select encode(encrypt_iv('foo', '0123456', 'abcd', 'cast5'), 'hex');
-select decrypt_iv(decode('384a970695ce016a', 'hex'),
-                '0123456', 'abcd', 'cast5');
+select encrypt_iv('foo', '0123456', 'abcd', 'cast5');
+select encode(decrypt_iv('\x384a970695ce016a', '0123456', 'abcd', 'cast5'), 'escape');
 
 -- long message
-select encode(encrypt('Lets try a longer message.', '0123456789', 'cast5'), 'hex');
-select decrypt(encrypt('Lets try a longer message.', '0123456789', 'cast5'), '0123456789', 'cast5');
+select encrypt('Lets try a longer message.', '0123456789', 'cast5');
+select encode(decrypt(encrypt('Lets try a longer message.', '0123456789', 'cast5'), '0123456789', 'cast5'), 'escape');
diff --git a/contrib/pgcrypto/sql/des.sql b/contrib/pgcrypto/sql/des.sql
index 6abc5b5ffe..08c77a4a78 100644
--- a/contrib/pgcrypto/sql/des.sql
+++ b/contrib/pgcrypto/sql/des.sql
@@ -1,29 +1,24 @@
 --
 -- DES cipher
 --
--- ensure consistent test output regardless of the default bytea format
-SET bytea_output TO escape;
 
 -- no official test vectors atm
 
 -- from blowfish.sql
-SELECT encode(encrypt(
-decode('0123456789abcdef', 'hex'),
-decode('fedcba9876543210', 'hex'),
-'des-ecb/pad:none'), 'hex');
+SELECT encrypt('\x0123456789abcdef', '\xfedcba9876543210', 'des-ecb/pad:none');
 
 -- empty data
-select encode(	encrypt('', 'foo', 'des'), 'hex');
+select encrypt('', 'foo', 'des');
 -- 8 bytes key
-select encode(	encrypt('foo', '01234589', 'des'), 'hex');
+select encrypt('foo', '01234589', 'des');
 
 -- decrypt
-select decrypt(encrypt('foo', '0123456', 'des'), '0123456', 'des');
+select encode(decrypt(encrypt('foo', '0123456', 'des'), '0123456', 'des'), 'escape');
 
 -- iv
-select encode(encrypt_iv('foo', '0123456', 'abcd', 'des'), 'hex');
-select decrypt_iv(decode('50735067b073bb93', 'hex'), '0123456', 'abcd', 'des');
+select encrypt_iv('foo', '0123456', 'abcd', 'des');
+select encode(decrypt_iv('\x50735067b073bb93', '0123456', 'abcd', 'des'), 'escape');
 
 -- long message
-select encode(encrypt('Lets try a longer message.', '01234567', 'des'), 'hex');
-select decrypt(encrypt('Lets try a longer message.', '01234567', 'des'), '01234567', 'des');
+select encrypt('Lets try a longer message.', '01234567', 'des');
+select encode(decrypt(encrypt('Lets try a longer message.', '01234567', 'des'), '01234567', 'des'), 'escape');
diff --git a/contrib/pgcrypto/sql/hmac-md5.sql b/contrib/pgcrypto/sql/hmac-md5.sql
index 71dcd089e6..981ed097a5 100644
--- a/contrib/pgcrypto/sql/hmac-md5.sql
+++ b/contrib/pgcrypto/sql/hmac-md5.sql
@@ -2,43 +2,43 @@
 -- HMAC-MD5
 --
 
-SELECT encode(hmac(
+SELECT hmac(
 'Hi There',
-decode('0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b', 'hex'),
-'md5'), 'hex');
+'\x0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b'::bytea,
+'md5');
 
 -- 2
-SELECT encode(hmac(
+SELECT hmac(
 'Jefe',
 'what do ya want for nothing?',
-'md5'), 'hex');
+'md5');
 
 -- 3
-SELECT encode(hmac(
-decode('dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd', 'hex'),
-decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
-'md5'), 'hex');
+SELECT hmac(
+'\xdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd'::bytea,
+'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea,
+'md5');
 
 -- 4
-SELECT encode(hmac(
-decode('cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd', 'hex'),
-decode('0102030405060708090a0b0c0d0e0f10111213141516171819', 'hex'),
-'md5'), 'hex');
+SELECT hmac(
+'\xcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd'::bytea,
+'\x0102030405060708090a0b0c0d0e0f10111213141516171819'::bytea,
+'md5');
 
 -- 5
-SELECT encode(hmac(
+SELECT hmac(
 'Test With Truncation',
-decode('0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c', 'hex'),
-'md5'), 'hex');
+'\x0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c'::bytea,
+'md5');
 
 -- 6
-SELECT encode(hmac(
+SELECT hmac(
 'Test Using Larger Than Block-Size Key - Hash Key First',
-decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
-'md5'), 'hex');
+'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea,
+'md5');
 
 -- 7
-SELECT encode(hmac(
+SELECT hmac(
 'Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data',
-decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
-'md5'), 'hex');
+'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea,
+'md5');
diff --git a/contrib/pgcrypto/sql/hmac-sha1.sql b/contrib/pgcrypto/sql/hmac-sha1.sql
index 3bc965578c..f9a7b71d45 100644
--- a/contrib/pgcrypto/sql/hmac-sha1.sql
+++ b/contrib/pgcrypto/sql/hmac-sha1.sql
@@ -2,43 +2,43 @@
 -- HMAC-SHA1
 --
 
-SELECT encode(hmac(
+SELECT hmac(
 'Hi There',
-decode('0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b', 'hex'),
-'sha1'), 'hex');
+'\x0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b'::bytea,
+'sha1');
 
 -- 2
-SELECT encode(hmac(
+SELECT hmac(
 'Jefe',
 'what do ya want for nothing?',
-'sha1'), 'hex');
+'sha1');
 
 -- 3
-SELECT encode(hmac(
-decode('dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd', 'hex'),
-decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
-'sha1'), 'hex');
+SELECT hmac(
+'\xdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd'::bytea,
+'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea,
+'sha1');
 
 -- 4
-SELECT encode(hmac(
-decode('cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd', 'hex'),
-decode('0102030405060708090a0b0c0d0e0f10111213141516171819', 'hex'),
-'sha1'), 'hex');
+SELECT hmac(
+'\xcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd'::bytea,
+'\x0102030405060708090a0b0c0d0e0f10111213141516171819'::bytea,
+'sha1');
 
 -- 5
-SELECT encode(hmac(
+SELECT hmac(
 'Test With Truncation',
-decode('0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c', 'hex'),
-'sha1'), 'hex');
+'\x0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c'::bytea,
+'sha1');
 
 -- 6
-SELECT encode(hmac(
+SELECT hmac(
 'Test Using Larger Than Block-Size Key - Hash Key First',
-decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
-'sha1'), 'hex');
+'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea,
+'sha1');
 
 -- 7
-SELECT encode(hmac(
+SELECT hmac(
 'Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data',
-decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
-'sha1'), 'hex');
+'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea,
+'sha1');
diff --git a/contrib/pgcrypto/sql/init.sql b/contrib/pgcrypto/sql/init.sql
index 5c3d100576..6388187996 100644
--- a/contrib/pgcrypto/sql/init.sql
+++ b/contrib/pgcrypto/sql/init.sql
@@ -4,13 +4,6 @@
 
 CREATE EXTENSION pgcrypto;
 
--- ensure consistent test output regardless of the default bytea format
-SET bytea_output TO escape;
-
--- check for encoding fn's
-SELECT encode('foo', 'hex');
-SELECT decode('666f6f', 'hex');
-
 -- check error handling
 select gen_salt('foo');
 select digest('foo', 'foo');
diff --git a/contrib/pgcrypto/sql/md5.sql b/contrib/pgcrypto/sql/md5.sql
index 4df910fafb..040361316b 100644
--- a/contrib/pgcrypto/sql/md5.sql
+++ b/contrib/pgcrypto/sql/md5.sql
@@ -2,10 +2,10 @@
 -- MD5 message digest
 --
 
-SELECT encode(digest('', 'md5'), 'hex');
-SELECT encode(digest('a', 'md5'), 'hex');
-SELECT encode(digest('abc', 'md5'), 'hex');
-SELECT encode(digest('message digest', 'md5'), 'hex');
-SELECT encode(digest('abcdefghijklmnopqrstuvwxyz', 'md5'), 'hex');
-SELECT encode(digest('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 'md5'), 'hex');
-SELECT encode(digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'md5'), 'hex');
+SELECT digest('', 'md5');
+SELECT digest('a', 'md5');
+SELECT digest('abc', 'md5');
+SELECT digest('message digest', 'md5');
+SELECT digest('abcdefghijklmnopqrstuvwxyz', 'md5');
+SELECT digest('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 'md5');
+SELECT digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'md5');
diff --git a/contrib/pgcrypto/sql/pgp-armor.sql b/contrib/pgcrypto/sql/pgp-armor.sql
index a277a1894c..736b54206f 100644
--- a/contrib/pgcrypto/sql/pgp-armor.sql
+++ b/contrib/pgcrypto/sql/pgp-armor.sql
@@ -1,19 +1,17 @@
 --
 -- PGP Armor
 --
--- ensure consistent test output regardless of the default bytea format
-SET bytea_output TO escape;
 
 select armor('');
 select armor('test');
-select dearmor(armor(''));
-select dearmor(armor('zooka'));
+select encode(dearmor(armor('')), 'escape');
+select encode(dearmor(armor('zooka')), 'escape');
 
 select armor('0123456789abcdef0123456789abcdef0123456789abcdef
 0123456789abcdef0123456789abcdef0123456789abcdef');
 
 -- lots formatting
-select dearmor(' a pgp msg:
+select encode(dearmor(' a pgp msg:
 
 -----BEGIN PGP MESSAGE-----
 Comment: Some junk
@@ -22,10 +20,10 @@
 
   =D5cR
 
------END PGP MESSAGE-----');
+-----END PGP MESSAGE-----'), 'escape');
 
 -- lots messages
-select dearmor('
+select encode(dearmor('
 wrong packet:
   -----BEGIN PGP MESSAGE-----
 
@@ -46,7 +44,7 @@
 d3Jvbmc=
 =vCYP
 -----END PGP MESSAGE-----
-');
+'), 'escape');
 
 -- bad crc
 select dearmor('
diff --git a/contrib/pgcrypto/sql/pgp-decrypt.sql b/contrib/pgcrypto/sql/pgp-decrypt.sql
index 557948d7c7..347ec2abf1 100644
--- a/contrib/pgcrypto/sql/pgp-decrypt.sql
+++ b/contrib/pgcrypto/sql/pgp-decrypt.sql
@@ -208,7 +208,7 @@
 '), 'x');
 
 -- Checking various data
-select encode(digest(pgp_sym_decrypt(dearmor('
+select digest(pgp_sym_decrypt(dearmor('
 -----BEGIN PGP MESSAGE-----
 Comment: dat1.aes.sha1.mdc.s2k3.z0
 
@@ -216,10 +216,9 @@
 Xtx3kDqnhUq9Z1fS3qPbi5iNP2A9NxOBxPWz2JzxhydANlgbxg==
 =W/ik
 -----END PGP MESSAGE-----
-'), '0123456789abcdefghij'), 'sha1'), 'hex');
--- expected: 0225e3ede6f2587b076d021a189ff60aad67e066
+'), '0123456789abcdefghij'), 'sha1');
 
-select encode(digest(pgp_sym_decrypt(dearmor('
+select digest(pgp_sym_decrypt(dearmor('
 -----BEGIN PGP MESSAGE-----
 Comment: dat2.aes.sha1.mdc.s2k3.z0
 
@@ -227,10 +226,9 @@
 SaV9L04ky1qECNDx3XjnoKLC+H7IOQ==
 =Fxen
 -----END PGP MESSAGE-----
-'), '0123456789abcdefghij'), 'sha1'), 'hex');
--- expected: da39a3ee5e6b4b0d3255bfef95601890afd80709
+'), '0123456789abcdefghij'), 'sha1');
 
-select encode(digest(pgp_sym_decrypt(dearmor('
+select digest(pgp_sym_decrypt(dearmor('
 -----BEGIN PGP MESSAGE-----
 Comment: dat3.aes.sha1.mdc.s2k3.z0
 
@@ -239,11 +237,10 @@
 73Hb8m1yRhQK
 =ivrD
 -----END PGP MESSAGE-----
-'), '0123456789abcdefghij'), 'sha1'), 'hex');
--- expected: 5e5c135efc0dd00633efc6dfd6e731ea408a5b4c
+'), '0123456789abcdefghij'), 'sha1');
 
 -- Checking CRLF
-select encode(digest(pgp_sym_decrypt(dearmor('
+select digest(pgp_sym_decrypt(dearmor('
 -----BEGIN PGP MESSAGE-----
 Comment: crlf mess
 
@@ -251,10 +248,9 @@
 a3nsOzKTXUfS9VyaXo8IrncM6n7fdaXpwba/3tNsAhJG4lDv1k4g9v8Ix2dfv6Rs
 =mBP9
 -----END PGP MESSAGE-----
-'), 'key', 'convert-crlf=0'), 'sha1'), 'hex');
--- expected: 9353062be7720f1446d30b9e75573a4833886784
+'), 'key', 'convert-crlf=0'), 'sha1');
 
-select encode(digest(pgp_sym_decrypt(dearmor('
+select digest(pgp_sym_decrypt(dearmor('
 -----BEGIN PGP MESSAGE-----
 Comment: crlf mess
 
@@ -262,8 +258,7 @@
 a3nsOzKTXUfS9VyaXo8IrncM6n7fdaXpwba/3tNsAhJG4lDv1k4g9v8Ix2dfv6Rs
 =mBP9
 -----END PGP MESSAGE-----
-'), 'key', 'convert-crlf=1'), 'sha1'), 'hex');
--- expected: 7efefcab38467f7484d6fa43dc86cf5281bd78e2
+'), 'key', 'convert-crlf=1'), 'sha1');
 
 -- check BUG #11905, problem with messages 6 less than a power of 2.
 select pgp_sym_decrypt(pgp_sym_encrypt(repeat('x',65530),'1'),'1') = repeat('x',65530);
diff --git a/contrib/pgcrypto/sql/pgp-encrypt.sql b/contrib/pgcrypto/sql/pgp-encrypt.sql
index ed9d2c8127..ed8b17776b 100644
--- a/contrib/pgcrypto/sql/pgp-encrypt.sql
+++ b/contrib/pgcrypto/sql/pgp-encrypt.sql
@@ -1,8 +1,6 @@
 --
 -- PGP encrypt
 --
--- ensure consistent test output regardless of the default bytea format
-SET bytea_output TO escape;
 
 select pgp_sym_decrypt(pgp_sym_encrypt('Secret.', 'key'), 'key');
 
@@ -30,7 +28,7 @@
 select pgp_sym_decrypt(pgp_sym_encrypt_bytea('Binary', 'baz'), 'baz');
 
 -- text as bytea
-select pgp_sym_decrypt_bytea(pgp_sym_encrypt('Text', 'baz'), 'baz');
+select encode(pgp_sym_decrypt_bytea(pgp_sym_encrypt('Text', 'baz'), 'baz'), 'escape');
 
 
 -- algorithm change
@@ -95,12 +93,12 @@
 	'key', 'expect-disable-mdc=1');
 
 -- crlf
-select encode(pgp_sym_decrypt_bytea(
+select pgp_sym_decrypt_bytea(
 	pgp_sym_encrypt(E'1\n2\n3\r\n', 'key', 'convert-crlf=1'),
-	'key'), 'hex');
+	'key');
 
 -- conversion should be lossless
-select encode(digest(pgp_sym_decrypt(
+select digest(pgp_sym_decrypt(
   pgp_sym_encrypt(E'\r\n0\n1\r\r\n\n2\r', 'key', 'convert-crlf=1'),
-	'key', 'convert-crlf=1'), 'sha1'), 'hex') as result,
-  encode(digest(E'\r\n0\n1\r\r\n\n2\r', 'sha1'), 'hex') as expect;
+	'key', 'convert-crlf=1'), 'sha1') as result,
+  digest(E'\r\n0\n1\r\r\n\n2\r', 'sha1') as expect;
diff --git a/contrib/pgcrypto/sql/pgp-pubkey-encrypt.sql b/contrib/pgcrypto/sql/pgp-pubkey-encrypt.sql
index 879b47f871..c9edbc679c 100644
--- a/contrib/pgcrypto/sql/pgp-pubkey-encrypt.sql
+++ b/contrib/pgcrypto/sql/pgp-pubkey-encrypt.sql
@@ -1,8 +1,6 @@
 --
 -- PGP Public Key Encryption
 --
--- ensure consistent test output regardless of the default bytea format
-SET bytea_output TO escape;
 
 -- successful encrypt/decrypt
 select pgp_pub_decrypt(
@@ -38,9 +36,9 @@
 from keytbl where keytbl.id=1;
 
 -- does text-to-bytea works
-select pgp_pub_decrypt_bytea(
+select encode(pgp_pub_decrypt_bytea(
 		pgp_pub_encrypt('Secret msg', dearmor(pubkey)),
-		dearmor(seckey))
+		dearmor(seckey)), 'escape')
 from keytbl where keytbl.id=1;
 
 -- and bytea-to-text?
diff --git a/contrib/pgcrypto/sql/rijndael.sql b/contrib/pgcrypto/sql/rijndael.sql
index a9bcbf33d0..b162fc61f5 100644
--- a/contrib/pgcrypto/sql/rijndael.sql
+++ b/contrib/pgcrypto/sql/rijndael.sql
@@ -1,63 +1,60 @@
 --
 -- AES cipher (aka Rijndael-128, -192, or -256)
 --
--- ensure consistent test output regardless of the default bytea format
-SET bytea_output TO escape;
 
 -- some standard Rijndael testvalues
-SELECT encode(encrypt(
-decode('00112233445566778899aabbccddeeff', 'hex'),
-decode('000102030405060708090a0b0c0d0e0f', 'hex'),
-'aes-ecb/pad:none'), 'hex');
+SELECT encrypt(
+'\x00112233445566778899aabbccddeeff',
+'\x000102030405060708090a0b0c0d0e0f',
+'aes-ecb/pad:none');
 
-SELECT encode(encrypt(
-decode('00112233445566778899aabbccddeeff', 'hex'),
-decode('000102030405060708090a0b0c0d0e0f1011121314151617', 'hex'),
-'aes-ecb/pad:none'), 'hex');
+SELECT encrypt(
+'\x00112233445566778899aabbccddeeff',
+'\x000102030405060708090a0b0c0d0e0f1011121314151617',
+'aes-ecb/pad:none');
 
-SELECT encode(encrypt(
-decode('00112233445566778899aabbccddeeff', 'hex'),
-decode('000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f', 'hex'),
-'aes-ecb/pad:none'), 'hex');
+SELECT encrypt(
+'\x00112233445566778899aabbccddeeff',
+'\x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f',
+'aes-ecb/pad:none');
 
 -- cbc
-SELECT encode(encrypt(
-decode('00112233445566778899aabbccddeeff', 'hex'),
-decode('000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f', 'hex'),
-'aes-cbc/pad:none'), 'hex');
+SELECT encrypt(
+'\x00112233445566778899aabbccddeeff',
+'\x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f',
+'aes-cbc/pad:none');
 
 -- key padding
 
-SELECT encode(encrypt(
-decode('0011223344', 'hex'),
-decode('000102030405', 'hex'),
-'aes-cbc'), 'hex');
+SELECT encrypt(
+'\x0011223344',
+'\x000102030405',
+'aes-cbc');
 
-SELECT encode(encrypt(
-decode('0011223344', 'hex'),
-decode('000102030405060708090a0b0c0d0e0f10111213', 'hex'),
-'aes-cbc'), 'hex');
+SELECT encrypt(
+'\x0011223344',
+'\x000102030405060708090a0b0c0d0e0f10111213',
+'aes-cbc');
 
-SELECT encode(encrypt(
-decode('0011223344', 'hex'),
-decode('000102030405060708090a0b0c0d0e0f101112131415161718191a1b', 'hex'),
-'aes-cbc'), 'hex');
+SELECT encrypt(
+'\x0011223344',
+'\x000102030405060708090a0b0c0d0e0f101112131415161718191a1b',
+'aes-cbc');
 
 -- empty data
-select encode(encrypt('', 'foo', 'aes'), 'hex');
+select encrypt('', 'foo', 'aes');
 -- 10 bytes key
-select encode(encrypt('foo', '0123456789', 'aes'), 'hex');
+select encrypt('foo', '0123456789', 'aes');
 -- 22 bytes key
-select encode(encrypt('foo', '0123456789012345678901', 'aes'), 'hex');
+select encrypt('foo', '0123456789012345678901', 'aes');
 
 -- decrypt
-select decrypt(encrypt('foo', '0123456', 'aes'), '0123456', 'aes');
+select encode(decrypt(encrypt('foo', '0123456', 'aes'), '0123456', 'aes'), 'escape');
 
 -- iv
-select encode(encrypt_iv('foo', '0123456', 'abcd', 'aes'), 'hex');
-select decrypt_iv(decode('2c24cb7da91d6d5699801268b0f5adad', 'hex'),
-		'0123456', 'abcd', 'aes');
+select encrypt_iv('foo', '0123456', 'abcd', 'aes');
+select encode(decrypt_iv('\x2c24cb7da91d6d5699801268b0f5adad', '0123456', 'abcd', 'aes'), 'escape');
 
 -- long message
-select encode(encrypt('Lets try a longer message.', '0123456789', 'aes'), 'hex');
-select decrypt(encrypt('Lets try a longer message.', '0123456789', 'aes'), '0123456789', 'aes');
+select encrypt('Lets try a longer message.', '0123456789', 'aes');
+select encode(decrypt(encrypt('Lets try a longer message.', '0123456789', 'aes'), '0123456789', 'aes'), 'escape');
diff --git a/contrib/pgcrypto/sql/sha1.sql b/contrib/pgcrypto/sql/sha1.sql
index 32b1f0698f..6d1f24ebf3 100644
--- a/contrib/pgcrypto/sql/sha1.sql
+++ b/contrib/pgcrypto/sql/sha1.sql
@@ -2,10 +2,10 @@
 -- SHA1 message digest
 --
 
-SELECT encode(digest('', 'sha1'), 'hex');
-SELECT encode(digest('a', 'sha1'), 'hex');
-SELECT encode(digest('abc', 'sha1'), 'hex');
-SELECT encode(digest('message digest', 'sha1'), 'hex');
-SELECT encode(digest('abcdefghijklmnopqrstuvwxyz', 'sha1'), 'hex');
-SELECT encode(digest('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 'sha1'), 'hex');
-SELECT encode(digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'sha1'), 'hex');
+SELECT digest('', 'sha1');
+SELECT digest('a', 'sha1');
+SELECT digest('abc', 'sha1');
+SELECT digest('message digest', 'sha1');
+SELECT digest('abcdefghijklmnopqrstuvwxyz', 'sha1');
+SELECT digest('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 'sha1');
+SELECT digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'sha1');
diff --git a/contrib/pgcrypto/sql/sha2.sql b/contrib/pgcrypto/sql/sha2.sql
index 3fe63d3e87..3aafd35407 100644
--- a/contrib/pgcrypto/sql/sha2.sql
+++ b/contrib/pgcrypto/sql/sha2.sql
@@ -3,31 +3,31 @@
 --
 
 -- SHA224
-SELECT encode(digest('', 'sha224'), 'hex');
-SELECT encode(digest('a', 'sha224'), 'hex');
-SELECT encode(digest('abc', 'sha224'), 'hex');
-SELECT encode(digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha224'), 'hex');
-SELECT encode(digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'sha224'), 'hex');
+SELECT digest('', 'sha224');
+SELECT digest('a', 'sha224');
+SELECT digest('abc', 'sha224');
+SELECT digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha224');
+SELECT digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'sha224');
 
 -- SHA256
-SELECT encode(digest('', 'sha256'), 'hex');
-SELECT encode(digest('a', 'sha256'), 'hex');
-SELECT encode(digest('abc', 'sha256'), 'hex');
-SELECT encode(digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha256'), 'hex');
-SELECT encode(digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'sha256'), 'hex');
+SELECT digest('', 'sha256');
+SELECT digest('a', 'sha256');
+SELECT digest('abc', 'sha256');
+SELECT digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha256');
+SELECT digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'sha256');
 
 -- SHA384
-SELECT encode(digest('', 'sha384'), 'hex');
-SELECT encode(digest('a', 'sha384'), 'hex');
-SELECT encode(digest('abc', 'sha384'), 'hex');
-SELECT encode(digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha384'), 'hex');
-SELECT encode(digest('abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu', 'sha384'), 'hex');
-SELECT encode(digest('abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz', 'sha384'), 'hex');
+SELECT digest('', 'sha384');
+SELECT digest('a', 'sha384');
+SELECT digest('abc', 'sha384');
+SELECT digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha384');
+SELECT digest('abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu', 'sha384');
+SELECT digest('abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz', 'sha384');
 
 -- SHA512
-SELECT encode(digest('', 'sha512'), 'hex');
-SELECT encode(digest('a', 'sha512'), 'hex');
-SELECT encode(digest('abc', 'sha512'), 'hex');
-SELECT encode(digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha512'), 'hex');
-SELECT encode(digest('abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu', 'sha512'), 'hex');
-SELECT encode(digest('abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz', 'sha512'), 'hex');
+SELECT digest('', 'sha512');
+SELECT digest('a', 'sha512');
+SELECT digest('abc', 'sha512');
+SELECT digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha512');
+SELECT digest('abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu', 'sha512');
+SELECT digest('abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz', 'sha512');
-- 
2.34.1

#2Daniel Gustafsson
daniel@yesql.se
In reply to: Peter Eisentraut (#1)
Re: pgcrypto: Remove explicit hex encoding/decoding from tests

On 2 Dec 2021, at 10:22, Peter Eisentraut <peter.eisentraut@enterprisedb.com> wrote:

pgcrypto tests use encode() and decode() calls to convert to/from hex encoding. This was from before the hex format was available in bytea. Now we can remove the extra explicit encoding/decoding calls and rely on the default output format.

My eyes glazed over a bit but definitely a +1 on the idea.

--
Daniel Gustafsson https://vmware.com/

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Eisentraut (#1)
Re: pgcrypto: Remove explicit hex encoding/decoding from tests

Peter Eisentraut <peter.eisentraut@enterprisedb.com> writes:

pgcrypto tests use encode() and decode() calls to convert to/from hex
encoding. This was from before the hex format was available in bytea.
Now we can remove the extra explicit encoding/decoding calls and rely on
the default output format.

Generally +1, but I see you removed some instances of

--- ensure consistent test output regardless of the default bytea format
-SET bytea_output TO escape;

I think that the principle still applies that this should work regardless
of the installation's default bytea format, so I'd recommend putting

-- ensure consistent test output regardless of the default bytea format
SET bytea_output TO hex;

at the top of each file instead.

regards, tom lane

#4Peter Eisentraut
peter.eisentraut@enterprisedb.com
In reply to: Tom Lane (#3)
Re: pgcrypto: Remove explicit hex encoding/decoding from tests

On 02.12.21 19:30, Tom Lane wrote:

Generally +1, but I see you removed some instances of

--- ensure consistent test output regardless of the default bytea format
-SET bytea_output TO escape;

I think that the principle still applies that this should work regardless
of the installation's default bytea format, so I'd recommend putting

-- ensure consistent test output regardless of the default bytea format
SET bytea_output TO hex;

at the top of each file instead.

pg_regress.c sets bytea_output to hex already.

#5Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Eisentraut (#4)
Re: pgcrypto: Remove explicit hex encoding/decoding from tests

Peter Eisentraut <peter.eisentraut@enterprisedb.com> writes:

pg_regress.c sets bytea_output to hex already.

Ah, right. Nevermind that then.

regards, tom lane