Commit Graph

5906 Commits

Author SHA1 Message Date
Tom Lane 6b5d8e14b4 ReleaseRelationBuffers() failed to check for I/O in progress on a 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.
1999-11-22 01:19:42 +00:00
Tom Lane 610dfa6d55 Combine index_info and find_secondary_indexes into a single routine that
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...
1999-11-21 23:25:47 +00:00
Tom Lane 40d3e92541 index_destroy() must grab exclusive access to the parent table
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.
1999-11-21 20:01:10 +00:00
Tom Lane 3047b444e8 Clean up comments. 1999-11-21 19:56:12 +00:00
Tom Lane d8ba3dfb0b Change backend-side COPY to write files with permissions 644 not 666
(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.
1999-11-21 04:16:17 +00:00
Tom Lane 76ccf73f2b Repair problem exposed by Jan's new parallel-regression-test scaffold:
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.
1999-11-21 01:58:22 +00:00
Tom Lane 9ba0172f41 Tweak run_check.sh so it prints the name of each test in a parallel group
as that test finishes --- helps to give the impression that something is
happening...
1999-11-21 01:53:39 +00:00
Tom Lane 79f39c4d34 My latest fixes to gram.y cause CREATE TABLE t (f1 bool default 1 < 2)
to be accepted, but constraints regress test was expecting it to fail.
1999-11-20 21:41:31 +00:00
Tom Lane ea4ae10849 Fix problems with CURRENT_DATE and related functions being used in
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.
1999-11-20 21:39:36 +00:00
Tom Lane 3267e2978f Fix a couple of portability problems in Jan's first-cut parallel test
script.  This is way cool...
1999-11-20 20:21:31 +00:00
Jan Wieck 43499af4ab New parallel regression test shell and related things.
Jan
1999-11-19 18:51:52 +00:00
Bruce Momjian 58d1eeaafe Fix for arm32 and fix for dbname with dash. 1999-11-18 21:47:41 +00:00
Jan Wieck 73bfcf6b22 Changed pg_rewrite attributes ev_qual and ev_action to the new
compressed lztext data type.

Jan
1999-11-18 13:56:30 +00:00
Bruce Momjian 1276aef2f5 Fix problem with temp tables shown in regression test by Jan. 1999-11-17 23:51:21 +00:00
Jan Wieck 211ed36635 Some minor corrections to the LZ compression. In fact I wanted to
HAVE the required OID's first.

Jan
1999-11-17 22:18:46 +00:00
Jan Wieck 79c3b71c1b The new LZ compression and an lztext data type based on it.
Jan
1999-11-17 21:21:51 +00:00
Bruce Momjian ddc335290c Fix lookup of temp table names that I missed yesterday. 1999-11-16 16:55:28 +00:00
Tom Lane e1492cc34c Modify elog() logic so that it won't try to longjmp(Warn_restart) before
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.
1999-11-16 06:13:36 +00:00
Bruce Momjian dc5c7713bc Commit to make clearer distinction for temp names and real names.
Thanks to Tom Lane for ideas.
1999-11-16 04:14:03 +00:00
Tatsuo Ishii bf5d51e7fe Tree dividing is not appropriate in Rtree.
This fix is reported by Hiroki Kataoka (kataoka@interwiz.koganei.tokyo.jp).
1999-11-15 09:59:00 +00:00
Tom Lane c8c3e07e58 Clean up possible memory leakage in nodeSubplan 1999-11-15 03:28:07 +00:00
Tom Lane f68e11f373 Implement subselects in target lists. Also, relax requirement that
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.
1999-11-15 02:00:15 +00:00
Tom Lane 1ecb129d20 Update sanity_check regress test to pass now that pg_index
and pg_amop have indexes.
1999-11-15 01:48:41 +00:00
Tom Lane a5150dc658 Fix typo so it actually compiles... 1999-11-14 19:01:04 +00:00
Bruce Momjian 7a203a3f02 Add recreate index notice to vacuum error. 1999-11-14 17:27:01 +00:00
Tom Lane fb9448decc Tweak make rules for parse.h and fmgr.h to avoid bug in old
versions of gmake.
1999-11-14 17:12:42 +00:00
Bruce Momjian 103022c339 Add index recreation suggestion to end of world error message. 1999-11-14 16:22:59 +00:00
Bruce Momjian 106ded2a6e Update TODO list. 1999-11-14 05:11:02 +00:00
Bruce Momjian e61e4d460c Fix for psql control-d and .psqlrc that I broke. Fix for \dT with
descriptions enabled.
1999-11-13 19:16:47 +00:00
Bruce Momjian db12a63ef1 The \p\g fix didn't turn out to be so bad. It even works in other
circumstances:
=> select * from foo\x\t\pset border 0 \p\g\\select * from bar;

Also the release prep update so the sql_help.h is generated before
packaging.

Peter.
1999-11-13 02:04:54 +00:00
Bruce Momjian d286f13b47 Update NT readme with new name. 1999-11-12 17:05:08 +00:00
Tom Lane ac61a04a71 Fix ExecSubPlan to handle nulls per the SQL spec --- it didn't combine
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.
1999-11-12 06:39:34 +00:00
Bruce Momjian 6b99fcf3e2 Update for documentation in libpq changes. 1999-11-11 21:52:28 +00:00
Bruce Momjian 2a24ec6f16 In the spirit of TODO item
* Add use of 'const' for varibles in source tree
(which is misspelled, btw.)
I went through the front-end libpq code and did so. This affects in
particular the various accessor functions (such as PQdb() and
PQgetvalue()) as well as, by necessity, the internal helpers they use.

I have been really thorough in that regard, perhaps some people will find
it annoying that things like
char * foo = PQgetvalue(res, 0, 0)
will generate a warning. On the other hand it _should_ generate one. This
is no real compatibility break, although a few clients will have to be
fixed to suppress warnings. (Which again would be in the spirit of the
above TODO.)

In addition I replaced some int's by size_t's and removed some warnings
(and generated some new ones -- grmpf!). Also I rewrote PQoidStatus (so it
actually honors the const!) and supplied a new function PQoidValue that
returns a proper Oid type. This is only front-end stuff, none of the
communicaton stuff was touched.


The psql patch also adds some new consts to honor the new libpq situation,
as well as fixes a fatal condition that resulted when using the -V
(--version) option and there is no database listening.


So, to summarize, the psql you should definitely put in (with or without
the libpq). If you think I went too far with the const-mania in libpq, let
me know and I'll make adjustments. If you approve it, I will also update
the docs.

        -Peter

--
Peter Eisentraut                  Sernanders vaeg 10:115
1999-11-11 00:10:14 +00:00
Bruce Momjian c6c60302ba Cleanup of psql \copyright 1999-11-10 01:22:37 +00:00
Bruce Momjian b2c55a02b1 psql makefile fix from Keith Parks 1999-11-08 15:59:59 +00:00
Bruce Momjian 86ef36c907 New NameStr macro to convert Name to Str. No need for var.data anymore.
Fewer calls to nameout.

Better use of RelationGetRelationName.
1999-11-07 23:08:36 +00:00
Bruce Momjian df723a8a8a exit recursion fix from Massimo 1999-11-06 19:46:57 +00:00
Bruce Momjian 17d819c093 Fix for recusive exit call from Massimo. 1999-11-06 17:01:29 +00:00
Bruce Momjian 32edd98519 Update TODO list. 1999-11-06 16:55:05 +00:00
Bruce Momjian a9ade930da Sort help file names, from Peter Eisentraut 1999-11-06 16:49:06 +00:00
Bruce Momjian 0fe4a20891 Add Linux ARM. 1999-11-06 01:55:44 +00:00
Bruce Momjian 5e3189eaff Update psql banner 1999-11-05 18:21:09 +00:00
Bruce Momjian e9a5030977 Update TODO list. 1999-11-05 16:38:54 +00:00
Bruce Momjian f793ac0a16 Update psql display. 1999-11-05 15:44:57 +00:00
Tom Lane 3b004b8e2e environment variable set by MULTIBYTE startup code should be
stored in malloc'd space, not in a static variable.  Otherwise environment
variable list is corrupted if libpq is dynamically unlinked...
1999-11-05 06:43:45 +00:00
Bruce Momjian 3d1db6ddc6 Update \? display. 1999-11-05 02:12:59 +00:00
Bruce Momjian 200e183254 Make pager on by default. 1999-11-05 01:38:58 +00:00
Bruce Momjian f0a45ccd0a Clean up \? psql display. 1999-11-05 01:25:39 +00:00
Bruce Momjian 83c30df0e9 Update TODO list. 1999-11-05 01:04:59 +00:00