Commit Graph

3291 Commits

Author SHA1 Message Date
Tom Lane cbdaa27f97 Repair missing MEMORY_CONTEXT_CHECKING logic for realloc().
Doesn't anyone around here run regression tests before submitting
patches, or before committing them?
2000-07-12 05:15:20 +00:00
Tom Lane badce86a2c First stage of reclaiming memory in executor by resetting short-term
memory contexts.  Currently, only leaks in expressions executed as
quals or projections are handled.  Clean up some old dead cruft in
executor while at it --- unused fields in state nodes, that sort of thing.
2000-07-12 02:37:39 +00:00
Bruce Momjian 46fb9c29e2 Here is the patch with memory leak checker. This checker allow detect
in-chunk leaks, overwrite-next-chunk leaks and overwrite block-freeptr leaks.

A in-chunk leak --- if something overwrite space after wanted (via palloc()
size, but it is still inside chunk. For example

        x = palloc(12);         /* create 16b chunk */
        memset(x, '#', 13);

this leak is in the current source total invisible, because chunk is 16b and
leak is in the "align space".

 For this feature I add data_size to StandardChunk, and all memory which go
from AllocSetAlloc() is marked as 0x7F.

 The MemoryContextCheck() is compiled '#ifdef USE_ASSERT_CHECKING'.

I add this checking to 'tcop/postgres.c' and is active after each backend
query, but it is probably not sufficient, because some MemoryContext exist
only during memory processing --- will good if someone who known where
it is needful (Tom:-) add it for others contexts;
 A problem in the current source is that we have still some malloc()
allocation that is not needful and this allocation is total invisible for
all context routines. For example Dllist in backend (pretty dirty it is in
catcache where values in Dllist are palloc-ed, but list is malloc-ed).
--- and BTW. this Dllist design stand in the way for query cache :-)

 Tom, if you agree I start replace some mallocs.

 BTW. --- Tom, have you idea for across transaction presistent allocation for
          SQL functions? (like regex - now it is via malloc)


 I almost forget. I add one if() to AllocSetAlloc(), for 'size' that are
greater than ALLOC_BIGCHUNK_LIMIT is not needful check AllocSetFreeIndex(),
because 'fidx' is always 'ALLOCSET_NUM_FREELISTS - 1'. It a little brisk up
allocation for very large chunks. Right?

                                                Karel
2000-07-11 14:30:37 +00:00
Jan Wieck 793704d71e Some security checks that we've found an external value completely
when fetching toasted values.

Jan
2000-07-11 12:32:03 +00:00
Tom Lane f3e5d8620c Prevent creating a boatload of empty segments when md.c is asked to
access a ridiculously large block number within a relation.
2000-07-10 04:32:00 +00:00
Peter Eisentraut b54faa1b15 oidvectortypes: use SQL type names and separate by commas
psql \df: use format_type and oidvectortypes
map type REAL to float4, not float8
psql \dd :work around UNION bug
2000-07-09 21:30:21 +00:00
Peter Eisentraut f90771236d typo 2000-07-09 13:48:45 +00:00
Peter Eisentraut a746653493 Fix sed invocation, from Keith Parks 2000-07-09 13:16:12 +00:00
Peter Eisentraut 74618e2b82 Another round of those unportable config/build changes :-/
* Add option to build with OpenSSL out of the box. Fix thusly exposed
  bit rot. Although it compiles now, getting this to do something
  useful is left as an exercise.

* Fix Kerberos options to defer checking for required libraries until
  all the other libraries are checked for.

* Change default odbcinst.ini and krb5.srvtab path to PREFIX/etc.

* Install work around for Autoconf's install-sh relative path anomaly.
  Get rid of old INSTL_*_OPTS variables, now that we don't need them
  anymore.

* Use `gunzip -c' instead of g?zcat. Reportedly broke on AIX.

* Look for only one of readline.h or readline/readline.h, not both.

* Make check for PS_STRINGS cacheable. Don't test for the header files
  separately.

* Disable fcntl(F_SETLK) test on Linux.

* Substitute the standard GCC warnings set into CFLAGS in configure,
  don't add it on in Makefile.global.

* Sweep through contrib tree to teach makefiles standard semantics.

... and in completely unrelated news:

* Make postmaster.opts arbitrary options-aware. I still think we need to
  save the environment as well.
2000-07-09 13:14:19 +00:00
Tom Lane b59c03f842 Make view/rule permission checking behave properly with
subqueries in the rule.
2000-07-09 04:56:32 +00:00
Tom Lane 7c578904d7 Fix bogus DatumGetInt32 coercion. 2000-07-09 04:17:53 +00:00
Tom Lane 0552f8dfe7 Seems we need <errno.h> to be included explicitly now... 2000-07-08 05:30:33 +00:00
Tom Lane ba62fe32c3 Remove long-dead support for invoking queries from dynamically loaded
backend functions via backend PQexec().  The SPI interface has long
been our only documented way to do this, and the backend pqexec/portal
code is unused and suffering bit-rot.  I'm putting it out of its misery.
2000-07-08 03:04:41 +00:00
Tom Lane a98eaa0191 Put back separate install-bin target ... I was using that,
thank you ...
2000-07-08 02:40:27 +00:00
Tom Lane 65da0d66b4 Fix misuse of StrNCpy to copy and add null to non-null-terminated data.
Does not work since it fetches one byte beyond the source data, and when
the phase of the moon is wrong, the source data is smack up against the
end of backend memory and you get SIGSEGV.  Don't laugh, this is a fix
for an actual user bug report.
2000-07-07 21:12:53 +00:00
Peter Eisentraut de85dd1d51 - format_type function, in use by psql
- added bigint as synonym of int8
- set typelem of varlen non-array types to 0
2000-07-07 19:24:43 +00:00
Bruce Momjian 364985542b Rename cash_words_out to cash_words. 2000-07-07 18:49:56 +00:00
Tom Lane 9f442cbf13 Correct unsafe use of strcmp(). See rant of same date posted to pghackers. 2000-07-06 23:03:37 +00:00
Peter Eisentraut f0b4ae697f Backend makefile cleanup. make maintainer-clean is now completely
functional.

Handle include file installation in src/include/Makefile

genbki.sh improvements: Don't substitute anything by config.status,
instead pass in AWK and CPP through environment. Change calling
convention to support named output files, so we get to see error
messages on stderr.

Rename bootstrap template files and install them into PREFIX/share.
Update initdb to that effect and other readability improvements
in initdb.
2000-07-06 21:33:45 +00:00
Jan Wieck b027ad9a7a Added comments about the compression algorithm as requested by Tom
Jan
2000-07-06 21:02:07 +00:00
Jan Wieck 2a225ebf18 Bugfix. If toasted tuple containted NULLs, DataFill() was handed
a wrong pointer causing the bitmap overwriting the tuple header.

Jan
2000-07-06 18:22:45 +00:00
Tom Lane 8ecac94bb2 Functions on 'text' type updated to new fmgr style. 'text' is
now TOAST-able.
2000-07-06 05:48:31 +00:00
Tom Lane 40f64064ff Update textin() and textout() to new fmgr style. This is just phase
one of updating the whole text datatype, but there are so dang many
calls of these two routines that it seems worth a separate commit.
2000-07-05 23:12:09 +00:00
Tom Lane 6d1ae0c91b Fix typo (extraneous semicolon) in fd.c patch to avoid excess seeks.
Now it skips useless SEEK_CUR 0 calls too, as intended.
2000-07-05 21:10:05 +00:00
Jan Wieck 6534444d19 Changed TOAST relations to have relkind RELKIND_TOASTVALUE.
Special handling of TOAST relations during VACUUM. TOAST relations
are vacuumed while the lock on the master table is still active.
The ANALYZE flag doesn't propagate to their vacuuming because the
toaster access routines allways use index access ignoring stats, so
why compute them at all.

Protection of TOAST relations against normal INSERT/UPDATE/DELETE
while offering SELECT for debugging purposes.

Jan
2000-07-05 16:17:43 +00:00
Jan Wieck 972604ec60 Small fix for ALTER TABLE xxx* ADD COLUMN ...
Inherited child tables must not be open during creation of TOAST table

Jan
2000-07-05 13:50:59 +00:00
Jan Wieck 93e1f5de0b Automatically create toast tables on ALTER TABLE ... ADD COLUMN
and SELECT ... INTO ... too.

Jan
2000-07-05 13:22:25 +00:00
Jan Wieck 030962da26 Bugfix in ALTER TABLE CREATE TOAST TABLE
Automatically create toast table at CREATE TABLE if new table
has toastable attributes.

Jan
2000-07-05 12:45:31 +00:00
Jan Wieck f2dfd5616c Fixed lztextlen() bug in MULTIBYTE, still thinking that lztext
does compression itself the old way.

Jan
2000-07-05 10:09:53 +00:00
Jan Wieck d819f5fe83 Moving toaster out of NO ELOG area in heap_update().
Jan
2000-07-04 17:11:40 +00:00
Peter Eisentraut 554e56e628 Expand secondary password file feature, so that you can use these
files to restrict the set of users that can connect to a database
but can still use the pg_shadow password. (You just leave off the
password field in the secondary file.)
2000-07-04 16:32:01 +00:00
Tom Lane cdeca5f590 Make toast-table creation and deletion work somewhat reliably.
Don't go through pg_exec_query_dest(), but directly to the execution
routines.  Also, extend parameter lists so that there's no need to
change the global setting of allowSystemTableMods, a hack that was
certain to cause trouble in the event of any error.
2000-07-04 06:11:54 +00:00
Tom Lane 3b61ba6d5c DataFill() has no business resetting xact status bits
in the infomask of the provided tuple.
2000-07-04 02:40:56 +00:00
Vadim B. Mikheev d0273c07ac misc 2000-07-04 01:49:44 +00:00
Vadim B. Mikheev e1a118e5e6 unlock buffer before releasing in heap_insert
+unlock buffer in heap_fetch under !ItemIdIsUsed().
2000-07-04 01:39:24 +00:00
Tom Lane e81fe1e8a0 Add missing #include for TOAST. 2000-07-03 23:58:32 +00:00
Jan Wieck 57d8080a40 TOAST
WARNING: This is actually broken - we have self-deadlocks
	         due to concurrent changes in buffer management.
			 Vadim and me are working on it.

Jan
2000-07-03 23:10:14 +00:00
Peter Eisentraut ef5bea51e1 Move global internal files to PGDATA/global. 2000-07-03 20:48:46 +00:00
Peter Eisentraut e2d3932e0e Move PGPORT envar handling to ResetAllOptions(). Improve long options
parsing to not clobber the optarg string -- so that we can bring
SetOptsFile() up to speed.
2000-07-03 20:46:10 +00:00
Bruce Momjian efcff3da16 In the attache is new (correct) version. I add TZ (timezone) support
for
to_char() too.

Karel
2000-07-03 16:01:33 +00:00
Hiroshi Inoue 61768d8cac Add a check of HEAP_MARKED_FOR_UPDATE in HeapTupleSatisfiesDirty().
This enables unique constraint check in case of SELECT FOR UPDATEd.
2000-07-03 04:45:09 +00:00
Tom Lane c4f9eaa608 Clean up memory-context stuff, other minor infelicities. 2000-07-03 03:57:03 +00:00
Tom Lane 6ac19b165d Remove unused variable. (Hey Peter, you use gcc, why didn't you
notice this warning?)
2000-07-03 03:27:31 +00:00
Vadim B. Mikheev 1b67fe17b8 heap' logging 2000-07-03 02:54:21 +00:00
Bruce Momjian 80c646958a Attached is a new patch which addresses this problem. (oids in
regression tests).

Chris Bitmead
2000-07-02 22:01:27 +00:00
Peter Eisentraut 6fb9d2e347 Version number now set in configure, available through Makefile.global
and config.h. Adjusted all referring code.

Scrapped pg_version and changed initdb accordingly. Integrated
src/utils/version.c into src/backend/utils/init/miscinit.c. Changed all
callers.

Set version number to `7.1devel'. (Non-numeric version suffixes now allowed.)
2000-07-02 15:21:27 +00:00
Tom Lane 07dfe97731 Don't run in CacheMemoryContext more than necessary. 2000-07-02 05:38:40 +00:00
Tom Lane d003213225 Don't run in CacheMemoryContext longer than necessary. 2000-07-02 04:46:09 +00:00
Tom Lane 72164e86a6 Remove memory leak from VACUUM parsing. 2000-07-02 04:04:09 +00:00
Tom Lane 57eeb0d315 New memmgr logic in xact.c failed if AbortTransaction() is called when
there is no open transaction.
2000-07-02 02:28:38 +00:00