summaryrefslogtreecommitdiff
path: root/src/backend/tcop
AgeCommit message (Collapse)Author
2000-07-17Revise aggregate functions per earlier discussions in pghackers.Tom Lane
There's now only one transition value and transition function. NULL handling in aggregates is a lot cleaner. Also, use Numeric accumulators instead of integer accumulators for sum/avg on integer datatypes --- this avoids overflow at the cost of being a little slower. Implement VARIANCE() and STDDEV() aggregates in the standard backend. Also, enable new LIKE selectivity estimators by default. Unrelated change, but as long as I had to force initdb anyway...
2000-07-12Add assert checking to GUC ("debug_assertions")Peter Eisentraut
Rename settings net_server to tcpip_socket, max_backends to max_connections Add --help and --version to postmaster, reformat help output
2000-07-12First stage of reclaiming memory in executor by resetting short-termTom Lane
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-11 Here is the patch with memory leak checker. This checker allow detectBruce Momjian
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-08Remove long-dead support for invoking queries from dynamically loadedTom Lane
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-05Bugfix in ALTER TABLE CREATE TOAST TABLEJan Wieck
Automatically create toast table at CREATE TABLE if new table has toastable attributes. Jan
2000-07-04Make toast-table creation and deletion work somewhat reliably.Tom Lane
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-03TOASTJan Wieck
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-03Move global internal files to PGDATA/global.Peter Eisentraut
2000-07-03Move PGPORT envar handling to ResetAllOptions(). Improve long optionsPeter Eisentraut
parsing to not clobber the optarg string -- so that we can bring SetOptsFile() up to speed.
2000-06-29Add test code to copy all parse/plan trees. Repair essential omissionsTom Lane
in copyfuncs and equalfuncs exposed by regression tests. We still have some work to do: these modules really ought to handle most or all of the utility statement node types. But it's better than it was.
2000-06-28First phase of memory management rewrite (see backend/utils/mmgr/READMETom Lane
for details). It doesn't really do that much yet, since there are no short-term memory contexts in the executor, but the infrastructure is in place and long-term contexts are handled reasonably. A few long- standing bugs have been fixed, such as 'VACUUM; anything' in a single query string crashing. Also, out-of-memory is now considered a recoverable ERROR, not FATAL. Eliminate a large amount of crufty, now-dead code in and around memory management. Fix problem with holding off SIGTRAP, SIGSEGV, etc in postmaster and backend startup.
2000-06-22Second pass over run-time configuration system. Adjust priorities on somePeter Eisentraut
option settings. Sort out SIGHUP vs BACKEND -- there is no total ordering here, so make explicit checks. Add comments explaining all of this. Removed permissions check on SHOW command. Add examine_subclass to the game, rename to SQL_inheritance to fit the official data model better. Adjust documentation. Standalone backend needs to reset all options before it starts. To facilitate that, have IsUnderPostmaster be set by the postmaster itself, don't wait for the magic -p switch. Also make sure that all environment variables and argv's survive init_ps_display(). Use strdup where necessary. Have initdb make configuration files (postgresql.conf, pg_hba.conf) mode 0600 -- having configuration files is no fun if you can't edit them.
2000-06-15Final #include cleanup.Bruce Momjian
2000-06-12Back out pg_shadow changes to allow create table and locking permissions.Bruce Momjian
2000-06-09 I have large database and with this DB work more users and I very needBruce Momjian
more restriction for fretful users. The current PG allow define only NO-CREATE-DB and NO-CREATE-USER restriction, but for some users I need NO-CREATE-TABLE and NO-LOCK-TABLE. This patch add to current code NOCREATETABLE and NOLOCKTABLE feature: CREATE USER username [ WITH [ SYSID uid ] [ PASSWORD 'password' ] ] [ CREATEDB | NOCREATEDB ] [ CREATEUSER | NOCREATEUSER ] -> [ CREATETABLE | NOCREATETABLE ] [ LOCKTABLE | NOLOCKTABLE ] ...etc. If CREATETABLE or LOCKTABLE is not specific in CREATE USER command, as default is set CREATETABLE or LOCKTABLE (true). A user with NOCREATETABLE restriction can't call CREATE TABLE or SELECT INTO commands, only create temp table is allow for him. Karel
2000-06-08Mark functions as static and ifdef NOT_USED as appropriate.Bruce Momjian
2000-06-05Latest round of fmgr updates. All functions with bool,char, or int2Tom Lane
inputs have been converted to newstyle. This should go a long way towards fixing our portability problems with platforms where char and short parameters are passed differently from int-width parameters. Still more to do for the Alpha port however.
2000-06-04If user re-DECLAREs an existing cursor name, close the old cursor ofTom Lane
that name and issue a NOTICE to the effect that we did. Previously, code would try to assign the new cursor declaration to the old portal, but this didn't work reliably since new parsetree is still sitting in blank portal and is likely to get clobbered.
2000-06-04New ps display code, works on more platforms.Peter Eisentraut
Install a default configuration file. Clean up some funny business in the config file code.
2000-05-31The heralded `Grand Unified Configuration scheme' (GUC)Peter Eisentraut
That means you can now set your options in either or all of $PGDATA/configuration, some postmaster option (--enable-fsync=off), or set a SET command. The list of options is in backend/utils/misc/guc.c, documentation will be written post haste. pg_options is gone, so is that pq_geqo config file. Also removed were backend -K, -Q, and -T options (no longer applicable, although -d0 does the same as -Q). Added to configure an --enable-syslog option. changed all callers from TPRINTF to elog(DEBUG)
2000-05-30Ooops, looks like I broke fastpath in last changes...Tom Lane
2000-05-29Generated header files parse.h and fmgroids.h are now copied intoTom Lane
the src/include tree, so that -I backend is no longer necessary anywhere. Also, clean up some bit rot in contrib tree.
2000-05-28First round of changes for new fmgr interface. fmgr itself and theTom Lane
key call sites are changed, but most called functions are still oldstyle. An exception is that the PL managers are updated (so, for example, NULL handling now behaves as expected in plperl and plpgsql functions). NOTE initdb is forced due to added column in pg_proc.
2000-05-21Add debug code to aid in memory-leak tracking: if SHOW_MEMORY_STATS isTom Lane
defined then statistics about memory usage of all the global memory contexts are printed after each commit.
2000-05-11Fix CLUSTER ... or at least undo the bit-rot it's suffered since 6.5.Tom Lane
It's still pretty fundamentally bogus :-(. Freebie side benefit: ALTER TABLE RENAME works on indexes now.
2000-04-30Reset CurrentMemoryContext to TopMemoryContext at the beginning of errorTom Lane
cleanup, ie, as soon as we have caught the longjmp. This ensures that current context will be a valid context throughout error cleanup. Before it was possible that current context was pointing at a context that would get deleted during cleanup, leaving any subsequent pallocs in deep trouble. I was able to provoke an Assert failure when compiled with asserts + -DCLOBBER_FREED_MEMORY, if I did something that would cause an error to be reported by the backend large-object code, because indeed that code operates in a context that gets deleted partway through xact abort --- and CurrentMemoryContext was still pointing at it! Boo hiss.
2000-04-28Setting statistic options from SET PG_OPTIONS caused a backend crashTom Lane
because StatFp never got set in that case. Set it immediately before use to eliminate such problems.
2000-04-25change reindex ERROR/NOTICE messageHiroshi Inoue
2000-04-237.0 buffer manager can support different backends running with differentTom Lane
fsync settings, so the -F option no longer needs to be treated as secure.
2000-04-12Ye-old pgindent run. Same 4-space tabs.Bruce Momjian
2000-04-04Actually, that still wasn't quite right. If we skip a query because ofTom Lane
xact abort state in pg_exec_query_dest, we should continue scanning the querytree list, on the off chance that one of the later queries in the string is COMMIT or ROLLBACK.
2000-04-04Fix bug noted by Bruce: FETCH in an already-aborted transaction blockTom Lane
would crash, due to premature invocation of SetQuerySnapshot(). Clean up problems with handling of multiple queries by splitting pg_parse_and_plan into two routines. The old code would not, for example, do the right thing with END; SELECT... submitted in one query string when it had been in transaction abort state, because it'd decide to skip planning the SELECT before it had executed the END. New arrangement is simpler and doesn't force caller to plan if only parse+rewrite is needed.
2000-03-23>> 5. empty define that results in an empty but terminated line ( ; )Bruce Momjian
easy (maybe dumb) fix for 5 in attachment define.patch greetings, Andreas
2000-03-01Remove using puts() to print messages. Instead use TPRINTF.Tatsuo Ishii
2000-02-22Change cancel while waiting-for-lock stuff.Hiroshi Inoue
2000-02-21fix the TODOHiroshi Inoue
* Allow PQrequestCancel() to terminate when in waiting-for-lock state Changes are limited to BACKEND,however.
2000-02-20Reduce proc_exit(1) to proc_exit(0) for errors detected in backendTom Lane
command line processing. As it stood, a bogus PGOPTIONS value from a client would force a database system restart. Not bad as a denial- of-service attack...
2000-02-19Get rid of postgres.c's separate parsing logic for PGDATESTYLE env.Tom Lane
variable, instead calling same code in variable.c that is used to parse SET DATESTYLE. Fix bug: although backend's startup datestyle had been changed to ISO, 'RESET DATESTYLE' and 'SET DATESTYLE TO DEFAULT' didn't know about it. For consistency I have made the latter two reset to the PGDATESTYLE-defined initial value, which may not be the same as the compiled-in default of ISO.
2000-02-19Remove gcc warnings. The Postgres world isn't really safeTom Lane
for 'const' qualifiers yet ...
2000-02-18Implement reindex commandHiroshi Inoue
2000-01-29A few minor psql enhancementsPeter Eisentraut
Initdb help correction Changed end/abort to commit/rollback and changed related notices Commented out way old printing functions in libpq Fixed a typo in alter table / alter column
2000-01-26Add:Bruce Momjian
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc to all files copyright Regents of Berkeley. Man, that's a lot of files.
2000-01-22Revise handling of index-type-specific indexscan cost estimation, perTom Lane
pghackers discussion of 5-Jan-2000. The amopselect and amopnpages estimators are gone, and in their place is a per-AM amcostestimate procedure (linked to from pg_am, not pg_amop).
2000-01-19Removed MBFLAGS from makefiles since it's now done in include/config.h.Peter Eisentraut
2000-01-16Included all yacc and lex files into the distribution.Peter Eisentraut
2000-01-15- Allow array on int8Peter Eisentraut
- Prevent permissions on indexes - Instituted --enable-multibyte option and tweaked the MB build process where necessary - initdb prompts for superuser password
2000-01-14* User management commands no longer user pg_exec_query_dest -> more robustPeter Eisentraut
* Let unprivileged users change their own passwords. * The password is now an Sconst in the parser, which better reflects its text datatype and also forces users to quote them. * If your password is NULL you won't be written to the password file, meaning you can't connect until you have a password set up (if you use password authentication). * When you drop a user that owns a database you get an error. The database is not gone.
2000-01-13Fixed everything in and surrounding createdb and dropdb to make it morePeter Eisentraut
error-proof. Rearranged some old code and removed dead sections.
2000-01-12Use fmgr_array_args() to avoid dependency on FUNC_MAX_ARGS.Tom Lane