Commit Graph

9427 Commits

Author SHA1 Message Date
Thomas G. Lockhart 547df0cc85 Support alternate storage scheme of 64-bit integer for date/time types.
Use "--enable-integer-datetimes" in configuration to use this rather
 than the original float8 storage. I would recommend the integer-based
 storage for any platform on which it is available. We perhaps should
 make this the default for the production release.
Change timezone(timestamptz) results to return timestamp rather than
 a character string. Formerly, we didn't have a way to represent
 timestamps with an explicit time zone other than freezing the info into
 a string. Now, we can reasonably omit the explicit time zone from the
 result and return a timestamp with values appropriate for the specified
 time zone. Much cleaner, and if you need the time zone in the result
 you can put it into a character string pretty easily anyway.
Allow fractional seconds in date/time types even for dates prior to 1BC.
Limit timestamp data types to 6 decimal places of precision. Just right
 for a micro-second storage of int8 date/time types, and reduces the
 number of places ad-hoc rounding was occuring for the float8-based types.
Use lookup tables for precision/rounding calculations for timestamp and
 interval types.  Formerly used pow() to calculate the desired value but
 with a more limited range there is no reason to not type in a lookup
 table. Should be *much* better performance, though formerly there were
 some optimizations to help minimize the number of times pow() was called.
Define a HAVE_INT64_TIMESTAMP variable. Based on the configure option
 "--enable-integer-datetimes" and the existing internal INT64_IS_BUSTED.
Add explicit date/interval operators and functions for addition and
 subtraction. Formerly relied on implicit type promotion from date to
 timestamp with time zone.
Change timezone conversion functions for the timetz type from "timetz()"
 to "timezone()". This is consistant with other time zone coersion
 functions for other types.
Bump the catalog version to 200204201.
Fix up regression tests to reflect changes in fractional seconds
 representation for date/times in BC eras.
All regression tests pass on my Linux box.
2002-04-21 19:52:18 +00:00
Thomas G. Lockhart 3fab49325d Include stdio.h and stdlib.h for completeness. 2002-04-21 19:51:44 +00:00
Thomas G. Lockhart 37cfb04094 Make WITHOUT TIME ZONE the default for TIMESTAMP and TIME data types.
This is a big change from past behavior, but the last release was
 designed to handle this correctly for dump/restore upgrades.
Fix up handling of SET value arguments. Allow lists for most options at
 least at the parser level; multiple values may be rejected at the
 command processor of course.
Allow more variations on values for SET commands, including integer and
 float values where formerly stringy fields were required.
Check precision specification for date/time fields against the true
 precision range allowed by the data types. Especially useful with the
 new int8-based storage for these types, where precision is fixed and
 predictable.
Stub out a basic CREATE ASSERTION per SQL9x. Does not do anything (yet) but
 should be augmented as appropriate.
Minor fixups in braces and tabbing.
2002-04-21 19:21:49 +00:00
Thomas G. Lockhart e53f94ad68 Allow more choices for style of value in various SET commands. Formerly,
most required a stringy syntax in the parser; now integers and floats
 can (or should) be handled. There is at least one cheesy error message
 mentioning sending mail to me if there are problems; should be changed
 prior to release.
Allow lists of values from the parser in more cases. If multiple arguments
 were not allowed previously, they probably are not allowed now, but at
 least the data structures being passed around are more consistant across
 more cases.
2002-04-21 19:12:46 +00:00
Thomas G. Lockhart f56e8fec31 Add fields in the control file to check for whether the backend was
compiled for integer date/time storage and to check the length of
 storage for the locale fields in the same data structure.
Slightly reword some of the error messages to be more accurate on
 possible recovery options (e.g. recompile *or* re-initdb).
Bump version number on this file.
2002-04-21 19:08:02 +00:00
Peter Eisentraut d433a3628e Make pg_dump independent of FUNC_MAX_ARGS. 2002-04-21 05:21:18 +00:00
Tom Lane 5a99671515 Fix typo. 2002-04-21 01:03:33 +00:00
Tom Lane b0bcf8aab2 Restructure AclItem representation so that we can have more than eight
different privilege bits (might as well make use of the space we were
wasting on padding).  EXECUTE and USAGE bits for procedures, languages
now are separate privileges instead of being overlaid on SELECT.  Add
privileges for namespaces and databases.  The GRANT and REVOKE commands
work for these object types, but we don't actually enforce the privileges
yet...
2002-04-21 00:26:44 +00:00
Tatsuo Ishii ad201b8d18 Remove --enable-syslog option 2002-04-21 00:22:52 +00:00
Peter Eisentraut eef5c4f0e5 pq_getstring doesn't go through pq_getbyte anymore, for better performance. 2002-04-20 23:35:43 +00:00
Peter Eisentraut 32c6c99e0b Scanner performance improvements
Use flex flags -CF.  Pass the to-be-scanned string around as StringInfo
type, to avoid querying the length repeatedly.  Clean up some code and
remove lex-compatibility cruft.  Escape backslash sequences inline.  Use
flex-provided yy_scan_buffer() function to set up input, rather than using
myinput().
2002-04-20 21:56:15 +00:00
Peter Eisentraut ff4281472a Add missing include. 2002-04-20 03:46:16 +00:00
Tom Lane 6d6ca2166c Change naming rule for ON SELECT rules of views: they're all just
_RETURN now, since there's no need to keep 'em unique anymore.
2002-04-19 23:13:54 +00:00
Tom Lane 201737168c pg_trigger's index on tgrelid is replaced by a unique index on
(tgrelid, tgname).  This provides an additional check on trigger name
uniqueness per-table (which was already enforced by the code anyway).
With this change, RelationBuildTriggers will read the triggers in
order by tgname, since it's scanning using this index.  Since a
predictable trigger ordering has been requested for some time, document
this behavior as a feature.  Also document that rules fire in name
order, since yesterday's changes to pg_rewrite indexing cause that too.
2002-04-19 16:36:08 +00:00
Tom Lane 87d00363cb Make PUBLIC an unreserved word (in fact, not a keyword at all),
per previous discussion.
2002-04-18 21:16:16 +00:00
Tom Lane b3120804ad Rule names are now unique per-relation, rather than unique globally.
DROP RULE and COMMENT ON RULE syntax adds an 'ON tablename' clause,
similar to TRIGGER syntaxes.  To allow loading of existing pg_dump
files containing COMMENT ON RULE, the COMMENT code will still accept
the old syntax --- but only if the target rulename is unique across
the whole database.
2002-04-18 20:01:11 +00:00
Bruce Momjian 2de427d1ef Ant 1.4.1 now requires for jdbc. Mention in HISTORY release notes. 2002-04-18 04:58:13 +00:00
Bruce Momjian a770da9d8d Back out python change, needs delay. 2002-04-18 03:38:30 +00:00
Bruce Momjian 3cd9399d86 Change docs to do 20! rather than larger. 2002-04-18 03:37:13 +00:00
Tom Lane 27a54ae282 Opclasses live in namespaces. I also took the opportunity to create
an 'opclass owner' column in pg_opclass.  Nothing is done with it at
present, but since there are plans to invent a CREATE OPERATOR CLASS
command soon, we'll probably want DROP OPERATOR CLASS too, which
suggests that a notion of ownership would be a good idea.
2002-04-17 20:57:57 +00:00
Tom Lane 6cef5d2549 Operators live in namespaces. CREATE/DROP/COMMENT ON OPERATOR take
qualified operator names directly, for example CREATE OPERATOR myschema.+
( ... ).  To qualify an operator name in an expression you need to write
OPERATOR(myschema.+) (thanks to Peter for suggesting an escape hatch).
I also took advantage of having to reformat pg_operator to fix something
that'd been bugging me for a while: mergejoinable operators should have
explicit links to the associated cross-data-type comparison operators,
rather than hardwiring an assumption that they are named < and >.
2002-04-16 23:08:12 +00:00
Dave Cramer 4da51bfd6d Added some rudimentary table and column tests
added a setup/teardown to create and drop the connection, and table
2002-04-16 15:25:17 +00:00
Dave Cramer 710a711ac3 fixed getColumns as per Panu Outinen's email. At this point have only repaired the bug, haven't made it caseInsensitive 2002-04-16 13:28:44 +00:00
Michael Meskes cc592ed8ea Fixed typo in preproc/type.h 2002-04-16 07:03:56 +00:00
Bruce Momjian 171824087c The patch I sent to -patches a little while ago wasn't applied: it
was in the thread "make BufferGetBlockNumber() a macro". Tom
objected to the original patch, so I prepared a new one which
doesn't change BufferGetBlockNumber() into a macro, it just
cleans up some comments and fixes an assertion. The patch
is attached.

Neil Conway
2002-04-15 23:47:12 +00:00
Bruce Momjian 33d1bb76c6 The attached patch corrects an inaccuracy in src/backend/catalog/README
and fixes a few spelling mistakes in src/bakckend/lmgr/README.

Neil Conway
2002-04-15 23:46:13 +00:00
Bruce Momjian bbae09c2cb CATALOG VERSION UPDATED:
The indexes on most system catalogs are named with the suffix "_index";
not so with TOAST table indexes, which use "_idx". This trivial patch
changes TOAST table index names to use the "_index" suffix for
consistency.

Neil Conway
2002-04-15 23:45:07 +00:00
Bruce Momjian 2036b3fc59 Disable VACUUM from being called from a function because function memory
would be cleared by vacuum;  fix idea from Tom Lane.
2002-04-15 23:39:42 +00:00
Bruce Momjian 5b92d004fa Fix for NOTIFY when NAMEDATALEN is nonstandard in server. Fix idea from
Tom Lane to move string storage to end of structure but keep pointer in
the same location.
2002-04-15 23:35:51 +00:00
Bruce Momjian 394eec1068 Fix for EINTR returns from Win9X socket operations:
In summary, if a software writer implements timer events or other events
 which generate a signal with a timing fast enough to occur while libpq
is inside connect(), then connect returns -EINTR.  The code following
the connect call does not handle this and generates an error message.
The sum result is that the pg_connect() fails.  If the timer or other
event is right on the window of the connect() completion time, the
pg_connect() may appear to work sporadically.  If the event is too slow,
 pg_connect() will appear to always work and if the event is too fast,
pg_connect() will always fail.

David Ford
2002-04-15 23:34:17 +00:00
Tom Lane b66cbc1fa2 Adjust rules for search_path so that pg_catalog is never implicitly
selected as the creation target namespace; to make that happen, you
must explicitly set search_path that way.  This makes initdb a hair
more complex but seems like a good safety feature.
2002-04-15 22:33:21 +00:00
Tatsuo Ishii c4e0c113b8 Fix text_substr bug intrduced in 7.3 development
using Joe Conway's patches (submitted at pgsql-patches on 2002/04/08)
 + small fix.
2002-04-15 07:54:37 +00:00
Tom Lane 3767970cbf Fix oversight in recent change of representation for JOIN alias
variables: JOIN/ON should allow references to contained JOINs.
Per bug report from Barry Lind.
2002-04-15 06:05:49 +00:00
Tom Lane 71dc300a37 The contents of command.c, creatinh.c, define.c, remove.c and rename.c
have been divided according to the type of object manipulated - so ALTER
TABLE code is in tablecmds.c, aggregate commands in aggregatecmds.c and
so on.

A few common support routines remain in define.c (prototypes in
src/include/commands/defrem.h).

No code has been changed except for includes to reflect the new files.
The prototypes for aggregatecmds.c, functioncmds.c, operatorcmds.c,
and typecmds.c remain in src/include/commands/defrem.h.

From John Gray <jgray@azuli.co.uk>
2002-04-15 05:22:04 +00:00
Hiroshi Inoue ab1ead6b97 1) Fix a bug about reporting varchar info thanks to Aceto.
2) Introcuced 3 drivers.
3) The version is now 7.02.0001.
2002-04-15 02:46:00 +00:00
Peter Eisentraut 2e32eca8d0 Allow detection of collateindex.pl in stylesheet directory or in path,
which covers some recent installation schemes.

Add Mandrake installation layout to directories to check for stylesheets.

Allow documentation build to proceed if stylesheets were not found, in case
the stylesheets might be found through the SGML catalog mechanism.
2002-04-14 17:23:20 +00:00
Bruce Momjian 872911bc41 Fix comment dashes. 2002-04-14 16:47:16 +00:00
Michael Meskes 70fb71f487 - Synced preproc.y with gram.y
- Fixed one bug in structure handling resulting in using sizeof indicator instead of variable.
2002-04-14 08:59:16 +00:00
Bruce Momjian 7603c42edf Rod's patch does what it is supposed to do, but it also includes
some old code to add PK constraints to CREATE TABLE. That stuff
had been removed as part of my original patch for pg_dump a
little while ago.

The attached patch fixes this by removing (again :-) ) the
code in dumpTables() to perform PK creation during CREATE
TABLE. I briefly tested it locally and it fixes both of
Tom's test cases.

Please apply.

Cheers,

Neil

--
Neil Conway <neilconway@rogers.com>
2002-04-13 19:57:18 +00:00
Bruce Momjian b73859db8c Patch against 7.2.1 sources. Uses Solaris Intimate Shared Memory
for Solaris on SPARC.  Scott Brunza (sbrunza@sonalysts.com) gets
credit for identifying the issue, making the change, and doing
the regression tests.

Earlier testing on 7.2rc2 and 7.2 showed performance gains of
1% to 10% on pgbench, osdb-pg, and some locally developed apps.

Solaris Intimate Shared Memory is described in "SOLARIS INTERNALS
Core Kernel Components" by Jim Mauro and Richard McDougall,
Copyright 2001 Sun Microsystem, Inc.  ISBN 0-13-022496-0

P.J. "Josh" Rovero
2002-04-13 19:52:51 +00:00
Tom Lane 9999f5a10e Checking to decide whether relations are system relations now depends
on the namespace not the name; pg_ is not a reserved prefix for table
names anymore.  From Fernando Nasser.
2002-04-12 20:38:31 +00:00
Tom Lane 79b60cb132 Tweak error message wording. 2002-04-12 19:11:49 +00:00
Bruce Momjian 0847fea6b9 Allow prompting of create/drop user to handle spaces. 2002-04-12 09:42:32 +00:00
Bruce Momjian 5804a7ce3e Allow dropdb and others to use identifiers with spaces; IFS cleanup for
pg_dumpall.
2002-04-12 09:37:11 +00:00
Bruce Momjian 5129e1bde6 Update new Russian FAQ. 2002-04-12 09:17:10 +00:00
Hiroshi Inoue 40eb5495c9 1) Fix a bug in declare/fetch mode.
2) Suppress some error logs for the request to other drivers.
2002-04-12 08:03:12 +00:00
Bruce Momjian 50b5d4bf76 Add mention of function CREATE INDEX usage. 2002-04-11 23:20:04 +00:00
Bruce Momjian 0c9790e616 Cleanup in use of IFS. 2002-04-11 21:22:27 +00:00
Tom Lane a521d5a25e Update obsolete syntax in example of inheritance. 2002-04-11 21:18:50 +00:00
Bruce Momjian 2dd06b0593 Make sure leading/trailing/multiple consecutive space/tab in db/user/group
names are handled OK.
2002-04-11 21:16:28 +00:00