- 25 Feb, 2005 4 commits
-
-
Bruce Momjian authored
-
Bruce Momjian authored
-
Bruce Momjian authored
Greg Sabino Mullan
-
Bruce Momjian authored
> * Improve psql's handling of multi-line queries
-
- 24 Feb, 2005 5 commits
-
-
Bruce Momjian authored
< like towupper(). > like towupper(). However, UTF8 already works with normal > locales but provides no ordering.
-
Bruce Momjian authored
> o -Change PL/PgSQL to use palloc() instead of malloc()
-
Tom Lane authored
verified that AC_TRY_RUN works.
-
Tom Lane authored
-
Tom Lane authored
-
- 23 Feb, 2005 4 commits
-
-
Neil Conway authored
subsequently referenced. Found by: Coverity Fixed by: Sean Chittenden
-
Neil Conway authored
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.
-
Tom Lane authored
This would be a completely inappropriate place to apply localization anyway.
-
Bruce Momjian authored
-
- 22 Feb, 2005 7 commits
-
-
Tom Lane authored
-
Neil Conway authored
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.
-
Bruce Momjian authored
nochar: /* nothing */ ; /* semicolon required because a goto has to be attached to a statement */
-
Bruce Momjian authored
macros around strings that were missing them.
-
Bruce Momjian authored
> * Add internationalized message strings
-
Bruce Momjian authored
+ # 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.
-
Bruce Momjian authored
8.0.X.
-
- 21 Feb, 2005 11 commits
-
-
Bruce Momjian authored
Backpatch to 8.0.X which doesn't work right now.
-
Bruce Momjian authored
< * Add the client IP address to pg_stat_activity > * Add the client IP address and port to pg_stat_activity
-
Bruce Momjian authored
Viktor Vislobokov
-
Bruce Momjian authored
< * 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. >
-
Teodor Sigaev authored
-
Teodor Sigaev authored
-
Neil Conway authored
point to its new location.
-
Neil Conway authored
-
Bruce Momjian authored
< * 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
-
Neil Conway authored
-
Neil Conway authored
Windows. Patch from Magnus Hagander.
-
- 20 Feb, 2005 8 commits
-
-
Tom Lane authored
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.
-
Tom Lane authored
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.
-
Bruce Momjian authored
-
Bruce Momjian authored
-
Bruce Momjian authored
-
Bruce Momjian authored
deleted tuples. Of course it is only to be used for disaster recovery.
-
Tom Lane authored
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.
-
Tom Lane authored
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.
-
- 19 Feb, 2005 1 commit
-
-
Tom Lane authored
CHECKPOINT and some other commands in the context of a standalone backend. Allow a standalone backend to do its own checkpoints.
-