Tatsuo Ishii [Fri, 12 Oct 2001 02:08:34 +0000 (02:08 +0000)]
Add a new function "pg_client_encoding" which returns the current client
side encoding name. This is necessary for client API's such as JDBC
to perform correct encoding conversions. See my email "[HACKERS]
pg_client_encoding" 10 Sep 2001.
Tom Lane [Fri, 12 Oct 2001 00:07:15 +0000 (00:07 +0000)]
Break transformCreateStmt() into multiple routines and make
transformAlterStmt() use these routines, instead of having lots of
duplicate (not to mention should-have-been-duplicate) code.
Adding a column with a CHECK constraint actually works now,
and the tests to reject unsupported DEFAULT and NOT NULL clauses
actually fire now. ALTER TABLE ADD PRIMARY KEY works, modulo
having to have created the column(s) NOT NULL already.
Bruce Momjian [Thu, 11 Oct 2001 16:54:18 +0000 (16:54 +0000)]
Tatsuo Ishii <t-ishii@sra.co.jp> writes:
> As you can see, psql reconnect as any user if the password is same as
> foo. Of course this is due to the careless password setting, but I
> think it's better to prompt ANY TIME the user tries to switch to
> another user. Comments?
Yeah, I agree. Looks like a simple change in dbconnect():
/*
* Use old password if no new one given (if you didn't have an old
* one, fine)
*/
if (!pwparam && oldconn)
pwparam = PQpass(oldconn);
to
/*
* Use old password (if any) if no new one given and we are
* reconnecting as same user
*/
if (!pwparam && oldconn && PQuser(oldconn) && userparam &&
strcmp(PQuser(oldconn), userparam) == 0)
pwparam = PQpass(oldconn);
Barry Lind [Tue, 9 Oct 2001 20:47:35 +0000 (20:47 +0000)]
This patch fixes a bug introduced in the jdbc bytea support patch.
That patch broke the ability to read data from binary cursors.
--Barry Lind
Modified Files:
pgsql/src/interfaces/jdbc/org/postgresql/Connection.java
pgsql/src/interfaces/jdbc/org/postgresql/ResultSet.java
pgsql/src/interfaces/jdbc/org/postgresql/core/QueryExecutor.java
pgsql/src/interfaces/jdbc/org/postgresql/jdbc1/Connection.java
pgsql/src/interfaces/jdbc/org/postgresql/jdbc1/ResultSet.java
pgsql/src/interfaces/jdbc/org/postgresql/jdbc2/Connection.java
pgsql/src/interfaces/jdbc/org/postgresql/jdbc2/ResultSet.java
pgsql/src/interfaces/jdbc/org/postgresql/jdbc2/UpdateableResultSet.java
Bunch of copy fitting and style sheet tweakage to get decent looking print
output (from pdfjadetex). Also updated instructions to install documentation
processing toolchain.
Tom Lane [Tue, 9 Oct 2001 15:59:56 +0000 (15:59 +0000)]
Change plpgsql compiler so that all elogs are trapped and a suitable
NOTICE added about error location (same method already used by plpgsql
executor). Add checking of pg_proc row xmin/cmin to ensure that
plpgsql functions will be recompiled after they've been modified by
CREATE OR REPLACE FUNCTION.
Tom Lane [Tue, 9 Oct 2001 04:15:38 +0000 (04:15 +0000)]
Change plpgsql to depend on main parser's type-declaration grammar,
rather than having its own somewhat half-baked notion of what a type
declaration looks like. This is necessary now to ensure that plpgsql
will think a 'timestamp' variable has the same semantics as 'timestamp'
does in the main SQL grammar; and it should avoid divergences in future.
Tom Lane [Mon, 8 Oct 2001 21:48:51 +0000 (21:48 +0000)]
Another go-round with FigureColname, to produce less surprising results
for nested typecasts. It now produces a column header of 'timestamptz'
for 'SELECT CURRENT_TIMESTAMP', rather than 'text' as it was doing for
awhile there.
Tom Lane [Mon, 8 Oct 2001 21:46:59 +0000 (21:46 +0000)]
Fix transformExpr() to not scribble on its input datastructure while
transforming CASE expressions. This was definitely confusing
FigureColname, and might lead to bad things elsewhere as well.
Tom Lane [Mon, 8 Oct 2001 19:55:07 +0000 (19:55 +0000)]
Fix ruleutils to depend on format_type, rather than having a private
copy of code that knows about displaying types with typmod info.
Needed so that it does the right thing with timestamp datatypes now.
Tom Lane [Sat, 6 Oct 2001 23:21:45 +0000 (23:21 +0000)]
Rearrange fmgr.c and relcache so that it's possible to keep FmgrInfo
lookup info in the relcache for index access method support functions.
This makes a huge difference for dynamically loaded support functions,
and should save a few cycles even for built-in ones. Also tweak dfmgr.c
so that load_external_function is called only once, not twice, when
doing fmgr_info for a dynamically loaded function. All per performance
gripe from Teodor Sigaev, 5-Oct-01.
Bruce Momjian [Fri, 5 Oct 2001 19:05:54 +0000 (19:05 +0000)]
files attached are Traditional Chinese translations translated
and modified from Simplified Chinese translations for backend,
pgsql, pg_dump and libpq. I've appended their names to zh_TW.po.
Tom Lane [Fri, 5 Oct 2001 17:28:13 +0000 (17:28 +0000)]
Further cleanup of dynahash.c API, in pursuit of portability and
readability. Bizarre '(long *) TRUE' return convention is gone,
in favor of just raising an error internally in dynahash.c when
we detect hashtable corruption. HashTableWalk is gone, in favor
of using hash_seq_search directly, since it had no hope of working
with non-LONGALIGNable datatypes. Simplify some other code that was
made undesirably grotty by promixity to HashTableWalk.
Tom Lane [Thu, 4 Oct 2001 22:39:34 +0000 (22:39 +0000)]
Don't try to hack pg_description if not superuser. (Really want a
COMMENT ON LARGE OBJECT command instead, but no time for it now.)
Fix some code that would not work with OIDs > 2G.
Tom Lane [Thu, 4 Oct 2001 22:06:46 +0000 (22:06 +0000)]
Consider interpreting a function call as a trivial (binary-compatible)
type coercion after failing to find an exact match in pg_proc, but before
considering interpretations that involve a function call with one or
more argument type coercions. This avoids surprises wherein what looks
like a type coercion is interpreted as coercing to some third type and
then to the destination type, as in Dave Blasby's bug report of 3-Oct-01.
See subsequent discussion in pghackers.
Tom Lane [Thu, 4 Oct 2001 22:00:10 +0000 (22:00 +0000)]
Ooops, I was a little too enthusiastic about suppressing default
index opclasses; they might be default for some other datatype,
in which case we mustn't suppress 'em.
Bruce Momjian [Thu, 4 Oct 2001 15:47:41 +0000 (15:47 +0000)]
This patch adds reporting of tcl global variable errorInfo
which contains stack trace.
One problem, after this patch errors will generate multiline ERROR
messages. Is it acceptable or do I need split it and generate multiple
singleline messages?
Bruce Momjian [Thu, 4 Oct 2001 15:46:49 +0000 (15:46 +0000)]
Attached is a patch which deals with
select 'id' as xxx from table
The issue is:
When the driver gets a data type which does not map into the SQL.Types
it attempts to load the object into a java object. Eventually throwing
an exception indicating that the type "unknown" was not found.
Since the backend defaults "unknown" types to text it was suggested that
the jdbc driver do the same.
This patch does just that.
I have tested it on the above select statement as well as a small
program that serializes, and deserializes a class
Bruce Momjian [Thu, 4 Oct 2001 15:45:49 +0000 (15:45 +0000)]
Using strtol() on int8 values (input parameters or result sets) in
plpython would result in numeric overflows causing the backend to
terminate abruptly.
Bruce Momjian [Thu, 4 Oct 2001 15:44:14 +0000 (15:44 +0000)]
I've just finished the Chinese NLS support(zh_CN part) files
translation,
the attachement is those four files.
(.tar.gz file, with the directory, root is $PGSRC).
Tested on some Linux platform.
Bruce Momjian [Thu, 4 Oct 2001 15:38:28 +0000 (15:38 +0000)]
Attached please find an initiation of the
NLS effort for the 'postgresql' component.
It includes 'ru.po', which should be added
to /src/backend/po/ and a typical patch for
nls.mk with the 'ru' entry added in
the AVAIL_LANGUAGES.
I'll submit a patch with more translations
for pg_dump once CVSweb becomes available.
CVSweb for me right now is the only way
to get to the source code until my system
is completely setup by the end of the week.
Tom Lane [Wed, 3 Oct 2001 21:58:28 +0000 (21:58 +0000)]
Consistently use gcc's __attribute__((format)) to check sprintf-style
format strings wherever possible. Remarkably, this exercise didn't
turn up any inconsistencies, but it seems a good idea for the future.
Tom Lane [Wed, 3 Oct 2001 20:54:22 +0000 (20:54 +0000)]
DROP AGGREGATE and COMMENT ON AGGREGATE now accept the expected syntax
'aggname (aggtype)'. The old syntax 'aggname aggtype' is still accepted
for backwards compatibility. Fix pg_dump, which was actually broken for
most cases of user-defined aggregates. Clean up error messages associated
with these commands.