| Commit message (Collapse) | Author | Age |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
see that this should be a worse way to fail to open a file than any other.
|
|
|
|
|
| |
userid in the flat password file. Do it enough times and the postmaster
panicked :-(
|
|
|
|
|
|
|
| |
Make all system indexes unique.
Make all cache loads use system indexes.
Rename *rel to *relid in inheritance tables.
Rename cache names to be clearer.
|
|
|
|
|
|
| |
for the case of errors in backend startup, and proc_exit's method for
coping with errors during proc_exit was *completely* busted. Fixed per
discussions on pghackers around 11/6/99.
|
|
|
|
|
| |
ReleaseRelationBuffers --- need to wait if anyone is trying to flush
out that buffer.
|
|
|
|
|
|
|
| |
it wants to release. This leads to a race condition: does the backend
that's trying to flush the buffer do so before the one that's deleting the
relation does so? Usually no problem, I expect, but on occasion this could
lead to hard-to-reproduce complaints from md.c, especially mdblindwrt.
|
|
|
|
|
|
|
|
|
| |
returns a list of RelOptInfos, eliminating the need for static state
in index_info. That static state was a direct cause of coredumps; if
anything decided to elog(ERROR) partway through an index_info search of
pg_index, the next query would try to close a scan pointer that was
pointing at no-longer-valid memory. Another example of the reasons to
avoid static state variables...
|
|
|
|
|
|
|
|
|
|
| |
of the index it wants to destroy. This ensures that no other backend is
actively scanning or updating that index. Getting exclusive access on
the index alone is NOT sufficient, because the executor is rather
cavalier about getting locks on indexes --- see ExecOpenIndices().
It might be better to grab index locks in the executor, but I'm not
sure the extra lockmanager traffic is really worth it just to make
index_destroy cleaner.
|
|
|
|
|
|
|
|
|
| |
(whoever thought world-writable files were a good default????). Modify
the pg_pwd code so that pg_pwd is created with 600 permissions. Modify
initdb so that permissions on a pre-existing PGDATA directory are not
blindly accepted: if the dir is already there, it does chmod go-rwx
to be sure that the permissions are OK and the dir actually is owned
by postgres.
|
|
|
|
|
|
|
| |
inval.c thought it could safely use the catcache to look up the OIDs of
system relations. Not good, considering that inval.c could be called
during catcache loading, if a shared-inval message arrives. Rip out the
lookup logic and instead use the known OIDs from pg_class.h.
|
|
|
|
|
|
|
|
| |
table defaults or rules: translate them to a function call so that
parse_coerce doesn't reduce them to a date or time constant immediately.
Also, eliminate a lot of redundancy in the expression grammar by
defining a new nonterminal com_expr, which contains all the productions
that can be shared by a_expr and b_expr.
|
|
|
|
| |
Jan
|
|
|
|
|
|
| |
compressed lztext data type.
Jan
|
| |
|
|
|
|
|
|
| |
HAVE the required OID's first.
Jan
|
|
|
|
| |
Jan
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Warn_restart has been set by the backend main loop. This means that
elog(ERROR) or elog(FATAL) in the postmaster or during backend startup
now have well-defined behavior: proc_exit() rather than coredump.
In the case of elog() inside the postmaster, I think that proc_exit()
is probably not enough --- don't we want our child backends to be
forced to quit too? But I don't understand Vadim's recent changes in
this area, so I'll leave it to him to look over and tweak if needed.
|
|
|
|
| |
Thanks to Tom Lane for ideas.
|
|
|
|
| |
This fix is reported by Hiroki Kataoka (kataoka@interwiz.koganei.tokyo.jp).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
subselects can only appear on the righthand side of a binary operator.
That's still true for quantified predicates like x = ANY (SELECT ...),
but a subselect that delivers a single result can now appear anywhere
in an expression. This is implemented by changing EXPR_SUBLINK sublinks
to represent just the (SELECT ...) expression, without any 'left hand
side' or combining operator --- so they're now more like EXISTS_SUBLINK.
To handle the case of '(x, y, z) = (SELECT ...)', I added a new sublink
type MULTIEXPR_SUBLINK, which acts just like EXPR_SUBLINK used to.
But the grammar will only generate one for a multiple-left-hand-side
row expression.
|
| |
|
| |
|
|
|
|
| |
versions of gmake.
|
| |
|
|
|
|
|
|
|
| |
nulls with non-nulls using proper three-valued boolean logic. Also clean
up ExecQual to make it clearer that ExecQual *does* follow the SQL spec
for boolean nulls. See '[BUGS] (null) != (null)' thread around 10/26/99
for more detail.
|
|
|
|
|
|
| |
Fewer calls to nameout.
Better use of RelationGetRelationName.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Now indexes of pg_class and pg_type are unique indexes
and guarantee the uniqueness of correponding attributes.
heap_create() was changed to take another boolean parameter
which allows to postpone the creation of disk file.
The name of rd_nonameunlinked was changed to rd_unlinked.
It is used generally(not only for noname relations) now.
Requires initdb.
|
|
|
|
|
|
| |
unreasonable amount of time to clean up after a vanished parser problem.
Don't call fireRIRonSubselect when we know there are no subselects,
either.
|
|
|
|
|
|
|
|
| |
Apparently, back in the dim reaches of prehistory, the parser couldn't
be trusted to label Const nodes with the correct constbyval value ...
and someone preferred to patch around this in copyObject rather than
fix the problem at the source. The problem is long gone, but the hack
lingered on. Until now.
|
| |
|
|
|
|
| |
indexes to open. Avoid unnecessary work in ExecCheckPerm, too.
|
|
|
|
| |
make_const --- don't repeat cache searches that aren't needed.
|
| |
|
|
|
|
| |
Thanks to Hiroshi
|
| |
|
|
|
|
|
|
|
| |
in the TupleDesc that the caller already has (for call from ExecMain) or
can make just as easily as ExecInitJunkFilter() can (for call from
ExecAppend). Also, don't bother to build a junk filter for an INSERT
operation that doesn't actually need one, which is the normal case.
|
|
|
|
|
| |
mdnblocks. Bad enough it does an lseek, but to do it twice for no
reason...
|
|
|
|
|
| |
that has no subplan --- saves a material amount of time for a simple
INSERT ... VALUES query.
|