*
* List of columns selected is returned in retrieved_attrs.
*/
-extern void
+void
deparseSelectStmtForRel(StringInfo buf, PlannerInfo *root, RelOptInfo *rel,
List *tlist, List *remote_conds, List *pathkeys,
bool is_subquery, List **retrieved_attrs,
}
/* Output join name for given join type */
-extern const char *
+const char *
get_jointype_name(JoinType jointype)
{
switch (jointype)
* Find an equivalence class member expression, all of whose Vars, come from
* the indicated relation.
*/
-extern Expr *
+Expr *
find_em_expr_for_rel(EquivalenceClass *ec, RelOptInfo *rel)
{
ListCell *lc_em;
* EstimateReindexStateSpace
* Estimate space needed to pass reindex state to parallel workers.
*/
-extern Size
+Size
EstimateReindexStateSpace(void)
{
return offsetof(SerializedReindexState, pendingReindexedIndexes)
* SerializeReindexState
* Serialize reindex state for parallel workers.
*/
-extern void
+void
SerializeReindexState(Size maxsize, char *start_address)
{
SerializedReindexState *sistate = (SerializedReindexState *) start_address;
* RestoreReindexState
* Restore reindex state in a parallel worker.
*/
-extern void
+void
RestoreReindexState(void *reindexstate)
{
SerializedReindexState *sistate = (SerializedReindexState *) reindexstate;
* Return a copy of given PartitionBoundInfo structure. The data types of bounds
* are described by given partition key specification.
*/
-extern PartitionBoundInfo
+PartitionBoundInfo
partition_bounds_copy(PartitionBoundInfo src,
PartitionKey key)
{
* path list in RelOptInfo is anyway sorted by total cost we are likely to
* choose the most efficient path, which is all for the best.
*/
-extern Path *
+Path *
GetExistingLocalJoinPath(RelOptInfo *joinrel)
{
ListCell *lc;
* Attach to an existing table of contents. If the magic number found at
* the target address doesn't match our expectations, return NULL.
*/
-extern shm_toc *
+shm_toc *
shm_toc_attach(uint64 magic, void *address)
{
shm_toc *toc = (shm_toc *) address;
* We allocate backwards from the end of the segment, so that the TOC entries
* can grow forward from the start of the segment.
*/
-extern void *
+void *
shm_toc_allocate(shm_toc *toc, Size nbytes)
{
volatile shm_toc *vtoc = toc;
/*
* Return the number of bytes that can still be allocated.
*/
-extern Size
+Size
shm_toc_freespace(shm_toc *toc)
{
volatile shm_toc *vtoc = toc;
/*
* SQL function array_to_json(row)
*/
-extern Datum
+Datum
array_to_json(PG_FUNCTION_ARGS)
{
Datum array = PG_GETARG_DATUM(0);
/*
* SQL function array_to_json(row, prettybool)
*/
-extern Datum
+Datum
array_to_json_pretty(PG_FUNCTION_ARGS)
{
Datum array = PG_GETARG_DATUM(0);
/*
* SQL function row_to_json(row)
*/
-extern Datum
+Datum
row_to_json(PG_FUNCTION_ARGS)
{
Datum array = PG_GETARG_DATUM(0);
/*
* SQL function row_to_json(row, prettybool)
*/
-extern Datum
+Datum
row_to_json_pretty(PG_FUNCTION_ARGS)
{
Datum array = PG_GETARG_DATUM(0);