/* number if affected rows is unknown */
naffected = 0;
- if (get_rel_relkind(relOid) != RELKIND_RELATION)
- return;
+ /*
+ * includeTables overwrites excludeTables
+ */
+ switch(online_analyze_table_type)
+ {
+ case OATT_ALL:
+ if (get_rel_relkind(relOid) != RELKIND_RELATION ||
+ (matchOid(&excludeTables, relOid) == true &&
+ matchOid(&includeTables, relOid) == false))
+ return;
+ break;
+ case OATT_NONE:
+ if (get_rel_relkind(relOid) != RELKIND_RELATION ||
+ matchOid(&includeTables, relOid) == false)
+ return;
+ break;
+ case OATT_TEMPORARY:
+ case OATT_PERSISTENT:
+ default:
+ {
+ Relation rel;
+ OnlineAnalyzeTableType reltype;
+
+ rel = RelationIdGetRelation(relOid);
+
+ if (rel->rd_rel->relkind != RELKIND_RELATION)
+ {
+ RelationClose(rel);
+ return;
+ }
+
+ reltype =
+#if PG_VERSION_NUM >= 90100
+ (rel->rd_rel->relpersistence == RELPERSISTENCE_TEMP)
+#else
+ (rel->rd_istemp || rel->rd_islocaltemp)
+#endif
+ ? OATT_TEMPORARY : OATT_PERSISTENT;
+ RelationClose(rel);
+
+ /*
+ * skip analyze if relation's type doesn't not match
+ * online_analyze_table_type
+ */
+ if ((online_analyze_table_type & reltype) == 0 ||
+ matchOid(&excludeTables, relOid) == true)
+ {
+ if (matchOid(&includeTables, relOid) == false)
+ return;
+ }
+ break;
+ }
+ }
tabentry = pgstat_fetch_stat_tabentry(relOid);
memset(&startStamp, 0, sizeof(startStamp)); /* keep compiler quiet */
- /*
- * includeTables overwrites excludeTables
- */
- switch(online_analyze_table_type)
- {
- case OATT_ALL:
- if (matchOid(&excludeTables, relOid) == true &&
- matchOid(&includeTables, relOid) == false)
- return;
- break;
- case OATT_NONE:
- if (matchOid(&includeTables, relOid) == false)
- return;
- break;
- case OATT_TEMPORARY:
- case OATT_PERSISTENT:
- default:
- {
- Relation rel;
- OnlineAnalyzeTableType reltype;
-
- rel = RelationIdGetRelation(relOid);
- reltype =
-#if PG_VERSION_NUM >= 90100
- (rel->rd_rel->relpersistence == RELPERSISTENCE_TEMP)
-#else
- (rel->rd_istemp || rel->rd_islocaltemp)
-#endif
- ? OATT_TEMPORARY : OATT_PERSISTENT;
- RelationClose(rel);
-
- /*
- * skip analyze if relation's type doesn't not match
- * online_analyze_table_type
- */
- if ((online_analyze_table_type & reltype) == 0 ||
- matchOid(&excludeTables, relOid) == true)
- {
- if (matchOid(&includeTables, relOid) == false)
- return;
- }
- }
- break;
- }
-
memset(&vacstmt, 0, sizeof(vacstmt));
vacstmt.freeze_min_age = -1;
((double)secs) + ((double)microsecs)/1.0e6);
}
-
if (tabentry == NULL)
{
/* new table */