#include <time.h>
#include "catalog/pg_am_d.h"
+#include "catalog/pg_class_d.h"
#include "catalog/pg_namespace_d.h"
#include "common/logging.h"
#include "common/username.h"
appendPQExpBuffer(sql,
"\n) v WHERE c.oid = %u "
- "AND c.relpersistence != 't'",
+ "AND c.relpersistence != " CppAsString2(RELPERSISTENCE_TEMP),
rel->reloid);
}
"\nFROM pg_catalog.pg_class c, pg_catalog.pg_index i "
"WHERE c.oid = %u "
"AND c.oid = i.indexrelid "
- "AND c.relpersistence != 't' "
+ "AND c.relpersistence != " CppAsString2(RELPERSISTENCE_TEMP) " "
"AND i.indisready AND i.indisvalid AND i.indislive",
rel->datinfo->amcheck_schema,
(opts.heapallindexed ? "true" : "false"),
"\nFROM pg_catalog.pg_class c, pg_catalog.pg_index i "
"WHERE c.oid = %u "
"AND c.oid = i.indexrelid "
- "AND c.relpersistence != 't' "
+ "AND c.relpersistence != " CppAsString2(RELPERSISTENCE_TEMP) " "
"AND i.indisready AND i.indisvalid AND i.indislive",
rel->datinfo->amcheck_schema,
(opts.heapallindexed ? "true" : "false"),
* until firing off the amcheck command, as the state of an index may
* change by then.
*/
- appendPQExpBufferStr(&sql, "\nWHERE c.relpersistence != 't'");
+ appendPQExpBufferStr(&sql, "\nWHERE c.relpersistence != "
+ CppAsString2(RELPERSISTENCE_TEMP));
if (opts.excludetbl || opts.excludeidx || opts.excludensp)
appendPQExpBufferStr(&sql, "\nAND ep.pattern_id IS NULL");
if (opts.allrel)
appendPQExpBuffer(&sql,
" AND c.relam = %u "
- "AND c.relkind IN ('r', 'S', 'm', 't') "
+ "AND c.relkind IN ("
+ CppAsString2(RELKIND_RELATION) ", "
+ CppAsString2(RELKIND_SEQUENCE) ", "
+ CppAsString2(RELKIND_MATVIEW) ", "
+ CppAsString2(RELKIND_TOASTVALUE) ") "
"AND c.relnamespace != %u",
HEAP_TABLE_AM_OID, PG_TOAST_NAMESPACE);
else
appendPQExpBuffer(&sql,
" AND c.relam IN (%u, %u)"
- "AND c.relkind IN ('r', 'S', 'm', 't', 'i') "
- "AND ((c.relam = %u AND c.relkind IN ('r', 'S', 'm', 't')) OR "
- "(c.relam = %u AND c.relkind = 'i'))",
+ "AND c.relkind IN ("
+ CppAsString2(RELKIND_RELATION) ", "
+ CppAsString2(RELKIND_SEQUENCE) ", "
+ CppAsString2(RELKIND_MATVIEW) ", "
+ CppAsString2(RELKIND_TOASTVALUE) ", "
+ CppAsString2(RELKIND_INDEX) ") "
+ "AND ((c.relam = %u AND c.relkind IN ("
+ CppAsString2(RELKIND_RELATION) ", "
+ CppAsString2(RELKIND_SEQUENCE) ", "
+ CppAsString2(RELKIND_MATVIEW) ", "
+ CppAsString2(RELKIND_TOASTVALUE) ")) OR "
+ "(c.relam = %u AND c.relkind = "
+ CppAsString2(RELKIND_INDEX) "))",
HEAP_TABLE_AM_OID, BTREE_AM_OID,
HEAP_TABLE_AM_OID, BTREE_AM_OID);
"\nAND (t.relname ~ ep.rel_regex OR ep.rel_regex IS NULL)"
"\nAND ep.heap_only"
"\nWHERE ep.pattern_id IS NULL"
- "\nAND t.relpersistence != 't'");
+ "\nAND t.relpersistence != " CppAsString2(RELPERSISTENCE_TEMP));
appendPQExpBufferStr(&sql,
"\n)");
}
"ON r.oid = i.indrelid "
"INNER JOIN pg_catalog.pg_class c "
"ON i.indexrelid = c.oid "
- "AND c.relpersistence != 't'");
+ "AND c.relpersistence != " CppAsString2(RELPERSISTENCE_TEMP));
if (opts.excludeidx || opts.excludensp)
appendPQExpBufferStr(&sql,
"\nINNER JOIN pg_catalog.pg_namespace n "
"\nWHERE true");
appendPQExpBuffer(&sql,
" AND c.relam = %u "
- "AND c.relkind = 'i'",
+ "AND c.relkind = " CppAsString2(RELKIND_INDEX),
BTREE_AM_OID);
if (opts.no_toast_expansion)
appendPQExpBuffer(&sql,
"ON t.oid = i.indrelid"
"\nINNER JOIN pg_catalog.pg_class c "
"ON i.indexrelid = c.oid "
- "AND c.relpersistence != 't'");
+ "AND c.relpersistence != " CppAsString2(RELPERSISTENCE_TEMP));
if (opts.excludeidx)
appendPQExpBufferStr(&sql,
"\nLEFT OUTER JOIN exclude_pat ep "
"\nWHERE true");
appendPQExpBuffer(&sql,
" AND c.relam = %u"
- " AND c.relkind = 'i')",
+ " AND c.relkind = " CppAsString2(RELKIND_INDEX) ")",
BTREE_AM_OID);
}