Tom Lane [Mon, 17 Jan 2000 23:57:48 +0000 (23:57 +0000)]
setheapoverride() is history. Uses replaced with CommandCounterIncrement()
where necessary --- several of them didn't really need it, though.
tqual-checking macros simplified accordingly.
Tom Lane [Mon, 17 Jan 2000 02:59:46 +0000 (02:59 +0000)]
Modify libpq's pqexpbuffer to eliminate length restriction on how much
data can be formatted per call. This requires relying on vsnprintf().
On machines that haven't got vsnprintf, link in the version from
backend/port/.
Tom Lane [Mon, 17 Jan 2000 02:04:16 +0000 (02:04 +0000)]
Pass atttypmod to CoerceTargetExpr, so that it can pass it on to
coerce_type, so that the right things happen when coercing a previously-
unknown constant to a destination data type.
Tom Lane [Mon, 17 Jan 2000 01:29:07 +0000 (01:29 +0000)]
Hmm, numeric array type was missing too. Added.
Of the standard types, only 'timestamp' seems not to have an array type;
should it be added, or are we going to remove that type for 7.0 anyway?
Tom Lane [Mon, 17 Jan 2000 00:14:49 +0000 (00:14 +0000)]
Create a new parsetree node type, TypeCast, so that transformation of
SQL cast constructs can be performed during expression transformation
instead of during parsing. This allows constructs like x::numeric(9,2)
and x::int2::float8 to behave as one would expect.
Tom Lane [Sun, 16 Jan 2000 21:37:50 +0000 (21:37 +0000)]
Rearrange coding in COPY so that expansible string buffer for data being
read is reused for successive attributes, instead of being deleted and
recreated from scratch for each value read in. This reduces palloc/pfree
overhead a lot. COPY IN still seems to be noticeably slower than it was
in 6.5 --- we need to figure out why. This change takes care of the only
major performance loss I can see in copy.c itself, so the performance
problem is at a lower level somewhere.
Tom Lane [Sun, 16 Jan 2000 21:18:52 +0000 (21:18 +0000)]
Sigh, I'm an idiot ... I broke the async startup logic a couple days ago,
by creating a race condition. It wasn't waiting for select() to say
write-ready immediately after connect, which meant that you might get
an unhelpful 'broken pipe' error message if connect failed, rather than
the intended error message.
Tom Lane [Sun, 16 Jan 2000 19:57:00 +0000 (19:57 +0000)]
Repair breakage of inherited constraint expressions --- needed a
CommandCounterIncrement to make new relation visible before trying to
parse/deparse the expressions. Also, eliminate unnecessary
setheapoverride calls in AddNewAttributeTuples.
Tom Lane [Sun, 16 Jan 2000 03:54:58 +0000 (03:54 +0000)]
Clean up pg_dump coredumps caused by change of output formatting for
oidvector/int2vector. pg_dump code was assuming that it would see
exactly FUNC_MAX_ARGS integers in the string returned by the backend.
That's no longer true. (Perhaps that change wasn't such a good idea
after all --- will it break any other applications??)
Tom Lane [Sat, 15 Jan 2000 23:42:49 +0000 (23:42 +0000)]
Clean up problems with rounding/overflow code in NUMERIC, particularly
the case wherein zero was rejected for a field like NUMERIC(4,4).
Miscellaneous other code beautification efforts.
Tom Lane [Sat, 15 Jan 2000 22:43:25 +0000 (22:43 +0000)]
Fix a passel of problems with incorrect calls to typinput and typoutput
functions, which would lead to trouble with datatypes that paid attention
to the typelem or typmod parameters to these functions. In particular,
incorrect code in pg_aggregate.c explains the platform-specific failures
that have been reported in NUMERIC avg().
Tom Lane [Sat, 15 Jan 2000 19:18:24 +0000 (19:18 +0000)]
Now that new psql is fflush()'ing properly, it emerges that several
regress test expected outputs were committed with NOTICEs appearing out
of order. Update to correct results.
Peter Eisentraut [Sat, 15 Jan 2000 18:30:35 +0000 (18:30 +0000)]
- Allow array on int8
- Prevent permissions on indexes
- Instituted --enable-multibyte option and tweaked the MB build process where necessary
- initdb prompts for superuser password
Peter Eisentraut [Fri, 14 Jan 2000 22:11:38 +0000 (22:11 +0000)]
* User management commands no longer user pg_exec_query_dest -> more robust
* 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.
Tom Lane [Fri, 14 Jan 2000 05:33:15 +0000 (05:33 +0000)]
Clean up some problems in new asynchronous-connection logic
in libpq --- mostly, poor response to error conditions. You now actually
get to see the postmaster's 'The Data Base System is starting up' message,
which you didn't before. I suspect the SSL code is still broken though.
Tom Lane [Fri, 14 Jan 2000 00:53:21 +0000 (00:53 +0000)]
Revise quoting conventions in outfuncs/readfuncs so that nodeRead doesn't
choke on relation or attribute names containing spaces, quotes, or other
special characters. This fixes a TODO item. It also forces initdb,
since stored rule strings change.
Tatsuo Ishii [Thu, 13 Jan 2000 01:08:14 +0000 (01:08 +0000)]
Add UDC (User Defined Characters) support to SJIS/EUC_JP conversion
Update README so that it reflects all source file names
Add an entry to make sjistest (testing between SJIS/EUC_JP conversion)
Hiroshi Inoue [Mon, 10 Jan 2000 06:30:56 +0000 (06:30 +0000)]
Improve cache invalidation handling. Eespecially
this would fix TODO
* elog() flushes cache, try invalidating just entries from
current xact, perhaps using invalidation cache
Tom Lane [Mon, 10 Jan 2000 04:09:50 +0000 (04:09 +0000)]
Repair subtle VACUUM bug that led to 'HEAP_MOVED_IN was not expected'
errors. VACUUM normally compacts the table back-to-front, and stops
as soon as it gets to a page that it has moved some tuples onto.
(This logic doesn't make for a complete packing of the table, but it
should be pretty close.) But the way it was checking whether it had
got to a page with some moved-in tuples was to look at whether the
current page was the same as the last page of the list of pages that
have enough free space to be move-in targets. And there was other
code that would remove pages from that list once they got full.
There was a kluge that prevented the last list entry from being
removed, but it didn't get the job done. Fixed by keeping a separate
variable that contains the largest block number into which a tuple
has been moved. There's no longer any need to protect the last element
of the fraged_pages list.
Also, fix NOTICE messages to describe elapsed user/system CPU time
correctly.