Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
b5bce6c1
Commit
b5bce6c1
authored
Aug 15, 2016
by
Tom Lane
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Final pgindent + perltidy run for 9.6.
parent
05d8dec6
Changes
26
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
175 additions
and
151 deletions
+175
-151
src/backend/access/brin/brin_validate.c
src/backend/access/brin/brin_validate.c
+2
-2
src/backend/access/gin/ginvalidate.c
src/backend/access/gin/ginvalidate.c
+2
-2
src/backend/access/gist/gistvalidate.c
src/backend/access/gist/gistvalidate.c
+2
-2
src/backend/access/hash/hashvalidate.c
src/backend/access/hash/hashvalidate.c
+3
-3
src/backend/access/heap/heapam.c
src/backend/access/heap/heapam.c
+7
-6
src/backend/access/heap/tuptoaster.c
src/backend/access/heap/tuptoaster.c
+5
-5
src/backend/commands/variable.c
src/backend/commands/variable.c
+1
-1
src/backend/replication/libpqwalreceiver/libpqwalreceiver.c
src/backend/replication/libpqwalreceiver/libpqwalreceiver.c
+2
-2
src/backend/replication/syncrep.c
src/backend/replication/syncrep.c
+5
-4
src/backend/tsearch/spell.c
src/backend/tsearch/spell.c
+5
-3
src/backend/utils/adt/jsonb.c
src/backend/utils/adt/jsonb.c
+3
-3
src/backend/utils/adt/tsquery.c
src/backend/utils/adt/tsquery.c
+16
-15
src/backend/utils/adt/tsquery_cleanup.c
src/backend/utils/adt/tsquery_cleanup.c
+3
-3
src/backend/utils/sort/tuplesort.c
src/backend/utils/sort/tuplesort.c
+5
-5
src/bin/pg_dump/pg_dump.c
src/bin/pg_dump/pg_dump.c
+7
-6
src/bin/pg_dump/pg_dumpall.c
src/bin/pg_dump/pg_dumpall.c
+18
-10
src/bin/pg_dump/t/002_pg_dump.pl
src/bin/pg_dump/t/002_pg_dump.pl
+16
-15
src/include/commands/async.h
src/include/commands/async.h
+2
-2
src/include/tsearch/ts_type.h
src/include/tsearch/ts_type.h
+1
-1
src/pl/plpython/plpy_plpymodule.c
src/pl/plpython/plpy_plpymodule.c
+2
-2
src/test/modules/test_pg_dump/t/001_base.pl
src/test/modules/test_pg_dump/t/001_base.pl
+34
-34
src/test/perl/PostgresNode.pm
src/test/perl/PostgresNode.pm
+2
-2
src/test/recovery/t/003_recovery_targets.pl
src/test/recovery/t/003_recovery_targets.pl
+4
-4
src/tools/msvc/Install.pm
src/tools/msvc/Install.pm
+10
-11
src/tools/msvc/vcregress.pl
src/tools/msvc/vcregress.pl
+3
-2
src/tools/pgindent/typedefs.list
src/tools/pgindent/typedefs.list
+15
-6
No files found.
src/backend/access/brin/brin_validate.c
View file @
b5bce6c1
...
...
@@ -264,8 +264,8 @@ brinvalidate(Oid opclassoid)
continue
;
/* got it */
ereport
(
INFO
,
(
errcode
(
ERRCODE_INVALID_OBJECT_DEFINITION
),
errmsg
(
"brin operator class
\"
%s
\"
is missing support function %d"
,
opclassname
,
i
)));
errmsg
(
"brin operator class
\"
%s
\"
is missing support function %d"
,
opclassname
,
i
)));
result
=
false
;
}
...
...
src/backend/access/gin/ginvalidate.c
View file @
b5bce6c1
...
...
@@ -243,8 +243,8 @@ ginvalidate(Oid opclassoid)
continue
;
/* don't need both, see check below loop */
ereport
(
INFO
,
(
errcode
(
ERRCODE_INVALID_OBJECT_DEFINITION
),
errmsg
(
"gin operator class
\"
%s
\"
is missing support function %d"
,
opclassname
,
i
)));
errmsg
(
"gin operator class
\"
%s
\"
is missing support function %d"
,
opclassname
,
i
)));
result
=
false
;
}
if
(
!
opclassgroup
||
...
...
src/backend/access/gist/gistvalidate.c
View file @
b5bce6c1
...
...
@@ -261,8 +261,8 @@ gistvalidate(Oid opclassoid)
continue
;
/* optional methods */
ereport
(
INFO
,
(
errcode
(
ERRCODE_INVALID_OBJECT_DEFINITION
),
errmsg
(
"gist operator class
\"
%s
\"
is missing support function %d"
,
opclassname
,
i
)));
errmsg
(
"gist operator class
\"
%s
\"
is missing support function %d"
,
opclassname
,
i
)));
result
=
false
;
}
...
...
src/backend/access/hash/hashvalidate.c
View file @
b5bce6c1
...
...
@@ -186,9 +186,9 @@ hashvalidate(Oid opclassoid)
{
ereport
(
INFO
,
(
errcode
(
ERRCODE_INVALID_OBJECT_DEFINITION
),
errmsg
(
"hash operator family
\"
%s
\"
lacks support function for operator %s"
,
opfamilyname
,
format_operator
(
oprform
->
amopopr
))));
errmsg
(
"hash operator family
\"
%s
\"
lacks support function for operator %s"
,
opfamilyname
,
format_operator
(
oprform
->
amopopr
))));
result
=
false
;
}
}
...
...
src/backend/access/heap/heapam.c
View file @
b5bce6c1
...
...
@@ -4571,7 +4571,7 @@ heap_lock_tuple(Relation relation, HeapTuple tuple,
ItemId
lp
;
Page
page
;
Buffer
vmbuffer
=
InvalidBuffer
;
BlockNumber
block
;
BlockNumber
block
;
TransactionId
xid
,
xmax
;
uint16
old_infomask
,
...
...
@@ -5643,7 +5643,7 @@ static HTSU_Result
heap_lock_updated_tuple_rec
(
Relation
rel
,
ItemPointer
tid
,
TransactionId
xid
,
LockTupleMode
mode
)
{
HTSU_Result
result
;
HTSU_Result
result
;
ItemPointerData
tupid
;
HeapTupleData
mytup
;
Buffer
buf
;
...
...
@@ -6698,6 +6698,7 @@ heap_prepare_freeze_tuple(HeapTupleHeader tuple, TransactionId cutoff_xid,
if
(
tuple
->
t_infomask
&
HEAP_MOVED
)
{
xid
=
HeapTupleHeaderGetXvac
(
tuple
);
/*
* For Xvac, we ignore the cutoff_xid and just always perform the
* freeze operation. The oldest release in which such a value can
...
...
@@ -8841,9 +8842,9 @@ heap_xlog_lock(XLogReaderState *record)
*/
if
(
xlrec
->
flags
&
XLH_LOCK_ALL_FROZEN_CLEARED
)
{
RelFileNode
rnode
;
RelFileNode
rnode
;
Buffer
vmbuffer
=
InvalidBuffer
;
BlockNumber
block
;
BlockNumber
block
;
Relation
reln
;
XLogRecGetBlockTag
(
record
,
0
,
&
rnode
,
NULL
,
&
block
);
...
...
@@ -8914,9 +8915,9 @@ heap_xlog_lock_updated(XLogReaderState *record)
*/
if
(
xlrec
->
flags
&
XLH_LOCK_ALL_FROZEN_CLEARED
)
{
RelFileNode
rnode
;
RelFileNode
rnode
;
Buffer
vmbuffer
=
InvalidBuffer
;
BlockNumber
block
;
BlockNumber
block
;
Relation
reln
;
XLogRecGetBlockTag
(
record
,
0
,
&
rnode
,
NULL
,
&
block
);
...
...
src/backend/access/heap/tuptoaster.c
View file @
b5bce6c1
...
...
@@ -1667,7 +1667,7 @@ toast_delete_datum(Relation rel, Datum value)
HeapTuple
toasttup
;
int
num_indexes
;
int
validIndex
;
SnapshotData
SnapshotToast
;
SnapshotData
SnapshotToast
;
if
(
!
VARATT_IS_EXTERNAL_ONDISK
(
attr
))
return
;
...
...
@@ -1734,7 +1734,7 @@ toastrel_valueid_exists(Relation toastrel, Oid valueid)
int
num_indexes
;
int
validIndex
;
Relation
*
toastidxs
;
SnapshotData
SnapshotToast
;
SnapshotData
SnapshotToast
;
/* Fetch a valid index relation */
validIndex
=
toast_open_indexes
(
toastrel
,
...
...
@@ -1819,7 +1819,7 @@ toast_fetch_datum(struct varlena * attr)
int32
chunksize
;
int
num_indexes
;
int
validIndex
;
SnapshotData
SnapshotToast
;
SnapshotData
SnapshotToast
;
if
(
!
VARATT_IS_EXTERNAL_ONDISK
(
attr
))
elog
(
ERROR
,
"toast_fetch_datum shouldn't be called for non-ondisk datums"
);
...
...
@@ -1998,7 +1998,7 @@ toast_fetch_datum_slice(struct varlena * attr, int32 sliceoffset, int32 length)
int32
chcpyend
;
int
num_indexes
;
int
validIndex
;
SnapshotData
SnapshotToast
;
SnapshotData
SnapshotToast
;
if
(
!
VARATT_IS_EXTERNAL_ONDISK
(
attr
))
elog
(
ERROR
,
"toast_fetch_datum_slice shouldn't be called for non-ondisk datums"
);
...
...
@@ -2094,7 +2094,7 @@ toast_fetch_datum_slice(struct varlena * attr, int32 sliceoffset, int32 length)
init_toast_snapshot
(
&
SnapshotToast
);
nextidx
=
startchunk
;
toastscan
=
systable_beginscan_ordered
(
toastrel
,
toastidxs
[
validIndex
],
&
SnapshotToast
,
nscankeys
,
toastkey
);
&
SnapshotToast
,
nscankeys
,
toastkey
);
while
((
ttup
=
systable_getnext_ordered
(
toastscan
,
ForwardScanDirection
))
!=
NULL
)
{
/*
...
...
src/backend/commands/variable.c
View file @
b5bce6c1
...
...
@@ -776,7 +776,7 @@ assign_client_encoding(const char *newval, void *extra)
*/
ereport
(
ERROR
,
(
errcode
(
ERRCODE_INVALID_TRANSACTION_STATE
),
errmsg
(
"cannot change client_encoding in a parallel worker"
)));
errmsg
(
"cannot change client_encoding in a parallel worker"
)));
}
/* We do not expect an error if PrepareClientEncoding succeeded */
...
...
src/backend/replication/libpqwalreceiver/libpqwalreceiver.c
View file @
b5bce6c1
...
...
@@ -129,7 +129,7 @@ libpqrcv_get_conninfo(void)
{
PQconninfoOption
*
conn_opts
;
PQconninfoOption
*
conn_opt
;
PQExpBufferData
buf
;
PQExpBufferData
buf
;
char
*
retval
;
Assert
(
streamConn
!=
NULL
);
...
...
@@ -145,7 +145,7 @@ libpqrcv_get_conninfo(void)
/* build a clean connection string from pieces */
for
(
conn_opt
=
conn_opts
;
conn_opt
->
keyword
!=
NULL
;
conn_opt
++
)
{
bool
obfuscate
;
bool
obfuscate
;
/* Skip debug and empty options */
if
(
strchr
(
conn_opt
->
dispchar
,
'D'
)
||
...
...
src/backend/replication/syncrep.c
View file @
b5bce6c1
...
...
@@ -193,10 +193,11 @@ SyncRepWaitForLSN(XLogRecPtr lsn, bool commit)
ResetLatch
(
MyLatch
);
/*
* Acquiring the lock is not needed, the latch ensures proper barriers.
* If it looks like we're done, we must really be done, because once
* walsender changes the state to SYNC_REP_WAIT_COMPLETE, it will never
* update it again, so we can't be seeing a stale value in that case.
* Acquiring the lock is not needed, the latch ensures proper
* barriers. If it looks like we're done, we must really be done,
* because once walsender changes the state to SYNC_REP_WAIT_COMPLETE,
* it will never update it again, so we can't be seeing a stale value
* in that case.
*/
if
(
MyProc
->
syncRepState
==
SYNC_REP_WAIT_COMPLETE
)
break
;
...
...
src/backend/tsearch/spell.c
View file @
b5bce6c1
...
...
@@ -433,7 +433,8 @@ getNextFlagFromString(IspellDict *Conf, char **sflagset, char *sflag)
if
(
Conf
->
flagMode
==
FM_LONG
&&
maxstep
>
0
)
ereport
(
ERROR
,
(
errcode
(
ERRCODE_CONFIG_FILE_ERROR
),
errmsg
(
"invalid affix flag
\"
%s
\"
with
\"
long
\"
flag value"
,
sbuf
)));
errmsg
(
"invalid affix flag
\"
%s
\"
with
\"
long
\"
flag value"
,
sbuf
)));
*
sflag
=
'\0'
;
}
...
...
@@ -1263,8 +1264,9 @@ NIImportOOAffixes(IspellDict *Conf, const char *filename)
else
if
(
STRNCMP
(
s
,
"default"
)
!=
0
)
ereport
(
ERROR
,
(
errcode
(
ERRCODE_CONFIG_FILE_ERROR
),
errmsg
(
"Ispell dictionary supports only
\"
default
\"
, "
"
\"
long
\"
, and
\"
num
\"
flag value"
)));
errmsg
(
"Ispell dictionary supports only "
"
\"
default
\"
,
\"
long
\"
, "
"and
\"
num
\"
flag values"
)));
}
}
...
...
src/backend/utils/adt/jsonb.c
View file @
b5bce6c1
...
...
@@ -1849,9 +1849,9 @@ jsonb_object_agg_transfn(PG_FUNCTION_ARGS)
single_scalar
=
false
;
/*
* values can be anything, including structured and null, so we treat
*
them as in json_agg_transfn, except that single scalars are alway
s
*
pushed as
WJB_VALUE items.
* values can be anything, including structured and null, so we treat
them
*
as in json_agg_transfn, except that single scalars are always pushed a
s
* WJB_VALUE items.
*/
while
((
type
=
JsonbIteratorNext
(
&
it
,
&
v
,
false
))
!=
WJB_DONE
)
...
...
src/backend/utils/adt/tsquery.c
View file @
b5bce6c1
...
...
@@ -430,15 +430,16 @@ pushStop(TSQueryParserState state)
#define STACKDEPTH 32
typedef
struct
OperatorElement
{
int8
op
;
int16
distance
;
typedef
struct
OperatorElement
{
int8
op
;
int16
distance
;
}
OperatorElement
;
static
void
pushOpStack
(
OperatorElement
*
stack
,
int
*
lenstack
,
int8
op
,
int16
distance
)
{
if
(
*
lenstack
==
STACKDEPTH
)
/* internal error */
if
(
*
lenstack
==
STACKDEPTH
)
/* internal error */
elog
(
ERROR
,
"tsquery stack too small"
);
stack
[
*
lenstack
].
op
=
op
;
...
...
@@ -449,20 +450,20 @@ pushOpStack(OperatorElement *stack, int *lenstack, int8 op, int16 distance)
static
void
cleanOpStack
(
TSQueryParserState
state
,
OperatorElement
*
stack
,
int
*
lenstack
,
int8
op
)
OperatorElement
*
stack
,
int
*
lenstack
,
int8
op
)
{
int
opPriority
=
OP_PRIORITY
(
op
);
int
opPriority
=
OP_PRIORITY
(
op
);
while
(
*
lenstack
)
while
(
*
lenstack
)
{
/* NOT is right associative unlike to others */
if
((
op
!=
OP_NOT
&&
opPriority
>
OP_PRIORITY
(
stack
[
*
lenstack
-
1
].
op
))
||
(
op
==
OP_NOT
&&
opPriority
>=
OP_PRIORITY
(
stack
[
*
lenstack
-
1
].
op
)))
(
op
==
OP_NOT
&&
opPriority
>=
OP_PRIORITY
(
stack
[
*
lenstack
-
1
].
op
)))
break
;
(
*
lenstack
)
--
;
pushOperator
(
state
,
stack
[
*
lenstack
].
op
,
stack
[
*
lenstack
].
distance
);
stack
[
*
lenstack
].
distance
);
}
}
...
...
@@ -480,7 +481,7 @@ makepol(TSQueryParserState state,
ts_tokentype
type
;
int
lenval
=
0
;
char
*
strval
=
NULL
;
OperatorElement
opstack
[
STACKDEPTH
];
OperatorElement
opstack
[
STACKDEPTH
];
int
lenstack
=
0
;
int16
weight
=
0
;
bool
prefix
;
...
...
@@ -503,7 +504,7 @@ makepol(TSQueryParserState state,
makepol
(
state
,
pushval
,
opaque
);
break
;
case
PT_CLOSE
:
cleanOpStack
(
state
,
opstack
,
&
lenstack
,
OP_OR
/* lowest */
);
cleanOpStack
(
state
,
opstack
,
&
lenstack
,
OP_OR
/* lowest */
);
return
;
case
PT_ERR
:
default:
...
...
@@ -514,7 +515,7 @@ makepol(TSQueryParserState state,
}
}
cleanOpStack
(
state
,
opstack
,
&
lenstack
,
OP_OR
/* lowest */
);
cleanOpStack
(
state
,
opstack
,
&
lenstack
,
OP_OR
/* lowest */
);
}
static
void
...
...
@@ -845,8 +846,8 @@ infix(INFIX *in, int parentPriority, bool rightPhraseOp)
in
->
curpol
++
;
if
(
priority
<
parentPriority
||
/* phrase operator depends on order */
(
op
==
OP_PHRASE
&&
rightPhraseOp
))
/* phrase operator depends on order */
(
op
==
OP_PHRASE
&&
rightPhraseOp
))
{
needParenthesis
=
true
;
RESIZEBUF
(
in
,
2
);
...
...
@@ -916,7 +917,7 @@ tsqueryout(PG_FUNCTION_ARGS)
nrm
.
cur
=
nrm
.
buf
=
(
char
*
)
palloc
(
sizeof
(
char
)
*
nrm
.
buflen
);
*
(
nrm
.
cur
)
=
'\0'
;
nrm
.
op
=
GETOPERAND
(
query
);
infix
(
&
nrm
,
-
1
/* lowest priority */
,
false
);
infix
(
&
nrm
,
-
1
/* lowest priority */
,
false
);
PG_FREE_IF_COPY
(
query
,
0
);
PG_RETURN_CSTRING
(
nrm
.
buf
);
...
...
src/backend/utils/adt/tsquery_cleanup.c
View file @
b5bce6c1
...
...
@@ -406,7 +406,7 @@ normalize_phrase_tree(NODE *node)
if
(
node
->
valnode
->
qoperator
.
oper
==
OP_NOT
)
{
NODE
*
orignode
=
node
;
NODE
*
orignode
=
node
;
/* eliminate NOT sequence */
while
(
node
->
valnode
->
type
==
QI_OPR
&&
...
...
@@ -430,8 +430,8 @@ normalize_phrase_tree(NODE *node)
node
->
right
=
normalize_phrase_tree
(
node
->
right
);
/*
* if subtree contains only nodes with higher "priority" then
*
we are
done. See comment near NODE_PRIORITY()
* if subtree contains only nodes with higher "priority" then
we are
* done. See comment near NODE_PRIORITY()
*/
if
(
NODE_PRIORITY
(
node
)
<=
NODE_PRIORITY
(
node
->
right
)
&&
NODE_PRIORITY
(
node
)
<=
NODE_PRIORITY
(
node
->
left
))
...
...
src/backend/utils/sort/tuplesort.c
View file @
b5bce6c1
...
...
@@ -299,9 +299,9 @@ struct Tuplesortstate
* Function to read a stored tuple from tape back into memory. 'len' is
* the already-read length of the stored tuple. Create a palloc'd copy,
* initialize tuple/datum1/isnull1 in the target SortTuple struct, and
* decrease state->availMem by the amount of memory space consumed.
*
(See batchUsed notes for details on how memory is handled when
*
incremental
accounting is abandoned.)
* decrease state->availMem by the amount of memory space consumed.
(See
*
batchUsed notes for details on how memory is handled when incremental
* accounting is abandoned.)
*/
void
(
*
readtup
)
(
Tuplesortstate
*
state
,
SortTuple
*
stup
,
int
tapenum
,
unsigned
int
len
);
...
...
@@ -309,8 +309,8 @@ struct Tuplesortstate
/*
* Function to move a caller tuple. This is usually implemented as a
* memmove() shim, but function may also perform additional fix-up of
* caller tuple where needed. Batch memory support requires the
*
movement
of caller tuples from one location in memory to another.
* caller tuple where needed. Batch memory support requires the
movement
* of caller tuples from one location in memory to another.
*/
void
(
*
movetup
)
(
void
*
dest
,
void
*
src
,
unsigned
int
len
);
...
...
src/bin/pg_dump/pg_dump.c
View file @
b5bce6c1
...
...
@@ -6042,15 +6042,16 @@ getOwnedSeqs(Archive *fout, TableInfo tblinfo[], int numTables)
* We need to dump the components that are being dumped for the table
* and any components which the sequence is explicitly marked with.
*
* We can't simply use the set of components which are being dumped
for
* the table as the table might be in an extension (and only the
* We can't simply use the set of components which are being dumped
*
for
the table as the table might be in an extension (and only the
* non-extension components, eg: ACLs if changed, security labels, and
* policies, are being dumped) while the sequence is not (and therefore
* the definition and other components should also be dumped).
* policies, are being dumped) while the sequence is not (and
* therefore the definition and other components should also be
* dumped).
*
* If the sequence is part of the extension then it should be properly
* marked by checkExtensionMembership() and this will be a no-op as
the
* table will be equivalently marked.
* marked by checkExtensionMembership() and this will be a no-op as
* t
he t
able will be equivalently marked.
*/
seqinfo
->
dobj
.
dump
=
seqinfo
->
dobj
.
dump
|
owning_tab
->
dobj
.
dump
;
...
...
src/bin/pg_dump/pg_dumpall.c
View file @
b5bce6c1
...
...
@@ -1098,7 +1098,8 @@ dumpTablespaces(PGconn *conn)
else
if
(
server_version
>=
90200
)
res
=
executeQuery
(
conn
,
"SELECT oid, spcname, "
"pg_catalog.pg_get_userbyid(spcowner) AS spcowner, "
"pg_catalog.pg_tablespace_location(oid), spcacl, '' as rspcacl, "
"pg_catalog.pg_tablespace_location(oid), "
"spcacl, '' as rspcacl, "
"array_to_string(spcoptions, ', '),"
"pg_catalog.shobj_description(oid, 'pg_tablespace') "
"FROM pg_catalog.pg_tablespace "
...
...
@@ -1329,10 +1330,10 @@ dumpCreateDB(PGconn *conn)
"datistemplate, "
"(SELECT pg_catalog.array_agg(acl) FROM (SELECT pg_catalog.unnest(coalesce(datacl,pg_catalog.acldefault('d',datdba))) AS acl "
"EXCEPT SELECT pg_catalog.unnest(pg_catalog.acldefault('d',datdba))) as foo)"
"AS datacl,"
"AS datacl,
"
"(SELECT pg_catalog.array_agg(acl) FROM (SELECT pg_catalog.unnest(pg_catalog.acldefault('d',datdba)) AS acl "
"EXCEPT SELECT pg_catalog.unnest(coalesce(datacl,pg_catalog.acldefault('d',datdba)))) as foo)"
"AS rdatacl,"
"AS rdatacl,
"
"datconnlimit, "
"(SELECT spcname FROM pg_tablespace t WHERE t.oid = d.dattablespace) AS dattablespace "
"FROM pg_database d LEFT JOIN pg_authid u ON (datdba = u.oid) "
...
...
@@ -1343,7 +1344,8 @@ dumpCreateDB(PGconn *conn)
"coalesce(rolname, (select rolname from pg_authid where oid=(select datdba from pg_database where datname='template0'))), "
"pg_encoding_to_char(d.encoding), "
"datcollate, datctype, datfrozenxid, datminmxid, "
"datistemplate, datacl, '' as rdatacl, datconnlimit, "
"datistemplate, datacl, '' as rdatacl, "
"datconnlimit, "
"(SELECT spcname FROM pg_tablespace t WHERE t.oid = d.dattablespace) AS dattablespace "
"FROM pg_database d LEFT JOIN pg_authid u ON (datdba = u.oid) "
"WHERE datallowconn ORDER BY 1"
);
...
...
@@ -1353,7 +1355,8 @@ dumpCreateDB(PGconn *conn)
"coalesce(rolname, (select rolname from pg_authid where oid=(select datdba from pg_database where datname='template0'))), "
"pg_encoding_to_char(d.encoding), "
"datcollate, datctype, datfrozenxid, 0 AS datminmxid, "
"datistemplate, datacl, '' as rdatacl, datconnlimit, "
"datistemplate, datacl, '' as rdatacl, "
"datconnlimit, "
"(SELECT spcname FROM pg_tablespace t WHERE t.oid = d.dattablespace) AS dattablespace "
"FROM pg_database d LEFT JOIN pg_authid u ON (datdba = u.oid) "
"WHERE datallowconn ORDER BY 1"
);
...
...
@@ -1363,7 +1366,8 @@ dumpCreateDB(PGconn *conn)
"coalesce(rolname, (select rolname from pg_authid where oid=(select datdba from pg_database where datname='template0'))), "
"pg_encoding_to_char(d.encoding), "
"null::text AS datcollate, null::text AS datctype, datfrozenxid, 0 AS datminmxid, "
"datistemplate, datacl, '' as rdatacl, datconnlimit, "
"datistemplate, datacl, '' as rdatacl, "
"datconnlimit, "
"(SELECT spcname FROM pg_tablespace t WHERE t.oid = d.dattablespace) AS dattablespace "
"FROM pg_database d LEFT JOIN pg_authid u ON (datdba = u.oid) "
"WHERE datallowconn ORDER BY 1"
);
...
...
@@ -1373,7 +1377,8 @@ dumpCreateDB(PGconn *conn)
"coalesce(usename, (select usename from pg_shadow where usesysid=(select datdba from pg_database where datname='template0'))), "
"pg_encoding_to_char(d.encoding), "
"null::text AS datcollate, null::text AS datctype, datfrozenxid, 0 AS datminmxid, "
"datistemplate, datacl, '' as rdatacl, -1 as datconnlimit, "
"datistemplate, datacl, '' as rdatacl, "
"-1 as datconnlimit, "
"(SELECT spcname FROM pg_tablespace t WHERE t.oid = d.dattablespace) AS dattablespace "
"FROM pg_database d LEFT JOIN pg_shadow u ON (datdba = usesysid) "
"WHERE datallowconn ORDER BY 1"
);
...
...
@@ -1383,7 +1388,8 @@ dumpCreateDB(PGconn *conn)
"coalesce(usename, (select usename from pg_shadow where usesysid=(select datdba from pg_database where datname='template0'))), "
"pg_encoding_to_char(d.encoding), "
"null::text AS datcollate, null::text AS datctype, datfrozenxid, 0 AS datminmxid, "
"datistemplate, datacl, '' as rdatacl, -1 as datconnlimit, "
"datistemplate, datacl, '' as rdatacl, "
"-1 as datconnlimit, "
"'pg_default' AS dattablespace "
"FROM pg_database d LEFT JOIN pg_shadow u ON (datdba = usesysid) "
"WHERE datallowconn ORDER BY 1"
);
...
...
@@ -1395,7 +1401,8 @@ dumpCreateDB(PGconn *conn)
"(select usename from pg_shadow where usesysid=(select datdba from pg_database where datname='template0'))), "
"pg_encoding_to_char(d.encoding), "
"null::text AS datcollate, null::text AS datctype, 0 AS datfrozenxid, 0 AS datminmxid, "
"datistemplate, '' as datacl, '' as rdatacl, -1 as datconnlimit, "
"datistemplate, '' as datacl, '' as rdatacl, "
"-1 as datconnlimit, "
"'pg_default' AS dattablespace "
"FROM pg_database d "
"WHERE datallowconn ORDER BY 1"
);
...
...
@@ -1522,7 +1529,8 @@ dumpCreateDB(PGconn *conn)
}
if
(
!
skip_acls
&&
!
buildACLCommands
(
fdbname
,
NULL
,
"DATABASE"
,
dbacl
,
rdbacl
,
dbowner
,
!
buildACLCommands
(
fdbname
,
NULL
,
"DATABASE"
,
dbacl
,
rdbacl
,
dbowner
,
""
,
server_version
,
buf
))
{
fprintf
(
stderr
,
_
(
"%s: could not parse ACL list (%s) for database
\"
%s
\"\n
"
),
...
...
src/bin/pg_dump/t/002_pg_dump.pl
View file @
b5bce6c1
...
...
@@ -161,8 +161,8 @@ my %pgdump_runs = (
'
postgres
',
],
},
role
=>
{
dump_cmd
=>
[
'
pg_dump
',
'
-f
'
,
"
$tempdir
/role.sql
",
'
--role=regress_dump_test_role
',
'
pg_dump
',
'
-f
',
"
$tempdir
/role.sql
"
,
'
--role=regress_dump_test_role
',
'
--schema=dump_test_second_schema
',
'
postgres
',
],
},
schema_only
=>
{
dump_cmd
=>
...
...
@@ -939,8 +939,8 @@ my %tests = (
test_schema_plus_blobs
=>
1
,
},
},
'
CREATE DATABASE dump_test
'
=>
{
create_order
=>
47
,
create_sql
=>
'
CREATE DATABASE dump_test;
',
regexp
=>
qr/^
create_sql
=>
'
CREATE DATABASE dump_test;
',
regexp
=>
qr/^
\QCREATE DATABASE dump_test WITH TEMPLATE = template0 \E
.*;/
xm
,
like
=>
{
pg_dumpall_dbprivs
=>
1
,
},
...
...
@@ -2192,12 +2192,12 @@ my %tests = (
test_schema_plus_blobs
=>
1
,
},
},
'
GRANT CREATE ON DATABASE dump_test
'
=>
{
create_order
=>
48
,
create_sql
=>
'
GRANT CREATE ON DATABASE dump_test TO regress_dump_test_role;
',
create_sql
=>
'
GRANT CREATE ON DATABASE dump_test TO regress_dump_test_role;
',
regexp
=>
qr/^
\QGRANT CREATE ON DATABASE dump_test TO regress_dump_test_role;\E
/
xm
,
like
=>
{
pg_dumpall_dbprivs
=>
1
,
},
like
=>
{
pg_dumpall_dbprivs
=>
1
,
},
unlike
=>
{
binary_upgrade
=>
1
,
clean
=>
1
,
...
...
@@ -2212,14 +2212,15 @@ my %tests = (
only_dump_test_table
=>
1
,
pg_dumpall_globals
=>
1
,
schema_only
=>
1
,
section_pre_data
=>
1
,
,
section_pre_data
=>
1
,
test_schema_plus_blobs
=>
1
,
},
},
'
GRANT SELECT ON TABLE test_table
'
=>
{
create_order
=>
5
,
create_sql
=>
'
GRANT SELECT ON TABLE dump_test.test_table
TO regress_dump_test_role;
',
regexp
=>
qr/^GRANT SELECT ON TABLE test_table TO regress_dump_test_role;/
m,
like => {
regexp
=>
qr/^GRANT SELECT ON TABLE test_table TO regress_dump_test_role;/
m,
like => {
binary_upgrade => 1,
clean
=>
1
,
clean_if_exists
=>
1
,
...
...
@@ -2242,8 +2243,9 @@ my %tests = (
create_sql
=>
'
GRANT SELECT ON
TABLE dump_test_second_schema.test_third_table
TO regress_dump_test_role;
',
regexp
=>
qr/^GRANT SELECT ON TABLE test_third_table TO regress_dump_test_role;/
m,
like => {
regexp
=>
qr/^GRANT SELECT ON TABLE test_third_table TO regress_dump_test_role;/
m,
like => {
binary_upgrade => 1,
clean
=>
1
,
clean_if_exists
=>
1
,
...
...
@@ -2480,12 +2482,11 @@ my %tests = (
'
REVOKE CONNECT ON DATABASE dump_test FROM public
'
=>
{
create_order
=>
49
,
create_sql
=>
'
REVOKE CONNECT ON DATABASE dump_test FROM public;
',
regexp
=>
qr/^
regexp
=>
qr/^
\QREVOKE CONNECT,TEMPORARY ON DATABASE dump_test FROM PUBLIC;\E\n
\QGRANT TEMPORARY ON DATABASE dump_test TO PUBLIC;\E
/
xm
,
like
=>
{
pg_dumpall_dbprivs
=>
1
,
},
like
=>
{
pg_dumpall_dbprivs
=>
1
,
},
unlike
=>
{
binary_upgrade
=>
1
,
clean
=>
1
,
...
...
src/include/commands/async.h
View file @
b5bce6c1
...
...
@@ -29,8 +29,8 @@ extern Size AsyncShmemSize(void);
extern
void
AsyncShmemInit
(
void
);
extern
void
NotifyMyFrontEnd
(
const
char
*
channel
,
const
char
*
payload
,
int32
srcPid
);
const
char
*
payload
,
int32
srcPid
);
/* notify-related SQL statements */
extern
void
Async_Notify
(
const
char
*
channel
,
const
char
*
payload
);
...
...
src/include/tsearch/ts_type.h
View file @
b5bce6c1
...
...
@@ -221,7 +221,7 @@ typedef struct
#define OP_NOT 1
#define OP_AND 2
#define OP_OR 3
#define OP_PHRASE 4
/* highest code, tsquery_cleanup.c */
#define OP_PHRASE 4
/* highest code, tsquery_cleanup.c */
#define OP_COUNT 4
extern
const
int
tsearch_op_priority
[
OP_COUNT
];
...
...
src/pl/plpython/plpy_plpymodule.c
View file @
b5bce6c1
...
...
@@ -472,7 +472,7 @@ PLy_output(volatile int level, PyObject *self, PyObject *args, PyObject *kw)
else
{
PLy_exception_set
(
PyExc_TypeError
,
"'%s' is an invalid keyword argument for this function"
,
"'%s' is an invalid keyword argument for this function"
,
keyword
);
return
NULL
;
}
...
...
@@ -528,7 +528,7 @@ PLy_output(volatile int level, PyObject *self, PyObject *args, PyObject *kw)
(
column_name
!=
NULL
)
?
err_generic_string
(
PG_DIAG_COLUMN_NAME
,
column_name
)
:
0
,
(
constraint_name
!=
NULL
)
?
err_generic_string
(
PG_DIAG_CONSTRAINT_NAME
,
constraint_name
)
:
0
,
err_generic_string
(
PG_DIAG_CONSTRAINT_NAME
,
constraint_name
)
:
0
,
(
datatype_name
!=
NULL
)
?
err_generic_string
(
PG_DIAG_DATATYPE_NAME
,
datatype_name
)
:
0
,
(
table_name
!=
NULL
)
?
...
...
src/test/modules/test_pg_dump/t/001_base.pl
View file @
b5bce6c1
...
...
@@ -223,8 +223,8 @@ my %tests = (
schema_only
=>
1
,
section_pre_data
=>
1
,
section_post_data
=>
1
,
},
},
'
CREATE SEQUENCE regress_pg_dump_table_col1_seq
'
=>
{
regexp
=>
qr/^
'
CREATE SEQUENCE regress_pg_dump_table_col1_seq
'
=>
{
regexp
=>
qr/^
\QCREATE SEQUENCE regress_pg_dump_table_col1_seq\E
\n\s+\QSTART WITH 1\E
\n\s+\QINCREMENT BY 1\E
...
...
@@ -232,20 +232,20 @@ my %tests = (
\n\s+\QNO MAXVALUE\E
\n\s+\QCACHE 1;\E
$/
xm
,
like
=>
{
binary_upgrade
=>
1
,
},
unlike
=>
{
clean
=>
1
,
clean_if_exists
=>
1
,
createdb
=>
1
,
defaults
=>
1
,
no_privs
=>
1
,
no_owner
=>
1
,
pg_dumpall_globals
=>
1
,
schema_only
=>
1
,
section_pre_data
=>
1
,
section_post_data
=>
1
,
},
},
'
CREATE SEQUENCE regress_pg_dump_seq
'
=>
{
regexp
=>
qr/^
like
=>
{
binary_upgrade
=>
1
,
},
unlike
=>
{
clean
=>
1
,
clean_if_exists
=>
1
,
createdb
=>
1
,
defaults
=>
1
,
no_privs
=>
1
,
no_owner
=>
1
,
pg_dumpall_globals
=>
1
,
schema_only
=>
1
,
section_pre_data
=>
1
,
section_post_data
=>
1
,
},
},
'
CREATE SEQUENCE regress_pg_dump_seq
'
=>
{
regexp
=>
qr/^
\QCREATE SEQUENCE regress_pg_dump_seq\E
\n\s+\QSTART WITH 1\E
\n\s+\QINCREMENT BY 1\E
...
...
@@ -253,18 +253,18 @@ my %tests = (
\n\s+\QNO MAXVALUE\E
\n\s+\QCACHE 1;\E
$/
xm
,
like
=>
{
binary_upgrade
=>
1
,
},
unlike
=>
{
clean
=>
1
,
clean_if_exists
=>
1
,
createdb
=>
1
,
defaults
=>
1
,
no_privs
=>
1
,
no_owner
=>
1
,
pg_dumpall_globals
=>
1
,
schema_only
=>
1
,
section_pre_data
=>
1
,
section_post_data
=>
1
,
},
},
like
=>
{
binary_upgrade
=>
1
,
},
unlike
=>
{
clean
=>
1
,
clean_if_exists
=>
1
,
createdb
=>
1
,
defaults
=>
1
,
no_privs
=>
1
,
no_owner
=>
1
,
pg_dumpall_globals
=>
1
,
schema_only
=>
1
,
section_pre_data
=>
1
,
section_post_data
=>
1
,
},
},
'
CREATE TABLE regress_pg_dump_table
'
=>
{
regexp
=>
qr/^
\QCREATE TABLE regress_pg_dump_table (\E
...
...
@@ -353,8 +353,8 @@ my %tests = (
no_privs
=>
1
,
pg_dumpall_globals
=>
1
,
section_post_data
=>
1
,
},
},
'
GRANT SELECT(col2) ON regress_pg_dump_table TO regress_dump_test_role
'
=>
{
create_order
=>
4
,
'
GRANT SELECT(col2) ON regress_pg_dump_table TO regress_dump_test_role
'
=>
{
create_order
=>
4
,
create_sql
=>
'
GRANT SELECT(col2) ON regress_pg_dump_table
TO regress_dump_test_role;
',
regexp
=>
qr/^
...
...
@@ -373,9 +373,10 @@ my %tests = (
no_privs
=>
1
,
pg_dumpall_globals
=>
1
,
section_post_data
=>
1
,
},
},
'
GRANT USAGE ON regress_pg_dump_table_col1_seq TO regress_dump_test_role
'
=>
{
'
GRANT USAGE ON regress_pg_dump_table_col1_seq TO regress_dump_test_role
'
=>
{
create_order
=>
5
,
create_sql
=>
'
GRANT USAGE ON SEQUENCE regress_pg_dump_table_col1_seq
create_sql
=>
'
GRANT USAGE ON SEQUENCE regress_pg_dump_table_col1_seq
TO regress_dump_test_role;
',
regexp
=>
qr/^
\QGRANT USAGE ON SEQUENCE regress_pg_dump_table_col1_seq TO regress_dump_test_role;\E
...
...
@@ -397,8 +398,7 @@ my %tests = (
regexp
=>
qr/^
\QGRANT USAGE ON SEQUENCE regress_pg_dump_seq TO regress_dump_test_role;\E
$/
xm
,
like
=>
{
binary_upgrade
=>
1
,
},
like
=>
{
binary_upgrade
=>
1
,
},
unlike
=>
{
clean
=>
1
,
clean_if_exists
=>
1
,
...
...
src/test/perl/PostgresNode.pm
View file @
b5bce6c1
...
...
@@ -475,8 +475,8 @@ sub backup
my
$name
=
$self
->
name
;
print
"
# Taking pg_basebackup
$backup_name
from node
\"
$name
\"\n
";
TestLib::
system_or_bail
('
pg_basebackup
',
'
-D
',
$backup_path
,
'
-p
',
$port
,
'
-x
');
TestLib::
system_or_bail
('
pg_basebackup
',
'
-D
',
$backup_path
,
'
-p
',
$port
,
'
-x
');
print
"
# Backup finished
\n
";
}
...
...
src/test/recovery/t/003_recovery_targets.pl
View file @
b5bce6c1
...
...
@@ -66,15 +66,15 @@ $node_master->backup('my_backup');
# target TXID.
$node_master
->
safe_psql
('
postgres
',
"
INSERT INTO tab_int VALUES (generate_series(1001,2000))
");
my
$ret
=
$node_master
->
safe_psql
('
postgres
',
"
SELECT pg_current_xlog_location(), txid_current();
");
my
$ret
=
$node_master
->
safe_psql
('
postgres
',
"
SELECT pg_current_xlog_location(), txid_current();
");
my
(
$lsn2
,
$recovery_txid
)
=
split
/\|/
,
$ret
;
# More data, with recovery target timestamp
$node_master
->
safe_psql
('
postgres
',
"
INSERT INTO tab_int VALUES (generate_series(2001,3000))
");
$ret
=
$node_master
->
safe_psql
('
postgres
',
"
SELECT pg_current_xlog_location(), now();
");
$ret
=
$node_master
->
safe_psql
('
postgres
',
"
SELECT pg_current_xlog_location(), now();
");
my
(
$lsn3
,
$recovery_time
)
=
split
/\|/
,
$ret
;
# Even more data, this time with a recovery target name
...
...
src/tools/msvc/Install.pm
View file @
b5bce6c1
...
...
@@ -386,13 +386,11 @@ sub GenerateTimezoneFiles
print
"
Generating timezone files...
";
my
@args
=
("
$conf
/zic/zic
",
'
-d
',
"
$target
/share/timezone
");
my
@args
=
("
$conf
/zic/zic
",
'
-d
',
"
$target
/share/timezone
");
foreach
(
@tzfiles
)
{
my
$tzfile
=
$_
;
push
(
@args
,
"
src/timezone/data/
$tzfile
")
push
(
@args
,
"
src/timezone/data/
$tzfile
")
;
}
system
(
@args
);
...
...
@@ -643,9 +641,9 @@ sub CopyIncludeFiles
next unless (-d
"
src
/include/
$d
"
);
EnsureDirectories(
"
$target
/include/s
erver
/
$d
"
);
my
@args
= (
'xcopy', '/s', '/i', '/q', '/r', '/y',
"
src
\\
include
\\
$d
\\*.
h
"
,
"
$ctarget
\\
include
\\
server
\\
$d
\\
"
);
my
@args
= (
'xcopy', '/s', '/i', '/q', '/r', '/y',
"
src
\\
include
\\
$d
\\*.
h
"
,
"
$ctarget
\\
include
\\
server
\\
$d
\\
"
);
system(
@args
) && croak(
"
Failed
to
copy
include
directory
$d
\
n
"
);
}
closedir(
$D
);
...
...
@@ -699,10 +697,11 @@ sub GenerateNLSFiles
EnsureDirectories(
$target
,
"
share
/locale/
$lang
"
,
"
share
/locale/
$lang
/
LC_MESSAGES
"
);
my
@args
= (
"
$nlspath
\\
bin
\\
msgfmt
"
,
'-o',
"
$target
\\
share
\\
locale
\\
$lang
\\
LC_MESSAGES
\\
$prgm
-
$majorver
.
mo
"
,
$_
);
my
@args
= (
"
$nlspath
\\
bin
\\
msgfmt
"
,
'-o',
"
$target
\\
share
\\
locale
\\
$lang
\\
LC_MESSAGES
\\
$prgm
-
$majorver
.
mo
"
,
$_
);
system(
@args
) && croak(
"
Could
not
run
msgfmt
on
$dir
\\
$_
"
);
print
"
.
"
;
}
...
...
src/tools/msvc/vcregress.pl
View file @
b5bce6c1
...
...
@@ -469,8 +469,9 @@ sub upgradecheck
print
"
\n
Setting up new cluster
\n\n
";
standard_initdb
()
or
exit
1
;
print
"
\n
Running pg_upgrade
\n\n
";
@args
=
('
pg_upgrade
',
'
-d
',
"
$data
.old
",
'
-D
',
$data
,
'
-b
',
$bindir
,
'
-B
',
$bindir
);
@args
=
(
'
pg_upgrade
',
'
-d
',
"
$data
.old
",
'
-D
',
$data
,
'
-b
',
$bindir
,
'
-B
',
$bindir
);
system
(
@args
)
==
0
or
exit
1
;
print
"
\n
Starting new cluster
\n\n
";
@args
=
('
pg_ctl
',
'
-l
',
"
$logdir
/postmaster2.log
",
'
-w
',
'
start
');
...
...
src/tools/pgindent/typedefs.list
View file @
b5bce6c1
...
...
@@ -40,6 +40,7 @@ AggClauseCosts
AggHashEntry
AggInfo
AggPath
AggSplit
AggState
AggStatePerAgg
AggStatePerGroup
...
...
@@ -123,6 +124,7 @@ ArrayMetaState
ArrayParseState
ArrayRef
ArrayRefExprState
ArrayRemapInfo
ArrayType
AsyncQueueControl
AsyncQueueEntry
...
...
@@ -612,6 +614,8 @@ FmgrBuiltin
FmgrHookEventType
FmgrInfo
ForeignDataWrapper
ForeignKeyCacheInfo
ForeignKeyOptInfo
ForeignPath
ForeignScan
ForeignScanState
...
...
@@ -917,6 +921,7 @@ ImportQual
InclusionOpaque
IncrementVarSublevelsUp_context
Index
IndexAMProperty
IndexAmRoutine
IndexArrayKeyInfo
IndexAttrBitmapKind
...
...
@@ -1239,6 +1244,7 @@ OpFamilyMember
OpFamilyOpFuncGroup
OpclassInfo
Operator
OperatorElement
OpfamilyInfo
OprCacheEntry
OprCacheKey
...
...
@@ -1456,7 +1462,6 @@ ParsedText
ParsedWord
ParserSetupHook
ParserState
PartialAggType
Path
PathClauseUsage
PathCostComparison
...
...
@@ -1651,6 +1656,7 @@ RangeBox
RangeFunction
RangeIOData
RangeQueryClause
RangeRemapInfo
RangeSubselect
RangeTableSample
RangeTblEntry
...
...
@@ -1671,7 +1677,8 @@ RecheckForeignScan_function
RecordCacheEntry
RecordCompareData
RecordIOData
RecordTypemodMap
RecordRemapInfo
RecordTypmodMap
RecoveryTargetAction
RecoveryTargetType
RectBox
...
...
@@ -1708,8 +1715,6 @@ RelfilenodeMapEntry
RelfilenodeMapKey
Relids
RelocationBufferInfo
RemapClass
RemapInfo
RenameStmt
ReopenPtr
ReorderBuffer
...
...
@@ -2123,6 +2128,8 @@ TupleHashEntryData
TupleHashIterator
TupleHashTable
TupleQueueReader
TupleRemapClass
TupleRemapInfo
TupleTableSlot
Tuplesortstate
Tuplestorestate
...
...
@@ -2323,6 +2330,7 @@ amgettuple_function
aminsert_function
ammarkpos_function
amoptions_function
amproperty_function
amrescan_function
amrestrpos_function
amvacuumcleanup_function
...
...
@@ -2353,6 +2361,7 @@ cashKEY
celt
cfp
check_agg_arguments_context
check_function_callback
check_network_data
check_object_relabel_type
check_password_hook_type
...
...
@@ -2374,7 +2383,6 @@ core_yy_extra_type
core_yyscan_t
corrupt_items
cost_qual_eval_context
count_agg_clauses_context
create_upper_paths_hook_type
createdb_failure_params
crosstab_HashEnt
...
...
@@ -2452,6 +2460,7 @@ generate_series_numeric_fctx
generate_series_timestamp_fctx
generate_series_timestamptz_fctx
generate_subscripts_fctx
get_agg_clause_costs_context
get_attavgwidth_hook_type
get_index_stats_hook_type
get_relation_info_hook_type
...
...
@@ -2580,7 +2589,6 @@ pairingheap_comparator
pairingheap_node
parallel_worker_main_type
parse_error_callback_arg
partial_agg_context
pcolor
pendingPosition
pgParameterStatus
...
...
@@ -2839,6 +2847,7 @@ vbits
walrcv_connect_type
walrcv_disconnect_type
walrcv_endstreaming_type
walrcv_get_conninfo_type
walrcv_identify_system_type
walrcv_readtimelinehistoryfile_type
walrcv_receive_type
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment