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
e9b49690
Commit
e9b49690
authored
Jul 24, 2006
by
Peter Eisentraut
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
DTrace support, with a small initial set of probes
by Robert Lor
parent
9dc34b5f
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
230 additions
and
11 deletions
+230
-11
configure
configure
+82
-1
configure.in
configure.in
+12
-1
doc/src/sgml/installation.sgml
doc/src/sgml/installation.sgml
+12
-1
src/Makefile.global.in
src/Makefile.global.in
+4
-1
src/backend/Makefile
src/backend/Makefile
+11
-3
src/backend/access/transam/xact.c
src/backend/access/transam/xact.c
+7
-1
src/backend/storage/lmgr/lock.c
src/backend/storage/lmgr/lock.c
+6
-1
src/backend/storage/lmgr/lwlock.c
src/backend/storage/lmgr/lwlock.c
+11
-1
src/backend/utils/probes.d
src/backend/utils/probes.d
+24
-0
src/include/c.h
src/include/c.h
+2
-1
src/include/pg_config.h.in
src/include/pg_config.h.in
+3
-0
src/include/pg_trace.h
src/include/pg_trace.h
+56
-0
No files found.
configure
View file @
e9b49690
...
...
@@ -314,7 +314,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
ac_subst_vars
=
'SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS configure_args build build_cpu build_vendor build_os host host_cpu host_vendor host_os PORTNAME docdir enable_nls WANTED_LANGUAGES default_port enable_shared enable_rpath enable_debug CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP GCC TAS autodepend INCLUDES enable_thread_safety with_tcl with_perl with_python with_krb5 krb_srvtab with_pam with_ldap with_bonjour with_openssl with_zlib EGREP ELF_SYS LDFLAGS_SL AWK FLEX FLEXFLAGS LN_S LD with_gnu_ld ld_R_works RANLIB ac_ct_RANLIB TAR STRIP ac_ct_STRIP STRIP_STATIC_LIB STRIP_SHARED_LIB YACC YFLAGS PERL perl_archlibexp perl_privlibexp perl_useshrplib perl_embed_ldflags PYTHON python_version python_configdir python_includespec python_libdir python_libspec python_additional_libs HAVE_IPV6 LIBOBJS acx_pthread_config PTHREAD_CC PTHREAD_LIBS PTHREAD_CFLAGS HAVE_POSIX_SIGNALS MSGFMT MSGMERGE XGETTEXT localedir TCLSH TCL_CONFIG_SH TCL_INCLUDE_SPEC TCL_LIB_FILE TCL_LIBS TCL_LIB_SPEC TCL_SHARED_BUILD TCL_SHLIB_LD_LIBS NSGMLS JADE have_docbook DOCBOOKSTYLE COLLATEINDEX SGMLSPL vpath_build LTLIBOBJS'
ac_subst_vars
=
'SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS configure_args build build_cpu build_vendor build_os host host_cpu host_vendor host_os PORTNAME docdir enable_nls WANTED_LANGUAGES default_port enable_shared enable_rpath enable_debug
DTRACE DTRACEFLAGS enable_dtrace
CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP GCC TAS autodepend INCLUDES enable_thread_safety with_tcl with_perl with_python with_krb5 krb_srvtab with_pam with_ldap with_bonjour with_openssl with_zlib EGREP ELF_SYS LDFLAGS_SL AWK FLEX FLEXFLAGS LN_S LD with_gnu_ld ld_R_works RANLIB ac_ct_RANLIB TAR STRIP ac_ct_STRIP STRIP_STATIC_LIB STRIP_SHARED_LIB YACC YFLAGS PERL perl_archlibexp perl_privlibexp perl_useshrplib perl_embed_ldflags PYTHON python_version python_configdir python_includespec python_libdir python_libspec python_additional_libs HAVE_IPV6 LIBOBJS acx_pthread_config PTHREAD_CC PTHREAD_LIBS PTHREAD_CFLAGS HAVE_POSIX_SIGNALS MSGFMT MSGMERGE XGETTEXT localedir TCLSH TCL_CONFIG_SH TCL_INCLUDE_SPEC TCL_LIB_FILE TCL_LIBS TCL_LIB_SPEC TCL_SHARED_BUILD TCL_SHLIB_LD_LIBS NSGMLS JADE have_docbook DOCBOOKSTYLE COLLATEINDEX SGMLSPL vpath_build LTLIBOBJS'
ac_subst_files
=
''
# Initialize some variables set by options.
...
...
@@ -865,6 +865,7 @@ Optional Features:
--disable-rpath do not embed shared library search path in executables
--disable-spinlocks do not use spinlocks
--enable-debug build with debugging symbols (-g)
--enable-dtrace build with DTrace support
--enable-depend turn on automatic dependency tracking
--enable-cassert enable assertion checks (for debugging)
--enable-thread-safety make client libraries thread-safe
...
...
@@ -1946,6 +1947,82 @@ fi;
#
# DTrace
#
# Check whether --enable-dtrace or --disable-dtrace was given.
if
test
"
${
enable_dtrace
+set
}
"
=
set
;
then
enableval
=
"
$enable_dtrace
"
case
$enableval
in
yes
)
cat
>>
confdefs.h
<<
\
_ACEOF
#define ENABLE_DTRACE 1
_ACEOF
for
ac_prog
in
dtrace
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set
dummy
$ac_prog
;
ac_word
=
$2
echo
"
$as_me
:
$LINENO
: checking for
$ac_word
"
>
&5
echo
$ECHO_N
"checking for
$ac_word
...
$ECHO_C
"
>
&6
if
test
"
${
ac_cv_prog_DTRACE
+set
}
"
=
set
;
then
echo
$ECHO_N
"(cached)
$ECHO_C
"
>
&6
else
if
test
-n
"
$DTRACE
"
;
then
ac_cv_prog_DTRACE
=
"
$DTRACE
"
# Let the user override the test.
else
as_save_IFS
=
$IFS
;
IFS
=
$PATH_SEPARATOR
for
as_dir
in
$PATH
do
IFS
=
$as_save_IFS
test
-z
"
$as_dir
"
&&
as_dir
=
.
for
ac_exec_ext
in
''
$ac_executable_extensions
;
do
if
$as_executable_p
"
$as_dir
/
$ac_word$ac_exec_ext
"
;
then
ac_cv_prog_DTRACE
=
"
$ac_prog
"
echo
"
$as_me
:
$LINENO
: found
$as_dir
/
$ac_word$ac_exec_ext
"
>
&5
break
2
fi
done
done
fi
fi
DTRACE
=
$ac_cv_prog_DTRACE
if
test
-n
"
$DTRACE
"
;
then
echo
"
$as_me
:
$LINENO
: result:
$DTRACE
"
>
&5
echo
"
${
ECHO_T
}
$DTRACE
"
>
&6
else
echo
"
$as_me
:
$LINENO
: result: no"
>
&5
echo
"
${
ECHO_T
}
no"
>
&6
fi
test
-n
"
$DTRACE
"
&&
break
done
;;
no
)
:
;;
*
)
{
{
echo
"
$as_me
:
$LINENO
: error: no argument expected for --enable-dtrace option"
>
&5
echo
"
$as_me
: error: no argument expected for --enable-dtrace option"
>
&2
;
}
{
(
exit
1
)
;
exit
1
;
}
;
}
;;
esac
else
enable_dtrace
=
no
fi
;
#
# C compiler
#
...
...
@@ -22759,6 +22836,7 @@ enable_shared) ;;
enable_rpath
)
;;
enable_spinlocks
)
;;
enable_debug
)
;;
enable_dtrace
)
;;
with_CC
)
;;
enable_depend
)
;;
enable_cassert
)
;;
...
...
@@ -23431,6 +23509,9 @@ s,@default_port@,$default_port,;t t
s,@enable_shared@,
$enable_shared
,;t t
s,@enable_rpath@,
$enable_rpath
,;t t
s,@enable_debug@,
$enable_debug
,;t t
s,@DTRACE@,
$DTRACE
,;t t
s,@DTRACEFLAGS@,
$DTRACEFLAGS
,;t t
s,@enable_dtrace@,
$enable_dtrace
,;t t
s,@CC@,
$CC
,;t t
s,@CFLAGS@,
$CFLAGS
,;t t
s,@LDFLAGS@,
$LDFLAGS
,;t t
...
...
configure.in
View file @
e9b49690
dnl Process this file with autoconf to produce a configure script.
dnl $PostgreSQL: pgsql/configure.in,v 1.46
8 2006/07/11 16:14:50 tgl
Exp $
dnl $PostgreSQL: pgsql/configure.in,v 1.46
9 2006/07/24 16:32:44 petere
Exp $
dnl
dnl Developers, please strive to achieve this order:
dnl
...
...
@@ -205,6 +205,17 @@ PGAC_ARG_BOOL(enable, debug, no,
[ --enable-debug build with debugging symbols (-g)])
AC_SUBST(enable_debug)
#
# DTrace
#
PGAC_ARG_BOOL(enable, dtrace, no,
[ --enable-dtrace build with DTrace support],
[AC_DEFINE([ENABLE_DTRACE], 1,
[Define to 1 to enable DTrace support. (--enable-dtrace)])
AC_CHECK_PROGS(DTRACE, dtrace)
AC_SUBST(DTRACEFLAGS)])
AC_SUBST(enable_dtrace)
#
# C compiler
#
...
...
doc/src/sgml/installation.sgml
View file @
e9b49690
<
!-- $PostgreSQL: pgsql/doc/src/sgml/installation.sgml,v 1.25
8 2006/06/18 15:38:35
petere Exp $ -->
<
!-- $PostgreSQL: pgsql/doc/src/sgml/installation.sgml,v 1.25
9 2006/07/24 16:32:44
petere Exp $ -->
<
chapter
id
=
"installation"
>
<
title
><
![%standalone-include[<productname>PostgreSQL</>]]>
...
...
@@ -1007,6 +1007,17 @@ su - postgres
</
listitem
>
</
varlistentry
>
<
varlistentry
>
<
term
><
option
>--
enable
-
dtrace
</
option
></
term
>
<
listitem
>
<
para
>
Compiles
with
support
for
the
dynamic
tracing
tool
DTrace
.
Operating
system
support
for
DTrace
is
currently
only
available
in
Solaris
.
</
para
>
</
listitem
>
</
varlistentry
>
</
variablelist
>
</
para
>
...
...
src/Makefile.global.in
View file @
e9b49690
# -*-makefile-*-
# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.22
4 2006/07/21 22:37:37
petere Exp $
# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.22
5 2006/07/24 16:32:44
petere Exp $
#------------------------------------------------------------------------------
# All PostgreSQL makefiles include this file and use the variables it sets,
...
...
@@ -157,6 +157,7 @@ enable_shared = @enable_shared@
enable_rpath
=
@enable_rpath@
enable_nls
=
@enable_nls@
enable_debug
=
@enable_debug@
enable_dtrace
=
@enable_dtrace@
enable_thread_safety
=
@enable_thread_safety@
python_includespec
=
@python_includespec@
...
...
@@ -212,6 +213,8 @@ YACC = @YACC@
YFLAGS
=
@YFLAGS@
FLEX
=
@FLEX@
FLEXFLAGS
=
@FLEXFLAGS@
$(LFLAGS)
DTRACE
=
@DTRACE@
DTRACEFLAGS
=
@DTRACEFLAGS@
# Linking
...
...
src/backend/Makefile
View file @
e9b49690
...
...
@@ -4,7 +4,7 @@
#
# Copyright (c) 1994, Regents of the University of California
#
# $PostgreSQL: pgsql/src/backend/Makefile,v 1.11
6 2006/06/22 23:50:35 tgl
Exp $
# $PostgreSQL: pgsql/src/backend/Makefile,v 1.11
7 2006/07/24 16:32:44 petere
Exp $
#
#-------------------------------------------------------------------------
...
...
@@ -19,7 +19,11 @@ DIRS := access bootstrap catalog parser commands executor lib libpq \
SUBSYSOBJS
:=
$
(
DIRS:%
=
%/SUBSYS.o
)
OBJS
:=
$(SUBSYSOBJS)
$(top_builddir)
/src/port/libpgport_srv.a
ifeq
($(enable_dtrace), yes)
LOCALOBJS
+=
utils/probes.o
endif
OBJS
=
$(SUBSYSOBJS)
$(LOCALOBJS)
$(top_builddir)
/src/port/libpgport_srv.a
# We put libpgport into OBJS, so remove it from LIBS
LIBS
:=
$(
filter-out
-lpgport
,
$(LIBS)
)
...
...
@@ -135,6 +139,10 @@ $(top_builddir)/src/include/utils/fmgroids.h: utils/fmgroids.h
$(LN_S)
../../../
$(subdir)
/utils/fmgroids.h .
utils/probes.o
:
utils/probes.d $(SUBSYSOBJS)
$(DTRACE)
$(DTRACEFLAGS)
-G
-s
$^
##########################################################################
distprep
:
...
...
@@ -220,7 +228,7 @@ endif
##########################################################################
clean
:
rm
-f
postgres
$(X)
$(POSTGRES_IMP)
\
rm
-f
$(LOCALOBJS)
postgres
$(X)
$(POSTGRES_IMP)
\
$(top_srcdir)
/src/include/parser/parse.h
\
$(top_builddir)
/src/include/utils/fmgroids.h
ifeq
($(PORTNAME), cygwin)
...
...
src/backend/access/transam/xact.c
View file @
e9b49690
...
...
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/access/transam/xact.c,v 1.22
3 2006/07/14 14:52:17 momjian
Exp $
* $PostgreSQL: pgsql/src/backend/access/transam/xact.c,v 1.22
4 2006/07/24 16:32:44 petere
Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -1384,6 +1384,8 @@ StartTransaction(void)
XactLockTableInsert
(
s
->
transactionId
);
PG_TRACE1
(
transaction__start
,
s
->
transactionId
);
/*
* set transaction_timestamp() (a/k/a now()). We want this to be the
* same as the first command's statement_timestamp(), so don't do a
...
...
@@ -1535,6 +1537,8 @@ CommitTransaction(void)
LWLockRelease
(
ProcArrayLock
);
}
PG_TRACE1
(
transaction__commit
,
s
->
transactionId
);
/*
* This is all post-commit cleanup. Note that if an error is raised here,
* it's too late to abort the transaction. This should be just
...
...
@@ -1931,6 +1935,8 @@ AbortTransaction(void)
LWLockRelease
(
ProcArrayLock
);
}
PG_TRACE1
(
transaction__abort
,
s
->
transactionId
);
/*
* Post-abort cleanup. See notes in CommitTransaction() concerning
* ordering.
...
...
src/backend/storage/lmgr/lock.c
View file @
e9b49690
...
...
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/storage/lmgr/lock.c,v 1.16
8 2006/07/23 23:08:46 tgl
Exp $
* $PostgreSQL: pgsql/src/backend/storage/lmgr/lock.c,v 1.16
9 2006/07/24 16:32:45 petere
Exp $
*
* NOTES
* A lock table is a shared memory hash table. When
...
...
@@ -796,8 +796,13 @@ LockAcquire(const LOCKTAG *locktag,
/*
* Sleep till someone wakes me up.
*/
PG_TRACE2
(
lock__startwait
,
locktag
->
locktag_field2
,
lockmode
);
WaitOnLock
(
locallock
,
owner
);
PG_TRACE2
(
lock__endwait
,
locktag
->
locktag_field2
,
lockmode
);
/*
* NOTE: do not do any material change of state between here and
* return. All required changes in locktable state must have been
...
...
src/backend/storage/lmgr/lwlock.c
View file @
e9b49690
...
...
@@ -15,7 +15,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/storage/lmgr/lwlock.c,v 1.4
1 2006/07/23 03:07:58 tgl
Exp $
* $PostgreSQL: pgsql/src/backend/storage/lmgr/lwlock.c,v 1.4
2 2006/07/24 16:32:45 petere
Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -420,6 +420,8 @@ LWLockAcquire(LWLockId lockid, LWLockMode mode)
block_counts
[
lockid
]
++
;
#endif
PG_TRACE2
(
lwlock__startwait
,
lockid
,
mode
);
for
(;;)
{
/* "false" means cannot accept cancel/die interrupt here. */
...
...
@@ -429,6 +431,8 @@ LWLockAcquire(LWLockId lockid, LWLockMode mode)
extraWaits
++
;
}
PG_TRACE2
(
lwlock__endwait
,
lockid
,
mode
);
LOG_LWDEBUG
(
"LWLockAcquire"
,
lockid
,
"awakened"
);
/* Now loop back and try to acquire lock again. */
...
...
@@ -438,6 +442,8 @@ LWLockAcquire(LWLockId lockid, LWLockMode mode)
/* We are done updating shared state of the lock itself. */
SpinLockRelease
(
&
lock
->
mutex
);
PG_TRACE2
(
lwlock__acquire
,
lockid
,
mode
);
/* Add lock to list of locks held by this backend */
held_lwlocks
[
num_held_lwlocks
++
]
=
lockid
;
...
...
@@ -507,11 +513,13 @@ LWLockConditionalAcquire(LWLockId lockid, LWLockMode mode)
/* Failed to get lock, so release interrupt holdoff */
RESUME_INTERRUPTS
();
LOG_LWDEBUG
(
"LWLockConditionalAcquire"
,
lockid
,
"failed"
);
PG_TRACE2
(
lwlock__condacquire__fail
,
lockid
,
mode
);
}
else
{
/* Add lock to list of locks held by this backend */
held_lwlocks
[
num_held_lwlocks
++
]
=
lockid
;
PG_TRACE2
(
lwlock__condacquire
,
lockid
,
mode
);
}
return
!
mustwait
;
...
...
@@ -596,6 +604,8 @@ LWLockRelease(LWLockId lockid)
/* We are done updating shared state of the lock itself. */
SpinLockRelease
(
&
lock
->
mutex
);
PG_TRACE1
(
lwlock__release
,
lockid
);
/*
* Awaken any waiters I removed from the queue.
*/
...
...
src/backend/utils/probes.d
0 → 100644
View file @
e9b49690
/* ----------
* DTrace probes for PostgreSQL backend
*
* Copyright (c) 2006, PostgreSQL Global Development Group
*
* $PostgreSQL: pgsql/src/backend/utils/probes.d,v 1.1 2006/07/24 16:32:45 petere Exp $
* ----------
*/
provider
postgresql
{
probe
transaction__start
(
int
);
probe
transaction__commit
(
int
);
probe
transaction__abort
(
int
);
probe
lwlock__acquire
(
int
,
int
);
probe
lwlock__release
(
int
);
probe
lwlock__startwait
(
int
,
int
);
probe
lwlock__endwait
(
int
,
int
);
probe
lwlock__condacquire
(
int
,
int
);
probe
lwlock__condacquire__fail
(
int
,
int
);
probe
lock__startwait
(
int
,
int
);
probe
lock__endwait
(
int
,
int
);
};
src/include/c.h
View file @
e9b49690
...
...
@@ -12,7 +12,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* $PostgreSQL: pgsql/src/include/c.h,v 1.20
6 2006/07/06 01:55:51 momjian
Exp $
* $PostgreSQL: pgsql/src/include/c.h,v 1.20
7 2006/07/24 16:32:45 petere
Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -56,6 +56,7 @@
#include "pg_config_os.h"
/* must be before any system header files */
#endif
#include "postgres_ext.h"
#include "pg_trace.h"
#if defined(_MSC_VER) || defined(__BORLANDC__)
#define WIN32_ONLY_COMPILER
...
...
src/include/pg_config.h.in
View file @
e9b49690
...
...
@@ -36,6 +36,9 @@
/* Define to the default TCP port number as a string constant. */
#undef DEF_PGPORT_STR
/* Define to 1 to enable DTrace support. (--enable-dtrace) */
#undef ENABLE_DTRACE
/* Define to 1 if you want National Language Support. (--enable-nls) */
#undef ENABLE_NLS
...
...
src/include/pg_trace.h
0 → 100644
View file @
e9b49690
/* ----------
* pg_trace.h
*
* Definitions for the PostgreSQL tracing framework
*
* Copyright (c) 2006, PostgreSQL Global Development Group
*
* $PostgreSQL: pgsql/src/include/pg_trace.h,v 1.1 2006/07/24 16:32:45 petere Exp $
* ----------
*/
#ifndef PG_TRACE_H
#define PG_TRACE_H
#ifdef ENABLE_DTRACE
#include <sys/sdt.h>
/*
* The PG_TRACE macros are mapped to the appropriate macros used by DTrace.
*
* Only one DTrace provider called "postgresql" will be used for PostgreSQL,
* so the name is hard-coded here to avoid having to specify it in the
* source code.
*/
#define PG_TRACE(name) \
DTRACE_PROBE(postgresql, name)
#define PG_TRACE1(name, arg1) \
DTRACE_PROBE1(postgresql, name, arg1)
#define PG_TRACE2(name, arg1, arg2) \
DTRACE_PROBE2(postgresql, name, arg1, arg2)
#define PG_TRACE3(name, arg1, arg2, arg3) \
DTRACE_PROBE3(postgresql, name, arg1, arg2, arg3)
#define PG_TRACE4(name, arg1, arg2, arg3, arg4) \
DTRACE_PROBE4(postgresql, name, arg1, arg2, arg3, arg4)
#define PG_TRACE5(name, arg1, arg2, arg3, arg4, arg5) \
DTRACE_PROBE5(postgresql, name, arg1, arg2, arg3, arg4, arg5)
#else
/* not ENABLE_DTRACE */
/*
* Unless DTrace is explicitly enabled with --enable-dtrace, the PG_TRACE
* macros will expand to no-ops.
*/
#define PG_TRACE(name)
#define PG_TRACE1(name, arg1)
#define PG_TRACE2(name, arg1, arg2)
#define PG_TRACE3(name, arg1, arg2, arg3)
#define PG_TRACE4(name, arg1, arg2, arg3, arg4)
#define PG_TRACE5(name, arg1, arg2, arg3, arg4, arg5)
#endif
/* not ENABLE_DTRACE */
#endif
/* PG_TRACE_H */
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