From 86eef300f1124be285f5991f449f4b12afe8e448 Mon Sep 17 00:00:00 2001 From: Daniele Varrazzo Date: Mon, 10 Apr 2017 11:36:06 +0100 Subject: [PATCH] Dropped C code used by unsupported PG versions --- bin/pgut/pgut.c | 2 - bin/pgut/pgut.h | 19 -------- lib/pgut/pgut-be.c | 58 ----------------------- lib/pgut/pgut-be.h | 112 -------------------------------------------- lib/pgut/pgut-spi.c | 22 --------- lib/pgut/pgut-spi.h | 7 --- lib/repack.c | 53 --------------------- 7 files changed, 273 deletions(-) diff --git a/bin/pgut/pgut.c b/bin/pgut/pgut.c index 90ed8cb..66db463 100644 --- a/bin/pgut/pgut.c +++ b/bin/pgut/pgut.c @@ -79,11 +79,9 @@ pgut_init(int argc, char **argv) pthread_mutex_init(&pgut_conn_mutex, NULL); #endif -#if PG_VERSION_NUM >= 90000 /* application_name for 9.0 or newer versions */ if (getenv("PGAPPNAME") == NULL) pgut_putenv("PGAPPNAME", PROGRAM_NAME); -#endif init_cancel_handler(); atexit(on_cleanup); diff --git a/bin/pgut/pgut.h b/bin/pgut/pgut.h index ca1f381..c33f389 100644 --- a/bin/pgut/pgut.h +++ b/bin/pgut/pgut.h @@ -195,25 +195,6 @@ extern size_t simple_string_list_size(SimpleStringList list); extern int wait_for_socket(int sock, struct timeval *timeout); extern int wait_for_sockets(int nfds, fd_set *fds, struct timeval *timeout); -/* - * import from postgres.h and catalog/genbki.h in 8.4 - */ -#if PG_VERSION_NUM < 80400 - -typedef unsigned long Datum; -typedef struct MemoryContextData *MemoryContext; - -#define CATALOG(name,oid) typedef struct CppConcat(FormData_,name) -#define BKI_BOOTSTRAP -#define BKI_SHARED_RELATION -#define BKI_WITHOUT_OIDS -#define DATA(x) extern int no_such_variable -#define DESCR(x) extern int no_such_variable -#define SHDESCR(x) extern int no_such_variable -typedef int aclitem; - -#endif - #ifdef WIN32 extern int sleep(unsigned int seconds); extern int usleep(unsigned int usec); diff --git a/lib/pgut/pgut-be.c b/lib/pgut/pgut-be.c index af7097b..9caaec5 100644 --- a/lib/pgut/pgut-be.c +++ b/lib/pgut/pgut-be.c @@ -11,61 +11,3 @@ #include "postgres.h" #include "access/heapam.h" #include "pgut-be.h" - -#if PG_VERSION_NUM < 80400 - -char * -text_to_cstring(const text *t) -{ - text *tunpacked = pg_detoast_datum_packed((struct varlena *) t); - int len = VARSIZE_ANY_EXHDR(tunpacked); - char *result; - - result = (char *) palloc(len + 1); - memcpy(result, VARDATA_ANY(tunpacked), len); - result[len] = '\0'; - - if (tunpacked != t) - pfree(tunpacked); - - return result; -} - -text * -cstring_to_text(const char *s) -{ - int len = strlen(s); - text *result = palloc(len + VARHDRSZ); - - SET_VARSIZE(result, len + VARHDRSZ); - memcpy(VARDATA(result), s, len); - - return result; -} - -void -tuplestore_putvalues(Tuplestorestate *state, TupleDesc tdesc, - Datum *values, bool *isnull) -{ - tuplestore_puttuple(state, heap_form_tuple(tdesc, values, isnull)); -} - -Datum -ExecFetchSlotTupleDatum(TupleTableSlot *slot) -{ - HeapTuple tup; - HeapTupleHeader td; - TupleDesc tupdesc; - - /* Make sure we can scribble on the slot contents ... */ - tup = ExecMaterializeSlot(slot); - /* ... and set up the composite-Datum header fields, in case not done */ - td = tup->t_data; - tupdesc = slot->tts_tupleDescriptor; - HeapTupleHeaderSetDatumLength(td, tup->t_len); - HeapTupleHeaderSetTypeId(td, tupdesc->tdtypeid); - HeapTupleHeaderSetTypMod(td, tupdesc->tdtypmod); - return PointerGetDatum(td); -} - -#endif diff --git a/lib/pgut/pgut-be.h b/lib/pgut/pgut-be.h index ad57de7..fc09184 100644 --- a/lib/pgut/pgut-be.h +++ b/lib/pgut/pgut-be.h @@ -52,116 +52,4 @@ extern int no_such_variable #endif - -#if PG_VERSION_NUM < 80400 - -#define MAIN_FORKNUM 0 -#define HEAP_INSERT_SKIP_WAL 0x0001 -#define HEAP_INSERT_SKIP_FSM 0x0002 - -#define relpath(rnode, forknum) relpath((rnode)) -#define smgrimmedsync(reln, forknum) smgrimmedsync((reln)) -#define smgrread(reln, forknum, blocknum, buffer) \ - smgrread((reln), (blocknum), (buffer)) -#define mdclose(reln, forknum) mdclose((reln)) -#define heap_insert(relation, tup, cid, options, bistate) \ - heap_insert((relation), (tup), (cid), true, true) -#define GetBulkInsertState() (NULL) -#define FreeBulkInsertState(bistate) ((void)0) -#define FreeExprContext(econtext, isCommit) FreeExprContext((econtext)) -#define pgstat_init_function_usage(fcinfo, fcu) ((void)0) -#define pgstat_end_function_usage(fcu, finalize) ((void)0) -#define makeRangeVar(schemaname, relname, location) \ - makeRangeVar((schemaname), (relname)) -#define tuplestore_gettupleslot(state, forward, copy, slot) \ - tuplestore_gettupleslot(state, forward, slot) -#define pgstat_track_activity_query_size PGBE_ACTIVITY_SIZE -typedef void *BulkInsertState; - -#define DefineCustomBoolVariable(name, short_desc, long_desc, valueAddr, bootValue, context, flags, assign_hook, show_hook) \ - do { \ - *(valueAddr) = (bootValue); \ - DefineCustomBoolVariable((name), (short_desc), (long_desc), (valueAddr), (context), (assign_hook), (show_hook)); \ - } while(0) -#define DefineCustomIntVariable(name, short_desc, long_desc, valueAddr, bootValue, minValue, maxValue, context, flags, assign_hook, show_hook) \ - do { \ - *(valueAddr) = (bootValue); \ - DefineCustomIntVariable((name), (short_desc), (long_desc), (valueAddr), (minValue), (maxValue), (context), (assign_hook), (show_hook)); \ - } while(0) -#define DefineCustomRealVariable(name, short_desc, long_desc, valueAddr, bootValue, minValue, maxValue, context, flags, assign_hook, show_hook) \ - do { \ - *(valueAddr) = (bootValue); \ - DefineCustomRealVariable((name), (short_desc), (long_desc), (valueAddr), (minValue), (maxValue), (context), (assign_hook), (show_hook)); \ - } while(0) -#define DefineCustomStringVariable(name, short_desc, long_desc, valueAddr, bootValue, context, flags, assign_hook, show_hook) \ - do { \ - *(valueAddr) = (char *) (bootValue); \ - DefineCustomStringVariable((name), (short_desc), (long_desc), (valueAddr), (context), (assign_hook), (show_hook)); \ - } while(0) - -struct config_enum_entry -{ - const char *name; - int val; - bool hidden; -}; - -extern char *text_to_cstring(const text *t); -extern text *cstring_to_text(const char *s); -extern void tuplestore_putvalues(Tuplestorestate *state, TupleDesc tdesc, - Datum *values, bool *isnull); -extern Datum ExecFetchSlotTupleDatum(TupleTableSlot *slot); - -#define CStringGetTextDatum(s) PointerGetDatum(cstring_to_text(s)) -#define TextDatumGetCString(d) text_to_cstring((text *) DatumGetPointer(d)) - -#endif - -#if PG_VERSION_NUM < 90000 - -#define reindex_index(indexId, skip_constraint_checks) \ - reindex_index((indexId)) -#define func_signature_string(funcname, nargs, argnames, argtypes) \ - func_signature_string((funcname), (nargs), (argtypes)) - -#endif - -#if PG_VERSION_NUM < 90200 - -#define RangeVarGetRelid(relation, lockmode, missing_ok, nowait) \ - RangeVarGetRelid((relation), (missing_ok)) - -#endif - -#if PG_VERSION_NUM < 90100 - -#define ATExecChangeOwner(relationOid, newOwnerId, recursing, lockmode) \ - ATExecChangeOwner((relationOid), (newOwnerId), (recursing)) -#define deleteDependencyRecordsFor(classId, objectId, skipExtensionDeps) \ - deleteDependencyRecordsFor((classId), (objectId)) -#define PG_GET_COLLATION() (InvalidOid) - -#endif - -#if PG_VERSION_NUM < 90000 -#define RelationSetNewRelfilenode(rel, xid) \ - setNewRelfilenode((rel), (xid)) -#endif - -#if PG_VERSION_NUM < 80400 -#define FuncnameGetCandidates(names, nargs, argnames, variadic, defaults) \ - FuncnameGetCandidates((names), (nargs)) -#elif PG_VERSION_NUM < 90000 -#define FuncnameGetCandidates(names, nargs, argnames, variadic, defaults) \ - FuncnameGetCandidates((names), (nargs), (variadic), (defaults)) -#endif - -#if PG_VERSION_NUM < 90000 -#define GetConfigOption(name, missing_ok, restrict_superuser) \ - GetConfigOption((name)) -#elif PG_VERSION_NUM < 90200 -#define GetConfigOption(name, missing_ok, restrict_superuser) \ - GetConfigOption((name), (restrict_superuser)) -#endif - #endif /* PGUT_BE_H */ diff --git a/lib/pgut/pgut-spi.c b/lib/pgut/pgut-spi.c index ed26260..5bf2c95 100644 --- a/lib/pgut/pgut-spi.c +++ b/lib/pgut/pgut-spi.c @@ -115,25 +115,3 @@ execute_with_format_args(int expected, const char *format, int nargs, Oid argtyp termStringInfo(&sql); } - - -#if PG_VERSION_NUM < 80400 - -int -SPI_execute_with_args(const char *src, - int nargs, Oid *argtypes, - Datum *values, const char *nulls, - bool read_only, long tcount) -{ - SPIPlanPtr plan; - int ret; - - plan = SPI_prepare(src, nargs, argtypes); - if (plan == NULL) - return SPI_result; - ret = SPI_execute_plan(plan, values, nulls, read_only, tcount); - SPI_freeplan(plan); - return ret; -} - -#endif diff --git a/lib/pgut/pgut-spi.h b/lib/pgut/pgut-spi.h index 4ea0156..5406b36 100644 --- a/lib/pgut/pgut-spi.h +++ b/lib/pgut/pgut-spi.h @@ -12,13 +12,6 @@ #include "executor/spi.h" -#if PG_VERSION_NUM < 80400 - -extern int SPI_execute_with_args(const char *src, int nargs, Oid *argtypes, - Datum *values, const char *nulls, bool read_only, long tcount); - -#endif - extern void execute(int expected, const char *sql); extern void execute_plan(int expected, SPIPlanPtr plan, Datum *values, const char *nulls); extern void execute_with_format(int expected, const char *format, ...) diff --git a/lib/repack.c b/lib/repack.c index 4e6711b..33ea053 100644 --- a/lib/repack.c +++ b/lib/repack.c @@ -93,14 +93,6 @@ must_be_superuser(const char *func) } -/* Include an implementation of RenameRelationInternal for old - * versions which don't have one. - */ -#if PG_VERSION_NUM < 80400 -static void RenameRelationInternal(Oid myrelid, const char *newrelname, Oid namespaceId); -#endif - - /* The API of RenameRelationInternal() was changed in 9.2. * Use the RENAME_REL macro for compatibility across versions. */ @@ -1016,19 +1008,6 @@ repack_drop(PG_FUNCTION_ARGS) --numobj; } -#if PG_VERSION_NUM < 80400 - /* delete autovacuum settings */ - execute_with_format( - SPI_OK_DELETE, - "DELETE FROM pg_catalog.pg_autovacuum v" - " USING pg_class c, pg_namespace n" - " WHERE relname IN ('log_%u', 'table_%u')" - " AND n.nspname = 'repack'" - " AND c.relnamespace = n.oid" - " AND v.vacrelid = c.oid", - oid, oid); -#endif - /* drop temp table */ if (numobj > 0) { @@ -1052,17 +1031,10 @@ repack_disable_autovacuum(PG_FUNCTION_ARGS) /* connect to SPI manager */ repack_init(); -#if PG_VERSION_NUM >= 80400 execute_with_format( SPI_OK_UTILITY, "ALTER TABLE %s SET (autovacuum_enabled = off)", get_relation_name(oid)); -#else - execute_with_format( - SPI_OK_INSERT, - "INSERT INTO pg_catalog.pg_autovacuum VALUES (%u, false, -1, -1, -1, -1, -1, -1, -1, -1)", - oid); -#endif SPI_finish(); @@ -1317,28 +1289,3 @@ repack_index_swap(PG_FUNCTION_ARGS) SPI_finish(); PG_RETURN_VOID(); } - -#if PG_VERSION_NUM < 80400 - -/* XXX: You might need to add PGDLLIMPORT into your miscadmin.h. */ -extern PGDLLIMPORT bool allowSystemTableMods; - -static void -RenameRelationInternal(Oid myrelid, const char *newrelname, Oid namespaceId) -{ - bool save_allowSystemTableMods = allowSystemTableMods; - - allowSystemTableMods = true; - PG_TRY(); - { - renamerel(myrelid, newrelname, OBJECT_TABLE); - allowSystemTableMods = save_allowSystemTableMods; - } - PG_CATCH(); - { - allowSystemTableMods = save_allowSystemTableMods; - PG_RE_THROW(); - } - PG_END_TRY(); -} -#endif