diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c
new file mode 100644
index 21bbdf8..367cb97
*** a/src/bin/psql/describe.c
--- b/src/bin/psql/describe.c
*************** describeOneTableDetails(const char *sche
*** 1169,1174 ****
--- 1169,1175 ----
  		bool		hasrules;
  		bool		hastriggers;
  		bool		hasoids;
+ 		bool		default_with_oids;
  		Oid			tablespace;
  		char	   *reloptions;
  		char	   *reloftype;
*************** describeOneTableDetails(const char *sche
*** 1194,1199 ****
--- 1195,1201 ----
  		printfPQExpBuffer(&buf,
  			  "SELECT c.relchecks, c.relkind, c.relhasindex, c.relhasrules, "
  						  "c.relhastriggers, c.relhasoids, "
+ 						  "(SELECT setting FROM pg_settings WHERE name = 'default_with_oids') AS default_with_oids, "
  						  "%s, c.reltablespace, "
  						  "CASE WHEN c.reloftype = 0 THEN '' ELSE c.reloftype::pg_catalog.regtype::pg_catalog.text END, "
  						  "c.relpersistence, c.relreplident\n"
*************** describeOneTableDetails(const char *sche
*** 1211,1216 ****
--- 1213,1219 ----
  		printfPQExpBuffer(&buf,
  			  "SELECT c.relchecks, c.relkind, c.relhasindex, c.relhasrules, "
  						  "c.relhastriggers, c.relhasoids, "
+ 						  "(SELECT setting FROM pg_settings WHERE name = 'default_with_oids') AS default_with_oids, "
  						  "%s, c.reltablespace, "
  						  "CASE WHEN c.reloftype = 0 THEN '' ELSE c.reloftype::pg_catalog.regtype::pg_catalog.text END, "
  						  "c.relpersistence\n"
*************** describeOneTableDetails(const char *sche
*** 1228,1233 ****
--- 1231,1237 ----
  		printfPQExpBuffer(&buf,
  			  "SELECT c.relchecks, c.relkind, c.relhasindex, c.relhasrules, "
  						  "c.relhastriggers, c.relhasoids, "
+ 						  "(SELECT setting FROM pg_settings WHERE name = 'default_with_oids') AS default_with_oids, "
  						  "%s, c.reltablespace, "
  						  "CASE WHEN c.reloftype = 0 THEN '' ELSE c.reloftype::pg_catalog.regtype::pg_catalog.text END\n"
  						  "FROM pg_catalog.pg_class c\n "
*************** describeOneTableDetails(const char *sche
*** 1244,1249 ****
--- 1248,1254 ----
  		printfPQExpBuffer(&buf,
  			  "SELECT c.relchecks, c.relkind, c.relhasindex, c.relhasrules, "
  						  "c.relhastriggers, c.relhasoids, "
+ 						  "(SELECT setting FROM pg_settings WHERE name = 'default_with_oids') AS default_with_oids, "
  						  "%s, c.reltablespace\n"
  						  "FROM pg_catalog.pg_class c\n "
  		   "LEFT JOIN pg_catalog.pg_class tc ON (c.reltoastrelid = tc.oid)\n"
*************** describeOneTableDetails(const char *sche
*** 1259,1264 ****
--- 1264,1270 ----
  		printfPQExpBuffer(&buf,
  					  "SELECT relchecks, relkind, relhasindex, relhasrules, "
  						  "reltriggers <> 0, relhasoids, "
+ 						  "(SELECT setting FROM pg_settings WHERE name = 'default_with_oids') AS default_with_oids, "
  						  "%s, reltablespace\n"
  						  "FROM pg_catalog.pg_class WHERE oid = '%s';",
  						  (verbose ?
*************** describeOneTableDetails(const char *sche
*** 1270,1275 ****
--- 1276,1282 ----
  		printfPQExpBuffer(&buf,
  					  "SELECT relchecks, relkind, relhasindex, relhasrules, "
  						  "reltriggers <> 0, relhasoids, "
+ 						  "(SELECT setting FROM pg_settings WHERE name = 'default_with_oids') AS default_with_oids, "
  						  "'', reltablespace\n"
  						  "FROM pg_catalog.pg_class WHERE oid = '%s';",
  						  oid);
*************** describeOneTableDetails(const char *sche
*** 1279,1284 ****
--- 1286,1292 ----
  		printfPQExpBuffer(&buf,
  					  "SELECT relchecks, relkind, relhasindex, relhasrules, "
  						  "reltriggers <> 0, relhasoids, "
+ 						  "(SELECT setting FROM pg_settings WHERE name = 'default_with_oids') AS default_with_oids, "
  						  "'', ''\n"
  						  "FROM pg_catalog.pg_class WHERE oid = '%s';",
  						  oid);
*************** describeOneTableDetails(const char *sche
*** 1302,1318 ****
  	tableinfo.hasrules = strcmp(PQgetvalue(res, 0, 3), "t") == 0;
  	tableinfo.hastriggers = strcmp(PQgetvalue(res, 0, 4), "t") == 0;
  	tableinfo.hasoids = strcmp(PQgetvalue(res, 0, 5), "t") == 0;
  	tableinfo.reloptions = (pset.sversion >= 80200) ?
! 		pg_strdup(PQgetvalue(res, 0, 6)) : NULL;
  	tableinfo.tablespace = (pset.sversion >= 80000) ?
! 		atooid(PQgetvalue(res, 0, 7)) : 0;
  	tableinfo.reloftype = (pset.sversion >= 90000 &&
! 						   strcmp(PQgetvalue(res, 0, 8), "") != 0) ?
! 		pg_strdup(PQgetvalue(res, 0, 8)) : NULL;
  	tableinfo.relpersistence = (pset.sversion >= 90100) ?
! 		*(PQgetvalue(res, 0, 9)) : 0;
  	tableinfo.relreplident = (pset.sversion >= 90400) ?
! 		*(PQgetvalue(res, 0, 10)) : 'd';
  	PQclear(res);
  	res = NULL;
  
--- 1310,1327 ----
  	tableinfo.hasrules = strcmp(PQgetvalue(res, 0, 3), "t") == 0;
  	tableinfo.hastriggers = strcmp(PQgetvalue(res, 0, 4), "t") == 0;
  	tableinfo.hasoids = strcmp(PQgetvalue(res, 0, 5), "t") == 0;
+ 	tableinfo.default_with_oids = strcmp(PQgetvalue(res, 0, 6), "t") == 0;
  	tableinfo.reloptions = (pset.sversion >= 80200) ?
! 		pg_strdup(PQgetvalue(res, 0, 7)) : NULL;
  	tableinfo.tablespace = (pset.sversion >= 80000) ?
! 		atooid(PQgetvalue(res, 0, 8)) : 0;
  	tableinfo.reloftype = (pset.sversion >= 90000 &&
! 						   strcmp(PQgetvalue(res, 0, 9), "") != 0) ?
! 		pg_strdup(PQgetvalue(res, 0, 9)) : NULL;
  	tableinfo.relpersistence = (pset.sversion >= 90100) ?
! 		*(PQgetvalue(res, 0, 10)) : 0;
  	tableinfo.relreplident = (pset.sversion >= 90400) ?
! 		*(PQgetvalue(res, 0, 11)) : 'd';
  	PQclear(res);
  	res = NULL;
  
*************** describeOneTableDetails(const char *sche
*** 2362,2368 ****
  		}
  
  		/* OIDs, if verbose and not a materialized view */
! 		if (verbose && tableinfo.relkind != 'm')
  		{
  			const char *s = _("Has OIDs");
  
--- 2371,2378 ----
  		}
  
  		/* OIDs, if verbose and not a materialized view */
! 		if (verbose && tableinfo.relkind != 'm' &&
! 			tableinfo.hasoids != tableinfo.default_with_oids)
  		{
  			const char *s = _("Has OIDs");
  
