mirror of
https://github.com/postgres/postgres.git
synced 2025-10-19 15:49:24 +03:00
pgindent run for 9.4
This includes removing tabs after periods in C comments, which was applied to back branches, so this change should not effect backpatching.
This commit is contained in:
@@ -496,7 +496,7 @@ static int max_identifier_length;
|
||||
static int block_size;
|
||||
static int segment_size;
|
||||
static int wal_block_size;
|
||||
static bool data_checksums;
|
||||
static bool data_checksums;
|
||||
static int wal_segment_size;
|
||||
static bool integer_datetimes;
|
||||
static int effective_io_concurrency;
|
||||
@@ -2148,7 +2148,7 @@ static struct config_int ConfigureNamesInt[] =
|
||||
NULL
|
||||
},
|
||||
&max_replication_slots,
|
||||
0, 0, MAX_BACKENDS /* XXX?*/,
|
||||
0, 0, MAX_BACKENDS /* XXX? */ ,
|
||||
NULL, NULL, NULL
|
||||
},
|
||||
|
||||
@@ -2543,7 +2543,11 @@ static struct config_int ConfigureNamesInt[] =
|
||||
{"track_activity_query_size", PGC_POSTMASTER, RESOURCES_MEM,
|
||||
gettext_noop("Sets the size reserved for pg_stat_activity.query, in bytes."),
|
||||
NULL,
|
||||
/* There is no _bytes_ unit, so the user can't supply units for this. */
|
||||
|
||||
/*
|
||||
* There is no _bytes_ unit, so the user can't supply units for
|
||||
* this.
|
||||
*/
|
||||
},
|
||||
&pgstat_track_activity_query_size,
|
||||
1024, 100, 102400,
|
||||
@@ -3778,7 +3782,7 @@ get_guc_variables(void)
|
||||
|
||||
|
||||
/*
|
||||
* Build the sorted array. This is split out so that it could be
|
||||
* Build the sorted array. This is split out so that it could be
|
||||
* re-executed after startup (eg, we could allow loadable modules to
|
||||
* add vars, and then we'd need to re-sort).
|
||||
*/
|
||||
@@ -3935,7 +3939,7 @@ add_placeholder_variable(const char *name, int elevel)
|
||||
|
||||
/*
|
||||
* The char* is allocated at the end of the struct since we have no
|
||||
* 'static' place to point to. Note that the current value, as well as
|
||||
* 'static' place to point to. Note that the current value, as well as
|
||||
* the boot and reset values, start out NULL.
|
||||
*/
|
||||
var->variable = (char **) (var + 1);
|
||||
@@ -3977,7 +3981,7 @@ find_option(const char *name, bool create_placeholders, int elevel)
|
||||
return *res;
|
||||
|
||||
/*
|
||||
* See if the name is an obsolete name for a variable. We assume that the
|
||||
* See if the name is an obsolete name for a variable. We assume that the
|
||||
* set of supported old names is short enough that a brute-force search is
|
||||
* the best way.
|
||||
*/
|
||||
@@ -4636,7 +4640,7 @@ NewGUCNestLevel(void)
|
||||
/*
|
||||
* Do GUC processing at transaction or subtransaction commit or abort, or
|
||||
* when exiting a function that has proconfig settings, or when undoing a
|
||||
* transient assignment to some GUC variables. (The name is thus a bit of
|
||||
* transient assignment to some GUC variables. (The name is thus a bit of
|
||||
* a misnomer; perhaps it should be ExitGUCNestLevel or some such.)
|
||||
* During abort, we discard all GUC settings that were applied at nesting
|
||||
* levels >= nestLevel. nestLevel == 1 corresponds to the main transaction.
|
||||
@@ -5357,7 +5361,7 @@ validate_conf_option(struct config_generic * record, const char *name,
|
||||
{
|
||||
ereport(elevel,
|
||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||
errmsg("parameter \"%s\" requires a Boolean value",
|
||||
errmsg("parameter \"%s\" requires a Boolean value",
|
||||
name)));
|
||||
return 0;
|
||||
}
|
||||
@@ -5387,8 +5391,8 @@ validate_conf_option(struct config_generic * record, const char *name,
|
||||
{
|
||||
ereport(elevel,
|
||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||
errmsg("invalid value for parameter \"%s\": \"%s\"",
|
||||
name, value),
|
||||
errmsg("invalid value for parameter \"%s\": \"%s\"",
|
||||
name, value),
|
||||
hintmsg ? errhint("%s", _(hintmsg)) : 0));
|
||||
return 0;
|
||||
}
|
||||
@@ -5398,7 +5402,7 @@ validate_conf_option(struct config_generic * record, const char *name,
|
||||
ereport(elevel,
|
||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||
errmsg("%d is outside the valid range for parameter \"%s\" (%d .. %d)",
|
||||
*((int *) newval), name, conf->min, conf->max)));
|
||||
*((int *) newval), name, conf->min, conf->max)));
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -5425,7 +5429,7 @@ validate_conf_option(struct config_generic * record, const char *name,
|
||||
{
|
||||
ereport(elevel,
|
||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||
errmsg("parameter \"%s\" requires a numeric value",
|
||||
errmsg("parameter \"%s\" requires a numeric value",
|
||||
name)));
|
||||
return 0;
|
||||
}
|
||||
@@ -5435,7 +5439,7 @@ validate_conf_option(struct config_generic * record, const char *name,
|
||||
ereport(elevel,
|
||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||
errmsg("%g is outside the valid range for parameter \"%s\" (%g .. %g)",
|
||||
*((double *) newval), name, conf->min, conf->max)));
|
||||
*((double *) newval), name, conf->min, conf->max)));
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -5512,9 +5516,9 @@ validate_conf_option(struct config_generic * record, const char *name,
|
||||
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||
errmsg("invalid value for parameter \"%s\": \"%s\"",
|
||||
name, value),
|
||||
hintmsg ? errhint("%s", _(hintmsg)) : 0));
|
||||
errmsg("invalid value for parameter \"%s\": \"%s\"",
|
||||
name, value),
|
||||
hintmsg ? errhint("%s", _(hintmsg)) : 0));
|
||||
|
||||
if (hintmsg != NULL)
|
||||
pfree(hintmsg);
|
||||
@@ -5667,7 +5671,7 @@ set_config_option(const char *name, const char *value,
|
||||
* If a PGC_BACKEND parameter is changed in the config file,
|
||||
* we want to accept the new value in the postmaster (whence
|
||||
* it will propagate to subsequently-started backends), but
|
||||
* ignore it in existing backends. This is a tad klugy, but
|
||||
* ignore it in existing backends. This is a tad klugy, but
|
||||
* necessary because we don't re-read the config file during
|
||||
* backend start.
|
||||
*
|
||||
@@ -5724,7 +5728,7 @@ set_config_option(const char *name, const char *value,
|
||||
* An exception might be made if the reset value is assumed to be "safe".
|
||||
*
|
||||
* Note: this flag is currently used for "session_authorization" and
|
||||
* "role". We need to prohibit changing these inside a local userid
|
||||
* "role". We need to prohibit changing these inside a local userid
|
||||
* context because when we exit it, GUC won't be notified, leaving things
|
||||
* out of sync. (This could be fixed by forcing a new GUC nesting level,
|
||||
* but that would change behavior in possibly-undesirable ways.) Also, we
|
||||
@@ -6515,7 +6519,7 @@ flatten_set_variable_args(const char *name, List *args)
|
||||
else
|
||||
{
|
||||
/*
|
||||
* Plain string literal or identifier. For quote mode,
|
||||
* Plain string literal or identifier. For quote mode,
|
||||
* quote it if it's not a vanilla identifier.
|
||||
*/
|
||||
if (flags & GUC_LIST_QUOTE)
|
||||
@@ -6681,7 +6685,7 @@ replace_auto_config_value(ConfigVariable **head_p, ConfigVariable **tail_p,
|
||||
* configuration file (PG_AUTOCONF_FILENAME) intact.
|
||||
*/
|
||||
void
|
||||
AlterSystemSetConfigFile(AlterSystemStmt * altersysstmt)
|
||||
AlterSystemSetConfigFile(AlterSystemStmt *altersysstmt)
|
||||
{
|
||||
char *name;
|
||||
char *value;
|
||||
@@ -6698,7 +6702,7 @@ AlterSystemSetConfigFile(AlterSystemStmt * altersysstmt)
|
||||
if (!superuser())
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
|
||||
(errmsg("must be superuser to execute ALTER SYSTEM command"))));
|
||||
(errmsg("must be superuser to execute ALTER SYSTEM command"))));
|
||||
|
||||
/*
|
||||
* Validate the name and arguments [value1, value2 ... ].
|
||||
@@ -6724,7 +6728,7 @@ AlterSystemSetConfigFile(AlterSystemStmt * altersysstmt)
|
||||
if (record == NULL)
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_UNDEFINED_OBJECT),
|
||||
errmsg("unrecognized configuration parameter \"%s\"", name)));
|
||||
errmsg("unrecognized configuration parameter \"%s\"", name)));
|
||||
|
||||
if ((record->context == PGC_INTERNAL) ||
|
||||
(record->flags & GUC_DISALLOW_IN_FILE))
|
||||
@@ -6737,7 +6741,7 @@ AlterSystemSetConfigFile(AlterSystemStmt * altersysstmt)
|
||||
ERROR, true, NULL,
|
||||
&newextra))
|
||||
ereport(ERROR,
|
||||
(errmsg("invalid value for parameter \"%s\": \"%s\"", name, value)));
|
||||
(errmsg("invalid value for parameter \"%s\": \"%s\"", name, value)));
|
||||
|
||||
|
||||
/*
|
||||
@@ -6754,8 +6758,8 @@ AlterSystemSetConfigFile(AlterSystemStmt * altersysstmt)
|
||||
* One backend is allowed to operate on file PG_AUTOCONF_FILENAME, to
|
||||
* ensure that we need to update the contents of the file with
|
||||
* AutoFileLock. To ensure crash safety, first the contents are written to
|
||||
* a temporary file which is then renameed to PG_AUTOCONF_FILENAME. In case
|
||||
* there exists a temp file from previous crash, that can be reused.
|
||||
* a temporary file which is then renameed to PG_AUTOCONF_FILENAME. In
|
||||
* case there exists a temp file from previous crash, that can be reused.
|
||||
*/
|
||||
|
||||
LWLockAcquire(AutoFileLock, LW_EXCLUSIVE);
|
||||
@@ -6846,6 +6850,7 @@ ExecSetVariableStmt(VariableSetStmt *stmt, bool isTopLevel)
|
||||
0);
|
||||
break;
|
||||
case VAR_SET_MULTI:
|
||||
|
||||
/*
|
||||
* Special-case SQL syntaxes. The TRANSACTION and SESSION
|
||||
* CHARACTERISTICS cases effectively set more than one variable
|
||||
@@ -7131,7 +7136,7 @@ define_custom_variable(struct config_generic * variable)
|
||||
* variable. Essentially, we need to duplicate all the active and stacked
|
||||
* values, but with appropriate validation and datatype adjustment.
|
||||
*
|
||||
* If an assignment fails, we report a WARNING and keep going. We don't
|
||||
* If an assignment fails, we report a WARNING and keep going. We don't
|
||||
* want to throw ERROR for bad values, because it'd bollix the add-on
|
||||
* module that's presumably halfway through getting loaded. In such cases
|
||||
* the default or previous state will become active instead.
|
||||
@@ -7159,7 +7164,7 @@ define_custom_variable(struct config_generic * variable)
|
||||
/*
|
||||
* Free up as much as we conveniently can of the placeholder structure.
|
||||
* (This neglects any stack items, so it's possible for some memory to be
|
||||
* leaked. Since this can only happen once per session per variable, it
|
||||
* leaked. Since this can only happen once per session per variable, it
|
||||
* doesn't seem worth spending much code on.)
|
||||
*/
|
||||
set_string_field(pHolder, pHolder->variable, NULL);
|
||||
@@ -7232,7 +7237,7 @@ reapply_stacked_values(struct config_generic * variable,
|
||||
else
|
||||
{
|
||||
/*
|
||||
* We are at the end of the stack. If the active/previous value is
|
||||
* We are at the end of the stack. If the active/previous value is
|
||||
* different from the reset value, it must represent a previously
|
||||
* committed session value. Apply it, and then drop the stack entry
|
||||
* that set_config_option will have created under the impression that
|
||||
@@ -8424,7 +8429,7 @@ ParseLongOption(const char *string, char **name, char **value)
|
||||
|
||||
/*
|
||||
* Handle options fetched from pg_db_role_setting.setconfig,
|
||||
* pg_proc.proconfig, etc. Caller must specify proper context/source/action.
|
||||
* pg_proc.proconfig, etc. Caller must specify proper context/source/action.
|
||||
*
|
||||
* The array parameter must be an array of TEXT (it must not be NULL).
|
||||
*/
|
||||
@@ -8705,7 +8710,7 @@ GUCArrayReset(ArrayType *array)
|
||||
* Validate a proposed option setting for GUCArrayAdd/Delete/Reset.
|
||||
*
|
||||
* name is the option name. value is the proposed value for the Add case,
|
||||
* or NULL for the Delete/Reset cases. If skipIfNoPermissions is true, it's
|
||||
* or NULL for the Delete/Reset cases. If skipIfNoPermissions is true, it's
|
||||
* not an error to have no permissions to set the option.
|
||||
*
|
||||
* Returns TRUE if OK, FALSE if skipIfNoPermissions is true and user does not
|
||||
@@ -8786,7 +8791,7 @@ validate_option_array_item(const char *name, const char *value,
|
||||
* ERRCODE_INVALID_PARAMETER_VALUE SQLSTATE for check hook failures.
|
||||
*
|
||||
* Note that GUC_check_errmsg() etc are just macros that result in a direct
|
||||
* assignment to the associated variables. That is ugly, but forced by the
|
||||
* assignment to the associated variables. That is ugly, but forced by the
|
||||
* limitations of C's macro mechanisms.
|
||||
*/
|
||||
void
|
||||
|
@@ -109,7 +109,7 @@ static char **save_argv;
|
||||
* from being clobbered by subsequent ps_display actions.
|
||||
*
|
||||
* (The original argv[] will not be overwritten by this routine, but may be
|
||||
* overwritten during init_ps_display. Also, the physical location of the
|
||||
* overwritten during init_ps_display. Also, the physical location of the
|
||||
* environment strings may be moved, so this should be called before any code
|
||||
* that might try to hang onto a getenv() result.)
|
||||
*/
|
||||
@@ -210,7 +210,7 @@ save_ps_display_args(int argc, char **argv)
|
||||
|
||||
/*
|
||||
* Call this once during subprocess startup to set the identification
|
||||
* values. At this point, the original argv[] array may be overwritten.
|
||||
* values. At this point, the original argv[] array may be overwritten.
|
||||
*/
|
||||
void
|
||||
init_ps_display(const char *username, const char *dbname,
|
||||
@@ -360,7 +360,7 @@ set_ps_display(const char *activity, bool force)
|
||||
|
||||
/*
|
||||
* Returns what's currently in the ps display, in case someone needs
|
||||
* it. Note that only the activity part is returned. On some platforms
|
||||
* it. Note that only the activity part is returned. On some platforms
|
||||
* the string will not be null-terminated, so return the effective
|
||||
* length into *displen.
|
||||
*/
|
||||
|
@@ -13,7 +13,7 @@
|
||||
*
|
||||
* Red-black trees are a type of balanced binary tree wherein (1) any child of
|
||||
* a red node is always black, and (2) every path from root to leaf traverses
|
||||
* an equal number of black nodes. From these properties, it follows that the
|
||||
* an equal number of black nodes. From these properties, it follows that the
|
||||
* longest path from root to leaf is only about twice as long as the shortest,
|
||||
* so lookups are guaranteed to run in O(lg n) time.
|
||||
*
|
||||
@@ -102,7 +102,7 @@ static RBNode sentinel = {InitialState, RBBLACK, RBNIL, RBNIL, NULL};
|
||||
* valid data! freefunc can be NULL if caller doesn't require retail
|
||||
* space reclamation.
|
||||
*
|
||||
* The RBTree node is palloc'd in the caller's memory context. Note that
|
||||
* The RBTree node is palloc'd in the caller's memory context. Note that
|
||||
* all contents of the tree are actually allocated by the caller, not here.
|
||||
*
|
||||
* Since tree contents are managed by the caller, there is currently not
|
||||
@@ -282,10 +282,10 @@ rb_rotate_right(RBTree *rb, RBNode *x)
|
||||
/*
|
||||
* Maintain Red-Black tree balance after inserting node x.
|
||||
*
|
||||
* The newly inserted node is always initially marked red. That may lead to
|
||||
* The newly inserted node is always initially marked red. That may lead to
|
||||
* a situation where a red node has a red child, which is prohibited. We can
|
||||
* always fix the problem by a series of color changes and/or "rotations",
|
||||
* which move the problem progressively higher up in the tree. If one of the
|
||||
* which move the problem progressively higher up in the tree. If one of the
|
||||
* two red nodes is the root, we can always fix the problem by changing the
|
||||
* root from red to black.
|
||||
*
|
||||
@@ -296,7 +296,7 @@ static void
|
||||
rb_insert_fixup(RBTree *rb, RBNode *x)
|
||||
{
|
||||
/*
|
||||
* x is always a red node. Initially, it is the newly inserted node. Each
|
||||
* x is always a red node. Initially, it is the newly inserted node. Each
|
||||
* iteration of this loop moves it higher up in the tree.
|
||||
*/
|
||||
while (x != rb->root && x->parent->color == RBRED)
|
||||
@@ -481,7 +481,7 @@ rb_delete_fixup(RBTree *rb, RBNode *x)
|
||||
while (x != rb->root && x->color == RBBLACK)
|
||||
{
|
||||
/*
|
||||
* Left and right cases are symmetric. Any nodes that are children of
|
||||
* Left and right cases are symmetric. Any nodes that are children of
|
||||
* x have a black-height one less than the remainder of the nodes in
|
||||
* the tree. We rotate and recolor nodes to move the problem up the
|
||||
* tree: at some stage we'll either fix the problem, or reach the root
|
||||
|
@@ -57,7 +57,7 @@ static timeout_params *volatile active_timeouts[MAX_TIMEOUTS];
|
||||
* Note that we don't bother to reset any pending timer interrupt when we
|
||||
* disable the signal handler; it's not really worth the cycles to do so,
|
||||
* since the probability of the interrupt actually occurring while we have
|
||||
* it disabled is low. See comments in schedule_alarm() about that.
|
||||
* it disabled is low. See comments in schedule_alarm() about that.
|
||||
*/
|
||||
static volatile sig_atomic_t alarm_enabled = false;
|
||||
|
||||
@@ -69,7 +69,7 @@ static volatile sig_atomic_t alarm_enabled = false;
|
||||
* Internal helper functions
|
||||
*
|
||||
* For all of these, it is caller's responsibility to protect them from
|
||||
* interruption by the signal handler. Generally, call disable_alarm()
|
||||
* interruption by the signal handler. Generally, call disable_alarm()
|
||||
* first to prevent interruption, then update state, and last call
|
||||
* schedule_alarm(), which will re-enable the signal handler if needed.
|
||||
*****************************************************************************/
|
||||
@@ -144,7 +144,7 @@ enable_timeout(TimeoutId id, TimestampTz now, TimestampTz fin_time)
|
||||
Assert(all_timeouts[id].timeout_handler != NULL);
|
||||
|
||||
/*
|
||||
* If this timeout was already active, momentarily disable it. We
|
||||
* If this timeout was already active, momentarily disable it. We
|
||||
* interpret the call as a directive to reschedule the timeout.
|
||||
*/
|
||||
i = find_active_timeout(id);
|
||||
@@ -152,7 +152,7 @@ enable_timeout(TimeoutId id, TimestampTz now, TimestampTz fin_time)
|
||||
remove_timeout_index(i);
|
||||
|
||||
/*
|
||||
* Find out the index where to insert the new timeout. We sort by
|
||||
* Find out the index where to insert the new timeout. We sort by
|
||||
* fin_time, and for equal fin_time by priority.
|
||||
*/
|
||||
for (i = 0; i < num_active_timeouts; i++)
|
||||
@@ -214,18 +214,18 @@ schedule_alarm(TimestampTz now)
|
||||
*
|
||||
* Because we didn't bother to reset the timer in disable_alarm(),
|
||||
* it's possible that a previously-set interrupt will fire between
|
||||
* enable_alarm() and setitimer(). This is safe, however. There are
|
||||
* enable_alarm() and setitimer(). This is safe, however. There are
|
||||
* two possible outcomes:
|
||||
*
|
||||
* 1. The signal handler finds nothing to do (because the nearest
|
||||
* timeout event is still in the future). It will re-set the timer
|
||||
* and return. Then we'll overwrite the timer value with a new one.
|
||||
* and return. Then we'll overwrite the timer value with a new one.
|
||||
* This will mean that the timer fires a little later than we
|
||||
* intended, but only by the amount of time it takes for the signal
|
||||
* handler to do nothing useful, which shouldn't be much.
|
||||
*
|
||||
* 2. The signal handler executes and removes one or more timeout
|
||||
* events. When it returns, either the queue is now empty or the
|
||||
* events. When it returns, either the queue is now empty or the
|
||||
* frontmost event is later than the one we looked at above. So we'll
|
||||
* overwrite the timer value with one that is too soon (plus or minus
|
||||
* the signal handler's execution time), causing a useless interrupt
|
||||
@@ -266,14 +266,14 @@ handle_sig_alarm(SIGNAL_ARGS)
|
||||
* mainline is waiting for a lock). If SIGINT or similar arrives while
|
||||
* this code is running, we'd lose control and perhaps leave our data
|
||||
* structures in an inconsistent state. Disable immediate interrupts, and
|
||||
* just to be real sure, bump the holdoff counter as well. (The reason
|
||||
* just to be real sure, bump the holdoff counter as well. (The reason
|
||||
* for this belt-and-suspenders-too approach is to make sure that nothing
|
||||
* bad happens if a timeout handler calls code that manipulates
|
||||
* ImmediateInterruptOK.)
|
||||
*
|
||||
* Note: it's possible for a SIGINT to interrupt handle_sig_alarm before
|
||||
* we manage to do this; the net effect would be as if the SIGALRM event
|
||||
* had been silently lost. Therefore error recovery must include some
|
||||
* had been silently lost. Therefore error recovery must include some
|
||||
* action that will allow any lost interrupt to be rescheduled. Disabling
|
||||
* some or all timeouts is sufficient, or if that's not appropriate,
|
||||
* reschedule_timeouts() can be called. Also, the signal blocking hazard
|
||||
@@ -434,7 +434,7 @@ RegisterTimeout(TimeoutId id, timeout_handler_proc handler)
|
||||
*
|
||||
* This can be used during error recovery in case query cancel resulted in loss
|
||||
* of a SIGALRM event (due to longjmp'ing out of handle_sig_alarm before it
|
||||
* could do anything). But note it's not necessary if any of the public
|
||||
* could do anything). But note it's not necessary if any of the public
|
||||
* enable_ or disable_timeout functions are called in the same area, since
|
||||
* those all do schedule_alarm() internally if needed.
|
||||
*/
|
||||
@@ -503,7 +503,7 @@ enable_timeout_at(TimeoutId id, TimestampTz fin_time)
|
||||
* Enable multiple timeouts at once.
|
||||
*
|
||||
* This works like calling enable_timeout_after() and/or enable_timeout_at()
|
||||
* multiple times. Use this to reduce the number of GetCurrentTimestamp()
|
||||
* multiple times. Use this to reduce the number of GetCurrentTimestamp()
|
||||
* and setitimer() calls needed to establish multiple timeouts.
|
||||
*/
|
||||
void
|
||||
|
@@ -4,7 +4,7 @@
|
||||
* Functions for parsing timezone offset files
|
||||
*
|
||||
* Note: this code is invoked from the check_hook for the GUC variable
|
||||
* timezone_abbreviations. Therefore, it should report problems using
|
||||
* timezone_abbreviations. Therefore, it should report problems using
|
||||
* GUC_check_errmsg() and related functions, and try to avoid throwing
|
||||
* elog(ERROR). This is not completely bulletproof at present --- in
|
||||
* particular out-of-memory will throw an error. Could probably fix with
|
||||
@@ -179,7 +179,7 @@ addToArray(tzEntry **base, int *arraysize, int n,
|
||||
|
||||
/*
|
||||
* Search the array for a duplicate; as a useful side effect, the array is
|
||||
* maintained in sorted order. We use strcmp() to ensure we match the
|
||||
* maintained in sorted order. We use strcmp() to ensure we match the
|
||||
* sort order datetime.c expects.
|
||||
*/
|
||||
arrayptr = *base;
|
||||
|
Reference in New Issue
Block a user