diff --git a/src/test/regress/expected/name.out b/src/test/regress/expected/name.out
new file mode 100644
index 0000000000000000000000000000000000000000..9d3cdd46586585d9ad9345df044a8eae0222b266
--- /dev/null
+++ b/src/test/regress/expected/name.out
@@ -0,0 +1,116 @@
+QUERY: SELECT 'name string'::name = 'name string'::name AS "True";
+True
+----
+t   
+(1 row)
+
+QUERY: SELECT 'name string'::name = 'name string '::name AS "False";
+False
+-----
+f    
+(1 row)
+
+QUERY: CREATE TABLE NAME_TBL(f1 name);
+QUERY: INSERT INTO NAME_TBL(f1) VALUES ('ABCDEFGHIJKLMNOP');
+QUERY: INSERT INTO NAME_TBL(f1) VALUES ('abcdefghijklmnop');
+QUERY: INSERT INTO NAME_TBL(f1) VALUES ('asdfghjkl;');
+QUERY: INSERT INTO NAME_TBL(f1) VALUES ('343f%2a');
+QUERY: INSERT INTO NAME_TBL(f1) VALUES ('d34aaasdf');
+QUERY: INSERT INTO NAME_TBL(f1) VALUES ('');
+QUERY: INSERT INTO NAME_TBL(f1) VALUES ('1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ');
+QUERY: SELECT '' AS seven, NAME_TBL.*;
+seven|f1                             
+-----+-------------------------------
+     |ABCDEFGHIJKLMNOP               
+     |abcdefghijklmnop               
+     |asdfghjkl;                     
+     |343f%2a                        
+     |d34aaasdf                      
+     |                               
+     |1234567890ABCDEFGHIJKLMNOPQRSTU
+(7 rows)
+
+QUERY: SELECT '' AS six, c.f1 FROM NAME_TBL c WHERE c.f1 <> 'ABCDEFGHIJKLMNOP';
+six|f1                             
+---+-------------------------------
+   |abcdefghijklmnop               
+   |asdfghjkl;                     
+   |343f%2a                        
+   |d34aaasdf                      
+   |                               
+   |1234567890ABCDEFGHIJKLMNOPQRSTU
+(6 rows)
+
+QUERY: SELECT '' AS one, c.f1 FROM NAME_TBL c WHERE c.f1 = 'ABCDEFGHIJKLMNOP';
+one|f1              
+---+----------------
+   |ABCDEFGHIJKLMNOP
+(1 row)
+
+QUERY: SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 < 'ABCDEFGHIJKLMNOP';
+three|f1                             
+-----+-------------------------------
+     |343f%2a                        
+     |                               
+     |1234567890ABCDEFGHIJKLMNOPQRSTU
+(3 rows)
+
+QUERY: SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 <= 'ABCDEFGHIJKLMNOP';
+four|f1                             
+----+-------------------------------
+    |ABCDEFGHIJKLMNOP               
+    |343f%2a                        
+    |                               
+    |1234567890ABCDEFGHIJKLMNOPQRSTU
+(4 rows)
+
+QUERY: SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 > 'ABCDEFGHIJKLMNOP';
+three|f1              
+-----+----------------
+     |abcdefghijklmnop
+     |asdfghjkl;      
+     |d34aaasdf       
+(3 rows)
+
+QUERY: SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 >= 'ABCDEFGHIJKLMNOP';
+four|f1              
+----+----------------
+    |ABCDEFGHIJKLMNOP
+    |abcdefghijklmnop
+    |asdfghjkl;      
+    |d34aaasdf       
+(4 rows)
+
+QUERY: SELECT '' AS seven, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*';
+seven|f1                             
+-----+-------------------------------
+     |ABCDEFGHIJKLMNOP               
+     |abcdefghijklmnop               
+     |asdfghjkl;                     
+     |343f%2a                        
+     |d34aaasdf                      
+     |                               
+     |1234567890ABCDEFGHIJKLMNOPQRSTU
+(7 rows)
+
+QUERY: SELECT '' AS zero, c.f1 FROM NAME_TBL c WHERE c.f1 !~ '.*';
+zero|f1
+----+--
+(0 rows)
+
+QUERY: SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '[0-9]';
+three|f1                             
+-----+-------------------------------
+     |343f%2a                        
+     |d34aaasdf                      
+     |1234567890ABCDEFGHIJKLMNOPQRSTU
+(3 rows)
+
+QUERY: SELECT '' AS two, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*asdf.*';
+two|f1        
+---+----------
+   |asdfghjkl;
+   |d34aaasdf 
+(2 rows)
+
+QUERY: DROP TABLE NAME_TBL;
diff --git a/src/test/regress/sql/name.sql b/src/test/regress/sql/name.sql
new file mode 100644
index 0000000000000000000000000000000000000000..11235caaa3d181b7be2a96ec8e2e89902d064d4e
--- /dev/null
+++ b/src/test/regress/sql/name.sql
@@ -0,0 +1,54 @@
+--**************** testing built-in type name **************
+--
+-- all inputs are silently truncated at NAMEDATALEN (32) characters
+--
+
+-- fixed-length by reference
+SELECT 'name string'::name = 'name string'::name AS "True";
+
+SELECT 'name string'::name = 'name string '::name AS "False";
+
+--
+--
+--
+
+CREATE TABLE NAME_TBL(f1 name);
+
+INSERT INTO NAME_TBL(f1) VALUES ('ABCDEFGHIJKLMNOP');
+
+INSERT INTO NAME_TBL(f1) VALUES ('abcdefghijklmnop');
+
+INSERT INTO NAME_TBL(f1) VALUES ('asdfghjkl;');
+
+INSERT INTO NAME_TBL(f1) VALUES ('343f%2a');
+
+INSERT INTO NAME_TBL(f1) VALUES ('d34aaasdf');
+
+INSERT INTO NAME_TBL(f1) VALUES ('');
+
+INSERT INTO NAME_TBL(f1) VALUES ('1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ');
+
+
+SELECT '' AS seven, NAME_TBL.*;
+
+SELECT '' AS six, c.f1 FROM NAME_TBL c WHERE c.f1 <> 'ABCDEFGHIJKLMNOP';
+
+SELECT '' AS one, c.f1 FROM NAME_TBL c WHERE c.f1 = 'ABCDEFGHIJKLMNOP';
+
+SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 < 'ABCDEFGHIJKLMNOP';
+
+SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 <= 'ABCDEFGHIJKLMNOP';
+
+SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 > 'ABCDEFGHIJKLMNOP';
+
+SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 >= 'ABCDEFGHIJKLMNOP';
+
+SELECT '' AS seven, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*';
+
+SELECT '' AS zero, c.f1 FROM NAME_TBL c WHERE c.f1 !~ '.*';
+
+SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '[0-9]';
+
+SELECT '' AS two, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*asdf.*';
+
+DROP TABLE NAME_TBL;