mirror of
https://github.com/postgres/postgres.git
synced 2025-06-20 15:22:23 +03:00
vacuumdb would use a catalog query only when the command caller does not define a list of tables. Switching to a catalog table represents two advantages: - Relation existence check can happen before running any VACUUM or ANALYZE query. Before this change, if multiple relations are defined using --table, the utility would fail only after processing the firstly-defined ones, which may be a long some depending on the size of the relation. This adds checks for the relation names, and does nothing, at least yet, for the attribute names. - More filtering options can become available for the utility user. These options, which may be introduced later on, are based on the relation size or the relation age, and need to be made available even if the user does not list any specific table with --table. Author: Nathan Bossart Reviewed-by: Michael Paquier, Masahiko Sawada Discussion: https://postgr.es/m/FFE5373C-E26A-495B-B5C8-911EC4A41C5E@amazon.com
66 lines
1.7 KiB
C
66 lines
1.7 KiB
C
/*
|
|
* common.h
|
|
* Common support routines for bin/scripts/
|
|
*
|
|
* Copyright (c) 2003-2019, PostgreSQL Global Development Group
|
|
*
|
|
* src/bin/scripts/common.h
|
|
*/
|
|
#ifndef COMMON_H
|
|
#define COMMON_H
|
|
|
|
#include "common/username.h"
|
|
#include "libpq-fe.h"
|
|
#include "getopt_long.h" /* pgrminclude ignore */
|
|
#include "pqexpbuffer.h" /* pgrminclude ignore */
|
|
|
|
enum trivalue
|
|
{
|
|
TRI_DEFAULT,
|
|
TRI_NO,
|
|
TRI_YES
|
|
};
|
|
|
|
extern bool CancelRequested;
|
|
|
|
typedef void (*help_handler) (const char *progname);
|
|
|
|
extern void handle_help_version_opts(int argc, char *argv[],
|
|
const char *fixed_progname,
|
|
help_handler hlp);
|
|
|
|
extern PGconn *connectDatabase(const char *dbname, const char *pghost,
|
|
const char *pgport, const char *pguser,
|
|
enum trivalue prompt_password, const char *progname,
|
|
bool echo, bool fail_ok, bool allow_password_reuse);
|
|
|
|
extern PGconn *connectMaintenanceDatabase(const char *maintenance_db,
|
|
const char *pghost, const char *pgport,
|
|
const char *pguser, enum trivalue prompt_password,
|
|
const char *progname, bool echo);
|
|
|
|
extern PGresult *executeQuery(PGconn *conn, const char *query,
|
|
const char *progname, bool echo);
|
|
|
|
extern void executeCommand(PGconn *conn, const char *query,
|
|
const char *progname, bool echo);
|
|
|
|
extern bool executeMaintenanceCommand(PGconn *conn, const char *query,
|
|
bool echo);
|
|
|
|
extern void splitTableColumnsSpec(const char *spec, int encoding,
|
|
char **table, const char **columns);
|
|
|
|
extern void appendQualifiedRelation(PQExpBuffer buf, const char *name,
|
|
PGconn *conn, const char *progname, bool echo);
|
|
|
|
extern bool yesno_prompt(const char *question);
|
|
|
|
extern void setup_cancel_handler(void);
|
|
|
|
extern void SetCancelConn(PGconn *conn);
|
|
extern void ResetCancelConn(void);
|
|
|
|
|
|
#endif /* COMMON_H */
|