git.postgresql.org Git - postgresql.git/log
Tom Lane [2000年5月26日 01:26:19 +0000 (01:26 +0000)]
After closing frontend socket, set MyProcPort->sock = -1 to ensure that
subsequent I/O attempts fail cleanly. I'm speculating about failure
scenarios in which we do pq_close, then something in a proc_exit routine
opens a file (re-using that kernel FD number), then something else
fails and tries to write an elog message to the frontend ... message
ends up in opened file, oops. No known examples of this but it seems
like a potential hole.
Tom Lane [2000年5月25日 23:30:20 +0000 (23:30 +0000)]
Add some elog(DEBUG)'s to help diagnose mdblindwrt failures.
Tom Lane [2000年5月25日 22:43:12 +0000 (22:43 +0000)]
Clean up sloppy coding of _outAExpr().
Tom Lane [2000年5月25日 22:42:19 +0000 (22:42 +0000)]
Modify raw parsetree representation returned by gram.y for SubLinks:
the oper field should be a valid Node structure so it can be dumped by
outfuncs.c without risk of coredump. (We had been using a raw pointer
to character string, which surely is NOT a valid Node.) This doesn't
cause any backwards compatibility problems for stored rules, since
raw unanalyzed parsetrees are never stored.
Tom Lane [2000年5月25日 21:30:20 +0000 (21:30 +0000)]
Do table renaming in a sane order: physical file rename must happen
*last*, after all updating of system catalogs. In old code, an error
detected during TypeRename left the relation hosed. Also, add a call
to flush the relation's relcache entry, rather than trusting to shared
cache invalidation to flush it for us.
Tom Lane [2000年5月25日 21:25:32 +0000 (21:25 +0000)]
heap_drop() should flush the relcache entry for the
relation being dropped.
Tom Lane [2000年5月25日 20:18:15 +0000 (20:18 +0000)]
Quote database name so that not-all-lowercase names are handled safely.
! * Users doing non-blocking connections need to handle the reset
! * themselves, they'll need to check the connection status if we
! * return an error.
Alfred Perlstein
Update TODO list.
Spell fix
On solaris, createdb/dropdb fails because of strange behavior of system().
(it returns error with errno ECHILD upon successful completion of commands).
This fix ignores an error from system() if errno == ECHILD.
Tom Lane [2000年5月24日 22:43:59 +0000 (22:43 +0000)]
Make the world safe for QNX's busted shell ...
Tom Lane [2000年5月24日 22:32:59 +0000 (22:32 +0000)]
Make the world safe for QNX's busted shell ...
add a --with-setproctitle switch to configure that leaves the use of setproctitle()
disabled by default ...
Update so init displays status with setproctitle too, like the rest of them.
Make setproctitle update for every query.
Comment out no-op ps updates for setproctitle(), until we figure out
what to do.
comment cleanup
pg_ctl does not use -S by default anymore so update documentation
Tom Lane [2000年5月23日 16:56:37 +0000 (16:56 +0000)]
Fix problem in which sloppily-coded test in ExecInitIndexScan would
think that both sides of indexqual look like index keys. An example is
create table inside (f1 float8 primary key);
create table outside (g1 float8, g2 float8);
select * from inside,outside where f1 = atan2(g1+1, g2);
ERROR: ExecInitIndexScan: both left and right ops are rel-vars
(note that failure is potentially platform-dependent). Solution is a
cleanup I had had in mind to make anyway: functional index keys should
be represented as Var nodes in the fixed indexqual, just like regular
index keys.
Tom Lane [2000年5月23日 04:55:44 +0000 (04:55 +0000)]
Twiddle C++ configuration checks so that we #include <string> (if
it exists) before testing 'using namespace std'. This is necessary
on some C++ setups where the compiler won't take a 'using' until
you've included a header that mentions namespace std. (Pretty braindead
if you ask me, but...)
Tom Lane [2000年5月23日 02:12:46 +0000 (02:12 +0000)]
Transmit -I switches selected by configure (particularly those from
--with-includes) to makefiles for pltcl and plperl, so that these
switches will be used even though we do not want other top-level
CFLAGS. Ain't it fun trying to support multiple-compiler platforms?
Tom Lane [2000年5月23日 01:59:05 +0000 (01:59 +0000)]
Cast parameters to ckfree to (char *) to suppress compiler warnings.
Irix fixes from Murad Nayal
Reformatted the install file as it used to be
Cleanup
I am attempting to integrate postgres (v 7.0) with an open source
project I am working on (Recall - a distributed, fault-tolerant,
replicated, storage framework @ http://www.fault-tolerant.org).
Recall is written in C++. I need to include the postgres headers and
there are some problems when including the headers w/C++.
Attached is a patch generated from postgres/src that fixes my problems.
I was hoping to get this into the main source. It's very small (2k) and
3 files are changed: backend/utils/fmgr/fmgr.c,
backend/utils/Gen_fmgrtab.sh.in, and include/access/tupdesc.h.
In C++, you get a multiply defined symbol because the variable
(FmgrInfo *fmgr_pl_finfo) is defined in the header (the patch moves it
to the .c file). The other problem in tupdesc.h is the use of typeid
is a problem in c++ (I renamed it to oidtypeid).
Thanks,
Neal Norwitz
Tom Lane [2000年5月21日 21:19:53 +0000 (21:19 +0000)]
Remove calls to getprotobyname(), which we now know leaks memory on
some platforms --- and I also see that it is documented as not thread-
safe on HPUX and possibly other platforms. No good reason not to just
use IPPROTO_TCP constant from <netinet/in.h> instead.
Tom Lane [2000年5月21日 02:28:55 +0000 (02:28 +0000)]
Repair memory leaks that caused CacheCxt to grow without bound. We
really ought to fix relcache entry construction so that it does not
do so much with CurrentMemoryContext = CacheCxt. As is, relatively
harmless leaks in either sequential or index scanning translate to
permanent leaks if they occur when called from relcache build.
For the moment, however, the path of least resistance is to repair
all such leaks...
Tom Lane [2000年5月21日 02:23:30 +0000 (02:23 +0000)]
Add debug code to aid in memory-leak tracking: if SHOW_MEMORY_STATS is
defined then statistics about memory usage of all the global memory
contexts are printed after each commit.
Tom Lane [2000年5月20日 23:11:29 +0000 (23:11 +0000)]
Clean up grotty references to CacheCxt (externs inside functions,
duplicate global declarations, no points for style at all!)
Multibyte documentations update
Enhance multibyte support.
SJIS UDC (NEC selection IBM kanji) support contributed by Eiji Tokuya
Add KEEPALIVE option to the socket of backend. This will automatically
terminate the backend that has no frontend anymore.
Update rules man pages.
Clean up sql functions examples.
Update TODO list.
Tom Lane [2000年5月19日 23:00:00 +0000 (23:00 +0000)]
pg_dump barfs on negative values for index column numbers --- like, say,
an index on a table's OID column. Mea maxima culpa ... but how'd we get
through beta with no one noticing this?
Update TODO list.
Tom Lane [2000年5月19日 03:22:31 +0000 (03:22 +0000)]
Revise FlushRelationBuffers/ReleaseRelationBuffers per discussion with
Hiroshi. ReleaseRelationBuffers now removes rel's buffers from pool,
instead of merely marking them nondirty. The old code would leave valid
buffers for a deleted relation, which didn't cause any known problems
but can't possibly be a good idea. There were several places which called
ReleaseRelationBuffers *and* FlushRelationBuffers, which is now
unnecessary; but there were others that did not. FlushRelationBuffers
no longer emits a warning notice if it finds dirty buffers to flush,
because with the current bufmgr behavior that's not an unexpected
condition. Also, FlushRelationBuffers will flush out all dirty buffers
for the relation regardless of block number. This ensures that
pg_upgrade's expectations are met about tuple on-row status bits being
up-to-date on disk. Lastly, tweak BufTableDelete() to clear the
buffer's tag so that no one can mistake it for being a still-valid
buffer for the page it once held. Formerly, the buffer would not be
found by buffer hashtable searches after BufTableDelete(), but it would
still be thought to belong to its old relation by the routines that
sequentially scan the shared-buffer array. Again I know of no bugs
caused by that, but it still can't be a good idea.
Tom Lane [2000年5月19日 02:50:32 +0000 (02:50 +0000)]
Correct busted syntax of CC invocation for tas.s.
Unset PGHOST
Change remove function warning for built-ins.
Use postmaster -i only on certain platforms.
Throw NOTICE on built-in function removal
Add QNX localhost flag to regression tests
Fix WARN->NOTICE in docs. Change libpgeasy connection parameters to use
PQconnectdb() style connections.
Tom Lane [2000年5月18日 01:52:45 +0000 (01:52 +0000)]
Reduce COPY IN lock from AccessExclusive to a more reasonable
RowExclusive (my fault). Also, install a check to prevent people
from trying COPY BINARY to stdout/from stdin. No way that will
work unless we redesign the frontend COPY protocol ... which is
not worth the trouble in the near future ...
Update trigger.sgml
Clean up trigger sgml docs.
The check of class string in configure (line 1732) fails because this class
is in <string> and not in <string.h> on QNX4/egcs-2.91.60.
Probably this can be changed for all platforms. The test in line 1705 uses
<string> as well. Because I am not sure, I havn't this included into the
patch.
doc/Makefile has to be sligthly modified as it has been done for
src/backend/Makefile due to a QNX4 problem (patch attached)
Furthermore src/test/regress/run_check.sh needs to be patched as it has been
done for regress.sh (patch attached). Please note that in the patch the
postmaster is started always with the -i option.
run_check.sh reports the test "limit" as failed, but in reallity it is OK.
regress.sh reports it as OK.
Andreas Kardos
Back out odbc changes until 7.1.
*** empty log message ***
Change plpgsql example from SELECT * INTO rec to SELECT INTO rec *.
Fix typo
Several compilation and run-time problems occur when building on SGI
IRIX systems using the native compilers. A summary is:
- Various files use "//" as a comment delimiter in c files.
- Problems caused by assuming "char" is signed.
cash.in: building -signed the rules regression test fails as described
in FAQ_QNX4. If CHAR_MAX is "255U" then ((signed char)CHAR_MAX) is -1.
postmaster.c: random number regression test failed without this change.
- Some generic build issues and warning message cleanup.
David Kaelbling
Cleanup plpgsql man page typo
The old init file won't run under bash on my box.
Joseph Shraibman
Tom Lane [2000年5月16日 02:14:15 +0000 (02:14 +0000)]
Remove configure check for how to abbreviate 'tr A-Z a-z', and instead
just use the portable form,
tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
There were a bunch of places that weren't paying attention to configure's
result anyway (including configure itself!?); clean them up too.
Fixed the message Makefile produces after compiling. It still said
about the old Driver class, not the new package. Spotted by
Joseph Shraibman <jks@p1.selectacast.net>
cleanup
cleanup
Fix createlang -l dbname so it works, update sgml.
Add mention of lo_unlink to manual
*** empty log message ***
Fix atan3-> atan2.
That psql option should be --no-readline (as it used to be), not --noreadline.
Remove array file, per Tom Lane.
Remove arrays file, already have array file.
Finally fix LISTEN problem.
Back out listen fix.
Update TODO list.
Update bug template.
Fix create user for pgaccess.
Tom Lane [2000年5月13日 06:04:46 +0000 (06:04 +0000)]
Tweak selectivity for area-based operators. Still a crock...
Fix the off by one errors in ResultSet from 6.5.3, and more.
I'm including a diff of
postgresql-7.0/src/interfaces/jdbc/org/postgresql/jdbc2/ResultSet.java.
I've clearly marked all the fixes I did. Would *someone* who has access
to the cvs please put this in?
Joseph Shraibman
This is the second time I've answered this exact same problem in two
days. It seems to be a FAQ, and I think I know why. When creating a 'c'
language function, CREATE FUNCTION is fed the shared object filename,
and seems to succeed. Only when trying to use the function is an error
thrown, by which time the coder thinks something's wrong with executing
the code, not with loading it.
I think I once saw it proposed to load shared objects at function creation
time, but that idea was shot down on the grounds of resident memory bloat,
ISTR. Here's a patch for a compromise: all it does is stat() the file,
just like the loader code does, so that the errors caused by non existent
files, and no directory 'x' permissions (the most common ones, it seems),
get caught while the developer is still thinking about code loading. It
doesn't catch all errors (like the code not being readable by the postgres
user) but seems to catch the most common, without actually opening the file.
What do you think?
Ross
Update TODO list.
Remove cluster TODO e-mail file
Back out -\?. Didn't look good to Peter.
/home/peter/commit-msg
Tom Lane [2000年5月12日 16:10:09 +0000 (16:10 +0000)]
Squash some more CLUSTER bugs. Never has worked on multiple-column
indexes, apparently, nor on functional indexes with more than one input
column (force of natts = 1 was in the wrong branch of IF statement).
Coredumped if source relation contained any uncommitted tuples, due to
failure to test for success return from heap_fetch. Fetched tuple
was passed directly to heap_insert, which clobbers the TID and commit
status in the tuple header it's given, which meant that the source
relation's tuples all got trashed as the copy proceeded. Abort partway
through, and you're left with a lot of missing tuples.
I wonder what else is lurking here ...
this fixes the bug where setting the entry in he process table no longer works
under FreeBSD ... basically, if setproctitle() exists, use it ...
the draw back right now is the PS_SET_STATUS stuff doesn't work, but am looking
into that one right now ... at lesat now you can see who is connecting where
and from where ...
Add two checks ... one for setproctitle and one for -lutil ...
Don't do anything with them at this time, but am working on that ...
Update TODO list.
Update TODO list.
Tom Lane [2000年5月12日 01:33:56 +0000 (01:33 +0000)]
Repair list-vs-node confusion that resulted in failure for INNER JOIN ON.
Make it behave correctly when there are more than two tables being
joined, also. Update regression test expected outputs.
Small cleanup of file.
More psql help cleanup
Makefile CFLAGS cleanups.
Update SGML for FETCH and url's.
Fix url reference with missing fields.
Reported by Adrian Oboroc <aoboroc@btr.md>.
Oops, plpgsql didn't have the datetime->timestamp and timespan->interval
mappings. In fact, it had them backward because it was using the 6.5.*
code. Copied them from parser/gram.y, so it is fixed now. Looks like
our first 7.0.1 fix. Oops, seems Tom has beat me to it as I was typing
this.
Tom Lane [2000年5月11日 03:54:18 +0000 (03:54 +0000)]
Fix CLUSTER ... or at least undo the bit-rot it's suffered since 6.5.
It's still pretty fundamentally bogus :-(.
Freebie side benefit: ALTER TABLE RENAME works on indexes now.
Display -? as -\? under unix for psql.
Add options and cleanup psql \? and -? help displays
Update psql \? to show file rather than "fname".
Fix psql quotes in docs.
More single-quote fixes.
Add single quote.
This is the main PostgreSQL git repository.
RSS
Atom