Commit Graph

11113 Commits

Author SHA1 Message Date
Tom Lane
afe1185cf0 Remove unnecessary dt2local() call. 2003-04-07 15:04:03 +00:00
Peter Eisentraut
cb1d036acb Generate pg_config.h.in by autoheader. Separate out manually editable
parts.  Standardize spelling of comments in pg_config.h.
2003-04-06 22:45:23 +00:00
Bruce Momjian
3a8f67d091 Fix compile problem with Win32 macro used inside another macro. 2003-04-05 19:54:12 +00:00
Bruce Momjian
d46e643822 Add Win32 path handling for / vs. \ and drive letters. 2003-04-04 20:42:13 +00:00
Bruce Momjian
9bad936f67 Handle cp, rm, and exec for Win32. 2003-04-04 20:40:45 +00:00
Tom Lane
9c264975d5 Fix some signed-vs-unsigned-int issues; make print_aligned_vertical
safe for zero-column tables.
2003-04-04 15:48:38 +00:00
Tom Lane
eb5e4c58d1 Tighten up register usage for inline PPC version of tas(). 2003-04-04 06:57:39 +00:00
Tom Lane
cd35d601b8 Put the isync where it's supposed to be. 2003-04-04 05:32:30 +00:00
Tom Lane
d685417fbb Avoid repeated computation of the constants date2j(1970, 1, 1) and
date2j(2000, 1, 1).  Should make for some marginal speed improvement
in date/time operations.
2003-04-04 04:50:44 +00:00
Tom Lane
3b4ca4c0d9 Code review for pg_stat_get_backend_activity_start patch --- fix
return type, make protection condition agree with recent change to
pg_stat_get_backend_activity, clean up documentation.
2003-04-04 03:03:54 +00:00
Tom Lane
a385186ff7 Remove zero_damaged_pages from postgresql.conf.sample; the only way to
find out about it is to read the documentation that tells you how
dangerous it is.  Add default_transaction_read_only to documentation;
seems to have been overlooked in patch that added read-only transactions.
Clean up check_guc comparison script, which has been suffering bit rot.
2003-04-03 23:32:47 +00:00
Tom Lane
f1fb9e0097 Prevent EXPLAIN (without ANALYZE) SELECT ... INTO from creating an INTO
table.  Needed due to recent change that makes us call ExecutorStart
even when not planning to carry out the query.
2003-04-03 22:35:48 +00:00
Tom Lane
14e6823c7c Don't re-invent the strchr() wheel. 2003-04-03 21:50:23 +00:00
Tom Lane
61c9ea0f3c Fix load_user/load_group to not leave dangling pointers around if the
config files are present on one pass and not present on a later pass.
2003-04-03 21:25:02 +00:00
Tom Lane
c19354dfb5 const-ify functions used with completion_matches(), to suppress
cast-away-const warnings from compilers pickier than gcc.
2003-04-03 20:18:16 +00:00
Tom Lane
906dce0464 Repair incorrect checking of grouped/ungrouped variables in the presence
of unnamed joins; per pghackers discussion 31-Mar-03.
2003-04-03 18:04:09 +00:00
Bruce Momjian
cdbd298b3a Add prototype for toupper/tolower(). 2003-04-03 05:25:41 +00:00
Tom Lane
ec54a6efcf Fix buffer overrun in to_ascii(), per report from Guido Notari. 2003-04-02 21:07:59 +00:00
Tom Lane
794162bb1a Fix convSockAddr6to4(): eliminate bogus assumptions about byte ordering,
remove useless SockAddr_ntop() call.  Per report from Andreas Pflug.
2003-04-02 20:00:21 +00:00
Tom Lane
d6f1aa9760 Fix platform-dependent failure introduced by recent to_char changes
(ye good olde uninitialized-local-variable).
2003-04-02 02:33:52 +00:00
Tom Lane
1d650da2e5 This is a derived file and should never have been added to CVS. 2003-04-02 00:58:08 +00:00
Tom Lane
1da6eb7fda Whack getaddrinfo() patch around until it works, more or less, on
machines without IPv6.  Or at least it works on HPUX 10.20 ...
2003-04-02 00:49:28 +00:00
Tom Lane
f8a15f632d Add missing semicolon. 2003-04-01 23:42:55 +00:00
Michael Meskes
7b85b730f5 More patches for informix compatibility. 2003-04-01 14:37:25 +00:00
Bruce Momjian
d307a954e7 Skip START WITH in sequence definition when it's the default value --
and hasn't been called yet.

Fixes bug where it wasn't supplied (due to being NULL).

Rod Taylor
2003-03-31 20:48:45 +00:00
Bruce Momjian
50be3e5efe The following patch cleans up the deferred trigger mechanism. There is
an unneeded memory context and some variables that are not used anymore.
It's pretty trivial and the regression tests pass fine.  There's no
change in functionality, only deletion of unused code.  I left an empty
function because maybe I'll need it for nested transactions.

Alvaro Herrera
2003-03-31 20:47:51 +00:00
Tom Lane
7cd30e1590 TestConfiguration returns int, not bool. This mistake is relatively
harmless on signed-char machines but would lead to core dump in the
deadlock detection code if char is unsigned.  Amazingly, this bug has
been here since 7.1 and yet wasn't reported till now.  Thanks to Robert
Bruccoleri for providing the opportunity to track it down.
2003-03-31 20:32:29 +00:00
Bruce Momjian
5e1c330227 Properly document default value of log_min_error_statement in postgresql.conf. 2003-03-30 21:38:02 +00:00
Michael Meskes
5e37f16be0 Forgot two new files and one that was moved. 2003-03-30 13:26:09 +00:00
Michael Meskes
999f12982e Moved Informix stuff to its own compat library. Interval datetype is now fully functional. 2003-03-30 11:48:19 +00:00
Peter Eisentraut
82a91eb54e Simplify the socket handling code by supplying a replacement getaddrinfo()
function if the OS doesn't provide one.
2003-03-29 11:31:52 +00:00
Bruce Momjian
bf7ca0a769 [ Backpatch to 7.3.X.]
SSL_read/write can error needing ERROR_WANT_READ or ERROR_WANT_WRITE.
2003-03-29 05:00:15 +00:00
Bruce Momjian
0184db50a0 [ Backpatch to 7.3.X.]
typing error in src/backend/libpq/be-secure.c ???

Long Description
In src/backend/libpq/be-secure.c: secure_write
on SSL_ERROR_WANT_WRITE call secure_read instead
secure_write again. May be is this a typing error?

Sergey N. Yatskevich (syatskevich@n21lab.gosniias.msk.ru)
2003-03-29 03:56:44 +00:00
Tom Lane
fd42262836 Add code to apply some simple sanity checks to the header fields of a
page when it's read in, per pghackers discussion around 17-Feb.  Add a
GUC variable zero_damaged_pages that causes the response to be a WARNING
followed by zeroing the page, rather than the normal ERROR; this is per
Hiroshi's suggestion that there needs to be a way to get at the data
in the rest of the table.
2003-03-28 20:17:13 +00:00
Bruce Momjian
c7d7788d07 Fix NULL casting warning, pointed out by Joe Conway 2003-03-28 16:34:50 +00:00
Tom Lane
1bd159e4e9 Fix bogus coding of SET DEFAULT ri triggers ... or at least make it less
bogus than it was.  Per bug report from Adrian Pop.
2003-03-27 19:25:40 +00:00
Bruce Momjian
15b9e2c5ff Add <stdlib> to add calloc() prototype. 2003-03-27 17:25:34 +00:00
Bruce Momjian
6f2d02d306 Fix syntax error in to_char fixes --- was defining variable in main code
block, ala C++.
2003-03-27 17:10:55 +00:00
Bruce Momjian
9b59ddfb40 It may not be obvious to you, but the plpython regression tests
include output that vary depending on the python build one is
running. Basically, the order of keys in a dictionary is
non-deterministic, and that part of the test fails for me regularly.

I rewrote the test to work around this problem, and include a patch
file with that change and the change to the expected otuput as well.

Mike Meyer
2003-03-27 16:58:21 +00:00
Bruce Momjian
c75d65485d New \d format:
Example:

test=# \d test
     Table "public.test"
 Column |  Type   | Modifiers
--------+---------+-----------
 a      | integer | not null
Indexes:
    "test_pkey" PRIMARY KEY btree (a)
Check Constraints:
    "$2" CHECK (a > 1)
Foreign Key Constraints:
    "$1" FOREIGN KEY (a) REFERENCES parent(b)
Rules:
    myrule AS ON INSERT TO test DO INSTEAD NOTHING
Triggers:
    "asdf asdf" AFTER INSERT OR DELETE ON test FOR EACH STATEMENT EXECUTE
PROCEDURE update_pg_pwd_and_pg_group(),
    mytrigger AFTER INSERT OR DELETE ON test FOR EACH ROW EXECUTE PROCEDURE
update_pg_pwd_and_pg_group()

I have minimised the double quoting of identifiers as much as I could
easily, and I will submit another patch when I have time to work on it that
will use a 'fmtId' function to determine it exactly.

I think it's a significant improvement in legibility...

Obviously the table example above is slightly degenerate in that not many
tables in production have heaps of (non-constraint) triggers and rules.

Christopher Kings-Lynne
2003-03-27 16:57:39 +00:00
Bruce Momjian
5e8499d995 Add new file. 2003-03-27 16:55:11 +00:00
Bruce Momjian
4b0b8dadd2 Add new files. 2003-03-27 16:53:15 +00:00
Bruce Momjian
54f7338fa1 This patch implements holdable cursors, following the proposal
(materialization into a tuple store) discussed on pgsql-hackers earlier.
I've updated the documentation and the regression tests.

Notes on the implementation:

- I needed to change the tuple store API slightly -- it assumes that it
won't be used to hold data across transaction boundaries, so the temp
files that it uses for on-disk storage are automatically reclaimed at
end-of-transaction. I added a flag to tuplestore_begin_heap() to control
this behavior. Is changing the tuple store API in this fashion OK?

- in order to store executor results in a tuple store, I added a new
CommandDest. This works well for the most part, with one exception: the
current DestFunction API doesn't provide enough information to allow the
Executor to store results into an arbitrary tuple store (where the
particular tuple store to use is chosen by the call site of
ExecutorRun). To workaround this, I've temporarily hacked up a solution
that works, but is not ideal: since the receiveTuple DestFunction is
passed the portal name, we can use that to lookup the Portal data
structure for the cursor and then use that to get at the tuple store the
Portal is using. This unnecessarily ties the Portal code with the
tupleReceiver code, but it works...

The proper fix for this is probably to change the DestFunction API --
Tom suggested passing the full QueryDesc to the receiveTuple function.
In that case, callers of ExecutorRun could "subclass" QueryDesc to add
any additional fields that their particular CommandDest needed to get
access to. This approach would work, but I'd like to think about it for
a little bit longer before deciding which route to go. In the mean time,
the code works fine, so I don't think a fix is urgent.

- (semi-related) I added a NO SCROLL keyword to DECLARE CURSOR, and
adjusted the behavior of SCROLL in accordance with the discussion on
-hackers.

- (unrelated) Cleaned up some SGML markup in sql.sgml, copy.sgml

Neil Conway
2003-03-27 16:51:29 +00:00
Bruce Momjian
a6699f6185 Attached are two patches for psql's tab-completion.c.
The first cleans up a couple of minor errors and ommissions
and adds tab completion support to more slash commands, e.g.
\dv.

The second is an attempt to add tab completion for schemas
and fully qualified relation names (e.g. public.mytable ).
I think this covers the TODO-item:
"Allow psql to do table completion for SELECT * FROM schema_part and table
completion for SELECT * FROM schema_name."

This happens via union selects querying:
 - relation_name in current search path;
 - schema_name;
 - schema.relation_name
matching the current input string.

E.g:
  SELECT p[TAB]
will produce a list of all appropriate relation names in the current search
path which begin with 'p', and also all schema names which begin with 'p';
  \d pub[TAB]
will produce any relation names in the current search path and also
any schema names beginning with 'pub';
  \d public.[TAB]
will produce a list of all relations in the schema 'public';
  \d public.my[TAB]
produces all relation names beginning with 'my' in schema 'public'.

It seems to work for me; comments, suggestions, particularly regarding
the coding and queries, are very welcome.

Note that tables, indexes, views and sequences relations in the
'pg_catalog' namespace are excluded even though they are in
the current search path. I found not doing this produced annoying behaviour
when expanding names beginning with 'p'. People who work with system
tables a lot may not like this though; I can look for another solution
if necessary.

Ian Barwick
2003-03-27 16:45:01 +00:00
Bruce Momjian
9d6f5ee860 Adds
ALTER TABLE foo CLUSTER ON bar;

In pg_dumps, to preserve cluster settings.

Christopher Kings-Lynne
2003-03-27 16:43:07 +00:00
Bruce Momjian
b099d9e7eb Reorder language creation to restore constistently.
Laurent FAILLIE
2003-03-27 16:39:17 +00:00
Bruce Momjian
7a3e7b64ac to_char fixes, Karel Zak 2003-03-27 16:35:31 +00:00
Tom Lane
bf576cc014 GetTupleForTrigger must use outer transaction's command counter for time
qual checking, not GetCurrentCommandId.  Per test case from Steve Wolfe.
2003-03-27 14:33:11 +00:00
Michael Meskes
89508a8492 More changes to pgtypeslib and set optimization to -O1. 2003-03-27 14:29:17 +00:00
Peter Eisentraut
5e5c5cd31a Merge documentation into one book. (Build with "make html".) Replace
vague cross-references with real links.
2003-03-25 16:15:44 +00:00
Tom Lane
2c19928301 plpgsql can assign to subscripted variables now, e.g.
x[42] := whatever;
The facility is pretty primitive because it doesn't do array slicing and
it has the same semantics as array update in SQL (array must already
be non-null, etc).  But it's a start.
2003-03-25 03:16:41 +00:00
Dave Cramer
9e29b32e78 patch to notify listeners on error from Csaba Nagy 2003-03-25 02:46:23 +00:00
Bruce Momjian
f1792b932c Use PQfreemem() consistently, and document its use for Notify.
Keep PQfreeNotify() around for binary compatibility.
2003-03-25 02:44:36 +00:00
Dave Cramer
6a19c6dccf added DISTINCT to the query to get cross reference. This is required when two columns in a table are both foreign keys to another table. From Peter Royal proyal@pace2020.com 2003-03-25 02:28:45 +00:00
Dave Cramer
326b2f96ae fixed problem where information from previous updates was leaking into subsequent updates patch from Shawn Green, slightly modified 2003-03-25 02:24:07 +00:00
Tom Lane
316c5cbfd3 Factor out duplicate code for computing values of PLpgSQL_datum items.
This is to help localize the changes needed for adding a new kind of
PLpgSQL_datum (like, say, an array element...)
2003-03-25 00:34:24 +00:00
Tom Lane
6ba159f9cf Ignore SIGXFSZ (if platform has it), so that ulimit violations work like
disk-full conditions instead of provoking a backend crash.  Per suggestion
from Frederic Surleau.
2003-03-24 22:40:14 +00:00
Tom Lane
fddc2d94ce Modify keys_are_unique optimization to release buffer pins before it
returns NULL.  This avoids out-of-buffers failures during many-way
indexscans, as in Shraibman's complaint of 21-Mar.
2003-03-24 21:42:33 +00:00
Bruce Momjian
346182ca92 Add comment to postgresql.conf:
#search_path = '$user,public'   # schema names
2003-03-24 20:39:10 +00:00
Bruce Momjian
8670e3588f Prevent multiple queries in a single string into a single transaction
when autocommit is off, and document grouping when autocommit is on.
2003-03-24 18:33:52 +00:00
Barry Lind
e27334f405 New build number 2003-03-24 04:01:02 +00:00
Barry Lind
1e3372e6bb Fix bug in reading acls (didn't treat null acl as meaning the table owner had
full privs), also updated the regression test for this case.

 Modified Files:
 	jdbc/org/postgresql/jdbc1/AbstractJdbc1DatabaseMetaData.java
 	jdbc/org/postgresql/test/jdbc2/DatabaseMetaDataTest.java
2003-03-24 03:48:32 +00:00
Tom Lane
0489783011 Adjust amrescan code so that it's allowed to call index_rescan with a
NULL key pointer, indicating that the existing scan key should be reused.
This behavior isn't used yet but will be needed for my planned fix to
the keys_are_unique code.
2003-03-23 23:01:03 +00:00
Tom Lane
8d9e025e7f Instead of storing pg_statistic stavalues entries as text strings, store
them as arrays of the internal datatype.  This requires treating the
stavalues columns as 'anyarray' rather than 'text[]', which is not 100%
kosher but seems to work fine for the purposes we need for pg_statistic.
Perhaps in the future 'anyarray' will be allowed more generally.
2003-03-23 05:14:37 +00:00
Tom Lane
efeffae245 Tweak selectivity and related routines to cope with domains. Per report
from Andreas Pflug.
2003-03-23 01:49:02 +00:00
Bruce Momjian
8f5fb5f24e Remove ecpg #warning with approval from Michael. 2003-03-22 19:48:41 +00:00
Bruce Momjian
268bbf430f Add missing #include for calloc in ecpg. 2003-03-22 17:12:23 +00:00
Tom Lane
9323cb0aab Department of second thoughts: probably shouldn't use nth() to get the
appropriate targetlist entry out of the subquery.  Use an explicit search
like we do everywhere else.
2003-03-22 17:11:25 +00:00
Bruce Momjian
ed11ccf4d4 Fix comment-only query to return Null result set, rather than nothing.
Cleans up blank query handling to be more consistent.
2003-03-22 04:23:34 +00:00
Bruce Momjian
23ecb8855d Add PQfreemem() call for Win32. 2003-03-22 03:29:06 +00:00
Bruce Momjian
aaf11b931f Back out to_char fixes until regression tests are fixed. 2003-03-22 02:12:24 +00:00
Tom Lane
05f916e6ad Adjust subquery qual pushdown rules to be more forgiving: if a qual
refers to a non-DISTINCT output column of a DISTINCT ON subquery, or
if it refers to a function-returning-set, we cannot push it down.
But the old implementation refused to push down *any* quals if the
subquery had any such 'dangerous' outputs.  Now we just look at the
output columns actually referenced by each qual expression.  More code
than before, but probably no slower since we don't make unnecessary checks.
2003-03-22 01:49:38 +00:00
Tom Lane
e43094b124 Fix compile warning. 2003-03-21 23:18:52 +00:00
Bruce Momjian
e02f818311 Add hostmask() function:
+       <entry><function>hostmask</function>(<type>inet</type>)</entry>
+       <entry><type>inet</type></entry>
+       <entry>construct hostmask for network</entry>
+       <entry><literal>hostmask('192.168.23.20/30')</literal></entry>
+       <entry><literal>0.0.0.3</literal></entry>

Greg Wickham
2003-03-21 21:54:29 +00:00
Peter Eisentraut
1a7f4ed525 Make "win" a separate port from "cygwin". This means you can now
configure under native Windows (MinGW that is), but you won't get very far
compiling yet.  The dynaloader files are from Jan Wieck's patch set.
2003-03-21 17:18:34 +00:00
Bruce Momjian
063da9dce6 Fix ALTER TABLE / CLUSTER ON breakage.
Alvaro Herrera1
2003-03-21 15:43:02 +00:00
Michael Meskes
b8f7d3d0b6 Do not free prepares statements at the end of a transaction. 2003-03-21 15:31:04 +00:00
Michael Meskes
524e9d62a7 Changes to the parser to accept new datatypes. 2003-03-21 14:17:47 +00:00
Bruce Momjian
9a9719e482 Allow error query to start transaction in autocommit off mode. 2003-03-21 04:33:15 +00:00
Bruce Momjian
3bb7e1ef11 Fix sequence casting. 2003-03-21 03:55:21 +00:00
Bruce Momjian
7542f10325 Improve psql comment coding. 2003-03-21 03:28:29 +00:00
Tom Lane
d72f6c7503 Reimplement NUMERIC datatype using base-10000 arithmetic; also improve
some of the algorithms for higher functions.  I see about a factor of ten
speedup on the 'numeric' regression test, but it's unlikely that that test
is representative of real-world applications.
initdb forced due to change of on-disk representation for NUMERIC.
2003-03-21 01:58:05 +00:00
Bruce Momjian
5ae424529b Fix multiline C comments in psql. 2003-03-20 22:08:50 +00:00
Bruce Momjian
e5f5e73fcb Update for new serial functionality. 2003-03-20 21:00:49 +00:00
Bruce Momjian
3be6367b9f This patch creates a function named pg_get_triggerdef that takes the oid of
a trigger as its parameter.  It is basically copied from the pg_dump
code.

Christopher Kings-Lynne
2003-03-20 18:58:02 +00:00
Bruce Momjian
8819213534 Now that the CLUSTER ALL machinery is in place, the clusterdb script can
be simplified (I'd thought that it can even be removed).  This patch
does that.

Alvaro Herrera
2003-03-20 18:53:18 +00:00
Bruce Momjian
432b9b0f75 Add ALTER TABLE <tablename> CLUSTER ON <indexname>
Alvaro Herrera
2003-03-20 18:52:48 +00:00
Bruce Momjian
db5d7ccac9 It would also be handy if users could see their own pg_stat_activity
queries while the rest remain blank.

Kevin Brown
2003-03-20 18:51:16 +00:00
Michael Meskes
2e6f97560a Started adding date and timestamp. 2003-03-20 15:56:50 +00:00
Bruce Momjian
26a6378e84 Remove extern for cancelConn, from Karel Zak 2003-03-20 15:44:17 +00:00
Bruce Momjian
4422fe6017 Remove compile warning. 2003-03-20 15:39:53 +00:00
Bruce Momjian
cf4cee1b17 At present, dates are put into a dump in the format specified by the
default datestyle.  This is not portable between installations.

This patch sets DATESTYLE to ISO at the start of a pg_dump, so that the
dates written into the dump will be restorable onto any database,
regardless of how its default datestyle is set.

Oliver Elphick
2003-03-20 07:05:21 +00:00
Bruce Momjian
5f65225fa3 Todo items:
Add ALTER SEQUENCE to modify min/max/increment/cache/cycle values

Also updated create sequence docs to mention NO MINVALUE, & NO MAXVALUE.

New Files:
doc/src/sgml/ref/alter_sequence.sgml
src/test/regress/expected/sequence.out
src/test/regress/sql/sequence.sql


ALTER SEQUENCE is NOT transactional.  It behaves similarly to setval().
It matches the proposed SQL200N spec, as well as Oracle in most ways --
Oracle lacks RESTART WITH for some strange reason.

--
Rod Taylor <rbt@rbt.ca>
2003-03-20 07:02:11 +00:00
Bruce Momjian
add932ee91 I'm continuing to work on cleaning up code in psql. As things appear
now, my changes seem to work.  Some possible minor bugs got squished
on the way but I can't be sure without more feedback from people who
really put the code to the test.

The new patch mostly simplifies variable handling and reduces code
duplication.  Changes in the command parser eliminate some redundant
variables (boolean state + depth counter), replaces some
"else if" constructs with switches, and so on.  It is meant to be
applied together with my previous patch, although I hope they don't
conflict; I went back to the CVS version for this one.

One more thing I thought should perhaps be changed: an IGNOREEOF
value of n will ignore only n-1 EOFs.  I didn't want to touch this
for fear of breaking existing applications, but it does seem a tad
illogical.

Jeroen T. Vermeulen
2003-03-20 06:43:35 +00:00
Bruce Momjian
1b3d4cefe8 It has been tested only against CVS backend, however. Some checking of the
changes to the SQL to retrieve attributes for older versions of Postgres is
probably wise.  Also, please make sure that I have mapped the storage types
to the correct storage names, as this is relatively poorly documented.

I think that this patch might need to be considered for back-porting to
7.3.3 since at the moment, people will be losing valuable information after
upgrades.

Will dump:

CREATE TABLE test (
    a text,
    b text,
    c text,
    d text
);
ALTER TABLE ONLY test ALTER COLUMN a SET STATISTICS 55;
ALTER TABLE ONLY test ALTER COLUMN a SET STORAGE PLAIN;
ALTER TABLE ONLY test ALTER COLUMN b SET STATISTICS 1000;
ALTER TABLE ONLY test ALTER COLUMN c SET STORAGE EXTERNAL;
ALTER TABLE ONLY test ALTER COLUMN d SET STORAGE MAIN;

Christopher Kings-Lynne
2003-03-20 06:26:30 +00:00
Bruce Momjian
44aba28020 PGRES_POLLING_ACTIVE is unused, keep for backward compatibility.
Lennert Buytenhek
2003-03-20 06:23:30 +00:00
Bruce Momjian
d7f10705b4 Attached is a patch that limits the range tested by horology to
what is capable using integer-datatime timestamps. It does attempt
to exercise the maximum allowable timestamp range.
Also is a small error check when converting a timestamp from external
to internal format that prevents out of range timestamps from being
entered.

Files patched:
        Index: src/backend/utils/adt/timestamp.c
                Added range check to prevent out of range timestamps
                from being used.

        Index: src/test/regress/sql/horology.sql
        Index: src/test/regress/expected/horology-no-DST-before-1970.out
        Index: src/test/regress/expected/horology-solaris-1947.out
                Limited range of timestamps being checked to
                Jan 1, 4713 BC  to Dec 31, 294276

In creating this patch, I have seen some definite problems with integer
timestamps and how they react when used near their limits. For example,
the following statement gives the correct result:

        SELECT timestamp without time zone 'Jan 1, 4713 BC'
               + interval '109203489 days' AS "Dec 31, 294276";

However, this statement which is the logical inverse of the above
gives incorrect results:

        SELECT timestamp without time zone '12/31/294276'
             - timestamp without time zone 'Jan 1, 4713 BC' AS "109203489 Days";

John Cochran
2003-03-20 06:03:00 +00:00
Bruce Momjian
be1c6e7529 Here's some changes I made last night to psql's common.c (as found in
7.3.2).  It removes some code duplication and #ifdeffing, and some
unstructured ugliness such as tacky breaks and an unneeded continue.
Breaks up a large function into smaller functions and reduces required
nesting levels, and kills a variable or two.

Jeroen T. Vermeulen
2003-03-20 06:00:12 +00:00
Bruce Momjian
94701fb24b Peter found bug in the to_char() routine for PL/MI options. This
patch fix it -- but this patch doesn't contains tests or docs fixes. I
 will send it later.

 Fixed outputs:

select  to_char(x, '9999.999')  as x,
        to_char(x, 'S9999.999') as s,
        to_char(x, 'SG9999.999') as sg,
        to_char(x, 'MI9999.999') as mi,
        to_char(x, 'PL9999.999') as pl,
        to_char(x, 'PLMI9999.999') as plmi,
        to_char(x, '9999.999SG') as sg2,
        to_char(x, '9999.999PL') as pl2,
        to_char(x, '9999.999MI') as mi2 from num;

Karel Zak
2003-03-20 05:19:26 +00:00
Bruce Momjian
8000fdd462 > > - Move SEQ_MAXVALUE, SEQ_MINVALUE definitions to sequence.h
> >
> > - Add check in pg_dump to see if the value returned is the max /min
> > values and replace with NO MAXVALUE, NO MINVALUE.
> >
> > - Change START and INCREMENT to use START WITH and INCREMENT BY syntax.
> > This makes it a touch easier to port to other databases with sequences
> > (Oracle).  PostgreSQL supports both syntaxes already.
>
> +       char            bufm[100],
> +                               bufx[100];
>
> This seems to be an arbitary size. Why not set it to the actual maximum
> length?
>
> Also:
>
> +       snprintf(bufm, 100, INT64_FORMAT, SEQ_MINVALUE);
> +       snprintf(bufx, 100, INT64_FORMAT, SEQ_MAXVALUE);
>
> sizeof(bufm), sizeof(bufx) is probably the more
> maintenance-friendly/standard way to do it.

I changed the code to use sizeof - but will wait for a response from
Peter before changing the size.  It's consistent throughout the sequence
code to be 100 for this purpose.

Rod Taylor <rbt@rbt.ca>
2003-03-20 05:18:15 +00:00
Bruce Momjian
a00431b8d8 "Information_schema" changes
- Add domain check constraints to "check_constraints" view
- Create "domains" view
- Create "domain_constraints" view

--
Rod Taylor <rbt@rbt.ca>
2003-03-20 05:06:55 +00:00
Bruce Momjian
54ca7a7b13 (Now featuring documentation: fixed some typos, expanded the
Envrironment and Files section, explained exactly what -w
does)

This is a patch which allows pg_ctl to make an intelligent
guess as to the proper port when running 'psql -l' to
determine if the database has started up (the -w flag).

The environment variable PGPORT is used. If that is not found,
it checks if a specific port has been set inside the postgresql.conf
file. If it is has not, it uses the port that Postgres was
compiled with.

Greg Sabino Mullane  greg@turnstep.com
2003-03-20 05:00:14 +00:00
Bruce Momjian
3c28f9c144 This trivial cleans up a little bit of the code in
src/test/regress/regress.c (e.g. removing K & R style parameter
declarations, improving sprintf() usage, etc.)

Neil Conway
2003-03-20 04:52:35 +00:00
Bruce Momjian
15ce2d2e4a > I can see a couple possible downsides: (a) the library might have some
> weird behavior across fork boundaries; (b) the additional memory space
> that has to be duplicated into child processes will cost something per
> child launch, even if the child never uses it.  But these are only
> arguments that it might not *always* be a prudent thing to do, not that
> we shouldn't give the DBA the tool to do it if he wants.  So fire away.

Here is a patch for the above, including a documentation update. It
creates a new GUC variable "preload_libraries", that accepts a list in
the form:

   preload_libraries = '$libdir/mylib1:initfunc,$libdir/mylib2'

If ":initfunc" is omitted or not found, no initialization function is
executed, but the library is still preloaded. If "$libdir/mylib" isn't
found, the postmaster refuses to start.

In my testing with PL/R, it reduces the first call to a PL/R function
(after connecting) from almost 2 seconds, down to about 8 ms.

Joe Conway
2003-03-20 04:51:44 +00:00
Bruce Momjian
e733510d5d > Mph. It fails for me too when I use --enable-integer-datetimes. Looks
> like that patch still needs some work...

Yeah.  I'm really, really, *really* sorry for submitting it in the state
it was in.  I shouldn't have done that just before moving to another
country.  I found the problem last night, but couldn't get to a Net
connection until now.

The problem is in src/bin/psql/common.c, around line 250-335 somewhere
depending on the version.  The 2nd and 3rd clauses of the "while" loop
condition:

        (rstatus == PGRES_COPY_IN) &&
        (rstatus == PGRES_COPY_OUT))

should of course be:

        (rstatus != PGRES_COPY_IN) &&
        (rstatus != PGRES_COPY_OUT))

Jeroen T. Vermeulen
2003-03-20 04:49:18 +00:00
Bruce Momjian
a18331004a Add start time to pg_stat_activity
Neil Conway
2003-03-20 03:34:57 +00:00
Bruce Momjian
ddd50a0bab This patch fixes a very small memory leak in psql, spotted with
valgrind.

Neil Conway
2003-03-19 22:49:43 +00:00
Peter Eisentraut
8cb041aada Set up the privileges on the default schemas in initdb with real GRANT
commands, to arrive at a valid and dumpable state.
2003-03-19 16:08:59 +00:00
Peter Eisentraut
28efaf3ccd Avoid mysterious warning about possibly uninitialized variable. 2003-03-19 16:05:41 +00:00
Barry Lind
44a6959f4a Applied patch to work around server bug.
Modified Files:
 	jdbc/org/postgresql/jdbc1/AbstractJdbc1Connection.java
2003-03-19 04:06:20 +00:00
Peter Eisentraut
9e0ab7126d Reimplement create and drop scripts in C, to reduce repetitive
connections, increase robustness, add NLS, and prepare for Windows port.
(vacuumdb and clusterdb will follow later.)
2003-03-18 22:19:47 +00:00
Peter Eisentraut
cf1cf89649 Make the printing code somewhat more independent by not relying on
functions and global variables from the rest of psql.  Also clean up some
data type mismatches created by the last pager patch.
2003-03-18 22:15:44 +00:00
Peter Eisentraut
9384dc6e59 Improve error message. 2003-03-18 22:11:48 +00:00
Peter Eisentraut
a14424a9d2 Fix off-by-one error in the maxlen parameter handling. 2003-03-18 22:09:37 +00:00
Bruce Momjian
6cf8ce13db Compiling anything that uses InvalidOid under g++ yields a warning about
the expression using an "old-style cast."  Therefore, would it be okay
to patch postgres_ext.h as follows:

Jeroen T. Vermeulen
2003-03-18 17:21:07 +00:00
Michael Meskes
6fad73ed45 Some bugfixes for numerical library. 2003-03-18 10:46:39 +00:00
Barry Lind
a6f00f3939 Applied updated translation patch
Modified Files:
 	errors_zh_TW.properties
2003-03-18 05:26:50 +00:00
Bruce Momjian
93b408ef86 Reorder crypt.h include for SunOS compile problem.
Fred Houweling
2003-03-17 17:58:57 +00:00
Michael Meskes
bb3730893b Forgot some files... 2003-03-16 10:49:51 +00:00
Michael Meskes
a4f25b6a9c Started working on a seperate pgtypes library. First test work. PLEASE test compilation on iother systems. 2003-03-16 10:42:54 +00:00
Tom Lane
48dfa0d057 Arrange to print the relevant key values when reporting a foreign-key
violation.  Also, factor out some duplicate code in the RI triggers.
Patch by Dmitry Tkach, reviewed by Stephan Szabo and Tom Lane.
2003-03-15 21:19:40 +00:00
Bruce Momjian
35911088ff A typo in src/backend/libpq/hba.c breaks local ident authentication
in the SO_PEERCRED case. elif is misspelled as elsif for the test.
A patch is attached.

Bruno Wolff III
2003-03-15 16:18:25 +00:00
Tom Lane
2a44306396 pg_dumpall failed on groups having no members. Per report from
Nick Eskelinen.
2003-03-14 22:45:49 +00:00
Bruce Momjian
c90354bad0 Remove unneeded dash blocks around function start comments. 2003-03-14 22:40:31 +00:00
Barry Lind
9f66350b0e Fixed parsing to handle \n for updateable result sets. Bug reported by Rich Cullingford.
Modified Files:
 	jdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java
2003-03-14 05:36:58 +00:00
Tom Lane
a6bf340975 Repair incorrect prorettype entry for timestamptz_izone. Can't force
initdb in the 7.3 branch, but we can at least make it right for people
who install 7.3.3 from scratch.
2003-03-14 04:43:52 +00:00
Barry Lind
77ce53580b Improved error message and added some log messages in batch update functionality
Modified Files:
 	jdbc/org/postgresql/errors.properties
 	jdbc/org/postgresql/jdbc2/AbstractJdbc2Statement.java
 	jdbc/org/postgresql/util/PSQLException.java
2003-03-14 01:21:47 +00:00
Tom Lane
7931bfa764 Make eval_const_expressions simplify FieldSelect from a whole-row Var
into an ordinary one-field Var.  Per example from Chris Mungall.
2003-03-14 00:55:17 +00:00
Tom Lane
2a1ef30b57 Prevent infinite loop in ln_var() due to roundoff error.
Per report from Dave Marin.
2003-03-14 00:15:32 +00:00
Tom Lane
6c4996fa6b GROUP BY got confused if there were multiple equal() GROUP BY items.
This bug has been latent since 7.0 or maybe even further back, but it
was only exposed when parse_clause.c stopped suppressing duplicate
items (see its rev 1.96 of 18-Aug-02).
2003-03-13 16:58:35 +00:00
Tom Lane
31e69ccb21 Add explicit tests for division by zero to all user-accessible integer
division and modulo functions, to avoid problems on OS X (which fails to
trap 0 divide at all) and Windows (which traps it in some bizarre
nonstandard fashion).  Standardize on 'division by zero' as the one true
spelling of this error message.  Add regression tests as suggested by
Neil Conway.
2003-03-11 21:01:33 +00:00
Tom Lane
6261c75014 Implement SQL92-compatible FIRST, LAST, ABSOLUTE n, RELATIVE n options
for FETCH and MOVE.
2003-03-11 19:40:24 +00:00
Tom Lane
e4704001ea This patch fixes a bunch of spelling mistakes in comments throughout the
PostgreSQL source code.

Neil Conway
2003-03-10 22:28:22 +00:00
Bruce Momjian
51b2b6433b Cleanup up psql \connect and \pset pager setting display, Dennis
Bj?rklund.
2003-03-10 15:46:03 +00:00
Tom Lane
aa83bc04e0 Restructure parsetree representation of DECLARE CURSOR: now it's a
utility statement (DeclareCursorStmt) with a SELECT query dangling from
it, rather than a SELECT query with a few unusual fields in it.  Add
code to determine whether a planned query can safely be run backwards.
If DECLARE CURSOR specifies SCROLL, ensure that the plan can be run
backwards by adding a Materialize plan node if it can't.  Without SCROLL,
you get an error if you try to fetch backwards from a cursor that can't
handle it.  (There is still some discussion about what the exact
behavior should be, but this is necessary infrastructure in any case.)
Along the way, make EXPLAIN DECLARE CURSOR work.
2003-03-10 03:53:52 +00:00
Tom Lane
b9e8ffcd5d pg_restore failed to restore blobs if -X disable-triggers is specified. 2003-03-09 19:38:52 +00:00
Tom Lane
dd04e958c8 tuplestore_donestoring() isn't needed anymore, but provide a no-op
macro definition so as not to create compatibility problems.
2003-03-09 03:34:10 +00:00
Tom Lane
aa60eecc37 Revise tuplestore and nodeMaterial so that we don't have to read the
entire contents of the subplan into the tuplestore before we can return
any tuples.  Instead, the tuplestore holds what we've already read, and
we fetch additional rows from the subplan as needed.  Random access to
the previously-read rows works with the tuplestore, and doesn't affect
the state of the partially-read subplan.  This is a step towards fixing
the problems with cursors over complex queries --- we don't want to
stick in Materialize nodes if they'll prevent quick startup for a cursor.
2003-03-09 02:19:13 +00:00
Barry Lind
05a966fca4 Applied patch from Paul Sorenson to correctly handle schema names in updateable result sets.
Applied patch from Rich Cullingford to fix a NPE in the absolute() method of result set.
Applied patch from Tarjei Skorgenes to fix a NPE when logging is enabled.

 Modified Files:
 	jdbc/org/postgresql/core/BaseResultSet.java
 	jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSet.java
 	jdbc/org/postgresql/jdbc2/Array.java
 	jdbc/org/postgresql/util/PSQLException.java
2003-03-08 06:06:55 +00:00
Barry Lind
6ee060f201 Cleanup and reorganization.
- Added a private api layer (org.postgresql.core.Base*)
  - Cleaned up public api (org.postgresql.PG*)
  - Added consistent headers and copywrite info
  - Removed deprecated Serialize functionality
  - Cleaned up imports
  - Moved some files to more appropriate locations

 Modified Files:
 	jdbc/org/postgresql/Driver.java.in
 	jdbc/org/postgresql/PGConnection.java
 	jdbc/org/postgresql/PGNotification.java
 	jdbc/org/postgresql/PGStatement.java
 	jdbc/org/postgresql/core/Encoding.java
 	jdbc/org/postgresql/core/Notification.java
 	jdbc/org/postgresql/core/QueryExecutor.java
 	jdbc/org/postgresql/core/StartupPacket.java
 	jdbc/org/postgresql/fastpath/Fastpath.java
 	jdbc/org/postgresql/fastpath/FastpathArg.java
 	jdbc/org/postgresql/geometric/PGbox.java
 	jdbc/org/postgresql/geometric/PGcircle.java
 	jdbc/org/postgresql/geometric/PGline.java
 	jdbc/org/postgresql/geometric/PGlseg.java
 	jdbc/org/postgresql/geometric/PGpath.java
 	jdbc/org/postgresql/geometric/PGpoint.java
 	jdbc/org/postgresql/geometric/PGpolygon.java
 	jdbc/org/postgresql/jdbc1/AbstractJdbc1Connection.java
 	jdbc/org/postgresql/jdbc1/AbstractJdbc1DatabaseMetaData.java
 	jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSet.java
 	jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSetMetaData.java
 	jdbc/org/postgresql/jdbc1/AbstractJdbc1Statement.java
 	jdbc/org/postgresql/jdbc1/Jdbc1CallableStatement.java
 	jdbc/org/postgresql/jdbc1/Jdbc1Connection.java
 	jdbc/org/postgresql/jdbc1/Jdbc1DatabaseMetaData.java
 	jdbc/org/postgresql/jdbc1/Jdbc1PreparedStatement.java
 	jdbc/org/postgresql/jdbc1/Jdbc1ResultSet.java
 	jdbc/org/postgresql/jdbc1/Jdbc1ResultSetMetaData.java
 	jdbc/org/postgresql/jdbc1/Jdbc1Statement.java
 	jdbc/org/postgresql/jdbc2/AbstractJdbc2Blob.java
 	jdbc/org/postgresql/jdbc2/AbstractJdbc2Clob.java
 	jdbc/org/postgresql/jdbc2/AbstractJdbc2Connection.java
 	jdbc/org/postgresql/jdbc2/AbstractJdbc2DatabaseMetaData.java
 	jdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java
 	jdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSetMetaData.java
 	jdbc/org/postgresql/jdbc2/AbstractJdbc2Statement.java
 	jdbc/org/postgresql/jdbc2/Array.java
 	jdbc/org/postgresql/jdbc2/Jdbc2CallableStatement.java
 	jdbc/org/postgresql/jdbc2/Jdbc2Connection.java
 	jdbc/org/postgresql/jdbc2/Jdbc2PreparedStatement.java
 	jdbc/org/postgresql/jdbc2/Jdbc2ResultSet.java
 	jdbc/org/postgresql/jdbc2/Jdbc2ResultSetMetaData.java
 	jdbc/org/postgresql/jdbc2/Jdbc2Statement.java
 	jdbc/org/postgresql/jdbc3/AbstractJdbc3ResultSet.java
 	jdbc/org/postgresql/jdbc3/Jdbc3CallableStatement.java
 	jdbc/org/postgresql/jdbc3/Jdbc3Connection.java
 	jdbc/org/postgresql/jdbc3/Jdbc3PreparedStatement.java
 	jdbc/org/postgresql/jdbc3/Jdbc3ResultSet.java
 	jdbc/org/postgresql/jdbc3/Jdbc3ResultSetMetaData.java
 	jdbc/org/postgresql/jdbc3/Jdbc3Statement.java
 	jdbc/org/postgresql/largeobject/BlobInputStream.java
 	jdbc/org/postgresql/largeobject/BlobOutputStream.java
 	jdbc/org/postgresql/largeobject/LargeObject.java
 	jdbc/org/postgresql/largeobject/LargeObjectManager.java
 	jdbc/org/postgresql/test/jdbc2/Jdbc2TestSuite.java
 	jdbc/org/postgresql/test/jdbc2/optional/BaseDataSourceTest.java
 	jdbc/org/postgresql/util/MD5Digest.java
 	jdbc/org/postgresql/util/MessageTranslator.java
 	jdbc/org/postgresql/util/PGbytea.java
 	jdbc/org/postgresql/util/PGmoney.java
 	jdbc/org/postgresql/util/PGobject.java
 	jdbc/org/postgresql/util/PGtokenizer.java
 	jdbc/org/postgresql/util/PSQLException.java
 	jdbc/org/postgresql/util/UnixCrypt.java
 Added Files:
 	jdbc/org/postgresql/core/BaseConnection.java
 	jdbc/org/postgresql/core/BaseResultSet.java
 	jdbc/org/postgresql/core/BaseStatement.java
 	jdbc/org/postgresql/core/Field.java
 	jdbc/org/postgresql/core/PGStream.java
 Removed Files:
 	jdbc/org/postgresql/Field.java
 	jdbc/org/postgresql/PG_Stream.java
 	jdbc/org/postgresql/test/jdbc2/SerializeObject.java
 	jdbc/org/postgresql/test/jdbc2/SerializeTest.java
 	jdbc/org/postgresql/util/Serialize.java
2003-03-07 18:39:46 +00:00
Tom Lane
f7cffbbbd7 Tweak dependency code to suppress NOTICEs generated by new method for
cleaning out temp namespaces.  We don't really want the server log to be
cluttered with 'Drop cascades to table foo' every time someone uses a
temp table...
2003-03-06 22:54:49 +00:00
Tom Lane
0c693b4926 Add missing --globals-only (long form of -g). 2003-03-06 21:45:52 +00:00
Tom Lane
1d57374114 Use poll(2) in preference to select(2), if available. This solves
problems in applications that may have a large number of files open,
such that libpq's socket number exceeds the range supported by fd_set.
From Chris Brown.
2003-03-06 03:16:55 +00:00
Tom Lane
4b6c198a6a Add code to dump contents of free space map into $PGDATA/global/pg_fsm.cache
at database shutdown, and then load it again at database startup.  This
preserves our hard-won knowledge of free space across restarts (given
an orderly shutdown, that is).
2003-03-06 00:04:27 +00:00
Tom Lane
21591967bc Turns out new IN implementation has got some problems in an UPDATE or
DELETE with inherited target table.  Fix it; add a regression test.
Also, correct ancient misspelling of 'inherited'.
2003-03-05 20:01:04 +00:00
Tom Lane
147fbf9c6e Repair bug reported by Laurent Perez: bad plan generated when UPDATE or
DELETE of an inheritance tree references another inherited relation.
This bug has been latent since 7.1; I'm still not quite sure why 7.1 and
7.2 don't manifest it (at least, they don't crash on a simple test case).
2003-03-05 18:38:14 +00:00
Tom Lane
391eb5e5b6 Reimplement free-space-map management as per recent discussions.
Adjustable threshold is gone in favor of keeping track of total requested
page storage and doling out proportional fractions to each relation
(with a minimum amount per relation, and some quantization of the results
to avoid thrashing with small changes in page counts).  Provide special-
case code for indexes so as not to waste space storing useless page
free space counts.  Restructure internal data storage to be a flat array
instead of list-of-chunks; this may cost a little more work in data
copying when reorganizing, but allows binary search to be used during
lookup_fsm_page_entry().
2003-03-04 21:51:22 +00:00
Tom Lane
a455c94257 Prevent clustering on incomplete indexes: partial indexes are verboten,
as are non-amindexnulls AMs unless first column is attnotnull.
2003-03-03 04:37:37 +00:00
Tom Lane
b9ddb63307 Correct/edit comments for geometric operators. No change except to
pg_description entries, so I did not force initdb.
2003-03-03 03:30:46 +00:00
Tom Lane
30a695d356 Be smart about outer-join qualifications that mention only one side of
the join, per recent discussion on pgsql-sql.  Not clear that this will
come up often in real queries, but it's not any more expensive to do it
right, so we may as well do it right.
2003-03-02 23:46:34 +00:00