summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
1999-06-16CleanupBruce Momjian
1999-06-14Undo Jan's typo that broke regress.sh's detection of systemREL6_5Tom Lane
type name.
1999-06-13change #if defined(__mc68000__) to:Tatsuo Ishii
#if defined(__mc68000__) && defined(__linux__) so that other m68k systems(such as NetBSD) will not be affected.
1999-06-12Move default NBuffers setting into config.h, and rename itTom Lane
to DEF_NBUFFERS for readability. Make sure the default value is OK according to postmaster.c's new sanity check for -B values.
1999-06-12Fix critical error noticed by Massimo: copy.c used to have aTom Lane
special hack to ensure it would close its output file even after failure due to elog(ERROR) partway through the copy. This is now unnecessary because fd.c takes care of cleaning up open files at transaction abort; worse, after fd.c closed the file copy.c would try to do so *again* at the start of the next COPY command. This would result in havoc in most implementations of stdio library.
1999-06-12Remove query_planner's overhasty rejection of cases whereTom Lane
tlist and qual are NULL. It ought to handle these the same as the cases where tlist contains only constant expressions, ie, be willing to generate a Result-node plan. This did not use to matter, but it does now because union_planner will flatten the tlist when aggregates are present. Thus, 'select count(1) from table' now causes query_planner to be given a null tlist, and to duplicate 6.4's behavior we need it to give back a Result plan rather than refusing the query. 6.4 was arguably doing the Wrong Thing for this query, but I'm not going to open a semantics issue right before 6.5 release ... can revisit that problem later.
1999-06-12Plug hole in dike: planner would coredump if query_plannerTom Lane
returned NULL, which it will do in some cases where an elog(ERROR) would probably be more appropriate. For the moment, generate a not-very- informative error message rather than proceeding to certain coredump. Probably ought to think about making query_planner elog instead of returning NULL, but this is at least a safe change for now.
1999-06-12When targetlist is NULL, ExecTargetList was passing back aTom Lane
pointer to palloc'd but uninitialized memory. This is not cool; anyone looking at the returned 'tuple' would at best coredump and at worst behave in a bizarre and irreproducible way. Fix it to return a predictable value, namely a correctly-set-up palloc'd tuple containing zero attributes. I believe this fix is both safe and critical.
1999-06-12Reversed out Massimo patch.Bruce Momjian
1999-06-12I don't like last minute patches before the final freeze, but I believe thatBruce Momjian
this one could be useful for people experiencing out-of-memory crashes while executing queries which retrieve or use a very large number of tuples. The problem happens when storage is allocated for functions results used in a large query, for example: select upper(name) from big_table; select big_table.array[1] from big_table; select count(upper(name)) from big_table; This patch is a dirty hack that fixes the out-of-memory problem for the most common cases, like the above ones. It is not the final solution for the problem but it can work for some people, so I'm posting it. The patch should be safe because all changes are under #ifdef. Furthermore the feature can be enabled or disabled at runtime by the `free_tuple_memory' options in the pg_options file. The option is disabled by default and must be explicitly enabled at runtime to have any effect. To enable the patch add the follwing line to Makefile.custom: CUSTOM_COPT += -DFREE_TUPLE_MEMORY To enable the option at runtime add the following line to pg_option: free_tuple_memory=1 Massimo
1999-06-11Hi,Bruce Momjian
please apply the included patch. It corrects the headers in src/win32 - there are some missing #endif. Dan
1999-06-11add m86 similar entries.Bruce Momjian
1999-06-11Change Assert(Ptp.t_data->t_xmax == tp.t_data->t_xmin) to :Vadim B. Mikheev
/* * Read above about cases when !ItemIdIsUsed(Citemid) * (child item is removed)... Due to the fact that * at the moment we don't remove unuseful part of * update-chain, it's possible to get too old * parent row here. Like as in the case which * caused this problem, we stop shrinking here. * I could try to find real parent row but want * not to do it because of real solution will * be implemented anyway, latter, and we are too * close to 6.5 release. - vadim 06/11/99 */ if (Ptp.t_data->t_xmax != tp.t_data->t_xmin) ...
1999-06-11Removed bad Assert(!buf->ri_lock) when unlocking exclusivelyVadim B. Mikheev
locked buffer.
1999-06-11More about chained mode and isolation.Vadim B. Mikheev
1999-06-11Change mdtruncate to truncate and not unlink.Bruce Momjian
Hiroshi Inoue
1999-06-10This patch should enable 6.5 to build on Motorola 68000 architecture.Bruce Momjian
It comes from Roman Hodek <Roman.Hodek@informatik.uni-erlangen.de>.
1999-06-10*** empty log message ***Michael Meskes
1999-06-10Added 2 regression tests for NUMERIC data type.Jan Wieck
1. Using 100 digits after decimal point on the default make runtest. 2. Using 1000 digits after decimal point in a new target make bigtest. At the end of 'make runtest', a hint about the new bigtest is printed. Jan
1999-06-101. Fix for elog(ERROR, "EvalPlanQual: t_xmin is uncommitted ?!")Vadim B. Mikheev
and possibly for other cases too: DO NOT cache status of transaction in unknown state (i.e. non-committed and non-aborted ones) Example: T1 reads row updated/inserted by running T2 and cache T2 status. T2 commits. Now T1 reads a row updated by T2 and with HEAP_XMAX_COMMITTED in t_infomask (so cached T2 status is not changed). Now T1 EvalPlanQual gets updated row version without HEAP_XMIN_COMMITTED -> TransactionIdDidCommit(t_xmin) and TransactionIdDidAbort(t_xmin) return FALSE and T2 decides that t_xmin is not committed and gets ERROR above. It's too late to find more smart way to handle such cases and so I just changed xact status caching and got rid TransactionIdFlushCache() from code. Changed: transam.c, xact.c, lmgr.c and transam.h - last three just because of TransactionIdFlushCache() is removed. 2. heapam.c: T1 marked a row for update. T2 waits for T1 commit/abort. T1 commits. T3 updates the row before T2 locks row page. Now T2 sees that new row t_xmax is different from xact id (T1) T2 was waiting for. Old code did Assert here. New one goes to HeapTupleSatisfiesUpdate. Obvious changes too. 3. Added Assert to vacuum.c 4. bufmgr.c: break Assert(buf->r_locks == 0 && !buf->ri_lock) into two Asserts.
1999-06-10Fix errors in SELECT ... GROUP BY ... UNION SELECT ...Tom Lane
ye proverbial one-line patch (not counting five lines of comment so's maybe it won't happen again)
1999-06-09Remove -O2 for linux/alpha, make -O.Bruce Momjian
1999-06-09Reset evaluation plan tuple table next free slot counter to 0Vadim B. Mikheev
after ExecEndNode. It must be done! Or we'll be out of free tuple slots very soon, though slots are freed by ExecEndNode and ready for reusing. We didn't see this problem before because of int nSlots = ExecCountSlotsNode(plan); TupleTable tupleTable = ExecCreateTupleTable(nSlots + 10); /* why add ten? - jolly */ code in InitPlan - i.e. extra 10 slots. Simple select uses 3 slots and so it was possible to re-use evaluation plan 3 additional times and didn't get elog(NOTICE, "Plan requires more slots than are available"); elog(ERROR, "send mail to your local executor guru to fix this"); Changes are obvious and shouldn't be problems with them. Though, I added Assert(epqstate->es_tupleTable->next == 0) before EvalPlanQual():ExecInitNode and we'll notice if something is still wrong. Is it better to change Assert to elog(ERROR) ?
1999-06-09MVCC updates.Vadim B. Mikheev
1999-06-08Linux-alpha gets -OBruce Momjian
1999-06-08Remove optimization on linux/alpha.Bruce Momjian
1999-06-08CleanupBruce Momjian
1999-06-08Disable pg_upgrade for 6.5.Bruce Momjian
1999-06-07I attach a patch for pg_upgrade. This does two things:Bruce Momjian
1. check whether the program is being executed in $PGDATA/.. This is necessary if the data tree is not in the standard place, as is the case with the Debian distribution (because of Debian policy). 2. give a clearer error message if the dumped data structure fails to be loaded. Oliver Elphick
1999-06-07On AIX 4.3.2 the third line in template/aix_42:Bruce Momjian
SHARED_LIB: needs to be changed to: SHARED_LIB:-lc I think this was also needed on AIX 4.2. Comments Please !! If nobody objects, I suggest to make this change, since it cannot break AIX 4.2 and is necessary on AIX 4.3 Andreas
1999-06-07Concurrency... Highest one...Vadim B. Mikheev
DO NOT EVEN TRY TO DO PageGetMaxOffsetNumber BEFORE LockBuffer! -:)
1999-06-07> Here is a small patch that should only affect win32 buildingBruce Momjian
> (native win32, not cygnus). > It does the following: > Patches two win32.mak files to DEFINE HAVE_VSNPRINTF and > HAVE_STRDUP. This is required to build at all. > Bumps the version number on libpq.dll from 6.4 to 6.5. > Required for install programs to work. > Adds defintions for BLCKSZ and MAXIMUM_ALIGN to "win32.h" in > the client-side libpiq directory. > > All these files are only used when building on native win32, > so it should be safe I think. > > Again, really sorry to throw this in so late, but I would > hate to do the same thing as with 6.4 (which required 6.4.1 > to at all compile on Win32). > > Thanks, > > //Magnus
1999-06-07Repair recently-introduced error in makeIndexable for LIKE:Tom Lane
a non-leading % would be put into the >=/<= patterns. Also, repair longstanding confusion about whether %% means a literal %%. The SQL92 doesn't say any such thing, and textlike() knows that, but gram.y didn't.
1999-06-07Have to release meta page before reading root one!Vadim B. Mikheev
< 6.5 versions were just not affected by this bug due to locking.
1999-06-061. xact.c: update comments about changing MyProc->xid and MyProc->xmin.Vadim B. Mikheev
2. varsup.c:ReadNewTransactionId(): don't read nextXid from disk - this func doesn't allocate next xid, so ShmemVariableCache->nextXid may be used (but GetNewTransactionId() must be called first). 3. vacuum.c: change elog(ERROR, "Child item....") to elog(NOTICE) - this is not ERROR, proper handling is just not implemented, yet. 4. s_lock.c: increase S_MAX_BUSY by 2 times. 5. shmem.c:GetSnapshotData(): have to call ReadNewTransactionId() _after_ SpinAcquire(ShmemIndexLock).
1999-06-06equal() needs a case for Aggref nodes, as shown by:Tom Lane
regression=> select sum(q1) from int8_tbl group by q2 order by sum(q1); NOTICE: equal: don't know whether nodes of type 107 are equal
1999-06-06Add a regression test case to catch breakage of GROUP BYTom Lane
and aggregate functions in queries that use inheritance.
1999-06-06Fix problems with grouping/aggregation in queries that useTom Lane
inheritance ... basically it was completely busted :-(
1999-06-06I used bad style of comments and ... commented out some code inVadim B. Mikheev
EvalPlanQualNext() when implemented it... -:) Uncommented...
1999-06-05Instead of failing when the constructed name for a sequence,Tom Lane
index, etc is too long, truncate until it fits.
1999-06-05Remove redeclarations of default parameter values fromTom Lane
PgDatabase::DisplayTuples and PgDatabase::PrintTuples. This is incorrect according to strict interpretation of the C++ spec, and some compilers will reject it. Also silence g++ warning about unused parameter.
1999-06-05a fix for Win32 support provided by yutaka@marin.or.jp.Tatsuo Ishii
The patch will avoid to add .exe suffix to the pg_encoding binary.
1999-06-05trace.patch (compilation error)Marc G. Fournier
the gettimeofday doesn't compile under Linux with glibc2 because the DST_NONE constant is no more defined. It seems that this code (written by me) has always be wrong but for some reason working. From: Massimo Dal Zotto <dz@cs.unitn.it>
1999-06-05man.patch (make inconsistency)Marc G. Fournier
the default target is 'install' instead of 'all'. So if you do a make without target you actually do a make install, which is not what one normally expects from a standard makefile. From: Massimo Dal Zotto <dz@cs.unitn.it>
1999-06-05ecpg.patch (wrong makefile expansion in some cases)Marc G. Fournier
the ecpg Makefiles use a variable DESTDIR which is never defined except by debian/rules makefile, in which case the ecpg makefiles expand wrong pathnames. If we want to support a DESTDIR root it must be done consistently in all the makefiles, not just in ecpg. From: Massimo Dal Zotto <dz@cs.unitn.it>
1999-06-04Suppress indexes on large objects from psql's \d listing;Tom Lane
they were confusing because the large object tables themselves are not shown. (Besides, if you've got hundreds or thousands of large objects, you really don't want to see 'em at all.) Also, suppress all indexes from the \z ACL listing, since indexes have no meaningful protection information.
1999-06-04Add startup-time check that -B is not unreasonably small forTom Lane
given number of backends (-N), per recent discussion in pghackers list.
1999-06-04Add configurable option controlling security checks in LO functions.Tom Lane
1999-06-04Turns out OIDNAMELEN wasn't really being used at all!Tom Lane
Get rid of it to make customization of NAMEDATALEN easier.
1999-06-04Add mention of SHARE ROW EXCLUSIVE mode.Bruce Momjian