Commit Graph

19669 Commits

Author SHA1 Message Date
Bruce Momjian ffef9a9de4 Clarify PGPASSWORD usage:
! authentication.  Use of this environment variable is not
! recommended for security reasons (some operating systems
! allow non-root users to see process environment variables via
! <application>ps</>); instead consider using  the
! <filename>~/.pgpass</> file (see <xref linkend="libpq-pgpass">).
2005-02-26 18:39:04 +00:00
Tom Lane 891497d3a9 Correct overstatement in locking docs: we said ExclusiveLock is never
taken automatically, but this is only true with respect to user tables.
2005-02-26 18:37:17 +00:00
Bruce Momjian 0060023c3d State PGPASSWORD is "not recommended" rather than "depricated". 2005-02-26 14:21:40 +00:00
Teodor Sigaev 5553d6572a In accordance to
http://www.pgsql.ru/db/mw/msg.html?mid=2045361

change TimeATD to/from Datum macros.

Re-initdb is needed.
2005-02-25 16:13:29 +00:00
Bruce Momjian 33b92a78da Add linking from /port to bcc makefile. 2005-02-25 15:57:33 +00:00
Teodor Sigaev ea90a93a46 Fix float8->int64 transformation 2005-02-25 14:03:04 +00:00
Bruce Momjian 93aa22fc8e Please find enclosed a patch, per Dennis Bj<C3><B6>rklund, that uses -f
for input files rather than <.  This makes error messages, &c. more
expressive.

David Fetter
2005-02-25 04:56:01 +00:00
Bruce Momjian 6b80ca2f06 Fix plpgsql error message for dropped temporary tables. 2005-02-25 04:18:27 +00:00
Bruce Momjian e49da4855c Clarify object ownership language to prevent confusion with database
ownership.
2005-02-25 02:34:56 +00:00
Bruce Momjian 0c6568424a Updatge wording. 2005-02-25 00:45:30 +00:00
Bruce Momjian 3debf968ef Fix markup. 2005-02-25 00:32:55 +00:00
Bruce Momjian 026a8510a3 Fix HTML markup and add NULL sorting item to existing NULL FAQ item.
Greg Sabino Mullan
2005-02-25 00:32:15 +00:00
Bruce Momjian d2557833e9 Add:
> * Improve psql's handling of multi-line queries
2005-02-25 00:24:10 +00:00
Bruce Momjian 0b58d30168 Add wording about UTF8:
< 	  like towupper().
> 	  like towupper().  However, UTF8 already works with normal
> 	  locales but provides no ordering.
2005-02-24 23:39:29 +00:00
Bruce Momjian 0ae430a207 Done:
> 	o -Change PL/PgSQL to use palloc() instead of malloc()
2005-02-24 14:14:41 +00:00
Tom Lane 13227910e4 We aren't supposed to try to run test programs until after we've
verified that AC_TRY_RUN works.
2005-02-24 02:12:15 +00:00
Tom Lane e71d09a472 Clean up printf arg-control test, per Kurt Roeckx. 2005-02-24 01:34:45 +00:00
Tom Lane 41994145d4 My patch this morning was overly hasty; revert code to original state. 2005-02-24 01:11:40 +00:00
Neil Conway 406a942820 Minor code cleanup: remove a variable that was assigned to but never
subsequently referenced.

Found by: Coverity
Fixed by: Sean Chittenden
2005-02-23 23:27:54 +00:00
Neil Conway 3350b3740e This patch optimizes the md5_text() function (which is used to
implement the md5() SQL-level function). The old code did the
following:

1. de-toast the datum
2. convert it to a cstring via textout()
3. get the length of the cstring via strlen()

Since we are treating the datum context as a blob of binary data,
the latter two steps are unnecessary. Once the data has been
detoasted, we can just use it as-is, and derive its length from
the varlena metadata.

This patch improves some run-of-the-mill md5() computations by
just under 10% in my limited tests, and passes the regression tests.

I also noticed that md5_text() wasn't checking the return value
of md5_hash(); encountering OOM at precisely the right moment
could result in returning a random md5 hash. This patch corrects
that. A better fix would be to make md5_hash() only return on
success (and/or allocate via palloc()), but since it's used in
the frontend as well I don't see an easy way to do that.
2005-02-23 22:46:17 +00:00
Tom Lane b9a87e5219 Un-break plpgsql build by removing unwanted _() usage.
This would be a completely inappropriate place to apply localization
anyway.
2005-02-23 16:23:07 +00:00
Bruce Momjian e3267b6517 Properly undef _(x) gettext macro. 2005-02-23 04:34:21 +00:00
Tom Lane 26b9a2860f Document that only a table's owner may TRUNCATE it. Per Keith Worthington. 2005-02-22 19:06:18 +00:00
Neil Conway 5a9dd0dc4f This patch changes makes some significant changes to how compilation
and parsing work in PL/PgSQL:

- memory management is now done via palloc(). The compiled representation
  of each function now has its own memory context. Therefore, the storage
  consumed by a function can be reclaimed via MemoryContextDelete().

  During compilation, the CurrentMemoryContext is the function's memory
  context. This means that a palloc() is sufficient to allocate memory
  that will have the same lifetime as the function itself. As a result,
  code invoked during compilation should be careful to pfree() temporary
  allocations to avoid leaking memory. Since a lot of the code in the
  backend is not careful about releasing palloc'ed memory, that means
  we should switch into a temporary memory context before invoking
  backend functions. A temporary context appropriate for such allocations
  is `compile_tmp_cxt'.

- The ability to use palloc() allows us to simply a lot of the code in
  the parser. Rather than representing lists of elements via ad hoc
  linked lists or arrays, we can use the List type. Rather than doing
  malloc followed by memset(0), we can just use palloc0().

- We now check that the user has supplied the right number of parameters
  to a RAISE statement. Supplying either too few or too many results in
  an error (at runtime).

- PL/PgSQL's parser needs to accept arbitrary SQL statements. Since we
  do not want to duplicate the SQL grammar in the PL/PgSQL grammar, this
  means we need to be quite lax in what the PL/PgSQL grammar considers
  a "SQL statement". This can lead to misleading behavior if there is a
  syntax error in the function definition, since we assume a malformed
  PL/PgSQL construct is a SQL statement. Furthermore, these errors were
  only detected at runtime (when we tried to execute the alleged "SQL
  statement" via SPI).

  To rectify this, the patch changes the parser to invoke the main SQL
  parser when it sees a string it believes to be a SQL expression. This
  means that synctically-invalid SQL will be rejected during the
  compilation of the PL/PgSQL function. This is only done when compiling
  for "validation" purposes (i.e. at CREATE FUNCTION time), so it should
  not impose a runtime overhead.

- Fixes for the various buffer overruns I've patched in stable branches
  in the past few weeks. I've rewritten code where I thought it was
  warranted (unlike the patches applied to older branches, which were
  minimally invasive).

- Various other minor changes and cleanups.

- Updates to the regression tests.
2005-02-22 07:18:27 +00:00
Bruce Momjian e3ebe2521e Add semicolon so snprintf.c goto has a statement to attach to:
nochar:
    /* nothing */
    ; /* semicolon required because a goto has to be attached to a statement */
2005-02-22 04:57:24 +00:00
Bruce Momjian 0542b1e2fe Use _() macro consistently rather than gettext(). Add translation
macros around strings that were missing them.
2005-02-22 04:43:23 +00:00
Bruce Momjian 64011b4dce Add:
> 	* Add internationalized message strings
2005-02-22 04:08:01 +00:00
Bruce Momjian b4feafb6ff Add support to port/snprintf.c for position parameter specification:
+ # Determine if printf supports %1$ argument selection, e.g. %5$ selects
+ # the fifth argument after the printf print string.
+ # This is not in the C99 standard, but in the Single Unix Specification (SUS).
+ # It is used in our langauge translation strings.

Nicolai Tufar with configure changes by Bruce.
2005-02-22 03:56:22 +00:00
Bruce Momjian 78bb800bc2 Update initdb locale/encoding documentation description. Backpatch to
8.0.X.
2005-02-22 02:54:19 +00:00
Bruce Momjian 1808ce7865 Try to get Borland CC to compile.
Backpatch to 8.0.X which doesn't work right now.
2005-02-21 21:22:32 +00:00
Bruce Momjian 3236250238 Add port mention:
< * Add the client IP address to pg_stat_activity
> * Add the client IP address and port to pg_stat_activity
2005-02-21 18:51:07 +00:00
Bruce Momjian daab1a7dc0 Update Russian FAQ.
Viktor Vislobokov
2005-02-21 17:33:54 +00:00
Bruce Momjian ac1cbc8079 Clarify item:
< * Allow server configuration parameters to be remotely modified
> * Allow pg_hba.conf settings to be controlled via SQL
>
>   This would require a new global table that is dumped to flat file for
>   use by the postmaster.  We do a similar thing for pg_shadow currently.
>
2005-02-21 17:30:33 +00:00
Teodor Sigaev 4784fe9ea2 Simplify defines 2005-02-21 14:09:49 +00:00
Teodor Sigaev 47979e671c Fix memory leak for timestamp(with and w/o tz) and indexes 2005-02-21 10:03:57 +00:00
Neil Conway 70b64cfbf4 Trivial fix: change the reference to further documentation of pathkeys to
point to its new location.
2005-02-21 06:43:04 +00:00
Neil Conway ccf5db73eb Fix two typos, per report from Hashem Masoud. 2005-02-21 06:12:14 +00:00
Bruce Momjian d5b98e4ce0 Clarify item:
< * Consider use of open/fcntl(O_DIRECT) to minimize OS caching
> * Consider use of open/fcntl(O_DIRECT) to minimize OS caching,
>   especially for WAL writes
2005-02-21 04:58:52 +00:00
Neil Conway 99bf6a1634 Updates to the bibliography. Patch from Michael Fuhr. 2005-02-21 02:21:03 +00:00
Neil Conway f18752dab5 Document the "register" and "unregister" pg_ctl subcommands, for use on
Windows. Patch from Magnus Hagander.
2005-02-21 02:13:26 +00:00
Tom Lane bb0aed591f Use SnapshotNow instead of SnapshotSelf for reading the catalogs
during flat-file writing.  The only difference is that SnapshotSelf
would consider tuples of the 'current command' within the current
transaction as valid, where SnapshotNow wouldn't.  We can eliminate
the need for this with one extra CommandCounterIncrement call before
we start reading the catalogs.
2005-02-20 22:02:19 +00:00
Tom Lane 4aefe75553 Remove some no-longer-needed kluges for bootstrapping, in particular
the AMI_OVERRIDE flag.  The fact that TransactionLogFetch treats
BootstrapTransactionId as always committed is sufficient to make
bootstrap work, and getting rid of extra tests in heavily used code
paths seems like a win.  The files produced by initdb are demonstrably
the same after this change.
2005-02-20 21:46:50 +00:00
Bruce Momjian 57e3b0c9db Rename macro to MAKE_EXPIRED_TUPLES_VISIBLE. 2005-02-20 15:01:42 +00:00
Bruce Momjian f6a7bef915 Fix MAKE_ALL_TUPLES_VISIBLE define. 2005-02-20 15:00:16 +00:00
Bruce Momjian 5845bfb8bf Move define MAKE_ALL_TUPLES_VISIBLE to a more logical place. 2005-02-20 14:57:47 +00:00
Bruce Momjian 59191b2245 I have added a define, MAKE_ALL_TUPLES_VISIBLE, to help people recover
deleted tuples. Of course it is only to be used for disaster recovery.
2005-02-20 04:56:00 +00:00
Tom Lane 3f9aec50e7 Flat file cleanup phase 2: make it work for pg_group. The flat group
file now identifies group members by usesysid not name; this avoids
needing to depend on SearchSysCache which we can't use during startup.
(The old representation was entirely broken anyway, since we did not
regenerate the file following RENAME USER.)  It's only a 95% solution
because if the group membership list is big enough to be toasted out
of line, we cannot read it during startup.  I think this will do for
the moment, until we have time to implement the planned pg_role
replacement for pg_group.
2005-02-20 04:45:59 +00:00
Tom Lane 60b2444cc3 Add code to prevent transaction ID wraparound by enforcing a safe limit
in GetNewTransactionId().  Since the limit value has to be computed
before we run any real transactions, this requires adding code to database
startup to scan pg_database and determine the oldest datfrozenxid.
This can conveniently be combined with the first stage of an attack on
the problem that the 'flat file' copies of pg_shadow and pg_group are
not properly updated during WAL recovery.  The code I've added to
startup resides in a new file src/backend/utils/init/flatfiles.c, and
it is responsible for rewriting the flat files as well as initializing
the XID wraparound limit value.  This will eventually allow us to get
rid of GetRawDatabaseInfo too, but we'll need an initdb so we can add
a trigger to pg_database.
2005-02-20 02:22:07 +00:00
Tom Lane 617d16f4ff New arrangement to always let the bgwriter do checkpoints broke
CHECKPOINT and some other commands in the context of a standalone
backend.  Allow a standalone backend to do its own checkpoints.
2005-02-19 23:16:15 +00:00
Tom Lane 9650d6c7e6 Ensure that the resolved datatype of any unknown Param is propagated
into the sub-SELECT targetlist when it appears in the context
INSERT INTO foo SELECT $1 ...  Per report from Abhijit Menon-Sen.
2005-02-19 19:33:08 +00:00