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
821fb8cd
Commit
821fb8cd
authored
Sep 11, 2017
by
Peter Eisentraut
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Message style fixes
parent
3c435952
Changes
34
Hide whitespace changes
Inline
Side-by-side
Showing
34 changed files
with
100 additions
and
101 deletions
+100
-101
doc/src/sgml/catalogs.sgml
doc/src/sgml/catalogs.sgml
+1
-1
doc/src/sgml/perform.sgml
doc/src/sgml/perform.sgml
+2
-2
doc/src/sgml/ref/create_statistics.sgml
doc/src/sgml/ref/create_statistics.sgml
+5
-5
doc/src/sgml/ref/psql-ref.sgml
doc/src/sgml/ref/psql-ref.sgml
+1
-1
src/backend/access/transam/twophase.c
src/backend/access/transam/twophase.c
+7
-7
src/backend/access/transam/xlog.c
src/backend/access/transam/xlog.c
+1
-1
src/backend/commands/publicationcmds.c
src/backend/commands/publicationcmds.c
+1
-1
src/backend/commands/statscmds.c
src/backend/commands/statscmds.c
+5
-5
src/backend/commands/tablecmds.c
src/backend/commands/tablecmds.c
+1
-1
src/backend/commands/trigger.c
src/backend/commands/trigger.c
+1
-1
src/backend/executor/execReplication.c
src/backend/executor/execReplication.c
+2
-2
src/backend/libpq/hba.c
src/backend/libpq/hba.c
+1
-1
src/backend/replication/logical/relation.c
src/backend/replication/logical/relation.c
+2
-3
src/backend/replication/logical/worker.c
src/backend/replication/logical/worker.c
+3
-3
src/backend/replication/pgoutput/pgoutput.c
src/backend/replication/pgoutput/pgoutput.c
+1
-1
src/backend/rewrite/rewriteDefine.c
src/backend/rewrite/rewriteDefine.c
+2
-2
src/backend/storage/lmgr/predicate.c
src/backend/storage/lmgr/predicate.c
+1
-1
src/backend/utils/adt/int8.c
src/backend/utils/adt/int8.c
+4
-4
src/backend/utils/adt/jsonfuncs.c
src/backend/utils/adt/jsonfuncs.c
+3
-3
src/backend/utils/adt/mac8.c
src/backend/utils/adt/mac8.c
+2
-2
src/backend/utils/adt/numutils.c
src/backend/utils/adt/numutils.c
+6
-6
src/backend/utils/adt/txid.c
src/backend/utils/adt/txid.c
+7
-7
src/backend/utils/misc/guc.c
src/backend/utils/misc/guc.c
+3
-3
src/backend/utils/time/snapmgr.c
src/backend/utils/time/snapmgr.c
+1
-1
src/bin/psql/variables.c
src/bin/psql/variables.c
+1
-1
src/include/catalog/pg_statistic_ext.h
src/include/catalog/pg_statistic_ext.h
+1
-1
src/test/regress/expected/alter_table.out
src/test/regress/expected/alter_table.out
+1
-1
src/test/regress/expected/foreign_data.out
src/test/regress/expected/foreign_data.out
+1
-1
src/test/regress/expected/json.out
src/test/regress/expected/json.out
+13
-13
src/test/regress/expected/jsonb.out
src/test/regress/expected/jsonb.out
+13
-13
src/test/regress/expected/psql.out
src/test/regress/expected/psql.out
+2
-2
src/test/regress/expected/rules.out
src/test/regress/expected/rules.out
+2
-2
src/test/regress/expected/stats_ext.out
src/test/regress/expected/stats_ext.out
+2
-2
src/test/regress/expected/triggers.out
src/test/regress/expected/triggers.out
+1
-1
No files found.
doc/src/sgml/catalogs.sgml
View file @
821fb8cd
...
...
@@ -6453,7 +6453,7 @@ SCRAM-SHA-256$<replaceable><iteration count></>:<replaceable><salt><
<entry><type>char[]</type></entry>
<entry></entry>
<entry>
An array containing codes for the enabled statistic
type
s;
An array containing codes for the enabled statistic
kind
s;
valid values are:
<literal>d</literal> for n-distinct statistics,
<literal>f</literal> for functional dependency statistics
...
...
doc/src/sgml/perform.sgml
View file @
821fb8cd
...
...
@@ -1107,7 +1107,7 @@ WHERE tablename = 'road';
</para>
<para>
The following subsections describe the
type
s of extended statistics
The following subsections describe the
kind
s of extended statistics
that are currently supported.
</para>
...
...
@@ -1115,7 +1115,7 @@ WHERE tablename = 'road';
<title>Functional Dependencies</title>
<para>
The simplest
type
of extended statistics tracks <firstterm>functional
The simplest
kind
of extended statistics tracks <firstterm>functional
dependencies</>, a concept used in definitions of database normal forms.
We say that column <structfield>b</> is functionally dependent on
column <structfield>a</> if knowledge of the value of
...
...
doc/src/sgml/ref/create_statistics.sgml
View file @
821fb8cd
...
...
@@ -22,7 +22,7 @@ PostgreSQL documentation
<refsynopsisdiv>
<synopsis>
CREATE STATISTICS [ IF NOT EXISTS ] <replaceable class="PARAMETER">statistics_name</replaceable>
[ ( <replaceable class="PARAMETER">statistic
_type
</replaceable> [, ... ] ) ]
[ ( <replaceable class="PARAMETER">statistic
s_kind
</replaceable> [, ... ] ) ]
ON <replaceable class="PARAMETER">column_name</replaceable>, <replaceable class="PARAMETER">column_name</replaceable> [, ...]
FROM <replaceable class="PARAMETER">table_name</replaceable>
</synopsis>
...
...
@@ -76,15 +76,15 @@ CREATE STATISTICS [ IF NOT EXISTS ] <replaceable class="PARAMETER">statistics_na
</varlistentry>
<varlistentry>
<term><replaceable class="PARAMETER">statistic
_type
</replaceable></term>
<term><replaceable class="PARAMETER">statistic
s_kind
</replaceable></term>
<listitem>
<para>
A statistic
type
to be computed in this statistics object.
Currently supported
type
s are
A statistic
s kind
to be computed in this statistics object.
Currently supported
kind
s are
<literal>ndistinct</literal>, which enables n-distinct statistics, and
<literal>dependencies</literal>, which enables functional
dependency statistics.
If this clause is omitted, all supported statistic
type
s are
If this clause is omitted, all supported statistic
s kind
s are
included in the statistics object.
For more information, see <xref linkend="planner-stats-extended">
and <xref linkend="multivariate-statistics-examples">.
...
...
doc/src/sgml/ref/psql-ref.sgml
View file @
821fb8cd
...
...
@@ -3629,7 +3629,7 @@ bar
will terminate the application. If set to a larger numeric value,
that many consecutive <acronym>EOF</> characters must be typed to
make an interactive session terminate. If the variable is set to a
non-numeric value, it is interpreted as 10.
non-numeric value, it is interpreted as 10.
The default is 0.
</para>
<note>
<para>
...
...
src/backend/access/transam/twophase.c
View file @
821fb8cd
...
...
@@ -2031,14 +2031,14 @@ ProcessTwoPhaseBuffer(TransactionId xid,
if
(
fromdisk
)
{
ereport
(
WARNING
,
(
errmsg
(
"removing stale two-phase state file for
\"
%u
\"
"
,
(
errmsg
(
"removing stale two-phase state file for
transaction %u
"
,
xid
)));
RemoveTwoPhaseFile
(
xid
,
true
);
}
else
{
ereport
(
WARNING
,
(
errmsg
(
"removing stale two-phase state from
shared memory for
\"
%u
\"
"
,
(
errmsg
(
"removing stale two-phase state from
memory for transaction %u
"
,
xid
)));
PrepareRedoRemove
(
xid
,
true
);
}
...
...
@@ -2051,14 +2051,14 @@ ProcessTwoPhaseBuffer(TransactionId xid,
if
(
fromdisk
)
{
ereport
(
WARNING
,
(
errmsg
(
"removing future two-phase state file for
\"
%u
\"
"
,
(
errmsg
(
"removing future two-phase state file for
transaction %u
"
,
xid
)));
RemoveTwoPhaseFile
(
xid
,
true
);
}
else
{
ereport
(
WARNING
,
(
errmsg
(
"removing future two-phase state from memory for
\"
%u
\"
"
,
(
errmsg
(
"removing future two-phase state from memory for
transaction %u
"
,
xid
)));
PrepareRedoRemove
(
xid
,
true
);
}
...
...
@@ -2072,7 +2072,7 @@ ProcessTwoPhaseBuffer(TransactionId xid,
if
(
buf
==
NULL
)
{
ereport
(
WARNING
,
(
errmsg
(
"removing corrupt two-phase state file for
\"
%u
\"
"
,
(
errmsg
(
"removing corrupt two-phase state file for
transaction %u
"
,
xid
)));
RemoveTwoPhaseFile
(
xid
,
true
);
return
NULL
;
...
...
@@ -2091,14 +2091,14 @@ ProcessTwoPhaseBuffer(TransactionId xid,
if
(
fromdisk
)
{
ereport
(
WARNING
,
(
errmsg
(
"removing corrupt two-phase state file for
\"
%u
\"
"
,
(
errmsg
(
"removing corrupt two-phase state file for
transaction %u
"
,
xid
)));
RemoveTwoPhaseFile
(
xid
,
true
);
}
else
{
ereport
(
WARNING
,
(
errmsg
(
"removing corrupt two-phase state from memory for
\"
%u
\"
"
,
(
errmsg
(
"removing corrupt two-phase state from memory for
transaction %u
"
,
xid
)));
PrepareRedoRemove
(
xid
,
true
);
}
...
...
src/backend/access/transam/xlog.c
View file @
821fb8cd
...
...
@@ -8658,7 +8658,7 @@ CreateCheckPoint(int flags)
LWLockRelease
(
CheckpointLock
);
END_CRIT_SECTION
();
ereport
(
DEBUG1
,
(
errmsg
(
"checkpoint skipped
due to an idle system
"
)));
(
errmsg
(
"checkpoint skipped
because system is idle
"
)));
return
;
}
}
...
...
src/backend/commands/publicationcmds.c
View file @
821fb8cd
...
...
@@ -103,7 +103,7 @@ parse_publication_options(List *options,
if
(
!
SplitIdentifierString
(
publish
,
','
,
&
publish_list
))
ereport
(
ERROR
,
(
errcode
(
ERRCODE_SYNTAX_ERROR
),
errmsg
(
"invalid
publish list
"
)));
errmsg
(
"invalid
list syntax for
\"
publish
\"
option
"
)));
/* Process the option list. */
foreach
(
lc
,
publish_list
)
...
...
src/backend/commands/statscmds.c
View file @
821fb8cd
...
...
@@ -180,7 +180,7 @@ CreateStatistics(CreateStatsStmt *stmt)
if
(
!
HeapTupleIsValid
(
atttuple
))
ereport
(
ERROR
,
(
errcode
(
ERRCODE_UNDEFINED_COLUMN
),
errmsg
(
"column
\"
%s
\"
referenced in statistics
does not exist"
,
errmsg
(
"column
\"
%s
\"
does not exist"
,
attname
)));
attForm
=
(
Form_pg_attribute
)
GETSTRUCT
(
atttuple
);
...
...
@@ -195,8 +195,8 @@ CreateStatistics(CreateStatsStmt *stmt)
if
(
type
->
lt_opr
==
InvalidOid
)
ereport
(
ERROR
,
(
errcode
(
ERRCODE_FEATURE_NOT_SUPPORTED
),
errmsg
(
"column
\"
%s
\"
cannot be used in statistics because its type has no default btree operator class"
,
attname
)));
errmsg
(
"column
\"
%s
\"
cannot be used in statistics because its type
%s
has no default btree operator class"
,
attname
,
format_type_be
(
attForm
->
atttypid
)
)));
/* Make sure no more than STATS_MAX_DIMENSIONS columns are used */
if
(
numcols
>=
STATS_MAX_DIMENSIONS
)
...
...
@@ -242,7 +242,7 @@ CreateStatistics(CreateStatsStmt *stmt)
stxkeys
=
buildint2vector
(
attnums
,
numcols
);
/*
* Parse the statistics
type
s.
* Parse the statistics
kind
s.
*/
build_ndistinct
=
false
;
build_dependencies
=
false
;
...
...
@@ -263,7 +263,7 @@ CreateStatistics(CreateStatsStmt *stmt)
else
ereport
(
ERROR
,
(
errcode
(
ERRCODE_SYNTAX_ERROR
),
errmsg
(
"unrecognized statistic
type
\"
%s
\"
"
,
errmsg
(
"unrecognized statistic
s kind
\"
%s
\"
"
,
type
)));
}
/* If no statistic type was specified, build them all. */
...
...
src/backend/commands/tablecmds.c
View file @
821fb8cd
...
...
@@ -13859,7 +13859,7 @@ ATExecAttachPartition(List **wqueue, Relation rel, PartitionCmd *cmd)
errmsg
(
"table
\"
%s
\"
contains column
\"
%s
\"
not found in parent
\"
%s
\"
"
,
RelationGetRelationName
(
attachrel
),
attributeName
,
RelationGetRelationName
(
rel
)),
errdetail
(
"
New partition should
contain only the columns present in parent."
)));
errdetail
(
"
The new partition may
contain only the columns present in parent."
)));
}
/*
...
...
src/backend/commands/trigger.c
View file @
821fb8cd
...
...
@@ -416,7 +416,7 @@ CreateTrigger(CreateTrigStmt *stmt, const char *queryString,
(
TRIGGER_FOR_DELETE
(
tgtype
)
?
1
:
0
))
!=
1
)
ereport
(
ERROR
,
(
errcode
(
ERRCODE_FEATURE_NOT_SUPPORTED
),
errmsg
(
"
T
ransition tables cannot be specified for triggers with more than one event"
)));
errmsg
(
"
t
ransition tables cannot be specified for triggers with more than one event"
)));
if
(
tt
->
isNew
)
{
...
...
src/backend/executor/execReplication.c
View file @
821fb8cd
...
...
@@ -559,13 +559,13 @@ CheckCmdReplicaIdentity(Relation rel, CmdType cmd)
if
(
cmd
==
CMD_UPDATE
&&
pubactions
->
pubupdate
)
ereport
(
ERROR
,
(
errcode
(
ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE
),
errmsg
(
"cannot update table
\"
%s
\"
because it does not have replica identity and publishes updates"
,
errmsg
(
"cannot update table
\"
%s
\"
because it does not have
a
replica identity and publishes updates"
,
RelationGetRelationName
(
rel
)),
errhint
(
"To enable updating the table, set REPLICA IDENTITY using ALTER TABLE."
)));
else
if
(
cmd
==
CMD_DELETE
&&
pubactions
->
pubdelete
)
ereport
(
ERROR
,
(
errcode
(
ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE
),
errmsg
(
"cannot delete from table
\"
%s
\"
because it does not have replica identity and publishes deletes"
,
errmsg
(
"cannot delete from table
\"
%s
\"
because it does not have
a
replica identity and publishes deletes"
,
RelationGetRelationName
(
rel
)),
errhint
(
"To enable deleting from the table, set REPLICA IDENTITY using ALTER TABLE."
)));
}
...
...
src/backend/libpq/hba.c
View file @
821fb8cd
...
...
@@ -1608,7 +1608,7 @@ verify_option_list_length(List *options, char *optionname, List *masters, char *
ereport
(
LOG
,
(
errcode
(
ERRCODE_CONFIG_FILE_ERROR
),
errmsg
(
"the number of %s (%
i) must be 1 or the same as the number of %s (%i
)"
,
errmsg
(
"the number of %s (%
d) must be 1 or the same as the number of %s (%d
)"
,
optionname
,
list_length
(
options
),
mastername
,
...
...
src/backend/replication/logical/relation.c
View file @
821fb8cd
...
...
@@ -454,9 +454,8 @@ logicalrep_typmap_getid(Oid remoteid)
{
if
(
!
get_typisdefined
(
remoteid
))
ereport
(
ERROR
,
(
errmsg
(
"builtin type %u not found"
,
remoteid
),
errhint
(
"This can be caused by having publisher with "
"higher major version than subscriber"
)));
(
errmsg
(
"built-in type %u not found"
,
remoteid
),
errhint
(
"This can be caused by having a publisher with a higher PostgreSQL major version than the subscriber."
)));
return
remoteid
;
}
...
...
src/backend/replication/logical/worker.c
View file @
821fb8cd
...
...
@@ -629,7 +629,7 @@ check_relation_updatable(LogicalRepRelMapEntry *rel)
{
ereport
(
ERROR
,
(
errcode
(
ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE
),
errmsg
(
"publisher d
oes
not send replica identity column "
errmsg
(
"publisher d
id
not send replica identity column "
"expected by the logical replication target relation
\"
%s.%s
\"
"
,
rel
->
remoterel
.
nspname
,
rel
->
remoterel
.
relname
)));
}
...
...
@@ -844,7 +844,7 @@ apply_handle_delete(StringInfo s)
/* The tuple to be deleted could not be found. */
ereport
(
DEBUG1
,
(
errmsg
(
"logical replication could not find row for delete "
"in replication target
%s
"
,
"in replication target
relation
\"
%s
\"
"
,
RelationGetRelationName
(
rel
->
localrel
))));
}
...
...
@@ -910,7 +910,7 @@ apply_dispatch(StringInfo s)
default:
ereport
(
ERROR
,
(
errcode
(
ERRCODE_PROTOCOL_VIOLATION
),
errmsg
(
"invalid logical replication message type
%c
"
,
action
)));
errmsg
(
"invalid logical replication message type
\"
%c
\"
"
,
action
)));
}
}
...
...
src/backend/replication/pgoutput/pgoutput.c
View file @
821fb8cd
...
...
@@ -115,7 +115,7 @@ parse_output_parameters(List *options, uint32 *protocol_version,
if
(
parsed
>
PG_UINT32_MAX
||
parsed
<
0
)
ereport
(
ERROR
,
(
errcode
(
ERRCODE_INVALID_PARAMETER_VALUE
),
errmsg
(
"proto_verson
\"
%s
\"
out of range"
,
errmsg
(
"proto_vers
i
on
\"
%s
\"
out of range"
,
strVal
(
defel
->
arg
))));
*
protocol_version
=
(
uint32
)
parsed
;
...
...
src/backend/rewrite/rewriteDefine.c
View file @
821fb8cd
...
...
@@ -425,13 +425,13 @@ DefineQueryRewrite(char *rulename,
if
(
event_relation
->
rd_rel
->
relkind
==
RELKIND_PARTITIONED_TABLE
)
ereport
(
ERROR
,
(
errcode
(
ERRCODE_WRONG_OBJECT_TYPE
),
errmsg
(
"c
ould
not convert partitioned table
\"
%s
\"
to a view"
,
errmsg
(
"c
an
not convert partitioned table
\"
%s
\"
to a view"
,
RelationGetRelationName
(
event_relation
))));
if
(
event_relation
->
rd_rel
->
relispartition
)
ereport
(
ERROR
,
(
errcode
(
ERRCODE_WRONG_OBJECT_TYPE
),
errmsg
(
"c
ould
not convert partition
\"
%s
\"
to a view"
,
errmsg
(
"c
an
not convert partition
\"
%s
\"
to a view"
,
RelationGetRelationName
(
event_relation
))));
snapshot
=
RegisterSnapshot
(
GetLatestSnapshot
());
...
...
src/backend/storage/lmgr/predicate.c
View file @
821fb8cd
...
...
@@ -1769,7 +1769,7 @@ GetSerializableTransactionSnapshotInt(Snapshot snapshot,
ereport
(
ERROR
,
(
errcode
(
ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE
),
errmsg
(
"could not import the requested snapshot"
),
errdetail
(
"The source process with
pid
%d is not running anymore."
,
errdetail
(
"The source process with
PID
%d is not running anymore."
,
sourcepid
)));
}
...
...
src/backend/utils/adt/int8.c
View file @
821fb8cd
...
...
@@ -95,8 +95,8 @@ scanint8(const char *str, bool errorOK, int64 *result)
else
ereport
(
ERROR
,
(
errcode
(
ERRCODE_INVALID_TEXT_REPRESENTATION
),
errmsg
(
"invalid input syntax for
%s
:
\"
%s
\"
"
,
"integer"
,
str
)));
errmsg
(
"invalid input syntax for
integer
:
\"
%s
\"
"
,
str
)));
}
/* process digits */
...
...
@@ -130,8 +130,8 @@ gotdigits:
else
ereport
(
ERROR
,
(
errcode
(
ERRCODE_INVALID_TEXT_REPRESENTATION
),
errmsg
(
"invalid input syntax for
%s
:
\"
%s
\"
"
,
"integer"
,
str
)));
errmsg
(
"invalid input syntax for
integer
:
\"
%s
\"
"
,
str
)));
}
*
result
=
(
sign
<
0
)
?
-
tmp
:
tmp
;
...
...
src/backend/utils/adt/jsonfuncs.c
View file @
821fb8cd
...
...
@@ -2314,7 +2314,7 @@ populate_array_report_expected_array(PopulateArrayContext *ctx, int ndim)
ereport
(
ERROR
,
(
errcode
(
ERRCODE_INVALID_TEXT_REPRESENTATION
),
errmsg
(
"expected json array"
),
errhint
(
"
see the value of key
\"
%s
\"
"
,
ctx
->
colname
)));
errhint
(
"
See the value of key
\"
%s
\"
.
"
,
ctx
->
colname
)));
else
ereport
(
ERROR
,
(
errcode
(
ERRCODE_INVALID_TEXT_REPRESENTATION
),
...
...
@@ -2336,13 +2336,13 @@ populate_array_report_expected_array(PopulateArrayContext *ctx, int ndim)
ereport
(
ERROR
,
(
errcode
(
ERRCODE_INVALID_TEXT_REPRESENTATION
),
errmsg
(
"expected json array"
),
errhint
(
"
see the array element %s of key
\"
%s
\"
"
,
errhint
(
"
See the array element %s of key
\"
%s
\"
.
"
,
indices
.
data
,
ctx
->
colname
)));
else
ereport
(
ERROR
,
(
errcode
(
ERRCODE_INVALID_TEXT_REPRESENTATION
),
errmsg
(
"expected json array"
),
errhint
(
"
see the array element %s
"
,
errhint
(
"
See the array element %s.
"
,
indices
.
data
)));
}
}
...
...
src/backend/utils/adt/mac8.c
View file @
821fb8cd
...
...
@@ -562,8 +562,8 @@ macaddr8tomacaddr(PG_FUNCTION_ARGS)
(
errcode
(
ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE
),
errmsg
(
"macaddr8 data out of range to convert to macaddr"
),
errhint
(
"Only addresses that have FF and FE as values in the "
"4th and 5th bytes
, from the left, for example:
"
"
XX-XX-XX-FF-FE-XX-XX-XX
, are eligible to be converted "
"4th and 5th bytes
from the left, for example
"
"
xx:xx:xx:ff:fe:xx:xx:xx
, are eligible to be converted "
"from macaddr8 to macaddr."
)));
result
->
a
=
addr
->
a
;
...
...
src/backend/utils/adt/numutils.c
View file @
821fb8cd
...
...
@@ -48,8 +48,8 @@ pg_atoi(const char *s, int size, int c)
if
(
*
s
==
0
)
ereport
(
ERROR
,
(
errcode
(
ERRCODE_INVALID_TEXT_REPRESENTATION
),
errmsg
(
"invalid input syntax for
%s
:
\"
%s
\"
"
,
"integer"
,
s
)));
errmsg
(
"invalid input syntax for
integer
:
\"
%s
\"
"
,
s
)));
errno
=
0
;
l
=
strtol
(
s
,
&
badp
,
10
);
...
...
@@ -58,8 +58,8 @@ pg_atoi(const char *s, int size, int c)
if
(
s
==
badp
)
ereport
(
ERROR
,
(
errcode
(
ERRCODE_INVALID_TEXT_REPRESENTATION
),
errmsg
(
"invalid input syntax for
%s
:
\"
%s
\"
"
,
"integer"
,
s
)));
errmsg
(
"invalid input syntax for
integer
:
\"
%s
\"
"
,
s
)));
switch
(
size
)
{
...
...
@@ -102,8 +102,8 @@ pg_atoi(const char *s, int size, int c)
if
(
*
badp
&&
*
badp
!=
c
)
ereport
(
ERROR
,
(
errcode
(
ERRCODE_INVALID_TEXT_REPRESENTATION
),
errmsg
(
"invalid input syntax for
%s
:
\"
%s
\"
"
,
"integer"
,
s
)));
errmsg
(
"invalid input syntax for
integer
:
\"
%s
\"
"
,
s
)));
return
(
int32
)
l
;
}
...
...
src/backend/utils/adt/txid.c
View file @
821fb8cd
...
...
@@ -132,8 +132,8 @@ TransactionIdInRecentPast(uint64 xid_with_epoch, TransactionId *extracted_xid)
||
(
xid_epoch
==
now_epoch
&&
xid
>
now_epoch_last_xid
))
ereport
(
ERROR
,
(
errcode
(
ERRCODE_INVALID_PARAMETER_VALUE
),
errmsg
(
"transaction ID
"
UINT64_FORMAT
"
is in the future"
,
xid_with_epoch
)));
errmsg
(
"transaction ID
%s
is in the future"
,
psprintf
(
UINT64_FORMAT
,
xid_with_epoch
)
)));
/*
* ShmemVariableCache->oldestClogXid is protected by CLogTruncationLock,
...
...
@@ -755,11 +755,11 @@ txid_status(PG_FUNCTION_ARGS)
Assert
(
TransactionIdIsValid
(
xid
));
if
(
TransactionIdIsCurrentTransactionId
(
xid
))
status
=
gettext_noop
(
"in progress"
)
;
status
=
"in progress"
;
else
if
(
TransactionIdDidCommit
(
xid
))
status
=
gettext_noop
(
"committed"
)
;
status
=
"committed"
;
else
if
(
TransactionIdDidAbort
(
xid
))
status
=
gettext_noop
(
"aborted"
)
;
status
=
"aborted"
;
else
{
/*
...
...
@@ -774,9 +774,9 @@ txid_status(PG_FUNCTION_ARGS)
* checked commit/abort status).
*/
if
(
TransactionIdPrecedes
(
xid
,
GetActiveSnapshot
()
->
xmin
))
status
=
gettext_noop
(
"aborted"
)
;
status
=
"aborted"
;
else
status
=
gettext_noop
(
"in progress"
)
;
status
=
"in progress"
;
}
}
else
...
...
src/backend/utils/misc/guc.c
View file @
821fb8cd
...
...
@@ -2201,7 +2201,7 @@ static struct config_int ConfigureNamesInt[] =
{
"max_pred_locks_per_relation"
,
PGC_SIGHUP
,
LOCK_MANAGEMENT
,
gettext_noop
(
"Sets the maximum number of predicate-locked pages and tuples per relation."
),
gettext_noop
(
"If more than this total of pages and tuples in the same relation are locked "
"by a connection, those locks are replaced by a relation
level lock."
)
"by a connection, those locks are replaced by a relation
-
level lock."
)
},
&
max_predicate_locks_per_relation
,
-
2
,
INT_MIN
,
INT_MAX
,
...
...
@@ -2212,7 +2212,7 @@ static struct config_int ConfigureNamesInt[] =
{
"max_pred_locks_per_page"
,
PGC_SIGHUP
,
LOCK_MANAGEMENT
,
gettext_noop
(
"Sets the maximum number of predicate-locked tuples per page."
),
gettext_noop
(
"If more than this number of tuples on the same page are locked "
"by a connection, those locks are replaced by a page
level lock."
)
"by a connection, those locks are replaced by a page
-
level lock."
)
},
&
max_predicate_locks_per_page
,
2
,
0
,
INT_MAX
,
...
...
@@ -3608,7 +3608,7 @@ static struct config_string ConfigureNamesString[] =
{
{
"ssl_dh_params_file"
,
PGC_SIGHUP
,
CONN_AUTH_SECURITY
,
gettext_noop
(
"Location of the SSL DH params file."
),
gettext_noop
(
"Location of the SSL DH param
eter
s file."
),
NULL
,
GUC_SUPERUSER_ONLY
},
...
...
src/backend/utils/time/snapmgr.c
View file @
821fb8cd
...
...
@@ -625,7 +625,7 @@ SetTransactionSnapshot(Snapshot sourcesnap, VirtualTransactionId *sourcevxid,
ereport
(
ERROR
,
(
errcode
(
ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE
),
errmsg
(
"could not import the requested snapshot"
),
errdetail
(
"The source process with
pid
%d is not running anymore."
,
errdetail
(
"The source process with
PID
%d is not running anymore."
,
sourcepid
)));
/*
...
...
src/bin/psql/variables.c
View file @
821fb8cd
...
...
@@ -136,7 +136,7 @@ ParseVariableBool(const char *value, const char *name, bool *result)
{
/* string is not recognized; don't clobber *result */
if
(
name
)
psql_error
(
"unrecognized value
\"
%s
\"
for
\"
%s
\"
:
b
oolean expected
\n
"
,
psql_error
(
"unrecognized value
\"
%s
\"
for
\"
%s
\"
:
B
oolean expected
\n
"
,
value
,
name
);
valid
=
false
;
}
...
...
src/include/catalog/pg_statistic_ext.h
View file @
821fb8cd
...
...
@@ -45,7 +45,7 @@ CATALOG(pg_statistic_ext,3381)
int2vector
stxkeys
;
/* array of column keys */
#ifdef CATALOG_VARLEN
char
stxkind
[
1
]
BKI_FORCE_NOT_NULL
;
/* statistic
type
s requested
char
stxkind
[
1
]
BKI_FORCE_NOT_NULL
;
/* statistic
s kind
s requested
* to build */
pg_ndistinct
stxndistinct
;
/* ndistinct coefficients (serialized) */
pg_dependencies
stxdependencies
;
/* dependencies (serialized) */
...
...
src/test/regress/expected/alter_table.out
View file @
821fb8cd
...
...
@@ -3242,7 +3242,7 @@ DROP TABLE fail_part;
CREATE TABLE fail_part (like list_parted, c int);
ALTER TABLE list_parted ATTACH PARTITION fail_part FOR VALUES IN (1);
ERROR: table "fail_part" contains column "c" not found in parent "list_parted"
DETAIL:
New partition should
contain only the columns present in parent.
DETAIL:
The new partition may
contain only the columns present in parent.
DROP TABLE fail_part;
-- check that the table being attached has every column of the parent
CREATE TABLE fail_part (a int NOT NULL);
...
...
src/test/regress/expected/foreign_data.out
View file @
821fb8cd
...
...
@@ -1872,7 +1872,7 @@ FDW options: (delimiter ',', quote '"', "be quoted" 'value')
ALTER TABLE pt2 ATTACH PARTITION pt2_1 FOR VALUES IN (1); -- ERROR
ERROR: table "pt2_1" contains column "c4" not found in parent "pt2"
DETAIL:
New partition should
contain only the columns present in parent.
DETAIL:
The new partition may
contain only the columns present in parent.
DROP FOREIGN TABLE pt2_1;
\d+ pt2
Table "public.pt2"
...
...
src/test/regress/expected/json.out
View file @
821fb8cd
...
...
@@ -1400,7 +1400,7 @@ SELECT ia FROM json_populate_record(NULL::jsrec, '{"ia": null}') q;
SELECT ia FROM json_populate_record(NULL::jsrec, '{"ia": 123}') q;
ERROR: expected json array
HINT:
see the value of key "ia"
HINT:
See the value of key "ia".
SELECT ia FROM json_populate_record(NULL::jsrec, '{"ia": [1, "2", null, 4]}') q;
ia
--------------
...
...
@@ -1415,7 +1415,7 @@ SELECT ia FROM json_populate_record(NULL::jsrec, '{"ia": [[1, 2], [3, 4]]}') q;
SELECT ia FROM json_populate_record(NULL::jsrec, '{"ia": [[1], 2]}') q;
ERROR: expected json array
HINT:
see the array element [1] of key "ia"
HINT:
See the array element [1] of key "ia".
SELECT ia FROM json_populate_record(NULL::jsrec, '{"ia": [[1], [2, 3]]}') q;
ERROR: malformed json array
DETAIL: Multidimensional arrays must have sub-arrays with matching dimensions.
...
...
@@ -1433,7 +1433,7 @@ SELECT ia1 FROM json_populate_record(NULL::jsrec, '{"ia1": null}') q;
SELECT ia1 FROM json_populate_record(NULL::jsrec, '{"ia1": 123}') q;
ERROR: expected json array
HINT:
see the value of key "ia1"
HINT:
See the value of key "ia1".
SELECT ia1 FROM json_populate_record(NULL::jsrec, '{"ia1": [1, "2", null, 4]}') q;
ia1
--------------
...
...
@@ -1454,7 +1454,7 @@ SELECT ia1d FROM json_populate_record(NULL::jsrec, '{"ia1d": null}') q;
SELECT ia1d FROM json_populate_record(NULL::jsrec, '{"ia1d": 123}') q;
ERROR: expected json array
HINT:
see the value of key "ia1d"
HINT:
See the value of key "ia1d".
SELECT ia1d FROM json_populate_record(NULL::jsrec, '{"ia1d": [1, "2", null, 4]}') q;
ERROR: value for domain js_int_array_1d violates check constraint "js_int_array_1d_check"
SELECT ia1d FROM json_populate_record(NULL::jsrec, '{"ia1d": [1, "2", null]}') q;
...
...
@@ -1486,7 +1486,7 @@ ERROR: malformed json array
DETAIL: Multidimensional arrays must have sub-arrays with matching dimensions.
SELECT ia2 FROM json_populate_record(NULL::jsrec, '{"ia2": [[1, 2], 3, 4]}') q;
ERROR: expected json array
HINT:
see the array element [1] of key "ia2"
HINT:
See the array element [1] of key "ia2".
SELECT ia2d FROM json_populate_record(NULL::jsrec, '{"ia2d": [[1, "2"], [null, 4]]}') q;
ERROR: value for domain js_int_array_2d violates check constraint "js_int_array_2d_check"
SELECT ia2d FROM json_populate_record(NULL::jsrec, '{"ia2d": [[1, "2", 3], [null, 5, 6]]}') q;
...
...
@@ -1536,7 +1536,7 @@ SELECT ta FROM json_populate_record(NULL::jsrec, '{"ta": null}') q;
SELECT ta FROM json_populate_record(NULL::jsrec, '{"ta": 123}') q;
ERROR: expected json array
HINT:
see the value of key "ta"
HINT:
See the value of key "ta".
SELECT ta FROM json_populate_record(NULL::jsrec, '{"ta": [1, "2", null, 4]}') q;
ta
--------------
...
...
@@ -1545,7 +1545,7 @@ SELECT ta FROM json_populate_record(NULL::jsrec, '{"ta": [1, "2", null, 4]}') q;
SELECT ta FROM json_populate_record(NULL::jsrec, '{"ta": [[1, 2, 3], {"k": "v"}]}') q;
ERROR: expected json array
HINT:
see the array element [1] of key "ta"
HINT:
See the array element [1] of key "ta".
SELECT c FROM json_populate_record(NULL::jsrec, '{"c": null}') q;
c
---
...
...
@@ -1574,7 +1574,7 @@ SELECT ca FROM json_populate_record(NULL::jsrec, '{"ca": null}') q;
SELECT ca FROM json_populate_record(NULL::jsrec, '{"ca": 123}') q;
ERROR: expected json array
HINT:
see the value of key "ca"
HINT:
See the value of key "ca".
SELECT ca FROM json_populate_record(NULL::jsrec, '{"ca": [1, "2", null, 4]}') q;
ca
-----------------------------------------------
...
...
@@ -1585,7 +1585,7 @@ SELECT ca FROM json_populate_record(NULL::jsrec, '{"ca": ["aaaaaaaaaaaaaaaa"]}')
ERROR: value too long for type character(10)
SELECT ca FROM json_populate_record(NULL::jsrec, '{"ca": [[1, 2, 3], {"k": "v"}]}') q;
ERROR: expected json array
HINT:
see the array element [1] of key "ca"
HINT:
See the array element [1] of key "ca".
SELECT js FROM json_populate_record(NULL::jsrec, '{"js": null}') q;
js
----
...
...
@@ -1678,7 +1678,7 @@ SELECT jsa FROM json_populate_record(NULL::jsrec, '{"jsa": null}') q;
SELECT jsa FROM json_populate_record(NULL::jsrec, '{"jsa": 123}') q;
ERROR: expected json array
HINT:
see the value of key "jsa"
HINT:
See the value of key "jsa".
SELECT jsa FROM json_populate_record(NULL::jsrec, '{"jsa": [1, "2", null, 4]}') q;
jsa
--------------------
...
...
@@ -1709,7 +1709,7 @@ SELECT rec FROM json_populate_record(NULL::jsrec, '{"rec": "(abc,42,01.02.2003)"
SELECT reca FROM json_populate_record(NULL::jsrec, '{"reca": 123}') q;
ERROR: expected json array
HINT:
see the value of key "reca"
HINT:
See the value of key "reca".
SELECT reca FROM json_populate_record(NULL::jsrec, '{"reca": [1, 2]}') q;
ERROR: cannot call populate_composite on a scalar
SELECT reca FROM json_populate_record(NULL::jsrec, '{"reca": [{"a": "abc", "b": 456}, null, {"c": "01.02.2003", "x": 43.2}]}') q;
...
...
@@ -2043,7 +2043,7 @@ select * from json_to_record('{"ia": null}') as x(ia _int4);
select * from json_to_record('{"ia": 123}') as x(ia _int4);
ERROR: expected json array
HINT:
see the value of key "ia"
HINT:
See the value of key "ia".
select * from json_to_record('{"ia": [1, "2", null, 4]}') as x(ia _int4);
ia
--------------
...
...
@@ -2058,7 +2058,7 @@ select * from json_to_record('{"ia": [[1, 2], [3, 4]]}') as x(ia _int4);
select * from json_to_record('{"ia": [[1], 2]}') as x(ia _int4);
ERROR: expected json array
HINT:
see the array element [1] of key "ia"
HINT:
See the array element [1] of key "ia".
select * from json_to_record('{"ia": [[1], [2, 3]]}') as x(ia _int4);
ERROR: malformed json array
DETAIL: Multidimensional arrays must have sub-arrays with matching dimensions.
...
...
src/test/regress/expected/jsonb.out
View file @
821fb8cd
...
...
@@ -1984,7 +1984,7 @@ SELECT ia FROM jsonb_populate_record(NULL::jsbrec, '{"ia": null}') q;
SELECT ia FROM jsonb_populate_record(NULL::jsbrec, '{"ia": 123}') q;
ERROR: expected json array
HINT:
see the value of key "ia"
HINT:
See the value of key "ia".
SELECT ia FROM jsonb_populate_record(NULL::jsbrec, '{"ia": [1, "2", null, 4]}') q;
ia
--------------
...
...
@@ -1999,7 +1999,7 @@ SELECT ia FROM jsonb_populate_record(NULL::jsbrec, '{"ia": [[1, 2], [3, 4]]}') q
SELECT ia FROM jsonb_populate_record(NULL::jsbrec, '{"ia": [[1], 2]}') q;
ERROR: expected json array
HINT:
see the array element [1] of key "ia"
HINT:
See the array element [1] of key "ia".
SELECT ia FROM jsonb_populate_record(NULL::jsbrec, '{"ia": [[1], [2, 3]]}') q;
ERROR: malformed json array
DETAIL: Multidimensional arrays must have sub-arrays with matching dimensions.
...
...
@@ -2017,7 +2017,7 @@ SELECT ia1 FROM jsonb_populate_record(NULL::jsbrec, '{"ia1": null}') q;
SELECT ia1 FROM jsonb_populate_record(NULL::jsbrec, '{"ia1": 123}') q;
ERROR: expected json array
HINT:
see the value of key "ia1"
HINT:
See the value of key "ia1".
SELECT ia1 FROM jsonb_populate_record(NULL::jsbrec, '{"ia1": [1, "2", null, 4]}') q;
ia1
--------------
...
...
@@ -2038,7 +2038,7 @@ SELECT ia1d FROM jsonb_populate_record(NULL::jsbrec, '{"ia1d": null}') q;
SELECT ia1d FROM jsonb_populate_record(NULL::jsbrec, '{"ia1d": 123}') q;
ERROR: expected json array
HINT:
see the value of key "ia1d"
HINT:
See the value of key "ia1d".
SELECT ia1d FROM jsonb_populate_record(NULL::jsbrec, '{"ia1d": [1, "2", null, 4]}') q;
ERROR: value for domain jsb_int_array_1d violates check constraint "jsb_int_array_1d_check"
SELECT ia1d FROM jsonb_populate_record(NULL::jsbrec, '{"ia1d": [1, "2", null]}') q;
...
...
@@ -2070,7 +2070,7 @@ ERROR: malformed json array
DETAIL: Multidimensional arrays must have sub-arrays with matching dimensions.
SELECT ia2 FROM jsonb_populate_record(NULL::jsbrec, '{"ia2": [[1, 2], 3, 4]}') q;
ERROR: expected json array
HINT:
see the array element [1] of key "ia2"
HINT:
See the array element [1] of key "ia2".
SELECT ia2d FROM jsonb_populate_record(NULL::jsbrec, '{"ia2d": [[1, "2"], [null, 4]]}') q;
ERROR: value for domain jsb_int_array_2d violates check constraint "jsb_int_array_2d_check"
SELECT ia2d FROM jsonb_populate_record(NULL::jsbrec, '{"ia2d": [[1, "2", 3], [null, 5, 6]]}') q;
...
...
@@ -2120,7 +2120,7 @@ SELECT ta FROM jsonb_populate_record(NULL::jsbrec, '{"ta": null}') q;
SELECT ta FROM jsonb_populate_record(NULL::jsbrec, '{"ta": 123}') q;
ERROR: expected json array
HINT:
see the value of key "ta"
HINT:
See the value of key "ta".
SELECT ta FROM jsonb_populate_record(NULL::jsbrec, '{"ta": [1, "2", null, 4]}') q;
ta
--------------
...
...
@@ -2129,7 +2129,7 @@ SELECT ta FROM jsonb_populate_record(NULL::jsbrec, '{"ta": [1, "2", null, 4]}')
SELECT ta FROM jsonb_populate_record(NULL::jsbrec, '{"ta": [[1, 2, 3], {"k": "v"}]}') q;
ERROR: expected json array
HINT:
see the array element [1] of key "ta"
HINT:
See the array element [1] of key "ta".
SELECT c FROM jsonb_populate_record(NULL::jsbrec, '{"c": null}') q;
c
---
...
...
@@ -2158,7 +2158,7 @@ SELECT ca FROM jsonb_populate_record(NULL::jsbrec, '{"ca": null}') q;
SELECT ca FROM jsonb_populate_record(NULL::jsbrec, '{"ca": 123}') q;
ERROR: expected json array
HINT:
see the value of key "ca"
HINT:
See the value of key "ca".
SELECT ca FROM jsonb_populate_record(NULL::jsbrec, '{"ca": [1, "2", null, 4]}') q;
ca
-----------------------------------------------
...
...
@@ -2169,7 +2169,7 @@ SELECT ca FROM jsonb_populate_record(NULL::jsbrec, '{"ca": ["aaaaaaaaaaaaaaaa"]}
ERROR: value too long for type character(10)
SELECT ca FROM jsonb_populate_record(NULL::jsbrec, '{"ca": [[1, 2, 3], {"k": "v"}]}') q;
ERROR: expected json array
HINT:
see the array element [1] of key "ca"
HINT:
See the array element [1] of key "ca".
SELECT js FROM jsonb_populate_record(NULL::jsbrec, '{"js": null}') q;
js
----
...
...
@@ -2262,7 +2262,7 @@ SELECT jsa FROM jsonb_populate_record(NULL::jsbrec, '{"jsa": null}') q;
SELECT jsa FROM jsonb_populate_record(NULL::jsbrec, '{"jsa": 123}') q;
ERROR: expected json array
HINT:
see the value of key "jsa"
HINT:
See the value of key "jsa".
SELECT jsa FROM jsonb_populate_record(NULL::jsbrec, '{"jsa": [1, "2", null, 4]}') q;
jsa
--------------------
...
...
@@ -2293,7 +2293,7 @@ SELECT rec FROM jsonb_populate_record(NULL::jsbrec, '{"rec": "(abc,42,01.02.2003
SELECT reca FROM jsonb_populate_record(NULL::jsbrec, '{"reca": 123}') q;
ERROR: expected json array
HINT:
see the value of key "reca"
HINT:
See the value of key "reca".
SELECT reca FROM jsonb_populate_record(NULL::jsbrec, '{"reca": [1, 2]}') q;
ERROR: cannot call populate_composite on a scalar
SELECT reca FROM jsonb_populate_record(NULL::jsbrec, '{"reca": [{"a": "abc", "b": 456}, null, {"c": "01.02.2003", "x": 43.2}]}') q;
...
...
@@ -2423,7 +2423,7 @@ select * from jsonb_to_record('{"ia": null}') as x(ia _int4);
select * from jsonb_to_record('{"ia": 123}') as x(ia _int4);
ERROR: expected json array
HINT:
see the value of key "ia"
HINT:
See the value of key "ia".
select * from jsonb_to_record('{"ia": [1, "2", null, 4]}') as x(ia _int4);
ia
--------------
...
...
@@ -2438,7 +2438,7 @@ select * from jsonb_to_record('{"ia": [[1, 2], [3, 4]]}') as x(ia _int4);
select * from jsonb_to_record('{"ia": [[1], 2]}') as x(ia _int4);
ERROR: expected json array
HINT:
see the array element [1] of key "ia"
HINT:
See the array element [1] of key "ia".
select * from jsonb_to_record('{"ia": [[1], [2, 3]]}') as x(ia _int4);
ERROR: malformed json array
DETAIL: Multidimensional arrays must have sub-arrays with matching dimensions.
...
...
src/test/regress/expected/psql.out
View file @
821fb8cd
...
...
@@ -8,7 +8,7 @@
invalid variable name: "invalid/name"
-- fail: invalid value for special variable
\set AUTOCOMMIT foo
unrecognized value "foo" for "AUTOCOMMIT":
b
oolean expected
unrecognized value "foo" for "AUTOCOMMIT":
B
oolean expected
\set FETCH_COUNT foo
invalid value "foo" for "FETCH_COUNT": integer expected
-- check handling of built-in boolean variable
...
...
@@ -2939,7 +2939,7 @@ second thing true
\endif
-- invalid boolean expressions are false
\if invalid boolean expression
unrecognized value "invalid boolean expression" for "\if expression":
b
oolean expected
unrecognized value "invalid boolean expression" for "\if expression":
B
oolean expected
\echo 'will not print #6-1'
\else
\echo 'will print anyway #6-2'
...
...
src/test/regress/expected/rules.out
View file @
821fb8cd
...
...
@@ -2571,12 +2571,12 @@ drop view fooview;
create table fooview (x int, y text) partition by list (x);
create rule "_RETURN" as on select to fooview do instead
select 1 as x, 'aaa'::text as y;
ERROR: c
ould
not convert partitioned table "fooview" to a view
ERROR: c
an
not convert partitioned table "fooview" to a view
-- nor can one convert a partition to view
create table fooview_part partition of fooview for values in (1);
create rule "_RETURN" as on select to fooview_part do instead
select 1 as x, 'aaa'::text as y;
ERROR: c
ould
not convert partition "fooview_part" to a view
ERROR: c
an
not convert partition "fooview_part" to a view
--
-- check for planner problems with complex inherited UPDATES
--
...
...
src/test/regress/expected/stats_ext.out
View file @
821fb8cd
...
...
@@ -21,7 +21,7 @@ LINE 1: CREATE STATISTICS tst FROM sometab;
CREATE STATISTICS tst ON a, b FROM nonexistant;
ERROR: relation "nonexistant" does not exist
CREATE STATISTICS tst ON a, b FROM pg_class;
ERROR: column "a"
referenced in statistics
does not exist
ERROR: column "a" does not exist
CREATE STATISTICS tst ON relname, relname, relnatts FROM pg_class;
ERROR: duplicate column name in statistics definition
CREATE STATISTICS tst ON relnatts + relpages FROM pg_class;
...
...
@@ -29,7 +29,7 @@ ERROR: only simple column references are allowed in CREATE STATISTICS
CREATE STATISTICS tst ON (relpages, reltuples) FROM pg_class;
ERROR: only simple column references are allowed in CREATE STATISTICS
CREATE STATISTICS tst (unrecognized) ON relname, relnatts FROM pg_class;
ERROR: unrecognized statistic
type
"unrecognized"
ERROR: unrecognized statistic
s kind
"unrecognized"
-- Ensure stats are dropped sanely, and test IF NOT EXISTS while at it
CREATE TABLE ab1 (a INTEGER, b INTEGER, c INTEGER);
CREATE STATISTICS IF NOT EXISTS ab1_a_b_stats ON a, b FROM ab1;
...
...
src/test/regress/expected/triggers.out
View file @
821fb8cd
...
...
@@ -2255,7 +2255,7 @@ NOTICE: trigger = my_table_insert_trig, new table = <NULL>
create trigger my_table_multievent_trig
after insert or update on my_table referencing new table as new_table
for each statement execute procedure dump_insert();
ERROR:
T
ransition tables cannot be specified for triggers with more than one event
ERROR:
t
ransition tables cannot be specified for triggers with more than one event
drop table my_table;
--
-- Test firing of triggers with transition tables by foreign key cascades
...
...
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