aboutsummaryrefslogtreecommitdiff
path: root/src/backend
Commit message (Collapse)AuthorAge
* Translation updatesDennis Bjorklund2004-06-26
|
* Support renaming of tablespaces, and changing the owners ofTom Lane2004-06-25
| | | | | | | | aggregates, conversions, functions, operators, operator classes, schemas, types, and tablespaces. Fold the existing implementations of alter domain owner and alter database owner in with these. Christopher Kings-Lynne
* Translation updatesDennis Bjorklund2004-06-25
|
* Add pg_get_serial_sequence() function, and cause pg_dump to use it.Tom Lane2004-06-25
| | | | | | | This eliminates the assumption that a serial column's sequence will have the same name on reload that it was given in the original database. Christopher Kings-Lynne
* #ifdef out file permissions check on SSL key file when on Windows, asTom Lane2004-06-25
| | | | | | we also have done for the data directory permissions check. Dave Page
* Replace direct fprintf(stderr) calls by write_stderr(), and cause thisTom Lane2004-06-24
| | | | | | | routine to do something appropriate on Win32. Also, add a security check on Win32 that parallels the can't-run-as-root check on Unix. Magnus Hagander
* Fix information schema views to return NULL for precision and scale ofTom Lane2004-06-22
| | | | | an unconstrained numeric column. Also, factor out some duplicate code into functions, to ease future maintenance.
* Add comment about rationale for continuing to use C library functionsTom Lane2004-06-21
| | | | instead of src/timezone for timestamping log entries.
* Rename the built-in tablespaces to pg_default and pg_global, and prohibitTom Lane2004-06-21
| | | | | | creation of user-defined tablespaces with names starting with 'pg_', as per suggestion of Chris K-L. Also install admin-guide tablespace documentation from Gavin.
* Rename pg_tablespaces directory to pg_tblspc, so it is more unique fromBruce Momjian2004-06-21
| | | | the pg_tablespace table. Update catalog version.
* Looks like s_lock_test needs <time.h> on some platforms.Tom Lane2004-06-19
|
* s_lock_test requires libpgport to build now.Tom Lane2004-06-19
|
* Fix oversight in recent rowtype-handling improvements: transformTargetListTom Lane2004-06-19
| | | | | | should recognize 'foo.*' when the star appears in A_Indirection, not only in ColumnRef. This allows 'SELECT something.*' to do what the user expects when the something is an expression yielding a row.
* Tablespaces. Alternate database locations are dead, long live tablespaces.Tom Lane2004-06-18
| | | | | | | | | There are various things left to do: contrib dbsize and oid2name modules need work, and so does the documentation. Also someone should think about COMMENT ON TABLESPACE and maybe RENAME TABLESPACE. Also initlocation is dead, it just doesn't know it yet. Gavin Sherry and Tom Lane.
* Represent type-specific length coercion functions as pg_cast entries,Tom Lane2004-06-16
| | | | | | | | | | | | | | | | | eliminating the former hard-wired convention about their names. Allow pg_cast entries to represent both type coercion and length coercion in a single step --- this is represented by a function that takes an extra typmod argument, just like a length coercion function. This nicely merges the type and length coercion mechanisms into something at least a little cleaner than we had before. Make use of the single- coercion-step behavior to fix integer-to-bit coercion so that coercing to bit(n) yields the rightmost n bits of the integer instead of the leftmost n bits. This should fix recurrent complaints about the odd behavior of this coercion. Clean up the documentation of the bit string functions, and try to put it where people might actually find it. Also, get rid of the unreliable heuristics in ruleutils.c about whether to display nested coercion steps; instead require parse_coerce.c to label them properly in the first place.
* Arrange to explicitly stop the pgstat processes at the same time weTom Lane2004-06-14
| | | | | | begin the shutdown checkpoint; there isn't anything left for them to do, so we may as well ensure that they shut down sooner rather than later. Per discussion.
* Give inet/cidr datatypes their own hash function that ignores the inet vsTom Lane2004-06-13
| | | | | | | cidr type bit, the same as network_eq does. This is needed for hash joins and hash aggregation to work correctly on these types. Per bug report from Michael Fuhr, 2004-04-13. Also, improve hash function for int8 as suggested by Greg Stark.
* Translation updatePeter Eisentraut2004-06-13
|
* Code review for recently-added network functions. Get it to work whenTom Lane2004-06-13
| | | | log_hostname is enabled, clean up documentation.
* StrategyDirtyBufferList wasn't being careful to honor max_buffers limit.Tom Lane2004-06-11
| | | | | Bug is only latent given that sole caller is passing NBuffers, but it could bite someone in the rear someday.
* Add some code to Assert that when we release pin on a buffer, we areTom Lane2004-06-11
| | | | | | | not holding the buffer's cntx_lock or io_in_progress_lock. A recent report from Litao Wu makes me wonder whether it is ever possible for us to drop a buffer and forget to release its cntx_lock. The Assert does not fire in the regression tests, but that proves little ...
* >> It certainly doesn't. There still was a bug with the locale stuff,Bruce Momjian2004-06-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | >> though - the GUC variable was not set in the child >processes. So "show >> lc_collate" would *always* return "C", for example. attached >patch fixes >> this. > >Hm. Why were these vars not propagated by the regular >mechanism for GUC >variables (write_nondefault_variables or whatever it's called)? If the >problem is that it's not accepting PGC_INTERNAL values, then we need to >fix it there not here, because otherwise we'll have to pass all the >PGC_INTERNAL variables through the backend_variables file, which seems >like a recipe for more of the same sort of bug. Good point :-( I think the problem is not only that it specifically does not deal with PGC_INTERNAL variables. The problem is in the fact that write_nondefault_variables is called *before* the locale is read (because the locale is read from pg_control and not from any of the "usual" ways to read it). Attached patch is another stab at fixing it. It makes postmaster dump a new copy of the file once it has started the database (before it accepts any connections), which is when it will know about these parameters. Also updates the reading code to set the context to the one where the variable was originally set (PGC_POSTMASTER won't work for PGC_INTERNAL, and the other way around). We still pass lc_collate through the special file, because set_config_option on lc_collate will speficially *not* call setlocale(), and we need that call. But we no longer call set_config_option from there. Magnus Hagander
* When using extended-query protocol, postpone planning of unnamed statementsTom Lane2004-06-11
| | | | | | | | | | | | | | | | | | | until Bind is received, so that actual parameter values are visible to the planner. Make use of the parameter values for estimation purposes (but don't fold them into the actual plan). This buys back most of the potential loss of plan quality that ensues from using out-of-line parameters instead of putting literal values right into the query text. This patch creates a notion of constant-folding expressions 'for estimation purposes only', in which case we can be more aggressive than the normal eval_const_expressions() logic can be. Right now the only difference in behavior is inserting bound values for Params, but it will be interesting to look at other possibilities. One that we've seen come up repeatedly is reducing now() and related functions to current values, so that queries like ... WHERE timestampcol > now() - '1 day' have some chance of being planned effectively. Oliver Jowett, with some kibitzing from Tom Lane.
* Attached is a patch that takes care of the PATHSEP issue. I made a moreBruce Momjian2004-06-10
| | | | | | | | | | | | | | | | | | | extensive change then what was suggested. I found the file path.c that contained a lot of "Unix/Windows" agnostic functions so I added a function there instead and removed the PATHSEP declaration in exec.c altogether. All to keep things from scattering all over the code. I also took the liberty of changing the name of the functions "first_path_sep" and "last_path_sep". Where I come from (and I'm apparently not alone given the former macro name PATHSEP), they should be called "first_dir_sep" and "last_dir_sep". The new function I introduced, that actually finds path separators, is now the "first_path_sep". The patch contains changes on all affected places of course. I also changed the documentation on dynamic_library_path to reflect the chagnes. Thomas Hallgren
* Adjust cost_nonsequential_access() to have more reasonable behaviorTom Lane2004-06-10
| | | | | when random_page_cost has a small value. Per Manfred Koizar, though I didn't use his equation exactly.
* Make ALTER TABLE ADD SERIAL work reasonably in inheritance cases, too.Tom Lane2004-06-10
|
* Fix oversight in recent ALTER TABLE improvements. We now supportTom Lane2004-06-10
| | | | | | ALTER TABLE tab ADD COLUMN col SERIAL, but we forgot to install the dependency between the column and the sequence, so the sequence would not go away if you dropped the table later.
* Clean up generation of default names for constraints, indexes, and serialTom Lane2004-06-10
| | | | | | | | sequences, as per recent discussion. All these names are now of the form table_column_type, with digits added if needed to make them unique. Default constraint names are chosen to be unique across their whole schema, not just within the parent object, so as to be more SQL-spec-compatible and make the information schema views more useful.
* Translation updatePeter Eisentraut2004-06-10
|
* New translationPeter Eisentraut2004-06-10
|
* Fix slightly-wrong syntax error messages from bootstrap parser, as perTom Lane2004-06-09
| | | | report from Tom Cook.
* Support assignment to subfields of composite columns in UPDATE and INSERT.Tom Lane2004-06-09
| | | | | | | | As a side effect, cause subscripts in INSERT targetlists to do something more or less sensible; previously we evaluated such subscripts and then effectively ignored them. Another side effect is that UPDATE-ing an element or slice of an array value that is NULL now produces a non-null result, namely an array containing just the assigned-to positions.
* Previous code cleanup was for bufpage.c, not bufmgr.c.Bruce Momjian2004-06-09
| | | | This cleanup just cleans up a comment.
* Add missing check for too-few-inputs when replacing a zero-dimensionalTom Lane2004-06-08
| | | | array.
* Stylistic changes in bufmgr.cBruce Momjian2004-06-08
| | | | | | | Basically replaces (*a).b with a->b as it is everywhere else in Postgres. Manfred Koizar
* vacuum.c refactoringBruce Momjian2004-06-08
| | | | | | | | | | | | | | | | | . rename variables . cur_buffer -> dst_buffer . ToPage -> dst_page . cur_page -> dst_vacpage . move variable declarations into block where variable is used . various Asserts instead of elog(ERROR, ...) . extract functionality from repair_frag() into new routines . move_chain_tuple() . move_plain_tuple() . update_hint_bits() . create type ExecContext . add comments Manfred Koizar
* Dept of second thoughts: don't use the new wide-character upper/lowerTom Lane2004-06-06
| | | | | code if we are running in a single-byte encoding. No point in the extra overhead in that case.
* Allow use of table rowtypes directly as column types of other tables.Tom Lane2004-06-06
| | | | | | | | Instead of prohibiting that, put code into ALTER TABLE to reject ALTERs that would affect other tables' columns. Eventually we will probably want to extend ALTER TABLE to actually do something useful here, but in the meantime it seems wrong to forbid the feature completely just because ALTER isn't fully baked.
* Add binary I/O support for composite types.Tom Lane2004-06-06
|
* Remove finger from dike: composite types are now allowed as table columns.Tom Lane2004-06-06
| | | | | Still a few things to do, like binary I/O and regression tests and docs, but might as well let people play with the toy.
* Preliminary support for composite type I/O; just text for now,Tom Lane2004-06-06
| | | | no binary yet.
* Infrastructure for I/O of composite types: arrange for the I/O routinesTom Lane2004-06-06
| | | | | | | | | | of a composite type to get that type's OID as their second parameter, in place of typelem which is useless. The actual changes are mostly centralized in getTypeInputInfo and siblings, but I had to fix a few places that were fetching pg_type.typelem for themselves instead of using the lsyscache.c routines. Also, I renamed all the related variables from 'typelem' to 'typioparam' to discourage people from assuming that they necessarily contain array element types.
* Tweak palloc/repalloc to allow zero bytes to be requested, as per recentTom Lane2004-06-05
| | | | | proposal. Eliminate several dozen now-unnecessary hacks to avoid palloc(0). (It's likely there are more that I didn't find.)
* Make the world very nearly safe for composite-type columns in tables.Tom Lane2004-06-05
| | | | | | | | | | | | | | | | | | | 1. Solve the problem of not having TOAST references hiding inside composite values by establishing the rule that toasting only goes one level deep: a tuple can contain toasted fields, but a composite-type datum that is to be inserted into a tuple cannot. Enforcing this in heap_formtuple is relatively cheap and it avoids a large increase in the cost of running the tuptoaster during final storage of a row. 2. Fix some interesting problems in expansion of inherited queries that reference whole-row variables. We never really did this correctly before, but it's now relatively painless to solve by expanding the parent's whole-row Var into a RowExpr() selecting the proper columns from the child. If you dike out the preventive check in CheckAttributeType(), composite-type columns now seem to actually work. However, we surely cannot ship them like this --- without I/O for composite types, you can't get pg_dump to dump tables containing them. So a little more work still to do.
* Resurrect heap_deformtuple(), this time implemented as a singly nestedTom Lane2004-06-04
| | | | | | | | | | loop over the fields instead of a loop around heap_getattr. This is considerably faster (O(N) instead of O(N^2)) when there are nulls or varlena fields, since those prevent use of attcacheoff. Replace loops over heap_getattr with heap_deformtuple in situations where all or most of the fields have to be fetched, such as printtup and tuptoaster. Profiling done more than a year ago shows that this should be a nice win for situations involving many-column tables.
* Remove some long-obsolete code that was causing a strange error messageTom Lane2004-06-04
| | | | | | | when someone attempts to create a column of a composite datatype. For now, just make sure we produce a reasonable error at the 'right place'. Not sure if this will be made to work before 7.5, but make it act reasonably in case nothing more gets done.
* Remove typeTypeFlag(), which was not only unused but entirely redundantTom Lane2004-06-03
| | | | with typeTypType().
* Add range-checking in timestamp_recv and timestamptz_recv, perTom Lane2004-06-03
| | | | Stephen Frost. Also tighten date range check in timestamp2tm.
* Adjust our timezone library to use pg_time_t (typedef'd as int64) inTom Lane2004-06-03
| | | | | | | | | | | | | | | | | | | place of time_t, as per prior discussion. The behavior does not change on machines without a 64-bit-int type, but on machines with one, which is most, we are rid of the bizarre boundary behavior at the edges of the 32-bit-time_t range (1901 and 2038). The system will now treat times over the full supported timestamp range as being in your local time zone. It may seem a little bizarre to consider that times in 4000 BC are PST or EST, but this is surely at least as reasonable as propagating Gregorian calendar rules back that far. I did not modify the format of the zic timezone database files, which means that for the moment the system will not know about daylight-savings periods outside the range 1901-2038. Given the way the files are set up, it's not a simple decision like 'widen to 64 bits'; we have to actually think about the range of years that need to be supported. We should probably inquire what the plans of the upstream zic people are before making any decisions of our own.
* Add PGETC (for pg_service.conf) and PGLOCALE (for locale dir)Bruce Momjian2004-06-03
| | | | | | | | | environment variable processing to libpq. The patch also adds code to our client apps so we set the environment variable directly based on our binary location, unless it is already set. This will allow our applications to emit proper locale messages that are generated in libpq.