Commit Graph

5271 Commits

Author SHA1 Message Date
Tom Lane
c9b128fcdb Move funcid_get_rettype() to lsyscache. 1999-08-16 02:08:59 +00:00
Tom Lane
b1baf1ff60 Add get_func_rettype() to general-use lsyscache routines,
since it's now needed in both optimizer and parser.
1999-08-16 02:06:25 +00:00
Tatsuo Ishii
bab13a70ff Fix for Win32 making problem with MB enabled.
Patches created by Hiroki Kataoka.
1999-08-16 02:04:05 +00:00
Thomas G. Lockhart
3cfd56fcf6 Repair the check for redundant UNIQUE and PRIMARY KEY indices.
Also, improve it so that it checks for multi-column constraints.
Thanks to Mark Dalphin <mdalphin@amgen.com> for reporting the problem.
1999-08-15 06:46:49 +00:00
Tom Lane
288373f5a4 LispUnion fix changes output ordering for inheritance tests. 1999-08-14 19:30:21 +00:00
Tom Lane
51e29a2be3 LispUnion routine didn't generate a proper union: anytime
l2 contained more than one entry, there would be duplicates in the output
list.  Miscellaneous code beautification in other routines, too.
1999-08-14 19:29:35 +00:00
Tom Lane
47f18ec702 Update comments about pathkeys. 1999-08-13 01:17:16 +00:00
Tom Lane
8f9f6e51a8 Clean up optimizer's handling of indexscan quals that need to be
commuted (ie, the index var appears on the right).  These are now handled
the same way as merge and hash join quals that need to be commuted: the
actual reversing of the clause only happens if we actually choose the path
and generate a plan from it.  Furthermore, the clause is only reversed in
the 'indexqual' field of the plan, not in the 'indxqualorig' field.  This
allows the clause to still be recognized and removed from qpquals of upper
level join plans.  Also, simplify and generalize match_clause_to_indexkey;
now it recognizes binary-compatible indexes for join as well as restriction
clauses.
1999-08-12 04:32:54 +00:00
Tom Lane
aae034d28c Add commentary to show that even though ExecInitIndexScan()
contains much code that looks like it will handle indexquals with the index
key on either side of the operator, in fact indexquals must have the index
key on the left because of limitations of the ScanKey machinery.  Perhaps
someone will be motivated to fix that someday...
1999-08-12 00:42:43 +00:00
Tom Lane
2ae51c86c9 Minor cleanups and code beautification; eliminate some
routines that are now dead code.
1999-08-10 03:00:15 +00:00
Tom Lane
4a1c5cb953 Revise create_nestloop_node's handling of inner indexscan to
work under a wider range of scenarios than it did --- it formerly did not
handle a multi-pass inner scan, nor cases in which the inner scan's
indxqualorig or non-index qual contained outer var references.  I am not
sure that these limitations could be hit in the existing optimizer, but
they need to be fixed for future expansion.
1999-08-10 02:58:56 +00:00
Bruce Momjian
158fd5f1c4 > > Prevent sorting if result is already sorted
> >
> > was implemented by Jan Wieck.
> > His work is for ascending order cases.
> >
> > Here is a patch to prevent sorting also in descending
> > order cases.
> > Because I had already changed _bt_first() to position
> > backward correctly before v6.5,this patch would work.
> >
Hiroshi Inoue
Inoue@tpf.co.jp
1999-08-09 06:20:27 +00:00
Tom Lane
5efe31214a Clean up tlist.c tree-walking routines with
expression_tree_mutator.
1999-08-09 05:34:13 +00:00
Tom Lane
14f84cd821 Store -1 in attdisbursion to signal 'no duplicates in column'.
Centralize att_disbursion readout logic.
1999-08-09 03:16:47 +00:00
Tom Lane
5af4b04f31 Move get_attdisbursion to lsyscache. Clean up get_typdefault. 1999-08-09 03:13:31 +00:00
Tom Lane
e9054829a2 Update comments about attdisbursion. NO code change. 1999-08-09 02:45:56 +00:00
Vadim B. Mikheev
1ecb43a40c Re-use free space on index pages with duplicates. 1999-08-09 01:39:19 +00:00
Tom Lane
10d6d411a8 Rewrite fix_indxqual_references, which was entirely bogus for
multi-scan indexscan plans; it tried to use the same table-to-index
attribute mapping for all the scans, even if they used different indexes.
It would klugily work as long as OR indexquals never used multikey indexes,
but that's not likely to hold up much longer...
1999-08-09 01:01:42 +00:00
Tom Lane
ecef2caae9 Clean up routines in setrefs.c by replacing individual tree
walking logic with expression_tree_walker/mutator calls.
1999-08-09 00:56:05 +00:00
Tom Lane
6bc601b648 Create a standardized expression_tree_mutator support routine
to go along with expression_tree_walker.  (_walker is not suitable for
routines that need to alter the tree structure significantly.)  Other minor
cleanups in clauses.c.
1999-08-09 00:51:26 +00:00
Bruce Momjian
f0b651ac6b replace #Include . 1999-08-09 00:08:52 +00:00
Tom Lane
4488b69b4c Fix nbtree's failure to clear BTScans list during xact abort.
Also, move responsibility for calling vc_abort into main xact.c list of
things-to-call-at-abort.  What in the world was it doing down inside of
TransactionIdAbort()?
1999-08-08 20:12:52 +00:00
Tom Lane
fb491a5854 For a unique-key attribute (no duplicate values), vacuum analyze
was recording a disbursion of 0, not the correct value 1/numberOfRows.
1999-08-08 17:13:10 +00:00
Thomas G. Lockhart
a76ad509fe Remove old man pages. All info is in new man pages or other docs. 1999-08-08 15:21:50 +00:00
Bruce Momjian
4cddd482c1 Fix so BSD yacc works on file. 1999-08-07 04:25:02 +00:00
Tom Lane
e1fad50a5d Revise generation of hashjoin paths: generate one path per
hashjoinable clause, not one path for a randomly-chosen element of each
set of clauses with the same join operator.  That is, if you wrote
   SELECT ... WHERE t1.f1 = t2.f2 and t1.f3 = t2.f4,
and both '=' ops were the same opcode (say, all four fields are int4),
then the system would either consider hashing on f1=f2 or on f3=f4,
but it would *not* consider both possibilities.  Boo hiss.
Also, revise estimation of hashjoin costs to include a penalty when the
inner join var has a high disbursion --- ie, the most common value is
pretty common.  This tends to lead to badly skewed hash bucket occupancy
and way more comparisons than you'd expect on average.
I imagine that the cost calculation still needs tweaking, but at least
it generates a more reasonable plan than before on George Young's example.
1999-08-06 04:00:17 +00:00
Tom Lane
b7883d7e3a parse_coerce fix allows early simplification of one
constant-coercion expression in the rules test.
1999-08-05 02:35:29 +00:00
Tom Lane
fd19a350ea Revise parse_coerce() to handle coercion of int and float
constants, not only string constants, at parse time.  Get rid of
parser_typecast2(), which is bogus and redundant...
1999-08-05 02:33:54 +00:00
Tom Lane
b15a7c9fbe Fix ELF test so it doesn't spit up on all non-ELF systems...
use Autoconf-approved method of testing for predefined symbols, and move
it down to where we know what compiler to run and how to run it.
1999-08-03 00:09:32 +00:00
Tom Lane
b0984e6995 Add a VACUUM command in hopes of making pg_upgrade usable again
in MVCC environment.  I do not trust this until Vadim says it's OK...
1999-08-02 22:34:53 +00:00
Michael Meskes
b2a2be4c5a *** empty log message *** 1999-08-02 04:59:18 +00:00
Tom Lane
8624ff7612 Further selectivity-estimation work. Speed up eqsel()
(it should just call the given operator, not look up an = operator).
Fix intltsel() so that all numeric data types are converted to double
before trying to estimate where the given comparison value is in the
known range of column values.  intltsel() still needs work, or replacement,
for non-numeric data types ... but for nonintegral numeric types it
should now be delivering reasonable estimates.
1999-08-02 02:05:41 +00:00
Bruce Momjian
9032d3f205 autoconf 1999-08-01 16:36:57 +00:00
Bruce Momjian
b2a0a4e8f5 I didn't see any further discussion so here is, I hope, a clean fix to
configure.in to determine if a system is ELF or not.  Note that some
of the tests earlier may be redundant but I took the safest route.

D'Arcy J.M. Cain
1999-08-01 16:30:05 +00:00
Tom Lane
44878506d8 First step in fixing selectivity-estimation code. eqsel and
neqsel now behave as per my suggestions in pghackers a few days ago.
selectivity for < > <= >= should work OK for integral types as well, but
still need work for nonintegral types.  Since these routines have never
actually executed before :-(, this may result in some significant changes
in the optimizer's choices of execution plans.  Let me know if you see
any serious misbehavior.
CAUTION: THESE CHANGES REQUIRE INITDB.  pg_statistic table has changed.
1999-08-01 04:54:25 +00:00
Tom Lane
f851c6b07d Add another ORDER BY to rules test; got tired of it 'failing'
every time I tweak the optimizer...
1999-08-01 04:41:32 +00:00
Tom Lane
970ef45c41 Re-enable pg_upgrade, after adding checks that the source
and target databases are of versions it knows about.
1999-07-31 22:06:44 +00:00
Tom Lane
cf835f97fc Add comments for attdisbursion field --- NO code change. 1999-07-31 19:07:25 +00:00
Tom Lane
30da344cb1 Update comments about clause selectivity estimation. 1999-07-30 22:34:19 +00:00
Bruce Momjian
44763a2b23 Make usecatupd disabled for normal users, and allow normal users to
update temp tables with this setting.
1999-07-30 18:09:49 +00:00
Tom Lane
04578a9180 Further cleanups of indexqual processing: simplify control
logic in indxpath.c, avoid generation of redundant indexscan paths for the
same relation and index.
1999-07-30 04:07:25 +00:00
Marc G. Fournier
f08baacfa5 just testing a script... 1999-07-30 03:45:57 +00:00
Bruce Momjian
fca190e102 Remove extra #endif 1999-07-30 03:45:44 +00:00
Marc G. Fournier
5fb84df9b1 Nothing changed, just testing cvslog ... 1999-07-30 03:42:59 +00:00
Tom Lane
7d572886d6 Fix coredump seen when doing mergejoin between indexed tables,
for example in the regression test database, try
select * from tenk1 t1, tenk1 t2 where t1.unique1 = t2.unique2;
6.5 has this same bug ...
1999-07-30 00:56:17 +00:00
Tom Lane
161be69544 Update comments for create_indexscan_node(). 1999-07-30 00:44:23 +00:00
Bruce Momjian
12c51d9c6e Remove comment after optimization flag. 1999-07-29 15:39:05 +00:00
Tom Lane
ecbfafbe0e Add support for Case exprs to fix_indxqual_references,
so that Case works in WHERE join clauses.  Temporary patch --- this routine
is one of many that ought to be changed to use centralized expression-tree-
walking logic.
1999-07-29 02:48:05 +00:00
Tom Lane
6b157f376a Add equal() funcs for Case nodes ... amazing we had not
detected this omission before.  Miscellaneous other cleanups.
1999-07-29 02:45:36 +00:00
Tom Lane
9682e8081b Allow a_expr not just AexprConst in the right-hand list of
IN and NOT IN operators.  Rewrite grotty implementation of IN-list
parsing ... look Ma, no global variable ...
1999-07-28 17:39:38 +00:00
Tom Lane
b62fdc13f0 Correct bug in best_innerjoin(): it should check all the
rels that the inner path needs to join to, but it was only checking for
the first one.  Failure could only have been observed with an OR-clause
that mentions 3 or more tables, and then only if the bogus path was
actually selected as cheapest ...
1999-07-27 06:23:12 +00:00
Tom Lane
2f30d5a34a My recent optimizer changes caused a different plan to
be picked for one of the complex joins in rules test ... leading to
a different output ordering ...
1999-07-27 03:53:54 +00:00
Tom Lane
9e7e29e6c9 First cut at doing LIKE/regex indexing optimization in
optimizer rather than parser.  This has many advantages, such as not
getting fooled by chance uses of operator names ~ and ~~ (the operators
are identified by OID now), and not creating useless comparison operations
in contexts where the comparisons will not actually be used as indexquals.
The new code also recognizes exact-match LIKE and regex patterns, and
produces an = indexqual instead of >= and <=.

This change does NOT fix the problem with non-ASCII locales: the code
still doesn't know how to generate an upper bound indexqual for non-ASCII
collation order.  But it's no worse than before, just the same deficiency
in a different place...

Also, dike out loc_restrictinfo fields in Plan nodes.  These were doing
nothing useful in the absence of 'expensive functions' optimization,
and they took a considerable amount of processing to fill in.
1999-07-27 03:51:11 +00:00
Tom Lane
49ed4dd779 Further work on planning of indexscans. Cleaned up interfaces
to index_selectivity so that it can be handed an indexqual clause list
rather than a bunch of assorted derivative data.
1999-07-25 23:07:26 +00:00
Tom Lane
8ae29a1d40 Remove 'restrictinfojoinid' field from RestrictInfo nodes.
The only place it was being used was as temporary storage in indxpath.c,
and the logic was wrong: the same restrictinfo node could get chosen to
carry the info for two different joins.  Right fix is to return a second
list of unjoined-relids parallel to the list of clause groups.
1999-07-25 17:53:27 +00:00
Tom Lane
ac4913a0dd Clean up messy clause-selectivity code in clausesel.c; repair bug
identified by Hiroshi (incorrect cost attributed to OR clauses
after multiple passes through set_rest_selec()).  I think the code
was trying to allow selectivities of OR subclauses to be passed in
from outside, but noplace was actually passing any useful data, and
set_rest_selec() was passing wrong data.

Restructure representation of "indexqual" in IndexPath nodes so that
it is the same as for indxqual in completed IndexScan nodes: namely,
a toplevel list with an entry for each pass of the index scan, having
sublists that are implicitly-ANDed index qual conditions for that pass.
You don't want to know what the old representation was :-(

Improve documentation of OR-clause indexscan functions.

Remove useless 'notclause' field from RestrictInfo nodes.  (This might
force an initdb for anyone who has stored rules containing RestrictInfos,
but I do not think that RestrictInfo ever appears in completed plans.)
1999-07-24 23:21:14 +00:00
Tom Lane
348bdbce79 Minor code beautification, extensive improvement of
comments.  This file was full of obsolete and just plain wrong
commentary...
1999-07-23 03:34:49 +00:00
Tom Lane
baac6f981e Exit cleanups I made yesterday caused pq_close() to be
invoked during exit from a standalone backend, leading to core dump.
This is the cause of the recently reported initdb-time crash :-(.
Sorry folks...
1999-07-23 03:00:10 +00:00
Bruce Momjian
66f66343f6 Alpha spinlock fix from Uncle George <gatgul@voicenet.com> 1999-07-22 18:30:08 +00:00
Tom Lane
2aa64f79f5 Plug several holes in backend's ability to cope with
unexpected loss of connection to frontend.
1999-07-22 02:40:07 +00:00
Bruce Momjian
f96babac12 While I was running some tests in psql, trying to figure out how to change
the query string to handle any length, I discovered that under certain
conditions, psql will core dump when handling long strings.  Thus, the
patch.  It was caused by a buffer overrun, probably not noticeable in a lot
of cases, but pretty noticeable in mine.

Problem was caused by the fact that the length check is only performed after
the check for a ; to get the end of the query and execute.

Cheers...

MikeA
1999-07-20 17:20:43 +00:00
Bruce Momjian
c175de56dc Reverse out cache changes that are not ready yet. 1999-07-20 17:14:08 +00:00
Bruce Momjian
7944d501f4 Use -ieee alpha flag for gcc and egcs only. 1999-07-20 16:48:58 +00:00
Bruce Momjian
41b60ba7ad autoconf 1999-07-20 02:45:44 +00:00
Bruce Momjian
93fbd46ba5 Re-add Makefile. 1999-07-20 02:44:09 +00:00
Bruce Momjian
e740c9b1d1 Move -ieee to adt Makefile, and add CPU Makefile variable. 1999-07-20 02:42:20 +00:00
Tom Lane
2908bd535f Complain about INSERT ... SELECT ... ORDER BY, which we do not
support, but which the grammar was accepting.  Also, fix several bugs
having to do with failure to copy fields up from a subselect to a select
or insert node.
1999-07-20 00:18:01 +00:00
Bruce Momjian
d6ce220f04 psql fix. 1999-07-19 21:06:19 +00:00
Bruce Momjian
e2f32054f4 linux/sparc cleanup 1999-07-19 18:19:40 +00:00
Bruce Momjian
b653d1e263 Fix for linux/sparc. 1999-07-19 18:07:36 +00:00
Bruce Momjian
50644a2202 Cleanup of patch just applied. 1999-07-19 16:49:17 +00:00
Bruce Momjian
2b8c9e793d Set the application name, used for parsing readline's .inputrc -- dz
Massimo
1999-07-19 16:46:53 +00:00
Bruce Momjian
be1851902a Fix #if if. 1999-07-19 14:30:52 +00:00
Michael Meskes
9f0ffa2241 *** empty log message *** 1999-07-19 12:37:48 +00:00
Bruce Momjian
faf7d78174 Install new alignment code to use MAXALIGN rather than DOUBLEALIGN where
approproate.
1999-07-19 07:07:29 +00:00
Bruce Momjian
e259780b13 Enable WIN32 compilation of libpq. 1999-07-19 06:25:40 +00:00
Bruce Momjian
bf98a4656b Win32 cleanup 1999-07-19 02:45:43 +00:00
Bruce Momjian
9da390d348 autoconf 1999-07-19 02:32:55 +00:00
Bruce Momjian
e44c931801 Re-add getopt.h check, remove NT-specific tests for it. 1999-07-19 02:27:16 +00:00
Tom Lane
677028177e Clean up gcc warning about unused static decl. 1999-07-19 02:06:15 +00:00
Bruce Momjian
435ed7aaa1 autoconf 1999-07-19 01:20:00 +00:00
Bruce Momjian
c9acd2da12 Remove getopt configure check. 1999-07-19 01:18:05 +00:00
Tom Lane
44bc7ab2a6 Put back mistakenly removed configure test for HAVE_NETINET_IN_H. 1999-07-19 00:55:59 +00:00
Tom Lane
0c4929ff86 Parser no longer considers
SELECT a/2, a/2 FROM test_missing_target GROUP BY a/2;
to be ambiguous ... which I think is correct behavior.
1999-07-19 00:29:07 +00:00
Tom Lane
7f76eab140 Rewrite parser's handling of INSERT ... SELECT so that processing
of the SELECT part of the statement is just like a plain SELECT.  All
INSERT-specific processing happens after the SELECT parsing is done.
This eliminates many problems, e.g. INSERT ... SELECT ... GROUP BY using
the wrong column labels.  Ensure that DEFAULT clauses are coerced to
the target column type, whether or not stored clause produces the right
type.  Substantial cleanup of parser's array support.
1999-07-19 00:26:20 +00:00
Bruce Momjian
c981442772 Update ecpg compile. 1999-07-18 21:07:02 +00:00
Bruce Momjian
b9b5f5d6ca autoconf 1999-07-18 21:05:17 +00:00
Bruce Momjian
cb08547646 Add getopt test. 1999-07-18 21:02:56 +00:00
Bruce Momjian
0b976ec1d8 autoconf 1999-07-18 20:46:25 +00:00
Bruce Momjian
2798162038 cleanup 1999-07-18 20:43:33 +00:00
Bruce Momjian
7badb1e792 Fix configure problem. 1999-07-18 20:43:13 +00:00
Bruce Momjian
b721c9e164 autoconf 1999-07-18 20:13:40 +00:00
Tom Lane
fea7ab5298 Fix typo in _outArrayRef(). 1999-07-18 19:02:49 +00:00
Bruce Momjian
d6f26e6451 Update for 6.6. 1999-07-18 18:06:42 +00:00
Bruce Momjian
a927d6ea4e configure cleanup 1999-07-18 18:03:50 +00:00
Bruce Momjian
d0634aca39 configure cleanup 1999-07-18 17:38:25 +00:00
Bruce Momjian
ef9699d6da autoconf 1999-07-18 16:44:31 +00:00
Bruce Momjian
07262a2dfb Update configure include checks. 1999-07-18 16:42:16 +00:00
Bruce Momjian
0858b06f16 autoconf 1999-07-18 14:54:46 +00:00
Bruce Momjian
46355e94d4 Update includes from configure 1999-07-18 14:48:30 +00:00
Bruce Momjian
9c30bba810 autoconf 1999-07-18 14:38:47 +00:00
Bruce Momjian
1c0c607110 No check for string/strings.h. 1999-07-18 14:34:38 +00:00
Tom Lane
32664b4b4b Improve commentary about ArrayRef and ResTarget nodes. 1999-07-18 03:45:01 +00:00
Bruce Momjian
3406901a29 Move some system includes into c.h, and remove duplicates. 1999-07-17 20:18:55 +00:00
Tom Lane
c62b8a68bf Fix incorrect declaration of rtentry as 'ResTarget' where it
should be 'RangeTblEntry' ; explain.c had copied the erroneous code.
1999-07-17 19:01:21 +00:00
Bruce Momjian
33e826d167 Fix for multi-byte includes. 1999-07-17 16:25:28 +00:00
Tom Lane
df454bd864 Fix silly typo in commentary... 1999-07-17 16:02:50 +00:00
Bruce Momjian
0e264fb464 Add c.h to exclusion list. 1999-07-17 15:37:30 +00:00
Bruce Momjian
9b4dac7f12 clean up comment on missing file. 1999-07-17 05:16:15 +00:00
Bruce Momjian
2d36471b82 Include check 1999-07-17 04:25:33 +00:00
Bruce Momjian
8f5561a0d9 More config.h cleanups. 1999-07-17 04:12:10 +00:00
Bruce Momjian
fbe4ad2154 Add config.h as needed. 1999-07-17 04:00:31 +00:00
Tom Lane
8ee07b506d Tired of seeing that 'unused variable' warning... 1999-07-16 23:15:46 +00:00
Tom Lane
05933f4ec1 Add back improperly removed #include for utils/trace.h. 1999-07-16 23:12:39 +00:00
Tom Lane
e1e110228f Add back improperly removed #include for config.h.
This probably ought to be kept in *all* the port files, but these two
are the only ones that generated compiler warnings for me ...
1999-07-16 23:09:45 +00:00
Tom Lane
1a6c5b96ad Add back improperly removed #include for utils/dynamic_loader.h. 1999-07-16 23:05:45 +00:00
Tom Lane
8753b23c8c Fix 'SO__MINOR_VERSION' typo for irix5; add AIX shlib support
from Andreas Z.; minor cosmetic cleanups.
1999-07-16 22:56:01 +00:00
Tom Lane
36ce6d439f Support subscripts on bare column names. 1999-07-16 22:32:25 +00:00
Tom Lane
f9e2c7fae8 Allow bare column names to be subscripted as arrays. This
creates a reduce/reduce conflict, which I resolved by changing the
'AexprConst -> Typename Sconst' rule to 'AexprConst -> SimpleTypename Sconst'.
In other words, a subscripted type declaration can't be used in that
syntax any longer.  This seems a small price to pay for not having to
qualify subscripted columns anymore.
Other cleanups: rename res_target_list to update_target_list, and remove
productions for variants that are not legal in an UPDATE target list;
rename res_target_list2 to plain target_list; delete position_expr
in favor of using b_expr in that production; merge opt_indirection
into attr nonterminal, since there are no places where an unsubscripted
attr is wanted; fix typos in Param support; change case_arg so that
an arbitrary a_expr is allowed, not only a column name.
1999-07-16 22:29:42 +00:00
Tom Lane
bc9236bc01 Revise _bt_binsrch() so that its binary search loop takes
care of equal-key cases, eliminating bt_firsteq().  The linear search
formerly done by bt_firsteq() took a lot of time in the case where many
equal keys appear on the same page.
1999-07-16 22:17:06 +00:00
Bruce Momjian
9679cb3910 More cleanup 1999-07-16 17:46:32 +00:00
Bruce Momjian
773088809d More cleanup 1999-07-16 17:07:40 +00:00
Bruce Momjian
7d5b08dec0 More cleanup 1999-07-16 05:41:19 +00:00
Bruce Momjian
69817665cb Final cleanup 1999-07-16 05:23:30 +00:00
Bruce Momjian
a71802e12e Final cleanup. 1999-07-16 05:00:38 +00:00
Bruce Momjian
9b645d481c Update #include cleanups 1999-07-16 03:14:30 +00:00
Bruce Momjian
a9591ce66a Change #include's to use <> and "" as appropriate. 1999-07-15 23:04:24 +00:00
Bruce Momjian
2e6b1e63a3 Remove unused #includes in *.c files. 1999-07-15 22:40:16 +00:00
Bruce Momjian
40a89e08b2 Cleanups. 1999-07-15 20:32:30 +00:00
Bruce Momjian
fb38a5d8cf Remove un-needed #include's from *.c files. 1999-07-15 19:21:43 +00:00
Bruce Momjian
353eb3dadf Add updates. 1999-07-15 16:55:32 +00:00
Bruce Momjian
4b2c2850bf Clean up #include in /include directory. Add scripts for checking includes. 1999-07-15 15:21:54 +00:00
Tom Lane
390e8354ce Add SHLIB_LINK setting for solaris_i386 and solaris_sparc ports,
per bug report from Daren Sefcik <daren@partnersdata.com>.
1999-07-15 02:03:00 +00:00
Tom Lane
8aea617c03 Several routines failed to cope with CASE expressions, and
indeed some of 'em were missing support for more node types than that...
1999-07-15 01:52:09 +00:00
Bruce Momjian
0cf1b79528 Cleanup of /include #include's, for 6.6 only. 1999-07-14 01:20:30 +00:00
Bruce Momjian
ad4948862c Remove S*I comments from Stephan. 1999-07-13 21:17:45 +00:00
Bruce Momjian
050371fccd More cpu cleanups, only for 6.6. 1999-07-13 20:12:51 +00:00
Bruce Momjian
540c114225 Redefine cpu's as __cpu__. Only for 6.6 branch. 1999-07-13 20:00:37 +00:00
Bruce Momjian
30e27a9099 readd include for safety. 1999-07-12 13:32:38 +00:00
Tatsuo Ishii
8f02f2252d Fix some compiler warnings (Tomoaki Nishiyama), add WIN1250 support (Pavel Behal) 1999-07-11 22:47:21 +00:00
Tom Lane
eeaeb1bda8 RewritePreprocessQuery tried to match resjunk targets against
result relation ... wrong ...
1999-07-11 17:54:30 +00:00
Tom Lane
eeb3abe017 Ignore resjunk targetlist entries when matching arguments to
a SubLink with the subplan's targetlist.  This fixes a problem seen with,
for example, a subselect that uses GROUP BY.
1999-07-11 02:04:19 +00:00
Tom Lane
9cbd349bcd ExecReScanGroup() forgot to clear grpstate->grp_firstTuple,
thereby guaranteeing wrong results from a rescanned Group node.
1999-07-11 01:57:32 +00:00
Tom Lane
ebc3cc7efa heapam.h uses type time_t, but didn't include <time.h>. 1999-07-10 22:06:26 +00:00
Tom Lane
cc62dc2032 Fix tuplecmp() to ensure repeatable sort ordering of tuples
that contain null fields.  Old code would produce erratic sort results
because comparisons of tuples containing nulls could produce inconsistent
answers.
1999-07-10 18:21:59 +00:00
Bruce Momjian
d62c25d452 cleanup of long long int atoi test. 1999-07-10 17:03:34 +00:00
Bruce Momjian
5a3fa95c39 Update stuff for 6.5.1 release. 1999-07-10 16:28:02 +00:00
Tatsuo Ishii
4fceee0e71 -mieee and # does not work for certain version of egcs 1999-07-10 12:33:10 +00:00
Tom Lane
73efd3867d Fix gcc complaint about long being passed to sprintf %d. 1999-07-09 22:53:40 +00:00
Bruce Momjian
863db45e86 Make ^ precidence greater than *. 1999-07-09 21:59:59 +00:00
Bruce Momjian
cda192317a createlang now returns 2 for language already exists. 1999-07-09 17:57:46 +00:00
Bruce Momjian
103cf75651 Re-apply range check patch after fixing LIMIT_H test and defines. 1999-07-09 17:40:31 +00:00
Bruce Momjian
cd5dfb65a9 Add mention block size <= 32k. 1999-07-09 16:56:44 +00:00
Tom Lane
b9c0096d97 Another place that HAVE_LIMITS_H was misspelled. 1999-07-09 15:09:54 +00:00
Bruce Momjian
8aa780bdd3 cleanup 1999-07-09 04:51:27 +00:00
Bruce Momjian
296efd8065 Fix for ACL length problem on different platforms. 1999-07-09 03:28:53 +00:00
Bruce Momjian
46db8ac712 Backup pg_atoi patch for long checking. Caused initdb problems. 1999-07-09 03:27:20 +00:00
Bruce Momjian
ffe0097519 Add linux_m68k template file. 1999-07-09 02:35:37 +00:00
Bruce Momjian
27ef825743 Rename tuturials for char2/char16 removal. 1999-07-08 15:28:51 +00:00
Bruce Momjian
1a7273bd5c Rename example temp to mytemp. 1999-07-08 15:27:01 +00:00
Bruce Momjian
3acb7d1634 Test Case:
----------
exec sql begin declare section;
   short s ;
   unsigned short us;
exec sql end   declare section;
exec sql create table test(s smallint, us smallint);
exec sql commit;
s = 1; us =32000;
exec sql insert into test values( :s, :us ) ;  <== error

Error Message: "i4toi2: '-600309759' causes int2 underflow"

Masaaki Sakaida
1999-07-08 03:32:57 +00:00
Bruce Momjian
0343024a5c Add CXXFLAGS += 1999-07-08 03:30:16 +00:00
Bruce Momjian
2cf2a4fe2b > In both datetime_trunc() and timespan_trunc() in dt.c,
> the DTK_MICROSEC case is just like the DTK_MILLISEC case.
> I think this is wrong and it ought to look like
>         fsec = rint(fsec * 1000000) / 1000000;
> no?

Tom Lane.
1999-07-08 03:22:46 +00:00
Bruce Momjian
70ce98b77a Rename pg_temp to pg_sorttemp so it does not conflict with temp table names. 1999-07-08 02:46:39 +00:00
Bruce Momjian
5035d7b985 pg_atoi() does range check on int4 data only if
"HAS_LONG_LONG" is defined based on the assumption that
strtol() would return ERANGE if a platform does not support
64-bit integers. In current PostgreSQL 6.5 (and 6.4.2)
distribution, "HAS_LONG_LONG" is defined only if platform
is "alpha". (See include/port/alpha.h) I think the int4
range check should apply to linux_alpha as well. (I have
not tested yet but I guess this might be applicable to
newer Linux/i386 distributions which includes new GCC which
implements long int as 64-bit int.)
1999-07-08 00:27:01 +00:00
Bruce Momjian
a6c688d9cd Irix update from Mark Dalphin 1999-07-08 00:15:03 +00:00
Bruce Momjian
104d6c816e Add ^ precidence. 1999-07-08 00:00:43 +00:00
Bruce Momjian
38ff52c379 Allow port numbers 32k - 64k. 1999-07-07 17:17:50 +00:00
Bruce Momjian
db15dc05ad Fix for \do and ceil()/float. 1999-07-07 16:09:33 +00:00
Bruce Momjian
e9c977da7d Fix spelling of variable name. 1999-07-07 09:36:45 +00:00
Bruce Momjian
9f7ac20e57 Cleanup of min tuple size. 1999-07-07 09:27:28 +00:00
Bruce Momjian
1391098851 Fix misspelling. 1999-07-07 09:11:15 +00:00
Bruce Momjian
5babe7db45 Remove old readme file. 1999-07-05 21:48:21 +00:00
Bruce Momjian
137eacbe6a Align cleanup. 1999-07-04 05:47:06 +00:00
Bruce Momjian
a0b4af3c85 More alignment 1999-07-04 05:44:56 +00:00
Bruce Momjian
ede5a41829 Clean up maximum rewrite tuple length. 1999-07-04 05:16:05 +00:00
Bruce Momjian
eba41848aa Clarify maximum tuple and max attribute lengths. 1999-07-04 04:56:02 +00:00
Tom Lane
b31aa64f4a Make exec_simple_check_plan() check for a null plan, so
that it doesn't crash when processing a utility statement.
1999-07-04 01:03:01 +00:00
Bruce Momjian
efb621278e Add abortcurrent trans to temp table fix. 1999-07-03 15:43:57 +00:00
Bruce Momjian
ff8756dd1c More cleanup 1999-07-03 01:57:53 +00:00
Bruce Momjian
b1444b0934 Update tuple size check. 1999-07-03 01:56:16 +00:00
Bruce Momjian
8dd3407bf5 Fix for insertion of tuple too large. 1999-07-03 01:47:02 +00:00
Bruce Momjian
97dfff832c Fix to prevent too large tuple from being created. 1999-07-03 00:33:04 +00:00
Bruce Momjian
954e466c27 Fix for removal of temp tables if last transaction was aborted. 1999-07-02 18:09:28 +00:00
Bruce Momjian
d20abcd8c5 typo fix. 1999-07-02 03:21:37 +00:00
Bruce Momjian
c9a0a232e2 #ifdef around true and false. 1999-07-01 19:47:25 +00:00
Tom Lane
0aa544eb41 make distclean missed a few symlinks created by configure. 1999-07-01 00:06:28 +00:00
Tom Lane
fa179dde82 Make sure symlinks for sharedlib get removed by 'make clean'. 1999-06-30 23:57:31 +00:00
Tom Lane
7bf29f6b78 Generate a full set of version-numbered symlinks when building
a shared library, not just when installing it.
1999-06-30 23:54:18 +00:00
Michael Meskes
9b0e20574b *** empty log message *** 1999-06-29 09:25:25 +00:00
Vadim B. Mikheev
49f68a8584 Avoid disk writes for read-only transactions. 1999-06-29 04:54:49 +00:00
Bruce Momjian
cffd0f9c89 Add time warning about bigtests. 1999-06-28 18:40:34 +00:00
Peter Mount
e70b4831d7 Some minor bug fixes 1999-06-27 11:05:38 +00:00
Bruce Momjian
fe90c54800 Add var defines for no testandset 1999-06-26 15:58:28 +00:00
Bruce Momjian
ef15ed17a0 Remove -m486 on Openbsd. 1999-06-26 15:54:36 +00:00
Michael Meskes
19630e0cbc *** empty log message *** 1999-06-25 10:42:06 +00:00
Tom Lane
b692c956ba Makefile.global failed to define $(LIBS), which is
unfortunate considering that several subdirectory makefiles were counting
on it to do so...
1999-06-25 00:13:45 +00:00
Michael Meskes
d12561040c *** empty log message *** 1999-06-24 13:15:31 +00:00
Peter Mount
dc88d74af3 Some fixes supplied by Jon Nielsen jonfn@image.dk 1999-06-23 05:56:20 +00:00
Tom Lane
1f2c6f4f48 Replace rewriter's checkQueryHasAggs and checkQueryHasSubLink
with expression_tree_walker-based code.  The former failed to cope with
expressions containing SubLinks, and the latter returned TRUE for both
SubLinks and Aggrefs (cut-and-paste bug?).  There is a lot more scope for
using expression_tree_walker in this module, but I'll restrain myself
until the 6.6 split occurs from touching not-demonstrably-broken code.
1999-06-21 01:26:56 +00:00
Tom Lane
fd8e580bb7 Clean up problems with sublinks + grouping in planner. Not
sure if they are all fixed, because rewriter is now the stumbling block,
but at least some cases work that did not work before.
1999-06-21 01:20:57 +00:00
Tom Lane
974bdd94f9 On second thought, expression_tree_walker should handle bare
SubLink nodes after all ...
1999-06-21 01:18:02 +00:00
Bruce Momjian
db4a6a2618 I have a small patch for 6.5.
aclchk.c: heap_close() is not called after calling heap_openr().

Atsushi Ogawa
1999-06-19 05:05:52 +00:00
Bruce Momjian
8d37132ec9 Rename to vararg_format(). 1999-06-19 05:00:30 +00:00
Bruce Momjian
326d8658ad Change form() to varargform() to prevent portability problems. 1999-06-19 04:54:23 +00:00
Tom Lane
e786508600 My first chosen victim for expression_tree_walker conversion
is parse_aggs.c.  This fixes its failure to cope with (at least) CaseExpr
and ArrayRef nodes, which is the reason why both of these fail in 6.5:
select coalesce(f1,0) from int4_tbl group by f1;
ERROR:  Illegal use of aggregates or non-group column in target list
select sentence.words[0] from sentence group by sentence.words[0];
ERROR:  Illegal use of aggregates or non-group column in target list
The array case still fails, but at least it's not parse_agg's fault
anymore ... considering that we now support CASE officially, I think
it's important to fix the first example ...
1999-06-19 03:48:31 +00:00
Tom Lane
86f36719db Create a generic expression-tree-walker subroutine, which
will gradually replace all of the boilerplate tree-walk-recursion code that
currently exists in O(N) slightly different forms in N subroutines.
I've had it with adding missing cases to these subroutines...
1999-06-19 03:41:45 +00:00
Tom Lane
d30c4b0562 Temporarily disable error checks for missing selectivity
functions, in order to work around oversight in 6.5 release: rtree
index functions haven't got any.  Mea culpa ...
1999-06-19 00:44:44 +00:00
Bruce Momjian
0591bbd558 Patch to allow vacuum on multi-segment tables, from Hiroshi Inoue 1999-06-18 16:47:23 +00:00
Thomas G. Lockhart
8c3a796328 Incorporate fixes from Date and Darwen, 1997.
Did not check the function declarations as carefully as the other parts,
 though all of the function names *do* match up with D&D.
1999-06-18 05:03:48 +00:00
Bruce Momjian
371a9d7ad8 linux_ppc now use -O0 to fix problem in optimization of fmgr calls. 1999-06-18 00:46:11 +00:00
Tom Lane
285610e9ea Explain didn't handle inheritance correctly (it didn't
manipulate rtable the same way executor does).
1999-06-17 23:45:32 +00:00
Tom Lane
5f74d499bf Defend against function calls with more than 8 arguments (code
used to overrun its fixed-size arrays before detecting error; not cool).
Also, replace uses of magic constant '8' with 'MAXFARGS'.
1999-06-17 22:21:41 +00:00
Bruce Momjian
4c65382596 Remove QUERY_LIMIT and documenation on same. Change _ALIGN to TYPEALIGN
for Irix.
1999-06-17 15:16:09 +00:00
Thomas G. Lockhart
0c1ec67447 Add CLI required header and examples from SQL3/SQL98
August 1994 draft standard.
Use the ecpg support libraries to write the CLI interface?
Date and Darwen claim that CLI is a more modern and flexible approach...
1999-06-17 14:19:17 +00:00
Bruce Momjian
4b9ccbe3cf Make linux_ppc use only -O, not -O2. 1999-06-17 13:44:43 +00:00
Michael Meskes
c6a6597862 *** empty log message *** 1999-06-16 18:35:51 +00:00
Michael Meskes
c70db13265 *** empty log message *** 1999-06-16 18:25:50 +00:00
Bruce Momjian
ad34847d4e Cleanup 1999-06-16 11:01:17 +00:00
Tom Lane
275a1d054e Undo Jan's typo that broke regress.sh's detection of system
type name.
1999-06-14 17:49:06 +00:00
Tatsuo Ishii
de7c728d41 change #if defined(__mc68000__) to:
#if defined(__mc68000__) && defined(__linux__)
so that other m68k systems(such as NetBSD) will not be affected.
1999-06-13 00:07:43 +00:00
Tom Lane
642d21a59b Move default NBuffers setting into config.h, and rename it
to DEF_NBUFFERS for readability.  Make sure the default value is OK
according to postmaster.c's new sanity check for -B values.
1999-06-12 22:17:24 +00:00
Tom Lane
d9e223d53c Fix critical error noticed by Massimo: copy.c used to have a
special hack to ensure it would close its output file even after failure
due to elog(ERROR) partway through the copy.  This is now unnecessary
because fd.c takes care of cleaning up open files at transaction abort;
worse, after fd.c closed the file copy.c would try to do so *again* at
the start of the next COPY command.  This would result in havoc in most
implementations of stdio library.
1999-06-12 20:41:25 +00:00
Tom Lane
aaf2442472 Remove query_planner's overhasty rejection of cases where
tlist and qual are NULL.  It ought to handle these the same as the cases
where tlist contains only constant expressions, ie, be willing to generate
a Result-node plan.  This did not use to matter, but it does now because
union_planner will flatten the tlist when aggregates are present.  Thus,
'select count(1) from table' now causes query_planner to be given a null
tlist, and to duplicate 6.4's behavior we need it to give back a Result
plan rather than refusing the query.  6.4 was arguably doing the Wrong
Thing for this query, but I'm not going to open a semantics issue right
before 6.5 release ... can revisit that problem later.
1999-06-12 19:38:30 +00:00
Tom Lane
acf242da97 Plug hole in dike: planner would coredump if query_planner
returned NULL, which it will do in some cases where an elog(ERROR) would
probably be more appropriate.  For the moment, generate a not-very-
informative error message rather than proceeding to certain coredump.
Probably ought to think about making query_planner elog instead of
returning NULL, but this is at least a safe change for now.
1999-06-12 19:27:41 +00:00
Tom Lane
1918a1d191 When targetlist is NULL, ExecTargetList was passing back a
pointer to palloc'd but uninitialized memory.  This is not cool; anyone looking
at the returned 'tuple' would at best coredump and at worst behave in a
bizarre and irreproducible way.  Fix it to return a predictable value,
namely a correctly-set-up palloc'd tuple containing zero attributes.
I believe this fix is both safe and critical.
1999-06-12 19:22:40 +00:00
Bruce Momjian
0c3281ce7c Reversed out Massimo patch. 1999-06-12 14:07:33 +00:00
Bruce Momjian
603e153bb8 I don't like last minute patches before the final freeze, but I believe that
this one could be useful for people experiencing out-of-memory crashes while
executing queries which retrieve or use a very large number of tuples.

The problem happens when storage is allocated for functions results used in
a large query, for example:

  select upper(name) from big_table;
  select big_table.array[1] from big_table;
  select count(upper(name)) from big_table;

This patch is a dirty hack that fixes the out-of-memory problem for the most
common cases, like the above ones. It is not the final solution for the
problem but it can work for some people, so I'm posting it.

The patch should be safe because all changes are under #ifdef. Furthermore
the feature can be enabled or disabled at runtime by the `free_tuple_memory'
options in the pg_options file. The option is disabled by default and must
be explicitly enabled at runtime to have any effect.

To enable the patch add the follwing line to Makefile.custom:

CUSTOM_COPT += -DFREE_TUPLE_MEMORY

To enable the option at runtime add the following line to pg_option:

free_tuple_memory=1

Massimo
1999-06-12 14:05:41 +00:00
Bruce Momjian
bd470ba47e Hi,
please apply the included patch. It corrects the headers in src/win32 -
there are some missing #endif.

                        Dan
1999-06-11 15:01:29 +00:00
Bruce Momjian
f4de72cc6b add m86 similar entries. 1999-06-11 14:34:02 +00:00
Vadim B. Mikheev
ba740a0917 Change Assert(Ptp.t_data->t_xmax == tp.t_data->t_xmin) to :
/*
 * Read above about cases when !ItemIdIsUsed(Citemid)
 * (child item is removed)... Due to the fact that
 * at the moment we don't remove unuseful part of
 * update-chain, it's possible to get too old
 * parent row here. Like as in the case which
 * caused this problem, we stop shrinking here.
 * I could try to find real parent row but want
 * not to do it because of real solution will
 * be implemented anyway, latter, and we are too
 * close to 6.5 release.        - vadim 06/11/99
 */
if (Ptp.t_data->t_xmax != tp.t_data->t_xmin)
...
1999-06-11 09:35:08 +00:00
Vadim B. Mikheev
3b79cc0c55 Removed bad Assert(!buf->ri_lock) when unlocking exclusively
locked buffer.
1999-06-11 09:00:02 +00:00
Vadim B. Mikheev
4ca7b4d2e5 More about chained mode and isolation. 1999-06-11 05:40:18 +00:00
Bruce Momjian
3b9ef4d073 Change mdtruncate to truncate and not unlink.
Hiroshi Inoue
1999-06-11 02:39:43 +00:00
Bruce Momjian
d852d31ea3 This patch should enable 6.5 to build on Motorola 68000 architecture.
It comes from Roman Hodek <Roman.Hodek@informatik.uni-erlangen.de>.
1999-06-10 22:59:22 +00:00
Michael Meskes
70dfc8c11e *** empty log message *** 1999-06-10 19:11:33 +00:00
Jan Wieck
cc08d051d0 Added 2 regression tests for NUMERIC data type.
1. Using 100 digits after decimal point on the default
   make runtest.

2. Using 1000 digits after decimal point in a new target
   make bigtest.

At the end of 'make runtest', a hint about the new bigtest is
printed.

Jan
1999-06-10 17:49:32 +00:00
Vadim B. Mikheev
78f7ccc982 1. Fix for elog(ERROR, "EvalPlanQual: t_xmin is uncommitted ?!")
and possibly for other cases too:

   DO NOT cache status of transaction in unknown state
   (i.e. non-committed and non-aborted ones)

   Example:
   T1 reads row updated/inserted by running T2 and cache T2 status.
   T2 commits.
   Now T1 reads a row updated by T2 and with HEAP_XMAX_COMMITTED
   in t_infomask (so cached T2 status is not changed).
   Now T1 EvalPlanQual gets updated row version without HEAP_XMIN_COMMITTED
   -> TransactionIdDidCommit(t_xmin) and TransactionIdDidAbort(t_xmin)
   return FALSE and T2 decides that t_xmin is not committed and gets
   ERROR above.

   It's too late to find more smart way to handle such cases and so
   I just changed xact status caching and got rid TransactionIdFlushCache()
   from code.

   Changed: transam.c, xact.c, lmgr.c and transam.h - last three
   just because of TransactionIdFlushCache() is removed.

2. heapam.c:

   T1 marked a row for update. T2 waits for T1 commit/abort.
   T1 commits. T3 updates the row before T2 locks row page.
   Now T2 sees that new row t_xmax is different from xact id (T1)
   T2 was waiting for. Old code did Assert here. New one goes to
   HeapTupleSatisfiesUpdate. Obvious changes too.

3. Added Assert to vacuum.c
4. bufmgr.c: break
   Assert(buf->r_locks == 0 && !buf->ri_lock)
   into two Asserts.
1999-06-10 14:17:12 +00:00
Tom Lane
c37ecaf8d5 Fix errors in SELECT ... GROUP BY ... UNION SELECT ...
ye proverbial one-line patch (not counting five lines of comment so's
maybe it won't happen again)
1999-06-10 06:55:40 +00:00
Bruce Momjian
0ac955540b Remove -O2 for linux/alpha, make -O. 1999-06-09 12:39:46 +00:00
Vadim B. Mikheev
51298bcfda Reset evaluation plan tuple table next free slot counter to 0
after ExecEndNode. It must be done! Or we'll be out of free
tuple slots very soon, though slots are freed by ExecEndNode
and ready for reusing.

We didn't see this problem before because of

int         nSlots = ExecCountSlotsNode(plan);
TupleTable  tupleTable = ExecCreateTupleTable(nSlots + 10);
    /* why add ten? - jolly */

code in InitPlan - i.e. extra 10 slots. Simple select uses
3 slots and so it was possible to re-use evaluation plan
3 additional times and didn't get

elog(NOTICE, "Plan requires more slots than are available");
elog(ERROR, "send mail to your local executor guru to fix this");

Changes are obvious and shouldn't be problems with them.
Though, I added Assert(epqstate->es_tupleTable->next == 0)
before EvalPlanQual():ExecInitNode and we'll notice if
something is still wrong. Is it better to change Assert
to elog(ERROR) ?
1999-06-09 12:23:42 +00:00
Vadim B. Mikheev
0e41fd57df MVCC updates. 1999-06-09 03:51:40 +00:00
Bruce Momjian
ccdad51a73 Linux-alpha gets -O 1999-06-08 19:19:51 +00:00
Bruce Momjian
2544f2d0bb Remove optimization on linux/alpha. 1999-06-08 17:34:43 +00:00
Bruce Momjian
61882d4c37 Cleanup 1999-06-08 01:37:55 +00:00
Bruce Momjian
f56483490b Disable pg_upgrade for 6.5. 1999-06-08 01:32:05 +00:00
Bruce Momjian
505b2ecdf4 I attach a patch for pg_upgrade. This does two things:
1. check whether the program is being executed in $PGDATA/..  This is
   necessary if the data tree is not in the standard place, as is the
   case with the Debian distribution (because of Debian policy).

2. give a clearer error message if the dumped data structure fails to
   be loaded.

Oliver Elphick
1999-06-07 22:58:31 +00:00
Bruce Momjian
094616ec83 On AIX 4.3.2 the third line in template/aix_42:
SHARED_LIB:

needs to be changed to:
SHARED_LIB:-lc

I think this was also needed on AIX 4.2. Comments Please !!

If nobody objects, I suggest to make this change, since it cannot
break AIX 4.2 and is necessary on AIX 4.3

Andreas
1999-06-07 17:20:24 +00:00
Vadim B. Mikheev
4c45832c39 Concurrency... Highest one...
DO NOT EVEN TRY TO DO PageGetMaxOffsetNumber BEFORE
LockBuffer!
-:)
1999-06-07 15:14:54 +00:00
Bruce Momjian
8864ee0b6b > Here is a small patch that should only affect win32 building
> (native win32, not cygnus).
> It does the following:
> Patches two win32.mak files to DEFINE HAVE_VSNPRINTF and
> HAVE_STRDUP. This is required to build at all.
> Bumps the version number on libpq.dll from 6.4 to 6.5.
> Required for install programs to work.
> Adds defintions for BLCKSZ and MAXIMUM_ALIGN to "win32.h" in
> the client-side libpiq directory.
>
> All these files are only used when building on native win32,
> so it should be safe I think.
>
> Again, really sorry to throw this in so late, but I would
> hate to do the same thing as with 6.4 (which required 6.4.1
> to at all compile on Win32).
>
> Thanks,
>
>   //Magnus
1999-06-07 14:29:20 +00:00
Tom Lane
bad3b3068d Repair recently-introduced error in makeIndexable for LIKE:
a non-leading % would be put into the >=/<= patterns.  Also, repair
longstanding confusion about whether %% means a literal %%.  The SQL92
doesn't say any such thing, and textlike() knows that, but gram.y didn't.
1999-06-07 14:28:26 +00:00
Vadim B. Mikheev
43c135e351 Have to release meta page before reading root one!
< 6.5 versions were just not affected by this bug due to locking.
1999-06-07 14:28:22 +00:00
Vadim B. Mikheev
1b812d9358 1. xact.c: update comments about changing MyProc->xid and MyProc->xmin.
2. varsup.c:ReadNewTransactionId(): don't read nextXid from disk -
   this func doesn't allocate next xid, so ShmemVariableCache->nextXid
   may be used (but GetNewTransactionId() must be called first).
3. vacuum.c: change elog(ERROR, "Child item....") to elog(NOTICE) -
   this is not ERROR, proper handling is just not implemented, yet.
4. s_lock.c: increase S_MAX_BUSY by 2 times.
5. shmem.c:GetSnapshotData(): have to call ReadNewTransactionId()
   _after_ SpinAcquire(ShmemIndexLock).
1999-06-06 20:19:35 +00:00
Tom Lane
48c1887964 equal() needs a case for Aggref nodes, as shown by:
regression=> select sum(q1) from int8_tbl group by q2 order by sum(q1);
NOTICE:  equal: don't know whether nodes of type 107 are equal
1999-06-06 17:46:40 +00:00
Tom Lane
dfaf9fbcb4 Add a regression test case to catch breakage of GROUP BY
and aggregate functions in queries that use inheritance.
1999-06-06 17:41:01 +00:00
Tom Lane
b4210ae0f0 Fix problems with grouping/aggregation in queries that use
inheritance ... basically it was completely busted :-(
1999-06-06 17:38:11 +00:00
Vadim B. Mikheev
08abe0acb6 I used bad style of comments and ... commented out some code in
EvalPlanQualNext() when implemented it... -:)
Uncommented...
1999-06-06 15:14:40 +00:00
Tom Lane
ca234c3f38 Instead of failing when the constructed name for a sequence,
index, etc is too long, truncate until it fits.
1999-06-05 20:22:30 +00:00
Tom Lane
e7253d893c Remove redeclarations of default parameter values from
PgDatabase::DisplayTuples and PgDatabase::PrintTuples.  This is incorrect
according to strict interpretation of the C++ spec, and some compilers
will reject it.  Also silence g++ warning about unused parameter.
1999-06-05 18:05:17 +00:00
Tatsuo Ishii
7e6a9a60ff a fix for Win32 support provided by yutaka@marin.or.jp.
The patch will avoid to add .exe suffix to the pg_encoding
	binary.
1999-06-05 10:27:31 +00:00
Marc G. Fournier
93b57eb533 trace.patch (compilation error)
the gettimeofday doesn't compile under Linux with glibc2 because
        the DST_NONE constant is no more defined. It seems that this code
        (written by me) has always be wrong but for some reason working.

From: Massimo Dal Zotto <dz@cs.unitn.it>
1999-06-05 04:18:09 +00:00
Marc G. Fournier
dbaab4a4d4 man.patch (make inconsistency)
the default target is 'install' instead of 'all'. So if you do a
        make without target you actually do a make install, which is not
        what one normally expects from a standard makefile.

From: Massimo Dal Zotto <dz@cs.unitn.it>
1999-06-05 04:15:09 +00:00
Marc G. Fournier
840306af04 ecpg.patch (wrong makefile expansion in some cases)
the ecpg Makefiles use a variable DESTDIR which is never defined
        except by debian/rules makefile, in which case the ecpg makefiles
        expand wrong pathnames. If we want to support a DESTDIR root it
        must be done consistently in all the makefiles, not just in ecpg.

From: Massimo Dal Zotto <dz@cs.unitn.it>
1999-06-05 04:13:21 +00:00
Tom Lane
857c079304 Suppress indexes on large objects from psql's \d listing;
they were confusing because the large object tables themselves are not
shown.  (Besides, if you've got hundreds or thousands of large objects,
you really don't want to see 'em at all.)
Also, suppress all indexes from the \z ACL listing, since indexes have
no meaningful protection information.
1999-06-04 21:21:13 +00:00
Tom Lane
8f19603d6c Add startup-time check that -B is not unreasonably small for
given number of backends (-N), per recent discussion in pghackers list.
1999-06-04 21:14:46 +00:00
Tom Lane
4cd4a54c80 Add configurable option controlling security checks in LO functions. 1999-06-04 21:13:38 +00:00
Tom Lane
1c3c080534 Turns out OIDNAMELEN wasn't really being used at all!
Get rid of it to make customization of NAMEDATALEN easier.
1999-06-04 21:12:07 +00:00
Bruce Momjian
f0f416a2d3 Add mention of SHARE ROW EXCLUSIVE mode. 1999-06-04 04:28:54 +00:00
Bruce Momjian
8760d33abb man page cleanup for vadim. 1999-06-04 04:16:11 +00:00
Bruce Momjian
5a7547d3fc Add description for SET TRANSACTION. 1999-06-04 03:44:42 +00:00
Tom Lane
74e7b58b61 Fix for failure to clean SysCache entry when a relation is deleted
in the same transaction that created it.
1999-06-04 02:19:47 +00:00
Bruce Momjian
a6ed4794a3 SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
                                ^^^^ required

Also note that SET TRANSACTION ISOLATION LEVEL change
isolevel for _current_ transaction, in accordance with
standard, not for session (ALTER SESSION is used in Oracle,
but it's not implemented currently).

And I would don't mention SET XACTISOLEVEL TO ...
form at all.

Please update set.sgml - I failed to understand all these

SET TIME ZONE { '<REPLACEABLE CLASS="PARAMETER">

now.


for Vadim
1999-06-03 20:44:28 +00:00
Bruce Momjian
155b5808ca Thanks for this, but SET TRANSACTION ISOLATION LEVEL
should be described like SET TIME ZONE: TO is not allowed, as well
as DEFAULT option. There are only two forms:

for Vadim.
1999-06-03 20:42:18 +00:00
Bruce Momjian
a4a5f56202 Add mention of FOR UPDATE and LIMIT/OFFSET> 1999-06-03 19:52:09 +00:00
Bruce Momjian
e1ea7cc2e5 Update lock sgml/man/psql help pages. 1999-06-03 19:18:00 +00:00
Bruce Momjian
4a077caa60 Add SET TRANSACTION ISOLATION LEVEL and SET NAMES mention. 1999-06-03 18:38:00 +00:00
Bruce Momjian
7857241229 Update psql help so it looks better. 1999-06-03 18:25:27 +00:00
Bruce Momjian
fa0ed6f047 Update SET commands for psql \h, man pages, and sgml. 1999-06-03 18:18:43 +00:00
Vadim B. Mikheev
5541abee0d 1. Additional fix against ERROR: Child itemid marked as unused
in CommitTransaction().
2. Changes in GetSnapshotData().
1999-06-03 13:33:13 +00:00
Vadim B. Mikheev
f103501286 Unuseful tuple.t_data->t_infomask & HEAP_XMIN_COMMITTED in
vc_scanheap().
1999-06-03 13:25:54 +00:00
Vadim B. Mikheev
9680a71205 1. MyProc->xid assignment is moved to GetNewTransactionId so newer
transactions will not assume that MyProc transaction was committed
   before snapshot calculations. With old MyProc->xid assignment
   (in xact.c:StartTransaction()) there was ability to see the same
   row twice (I used gdb for this)!...
2. Assignments of InvalidTransactionId to MyProc->xid and MyProc->xmin
   are moved from xact.c:CommitTransaction() to
   xact.c:RecordTransactionCommit() - this invalidation must be done
   before releasing transaction locks or bad (too high) XmaxRecent value
   might be used by vacuum ("ERROR:  Child itemid marked as unused"
   reported by "Hiroshi Inoue" <Inoue@tpf.co.jp>; once again, gdb
   allowed me reproduce this error).
1999-06-03 04:41:41 +00:00
Tom Lane
58d8584eea pg_dump failed on any database containing large objects,
because it ignored the LOs themselves but failed to ignore the indexes
on the LOs.  How long has this been broken??
1999-06-03 04:01:16 +00:00
Tom Lane
f463c44fc0 Ensure consistent results when FormSortKeys fails to find
all the expected keys (it was returning uninitialized memory).
1999-06-03 03:17:37 +00:00
Tom Lane
9b3e2dda16 Ooops ... dllist.c can't use Assert() when it is compiled into
libpq ...
1999-06-03 01:28:24 +00:00
Jan Wieck
98981a9f1c Changed "current." into "old." in rule string backparsing
Jan
1999-06-02 11:52:29 +00:00
Bruce Momjian
e47b93d333 The INET and CIDR types mistakenly compared 198.68.123.0/24 and
198.68.123.0/27 the same when indexing them.

D'Arcy
1999-06-02 03:37:15 +00:00
Vadim B. Mikheev
bbf37e9477 typedef struct LTAG
{
    Oid             relId;
    Oid             dbId;
    union
    {
        BlockNumber     blkno;
        TransactionId   xid;
    }               objId;
>
> Added:
>    /*
>     * offnum should be part of objId.tupleId above, but would increase
>     * sizeof(LOCKTAG) and so moved here; currently used by userlocks only.
>     */
>    OffsetNumber    offnum;
    uint16          lockmethod;     /* needed by userlocks */
} LOCKTAG;

gmake clean required...
User locks are ready for 6.5 release...
1999-06-01 09:35:39 +00:00
Bruce Momjian
42a02c441a forgot to attach the patch. :(
Vince.
1999-06-01 02:43:37 +00:00
Bruce Momjian
d2ab04ca73 commented out PgConnection& references for now. May be using them
later.

Vince.
1999-06-01 02:37:33 +00:00
Tom Lane
185b427284 Fix some latent bugs in dllist.c (carelessness about setting
all fields that should be set).  Add a MoveToFront primitive to speed up
one of the hotspots in SearchSysCache.
1999-05-31 23:48:04 +00:00
Tom Lane
2a44383a2d Clean up memory leaks in LO operations by freeing LO's private
memory context at transaction commit or abort.
1999-05-31 22:53:59 +00:00
Tom Lane
81ced1e037 Generate a more specific error message when an operator used
in an index doesn't have a restriction selectivity estimator.
1999-05-31 19:32:47 +00:00
Tom Lane
cc384fa240 Round up shmem size estimate to 1Kb boundary. 1999-05-31 18:28:52 +00:00
Tom Lane
86482e17bd Correct serious bug in hashtable expansion routine: under the
right circumstances it would leave old and new bucket headers pointing to
the same list of records.
1999-05-31 17:01:52 +00:00
Bruce Momjian
7f79496aa5 NT similar file update. 1999-05-31 16:18:53 +00:00
Vadim B. Mikheev
219bb76d61 Release XactLockTable share lock immediately after this lock is acquired
(no sense to hold it) or we'll be out of lock entries.
Great thanks to Hiroshi Inoue.
1999-05-31 01:48:13 +00:00
Tom Lane
ca08ce28e8 Clean up uninitialized-variable warning from egcs.
(Curious that gcc doesn't complain about this code...).
1999-05-30 15:32:45 +00:00
Tom Lane
3257b0e592 egcs thinks omitting the return type in a function declaration
is poor coding style.  I agree.
1999-05-30 15:22:34 +00:00
Tom Lane
d4d297af3c Replace static rcsid[] strings by IDENTIFICATION comments in
file headers, to conform to established Postgres coding style and avoid
warnings from gcc.
1999-05-30 15:17:58 +00:00
Tom Lane
6687bcb558 configure.in forgot to do AC_LANG_C to reselect C-based tests
after checking for presence of C++ compiler.  Odd we hadn't seen any
reports of problems before...
1999-05-30 00:06:44 +00:00
Tom Lane
6f979c1541 Turns out that configure's test for HPUXMATHLIB didn't work
when used with egcs --- now it does.
1999-05-29 16:26:42 +00:00
Vadim B. Mikheev
df9e539ea2 1. Run all pg_dump queries in single serializable transaction.
2. Get rid of locking when updating statistics in vacuum.
3. Use QuerySnapshot in COPY TO and call SetQuerySnashot
   in main tcop loop before FETCH and COPY TO.
1999-05-29 10:25:33 +00:00
Vadim B. Mikheev
bbbc211ed1 Fix xid table sizing. 1999-05-29 06:14:43 +00:00
Tom Lane
dfefad7db0 Missing semicolons in non-HAS_TEST_AND_SET code paths :-( 1999-05-29 03:58:43 +00:00
Tom Lane
1bdd7c68c0 Avoid redundant SysCache searches in coerce_type, for another
few percent speedup in INSERT...
1999-05-29 03:17:20 +00:00
Tom Lane
b325dab67a new_relation_targetlist used to cause about 8 separate (and
redundant) SearchSysCache searches per table column in an INSERT, which
accounted for a good percentage of the CPU time for INSERT ... VALUES().
Now it only does two searches in the typical case.
1999-05-29 01:48:06 +00:00
Tom Lane
ce2586dbc9 Clean up inefficient and just plain bad code in some hot-spot
cache access routines.
1999-05-29 01:45:21 +00:00
Tom Lane
dc6d404959 Repair performance problem in SI segment manipulations: iterating
through MAXBACKENDS array entries used to be fine when MAXBACKENDS = 64.
It's not so cool with MAXBACKENDS = 1024 (or more!), especially not in a
frequently-used routine like SIDelExpiredDataEntries.  Repair by making
procState array size be the soft MaxBackends limit rather than the hard
limit, and by converting SIGetProcStateLimit() to a macro.
1999-05-28 17:03:31 +00:00
Bruce Momjian
b344b513c7 Update pygresql version stamp. 1999-05-28 04:54:34 +00:00
Tom Lane
f0ae1e8d10 When closure of the backend connection is detected during pqFlush,
do the right thing: look for a NOTICE message from the backend before we
close our side of the socket.  6.4 libpq did not reliably print the backend's
hara-kiri message, 'The Postmaster has informed me ...', because it only
did the right thing if connection closure was detected during a read
attempt instead of a write attempt.
1999-05-28 01:54:53 +00:00
Bruce Momjian
615e77ede2 Make pg_dump dump ACL's by default, print warning on use of -z, and add
new -x option to skip acl dump.
1999-05-27 16:29:05 +00:00
Bruce Momjian
781a1eb99a I am not sure if libpq++ will compile with non g++ compilers,
but the Makefile does break non g++.

 <<mak.patch>>
Andreas
1999-05-27 14:28:40 +00:00
Bruce Momjian
0d5f7ce11c Fix for crypt memory leak, from James Thompson 1999-05-27 04:09:45 +00:00
Tom Lane
7c8beefd5e Patch from Andreas: when CREATE TABLE is followed by CREATE INDEX
before any tuples are loaded, preserve the default '1000 tuples' table
size estimate.
1999-05-26 22:57:39 +00:00
Tom Lane
8eb18d874e Fix pg_dump to use the same maximum-query-size constant as
the backend does.  Remove unnecessary limitation on field size in
dumpClasses_dumpData (ie, -d or -D case).
1999-05-26 21:51:13 +00:00
Bruce Momjian
26fb87d37e Fix compile of plpgsql by adding 'extern int yylineno.' 1999-05-26 20:55:06 +00:00
Bruce Momjian
bf09f8aa43 Display numeric precision on \d. 1999-05-26 20:08:06 +00:00
Bruce Momjian
e7528612d8 Allow GROUPs to be dumped properly. 1999-05-26 19:45:53 +00:00
Bruce Momjian
fe2bcf854c Fix for NT from Horak Daniel 1999-05-26 16:19:48 +00:00
Bruce Momjian
9b35ec2615 Disable use of -o and -d pg_dump options together. Can't set oids in
inserts.  Change some variables to bool to be clearer.
1999-05-26 16:06:45 +00:00
Bruce Momjian
9c56b408c4 Add fix for 0x7fU constants to pgindent 1999-05-26 15:20:04 +00:00
Bruce Momjian
eeadc5e87f Allow pg_dump -v display proper table/sequence count display. 1999-05-26 14:50:38 +00:00
Bruce Momjian
278bbf4572 Make functions static or NOT_USED as appropriate. 1999-05-26 12:57:23 +00:00
Marc G. Fournier
180186272a Give BEOS a chance ... 1999-05-26 01:22:24 +00:00
Bruce Momjian
fcff1cdf4e Another pgindent run. Sorry folks. 1999-05-25 22:43:53 +00:00
Bruce Momjian
4eadfe8754 Make 0x007f -> (unsigned)0x7f to make pgindent happy. 1999-05-25 22:04:56 +00:00
Vadim B. Mikheev
519cd36d06 Get rid of page-level locking in btree-s.
BT_READ/BT_WRITE are BUFFER_LOCK_SHARE/BUFFER_LOCK_EXCLUSIVE now.
Also get rid of #define BT_VERSION_1 - we use version 1 as default
for near two years now.
1999-05-25 18:31:28 +00:00
Vadim B. Mikheev
7d443a85af Get rid of page-level locking in btree-s.
LockBuffer is used to acquire read/write access
to index pages. Pages are released before leaving
index internals.
1999-05-25 18:20:31 +00:00
Bruce Momjian
07842084fe pgindent run over code. 1999-05-25 16:15:34 +00:00
Michael Meskes
4b04b01aaa *** empty log message *** 1999-05-25 13:36:15 +00:00
Jan Wieck
b122e16a1c Bugfix - Range table entries that are unused after rewriting should
not be marked inFromCl any longer. Otherwise the planner gets confused
and joins over them where in fact it does not have to.

Adjust hasSubLinks now with a recursive lookup - could be wrong in
multi action rules because parse state isn't reset correctly and all
actions in the rule are marked hasSubLinks if one of them has.

Jan
1999-05-25 13:16:10 +00:00
Jan Wieck
f4fadbe4db Fixed bug in rules event qualification output.
Jan
1999-05-25 08:49:33 +00:00
Bruce Momjian
6bf0db7e07 FIx for 0.0.0.0/0 output as 00/0. 1999-05-25 05:29:38 +00:00
Tom Lane
9432b6dd64 Do not assign output columns to junk attributes created from
GROUP BY or ORDER BY expressions in INSERT ... SELECT.
1999-05-23 21:42:09 +00:00
Tom Lane
505b5185fc Detect case of invalid use of GROUP BY when there are no
aggregate functions, as in
	select a, b from foo group by a;
The ungrouped reference to b is not kosher, but formerly we neglected to
check this unless there was an aggregate function somewhere in the query.
1999-05-23 21:41:14 +00:00
Bruce Momjian
57455fc565 Remove more -B parameters not needed. 1999-05-23 19:01:18 +00:00
Bruce Momjian
bd5cf46e0c Remove -B from wisconsin test. 1999-05-23 18:53:30 +00:00
Vadim B. Mikheev
7e14593d2e Fix tuple chain moving bug found by "Hiroshi Inoue" <Inoue@tpf.co.jp>. 1999-05-23 09:10:24 +00:00
Bruce Momjian
b14c99d8d6 Here it is. Remove or rename the current interfaces/libpq++ and untar
this file in interfaces/

It will all need to be checked in.  I used the char *rcsid[] method for
cvs ids so it can be strings | grep'd to find version numbers.  The new
version for the library is 3.0.

Run configure from src/ to create the Makefile and it should be good to
go.

I did minimal documentation references in the README, I'll see if I can
get something to Tom Lockhart rather quickly.

Vince.
1999-05-23 01:04:07 +00:00
Tom Lane
795f6ca66a Update commentary in sample GEQO config file. 1999-05-22 23:59:59 +00:00
Tom Lane
b2f14e11ec Reduce default GEQO 'effort' setting to MEDIUM always.
This agrees with the documentation and seems like a more useful default
anyhow ...
1999-05-22 23:27:19 +00:00
Tom Lane
d52a91a5d8 Modify aset.c logic so that blocks requested from malloc get
bigger the more space is used in an allocset.  This reduces the malloc
overhead very substantially on queries that need lots of memory.
1999-05-22 23:19:37 +00:00
Tom Lane
f9f90b21b2 Improve error message from failed LOAD command (include
kernel's error description when file is not accessible).
1999-05-22 19:49:42 +00:00
Tom Lane
b21005fa7c Allow GEQO effort to be specified numerically, as well as
symbolic LOW/MEDIUM/HIGH values --- needed for experiments with other
effort levels ...
1999-05-22 19:29:01 +00:00
Tom Lane
cf1478982c Modify backend switch parsing to prevent 'insecure' switches
from being accepted when they are passed from client connection request.
Get rid of a couple that no longer do anything (like -P).
1999-05-22 17:47:54 +00:00
Bruce Momjian
e9edb3ef92 Fix for select 1;select 2 without trailing semi. 1999-05-22 05:06:43 +00:00
Bruce Momjian
a8d2820e6d Fix for DEFAULT ''. 1999-05-22 04:12:29 +00:00
Bruce Momjian
9710995fc9 Make postgres prompt backend>, and remove PARSEDEBUG. 1999-05-22 02:55:58 +00:00
Bruce Momjian
85170aa9b6 Change perl Makefile test. 1999-05-21 19:03:48 +00:00
Bruce Momjian
167529f221 Disable fix. Didn't work. 1999-05-21 18:33:12 +00:00
Bruce Momjian
c0d979614e Fix typo and attempt default fix. 1999-05-21 18:31:06 +00:00
Michael Meskes
a7b06f20c5 *** empty log message *** 1999-05-21 16:36:27 +00:00
Bruce Momjian
96492290b5 Treat {} as special regex too. 1999-05-21 15:47:13 +00:00
Tatsuo Ishii
08bcc77a5c add retest, a regex testing program 1999-05-21 06:27:54 +00:00
Bruce Momjian
56b9a549c7 Fix problem with | in ~ comparison using index. 1999-05-21 04:40:04 +00:00
Tom Lane
b3ad49850e Report strerror() rather than errno in low-level backend libpq
failure messages.
1999-05-21 01:25:06 +00:00
Tom Lane
5690b1a18f Minor updates to libpq documentation. 1999-05-21 00:36:46 +00:00
Jan Wieck
3de11d6526 Removed the automatic installation of built procedural languages
from initdb again.

Added two new commands, createlang and destroylang to bin. These
hopefully end this damned mklang.sql discussion.

Jan
1999-05-20 16:50:08 +00:00
Tom Lane
33773af95b Generate distinct error messages for trigger function not found
and trigger function found but returns wrong type.
1999-05-20 14:39:49 +00:00
Jan Wieck
443c08a110 Fixed shift/reduce conflict
SelectStmt and CursorStmt tried to parse FOR UPDATE ... / FOR READ ONLY.
Cursor now checks that it is read only by looking at forUpdate of Query.
SelectStmt handles FOR READ ONLY too.

Jan
1999-05-20 12:12:55 +00:00
Tatsuo Ishii
1f82f1de33 overwriting a large object now works 1999-05-20 09:30:36 +00:00
Tom Lane
c3a4d8ed54 Very minor improvements in CREATE OPERATOR docs. 1999-05-20 03:22:01 +00:00
Tom Lane
f9e497db7f Doco updates for change to handling of INTERNAL function
entries (prosrc is now name of C-level function).
1999-05-20 02:44:53 +00:00
Tom Lane
77d3355900 Minor improvements to postmaster/backend man pages. 1999-05-19 23:30:43 +00:00
Bruce Momjian
41543b0618 Dec ALpha patches 1999-05-19 18:06:43 +00:00
Bruce Momjian
8223f70e52 Dec alpha patches. 1999-05-19 18:04:51 +00:00
Bruce Momjian
6d08b6a7b8 Remove 4096 string limited key on block size 1999-05-19 17:53:12 +00:00
Bruce Momjian
0a8fb5a8f9 Upgrade to PyGreSQL (2.4) 1999-05-19 16:46:12 +00:00
Marc G. Fournier
9487ad8409 Bring python up to date ...
From: D'Arcy J.M. Cain <darcy@druid.net>
1999-05-19 14:46:54 +00:00
Tom Lane
77ebed09f5 Add Aggref and ArrayRef to the set of node types that transformExpr
will pass through rather than spitting up.  This is necessary to handle
cases where coerce_type causes a subexpression to be retransformed, as in
	SELECT count(*) + 1.0 FROM table
1999-05-18 23:40:05 +00:00
Peter Mount
2d7ec4785f Forgot the CHANGELOG 1999-05-18 23:22:08 +00:00
Peter Mount
4c63b257fd Internationalisation of error messages 1999-05-18 23:17:46 +00:00
Tom Lane
c2f0d565f3 Now that hashjoin is reliable for large joins (knock on wood),
remove optimizer's arbitrary limit on how large a join it will use hashing
for.  (The limit was too large to prevent the problems we'd been seeing,
anyway...)
1999-05-18 21:36:10 +00:00
Tom Lane
353d36f979 Remove no-longer-used fields in Hash and HashJoin nodes. 1999-05-18 21:34:29 +00:00
Tom Lane
26069a58e8 Rewrite hash join to use simple linked lists instead of a
fixed-size hashtable.  This should prevent 'hashtable out of memory' errors,
unless you really do run out of memory.  Note: target size for hashtable
is now taken from -S postmaster switch, not -B, since it is local memory
in the backend rather than shared memory.
1999-05-18 21:33:06 +00:00
Peter Mount
d261a5ec86 Transactions in ImageViewer 1999-05-18 06:07:25 +00:00
Michael Meskes
21e03211cf *** empty log message *** 1999-05-18 05:20:17 +00:00
Peter Mount
20f0cfc322 Fixed Internationalization of error messages. 1999-05-17 22:58:19 +00:00
Peter Mount
3f59cc0831 Minor bug fixes. Replaced DateStyle support with ISO. 1999-05-17 22:43:30 +00:00
Bruce Momjian
c2b75c83f3 All works on linux now by my tests and regression(with patch below).
ALTER TABLE RENAME with extents.
Ole Gjerde
1999-05-17 18:24:48 +00:00
Bruce Momjian
19c4e862d4 Skip junk nodes when comparing UNION target list lengths. 1999-05-17 18:22:19 +00:00
Bruce Momjian
585c967720 Change resjunk to a boolean. 1999-05-17 17:03:51 +00:00
Jan Wieck
fd1647706d Fixed latest regression diff's by omitting viewowner in SELECT from pg_views.
Jan
1999-05-17 09:03:26 +00:00
Bruce Momjian
184dd28d5c This is actually more of a fundamental problem with mdtruncate. It
looks
like someone just didn't add support for multiple segments for
truncation.

The following patch seems to do the right thing, for me at least.
It passed my tests, my data looks right(no data that shouldn't be in
there) and regression is ok.

Ole Gjerde
1999-05-17 06:38:41 +00:00
Bruce Momjian
1125c5e4c5 Add python 1999-05-17 06:27:07 +00:00
Bruce Momjian
e55213a5a8 Re-add python. 1999-05-17 06:15:31 +00:00
Bruce Momjian
716b8e2dba Updates for 6.5. 1999-05-17 06:06:35 +00:00
Tom Lane
fe0b8612d9 Prior patch added 2 more characters to string allocated
for SERIAL column's constraint, but forgot to increase space palloc'd...
1999-05-17 04:50:07 +00:00
Bruce Momjian
b8b1ba53ea SELECT * error message fix. 1999-05-17 04:19:33 +00:00
Marc G. Fournier
a0b7daa129 Apply freebsd specific patches dealign with ELF system from FreeBSD's
ports collection ...
1999-05-17 04:13:29 +00:00
Bruce Momjian
61f618e73e Move IN to proper place. 1999-05-17 01:01:06 +00:00
Bruce Momjian
a341db91c5 Cleanup 1999-05-17 00:31:49 +00:00
Bruce Momjian
e83265b32a Fix typo in change. 1999-05-17 00:27:45 +00:00
Tom Lane
0b8b1fe3aa Tighten coding in new_join_pathkey, which seems to be a hotspot
for GEQO ...
1999-05-17 00:26:33 +00:00
Tom Lane
1332c1e144 Change GEQO optimizer to release memory after each gene
is evaluated.  This bounds memory usage to something reasonable even
when many tables are being joined.
1999-05-17 00:25:34 +00:00
Bruce Momjian
c686be8d56 Require IN in LOCK syntax. 1999-05-17 00:22:07 +00:00
Bruce Momjian
054cae8173 Change md* call to smgr*. 1999-05-17 00:19:12 +00:00
Tom Lane
fecb2b0024 Minor code cleanup in optimizer. 1999-05-16 19:45:37 +00:00
Tom Lane
f2ed835baf Fix some typos in geqo optimizer --- it now generates
reasonable plans again.  Still eats memory like there's no tomorrow,
however :-(.
1999-05-16 19:45:00 +00:00
Tom Lane
bbf3748347 Change iostream to iostream.h, strstream to strstream.h
for compatibility with older C++ libraries.
1999-05-16 14:34:59 +00:00
Bruce Momjian
2132e062e1 I made it so it rolled over files at 1MB. My table ended up with 120
segments, and my indexes had 3(Yes, it DOES work!).
DROP TABLE removed ALL segments from the table, but only the main index
segment.

So it looks like removing the table itself is using mdunlink in md.c,
while removing indexes uses FileNameUnlink() which only unlinks 1 file.
As far as I can tell, calling FileNameUnlink() and mdunlink() is basically
the same, except mdunlink() deletes any extra segments.

I've done some testing and it seems to work.  It also passes regression
tests(except float8, geometry and rules, but that's normal).

If this patch is right, this fixes all known multi-segment problems on
Linux.

Ole Gjerde
1999-05-15 22:31:07 +00:00
Bruce Momjian
de81fbd047 I've got 2 pretty small patches.
configtype.patch simply fixes a typo in config.h.in
pg_dump.c.patch Updates a bunch of error messages to include a reason
from
                the backend, and also removes a couple of unnecessary
if's

Ole Gjerde
1999-05-15 22:18:51 +00:00
Michael Meskes
c8bd630af6 *** empty log message *** 1999-05-14 06:56:18 +00:00
Bruce Momjian
564842a617 Hi, Bruce!
These are my last changes to lmgr fixing deadlock handling.
Please apply them to cvs...

Vadim
1999-05-13 15:55:45 +00:00
Thomas G. Lockhart
9bbc1657a1 Add double quotes around the sequence name generated to support the
SERIAL data type DEFAULT clause.
This fixes a problem finding the sequence name when mixed case table names
 are involved.
1999-05-13 15:01:32 +00:00
Thomas G. Lockhart
81c83db3bb Surround a variable declaration with ENABLE_OUTER_JOINS to suppress
compiler warnings about an unused variable.
1999-05-13 14:59:05 +00:00
Tatsuo Ishii
0c1e2e493d set client_encoding to <nothing> crashes backend. 1999-05-13 10:28:26 +00:00
Tom Lane
507a0a2ab0 Rip out QueryTreeList structure, root and branch. Querytree
lists are now plain old garden-variety Lists, allocated with palloc,
rather than specialized expansible-array data allocated with malloc.
This substantially simplifies their handling and eliminates several
sources of memory leakage.
Several basic types of erroneous queries (syntax error, attempt to
insert a duplicate key into a unique index) now demonstrably leak
zero bytes per query.
1999-05-13 07:29:22 +00:00
Byron Nikolaidis
f80642137c Update driver to 6-40-0006 1999-05-13 03:33:00 +00:00
Bruce Momjian
519ad246ae Here's a small patch to cause pg_dump to emit the
scale and precision for NUMERIC type column defs.

Keith Parks
1999-05-13 02:35:44 +00:00
Tom Lane
0b885e2397 Release allocated memory during AtAbort_Memory. 1999-05-13 00:34:57 +00:00
Tom Lane
eb4d9f45ef Do not refer to stdin in static variable initializer ...
apparently some systems choke on that :-(.
1999-05-12 23:26:03 +00:00
Jan Wieck
c8cc45b2f3 Fixed small bug in ruleutils and added output of pg_views and
pg_rules to rules regression test.

Jan
1999-05-12 17:59:32 +00:00
Jan Wieck
b7a86e4046 Fixed wrong hasAggs when aggregate columns of view aren't
selected.

Disabled ability of defining DISTINCT or ORDER BY on views.

Jan
1999-05-12 17:04:47 +00:00
Jan Wieck
79c2576f77 Replaced targetlist entry in GroupClause by reference number
in Resdom and GroupClause so changing of resno's doesn't confuse
the grouping any more.

Jan
1999-05-12 15:02:39 +00:00
Bruce Momjian
1a87c14c9c I am sorry, I misinterpreted the still failing trigger regression test.
The
offending code
has been removed, the action is now always dependent :-)

I suggest the following patch, to finally make trigger regression happy
again:

 <<refint1.patch>>
After that you can remove the following from TODO:
Remove ERROR:  check_primary_key: even number of arguments should be
specified
Trigger regression test fails

Andreas
1999-05-12 12:47:24 +00:00
Jan Wieck
ca00c902fb Added installation of created procedural languages to initdb
Jan
1999-05-12 10:35:44 +00:00
Thomas G. Lockhart
5dd715b592 Adjust elog NOTICE messages to surround table and column names with single
quotes.
1999-05-12 07:24:01 +00:00
Thomas G. Lockhart
bcb5aac81d Add keywords to implement Vadim's transaction isolation
and lock syntax as fully parsed tokens.
Two keywords for isolation are non-reserved SQL92
 (COMMITTED, SERIALIZABLE).
All other new keywords are non-reserved Postgres (not SQL92)
 (ACCESS, EXCLUSIVE, MODE, SHARE).
Add syntax to allow CREATE [GLOBAL|LOCAL] TEMPORARY TABLE, throwing an
 error if GLOBAL is specified.
1999-05-12 07:22:52 +00:00
Thomas G. Lockhart
3ce054b57d Fix problem with multiple indices defined if using column- and table-
constraints. Reported by Tom Lane.
Now, check for duplicate indices and retain the one which is a primary-key.
Adjust elog NOTICE messages to surround table and column names with single
 quotes.
1999-05-12 07:17:18 +00:00
Thomas G. Lockhart
575c40a61f Handle conversion of floating point constants to internal strings. 1999-05-12 07:14:24 +00:00
Thomas G. Lockhart
8d21a6ef51 Keep long non-quoted numeric strings *as* untyped strings if they fail
the obvious conversion.
Define a new pattern "decimal" which is non-exponential floating point
 for use with numeric() and decimal() types.
1999-05-12 07:12:51 +00:00
Tom Lane
a36a7a16eb Fix bogus assumption that MAXALIGN is at least sizeof(pointer). 1999-05-12 04:38:24 +00:00
Tom Lane
5085132c6d Fix configure to generate correct expansion of library directory
in pl/plpgsql/src/mklang.sql.
1999-05-11 22:57:50 +00:00
Bruce Momjian
a9bd936066 Just a couple more files to untar in src/test/regress
(int2,int4,geometry).

Cheers,

Patrick Welche
1999-05-11 16:29:45 +00:00
Jan Wieck
5057010944 Changed debug options:
-d4 now prints compressed trees from nodeToString()
-d5 prints pretty trees via nodeDisplay()

new pg_options: pretty_plan, pretty_parse, pretty_rewritten

Jan
1999-05-11 09:06:35 +00:00
Bruce Momjian
1ba362f567 put back mklang.sql.in file. 1999-05-11 03:30:41 +00:00
Bruce Momjian
12f9de3fd4 clean up comments 1999-05-11 03:28:43 +00:00
Jan Wieck
bb885dd1a1 Check for NUMERIC overflow a second time after rounding
Jan
1999-05-10 18:17:44 +00:00
Bruce Momjian
0d5c832363 Allow perl install as non-root, from Geoff Keating 1999-05-10 17:01:25 +00:00
Bruce Momjian
94bd4e3da7 Update to PyGreSQL 2.3. 1999-05-10 16:10:51 +00:00
Bruce Momjian
86dacdb74c libpq++ uses fe_setauthsvc which is deprecated and results in an error
on connection. This patch changes it to use PQconnectdb rather than
{fe_setauthsvc,PQsetdb}. This still isn't the complete solution, as
there
is no provision for user,password in class PgEnv, but it does get rid of
the error message. Tested with gcc version egcs-2.91.60 19981201
(egcs-1.1.1 release) under NetBSD-1.3K/i386.

Cheers,

Patrick Welche
1999-05-10 15:27:19 +00:00
Bruce Momjian
d6e33c8b07 Rename MAP_FILE to USERMAP_FILE for Digital Unix. 1999-05-10 15:17:17 +00:00
Bruce Momjian
f4213e6b23 Fix initdb problem introduced by recent patch. 1999-05-10 04:02:07 +00:00
Bruce Momjian
4853495e03 Change error messages to oids come out as %u and not %d. Change has no
real affect now.
1999-05-10 00:46:32 +00:00
Tom Lane
b7332c9243 Correct type_sanity test so it doesn't spit up on new
definition of numeric_in.
1999-05-09 23:43:25 +00:00
Tom Lane
0b69d8a27c Rearrange top-level rewrite operations so that EXPLAIN works
on queries involving UNION, EXCEPT, INTERSECT.
1999-05-09 23:31:47 +00:00
Tatsuo Ishii
6458daa180 Running lo_read/lo_write under different memory context
cause troubles. See
Message-Id: <199905090312.MAA00466@ext16.sra.co.jp>
for more details.
1999-05-09 15:00:18 +00:00
Vadim B. Mikheev
202e523d10 Mistyping by me.
Fixed by Hiroshi.
1999-05-09 14:00:29 +00:00
Tom Lane
3c6491ff96 Repair incorrect pg_proc entry for numeric_in. 1999-05-09 02:22:16 +00:00
Tom Lane
b5bcef683b Fix some miscellaneous places that were using raw open() or
fopen(), instead of going through fd.c ... naughty naughty.
1999-05-09 00:54:30 +00:00
Tom Lane
71d5d95376 Update hash and join routines to use fd.c's new temp-file
code, instead of not-very-bulletproof stuff they had before.
1999-05-09 00:53:22 +00:00
Tom Lane
c1167a08ca Add 'temporary file' facility to fd.c, and arrange for temp
files to be closed automatically at transaction abort or commit, should
they still be open.  Also close any still-open stdio files allocated with
AllocateFile at abort/commit.  This should eliminate problems with leakage
of file descriptors after an error.  Also, put in some primitive buffered-IO
support so that psort.c can use virtual files without severe performance
penalties.
1999-05-09 00:52:08 +00:00
Bruce Momjian
b0f1880a8e Add new netbsd file. 1999-05-08 19:28:20 +00:00
Michael Meskes
e18c912acf *** empty log message *** 1999-05-07 18:03:37 +00:00
Bruce Momjian
ef26ad2ebd Remove unused Netbsd files. 1999-05-07 02:46:24 +00:00
Bruce Momjian
c22d35be4e Please apply the following patch for regress.sh to do something useful with
"SYSTEM", and unpack the files in the uuencoded .tar.gz file at the end in
src/test/regress so that the int2, int4 and geometry tests pass on NetBSD/i386.
They just fail on different wording of error messages and eg printing "0"
rather than "-0". At a guess the same will be true for the other NetBSD ports,
but I can't test them.

Cheers,

Patrick
1999-05-07 02:37:08 +00:00
Bruce Momjian
5a0b77aa44 Please apply the following patch for regress.sh to do something useful
with
"SYSTEM", Patrick Welche
1999-05-07 02:31:43 +00:00
Vadim B. Mikheev
122abf3af3 Fix LMGR for MVCC.
Get rid of Extend lock mode.
1999-05-07 01:23:11 +00:00
Tom Lane
86bc1da262 Update regress test for CASE to enable tests involving joins. 1999-05-06 23:09:30 +00:00