diff options
author | Peter Eisentraut <peter_e@gmx.net> | 2015-11-16 21:16:42 -0500 |
---|---|---|
committer | Peter Eisentraut <peter_e@gmx.net> | 2015-11-16 21:39:23 -0500 |
commit | 5db837d3f22960c2fdc11b390ecf3984b3e0c49e (patch) | |
tree | fde75b3dbb7825e696d66c708e490850ed1b4446 /src/backend | |
parent | 53264c7b1e0c9be7bc05289372265c768869f818 (diff) | |
download | postgresql-5db837d3f22960c2fdc11b390ecf3984b3e0c49e.tar.gz postgresql-5db837d3f22960c2fdc11b390ecf3984b3e0c49e.zip |
Message improvements
Diffstat (limited to 'src/backend')
-rw-r--r-- | src/backend/access/transam/parallel.c | 6 | ||||
-rw-r--r-- | src/backend/access/transam/xlog.c | 27 | ||||
-rw-r--r-- | src/backend/catalog/objectaddress.c | 4 | ||||
-rw-r--r-- | src/backend/commands/copy.c | 2 | ||||
-rw-r--r-- | src/backend/commands/extension.c | 2 | ||||
-rw-r--r-- | src/backend/commands/tablecmds.c | 20 | ||||
-rw-r--r-- | src/backend/commands/tablespace.c | 4 | ||||
-rw-r--r-- | src/backend/libpq/auth.c | 3 | ||||
-rw-r--r-- | src/backend/libpq/pqcomm.c | 2 | ||||
-rw-r--r-- | src/backend/parser/parse_agg.c | 2 | ||||
-rw-r--r-- | src/backend/parser/parse_clause.c | 2 | ||||
-rw-r--r-- | src/backend/parser/parse_relation.c | 4 | ||||
-rw-r--r-- | src/backend/postmaster/postmaster.c | 6 | ||||
-rw-r--r-- | src/backend/storage/lmgr/lwlock.c | 8 | ||||
-rw-r--r-- | src/backend/utils/adt/array_userfuncs.c | 2 | ||||
-rw-r--r-- | src/backend/utils/adt/encode.c | 4 | ||||
-rw-r--r-- | src/backend/utils/adt/jsonb.c | 6 | ||||
-rw-r--r-- | src/backend/utils/misc/guc.c | 6 | ||||
-rw-r--r-- | src/backend/utils/misc/rls.c | 2 |
19 files changed, 55 insertions, 57 deletions
diff --git a/src/backend/access/transam/parallel.c b/src/backend/access/transam/parallel.c index 5edaaf4bd2a..7c8efba54fc 100644 --- a/src/backend/access/transam/parallel.c +++ b/src/backend/access/transam/parallel.c @@ -907,12 +907,12 @@ ParallelWorkerMain(Datum main_arg) if (seg == NULL) ereport(ERROR, (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), - errmsg("unable to map dynamic shared memory segment"))); + errmsg("could not map dynamic shared memory segment"))); toc = shm_toc_attach(PARALLEL_MAGIC, dsm_segment_address(seg)); if (toc == NULL) ereport(ERROR, (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), - errmsg("bad magic number in dynamic shared memory segment"))); + errmsg("invalid magic number in dynamic shared memory segment"))); /* Look up fixed parallel state. */ fps = shm_toc_lookup(toc, PARALLEL_KEY_FIXED); @@ -1063,7 +1063,7 @@ ParallelExtensionTrampoline(dsm_segment *seg, shm_toc *toc) static void ParallelErrorContext(void *arg) { - errcontext("parallel worker, pid %d", *(int32 *) arg); + errcontext("parallel worker, PID %d", *(int32 *) arg); } /* diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 08d16823ed1..f17f83417d1 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -4976,9 +4976,10 @@ readRecoveryCommandFile(void) else ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("invalid value for recovery parameter \"%s\"", - "recovery_target_action"), - errhint("The allowed values are \"pause\", \"promote\", and \"shutdown\"."))); + errmsg("invalid value for recovery parameter \"%s\": \"%s\"", + "recovery_target_action", + item->value), + errhint("Valid values are \"pause\", \"promote\", and \"shutdown\"."))); ereport(DEBUG2, (errmsg_internal("recovery_target_action = '%s'", @@ -5058,7 +5059,9 @@ readRecoveryCommandFile(void) else ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("invalid value for recovery parameter \"recovery_target\""), + errmsg("invalid value for recovery parameter \"%s\": \"%s\"", + "recovery_target", + item->value), errhint("The only allowed value is \"immediate\"."))); ereport(DEBUG2, (errmsg_internal("recovery_target = '%s'", @@ -6142,7 +6145,7 @@ StartupXLOG(void) unlink(TABLESPACE_MAP_OLD); if (rename(TABLESPACE_MAP, TABLESPACE_MAP_OLD) == 0) ereport(LOG, - (errmsg("ignoring \"%s\" file because no \"%s\" file exists", + (errmsg("ignoring file \"%s\" because no file \"%s\" exists", TABLESPACE_MAP, BACKUP_LABEL_FILE), errdetail("File \"%s\" was renamed to \"%s\".", TABLESPACE_MAP, TABLESPACE_MAP_OLD))); @@ -6150,7 +6153,7 @@ StartupXLOG(void) ereport(LOG, (errmsg("ignoring \"%s\" file because no \"%s\" file exists", TABLESPACE_MAP, BACKUP_LABEL_FILE), - errdetail("File \"%s\" could not be renamed to \"%s\": %m.", + errdetail("Could not rename file \"%s\" to \"%s\": %m.", TABLESPACE_MAP, TABLESPACE_MAP_OLD))); } @@ -6281,24 +6284,24 @@ StartupXLOG(void) LastRec = RecPtr = checkPointLoc; ereport(DEBUG1, - (errmsg("redo record is at %X/%X; shutdown %s", + (errmsg_internal("redo record is at %X/%X; shutdown %s", (uint32) (checkPoint.redo >> 32), (uint32) checkPoint.redo, wasShutdown ? "TRUE" : "FALSE"))); ereport(DEBUG1, - (errmsg("next transaction ID: %u/%u; next OID: %u", + (errmsg_internal("next transaction ID: %u/%u; next OID: %u", checkPoint.nextXidEpoch, checkPoint.nextXid, checkPoint.nextOid))); ereport(DEBUG1, - (errmsg("next MultiXactId: %u; next MultiXactOffset: %u", + (errmsg_internal("next MultiXactId: %u; next MultiXactOffset: %u", checkPoint.nextMulti, checkPoint.nextMultiOffset))); ereport(DEBUG1, - (errmsg("oldest unfrozen transaction ID: %u, in database %u", + (errmsg_internal("oldest unfrozen transaction ID: %u, in database %u", checkPoint.oldestXid, checkPoint.oldestXidDB))); ereport(DEBUG1, - (errmsg("oldest MultiXactId: %u, in database %u", + (errmsg_internal("oldest MultiXactId: %u, in database %u", checkPoint.oldestMulti, checkPoint.oldestMultiDB))); ereport(DEBUG1, - (errmsg("commit timestamp Xid oldest/newest: %u/%u", + (errmsg_internal("commit timestamp Xid oldest/newest: %u/%u", checkPoint.oldestCommitTs, checkPoint.newestCommitTs))); if (!TransactionIdIsNormal(checkPoint.nextXid)) diff --git a/src/backend/catalog/objectaddress.c b/src/backend/catalog/objectaddress.c index fc56f1ec3cf..b90faa6e72c 100644 --- a/src/backend/catalog/objectaddress.c +++ b/src/backend/catalog/objectaddress.c @@ -1652,7 +1652,7 @@ get_object_address_usermapping(List *objname, List *objargs, bool missing_ok) if (!missing_ok) ereport(ERROR, (errcode(ERRCODE_UNDEFINED_OBJECT), - errmsg("user mapping for user \"%s\" in server \"%s\" does not exist", + errmsg("user mapping for user \"%s\" on server \"%s\" does not exist", username, servername))); return address; } @@ -1678,7 +1678,7 @@ get_object_address_usermapping(List *objname, List *objargs, bool missing_ok) if (!missing_ok) ereport(ERROR, (errcode(ERRCODE_UNDEFINED_OBJECT), - errmsg("user mapping for user \"%s\" in server \"%s\" does not exist", + errmsg("user mapping for user \"%s\" on server \"%s\" does not exist", username, servername))); return address; } diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c index 443b9e7376f..66e9f8b4ea6 100644 --- a/src/backend/commands/copy.c +++ b/src/backend/commands/copy.c @@ -874,7 +874,7 @@ DoCopy(const CopyStmt *stmt, const char *queryString, uint64 *processed) if (is_from) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("COPY FROM not supported with row level security."), + errmsg("COPY FROM not supported with row-level security."), errhint("Use INSERT statements instead."))); /* Build target list */ diff --git a/src/backend/commands/extension.c b/src/backend/commands/extension.c index 67b16a7a68d..5bdf25fc0fd 100644 --- a/src/backend/commands/extension.c +++ b/src/backend/commands/extension.c @@ -3111,7 +3111,7 @@ read_whole_file(const char *filename, int *length) if (fst.st_size > (MaxAllocSize - 1)) ereport(ERROR, (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), - errmsg("file too large"))); + errmsg("file \"%s\" is too large", filename))); bytes_to_read = (size_t) fst.st_size; if ((file = AllocateFile(filename, PG_BINARY_R)) == NULL) diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 55ab2096cc3..44ea7311639 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -11213,10 +11213,8 @@ ATPrepChangePersistence(Relation rel, bool toLogged) case RELPERSISTENCE_TEMP: ereport(ERROR, (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("cannot change logged status of table %s", + errmsg("cannot change logged status of table \"%s\" because it is temporary", RelationGetRelationName(rel)), - errdetail("Table %s is temporary.", - RelationGetRelationName(rel)), errtable(rel))); break; case RELPERSISTENCE_PERMANENT: @@ -11274,11 +11272,9 @@ ATPrepChangePersistence(Relation rel, bool toLogged) if (foreignrel->rd_rel->relpersistence != RELPERSISTENCE_PERMANENT) ereport(ERROR, (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("cannot change status of table %s to logged", - RelationGetRelationName(rel)), - errdetail("Table %s references unlogged table %s.", - RelationGetRelationName(rel), - RelationGetRelationName(foreignrel)), + errmsg("could not change table \"%s\" to logged because it references unlogged table \"%s\"", + RelationGetRelationName(rel), + RelationGetRelationName(foreignrel)), errtableconstraint(rel, NameStr(con->conname)))); } else @@ -11286,11 +11282,9 @@ ATPrepChangePersistence(Relation rel, bool toLogged) if (foreignrel->rd_rel->relpersistence == RELPERSISTENCE_PERMANENT) ereport(ERROR, (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("cannot change status of table %s to unlogged", - RelationGetRelationName(rel)), - errdetail("Logged table %s is referenced by table %s.", - RelationGetRelationName(foreignrel), - RelationGetRelationName(rel)), + errmsg("could not change table \"%s\" to unlogged because it references logged table \"%s\"", + RelationGetRelationName(rel), + RelationGetRelationName(foreignrel)), errtableconstraint(rel, NameStr(con->conname)))); } diff --git a/src/backend/commands/tablespace.c b/src/backend/commands/tablespace.c index 18ae4ab10af..137aec255f4 100644 --- a/src/backend/commands/tablespace.c +++ b/src/backend/commands/tablespace.c @@ -800,7 +800,7 @@ remove_symlink: /* Refuse to remove anything that's not a directory or symlink */ ereport(redo ? LOG : ERROR, (ERRCODE_SYSTEM_ERROR, - errmsg("not a directory or symbolic link: \"%s\"", + errmsg("\"%s\" is not a directory or symbolic link", linkloc))); } @@ -886,7 +886,7 @@ remove_tablespace_symlink(const char *linkloc) { /* Refuse to remove anything that's not a directory or symlink */ ereport(ERROR, - (errmsg("not a directory or symbolic link: \"%s\"", + (errmsg("\"%s\" is not a directory or symbolic link", linkloc))); } } diff --git a/src/backend/libpq/auth.c b/src/backend/libpq/auth.c index aca4ffe4c7e..cdc5bf129a2 100644 --- a/src/backend/libpq/auth.c +++ b/src/backend/libpq/auth.c @@ -668,8 +668,7 @@ recv_password_packet(Port *port) errmsg("invalid password packet size"))); /* Do not echo password to logs, for security. */ - ereport(DEBUG5, - (errmsg("received password packet"))); + elog(DEBUG5, "received password packet"); /* * Return the received string. Note we do not attempt to do any diff --git a/src/backend/libpq/pqcomm.c b/src/backend/libpq/pqcomm.c index 63673b16dfb..0be94b008c8 100644 --- a/src/backend/libpq/pqcomm.c +++ b/src/backend/libpq/pqcomm.c @@ -1168,7 +1168,7 @@ pq_startmsgread(void) if (PqCommReadingMsg) ereport(FATAL, (errcode(ERRCODE_PROTOCOL_VIOLATION), - errmsg("terminating connection because protocol sync was lost"))); + errmsg("terminating connection because protocol synchronization was lost"))); PqCommReadingMsg = true; } diff --git a/src/backend/parser/parse_agg.c b/src/backend/parser/parse_agg.c index 5b0d568478b..2c45bd67a16 100644 --- a/src/backend/parser/parse_agg.c +++ b/src/backend/parser/parse_agg.c @@ -979,7 +979,7 @@ parseCheckAggregates(ParseState *pstate, Query *qry) if (!gsets) ereport(ERROR, (errcode(ERRCODE_STATEMENT_TOO_COMPLEX), - errmsg("too many grouping sets present (max 4096)"), + errmsg("too many grouping sets present (maximum 4096)"), parser_errposition(pstate, qry->groupClause ? exprLocation((Node *) qry->groupClause) diff --git a/src/backend/parser/parse_clause.c b/src/backend/parser/parse_clause.c index 9c2846dc337..45d5e6cb0ff 100644 --- a/src/backend/parser/parse_clause.c +++ b/src/backend/parser/parse_clause.c @@ -2856,7 +2856,7 @@ transformOnConflictArbiter(ParseState *pstate, ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("ON CONFLICT DO UPDATE requires inference specification or constraint name"), - errhint("For example, ON CONFLICT (<column>)."), + errhint("For example, ON CONFLICT (column_name)."), parser_errposition(pstate, exprLocation((Node *) onConflictClause)))); diff --git a/src/backend/parser/parse_relation.c b/src/backend/parser/parse_relation.c index 0c4ed65afa2..6f569dad545 100644 --- a/src/backend/parser/parse_relation.c +++ b/src/backend/parser/parse_relation.c @@ -3080,7 +3080,7 @@ errorMissingColumn(ParseState *pstate, errmsg("column %s.%s does not exist", relname, colname) : errmsg("column \"%s\" does not exist", colname), state->rfirst ? closestfirst ? - errhint("Perhaps you meant to reference the column \"%s\".\"%s\".", + errhint("Perhaps you meant to reference the column \"%s.%s\".", state->rfirst->eref->aliasname, closestfirst) : errhint("There is a column named \"%s\" in table \"%s\", but it cannot be referenced from this part of the query.", colname, state->rfirst->eref->aliasname) : 0, @@ -3099,7 +3099,7 @@ errorMissingColumn(ParseState *pstate, relname ? errmsg("column %s.%s does not exist", relname, colname) : errmsg("column \"%s\" does not exist", colname), - errhint("Perhaps you meant to reference the column \"%s\".\"%s\" or the column \"%s\".\"%s\".", + errhint("Perhaps you meant to reference the column \"%s.%s\" or the column \"%s.%s\".", state->rfirst->eref->aliasname, closestfirst, state->rsecond->eref->aliasname, closestsecond), parser_errposition(pstate, location))); diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c2f4a5e32..3cba0e5f50e 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -2047,8 +2047,10 @@ retry1: else if (!parse_bool(valptr, &am_walsender)) ereport(FATAL, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("invalid value for parameter \"replication\""), - errhint("Valid values are: false, 0, true, 1, database."))); + errmsg("invalid value for parameter \"%s\": \"%s\"", + "replication", + valptr), + errhint("Valid values are: \"false\", 0, \"true\", 1, \"database\"."))); } else { diff --git a/src/backend/storage/lmgr/lwlock.c b/src/backend/storage/lmgr/lwlock.c index 6bca02c5f21..b13ebc637c2 100644 --- a/src/backend/storage/lmgr/lwlock.c +++ b/src/backend/storage/lmgr/lwlock.c @@ -184,7 +184,7 @@ PRINT_LWDEBUG(const char *where, LWLock *lock, LWLockMode mode) ereport(LOG, (errhidestmt(true), errhidecontext(true), - errmsg("%d: %s(%s): excl %u shared %u haswaiters %u waiters %u rOK %d", + errmsg_internal("%d: %s(%s): excl %u shared %u haswaiters %u waiters %u rOK %d", MyProcPid, where, MainLWLockNames[id], !!(state & LW_VAL_EXCLUSIVE), @@ -196,7 +196,7 @@ PRINT_LWDEBUG(const char *where, LWLock *lock, LWLockMode mode) ereport(LOG, (errhidestmt(true), errhidecontext(true), - errmsg("%d: %s(%s %d): excl %u shared %u haswaiters %u waiters %u rOK %d", + errmsg_internal("%d: %s(%s %d): excl %u shared %u haswaiters %u waiters %u rOK %d", MyProcPid, where, T_NAME(lock), id, !!(state & LW_VAL_EXCLUSIVE), @@ -219,13 +219,13 @@ LOG_LWDEBUG(const char *where, LWLock *lock, const char *msg) ereport(LOG, (errhidestmt(true), errhidecontext(true), - errmsg("%s(%s): %s", where, + errmsg_internal("%s(%s): %s", where, MainLWLockNames[id], msg))); else ereport(LOG, (errhidestmt(true), errhidecontext(true), - errmsg("%s(%s %d): %s", where, + errmsg_internal("%s(%s %d): %s", where, T_NAME(lock), id, msg))); } } diff --git a/src/backend/utils/adt/array_userfuncs.c b/src/backend/utils/adt/array_userfuncs.c index c14ea23dfbc..d0e0dfdae9e 100644 --- a/src/backend/utils/adt/array_userfuncs.c +++ b/src/backend/utils/adt/array_userfuncs.c @@ -746,7 +746,7 @@ array_position_common(FunctionCallInfo fcinfo) if (PG_ARGISNULL(2)) ereport(ERROR, (errcode(ERRCODE_NULL_VALUE_NOT_ALLOWED), - errmsg("initial position should not be NULL"))); + errmsg("initial position must not be null"))); position_min = PG_GETARG_INT32(2); } diff --git a/src/backend/utils/adt/encode.c b/src/backend/utils/adt/encode.c index 4b32b6cabbb..f4216fb7950 100644 --- a/src/backend/utils/adt/encode.c +++ b/src/backend/utils/adt/encode.c @@ -304,7 +304,7 @@ b64_decode(const char *src, unsigned len, char *dst) if (b < 0) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("invalid symbol '%c' while decoding base64 sequence", (int) c))); + errmsg("invalid symbol \"%c\" while decoding base64 sequence", (int) c))); } /* add it to buffer */ buf = (buf << 6) + b; @@ -325,7 +325,7 @@ b64_decode(const char *src, unsigned len, char *dst) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("invalid base64 end sequence"), - errhint("Input data is missing padding, truncated, or otherwise corrupted."))); + errhint("Input data is missing padding, is truncated, or is otherwise corrupted."))); return p - dst; } diff --git a/src/backend/utils/adt/jsonb.c b/src/backend/utils/adt/jsonb.c index 7cbb69faf2e..0c14a3bfda4 100644 --- a/src/backend/utils/adt/jsonb.c +++ b/src/backend/utils/adt/jsonb.c @@ -1179,7 +1179,7 @@ jsonb_build_object(PG_FUNCTION_ARGS) if (nargs % 2 != 0) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("invalid number or arguments: object must be matched key value pairs"))); + errmsg("invalid number of arguments: object must be matched key value pairs"))); memset(&result, 0, sizeof(JsonbInState)); @@ -1193,7 +1193,7 @@ jsonb_build_object(PG_FUNCTION_ARGS) if (PG_ARGISNULL(i)) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("arg %d: key cannot be null", i + 1))); + errmsg("argument %d: key must not be null", i + 1))); val_type = get_fn_expr_argtype(fcinfo->flinfo, i); /* @@ -1215,7 +1215,7 @@ jsonb_build_object(PG_FUNCTION_ARGS) if (val_type == InvalidOid || val_type == UNKNOWNOID) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("arg %d: could not determine data type", i + 1))); + errmsg("argument %d: could not determine data type", i + 1))); add_jsonb(arg, false, &result, val_type, true); diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index fda0fb94f82..a185749f9f9 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -2461,7 +2461,7 @@ static struct config_int ConfigureNamesInt[] = { {"wal_retrieve_retry_interval", PGC_SIGHUP, REPLICATION_STANDBY, - gettext_noop("Sets the time to wait before retrying to retrieve WAL" + gettext_noop("Sets the time to wait before retrying to retrieve WAL " "after a failed attempt."), NULL, GUC_UNIT_MS @@ -2589,7 +2589,7 @@ static struct config_int ConfigureNamesInt[] = { {"ssl_renegotiation_limit", PGC_USERSET, CONN_AUTH_SECURITY, - gettext_noop("SSL regenotiation is no longer supported; this can only be 0"), + gettext_noop("SSL regenotiation is no longer supported; this can only be 0."), NULL, GUC_NO_SHOW_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE, }, @@ -3417,7 +3417,7 @@ static struct config_string ConfigureNamesString[] = { {"cluster_name", PGC_POSTMASTER, PROCESS_TITLE, - gettext_noop("Sets the name of the cluster which is included in the process title."), + gettext_noop("Sets the name of the cluster, which is included in the process title."), NULL, GUC_IS_NAME }, diff --git a/src/backend/utils/misc/rls.c b/src/backend/utils/misc/rls.c index 6ce92af0199..9f2ebfe02fa 100644 --- a/src/backend/utils/misc/rls.c +++ b/src/backend/utils/misc/rls.c @@ -122,7 +122,7 @@ check_enable_rls(Oid relid, Oid checkAsUser, bool noError) if (!row_security && !noError) ereport(ERROR, (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), - errmsg("insufficient privilege to bypass row security."))); + errmsg("insufficient privilege to bypass row-level security"))); /* RLS should be fully enabled for this relation. */ return RLS_ENABLED; |