Commit graph

10520 commits

Author SHA1 Message Date
Peter Eisentraut
6a68f42648 The heralded `Grand Unified Configuration scheme' (GUC)
That means you can now set your options in either or all of $PGDATA/configuration,
some postmaster option (--enable-fsync=off), or set a SET command. The list of
options is in backend/utils/misc/guc.c, documentation will be written post haste.

pg_options is gone, so is that pq_geqo config file. Also removed were backend -K,
-Q, and -T options (no longer applicable, although -d0 does the same as -Q).

Added to configure an --enable-syslog option.

changed all callers from TPRINTF to elog(DEBUG)
2000-05-31 00:28:42 +00:00
Tom Lane
0f1e39643d Third round of fmgr updates: eliminate calls using fmgr() and
fmgr_faddr() in favor of new-style calls.  Lots of cleanup of
sloppy casts to use XXXGetDatum and DatumGetXXX ...
2000-05-30 04:25:00 +00:00
Tom Lane
6ed00fee53 Convert array_map to use new fmgr interface. 2000-05-29 21:02:32 +00:00
Tom Lane
22a517a40c Repair problems with overrun of timezone name length. Increase MAXTZLEN
to 10, and be consistent about whether it counts the trailing null (it
does not).  Also increase MAXDATELEN to be sure no buffer overflows are
caused by the longer MAXTZLEN.
2000-05-29 19:16:57 +00:00
Bruce Momjian
35096b568e Split vacuum and analyze into separate files 2000-05-29 17:40:45 +00:00
Bruce Momjian
6d5cba7c31 More vacuum cleanup 2000-05-29 17:06:15 +00:00
Bruce Momjian
d950c19747 more cleanup 2000-05-29 16:21:05 +00:00
Bruce Momjian
659f79be7a Allow vacuum to perform analyze with shared lock. Update cvs manual. 2000-05-29 15:44:55 +00:00
Tom Lane
18952f6744 Second round of fmgr changes: triggers are now invoked in new style,
CurrentTriggerData is history.
2000-05-29 01:59:17 +00:00
Tom Lane
80648891cc Miscellaneous cleanups of places that needed to account for new
pg_language entries.
2000-05-28 20:34:52 +00:00
Tom Lane
0a7fb4e918 First round of changes for new fmgr interface. fmgr itself and the
key call sites are changed, but most called functions are still oldstyle.
An exception is that the PL managers are updated (so, for example, NULL
handling now behaves as expected in plperl and plpgsql functions).
NOTE initdb is forced due to added column in pg_proc.
2000-05-28 17:56:29 +00:00
Tom Lane
ff566b2241 Modify raw parsetree representation returned by gram.y for SubLinks:
the oper field should be a valid Node structure so it can be dumped by
outfuncs.c without risk of coredump.  (We had been using a raw pointer
to character string, which surely is NOT a valid Node.)  This doesn't
cause any backwards compatibility problems for stored rules, since
raw unanalyzed parsetrees are never stored.
2000-05-25 22:42:19 +00:00
Bruce Momjian
f19ae14612 Update so init displays status with setproctitle too, like the rest of them. 2000-05-24 00:24:17 +00:00
Bruce Momjian
a267c88d3b Make setproctitle update for every query. 2000-05-24 00:14:26 +00:00
Bruce Momjian
962c258027 Comment out no-op ps updates for setproctitle(), until we figure out
what to do.
2000-05-23 22:50:55 +00:00
Bruce Momjian
0460f0502b I am attempting to integrate postgres (v 7.0) with an open source
project I am working on (Recall - a distributed, fault-tolerant,
replicated, storage framework @ http://www.fault-tolerant.org).
Recall is written in C++.  I need to include the postgres headers and
there are some problems when including the headers w/C++.

Attached is a patch generated from postgres/src that fixes my problems.
I was hoping to get this into the main source.  It's very small (2k) and
3 files are changed: backend/utils/fmgr/fmgr.c,
backend/utils/Gen_fmgrtab.sh.in, and include/access/tupdesc.h.

In C++, you get a multiply defined symbol because the variable
(FmgrInfo *fmgr_pl_finfo) is defined in the header (the patch moves it
to the .c file).  The other problem in tupdesc.h is the use of typeid
is a problem in c++ (I renamed it to oidtypeid).

Thanks,
Neal Norwitz
2000-05-22 02:34:23 +00:00
Tom Lane
aa16179118 Add debug code to aid in memory-leak tracking: if SHOW_MEMORY_STATS is
defined then statistics about memory usage of all the global memory
contexts are printed after each commit.
2000-05-21 02:23:30 +00:00
Tom Lane
f923260ec8 Revise FlushRelationBuffers/ReleaseRelationBuffers per discussion with
Hiroshi.  ReleaseRelationBuffers now removes rel's buffers from pool,
instead of merely marking them nondirty.  The old code would leave valid
buffers for a deleted relation, which didn't cause any known problems
but can't possibly be a good idea.  There were several places which called
ReleaseRelationBuffers *and* FlushRelationBuffers, which is now
unnecessary; but there were others that did not.  FlushRelationBuffers
no longer emits a warning notice if it finds dirty buffers to flush,
because with the current bufmgr behavior that's not an unexpected
condition.  Also, FlushRelationBuffers will flush out all dirty buffers
for the relation regardless of block number.  This ensures that
pg_upgrade's expectations are met about tuple on-row status bits being
up-to-date on disk.  Lastly, tweak BufTableDelete() to clear the
buffer's tag so that no one can mistake it for being a still-valid
buffer for the page it once held.  Formerly, the buffer would not be
found by buffer hashtable searches after BufTableDelete(), but it would
still be thought to belong to its old relation by the routines that
sequentially scan the shared-buffer array.  Again I know of no bugs
caused by that, but it still can't be a good idea.
2000-05-19 03:22:31 +00:00
Marc G. Fournier
be4ae8f4b2 this fixes the bug where setting the entry in he process table no longer works
under FreeBSD ... basically, if setproctitle() exists, use it ...

the draw back right now is the PS_SET_STATUS stuff doesn't work, but am looking
into that one right now ... at lesat now you can see who is connecting where
and from where ...
2000-05-12 14:33:08 +00:00
Marc G. Fournier
3383e8b828 Add two checks ... one for setproctitle and one for -lutil ...
Don't do anything with them at this time, but am working on that ...
2000-05-12 13:58:25 +00:00
Tom Lane
01911c98db Repair list-vs-node confusion that resulted in failure for INNER JOIN ON.
Make it behave correctly when there are more than two tables being
joined, also.  Update regression test expected outputs.
2000-05-12 01:33:56 +00:00
Tom Lane
c0337ec2a9 Force initdb because of pg_group index fix. 2000-05-05 03:10:24 +00:00
Tom Lane
87e701b8d5 Clean up const-vs-not-const compiler warning in MULTIBYTE code.
'Twas my fault, I think.
2000-04-20 22:40:18 +00:00
Tom Lane
25442d8d2f Correct oversight in hashjoin cost estimation: nodeHash sizes its hash
table for an average of NTUP_PER_BUCKET tuples/bucket, but cost_hashjoin
was assuming a target load of one tuple/bucket.  This was causing a
noticeable underestimate of hashjoin costs.
2000-04-18 05:43:02 +00:00
Thomas G. Lockhart
24864d048e Include information for armv4l from Mark Knox <segfault@hardline.org>. 2000-04-18 05:35:38 +00:00
Tom Lane
82849df6c6 Add new selectivity estimation functions for pattern-matching operators
(LIKE and regexp matches).  These are not yet referenced in pg_operator,
so by default the system will continue to use eqsel/neqsel.
Also, tweak convert_to_scalar() logic so that common prefixes of strings
are stripped off, allowing better accuracy when all strings in a table
share a common prefix.
2000-04-16 04:41:03 +00:00
Thomas G. Lockhart
9edb0f7ec2 Fix spelling of "millennium".
Thanks to Mika Nystrom <mika@camembert.cs.caltech.edu> for spotting this.
2000-04-14 15:22:22 +00:00
Tom Lane
8eafe40571 Fix silly definition order in config.h --- we had prototypes like
extern int  inet_aton(const char *cp, struct in_addr * addr);
appearing before the optional #define for const, which was certain
to fail on a machine with neither const nor inet_aton().
2000-04-14 03:05:35 +00:00
Tom Lane
07672d4e0a Skip setsockopt(SO_REUSEADDR) for the Unix-domain postmaster socket on
all platforms, not just SCO.  The operation is undefined for Unix-domain
sockets anyway.  It seems SCO is not the only platform that complains
instead of treating the call as a no-op.
2000-04-14 00:51:58 +00:00
Bruce Momjian
97580f6993 A few more macro cleanups 2000-04-12 20:33:37 +00:00
Bruce Momjian
52f77df613 Ye-old pgindent run. Same 4-space tabs. 2000-04-12 17:17:23 +00:00
Bruce Momjian
db4518729d Reverse out macro fix for the time being. 2000-04-12 05:29:10 +00:00
Bruce Momjian
8758985c3a Prevent drop database failure from showing. 2000-04-12 05:24:51 +00:00
Tom Lane
2692d329eb Tweak smgrblindwrt per advice from Vadim: add parameter indicating
whether to do fsync or not, and if so (which should be seldom) just
do the fsync immediately.  This way we need not build data structures
in md.c/fd.c for blind writes.
2000-04-10 23:41:52 +00:00
Tom Lane
1f6d8b90b8 Buffer manager modifications to keep a local buffer-dirtied bit as well
as a shared dirtybit for each shared buffer.  The shared dirtybit still
controls writing the buffer, but the local bit controls whether we need
to fsync the buffer's file.  This arrangement fixes a bug that allowed
some required fsyncs to be missed, and should improve performance as well.
For more info see my post of same date on pghackers.
2000-04-09 04:43:20 +00:00
Thomas G. Lockhart
0337938fbf Add zpbit and varbit data types from Adrian Joubert
<a.joubert@albourne.com>.
2000-04-08 02:13:11 +00:00
Thomas G. Lockhart
a349733bbb Add transcendental math functions (sine, cosine, etc)
Add a random number generator and seed setter (random(), SET SEED)
Fix up the interval*float8 math to carry partial months
 into the time field.
Add float8*interval so we have symmetry in the available math.
Fix the parser and define.c to accept SQL92 types as field arguments.
Fix the parser to accept SQL92 types for CREATE TYPE, etc. This is
 necessary to allow...
Bit/varbit support in contrib/bit cleaned up to compile and load
 cleanly. Still needs some work before final release.
Implement the "SOME" keyword as a synonym for "ANY" per SQL92.
Implement ascii(text), ichar(int4), repeat(text,int4) to help
 support the ODBC driver.
Enable the TRUNCATE() function mapping in the ODBC driver.
2000-04-07 13:40:45 +00:00
Tom Lane
708f82f191 Fix bug noted by Bruce: FETCH in an already-aborted transaction block
would crash, due to premature invocation of SetQuerySnapshot().  Clean
up problems with handling of multiple queries by splitting
pg_parse_and_plan into two routines.  The old code would not, for
example, do the right thing with END; SELECT... submitted in one query
string when it had been in transaction abort state, because it'd decide
to skip planning the SELECT before it had executed the END.  New
arrangement is simpler and doesn't force caller to plan if only
parse+rewrite is needed.
2000-04-04 21:44:40 +00:00
Tom Lane
1c72a8a37a Fix extremely nasty little bug observed when a sub-SELECT appears in
WHERE in a place where it can be part of a nestloop inner indexqual.
As the code stood, it put the same physical sub-Plan node into both
indxqual and indxqualorig of the IndexScan plan node.  That confused
later processing in the optimizer (which expected that tracing the
subPlan list would visit each subplan node exactly once), and would
probably have blown up in the executor if the planner hadn't choked first.
Fix by making the 'fixed' indexqual be a complete deep copy of the
original indexqual, rather than trying to share nodes below the topmost
operator node.  This had further ramifications though, because we were
making the aforesaid list of sub-Plan nodes during SS_process_sublinks
which is run before construction of the 'fixed' indexqual, meaning that
the copy of the sub-Plan didn't show up in that list.  Fix by rearranging
logic so that the sub-Plan list is built by the final set_plan_references
pass, not in SS_process_sublinks.  This may sound like a mess, but it's
actually a good deal cleaner now than it was before, because we are no
longer dependent on the assumption that planning will never make a copy
of a sub-Plan node.
2000-04-04 01:21:48 +00:00
Tom Lane
ca05ba2a9d Get rid of SetBufferWriteMode(), which was an accident waiting to happen.
In the event of an elog() while the mode was set to immediate write,
there was no way for it to be set back to the normal delayed write.
The mechanism was a waste of space and cycles anyway, since the only user
was varsup.c, which could perfectly well call FlushBuffer directly.
Now it does just that, and the notion of a write mode is gone.
2000-03-31 02:43:31 +00:00
Tom Lane
0a1ed443f8 Add configure checks to see if 'using namespace std' and
'#include <string>' work in the local C++ compiler.
2000-03-30 05:29:21 +00:00
Thomas G. Lockhart
2c8223f14b Fix up comments where had been uglified by the automated reformatter. 2000-03-27 17:07:48 +00:00
Tom Lane
8f50f7a291 Improve comment. 2000-03-24 23:26:45 +00:00
Tom Lane
eca02fee2c Rename bytea functions to not have upper-case letters in their names.
Clean up grotty coding in them, too.  AFAICS from the CVS logs, these
have been broken since Postgres95, so I'm not going to insist on an
initdb to fix them now...
2000-03-24 02:41:46 +00:00
Bruce Momjian
6d79d6027c >> 5. empty define that results in an empty but terminated line ( ; )
easy (maybe dumb) fix for 5 in attachment define.patch

greetings, Andreas
2000-03-23 23:16:49 +00:00
Tom Lane
1d5e7a6f46 Repair logic flaw in cost estimator: cost_nestloop() was estimating CPU
costs using the inner path's parent->rows count as the number of tuples
processed per inner scan iteration.  This is wrong when we are using an
inner indexscan with indexquals based on join clauses, because the rows
count in a Relation node reflects the selectivity of the restriction
clauses for that rel only.  Upshot was that if join clause was very
selective, we'd drastically overestimate the true cost of the join.
Fix is to calculate correct output-rows estimate for an inner indexscan
when the IndexPath node is created and save it in the path node.
Change of path node doesn't require initdb, since path nodes don't
appear in saved rules.
2000-03-22 22:08:35 +00:00
Tom Lane
3ee8f7e207 Restructure planning code so that preprocessing of targetlist and quals
to simplify constant expressions and expand SubLink nodes into SubPlans
is done in a separate routine subquery_planner() that calls union_planner().
We formerly did most of this work in query_planner(), but that's the
wrong place because it may never see the real targetlist.  Splitting
union_planner into two routines also allows us to avoid redundant work
when union_planner is invoked recursively for UNION and inheritance
cases.  Upshot is that it is now possible to do something like
select float8(count(*)) / (select count(*) from int4_tbl)  from int4_tbl
group by f1;
which has never worked before.
2000-03-21 05:12:12 +00:00
Bruce Momjian
2216584bcf Reverse out BYTEA type coersion. 2000-03-20 15:42:47 +00:00
Bruce Momjian
0e1f485f5f Add compatiblity information for bytea. 2000-03-20 04:02:47 +00:00
Tom Lane
6a02746550 Change MemSet and StrNCpy to evaluate their arguments only once.
Fix inadequate parenthesization in several other macros.
2000-03-19 22:08:51 +00:00
Tom Lane
cfa929f601 Fix incorrect implementation of log(x) for numeric, as well as
incorrect descriptions of a couple of log-related functions.
I will not force an initdb for this, but log() on a numeric won't
work until you do one...
2000-03-19 01:12:18 +00:00
Bruce Momjian
f4d452c13c Update bytea type description 2000-03-18 20:50:10 +00:00
Tom Lane
f91dd7880f Clean up minor compiler warnings. 2000-03-18 18:57:16 +00:00
Tom Lane
0e314d747e Add safety check on expression nesting depth. Default value is set by
a config.h #define, and the runtime value can be controlled via SET.
2000-03-17 05:29:07 +00:00
Tom Lane
341b328b18 Fix a bunch of minor portability problems and maybe-bugs revealed by
running gcc and HP's cc with warnings cranked way up.  Signed vs unsigned
comparisons, routines declared static and then defined not-static,
that kind of thing.  Tedious, but perhaps useful...
2000-03-17 02:36:41 +00:00
Tom Lane
d14c8aab99 Turns out that Mazurkiewicz's gripe about 'function inheritance' is
actually a type-coercion problem.  If you have a function defined on
class A, and class B inherits from A, then the function ought to work
on class B as well --- but coerce_type didn't know that.  Now it does.
2000-03-16 06:35:07 +00:00
Tom Lane
e64a331179 Fix some (more) problems with subselects in rules. Rewriter failed to
mark query as having subselects if a subselect was added from a rule
WHERE condition (as opposed to a rule action).  Also, fix adjustment
of varlevelsup so that it actually has some prospect of working when
inserting an expression containing a subselect into a subquery.
2000-03-16 03:23:18 +00:00
Tom Lane
34235a295b Cache fmgr lookup data for index's getnext() function in IndexScanDesc,
so that the fmgr lookup only has to happen once per index scan and not
once per tuple.  Seems to save 5% or so of CPU time for an indexscan.
2000-03-14 23:52:01 +00:00
Thomas G. Lockhart
6456810078 Implement column aliases on views "CREATE VIEW name (collist)".
Implement TIME WITH TIME ZONE type (timetz internal type).
Remap length() for character strings to CHAR_LENGTH() for SQL92
 and to remove the ambiguity with geometric length() functions.
Keep length() for character strings for backward compatibility.
Shrink stored views by removing internal column name list from visible rte.
Implement min(), max() for time and timetz data types.
Implement conversion of TIME to INTERVAL.
Implement abs(), mod(), fac() for the int8 data type.
Rename some math functions to generic names:
 round(), sqrt(), cbrt(), pow(), etc.
Rename NUMERIC power() function to pow().
Fix int2 factorial to calculate result in int4.
Enhance the Oracle compatibility function translate() to work with string
 arguments (from Edwin Ramirez).
Modify pg_proc system table to remove OID holes.
2000-03-14 23:06:59 +00:00
Hiroshi Inoue
fd9ff86bd9 Trial implementation of ALTER DROP COLUMN.
They are #ifdef'd.
Add -D_DROP_COLUMN_HACK__ compile option
to evaluate it.
2000-03-09 05:00:26 +00:00
Bruce Momjian
f43ec05d05 I've made a diff against the 7.0beta1 tree that accomplishes several things:
1) adds NetBSD shared lib support on both ELF and a.out platforms

        2) replaces "-L$(LIBPQDIR) -lpq" with "$(LIBPQ)" defined in
           Makefile.global.  This makes it much easier to build stuff in
           the source tree after you've already installed the libraries.

        3) adds TEMPLATEDIR in Makefile.global that indicates where the
           database templates are stored.  This separates the template files
           from real libraries that are installed in $(LIBDIR).
        4) changes include order of <readline/readline.h> and <readline.h>.
           The latest GNU readline installs its headers under a readline
           subdirectory.

In addition to applying the patch below the following files need to be copied:

        backend/port/dynloader:
                bsd.h -> netbsd.h
                bsd.c -> netbsd.c
        include/port:
                bsd.h -> netbsd.h
        makefiles:
                Makefile.bsd -> Makefile.netbsd

It would be great to see this incorporated into the source tree before
the 7.0 release is cut.

        Thanks!

     -- Johnny C. Lam <lamj@stat.cmu.edu>
2000-03-08 01:58:46 +00:00
Peter Eisentraut
8de482a847 Added configure test for readline's filename_completion_function
Completed psql's \? help
2000-03-05 13:30:20 +00:00
Tom Lane
ab3dc66426 Simplify parsing of column constraints by treating constraint attributes
as independent clauses in the grammar.  analyze.c takes care of putting
the data where it belongs and complaining about invalid combinations.
Also, make TEMP (and TEMPORARY) non-reserved words.
2000-03-01 05:18:20 +00:00
Tom Lane
8d0f1dd179 Jan forgot to increment catversion when adding lztext. Naughty naughty. 2000-02-27 18:06:28 +00:00
Jan Wieck
75133d9a46 Reactivated LZTEXT data type and changed rule plan- and qual-strings
into lztext.

Jan
2000-02-27 12:02:34 +00:00
Tom Lane
750549db34 Add Assert() to check for trying to heap_close a relation when the
relcache entry's reference count is zero.
2000-02-27 07:31:00 +00:00
Tom Lane
7173c485c8 Fix exprTypmod to recognize length-coercion function expressions,
such as bpchar(char_expression, N), and pull out the attrtypmod that
the function is coercing to.  This allows correct deduction of the
column type in examples such as
CREATE VIEW v AS SELECT f1::char(8) FROM tbl;
Formerly we labeled v's column as char-of-unknown-length not char(8).
Also, this change causes the parser not to insert a redundant length
coercion function if the user has explicitly casted an INSERT or UPDATE
expression to the right length.
2000-02-26 21:11:10 +00:00
Tom Lane
08b1040374 Shared-memory hashtables have non-extensible directories, which means
it's a good idea to choose the directory size based on the expected
number of entries.  But ShmemInitHash was using a hard-wired constant.
Boo hiss.  This accounts for recent report of postmaster failure when
asking for 64K or more buffers.
2000-02-26 05:25:55 +00:00
Bruce Momjian
5cdfaea899 Add missing files like foreign key regression tests and config.h.win32. 2000-02-24 16:02:28 +00:00
Tom Lane
9110b33f46 Add numeric <-> int8 and numeric <-> int2 conversion functions, as well
as a unary minus operator for numeric.  Now that long numeric constants
will get converted to NUMERIC in early parsing, it's essential to have
numeric->int8 conversion to avoid 'can't convert' errors on undecorated
int8 constants.  Threw in the rest for completeness while I was in the
area.
I did not force an initdb for this, since the system will still run
without the new pg_proc/pg_operator entries.  Possibly I should've.
2000-02-24 02:05:30 +00:00
Bruce Momjian
c969e2662f 1. miscadmin.h needs to include sys/types.h for a definition of pid_t
2. Regression tests fail for types int2 and int4 (which can easily be
fixed by adding entries to resultmap) aswell as float8 and geometry,
where floating point numbers appear to be rounded a little differently
than in your expected results (besides that I also need the positive
zeros file). I'm including a patch for the first 2, but I don't know
whether the latter two are actually a bug in postgres or a bug in the
OS or even allowed difference. I'm including my results for reference.

Rolf Grossmann
2000-02-23 15:46:15 +00:00
Hiroshi Inoue
5525297465 Change cancel while waiting-for-lock stuff. 2000-02-22 09:55:26 +00:00
Tom Lane
393f313227 Change parse-time representation of float literals (which include oversize
integers) to be strings instead of 'double'.  We convert from string form
to internal representation only after type resolution has determined the
correct type for the constant.  This eliminates loss-of-precision worries
and gets rid of the change in behavior seen at 17 digits with the
previous kluge.
2000-02-21 18:47:12 +00:00
Tom Lane
d8cedf67ad Clean up some really grotty coding in catcache.c, improve hashing
performance in catcache lookups.
2000-02-21 03:36:59 +00:00
Hiroshi Inoue
a60c9e33e9 fix the TODO
* Allow PQrequestCancel() to terminate when in waiting-for-lock state
Changes are limited to BACKEND,however.
2000-02-21 02:42:37 +00:00
Tom Lane
57b30e8e22 Create a new expression node type RelabelType, which exists solely to
represent the result of a binary-compatible type coercion.  At runtime
it just evaluates its argument --- but during type resolution, exprType
will pick up the output type of the RelabelType node instead of the type
of the argument.  This solves some longstanding problems with dropped
type coercions, an example being 'select now()::abstime::int4' which
used to produce date-formatted output, not an integer, because the
coercion to int4 was dropped on the floor.
2000-02-20 21:32:16 +00:00
Peter Eisentraut
718bb2cc9c Moved psql \eset and \eshow to \encoding
Improved psql's Ctrl-C handling
Fixed configure test for sigsetjmp that now even recognizes it if it's a macro
2000-02-20 14:28:28 +00:00
Tom Lane
f4d108a257 Even after the great date/time consolidation, TypeCategory() was still
a few bricks shy of a load concerning knowing all the date/time types.
This is real bad because it interferes with func_select_candidate()'s
willingness to disambiguate functions --- func_select_candidate() will
punt unless all the available choices have the same type category.
I think this whole mechanism needs redesigned, but in the meantime
this is a needed patch.
2000-02-20 06:28:42 +00:00
Tom Lane
f46571165d Get rid of postgres.c's separate parsing logic for PGDATESTYLE env.
variable, instead calling same code in variable.c that is used to parse
SET DATESTYLE.  Fix bug: although backend's startup datestyle had been
changed to ISO, 'RESET DATESTYLE' and 'SET DATESTYLE TO DEFAULT' didn't
know about it.  For consistency I have made the latter two reset to the
PGDATESTYLE-defined initial value, which may not be the same as the
compiled-in default of ISO.
2000-02-19 22:10:47 +00:00
Tom Lane
3cbcb78a3d Plug some more memory leaks in the planner. It still leaks like a sieve,
but this is as good as it'll get for this release...
2000-02-18 23:47:31 +00:00
Hiroshi Inoue
e3a97b370c Implement reindex command 2000-02-18 09:30:20 +00:00
Tom Lane
8cb624262a Replace inefficient _bt_invokestrat calls with direct calls to the
appropriate btree three-way comparison routine.  Not clear why the
three-way comparison routines were being used in some paths and not
others in btree --- incomplete changes by someone long ago, maybe?
Anyway, this makes for a nice speedup in CREATE INDEX.
2000-02-18 06:32:39 +00:00
Tom Lane
598ea2c359 Finish repairing 6.5's problems with r-tree indexes: create appropriate
selectivity functions and make the r-tree operators use them.  The
estimation functions themselves are just stubs, unfortunately, but
perhaps someday someone will make them compute realistic estimates.
Change pg_am so that the optimizer can reliably tell the difference
between ordered and unordered indexes --- before it would think that
an r-tree index can be scanned in '<<' order, which is not right AFAIK.
Repair broken negator links for network_sup and related ops.
Initdb forced.  This might be my last initdb force for 7.0 ... hope so
anyway ...
2000-02-17 03:40:02 +00:00
Thomas G. Lockhart
41f1f5b76a Implement "date/time grand unification".
Transform datetime and timespan into timestamp and interval.
 Deprecate datetime and timespan, though translate to new types in gram.y.
 Transform all datetime and timespan catalog entries into new types.
 Make "INTERVAL" reserved word allowed as a column identifier in gram.y.
 Remove dt.h, dt.c files, and retarget datetime.h, datetime.c as utility
  routines for all date/time types.
 date.{h,c} now deals with date, time types.
 timestamp.{h,c} now deals with timestamp, interval types.
 nabstime.{h,c} now deals with abstime, reltime, tinterval types.
Make NUMERIC a known native type for purposes of type coersion. Not tested.
2000-02-16 17:26:26 +00:00
Tom Lane
b1577a7c78 New cost model for planning, incorporating a penalty for random page
accesses versus sequential accesses, a (very crude) estimate of the
effects of caching on random page accesses, and cost to evaluate WHERE-
clause expressions.  Export critical parameters for this model as SET
variables.  Also, create SET variables for the planner's enable flags
(enable_seqscan, enable_indexscan, etc) so that these can be controlled
more conveniently than via PGOPTIONS.

Planner now estimates both startup cost (cost before retrieving
first tuple) and total cost of each path, so it can optimize queries
with LIMIT on a reasonable basis by interpolating between these costs.
Same facility is a win for EXISTS(...) subqueries and some other cases.

Redesign pathkey representation to achieve a major speedup in planning
(I saw as much as 5X on a 10-way join); also minor changes in planner
to reduce memory consumption by recycling discarded Path nodes and
not constructing unnecessary lists.

Minor cleanups to display more-plausible costs in some cases in
EXPLAIN output.

Initdb forced by change in interface to index cost estimation
functions.
2000-02-15 20:49:31 +00:00
Thomas G. Lockhart
a344a6e7b5 Carry column aliases from the parser frontend. Enables queries like
SELECT a FROM t1 tx (a);
Allow join syntax, including queries like
  SELECT * FROM t1 NATURAL JOIN t2;
Update RTE structure to hold column aliases in an Attr structure.
2000-02-15 03:38:29 +00:00
Thomas G. Lockhart
a1e6a09a89 Fix up tabbing for _int8 entry. 2000-02-15 03:28:31 +00:00
Bruce Momjian
a2226ad237 contrib-array.patch
this is an old patch which I have already submitted and never seen
        in the sources. It corrects the datatype oids used in some iterator
        functions. This bug has been reported to me by many other people.

contrib-datetime.patch

        some code contributed by Reiner Dassing <dassing@wettzell.ifag.de>

contrib-makefiles.patch

        fixes all my contrib makefiles which don't work with some compilers,
        as reported to me by another user.

contrib-miscutil.patch

        an old patch for one of my old contribs.

contrib-string.patch

        a small change to the c-like text output functions. Now the '{'
        is escaped only at the beginning of the string to distinguish it
        from arrays, and the '}' is no more escaped.

elog-lineno.patch

        adds the current lineno of CopyFrom to elog messages. This is very
        useful when you load a 1 million tuples table from an external file
        and there is a bad value somehere. Currently you get an error message
        but you can't know where is the bad data. The patch uses a variable
        which was declared static in copy.c. The variable is now exported
        and initialized to 0. It is always cleared at the end of the copy
        or at the first elog message or when the copy is canceled.
        I know this is very ugly but I can't find any better way of knowing
        where the copy fails and I have this problem quite often.

plperl-makefile.patch

        fixes a typo in a makefile, but the error must be elsewhere because
        it is a file generated automatically. Please have a look.

tprintf-timestamp.patch

        restores the original 2-digit year format, assuming that the two
        century digits don't carry much information and that '000202' is
        easier to read than 20000202. Being only a log file it shouldn't
        break anything.

Please apply the patches before the next scheduled code freeze.

I also noticed that some of the contribs don't compile correcly. Should we
ask people to fix their code or rename their makefiles so that they are
ignored by the top makefile?

--
Massimo Dal Zotto
2000-02-13 18:59:53 +00:00
Bruce Momjian
77d31cf3c1 2. trigger.c fails to compile due to a syntax error. It contains
a switch statement that has an empty default label.  A label of a
    switch statement must be followed by a statement (or a label which
    is followed by a statement (or a label which ...)).

3.  Files include stringinfo.h failed to compile.  The macro,
    'appendStringInfoCharMacro' is implemented with a '?:' operation
    that returns a void expression for the true part and a char expresion
    for the false part.  Both the true and false parts of the '?:' oper-
    ator must return the same type.

Billy G. Allie
2000-02-13 13:21:11 +00:00
Bruce Momjian
7528fd2d52 Add btree indexing of boolean values
Don Baccus
2000-02-10 19:51:52 +00:00
Bruce Momjian
ecd8537376 I checked the WinNT port yesterday (a few days old snapshot from CVS) and I
am including a patch to get it compile.

changes to psql:
- added less as default pager when compiling on Cygwin
- need to declare "filename_completion_function" because it is not exported
from readline -> added to include/port/win.h

changes to pg_id:
- include of <getopt.h>
- add .exe when installing

I think there is a problem with calling the regress tests on WinNT - it
should be called with PORTNAME not HOST as the parameter to regress.sh or
the check  when to add "-h localhost" to psql has to be changed. Now it is
checked against the PORTNAME.

The results of the regress tests were OK with expected failures ;-)

Daniel Horak
2000-02-09 16:23:44 +00:00
Bruce Momjian
394af52795 I'm sending patch with new version of to_char numbers formatting.
The PostgreSQL's to_char() is very compatible with Oracle's to_char
 now. I hope that to_char's 3000 rows of source is without bugs, but
 will good if anyone test it, for me it works very well :-)


                                                        Karel

----------------------------------------------------------------------
Karel Zak <zakkr@zf.jcu.cz>              http://home.zf.jcu.cz/~zakkr/
2000-02-08 15:57:01 +00:00
Tom Lane
d8733ce674 Repair planning bugs caused by my misguided removal of restrictinfo link
fields in JoinPaths --- turns out that we do need that after all :-(.
Also, rearrange planner so that only one RelOptInfo is created for a
particular set of joined base relations, no matter how many different
subsets of relations it can be created from.  This saves memory and
processing time compared to the old method of making a bunch of RelOptInfos
and then removing the duplicates.  Clean up the jointree iteration logic;
not sure if it's better, but I sure find it more readable and plausible
now, particularly for the case of 'bushy plans'.
2000-02-07 04:41:04 +00:00
Tom Lane
81fc1d5edb Rename same() to sameseti() to have a slightly less generic name. Move
nonoverlap_sets() and is_subset() to list.c, where they should have lived
to begin with, and rename to nonoverlap_setsi and is_subseti since they
only work on integer lists.
2000-02-06 03:27:35 +00:00
Tom Lane
78296c2797 Further cleanup for OR-of-AND WHERE-clauses. orindxpath can now handle
extracting from an AND subclause just those opclauses that are relevant
for a particular index.  For example, we can now consider using an index
on x to process WHERE (x = 1 AND y = 2) OR (x = 2 AND y = 4) OR ...
2000-02-05 18:26:09 +00:00
Jan Wieck
c823143f8a Fixed bug in NO ACTION trigger proc entries.
Jan
2000-01-31 14:02:27 +00:00
Tom Lane
a152ebeec6 Fix problems seen in parallel regress tests when SI buffer overruns (causing
syscache and relcache flushes).  Relcache entry rebuild now preserves
original tupledesc, rewrite rules, and triggers if possible, so that pointers
to these things remain valid --- if these things change while relcache entry
has positive refcount, we elog(ERROR) to avoid later crash.  Arrange for
xact-local rels to be rebuilt when an SI inval message is seen for them,
so that they are updated by CommandCounterIncrement the same as regular rels.
(This is useful because of Hiroshi's recent changes to process our own SI
messages at CommandCounterIncrement time.)  This allows simplification of
some routines that previously hacked around the lack of an automatic update.
catcache now keeps its own copy of tupledesc for its relation, rather than
depending on the relcache's copy; this avoids needing to reinitialize catcache
during a cache flush, which saves some cycles and eliminates nasty circularity
problems that occur if a cache flush happens while trying to initialize a
catcache.
Eliminate a number of permanent memory leaks that used to happen during
catcache or relcache flush; not least of which was that catcache never
freed any cached tuples!  (Rule parsetree storage is still leaked, however;
will fix that separately.)
Nothing done yet about code that uses tuples retrieved by SearchSysCache
for longer than is safe.
2000-01-31 04:35:57 +00:00
Tom Lane
3a1218dced Delete unused and long-dead header file. 2000-01-29 21:13:23 +00:00
Tom Lane
dd979f66be Redesign DISTINCT ON as discussed in pgsql-sql 1/25/00: syntax is now
SELECT DISTINCT ON (expr [, expr ...]) targetlist ...
and there is a check to make sure that the user didn't specify an ORDER BY
that's incompatible with the DISTINCT operation.
Reimplement nodeUnique and nodeGroup to use the proper datatype-specific
equality function for each column being compared --- they used to do
bitwise comparisons or convert the data to text strings and strcmp().
(To add insult to injury, they'd look up the conversion functions once
for each tuple...)  Parse/plan representation of DISTINCT is now a list
of SortClause nodes.
initdb forced by querytree change...
2000-01-27 18:11:50 +00:00
Tom Lane
91250f3854 Remove duplicate extern declaration. 2000-01-26 23:48:05 +00:00
Bruce Momjian
5c25d60244 Add:
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc

to all files copyright Regents of Berkeley.  Man, that's a lot of files.
2000-01-26 05:58:53 +00:00
Bruce Momjian
b866d2e2d7 as attache of this mail is patch (to the main tree) with to_char's
family functions. Contain:

  conversion from a datetype to formatted text:

	to_char( datetime, 	text)
	to_char( timestamp,	text)
	to_char( int4,		text)
	to_char( int8,		text)
	to_char( float4,	text)
	to_char( float8,	text)
	to_char( numeric,	text)

  vice versa:

	to_date		( text, text)
	to_datetime	( text, text)
	to_timestamp	( text, text)
	to_number	( text, text)	   (convert to numeric)


  PostgreSQL to_char is very compatible with Oracle's to_char(), but not
total exactly (now). Small differentions are in number formating. It will
fix in next to_char() version.


! If will this patch aplly to the main tree, must be delete the current
  to_char version in contrib (directory "dateformat" and note in contrib's
  README), this patch not erase it (sorry Bruce).



The patch patching files:

	doc/src/sgml/func.sgml
                     ^^^^^^^^
   Hmm, I'm not sure if my English... :( Check it anyone (volunteer)?

   Thomas, it is right? SGML is not my primary lang  and compile
   the current PG docs tree is very happy job (hard variables setting in
   docs/sgml/Makefile --> HSTYLE= /home/users/t/thomas/....  :-)

   What add any definition to global configure.in and set Makefiles in docs
   tree via ./configure?

	src/backend/utils/adt/Makefile
	src/backend/utils/adt/formatting.c
	src/include/catalog/pg_proc.h
	src/include/utils/formatting.h
Karel Zak <zakkr@zf.jcu.cz>              http://home.zf.jcu.cz/~zakkr/
2000-01-25 23:53:56 +00:00
Peter Eisentraut
bdb41ad0e7 Made abstime/reltime use int4 instead of time_t (TODO item)
Made type equivalency apply to aggregates (TODO item)
Fixed parsing bug in psql
Reverted some stupid options changes I made to pg_dump
2000-01-24 19:34:19 +00:00
Tom Lane
0dbffa704a First cut at making useful selectivity estimates for range queries
(ie, WHERE x > lowbound AND x < highbound).  It's not very bright yet
but it does something useful.  Also, rename intltsel/intgtsel to
scalarltsel/scalargtsel to reflect usage better.  Extend convert_to_scalar
to do something a little bit useful with string data types.  Still need
to make it do something with date/time datatypes, but I'll wait for
Thomas's datetime unification dust to settle first.  Eventually the
routine ought not have any type-specific knowledge at all; it ought to
be calling a type-dependent routine found via a pg_type column; but
that's a task for another day.
2000-01-24 07:16:52 +00:00
Bruce Momjian
8bcac56086 Update for index change. Semes it didn't work the first time. 2000-01-24 03:08:27 +00:00
Bruce Momjian
da5aba105f Remove Ops parameter from STATRELID cache lookup, for Tom Lane and
optimizer.
2000-01-24 02:12:58 +00:00
Tom Lane
27fee810ff Replace SearchSysCacheGetAttribute with SysCacheGetAttr, which fetches
an attribute of a tuple previously fetched with SearchSysCacheTuple.
This avoids a lot of redundant cache lookups, particularly in selfuncs.c.
Also, remove SearchSysCacheStruct, which was unused and grotty.
2000-01-23 03:43:24 +00:00
Tom Lane
8449df8a67 First cut at unifying regular selectivity estimation with indexscan
selectivity estimation wasn't right.  This is better...
2000-01-23 02:07:00 +00:00
Tom Lane
71ed7eb494 Revise handling of index-type-specific indexscan cost estimation, per
pghackers discussion of 5-Jan-2000.  The amopselect and amopnpages
estimators are gone, and in their place is a per-AM amcostestimate
procedure (linked to from pg_am, not pg_amop).
2000-01-22 23:50:30 +00:00
Peter Eisentraut
fa5400c0a4 added ALTER TABLE DROP COLUMN, early version 2000-01-22 14:20:56 +00:00
Tom Lane
5c33b3c658 Change a few routines into macros to improve speed of COPY IN inner loop. 2000-01-22 03:52:04 +00:00
Tom Lane
7cc0d6ae9d Fix tab-complete so it works with old versions of readline that don't
have the rl_completion_append_character variable.  The tab completion
behavior doesn't seem to be quite perfect in that situation, but it's
better than failing to build at all...
2000-01-21 23:32:36 +00:00
Tom Lane
3888c62d5d Clean up longstanding gcc warnings by adding missing extern
declarations.
2000-01-20 05:34:32 +00:00
Tom Lane
1c15186747 Clean up longstanding gcc warnings by adding missing extern
declarations.
2000-01-20 05:26:54 +00:00
Tom Lane
6d1efd76fb Fix handling of NULL constraint conditions: per SQL92 spec, a NULL result
from a constraint condition does not violate the constraint (cf. discussion
on pghackers 12/9/99).  Implemented by adding a parameter to ExecQual,
specifying whether to return TRUE or FALSE when the qual result is
really NULL in three-valued boolean logic.  Currently, ExecRelCheck is
the only caller that asks for TRUE, but if we find any other places that
have the wrong response to NULL, it'll be easy to fix them.
2000-01-19 23:55:03 +00:00
Peter Eisentraut
533d516629 Removed MBFLAGS from makefiles since it's now done in include/config.h. 2000-01-19 02:59:03 +00:00
Tatsuo Ishii
5eb1d0deb1 Add builtin functions:
pg_char_to_encoding()
pg_encoding_to_char()
2000-01-18 05:10:29 +00:00
Tom Lane
9e0b463473 setheapoverride() is history. Uses replaced with CommandCounterIncrement()
where necessary --- several of them didn't really need it, though.
tqual-checking macros simplified accordingly.
2000-01-17 23:57:48 +00:00
Tom Lane
ac4878a060 Pass atttypmod to CoerceTargetExpr, so that it can pass it on to
coerce_type, so that the right things happen when coercing a previously-
unknown constant to a destination data type.
2000-01-17 02:04:16 +00:00
Tom Lane
ceca03600e Hmm, numeric array type was missing too. Added.
Of the standard types, only 'timestamp' seems not to have an array type;
should it be added, or are we going to remove that type for 7.0 anyway?
2000-01-17 01:29:07 +00:00
Hiroshi Inoue
1500e262b5 Fix for TODO item * spinlock stuck problem when elog(FATAL)
and elog(ERROR) inside bufmgr.
2000-01-17 01:15:19 +00:00
Tom Lane
116ba5d814 Update unused_oids script so it works with non-GNU awk --- /* ... */
comment style apparently isn't portable to other awks.
2000-01-17 00:53:11 +00:00
Tom Lane
90b883425a Apparently, no one's ever used float4abs(), because it's got incorrect
data in its pg_proc entry.  abs() doesn't require two arguments, last
I heard.
2000-01-17 00:40:51 +00:00
Tom Lane
49528361f5 Create a new parsetree node type, TypeCast, so that transformation of
SQL cast constructs can be performed during expression transformation
instead of during parsing.  This allows constructs like x::numeric(9,2)
and x::int2::float8 to behave as one would expect.
2000-01-17 00:14:49 +00:00
Peter Eisentraut
759fba4873 Included all yacc and lex files into the distribution. 2000-01-16 20:05:00 +00:00
Tom Lane
3cb8c8da68 Clean up problems with rounding/overflow code in NUMERIC, particularly
the case wherein zero was rejected for a field like NUMERIC(4,4).
Miscellaneous other code beautification efforts.
2000-01-15 23:42:49 +00:00
Tom Lane
584e646ad8 Fix a passel of problems with incorrect calls to typinput and typoutput
functions, which would lead to trouble with datatypes that paid attention
to the typelem or typmod parameters to these functions.  In particular,
incorrect code in pg_aggregate.c explains the platform-specific failures
that have been reported in NUMERIC avg().
2000-01-15 22:43:25 +00:00
Peter Eisentraut
2a1bfbce24 - Allow array on int8
- Prevent permissions on indexes
- Instituted --enable-multibyte option and tweaked the MB build process where necessary
- initdb prompts for superuser password
2000-01-15 18:30:35 +00:00
Peter Eisentraut
1cd4c14116 Fixed all elog related warnings, as well as a few others. 2000-01-15 02:59:43 +00:00
Peter Eisentraut
4ceb2d0cb6 * User management commands no longer user pg_exec_query_dest -> more robust
* Let unprivileged users change their own passwords.

* The password is now an Sconst in the parser, which better reflects its text datatype and also
forces users to quote them.

* If your password is NULL you won't be written to the password file, meaning you can't connect
until you have a password set up (if you use password authentication).

* When you drop a user that owns a database you get an error. The database is not gone.
2000-01-14 22:11:38 +00:00
Tom Lane
9b003129fe Bump catversion to ensure initdb. 2000-01-14 00:53:50 +00:00
Tom Lane
338fd40bfc Revise quoting conventions in outfuncs/readfuncs so that nodeRead doesn't
choke on relation or attribute names containing spaces, quotes, or other
special characters.  This fixes a TODO item.  It also forces initdb,
since stored rule strings change.
2000-01-14 00:53:21 +00:00
Peter Eisentraut
46a28f1b14 Fixed everything in and surrounding createdb and dropdb to make it more
error-proof. Rearranged some old code and removed dead sections.
2000-01-13 18:26:18 +00:00
Tom Lane
b9d832f6ef Make FUNC_MAX_ARGS equal INDEX_MAX_KEYS, as it should.
Set default INDEX_MAX_KEYS to 16.  Document minimum safe value is 9.
2000-01-11 05:58:55 +00:00
Tom Lane
cc2e19ef9a Ah-hah, there are attribute size constants lurking here too. 2000-01-11 05:18:42 +00:00
Tom Lane
5c2fb2a1e2 Use symbolic INDEX_MAX_KEYS in pg_type entries for oidvector
and int2vector.
2000-01-11 04:02:28 +00:00
Tom Lane
7bc1fbe100 Remove no-longer-used symbols. 2000-01-11 03:59:31 +00:00
Bruce Momjian
401e6de7ee More fixes, but still need +1 for FUNC_MAX_ARGS 2000-01-11 02:30:06 +00:00
Bruce Momjian
a97caacb5e Fix initdb so it works, but still only for 8. 2000-01-10 23:03:41 +00:00
Bruce Momjian
dd8b0e67ec Cleanup for func args > 8. 2000-01-10 20:23:31 +00:00
Bruce Momjian
0bdd0cdd98 Update fmgr to allow 32 arguments. 2000-01-10 18:18:30 +00:00
Bruce Momjian
8a093d0ae3 Make number of args to a function configurable. 2000-01-10 17:14:46 +00:00
Bruce Momjian
6456b17bc1 Rename oid8 -> oidvector and int28 -> int2vector. Cleanup of *out functions. 2000-01-10 16:13:23 +00:00
Hiroshi Inoue
0f2e7948e2 Improve cache invalidation handling. Eespecially
this would fix TODO
* elog() flushes cache, try invalidating just entries from
  current xact, perhaps using invalidation cache
2000-01-10 06:30:56 +00:00
Bruce Momjian
a040281787 Move fixes for >8 indexed fields. 2000-01-10 05:20:26 +00:00
Bruce Momjian
b99f300675 Move INDEX_MAX_KEYS to postgres.h, and make it configurable for users. 2000-01-10 04:36:37 +00:00
Tatsuo Ishii
85b309ee8f Add SetPidFile() and friends. 2000-01-09 12:19:27 +00:00
Tom Lane
166b5c1def Another round of planner/optimizer work. This is just restructuring and
code cleanup; no major improvements yet.  However, EXPLAIN does produce
more intuitive outputs for nested loops with indexscans now...
2000-01-09 00:26:47 +00:00
Tom Lane
2515882a0f Modify PageIsEmpty and PageGetMaxOffsetNumber macros to behave sanely
if presented an uninitialized (all zeroes) page.  The system no longer
crashes hard if an all-zeroes page is present in a relation.  There seem
to be some boundary conditions where a page will be appended to a relation
and zeroed, but its page header is never initialized; until we can track
down and fix all of those, robustness seems like a good idea.
Also, clean up some obsolete and downright wrong comments.
2000-01-08 21:59:55 +00:00
Bruce Momjian
8da88a6f2b Sorry, that I send this letter/patch again, but previous sending is
still
without answer. I want continue with to_char(), but I need any answer
for this patch. Please.

Thank! (and sorry of my impatient :-)
                                                        Karel
2000-01-07 17:22:47 +00:00
Jan Wieck
b7b6d4bf53 Changed "triggered data change violation" detection code
in trigger manager.

Jan
2000-01-06 20:47:01 +00:00
Bruce Momjian
b78769fda2 Fix it's and its to be correct. 2000-01-05 18:23:54 +00:00
Bruce Momjian
a8587d02eb Update length of timestamp to 30. 2000-01-02 02:11:08 +00:00
Tom Lane
2784a5aedf Clean up datatypes and comments for op_class() routine. 1999-12-31 03:18:43 +00:00
Tom Lane
9c95f8c9b2 Repair bugs discussed in pghackers thread of 15 May 1999: creation of a
relcache entry no longer leaks a small amount of memory.  index_endscan
now releases all the memory acquired by index_beginscan, so callers of it
should NOT pfree the scan descriptor anymore.
1999-12-30 05:05:13 +00:00
Jan Wieck
e3cec20ccd Removed LZTEXT datatype as discussed.
Jan
1999-12-28 13:40:53 +00:00
Jan Wieck
3e99158548 update_pg_pwd() is an AR trigger. Corrected return type.
Jan
1999-12-21 22:39:02 +00:00
Jan Wieck
e2aef49694 Added empty TOASTER files and corrected some minor glitches
in regression tests.

Jan
1999-12-21 00:06:44 +00:00
Jan Wieck
7c385f73e5 Required catalog changes for extended LONG attribute storage.
Jan
1999-12-20 10:40:43 +00:00
Tom Lane
939229904a Clean up some minor gcc warnings. 1999-12-20 01:23:04 +00:00
Tom Lane
76898cd330 Avoid compiler warnings on systems that have snprintf and/or vsnprintf
but do not bother to declare them in <stdio.h>.  Seems to be a more
common omission than you'd think...
1999-12-20 00:51:25 +00:00
Bruce Momjian
83bad7c063 This is my -- hopefully sufficiently portable -- attempt at cleaning out
initdb. No more obscure dependencies on environment variables or paths.
It
now finds the templates and the right postgres itself (with cmd line
options as fallback). It also no longer depends on $USER (su safe), and
doesn't advertise that --username allows you to install the db as a
different user, since that doesn't work anyway. Also, recovery and
cleanup
on all errors. Consistent options, clearer documentation.

Please take a look at this and adopt it if you feel it's safe enough. I
have simulated all the stupid circumstances I could think of, but you
never know with shell scripts.

Oh yeah, you can give the postgres user a default password now.

--
Peter Eisentraut                  Sernanders väg 10:115
1999-12-17 01:05:31 +00:00
Jan Wieck
397e9b32a3 Some changes to prepare for LONG attributes.
Jan
1999-12-16 22:20:03 +00:00
Bruce Momjian
99b8f84511 Here's the Create/Alter/Drop Group stuff that's been really overdue. I
didn't have time for documentation yet, but I'll write some. There are
still some things to work out what happens when you alter or drop users,
but the group stuff in and by itself is done.

--
Peter Eisentraut                  Sernanders väg 10:115
1999-12-16 17:24:19 +00:00
Bruce Momjian
7585deb087 I have done the QNX4 port with the current source tree. The number of
backend/Makefiles to be patched could significantly be reduced since
they
have been adopted to the QNX4 needs.

Andreas Kardos
1999-12-16 01:25:23 +00:00
Tom Lane
7431796b46 fix_parsetree_attnums was not nearly smart enough about walking parse
trees.  Also rewrite find_all_inheritors() in a more intelligible style.
1999-12-14 03:35:28 +00:00
Bruce Momjian
bcaabc5698 Depending on my interpreting (and programming) skills, this might solve
anywhere from zero to two TODO items.

* Allow flag to control COPY input/output of NULLs

I got this:
COPY table .... [ WITH NULL AS 'string' ]
which does what you'd expect. The default is \N, otherwise you can use
empty strings, etc. On Copy In this acts like a filter: every data item
that looks like 'string' becomes a NULL. Pretty straightforward.

This also seems to be related to

* Make postgres user have a password by default

If I recall this discussion correctly, the problem was actually that the
default password for the postgres (or any) user is in fact "\N", because
of the way copy is used. With this change, the file pg_pwd is copied out
with nulls as empty strings, so if someone doesn't have a password, the
password is just '', which one would expect from a new account. I don't
think anyone really wants a hard-coded default password.

Peter Eisentraut                  Sernanders väg 10:115
1999-12-14 00:08:21 +00:00
Tom Lane
a8ae19ec3d aggregate(DISTINCT ...) works, per SQL spec.
Note this forces initdb because of change of Aggref node in stored rules.
1999-12-13 01:27:21 +00:00
Tom Lane
efb36d2be8 any_ordering_op()'s argument should be declared Oid not int. 1999-12-12 20:51:29 +00:00
Bruce Momjian
cb00b7faa5 I'm in TODO mood today ...
* Document/trigger/rule so changes to pg_shadow recreate pg_pwd

I did it with a trigger and it seems to work like a charm. The function
that already updates the file for create and alter user has been made a
built-in "SQL" function and a trigger is created at initdb time.

Comments around the pg_pwd updating function seem to be worried about
this
routine being called concurrently, but I really don't see a reason to
worry about this. Verify for yourself. I guess we never had a system
trigger before, so treat this with care, and feel free to adjust the
nomenclature as well.

--
Peter Eisentraut                  Sernanders väg 10:115
1999-12-12 05:57:36 +00:00
Jan Wieck
62c42a05a2 Added global variable to have RI triggers override
time qualification of HeapTupleSatisfiesSnapshot()

Jan
1999-12-10 12:34:15 +00:00
Tatsuo Ishii
d31ff14ed8 Fix memory overrun while setting ps status 1999-12-10 10:29:01 +00:00
Tom Lane
18c3000286 Teach grammar and parser about aggregate(DISTINCT ...). No implementation
yet, but at least we can give a better error message:
regression=> select count(distinct f1) from int4_tbl;
ERROR:  aggregate(DISTINCT ...) is not implemented yet
instead of 'parser: parse error at or near distinct'.
1999-12-10 07:37:35 +00:00
Bruce Momjian
97dec77fab Rename several destroy* functions/tags to drop*. 1999-12-10 03:56:14 +00:00
Tom Lane
f7f41c7c8c Replace generic 'Illegal use of aggregates' error message with one that
shows the specific ungrouped variable being complained of.  Perhaps this
will reduce user confusion...
1999-12-09 05:58:56 +00:00
Bruce Momjian
b7539d92f9 Fix indexing of cidr. 1999-12-08 11:37:38 +00:00
Bruce Momjian
2192a92f3c Cleanup 1999-12-08 11:17:20 +00:00
Jan Wieck
b8ef7e7f82 Completed FOREIGN KEY syntax.
Added functionality for automatic trigger creation during CREATE TABLE.

Added ON DELETE RESTRICT and some others.

Jan
1999-12-06 18:02:47 +00:00
Bruce Momjian
8f9216313a Improve descriptions of date/time functions. 1999-12-01 18:03:26 +00:00
Bruce Momjian
eebfb9baa5 create/alter user extension
This one should work much better than the one I sent in previously. The
functionality is the same, but the patch was missing one file resulting
in
the compilation failing. The docs also received a minor fix.

Peter Eisentraut                  Sernanders väg 10:115
1999-11-30 03:57:29 +00:00
Jan Wieck
4069d48aa7 Added another single byte oriented decompressor, useful for
comparision functions.

Added all lztext comparision functions, operators and a default
operator class for nbtree on lztext.

Jan
1999-11-25 01:28:07 +00:00
Bruce Momjian
8f401e8042 Cleanup for pg_statistic commit. 1999-11-24 17:09:28 +00:00
Bruce Momjian
74f418eb9a Add pg_statistic index, add missing Hiroshi file. 1999-11-24 16:52:50 +00:00
Bruce Momjian
bb10bf319e Rename heap_replace to heap_update. 1999-11-24 00:44:37 +00:00
Bruce Momjian
6f9ff92cc0 Tid access method feature from Hiroshi Inoue, Inoue@tpf.co.jp 1999-11-23 20:07:06 +00:00
Bruce Momjian
54ffd4677a ecpg ECPGFree fix from Rene Hogendoorn. 1999-11-23 19:47:14 +00:00
Bruce Momjian
7e5e7ab71b Update opclass to be non-unique. 1999-11-23 04:47:39 +00:00
Bruce Momjian
fc955b14ea Add system indexes to match all caches.
Make all system indexes unique.
Make all cache loads use system indexes.
Rename *rel to *relid in inheritance tables.
Rename cache names to be clearer.
1999-11-22 17:56:41 +00:00
Tom Lane
316c4c57e2 Clean up some problems in error recovery --- elog() was pretty broken
for the case of errors in backend startup, and proc_exit's method for
coping with errors during proc_exit was *completely* busted.  Fixed per
discussions on pghackers around 11/6/99.
1999-11-22 02:06:31 +00:00
Tom Lane
610dfa6d55 Combine index_info and find_secondary_indexes into a single routine that
returns a list of RelOptInfos, eliminating the need for static state
in index_info.  That static state was a direct cause of coredumps; if
anything decided to elog(ERROR) partway through an index_info search of
pg_index, the next query would try to close a scan pointer that was
pointing at no-longer-valid memory.  Another example of the reasons to
avoid static state variables...
1999-11-21 23:25:47 +00:00
Tom Lane
3047b444e8 Clean up comments. 1999-11-21 19:56:12 +00:00
Tom Lane
d8ba3dfb0b Change backend-side COPY to write files with permissions 644 not 666
(whoever thought world-writable files were a good default????).  Modify
the pg_pwd code so that pg_pwd is created with 600 permissions.  Modify
initdb so that permissions on a pre-existing PGDATA directory are not
blindly accepted: if the dir is already there, it does chmod go-rwx
to be sure that the permissions are OK and the dir actually is owned
by postgres.
1999-11-21 04:16:17 +00:00
Tom Lane
76ccf73f2b Repair problem exposed by Jan's new parallel-regression-test scaffold:
inval.c thought it could safely use the catcache to look up the OIDs of
system relations.  Not good, considering that inval.c could be called
during catcache loading, if a shared-inval message arrives.  Rip out the
lookup logic and instead use the known OIDs from pg_class.h.
1999-11-21 01:58:22 +00:00
Bruce Momjian
58d1eeaafe Fix for arm32 and fix for dbname with dash. 1999-11-18 21:47:41 +00:00
Jan Wieck
73bfcf6b22 Changed pg_rewrite attributes ev_qual and ev_action to the new
compressed lztext data type.

Jan
1999-11-18 13:56:30 +00:00
Jan Wieck
211ed36635 Some minor corrections to the LZ compression. In fact I wanted to
HAVE the required OID's first.

Jan
1999-11-17 22:18:46 +00:00
Jan Wieck
79c3b71c1b The new LZ compression and an lztext data type based on it.
Jan
1999-11-17 21:21:51 +00:00
Tom Lane
e1492cc34c Modify elog() logic so that it won't try to longjmp(Warn_restart) before
Warn_restart has been set by the backend main loop.  This means that
elog(ERROR) or elog(FATAL) in the postmaster or during backend startup
now have well-defined behavior: proc_exit() rather than coredump.
In the case of elog() inside the postmaster, I think that proc_exit()
is probably not enough --- don't we want our child backends to be
forced to quit too?  But I don't understand Vadim's recent changes in
this area, so I'll leave it to him to look over and tweak if needed.
1999-11-16 06:13:36 +00:00
Bruce Momjian
dc5c7713bc Commit to make clearer distinction for temp names and real names.
Thanks to Tom Lane for ideas.
1999-11-16 04:14:03 +00:00
Tom Lane
c8c3e07e58 Clean up possible memory leakage in nodeSubplan 1999-11-15 03:28:07 +00:00
Tom Lane
f68e11f373 Implement subselects in target lists. Also, relax requirement that
subselects can only appear on the righthand side of a binary operator.
That's still true for quantified predicates like x = ANY (SELECT ...),
but a subselect that delivers a single result can now appear anywhere
in an expression.  This is implemented by changing EXPR_SUBLINK sublinks
to represent just the (SELECT ...) expression, without any 'left hand
side' or combining operator --- so they're now more like EXISTS_SUBLINK.
To handle the case of '(x, y, z) = (SELECT ...)', I added a new sublink
type MULTIEXPR_SUBLINK, which acts just like EXPR_SUBLINK used to.
But the grammar will only generate one for a multiple-left-hand-side
row expression.
1999-11-15 02:00:15 +00:00
Tom Lane
ac61a04a71 Fix ExecSubPlan to handle nulls per the SQL spec --- it didn't combine
nulls with non-nulls using proper three-valued boolean logic.  Also clean
up ExecQual to make it clearer that ExecQual *does* follow the SQL spec
for boolean nulls.  See '[BUGS] (null) != (null)' thread around 10/26/99
for more detail.
1999-11-12 06:39:34 +00:00
Bruce Momjian
86ef36c907 New NameStr macro to convert Name to Str. No need for var.data anymore.
Fewer calls to nameout.

Better use of RelationGetRelationName.
1999-11-07 23:08:36 +00:00
Bruce Momjian
0fe4a20891 Add Linux ARM. 1999-11-06 01:55:44 +00:00
Bruce Momjian
7791e8c001 Improve getopt and readline support, from Peter Eisentraut. 1999-11-04 21:46:40 +00:00
Hiroshi Inoue
2e2189a568 Make it possible to execute crashed CREATE/DROP commands again.
Now indexes of pg_class and pg_type are unique indexes
and guarantee the uniqueness of correponding attributes.
heap_create() was changed to take another boolean parameter
which allows to postpone the creation of disk file.
The name of rd_nonameunlinked was changed to rd_unlinked.
It is used generally(not only for noname relations) now.
Requires initdb.
1999-11-04 08:01:09 +00:00
Tom Lane
d40dbb7387 Eliminate local inefficiencies in updateTargetListEntry, make_var, and
make_const --- don't repeat cache searches that aren't needed.
1999-11-01 05:06:21 +00:00
Bruce Momjian
249f6b40ab formatting cleanup 1999-11-01 04:00:57 +00:00
Bruce Momjian
87af721775 Update version for 7.0. 1999-11-01 02:33:32 +00:00
Bruce Momjian
d16b706e7a Allow indexes on system catalogs for use in cache code.
Thanks to Hiroshi
1999-11-01 02:29:27 +00:00
Tom Lane
5b9d655ba7 Avoid duplicate ExecTypeFromTL() call in ExecInitJunkFilter() by passing
in the TupleDesc that the caller already has (for call from ExecMain) or
can make just as easily as ExecInitJunkFilter() can (for call from
ExecAppend).  Also, don't bother to build a junk filter for an INSERT
operation that doesn't actually need one, which is the normal case.
1999-10-30 23:13:30 +00:00
Bruce Momjian
577e21b34f Hello.
The following patch extends the COMMENT ON functionality to the
rest of the database objects beyond just tables, columns, and views. The
grammer of the COMMENT ON statement now looks like:

COMMENT ON [
  [ DATABASE | INDEX | RULE | SEQUENCE | TABLE | TYPE | VIEW ] <objname>
|

  COLUMN <relation>.<attribute> |
  AGGREGATE <aggname> <aggtype> |
  FUNCTION <funcname> (arg1, arg2, ...) |
  OPERATOR <op> (leftoperand_typ rightoperand_typ) |
  TRIGGER <triggername> ON relname>

Mike Mascari
(mascarim@yahoo.com)
1999-10-26 03:12:39 +00:00
Tom Lane
51f62d505e Standardize on MAXPGPATH as the size of a file pathname buffer,
eliminating some wildly inconsistent coding in various parts of the
system.  I set MAXPGPATH = 1024 in config.h.in.  If anyone is really
convinced that there ought to be a configure-time test to set the
value, go right ahead ... but I think it's a waste of time.
1999-10-25 03:08:03 +00:00
Tom Lane
eae456cd7f Add a notion of a 'catalog version number' that can indicate
when an initdb-forcing change has been applied within a development cycle.
PG_VERSION serves this purpose for official releases, but we can't bump
the PG_VERSION number every time we make a change to the catalogs during
development.  Instead, increase the catalog version number to warn other
developers that you've made an incompatible change.  See my mail to
pghackers for more info.
1999-10-24 20:42:27 +00:00
Tom Lane
9efee18a28 Add comment explaining that this table doesn't do what you
might think ... in fact doesn't do much of anything at the moment ...
1999-10-24 19:22:37 +00:00
Tom Lane
ecd0bfa81a Look Ma, no MAX_PARSE_BUFFER! (At least not in the backend.
pg_dump and interfaces/odbc still need some work.)
1999-10-23 03:13:33 +00:00
Bruce Momjian
d357c96789 Update \dT again. 1999-10-18 14:14:04 +00:00
Bruce Momjian
80254d4870 More \dT cleanup 1999-10-18 14:07:49 +00:00
Bruce Momjian
25036d4dee Clean up \dT display. 1999-10-18 13:44:24 +00:00
Bruce Momjian
7bf25f1281 Make bpchar == char() clearer in \dT display. 1999-10-18 11:36:45 +00:00
Tom Lane
887afac1f5 Remove now-dead sort modules. 1999-10-17 22:19:07 +00:00
Tom Lane
26c48b5e8c Final stage of psort reconstruction work: replace psort.c with
a generalized module 'tuplesort.c' that can sort either HeapTuples or
IndexTuples, and is not tied to execution of a Sort node.  Clean up
memory leakages in sorting, and replace nbtsort.c's private implementation
of mergesorting with calls to tuplesort.c.
1999-10-17 22:15:09 +00:00
Tom Lane
957146dcec Second phase of psort reconstruction project: add bookkeeping logic to
recycle storage within sort temp file on a block-by-block basis.  This
reduces peak disk usage to essentially just the volume of data being
sorted, whereas it had been about 4x the data volume before.
1999-10-16 19:49:28 +00:00
Bruce Momjian
06d95d9440 Fix typo in descriptions. 1999-10-15 16:19:40 +00:00
Bruce Momjian
e16db38376 Clean up type descriptions. 1999-10-15 04:56:52 +00:00
Bruce Momjian
7acc237744 This patch implements ORACLE's COMMENT SQL command.
>From the ORACLE 7 SQL Language Reference Manual:
-----------------------------------------------------
COMMENT

Purpose:

To add a comment about a table, view, snapshot, or
column into the data dictionary.

Prerequisites:

The table, view, or snapshot must be in your own
schema
or you must have COMMENT ANY TABLE system privilege.

Syntax:

COMMENT ON [ TABLE table ] |
           [ COLUMN table.column] IS 'text'

You can effectively drop a comment from the database
by setting it to the empty string ''.
-----------------------------------------------------

Example:

COMMENT ON TABLE workorders IS
   'Maintains base records for workorder information';

COMMENT ON COLUMN workorders.hours IS
   'Number of hours the engineer worked on the task';

to drop a comment:

COMMENT ON COLUMN workorders.hours IS '';

The current patch will simply perform the insert into
pg_description, as per the TODO. And, of course, when
the table is dropped, any comments relating to it
or any of its attributes are also dropped. I haven't
looked at the ODBC source yet, but I do know from
an ODBC client standpoint that the standard does
support the notion of table and column comments.
Hopefully the ODBC driver is already fetching these
values from pg_description, but if not, it should be
trivial.

Hope this makes the grade,

Mike Mascari
(mascarim@yahoo.com)
1999-10-15 01:49:49 +00:00
Tom Lane
db3c4c3a2d Split 'BufFile' routines out of fd.c into a new module, buffile.c. Extend
BufFile so that it handles multi-segment temporary files transparently.
This allows sorts and hashes to work with data exceeding 2Gig (or whatever
the local limit on file size is).  Change psort.c to use relative seeks
instead of absolute seeks for backwards scanning, so that it won't fail
when the data volume exceeds 2Gig.
1999-10-13 15:02:32 +00:00
Bruce Momjian
c6411605e1 I have created a small patch that makes possible to compile pgsql on newer
Cygwin snapshots (tested on 990115 which is recommended to use - it fixes
some errors in B20.1)

And I have another patch for including <sys/ipc.h> before <sys/sem.h> in
backend/storage/lmgr/proc.c - it is required due the design of cygipc
headers

                        Dan
1999-10-12 14:54:28 +00:00
Hiroshi Inoue
05d13cad28 The 1st step to implement new type of scan,TidScan.
Now WHERE restriction on ctid is allowed though it is
sequentially scanned.
1999-10-11 06:28:29 +00:00
Bruce Momjian
ff77befb73 Move __alpha to port/alpha.h. 1999-10-09 01:30:23 +00:00
Bruce Momjian
ae61ef34bd Cleanup -is flag to -l for SSL. Another PERL variable name fix. Clean
up debugging options for postmaster and postgres programs.  postmaster
-d is no longer optional.  Documentation updates.
1999-10-08 04:28:57 +00:00
Tom Lane
3eb1c82277 Fix planner and rewriter to follow SQL semantics for tables that are
mentioned in FROM but not elsewhere in the query: such tables should be
joined over anyway.  Aside from being more standards-compliant, this allows
removal of some very ugly hacks for COUNT(*) processing.  Also, allow
HAVING clause without aggregate functions, since SQL does.  Clean up
CREATE RULE statement-list syntax the same way Bruce just fixed the
main stmtmulti production.
CAUTION: addition of a field to RangeTblEntry nodes breaks stored rules;
you will have to initdb if you have any rules.
1999-10-07 04:23:24 +00:00
Vadim B. Mikheev
4793740367 XLOG (also known as WAL -:)) Bootstrap/Startup/Shutdown.
First step in cleaning up backend initialization code.
Fix for FATAL: now FATAL is ERROR + exit.
1999-10-06 21:58:18 +00:00
Bruce Momjian
9dcd8c528f More more liszt language code, so remove it from pg_language. 1999-10-06 18:20:31 +00:00
Tom Lane
eabc714a91 Reimplement parsing and storage of default expressions and constraint
expressions in CREATE TABLE.  There is no longer an emasculated expression
syntax for these things; it's full a_expr for constraints, and b_expr
for defaults (unfortunately the fact that NOT NULL is a part of the
column constraint syntax causes a shift/reduce conflict if you try a_expr.
Oh well --- at least parenthesized boolean expressions work now).  Also,
stored expression for a column default is not pre-coerced to the column
type; we rely on transformInsertStatement to do that when the default is
actually used.  This means "f1 datetime default 'now'" behaves the way
people usually expect it to.
BTW, all the support code is now there to implement ALTER TABLE ADD
CONSTRAINT and ALTER TABLE ADD COLUMN with a default value.  I didn't
actually teach ALTER TABLE to call it, but it wouldn't be much work.
1999-10-03 23:55:40 +00:00
Tom Lane
6eb8d255d2 Allow CREATE FUNCTION's WITH clause to be used for all language types,
not just C, so that ISCACHABLE attribute can be specified for user-defined
functions.  Get rid of ParamString node type, which wasn't actually being
generated by gram.y anymore, even though define.c thought that was what
it was getting.  Clean up minor bug in dfmgr.c (premature heap_close).
1999-10-02 21:33:33 +00:00
Tom Lane
1f122a7c4c Replace float.c's #ifdef finite check with a proper autoconf check, so it
works if finite() is a function.  Patch from Christof Petig.
1999-10-02 17:45:31 +00:00
Tom Lane
389af07cf0 Clean up rewriter routines to use expression_tree_walker and
expression_tree_mutator rather than ad-hoc tree walking code.  This shortens
the code materially and fixes a fair number of sins of omission.  Also,
change modifyAggrefQual to *not* recurse into subselects, since its mission
is satisfied if it removes aggregate functions from the top level of a
WHERE clause.  This cures problems with queries of the form SELECT ...
WHERE x IN (SELECT ... HAVING something-using-an-aggregate), which would
formerly get mucked up by modifyAggrefQual.  The routine is still
fundamentally broken, of course, but I don't think there's any way to get
rid of it before we implement subselects in FROM ...
1999-10-01 04:08:24 +00:00
Jan Wieck
ccecf1fa46 Added utils/adt/ri_triggers with empty shells for the
FOREIGN KEY triggers.

Added pg_proc entries for all the new functions.

Jan
1999-09-30 14:54:24 +00:00
Jan Wieck
daaeafd9e1 Removed (useless) pg_proc_prosrc_index
Jan
1999-09-30 10:31:47 +00:00
Jan Wieck
b5c4b77283 Added nbtree operator class for NUMERIC
Jan
1999-09-29 21:13:31 +00:00
Jan Wieck
1547ee017c This is part #1 for of the DEFERRED CONSTRAINT TRIGGER support.
Implements the CREATE CONSTRAINT TRIGGER and SET CONSTRAINTS commands.

TODO:
    Generic builtin trigger procedures
    Automatic execution of appropriate CREATE CONSTRAINT... at CREATE TABLE
    Support of new trigger type in pg_dump
    Swapping of huge # of events to disk

Jan
1999-09-29 16:06:40 +00:00
Vadim B. Mikheev
3fea625e9d Make tree compilable (+WAL). 1999-09-28 11:41:09 +00:00
Bruce Momjian
9394d62c73 I have been working with user defined types and user defined c
functions.  One problem that I have encountered with the function
manager is that it does not allow the user to define type conversion
functions that convert between user types. For instance if mytype1,
mytype2, and mytype3 are three Postgresql user types, and if I wish to
define Postgresql conversion functions like

I run into problems, because the Postgresql dynamic loader would look
for a single link symbol, mytype3, for both pieces of object code.  If
I just change the name of one of the Postgresql functions (to make the
symbols distinct), the automatic type conversion that Postgresql uses,
for example, when matching operators to arguments no longer finds the
type conversion function.

The solution that I propose, and have implemented in the attatched
patch extends the CREATE FUNCTION syntax as follows. In the first case
above I use the link symbol mytype2_to_mytype3 for the link object
that implements the first conversion function, and define the
Postgresql operator with the following syntax

The patch includes changes to the parser to include the altered
syntax, changes to the ProcedureStmt node in nodes/parsenodes.h,
changes to commands/define.c to handle the extra information in the AS
clause, and changes to utils/fmgr/dfmgr.c that alter the way that the
dynamic loader figures out what link symbol to use.  I store the
string for the link symbol in the prosrc text attribute of the pg_proc
table which is currently unused in rows that reference dynamically
loaded
functions.


Bernie Frankpitt
1999-09-28 04:34:56 +00:00
Bruce Momjian
d62a7ac6d3 Massimo's SET FSYNC and SHOW PG_OPTIONS changes, without SET QUERY_LIMIT. 1999-09-27 20:27:32 +00:00
Vadim B. Mikheev
30659d43eb Transaction log manager core code.
It doesn't work currently but also don't break anything -:)
1999-09-27 15:48:12 +00:00
Bruce Momjian
e0e7daef6d Lots of patches coming in from me today :-)
When drawing up a very simple "text-drawing" of how the negotiation is done,
I realised I had done this last part (fallback) in a very stupid way. Patch
#4 fixes this, and does it in a much better way.

Included is also the simple text-drawing of how the negotiation is done.

//Magnus
1999-09-27 03:13:16 +00:00
Tom Lane
be09bc9ff2 Modify nodeAgg.c so that no rows are returned for a GROUP BY
with no input rows, per pghackers discussions around 7/22/99.  Clean up
a bunch of ugly coding while at it; remove redundant re-lookup of
aggregate info at start of each new GROUP.  Arrange to pfree intermediate
values when they are pass-by-ref types, so that aggregates on pass-by-ref
types no longer eat memory.  This takes care of a couple of TODO items...
1999-09-26 21:21:15 +00:00
Tom Lane
40f6524161 Implement constant-expression simplification per Bernard
Frankpitt, plus some improvements from yours truly.  The simplifier depends
on the proiscachable field of pg_proc to tell it whether a function is
safe to pre-evaluate --- things like nextval() are not, for example.
Update pg_proc.h to contain reasonable cacheability information; as of
6.5.* hardly any functions were marked cacheable.  I may have erred too
far in the other direction; see recent mail to pghackers for more info.
This update does not force an initdb, exactly, but you won't see much
benefit from the simplifier until you do one.
1999-09-26 02:28:44 +00:00
Tom Lane
e812458b27 Several changes here, not very related but touching some of the same files.
* Buffer refcount cleanup (per my "progress report" to pghackers, 9/22).
* Add links to backend PROC structs to sinval's array of per-backend info,
and use these links for routines that need to check the state of all
backends (rather than the slow, complicated search of the ShmemIndex
hashtable that was used before).  Add databaseOID to PROC structs.
* Use this to implement an interlock that prevents DESTROY DATABASE of
a database containing running backends.  (It's a little tricky to prevent
a concurrently-starting backend from getting in there, since the new
backend is not able to lock anything at the time it tries to look up
its database in pg_database.  My solution is to recheck that the DB is
OK at the end of InitPostgres.  It may not be a 100% solution, but it's
a lot better than no interlock at all...)
* In ALTER TABLE RENAME, flush buffers for the relation before doing the
rename of the physical files, to ensure we don't get failures later from
mdblindwrt().
* Update TRUNCATE patch so that it actually compiles against current
sources :-(.
You should do "make clean all" after pulling these changes.
1999-09-24 00:25:33 +00:00
Bruce Momjian
e7cad7b0cb Add TRUNCATE command, with psql help and sgml additions. 1999-09-23 17:03:39 +00:00
Tom Lane
bd272cace6 Mega-commit to make heap_open/heap_openr/heap_close take an
additional argument specifying the kind of lock to acquire/release (or
'NoLock' to do no lock processing).  Ensure that all relations are locked
with some appropriate lock level before being examined --- this ensures
that relevant shared-inval messages have been processed and should prevent
problems caused by concurrent VACUUM.  Fix several bugs having to do with
mismatched increment/decrement of relation ref count and mismatched
heap_open/close (which amounts to the same thing).  A bogus ref count on
a relation doesn't matter much *unless* a SI Inval message happens to
arrive at the wrong time, which is probably why we got away with this
sloppiness for so long.  Repair missing grab of AccessExclusiveLock in
DROP TABLE, ALTER/RENAME TABLE, etc, as noted by Hiroshi.
Recommend 'make clean all' after pulling this update; I modified the
Relation struct layout slightly.
Will post further discussion to pghackers list shortly.
1999-09-18 19:08:25 +00:00
Tom Lane
43d32d3683 First cut at doing something reasonable with OR-of-ANDs WHERE
conditions.  There are some pretty bogus heuristics in prepqual.c that
try to decide whether to output CNF or DNF format; they need to be replaced,
likely.  Right now the code is probably too willing to choose DNF form,
which might hurt performance in some cases that used to work OK.
But at least we have a foundation to build on.
1999-09-13 00:17:25 +00:00
Tom Lane
2119cc0670 Further improvements in cnfify: reduce amount of self-recursion
in or_normalize, remove detection of duplicate subexpressions (since it's
highly unlikely to be worth the amount of time it takes), and introduce
a dnfify() entry point so that unintelligible backwards logic in UNION
processing can be eliminated.  This is just an intermediate step ---
next thing is to look at not forcing the qual into CNF form when it would
be better off in DNF form.
1999-09-12 18:08:17 +00:00
Tom Lane
4644fc8071 Eliminate query length limitation imposed by pg_client_to_server
and pg_server_to_client.  Eliminate copy.c's restriction on the length
of a single attribute.
1999-09-11 22:28:11 +00:00
Tom Lane
b399805e22 Eliminate elog()'s hardwired limit on length of an error message.
This change seems necessary in conjunction with long queries, and it
cleans up some bogosity in connection with long EXPLAIN texts anyway.
Note that current libpq will accept any length error message (at least
until it runs out of memory); prior versions have a limit of 8K, but
will cleanly discard excess error text, so there shouldn't be any
big compatibility problems with old clients.
1999-09-11 19:06:42 +00:00
Tom Lane
5bc0d31ae8 Repair incorrect cleanup of heap memory allocation during
transaction abort --- before it only worked if there was exactly one level
of allocation context stacked in the blank portal.  Now it does the right
thing for any depth, including zero...
1999-09-09 16:25:35 +00:00
Tom Lane
d2f7d1f346 Mark bpchareq not hashjoinable, since it strips trailing blanks
before comparison; if fields being joined are different widths then hashing
will yield wrong answer.  Also, remove hashjoinable mark from all uses of
array_eq, because array structures may have padding bytes between elements
and the pad bytes are of uncertain content.  This could be revisited if
array code is cleaned up.
Modify opr_sanity regress test to complain if array_eq operator is marked
hashjoinable.
1999-09-06 21:16:20 +00:00
Tom Lane
22fe3d4b04 I finally understood what sinvaladt.c is doing --- and it
offended my aesthestic sensibility that there was so much unreadable code
doing so little.  Rewritten code is about half the size, faster, and
(I hope) much more intelligible.
1999-09-06 19:37:38 +00:00
Bruce Momjian
fb7548f4db Invalidate temp entries for aborted transactions. 1999-09-04 19:55:50 +00:00
Tom Lane
b4a607c9e0 Modify RelationFlushRelation so that if the relcache entry
has positive refcount, it is rebuilt from pg_class data.  This ensures
that relcache entries will track changes made by other backends.  Formerly,
a shared inval report would just be ignored if it happened to arrive while
the relcache entry was in use.  Also, fix relcache to reset ref counts
to zero during transaction abort.  Finally, change LockRelation() so that
it checks for shared inval reports after obtaining the lock.  In this way,
once any kind of lock has been obtained on a rel, we can trust the relcache
entry to be up-to-date.
1999-09-04 18:42:15 +00:00
Tom Lane
8add6d71cf Modify sinval so that InvalidateSharedInvalid() does not hold
the SInval spinlock while it is calling the passed invalFunction or
resetFunction.  This is necessary to avoid deadlock with lmgr change;
InvalidateSharedInvalid can be called recursively now.  It should be
a good performance improvement anyway --- holding a spinlock for more
than a very short interval is a no-no.
1999-09-04 18:36:45 +00:00
Tom Lane
e25e6a6dc3 Commit the bulk of Mike Ansley's long-query changes in the
backend.  Still much left to do.
1999-08-31 04:26:40 +00:00
Tom Lane
130e372b5d Minor improvements to stringinfo package to make it more
robust, since it's about to get used much more heavily.
1999-08-31 01:28:37 +00:00
Tom Lane
1f14a9de74 Correct broken entries for pg_proc OIDs 1364 (time(abstime))
and 1370 (timestamp(datetime)).  This does not force an initdb, exactly,
but you won't see the effects of the bug fix until you do one.
BTW, OID 1358 for timespan(time) is still broken:
select timespan('21:11:26'::time);
ERROR:  No such function 'time_timespan' with the specified attributes
But I couldn't figure out what it ought to be defined as, so I left it be.
1999-08-29 01:35:11 +00:00
Tom Lane
37d20eb855 Clean up some mistakes in handling of uplevel Vars in planner.
Most parts of the planner should ignore, or indeed never even see, uplevel
Vars because they will be or have been replaced by Params.  There were a
couple of places that got it wrong though, probably my fault from recent
changes...
1999-08-26 05:09:06 +00:00
Tom Lane
42af56e1ea Revise implementation of SubLinks so that there is a consistent,
documented intepretation of the lefthand and oper fields.  Fix a number of
obscure problems while at it --- for example, the old code failed if the parser
decided to insert a type-coercion function just below the operator of a
SubLink.
CAUTION: this will break stored rules that contain subplans.  You may
need to initdb.
1999-08-25 23:21:43 +00:00
Tatsuo Ishii
770d0786c2 Add new vpl_num_allocated_pages member to VPageListData.
It will keep track the number of pages allocated so that
vacuum could allocate twice of the previous allocation.
This will greatly reduce the total memory consumption of
vacuum.
1999-08-25 12:18:31 +00:00
Tom Lane
2b67dc5387 Alter AllocSet routines so that requests larger than
ALLOC_BIGCHUNK_LIMIT are always allocated as separate malloc() blocks,
and are free()d immediately upon pfree().  Also, if such a chunk is enlarged
with repalloc(), translate the operation into a realloc() so as to
minimize memory usage.  Of course, these large chunks still get freed
automatically if the alloc set is reset.
I have set ALLOC_BIGCHUNK_LIMIT at 64K for now, but perhaps another
size would be better?
1999-08-24 20:11:19 +00:00
Tom Lane
a23faeee83 Remove bogus code in oper_exact --- if it didn't find an exact
match then it tried for a self-commutative operator with the reversed input
data types.  This is pretty silly; there could never be such an operator,
except maybe in binary-compatible-type scenarios, and we have oper_inexact
for that.  Besides which, the oprsanity regress test would complain about
such an operator.  Remove nonfunctional code and simplify routine calling
convention accordingly.
1999-08-23 23:48:39 +00:00
Tom Lane
e8140adb10 Further sort-order twiddling in optimizer: be smart about
case where ORDER BY and GROUP BY request the same sort order.
1999-08-22 23:56:45 +00:00
Tom Lane
78114cd4d4 Further planner/optimizer cleanups. Move all set_tlist_references
and fix_opids processing to a single recursive pass over the plan tree
executed at the very tail end of planning, rather than haphazardly here
and there at different places.  Now that tlist Vars do not get modified
until the very end, it's possible to get rid of the klugy var_equal and
match_varid partial-matching routines, and just use plain equal()
throughout the optimizer.  This is a step towards allowing merge and
hash joins to be done on expressions instead of only Vars ...
1999-08-22 20:15:04 +00:00
Tom Lane
db436adf76 Major revision of sort-node handling: push knowledge of query
sort order down into planner, instead of handling it only at the very top
level of the planner.  This fixes many things.  An explicit sort is now
avoided if there is a cheaper alternative (typically an indexscan) not
only for ORDER BY, but also for the internal sort of GROUP BY.  It works
even when there is no other reason (such as a WHERE condition) to consider
the indexscan.  It works for indexes on functions.  It works for indexes
on functions, backwards.  It's just so cool...

CAUTION: I have changed the representation of SortClause nodes, therefore
THIS UPDATE BREAKS STORED RULES.  You will need to initdb.
1999-08-21 03:49:17 +00:00
Tom Lane
e6381966c1 Major planner/optimizer revision: get rid of PathOrder node type,
store all ordering information in pathkeys lists (which are now lists of
lists of PathKeyItem nodes, not just lists of lists of vars).  This was
a big win --- the code is smaller and IMHO more understandable than it
was, even though it handles more cases.  I believe the node changes will
not force an initdb for anyone; planner nodes don't show up in stored
rules.
1999-08-16 02:17:58 +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
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
2ae51c86c9 Minor cleanups and code beautification; eliminate some
routines that are now dead code.
1999-08-10 03:00:15 +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
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
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
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
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
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
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
cf835f97fc Add comments for attdisbursion field --- NO code change. 1999-07-31 19:07:25 +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
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
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
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
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
be1851902a Fix #if if. 1999-07-19 14:30:52 +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
e44c931801 Re-add getopt.h check, remove NT-specific tests for it. 1999-07-19 02:27:16 +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
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
cb08547646 Add getopt test. 1999-07-18 21:02:56 +00:00
Bruce Momjian
7badb1e792 Fix configure problem. 1999-07-18 20:43:13 +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
07262a2dfb Update configure include checks. 1999-07-18 16:42:16 +00:00
Bruce Momjian
46355e94d4 Update includes from configure 1999-07-18 14:48:30 +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
Bruce Momjian
33e826d167 Fix for multi-byte includes. 1999-07-17 16:25:28 +00:00
Bruce Momjian
8f5561a0d9 More config.h cleanups. 1999-07-17 04:12:10 +00:00
Bruce Momjian
773088809d More cleanup 1999-07-16 17:07:40 +00:00
Bruce Momjian
a9591ce66a Change #include's to use <> and "" as appropriate. 1999-07-15 23:04:24 +00:00
Bruce Momjian
40a89e08b2 Cleanups. 1999-07-15 20:32:30 +00:00
Bruce Momjian
4b2c2850bf Clean up #include in /include directory. Add scripts for checking includes. 1999-07-15 15:21:54 +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
ebc3cc7efa heapam.h uses type time_t, but didn't include <time.h>. 1999-07-10 22:06:26 +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
Bruce Momjian
cd5dfb65a9 Add mention block size <= 32k. 1999-07-09 16:56:44 +00:00
Bruce Momjian
296efd8065 Fix for ACL length problem on different platforms. 1999-07-09 03:28:53 +00:00
Bruce Momjian
38ff52c379 Allow port numbers 32k - 64k. 1999-07-07 17:17:50 +00:00
Bruce Momjian
9f7ac20e57 Cleanup of min tuple size. 1999-07-07 09:27:28 +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
eba41848aa Clarify maximum tuple and max attribute lengths. 1999-07-04 04:56:02 +00:00
Bruce Momjian
ff8756dd1c More cleanup 1999-07-03 01:57:53 +00:00
Bruce Momjian
97dfff832c Fix to prevent too large tuple from being created. 1999-07-03 00:33:04 +00:00
Bruce Momjian
c9a0a232e2 #ifdef around true and false. 1999-07-01 19:47:25 +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
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
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
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
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
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
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
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
b4210ae0f0 Fix problems with grouping/aggregation in queries that use
inheritance ... basically it was completely busted :-(
1999-06-06 17:38:11 +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
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
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
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
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
Vadim B. Mikheev
bbbc211ed1 Fix xid table sizing. 1999-05-29 06:14: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
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
278bbf4572 Make functions static or NOT_USED as appropriate. 1999-05-26 12:57:23 +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
Bruce Momjian
07842084fe pgindent run over code. 1999-05-25 16:15:34 +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
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
a8d2820e6d Fix for DEFAULT ''. 1999-05-22 04:12:29 +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
Bruce Momjian
585c967720 Change resjunk to a boolean. 1999-05-17 17:03:51 +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
Tom Lane
fecb2b0024 Minor code cleanup in optimizer. 1999-05-16 19:45:37 +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
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
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
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
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
94bd4e3da7 Update to PyGreSQL 2.3. 1999-05-10 16:10:51 +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
3c6491ff96 Repair incorrect pg_proc entry for numeric_in. 1999-05-09 02:22:16 +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
Vadim B. Mikheev
122abf3af3 Fix LMGR for MVCC.
Get rid of Extend lock mode.
1999-05-07 01:23:11 +00:00
Tom Lane
9f82f9e459 Fix some nasty coredump bugs in hashjoin. This code was just
about certain to fail anytime it decided the relation to be hashed was
too big to fit in memory --- the code for 'batching' a series of hashjoins
had multiple errors.  I've fixed the easier problems.  A remaining big
problem is that you can get 'hashtable out of memory' if the code's
guesstimate about how much overflow space it will need turns out wrong.
That will require much more extensive revisions to fix, so I'm committing
these fixes now before I start on that problem.
1999-05-06 00:30:47 +00:00
Tom Lane
b6c732e63c Correct declaration of array_map() so that it doesn't make
gcc quite so unhappy.
1999-05-03 23:48:26 +00:00
Bruce Momjian
210055ad61 here are some patches for 6.5.0 which I already submitted but have never
been applied. The patches are in the .tar.gz attachment at the end:

varchar-array.patch     this patch adds support for arrays of bpchar() and
                        varchar(), which where always missing from postgres.

                        These datatypes can be used to replace the _char4,
                        _char8, etc., which were dropped some time ago.

block-size.patch        this patch fixes many errors in the parser and other
                        program which happen with very large query statements
                        (> 8K) when using a page size larger than 8192.

                        This patch is needed if you want to submit queries
                        larger than 8K. Postgres supports tuples up to 32K
                        but you can't insert them because you can't submit
                        queries larger than 8K. My patch fixes this problem.

                        The patch also replaces all the occurrences of `8192'
                        and `1<<13' in the sources with the proper constants
                        defined in include files. You should now never find
                        8192 hardwired in C code, just to make code clearer.


--
Massimo Dal Zotto
1999-05-03 19:10:48 +00:00
Tom Lane
da5f1dd722 Revise union_planner and associated routines to clean up breakage
from EXCEPT/HAVING patch.  Cases involving nontrivial GROUP BY expressions
now work again.  Also, the code is at least somewhat better documented...
1999-05-03 00:38:44 +00:00
Tom Lane
605d84941d Clean up cost_sort some more: most callers were double-counting
the cost of reading the source data.
1999-05-01 19:47:42 +00:00
Tom Lane
87d95ca04d Arrange for VACUUM to delete the init file that relcache.c uses
to save a little bit of backend startup time.  This way, the first
backend started after a VACUUM will rebuild the init file with up-to-date
statistics for the critical system indexes.
1999-05-01 19:09:46 +00:00
Tatsuo Ishii
c84ea433d7 Fix from Yutaka Tanida <yutaka@marin.or.jp> 1999-04-26 04:40:17 +00:00
Tom Lane
122923c97f Still had a few MULTIBYTE problems when client encoding was
different from database's ...
1999-04-25 21:50:58 +00:00
Tom Lane
40cad8b66f My first cut at libpq revision didn't handle MULTIBYTE correctly,
but I think it's OK now...
1999-04-25 19:27:47 +00:00
Tom Lane
95cc41b81d Revise backend libpq interfaces so that messages to the frontend
can be generated in a buffer and then sent to the frontend in a single
libpq call.  This solves problems with NOTICE and ERROR messages generated
in the middle of a data message or COPY OUT operation.
1999-04-25 03:19:27 +00:00
Tom Lane
00fbb64bed Un-break CREATE TYPE. Fix some other inconsistencies in the
pg_proc entries for array I/O routines besides the one detected by the
original patcher.  Tighten type_sanity regress test accordingly.
1999-04-20 03:51:19 +00:00
Tom Lane
09c5e84072 Change elog(ERROR) to get back to main loop via a plain sigsetjmp,
instead of doing a kill(self, SIGQUIT) and expecting the signal handler
to do it.  Also, clean up inconsistent definitions of the sigjmp buffer
in the several files that already referenced it.
1999-04-20 02:19:59 +00:00
Tom Lane
4438b70b94 Repair some problems in planner's handling of HAVING clauses.
This fixes a few of the problems Hiroshi Inoue complained of, but
I have not touched the rewrite-related issues.
1999-04-19 01:43:12 +00:00
Tom Lane
1b9f24c878 Add missing function prototypes to stifle gcc warnings. 1999-04-16 21:27:23 +00:00
Thomas G. Lockhart
99e57ee86f Move some useful date/time test macros to here to allow
sharing across files.
1999-04-15 02:24:23 +00:00
Thomas G. Lockhart
879d1be2fe Declare hashint8(). 1999-04-15 02:23:37 +00:00
Bruce Momjian
c0cd32d7b4 Add ARM32 support by Andrew McMurry 1999-04-13 17:42:26 +00:00
Bruce Momjian
a01dfe71b8 array_in is defined in the system catalog as taking two arguments while it
actually takes three. Please apply the following patch.

Massimo
1999-04-13 17:28:35 +00:00
Tom Lane
194326d6ff Fix another batch of bogosities in pg_operator table.
These were bogus selectivity-estimator links, like a '>' operator
pointing to intltsel when it should use intgtsel.
1999-04-10 23:53:00 +00:00
Tom Lane
098e043849 Fix CREATE OPERATOR ... LANGUAGE 'internal', which I broke while
making prosrc instead of proname be the link to the actual internal function.
1999-04-09 22:35:43 +00:00
Tom Lane
af87148065 Fix some more hashjoin-related bugs in pg_operator. Fix
hashjoin's hashFunc() so that it does the right thing with pass-by-value
data types (the old code would always return 0 for int2 or char values,
which would work but would slow things down a lot).  Extend opr_sanity
regress test to catch more kinds of errors.
1999-04-07 23:33:33 +00:00
Tom Lane
4e21023fd4 Unmark 'hashable' operators that can't really be used for
hashjoins.  Extend opr_sanity regress test to help detect similar mistakes.
1999-04-07 04:21:11 +00:00
Tom Lane
5763683ce4 On reflection, filesize limit ought to be an exact power
of 2 to save a few cycles in md.c.  So, make it 2^30 not 10^9.
1999-04-06 03:04:22 +00:00
Tom Lane
5ce851dcda Reduce default file size limit to 1Gb, and move the
configuration constant to config.h.
1999-04-05 22:25:11 +00:00
Tom Lane
4ed9269676 Fix bogus pg_amop entries for int8 hash, cidr btree,
polygon rtree, circle rtree indexes.
1999-04-03 18:07:47 +00:00
Tom Lane
ff38837fe9 Fix nasty bug in optimization of multiway joins: optimizer
would sometimes generate a plan that omitted a sort step before merge.
1999-04-03 00:18:28 +00:00
Tom Lane
f620241d73 Remove overly presumptuous use of __STDC__ in c.h, replacing
it with configure-script tests to see whether const, inline, volatile, etc
work or not.  (Curiously, configure was already doing the work to see if
const and inline were OK, but the results were not getting plugged into
config.h :-(.)
1999-04-02 05:10:16 +00:00
Tom Lane
0b874f01dd Clean up compile errors and warnings, cf Billy Allie's
complaints (and some of my own).
1999-04-02 04:51:05 +00:00
Bruce Momjian
0000a0c004 Small cleanups. 1999-03-30 01:37:28 +00:00
Tom Lane
c537d4295a Modify fmgr so that internal name (compiler name) of a built-in
function is found in prosrc field of pg_proc, not proname.  This allows
multiple aliases of a built-in to all be implemented as direct builtins,
without needing a level of indirection through an SQL function.  Replace
existing SQL alias functions with builtin entries accordingly.
Save a few K by not storing string names of builtin functions in fmgr's
internal table (if you really want 'em, get 'em from pg_proc...).
Update opr_sanity with a few more cross-checks.
1999-03-29 01:30:45 +00:00
Vadim B. Mikheev
fdf6be80f9 1. Vacuum is updated for MVCC.
2. Much faster btree tuples deletion in the case when first on page
   index tuple is deleted (no movement to the left page(s)).
3. Remember blkno of new root page in BTPageOpaque of
   left/right siblings when root page is splitted.
1999-03-28 20:32:42 +00:00
Tom Lane
8a3ef74b7c Clean up various minor irregularities detected by type_sanity
and newly expanded opr_sanity tests.
1999-03-28 02:01:39 +00:00
Tom Lane
79e1d1d58a Remove pg_attribute_check.sql: these checks merged into new
regress test 'type_sanity'.
1999-03-28 01:57:32 +00:00
Tom Lane
23ef47f89d Fix bogus function signature for areajoinsel.
It still doesn't do anything, but at least now it does nothing correctly.
1999-03-28 01:56:12 +00:00
Tom Lane
763a7ab6b0 Delete unused system table pg_parg. 1999-03-27 17:26:26 +00:00
Tom Lane
7cb2fd6577 No longer need this file here; superseded by oidjoins regress test. 1999-03-26 08:04:53 +00:00
Tom Lane
f95538269f Remove a bunch of dead entries exposed by findoidjoins crosschecks.
Apparently, whatever these things used to link to got recycled into
something else ... but the dependent entries didn't.
1999-03-26 07:32:42 +00:00
Tom Lane
1e117923aa Revise memutils.h to use alignment information gathered by
configure, instead of having a bunch of crufty platform-specific guesses.
1999-03-25 19:05:19 +00:00
Tom Lane
6febecc569 Clean up att_align calculations so that XXXALIGN macros
need not be bogus.
1999-03-25 03:49:34 +00:00
Tatsuo Ishii
2c775870bc Add KOI8/WIN/ALT to the multi-byte encoding selections 1999-03-24 06:53:28 +00:00
Bruce Momjian
344dfc0b0f Remove Tee code, move to _deadcode. 1999-03-23 16:51:04 +00:00
Bruce Momjian
48ea8b76db Hi,
I have solved some problems with dynamic loading on NT. It is possible
to
run succesfully both trigger and plpgsql regression tests. The patch is
in
the included file "diff".

                        Dan
1999-03-22 16:45:30 +00:00
Bruce Momjian
bd6f98af31 I suggest the following portability patch, which does not
change functionality, but makes the code more ANSI C'ish.
My AIX xlc compiler barfs on all of these. Can someone please
review and apply to current.

 <<port.patch>>
Thanks
Andreas
1999-03-19 18:56:43 +00:00
Bruce Momjian
58118db39d Add new postgres -O option to allow system table structure changes. 1999-03-17 22:53:31 +00:00
Bruce Momjian
434762b559 Here is a patch.
I have changed to call pg_exec_query_dest() instead of pg_exec_query().

Thanks.

Hiroshi Inoue
1999-03-16 03:24:18 +00:00
Tom Lane
4a9c239063 Fix brain death in !!= operator ... it's still pretty bogus
but at least now it does what it's supposed to do ...
1999-03-15 03:24:32 +00:00
Tom Lane
f621b85a2a Fix int8 configure one more time ... prior version didn't
define INT64_FORMAT in all cases.
1999-03-15 01:43:07 +00:00
Bruce Momjian
c10e6bcbed Attempting to insert a value of 'now' into a datetime type
results in a bogus datetime value under AlphaLinux.  (Note that
the link to submit a port-specific bug on your website is broken)

-Test Case:
----------
testdb=> create table dttest (dt datetime);
testdb=> insert into dttest values ('now');

--------------------------------------------------------------------------


Solution:
---------
The basic problem is the typedefs of AbsoluteTime and RelativeTime,
which are both 'int32'.  These types appear to be used synonymously
with the 'time_t' type, which on AlphaLinux is typedef'd as a 'long
int', which is 64-bits (not 32).  The solution included here fixes
the datetime type (it now passes the regression test), but does not
pass the absolute and relative time regression tests.  Presumably, a
more thorough investigation of how these types are used is warranted.
The included patch is from the v6.3.2 source, but can be applied to
the v6.4.2 source.  Please note that there is also a RedHat-specific
patch distributed with the PostgreSQL source package from RedHat
that was applied first.

Rich Edwards
1999-03-14 16:44:02 +00:00
Bruce Momjian
042ec823cf Cleanup of hash functions in pg_proc. 1999-03-14 16:32:46 +00:00
Bruce Momjian
aba8c12f67 We have tested the patches on three platforms:
NetBSD/macppc
LinuxPPC
FreeBSD 2.2.6-RELEASE

All of them seem happy with the regression test. Note that, however,
compiling with optimization enabled on NetBSD/macppc causes an initdb
failure (other two platforms are ok). After checking the asm code, we
are suspecting that might be a compiler(egcs) bug.

Tatsuo Ishii
1999-03-14 16:03:33 +00:00
Bruce Momjian
817a3e6d39 Enclosed below I have a patch to allow a btree index on the int8 type.
I would like some feedback on what the hash function for the int8 hash
function
in the ./backend/access/hash/hashfunc.c should return.

Also, could someone (maybe Tomas Lockhart?) look-over the patch and make
sure
the system table entries are correct?  I've tried to research them as
much as I
could, but some of them are still not clear to me.

Thanks,
-Ryan
1999-03-14 05:09:05 +00:00
Tom Lane
f8f0efb43d Make type 'regproc' binary-compatible with int4 and oid,
so that it has some SQL operators available.  It's difficult to write
automated tests of a data type that you haven't even got == for...
1999-03-10 05:05:58 +00:00
Tom Lane
3bca9c6c4b Fix some typos in argument and result types in pg_proc
and pg_operator.  The lone error in pg_operator was reported as a bug
by Michael Reifenberger; the multiple errors in pg_proc would only have
been noticed if one invoked the functions by name rather than using
operator syntax.  I guess few people do that.
1999-03-10 05:02:34 +00:00
Marc G. Fournier
f34240de06 Changes to fix/improve the dynamic loading on NT
From: Horak Daniel <horak@mmp.plzen-city.cz>
1999-03-09 13:39:15 +00:00
Marc G. Fournier
75007a72d6 Have configure check for use of %lld for int64, and if that fails, check for
use of %qd...a more generic solution then having #ifdef __<INSERT OS HERE>__
in the code...
1999-03-08 04:17:33 +00:00
Tom Lane
86c2eadb18 Modify mcxt.h so that it doesn't pull in half of creation. 1999-03-07 23:03:32 +00:00
Bruce Momjian
a564d2bf0f geqo now at 11 tables 1999-03-07 12:00:40 +00:00
Bruce Momjian
60bb92af33 Really remove Recipe. 1999-03-07 03:34:11 +00:00
Tom Lane
6c51355612 Eliminate duplicated code in dt.h 1999-03-06 22:58:11 +00:00
Tom Lane
731603a92b A few further tweaks to shared memory space estimation.
This change brings the default size of the main shmem block back under 1MB,
which is a fairly popular value for the kernel's SHMMAX parameter.
1999-03-06 21:17:56 +00:00
Tom Lane
e0345e09bf Partial fix for copied-plan bugs reported by Hiroshi Inoue:
_copyResult didn't copy subPlan structure completely.  _copyAgg is still
busted, apparently because of changes from EXCEPT/INTERSECT patch
(get_agg_tlist_references is no longer sufficient to find all aggregates).
No time to look at that tonight, however.
1999-03-03 00:02:42 +00:00
Tom Lane
b204d10c79 Executor no longer cares about mergejoinop, mergerightorder, mergeleftorder,
so remove them from MergeJoin node.  Hack together a partial
solution for commuted mergejoin operators --- yesterday
a mergejoin int4 = int8 would crash if the planner decided to
commute it, today it works.  The planner's representation of
mergejoins really needs a rewrite though.
Also, further testing of mergejoin ops in opr_sanity regress test.
1999-03-01 00:10:44 +00:00
Tom Lane
51f0f6ddc8 Fix pg_operator entries for mergejoinable operators with different left and
right side data types.  Correct the opr_sanity regress test to check these
entries properly.  NOTE that opr_sanity will now fail until you do an initdb!
1999-02-28 00:56:42 +00:00
Tom Lane
dc77be0432 Fix executor to work correctly with mergejoins where left and
right sides have different data types.
1999-02-28 00:36:05 +00:00
Tom Lane
1e006ba2ad Put back T_RecipeStmt, since the system doesn't actually build
without it.  Sloppy, sloppy.
1999-02-27 21:40:39 +00:00
Bruce Momjian
6df955fd3b Fix problem with selectivity error in added columns with ALTER TABLE.
Move files to deadcode.
1999-02-24 17:29:06 +00:00
Thomas G. Lockhart
e17d8448f2 Add parameters to function calls to pass back table qualifications. 1999-02-23 08:05:27 +00:00
Thomas G. Lockhart
0a8e9c4e7f Define JoinExpr structure for outer join syntax.
Clean up comments in execnodes.h.
1999-02-23 07:55:24 +00:00
Thomas G. Lockhart
8f0a76f012 Bring debugging print statement declarations up to date.
Comment-out the #undef default declarations to allow the parameters to be
 set on the compiler command line.
1999-02-23 07:39:40 +00:00
Thomas G. Lockhart
889c1530c9 Add constants for outer join states in executor. 1999-02-23 07:37:31 +00:00
Thomas G. Lockhart
25cccc05aa Fix typos in comments. 1999-02-23 07:36:31 +00:00
Bruce Momjian
1e70c1fe5d comments cleanup. 1999-02-22 19:55:44 +00:00
Tom Lane
bcfdc9df04 Repair some pretty serious problems in dynahash.c and
shared memory space allocation.  It's a wonder we have not seen bug
reports traceable to this area ... it's quite clear that the routine
dir_realloc() has never worked correctly, for example.
1999-02-22 06:16:57 +00:00
Bruce Momjian
1ed5cbbfd8 Final optimizer cleanups. 1999-02-22 05:26:58 +00:00
Marc G. Fournier
8c3e8a8a0e From: Tatsuo Ishii <t-ishii@sra.co.jp>
Ok. I made patches replacing all of "#if FALSE" or "#if 0" to "#ifdef
NOT_USED" for current. I have tested these patches in that the
postgres binaries are identical.
1999-02-21 03:49:55 +00:00
Bruce Momjian
23c30246d7 pathkeys.c cleanup. 1999-02-21 01:55:03 +00:00
Tom Lane
9d197856dd Rearrange handling of MAXBACKENDS a little bit. The default setting
of MAXBACKENDS is now 1024, since all it's costing is about 32 bytes of memory
per array slot.  configure's --with-maxbackends switch now controls DEF_MAXBACKENDS
which is simply the default value of the postmaster's -N switch.  Thus,
the out-of-the-box configuration will still limit you to 64 backends,
but you can go up to 1024 backends simply by restarting the postmaster with
a different -N switch --- no rebuild required.
1999-02-21 01:41:55 +00:00
Bruce Momjian
75cccd0ad3 pathkeys fixes 1999-02-20 19:02:43 +00:00
Bruce Momjian
9188aab758 add pathkeys description. 1999-02-20 16:28:20 +00:00
Tom Lane
4c31393135 Reorder startup ops so that if preallocation of semas fails,
postmaster will release whatever it did get before dying.
1999-02-19 07:10:48 +00:00
Tom Lane
e77b630cf0 Allow maximum number of backends to be set at configure time
(--with-maxbackends).  Add a postmaster switch (-N backends) that allows
the limit to be reduced at postmaster start time.  (You can't increase it,
sorry to say, because there are still some fixed-size arrays.)
Grab the number of semaphores indicated by min(MAXBACKENDS, -N) at
postmaster startup, so that this particular form of bogus configuration
is exposed immediately rather than under heavy load.
1999-02-19 06:06:39 +00:00
Bruce Momjian
612b8434e4 optimizer cleanup 1999-02-19 05:18:06 +00:00
Bruce Momjian
8ab72a38df optimizer cleanup 1999-02-19 02:05:20 +00:00
Bruce Momjian
65ccd1039a Enable bushy plans by default. 1999-02-18 05:26:34 +00:00
Bruce Momjian
e78662d879 optimizer cleanup 1999-02-18 04:55:54 +00:00
Bruce Momjian
d977ff7b52 more optimizer cleanups 1999-02-18 04:45:36 +00:00
Bruce Momjian
31cce21fb0 Fix bushy plans. Cleanup. 1999-02-18 00:49:48 +00:00
Bruce Momjian
c82ca4c158 Re-enable bushy plans. Vadim want them. 1999-02-16 00:41:03 +00:00
Bruce Momjian
e6bf7b4d93 rename 1999-02-15 05:56:07 +00:00
Bruce Momjian
56bb23a8fe optimizer rename 1999-02-15 05:50:02 +00:00
Bruce Momjian
50034a852d optimizer rename 1999-02-15 05:28:10 +00:00
Bruce Momjian
c5449d5354 otherrels is now unjoined_rels 1999-02-15 05:21:12 +00:00
Bruce Momjian
82682ff31f optimizer rename 1999-02-15 03:59:28 +00:00
Bruce Momjian
ba2883b264 Remove duplicate geqo functions, and more optimizer cleanup 1999-02-15 03:22:37 +00:00
Bruce Momjian
61aa825876 Optimizer rename. 1999-02-14 04:57:02 +00:00
Bruce Momjian
6724a50787 Change my-function-name-- to my_function_name, and optimizer renames. 1999-02-13 23:22:53 +00:00
Thomas G. Lockhart
ba71b81966 Remove equivalence between datetime and float8. Led to nothin' but trouble. 1999-02-13 05:25:54 +00:00
Thomas G. Lockhart
02e85e7e5f Add routines to convert between int8 and text/varchar types.
Fix output type for int8out, but I don't think it matters.
1999-02-13 04:19:54 +00:00
Thomas G. Lockhart
7a724a0231 Include some Julian date declarations to share between various date/time
modules. Used to be in dt.c I think.
1999-02-13 04:15:33 +00:00
Bruce Momjian
ad4b27ac3f Optimizer cleanup. 1999-02-12 17:25:05 +00:00
Bruce Momjian
c0d17c7aee JoinPath -> NestPath for nested loop. 1999-02-12 06:43:53 +00:00
Bruce Momjian
3fdb9bb9c7 Fix optimizer and make faster. 1999-02-12 05:57:08 +00:00
Bruce Momjian
6de25f09b1 Optimizer cleanup. 1999-02-11 17:00:49 +00:00
Bruce Momjian
d244df95db More optimizer speedups. 1999-02-11 14:59:09 +00:00
Bruce Momjian
dbd80c97f4 Optimizer fix for samekeys() and cost fixes for longer optimizer keys. 1999-02-11 04:08:44 +00:00
Tom Lane
403b3eff79 Include <varargs.h> on SunOS. (Does any other platform need it??) 1999-02-11 01:36:55 +00:00
Bruce Momjian
9dbb0efb0b Optmizer cleanup 1999-02-10 21:02:50 +00:00
Bruce Momjian
f859c81c18 Rename Path.keys to Path.pathkeys. Too many 'keys' used for other things. 1999-02-10 03:52:54 +00:00
Bruce Momjian
318e593f03 Rename Temp to Noname for noname tables. 1999-02-09 17:03:14 +00:00
Bruce Momjian
fe35ffe7e0 Major optimizer improvement for joining a large number of tables. 1999-02-09 03:51:42 +00:00
Jan Wieck
be948af2e8 Added LIMIT/OFFSET functionality including new regression test for it.
Removed CURRENT keyword for rule queries and changed rules regression
accordingly. CURRENT has beed announced to disappear in v6.5.

Jan
1999-02-08 14:14:32 +00:00
Bruce Momjian
54e5d25666 Optimizer cleanup. 1999-02-08 04:29:25 +00:00
Tom Lane
5212ef8e46 Correct definition of srandom() --- it takes unsigned int not int. 1999-02-07 22:04:57 +00:00
Jan Wieck
ef590e101e Changed ExecConstraints() and ExecRelCheck() to cache the constraints
qualification expression trees in the execution state. Prevents from
memory exhaustion on INSERT, UPDATE or COPY to tables that have CHECK
constraints. Speedup against the variant using freeObject() is more than
factor 2.

Jan
1999-02-07 16:17:14 +00:00
Bruce Momjian
a553760845 Optimizer cleanup. 1999-02-06 17:29:30 +00:00
Jan Wieck
ead64f317b New alloc set code using a memory block pool for small allocations.
Jan
1999-02-06 16:50:34 +00:00
Bruce Momjian
6e2edaf4b8 Optimizer cleanup. 1999-02-05 19:59:31 +00:00
Bruce Momjian
ce3afccf7f More optimizer cleanups. 1999-02-04 03:19:11 +00:00
Bruce Momjian
18fbe4142f More optimizer renaming HInfo -> HashInfo. 1999-02-04 01:47:02 +00:00
Bruce Momjian
8d9237d485 Optimizer rename ClauseInfo -> RestrictInfo. Update optimizer README. 1999-02-03 20:15:53 +00:00
Bruce Momjian
4090d17fee SET_ARGS cleanup 1999-02-02 23:53:26 +00:00
Bruce Momjian
a7ad43cd18 Included patches make some enhancements to the multi-byte support.
o allow to use Big5 (a Chinese encoding used in Taiwan) as a client
  encoding. In this case the server side encoding should be EUC_TW

o add EUC_TW and Big5 test cases to the regression and the mb test
  (contributed by Jonah Kuo)

o fix mistake in include/mb/pg_wchar.h. An encoding id for EUC_TW was
  not correct (was 3 and now is 4)

o update documents (doc/README.mb and README.mb.jp)

o update psql helpfile (bin/psql/psqlHelp.h)

--
Tatsuo Ishii
t-ishii@sra.co.jp
1999-02-02 18:51:40 +00:00
Bruce Momjian
8e958b8a38 Fix create_rule is->as. 1999-02-02 17:46:17 +00:00
Bruce Momjian
4390b0bfbe Add TEMP tables/indexes. Add COPY pfree(). Other cleanups. 1999-02-02 03:45:56 +00:00
Vadim B. Mikheev
e3a1ab764e READ COMMITTED isolevel is implemented and is default now. 1999-01-29 09:23:17 +00:00
Jan Wieck
28d8b42ca5 Speedup of PL/pgSQL by calling ExecEvalExpr() directly
instead of SPI_execp() for simple expressions.

Jan
1999-01-27 16:15:22 +00:00
Tom Lane
422221c90d Another SELECT speedup: extract OIDs of column print functions
only once per SELECT, not once per tuple.  10% here, 10% there,
pretty soon you're talking about real speedups ...
1999-01-27 00:36:28 +00:00
Bruce Momjian
1401f63dd1 Agg/Aggreg cleanup and datetime.sql patch. 1999-01-25 18:02:28 +00:00
Vadim B. Mikheev
247b3f9054 SELECT FOR UPDATE is implemented... 1999-01-25 12:01:19 +00:00
Tom Lane
d03e98737c Replace typtoout() and gettypelem() with a single routine,
so that fetching an attribute value needs only one SearchSysCacheTuple call
instead of two redundant searches.  This speeds up a large SELECT by about
ten percent, and probably will help GROUP BY and SELECT DISTINCT too.
1999-01-24 05:40:49 +00:00
Tom Lane
77f5428244 Fix a couple little problems with signed vs. unsigned
characters ...
1999-01-24 02:47:15 +00:00
Bruce Momjian
17467bb7fb Rename Aggreg to Aggref. 1999-01-24 00:28:37 +00:00
Bruce Momjian
598a4e15dd Remove unused Choose node. 1999-01-23 23:28:09 +00:00
Tom Lane
e6725d1574 Add explicit buffering in backend libpq, to compensate for
buffering lost by not going through stdio anymore for client I/O.
1999-01-23 22:27:29 +00:00
Bruce Momjian
c91dbcc5c7 The following patch finishes primary key support. Previously, when
a field was labelled as a primary key, the system automatically
created a unique index on the field.  This patch extends it so
that the index has the indisprimary field set.  You can pull a list
of primary keys with the followiing select.

SELECT pg_class.relname, pg_attribute.attname
    FROM pg_class, pg_attribute, pg_index
    WHERE pg_class.oid = pg_attribute.attrelid AND
        pg_class.oid = pg_index.indrelid AND
        pg_index.indkey[0] = pg_attribute.attnum AND
        pg_index.indisunique = 't';

There is nothing in this patch that modifies the template database to
set the indisprimary attribute for system tables.  Should they be
changed or should we only be concerned with user tables?

D'Arcy
1999-01-21 22:48:20 +00:00
Vadim B. Mikheev
12be3e08f1 FOR UPDATE is in parser & rules. 1999-01-21 16:08:55 +00:00
Thomas G. Lockhart
791822e3a7 Clean up leap year support and date/time validation.
Move declarations to allow sharing between modules.
1999-01-20 16:26:45 +00:00
Bruce Momjian
909c519733 Add missing Windows files. 1999-01-18 12:43:55 +00:00
Bruce Momjian
bd8ffc6f3f Hi!
INTERSECT and EXCEPT is available for postgresql-v6.4!

The patch against v6.4 is included at the end of the current text
(in uuencoded form!)

I also included the text of my Master's Thesis. (a postscript
version). I hope that you find something of it useful and would be
happy if parts of it find their way into the PostgreSQL documentation
project (If so, tell me, then I send the sources of the document!)

The contents of the document are:
  -) The first chapter might be of less interest as it gives only an
     overview on SQL.

  -) The second chapter gives a description on much of PostgreSQL's
     features (like user defined types etc. and how to use these features)

  -) The third chapter starts with an overview of PostgreSQL's internal
     structure with focus on the stages a query has to pass (i.e. parser,
     planner/optimizer, executor). Then a detailed description of the
     implementation of the Having clause and the Intersect/Except logic is
     given.

Originally I worked on v6.3.2 but never found time enough to prepare
and post a patch. Now I applied the changes to v6.4 to get Intersect
and Except working with the new version. Chapter 3 of my documentation
deals with the changes against v6.3.2, so keep that in mind when
comparing the parts of the code printed there with the patched sources
of v6.4.

Here are some remarks on the patch. There are some things that have
still to be done but at the moment I don't have time to do them
myself. (I'm doing my military service at the moment) Sorry for that
:-(

-) I used a rewrite technique for the implementation of the Except/Intersect
   logic which rewrites the query to a semantically equivalent query before
   it is handed to the rewrite system (for views, rules etc.), planner,
   executor etc.

-) In v6.3.2 the types of the attributes of two select statements
   connected by the UNION keyword had to match 100%. In v6.4 the types
   only need to be familiar (i.e. int and float can be mixed). Since this
   feature did not exist when I worked on Intersect/Except it
   does not work correctly for Except/Intersect queries WHEN USED IN
   COMBINATION WITH UNIONS! (i.e. sometimes the wrong type is used for the
   resulting table. This is because until now the types of the attributes of
   the first select statement have been used for the resulting table.
   When Intersects and/or Excepts are used in combination with Unions it
   might happen, that the first select statement of the original query
   appears at another position in the query which will be executed. The reason
   for this is the technique used for the implementation of
   Except/Intersect which does a query rewrite!)
   NOTE: It is NOT broken for pure UNION queries and pure INTERSECT/EXCEPT
         queries!!!

-) I had to add the field intersect_clause to some data structures
   but did not find time to implement printfuncs for the new field.
   This does NOT break the debug modes but when an Except/Intersect
   is used the query debug output will be the already rewritten query.

-) Massive changes to the grammar rules for SELECT and INSERT statements
   have been necessary (see comments in gram.y and documentation for
   deatails) in order to be able to use mixed queries like
   (SELECT ... UNION (SELECT ... EXCEPT SELECT)) INTERSECT SELECT...;

-) When using UNION/EXCEPT/INTERSECT you will get:
   NOTICE: equal: "Don't know if nodes of type xxx are equal".
   I did not have  time to add comparsion support for all the needed nodes,
   but the default behaviour of the function equal met my requirements.
   I did not dare to supress this message!

   That's the reason why the regression test for union will fail: These
   messages are also included in the union.out file!

-) Somebody of you changed the union_planner() function for v6.4
   (I copied the targetlist to new_tlist and that was removed and
   replaced by a cleanup of the original targetlist). These chnages
   violated some having queries executed against views so I changed
   it back again. I did not have time to examine the differences between the
   two versions but now it works :-)
   If you want to find out, try the file queries/view_having.sql on
   both versions and compare the results . Two queries won't produce a
   correct result with your version.

regards

    Stefan
1999-01-18 00:10:17 +00:00
Tom Lane
00a420d53c Add description of ELOG_TIMESTAMPS and USE_SYSLOG options,
per Massimo Dal Zotto.
1999-01-17 20:58:03 +00:00
Bruce Momjian
7a6b562fdf Apply Win32 patch from Horak Daniel. 1999-01-17 06:20:06 +00:00
Tom Lane
7fab608205 Add configure test to see whether vsnprintf() is present,
separately from snprintf() --- HPUX, for one, has snprintf but not
vsnprintf.  Fix a minor typo in snprintf.c, too.
1999-01-17 03:22:52 +00:00
Tom Lane
21badba151 Replace direct inclusions of c.h with inclusion of postgres.h,
to ensure that config.h is included as well.
1999-01-17 03:04:57 +00:00
Tom Lane
4e34686a36 Apply Magnus Hagander's followup patch to correct
out-of-sync routine prototypes ... the system doesn't compile without this ...
1999-01-17 01:45:42 +00:00
Marc G. Fournier
d8b96ade81 From: Magnus Hagander <mha@sollentuna.net>
Here's another patch for the libpq backend areas. This patch removes all
usage of "FILE *" on the communications channel. It also cleans up the
comments and headers in the pqcomm.c file - a lot of things were either
missing or incorrect. Finally, it removes a couple of unused functions
(leftovers from the time of shared code between the libpq backend and
frontend).
1999-01-12 12:49:52 +00:00
Marc G. Fournier
3b3ffc8d97 From: Magnus Hagander <mha@sollentuna.net>
Here is a first patch to cleanup the backend side of libpq.
This patch removes all external dependencies on the "Pfin" and "Pfout" that
are declared in pqcomm.h. These variables are also changed to "static" to
make sure.
Almost all the change is in the handler of the "copy" command - most other
areas of the backend already used the correct functions.
This change will make the way for cleanup of the internal stuff there - now
that all the functions accessing the file descriptors are confined to a
single directory.
1999-01-11 03:56:11 +00:00
Vadim B. Mikheev
dfa23f5e41 SELECT FOR UPDATE syntax 1999-01-05 15:46:25 +00:00
Jan Wieck
b5626a2089 Restricted maximum precision for NUMERIC to 1000 digits.
Anything else is CPU overkill.

Jan
1999-01-05 11:12:11 +00:00
Bruce Momjian
da361ee24b Add max oid display, rather than returning just a dash for the last entry. 1998-12-31 20:09:49 +00:00
Jan Wieck
5df20d4449 Little precision fix for POWER(). I discovered problems with big
exponents.

Jan
1998-12-30 20:46:06 +00:00
Jan Wieck
0e9d75c6ac Added NUMERIC data type with many builtin funcitons, operators
and aggregates.

Jan
1998-12-30 19:56:35 +00:00
Bruce Momjian
2b8736bac6 Fix for deadlock detection timeout. 1998-12-29 18:30:33 +00:00
Bruce Momjian
58e539e574 Long awaited port for NetBSD/m68k was finally done by Mr. Mutsuki
Nakajima. Since he is not subscribing the mailing list, I'm posting
his patches by his request.  According to him, he has successfully
compiled and passed the regression test on Mac SE/30 running
NetBSD/m68k. Also, another person has reported that with the patches
PostgreSQL is working on NetBSD/sun3 too.
--
Tatsuo Ishii
1998-12-26 18:15:53 +00:00
Bruce Momjian
2be1eccec7 Fix for version, update to 6.5. 1998-12-25 02:20:12 +00:00
Jan Wieck
d7171601a3 Changed TypeName.typmod to int32 - atttypmod is of that size
Jan
1998-12-21 12:50:29 +00:00
Bruce Momjian
b8d5f02e4e I have ported PostgreSQL 6.4 to Cobalt Qube running Linux 2.0.33 with
MIPS cpu (I think it's R4000). I have tested the patches on LinuxPPC
and FreeBSD. I believe they do not harm other platforms.
--
Tatsuo Ishii
1998-12-18 17:25:41 +00:00
Jan Wieck
eeff2c94be Fixed nodeToString() to put out "<>" for NULL strings again.
More cleanups to appendStringInfo() usage in node/outfuncs.c.

Jan
1998-12-18 14:45:09 +00:00
Vadim B. Mikheev
3498d878cb SET TRANSACTION ISOLATION LEVEL ...
LOCK TABLE IN ... MODE
...implemented
1998-12-18 09:10:39 +00:00
Vadim B. Mikheev
c13a64d7fb Serialized mode works! 1998-12-16 11:53:55 +00:00
Vadim B. Mikheev
3f7fbf85dc Initial MVCC code.
New code for locking buffer' context.
1998-12-15 12:47:01 +00:00
Marc G. Fournier
9396802f14 more cleanups...of note, appendStringInfo now performs like sprintf(),
where you state a format and arguments.  the old behavior required
each appendStringInfo to have to have a sprintf() before it if any
formatting was required.

Also shortened several instances where there were multiple appendStringInfo()
calls in a row, doing nothing more then adding one more word to the String,
instead of doing them all in one call.
1998-12-14 08:11:17 +00:00
Marc G. Fournier
7c3b7d2744 Initial attempt to clean up the code...
Switch sprintf() to snprintf()
Remove any/all #if 0 -or- #ifdef NOT_USED -or- #ifdef FALSE sections of
	code
1998-12-14 05:19:16 +00:00
Thomas G. Lockhart
3a52e3f3a2 Add routines and synonyms to help with single-byte char type handling.
Fix one usage of substr() which mapped to the "Oracle compatibility" funcs
 rather than the more recent (and closer to SQL92) function in varlena.c.
Add more DESC() entries for conversion functions.
1998-12-13 23:45:22 +00:00
Thomas G. Lockhart
239564e9ef Add routines to help with single-byte (internal) character type support. 1998-12-13 23:36:48 +00:00
Tom Lane
a10b38f255 Use standard AC_PROG_INSTALL macro to search for install program,
instead of our own halfway-there code.  Add AC_STRUCT_TIMEZONE call
to check whether tm_zone exists in struct tm.  Revise reading of template
file so that templates can define any variables they feel like (and,
indeed, can execute arbitrary shell code) rather than being constrained
to a fixed set of variable names.
1998-12-13 20:03:07 +00:00
Bruce Momjian
0ad5d2a3a8 Change Size from unsigned int to size_t. 1998-12-13 03:44:38 +00:00
Thomas G. Lockhart
9470ab03c9 Define routines and catalog entries for string min()/max() functions.
Extend new type coersion techniques to aggregates.
1998-12-08 06:18:34 +00:00
Thomas G. Lockhart
bedd04a551 Implement CASE expression. 1998-12-04 15:34:49 +00:00
Tom Lane
19740e2fff Portability fixes found needed for SunOS 4.1.x:
SunOS has tas(), but not memmove or strerror, and its sprintf() doesn't
return int.  Also, older versions of GNU Make don't like rules with
empty left-hand sides...
1998-11-30 00:30:05 +00:00
Tom Lane
b10a719777 Use autoconf to determine whether system has POSIX signals,
instead of relying on port's os.h to tell us.  (Needed for HPUX
where system major version is not enough info.)
configure unsets USE_TK if X libraries not found.
doc/Makefile uses gzcat or zcat as found by autoconf.
1998-11-29 05:30:25 +00:00
Vadim B. Mikheev
2435c7d501 New HeapTuple structure/interface. 1998-11-27 19:33:35 +00:00
Vadim B. Mikheev
1f00f0dc2e Added indxqualorig to IndexScan: fix for using indices in OR. 1998-11-22 10:45:09 +00:00
Thomas G. Lockhart
643c7beddf Add text<->float8 and text<->float4 conversion functions.
This will fix the problem reported by Jose' Soares
 when trying to cast a float to text.
1998-11-17 14:36:51 +00:00
Bruce Momjian
2e18525dbe s_lock patch from Ryan. 1998-10-31 02:06:08 +00:00
Tom Lane
c6338530f6 oid8neq => oid8ne 1998-10-29 19:03:50 +00:00
Thomas G. Lockhart
9b24e7fa40 Fix discrepency in "@" operator for point and path. 1998-10-29 18:10:23 +00:00
Bruce Momjian
1e7c7343c4 Add oid8neq. 1998-10-29 18:07:09 +00:00
Tom Lane
4038dc0ee2 Fix a veritable boatload of errors in oprcom, oprnegate,
oprlsortop and oprrsortop links.  There's still a bug involving
conflicting definitions for point @ path, but I'm not taking
responsibility for deciding which one is right...
1998-10-29 04:22:52 +00:00
Bruce Momjian
cec42339fc Remove bad pg_operator entry, found by Tom Lane. 1998-10-29 04:04:17 +00:00
Bruce Momjian
1adacc7d1e This looks like a wrong entry in one of the system tables. Any ideas
which one it is, and how to correct this ?

lseg_eq -> lseq_neq

Guido Weber
1998-10-28 16:00:08 +00:00
Bruce Momjian
e3b06a871b s_lock aix patch. 1998-10-28 15:58:34 +00:00
Bruce Momjian
0ebb238035 backslash for portability, from Andreas Zeugswetter 1998-10-27 17:47:51 +00:00
Marc G. Fournier
82a9c9cf38 Missed one more required file... 1998-10-27 04:42:59 +00:00
Bruce Momjian
33c4072dbc INET/CIDR cleanup from D'Arcy. 1998-10-22 20:40:50 +00:00
Bruce Momjian
002657f7ed Add LIMIT syntax for Jan. 1998-10-22 13:52:24 +00:00
Bruce Momjian
ca2995be7b Remove duplicate CIDR funcs by using coerce entries. 1998-10-22 13:51:07 +00:00
Bruce Momjian
9ac0c1e371 CIDR/INET fixes from D'Arcy. 1998-10-22 13:16:27 +00:00
Bruce Momjian
7787d75d78 Fix indexing for INET / CIDR. 1998-10-22 05:29:24 +00:00
Bruce Momjian
3fe6a77f91 Fix for funcs on INET/CIDR. 1998-10-22 04:58:11 +00:00
Bruce Momjian
2ba4ee74aa Fix function calls to INET/CIDR functions. Added cidr_out. 1998-10-22 00:35:28 +00:00
Bruce Momjian
f9ee08499f Cleanup of \df for INET/CIDR. 1998-10-21 21:14:20 +00:00
Bruce Momjian
524f4b2d10 The patch does 2 things:
Fixes  a  bug  in  the rule system that caused a crashing
        backend when a join-view with calculated column  is  used
        in subselect.

        Modifies  EXPLAIN to explain rewritten queries instead of
        the plain SeqScan on a view. Rules can produce very  deep
MORE

Jan.
1998-10-21 16:21:29 +00:00
Bruce Momjian
858a3b570a New CIDR type and fixed INET type, from D'Arcy. 1998-10-21 16:06:50 +00:00
Bruce Momjian
a824add49a Remove unused INET functions for D'Arcy. 1998-10-20 23:03:20 +00:00
Bruce Momjian
8cec4cf91b New QUERY_LIMIT set command. 1998-10-14 05:10:12 +00:00
Marc G. Fournier
4fff1dada7 From: Peter Gucwa <pg@softcomputer.com>
Here are patches needed to complie under AIX 4.2.
I changed configure.in, pqcomm.c, config.h.in, and fe-connect.c.
Also I had to install flex because lex did not want to translate pgc.l.
1998-10-13 20:44:49 +00:00
Bruce Momjian
eb3e640ea2 New INET functions from D'Arcy J.M. Cain 1998-10-12 04:07:53 +00:00
Bruce Momjian
beac8c1c46 Fix for vacuum and cache use. Fix for BSDI 4.0. 1998-10-12 00:53:42 +00:00
Tom Lane
60fee725b8 Do not enable TCL_ARRAYS feature by default, because it
is wrong and dangerous unless you are using contrib/string.  We really
need a thorough look at the issue of making the backend and the FE/BE
protocols completely 8-bit-clean for string data, but that's a task
for some future release.
1998-10-08 23:31:20 +00:00
Bruce Momjian
173c555948 Make functions static or ifdef NOT_USED. Prevent pg_version creation. 1998-10-08 18:30:52 +00:00
Bruce Momjian
deaaf96975 Fix for INET type addition. 1998-10-08 02:08:47 +00:00
Bruce Momjian
8849655d24 I agree. I think, though, that the best argument presented in the
debate was from Paul Vixie, who wanted INET to be the name covering
both IPV4 and IPV6.  The following kit makes the needed changes:

Tom Ivar Helbekkmo
1998-10-08 00:19:47 +00:00
Thomas G. Lockhart
effb32c307 Add a few items to support an integrated build of the ODBC interface. 1998-10-07 06:39:30 +00:00
Tom Lane
c77a29a14e Substantial rewrite of async.c to avoid problems with non-reentrant stdio
and possibly other problems.  Minor changes in xact.c and postgres.c's
main loop to support new handling of async NOTIFY.
1998-10-06 02:40:09 +00:00
Tom Lane
9e23ab9b5c Add configure test to make sure fcntl(SETLK) is available,
and make backend/libpq/pqcomm.c only try to lock the socket file when
the call exists.  Also, change open-RDONLY to open-WRONLY; at least
on my platform, you can't get a write lock on a file you didn't open
for writing.
1998-10-06 02:31:42 +00:00
Tom Lane
280acf0904 hash.h's use of BSHIFT conflicts with <sys/param.h> on my
system.  Finally got tired of looking at the compiler warning messages.
BSHIFT isn't all that useful, so I just took out the macro.
1998-10-04 20:19:08 +00:00
Bruce Momjian
18af384bb7 Unixware patches from Billy G. Allie. 1998-10-04 15:38:58 +00:00
Bruce Momjian
f5a219204b Remove u_int32_t 1998-10-04 15:31:09 +00:00
Bruce Momjian
2d69fd90b9 Integrate new IP type from Tom Ivar Helbekkmo. 1998-10-03 05:41:01 +00:00
Bruce Momjian
f93b6974f9 Here's a combination of all the patches I'm currently waiting
for against a just updated CVS tree. It contains

        Partial new rewrite system that handles subselects,  view
        aggregate  columns, insert into select from view, updates
        with set col = view-value and select rules restriction to
        view definition.

        Updates  for  rule/view  backparsing utility functions to
        handle subselects correct.


        New system views pg_tables and pg_indexes (where you  can
        see the complete index definition in the latter one).

        Enabling array references on query parameters.

        Bugfix for functional index.

        Little changes to system views pg_rules and pg_views.


    The rule system isn't a release-stopper any longer.

    But  another  stopper  is  that  I  don't  know if the latest
    changes to PL/pgSQL (not already in CVS) made it  compile  on
    AIX. Still wait for some response from Dave.

Jan
1998-10-02 16:28:04 +00:00
Bruce Momjian
9b21a18cee the following little patch adds array references to query
parameters. With it applied a function like

    CREATE FUNCTION getname(oid8, int4) RETURNS name AS
        'SELECT typname FROM pg_type WHERE oid = $1[$2]'
        LANGUAGE 'sql';

    is possible. Mainly I need this to enable array references in
    expressions for PL/pgSQL. Complete regression test ran O.K.

Jan
1998-10-02 16:23:07 +00:00
Bruce Momjian
9b7c6ee00b Fixes for Irix from Robert Bruccoleri 1998-10-02 15:38:04 +00:00
Bruce Momjian
731ea8076f Here's the new diff for getting the NS32K assembly code into the
spin-locks.  Notice that it's now inline assembler in s_lock.h,
rather than seperate code in s_lock.c.  It also shrank a little
bit...  Just rip out the S_LOCK() define and insert the tas() inline
function.  Please let me know if there are any problems with it.

Jon Buller
1998-10-02 15:23:08 +00:00
Bruce Momjian
c17b2d1b16 Fix for constbyval. 1998-10-01 22:51:22 +00:00
Tom Lane
d33bbb5b1f Get rid of some long-dead code that thinks NOTIFY is passed to the
planner/optimizer/executor.  It isn't.
Besides, most of the removed code consists of comments about how
it's not right.
1998-10-01 02:04:01 +00:00
Tom Lane
92edd4233e Make HP-PA S_UNLOCK a little faster and less dependent on unspecified compiler codegen details.
Make default S_LOCK macro more robust against syntax mistakes.
(I cleared these changes with David Gould a few days ago.)
1998-10-01 01:53:50 +00:00
Bruce Momjian
f52e7346ea MB patches from Tatsuo Ishii 1998-09-25 01:46:25 +00:00
Bruce Momjian
a3c5a3cb2f Cleanup for oid8[] from Tatsuo Ishii. 1998-09-22 20:28:15 +00:00
Bruce Momjian
25a64f7519 Fix for \z formatting from Tom Lane. 1998-09-21 02:25:29 +00:00
Bruce Momjian
4a9da7e5c4 NS32K lock patch reversed. 1998-09-18 17:18:41 +00:00
Bruce Momjian
33554989c0 Fix for NS32K machine. 1998-09-18 05:36:24 +00:00
Bruce Momjian
0fc8bce760 Fix for \df. 1998-09-18 04:43:20 +00:00
Bruce Momjian
3700981108 Add new make_oidjoin_check utility and template1_check.sql. Fix some
pg_operator problems.
1998-09-14 01:14:49 +00:00
Thomas G. Lockhart
f1bcb171e8 Remove remnant from obsolete char16 data type. 1998-09-13 14:29:06 +00:00
Bruce Momjian
6ee06b0fd3 Irix lock fix from Robert Bruccoleri 1998-09-12 16:07:53 +00:00
Bruce Momjian
4fc3b068ab Remove lld from LONG LONG name 1998-09-11 17:16:11 +00:00
Bruce Momjian
f1ab71ec5f The attached patches fix the following problems:
1.  The UnixWare tas macro was reformatted (by indent or it like?) which caused
    it to break.  The asm macro construct is very particular about the %mem
    construct -- it has to start in column 1.

2.  When compiling libpq++, g++ was used even if configure found the C++ com-
    piler to be CC.

3.  When compiling libpq++, '-Wno-error' was added to CXXFLAGS, even if the
    compiler wasn't g++.

Billy G. Allie
1998-09-11 16:56:24 +00:00
Bruce Momjian
28834b7226 Remove %qd. 1998-09-11 16:43:26 +00:00
Bruce Momjian
a752e322a3 %lld fix. 1998-09-11 14:10:53 +00:00
Bruce Momjian
4da5714ced long long cleanup 1998-09-10 21:10:51 +00:00
Vadim B. Mikheev
36ef34d73c Added attributes for primary/unique/foreign keys... 1998-09-10 15:32:32 +00:00
Bruce Momjian
a7b5abcbc7 %lld not %Ld 1998-09-10 05:36:00 +00:00
Bruce Momjian
c34ed86ea8 Allow long long on BSDI. 1998-09-10 03:27:09 +00:00
Bruce Momjian
6f84e86d69 Fix for macro for AIX. 1998-09-08 15:24:11 +00:00
Bruce Momjian
202751921d Alignment cleanup so no more massive switch statements for alignment,
just two macros.
1998-09-07 05:35:48 +00:00
Bruce Momjian
e15807f410 BTW, in catalog/pg_type.h:
#define Anum_pg_index_indisunique               8

I think this should be 9.

Tatsuo Ishii
1998-09-06 04:49:51 +00:00
Thomas G. Lockhart
6d62e1da9d Use alternate form for long-long-int to be compatible with AIX.
%Ld worked with gcc, but %lld works with both gcc and AIX.
1998-09-05 01:19:38 +00:00
Bruce Momjian
fcecc5ca1e [Part #1: Type: text/plain, Encoding: 7bit, Size: 59]
I will be cleaning this up more before the Oct 1 deadline.

David Hartwig.  AND/OR fix.
1998-09-03 02:34:35 +00:00
Bruce Momjian
d318315200 > Yikes, that is certainly not standard C. I have never seen that
before.
> Looks like a GNU-ism.  I nice one, but still a GNU-ism.

Sorry, I didn't know it is a GNU extension. I have written this patch
which should fix the problem. Let me know if you still have problems.

Massimo Dal Zotto
1998-09-03 02:20:30 +00:00
Bruce Momjian
4b9e21bbc2 cleanup 1998-09-01 06:22:46 +00:00
Bruce Momjian
a89089c1f4 cleanup 1998-09-01 05:34:16 +00:00
Bruce Momjian
fa1a8d6a97 OK, folks, here is the pgindent output. 1998-09-01 04:40:42 +00:00
Bruce Momjian
af74855a60 Renaming cleanup, no pgindent yet. 1998-09-01 03:29:17 +00:00
Bruce Momjian
24a05f5b3e Fix for regproc 1998-08-31 07:55:50 +00:00
Bruce Momjian
9728ce7499 This is the first (of hopefully few) AIX port patches. This patch
was tested with Linux/GCC.  I still have some issues with with the
snprintf() function.

David Hartwig
1998-08-29 04:09:29 +00:00
Bruce Momjian
a060d5bedf Hello!
Here is a new patch for libpq, to make it work on Win32 again (since
the latest modifications broke it a little).

Please also add the file "libpq.rc" to the interfaces/libpq directory.
This will allow version-stamping of the generated DLL file, so that
automatic install programs (and interested users) can determine
the version of the file.  The file is currently set as "prerelease".
Before the release, somebody should change the line "FILEFLAGS
VS_FF_PRERELEASE" to "FILEFLAGS 0".  That information should probably
go into toos\RELEASE_CHANGES.

The patch is against the cvs as of ~ 1998-08-26 14:30 CEST.


//Magnus
1998-08-29 04:05:46 +00:00
Bruce Momjian
50ad4a70b9 Make 'name' type int aligned, like char/varchar. 1998-08-27 05:06:57 +00:00
Bruce Momjian
4166f73997 Fix 'd ' should be 'd'. 1998-08-27 01:04:23 +00:00
Bruce Momjian
823c393b9f Fix problem where attbyval was wrong for xid types. 1998-08-26 17:12:12 +00:00
Bruce Momjian
d394d06d7a Fix atttypmod alignment again, and re-enable ecpg. 1998-08-26 16:43:54 +00:00
Bruce Momjian
e2b0911564 Fix atttypmod to be int32 in system catalogs. Oops. 1998-08-26 05:51:24 +00:00
Bruce Momjian
093beb3560 Make attalign match type alignment. 1998-08-26 05:22:58 +00:00
Marc G. Fournier
96c4212f99 cvs add'd two files for the tprintf() patch... 1998-08-25 21:43:47 +00:00
Marc G. Fournier
f62d1253ef From: Massimo Dal Zotto <dz@cs.unitn.it>
>       these patches define the UNLISTEN sql command. The code already
>       existed but it was unknown to the parser. Now it can be used
>       like the listen command.
>       You must make clean and delete gram.c and parser.h before make.
1998-08-25 21:37:08 +00:00
Marc G. Fournier
53d7d47302 From: Massimo Dal Zotto <dz@cs.unitn.it>
> sinval.patch
>
>       fixes a problem in SI cache which causes table overflow if some
>       backend is idle for a long time while other backends keep adding
>       entries.
>       It uses the new signal handling implemented in tprintf.patch.
>       I have also increacasesed the max number of backends from 32 to 64
>       and the table size from 1000 to 5000.
>       I don't know if anybody is working on SI, but until another
>       solution is found this patch fixes the problem. I have received
>       messages from other people reporting the same problem which I
>       fixed many months ago.
1998-08-25 21:31:20 +00:00
Marc G. Fournier
82555376a1 missed adding a new include file 1998-08-25 21:29:16 +00:00
Marc G. Fournier
8e9d69d6ac From: Massimo Dal Zotto <dz@cs.unitn.it>
> sequence.patch
>
>       adds the missing setval command to sequences. Owner of sequences
>       can now set the last value to any value between min and max
>       without recreating the sequence. This is useful after loading
>       data from external files.
1998-08-25 21:25:46 +00:00
Marc G. Fournier
88b17d9c56 From: Massimo Dal Zotto <dz@cs.unitn.it>
> ps-status.patch
>
>       macros for ps status, used by postgres.c and utility.c.
>       Unfortunately ps status is system dependent and the current
>       code doesn't work on linux. The use of macros confines system
>       dependency to into one file (ps-status.h). Users of other
>       operating systems should check this code and submit new macros.
1998-08-25 21:24:12 +00:00
Marc G. Fournier
7dbcf31be2 From: Massimo Dal Zotto <dz@cs.unitn.it>
lock.patch

        I have rewritten lock.c cleaning up the code and adding better
        assert checking I have also added some fields to the lock and
        xid tags for better support of user locks. There is also a new
        function which returns an array of pids owning a lock.
        I'm using this code from over six months and it works fine.
1998-08-25 21:20:32 +00:00
Marc G. Fournier
1acf0d85fe From: Massimo Dal Zotto <dz@cs.unitn.it>
config.patch

        remove old defines no more used in the code.
1998-08-25 21:17:11 +00:00
Marc G. Fournier
1a5fb65463 From: Massimo Dal Zotto <dz@cs.unitn.it>
assert.patch

        adds a switch to turn on/off the assert checking if enabled at compile
        time. You can now compile postgres with assert checking and disable it
        at runtime in a production environment.
1998-08-25 21:04:41 +00:00
Thomas G. Lockhart
e0e461e1a3 Add is_sequence flag to ColumnDef structure. Used to implement SERIAL type. 1998-08-25 15:09:31 +00:00
Bruce Momjian
0fc13f582a Make sure resdomno for update/insert match attribute number for
rewrite system.  Restructure parse_target to make it easier to
understand.
1998-08-25 03:17:29 +00:00
Bruce Momjian
15cb32d93e This is the final state of the rule system for 6.4 after the
patch is applied:

	Rewrite rules on relation level work fine now.

	Event qualifications on insert/update/delete  rules  work
	fine now.

	I  added  the  new  keyword  OLD to reference the CURRENT
	tuple. CURRENT will be removed in 6.5.

	Update rules can  reference  NEW  and  OLD  in  the  rule
	qualification and the actions.

	Insert/update/delete rules on views can be established to
	let them behave like real tables.

	For  insert/update/delete  rules  multiple  actions   are
	supported  now.   The  actions  can also be surrounded by
	parantheses to make psql  happy.   Multiple  actions  are
	required if update to a view requires updates to multiple
	tables.

	Regular users  are  permitted  to  create/drop  rules  on
	tables     they     have     RULE     permissions     for
	(DefineQueryRewrite() is  now  able  to  get  around  the
	access  restrictions  on  pg_rewrite).  This enables view
	creation for regular users too. This  required  an  extra
	boolean  parameter  to  pg_parse_and_plan() that tells to
	set skipAcl on all rangetable entries  of  the  resulting
	queries.       There      is      a      new     function
	pg_exec_query_acl_override()  that  could  be   used   by
	backend utilities to use this facility.

	All rule actions (not only views) inherit the permissions
	of the event relations  owner.  Sample:  User  A  creates
	tables    T1    and    T2,   creates   rules   that   log
	INSERT/UPDATE/DELETE on T1 in T2 (like in the  regression
	tests  for rules I created) and grants ALL but RULE on T1
	to user B.  User B  can  now  fully  access  T1  and  the
	logging  happens  in  T2.  But user B cannot access T2 at
	all, only the rule actions can. And due to  missing  RULE
	permissions on T1, user B cannot disable logging.

	Rules  on  the  attribute  level are disabled (they don't
	work properly and since regular users are  now  permitted
	to create rules I decided to disable them).

	Rules  on  select  must have exactly one action that is a
	select (so select rules must be a view definition).

	UPDATE NEW/OLD rules  are  disabled  (still  broken,  but
	triggers can do it).

	There are two new system views (pg_rule and pg_view) that
	show the definition of the rules or views so the db admin
	can  see  what  the  users do. They use two new functions
	pg_get_ruledef() and pg_get_viewdef() that are  builtins.

	The functions pg_get_ruledef() and pg_get_viewdef() could
	be used to implement rule and view support in pg_dump.

	PostgreSQL is now the only database system I  know,  that
	has rewrite rules on the query level. All others (where I
	found a  rule  statement  at  all)  use  stored  database
	procedures  or  the  like  (triggers as we call them) for
	active rules (as some call them).

    Future of the rule system:

	The now disabled parts  of  the  rule  system  (attribute
	level,  multiple  actions on select and update new stuff)
	require a complete new rewrite handler from scratch.  The
	old one is too badly wired up.

	After  6.4  I'll  start to work on a new rewrite handler,
	that fully supports the attribute level  rules,  multiple
	actions on select and update new.  This will be available
	for 6.5 so we get full rewrite rule capabilities.

Jan
1998-08-24 01:38:11 +00:00
Bruce Momjian
c0b01461db o note that now pg_database has a new attribuite "encoding" even
if MULTIBYTE is not enabled. So be sure to run initdb.

o these patches are made against the latest source tree (after
Bruce's massive patch, I think) BTW, I noticed that after running
regression, the oid field of pg_type seems disappeared.

	regression=> select oid from pg_type; ERROR:  attribute
	'oid' not found

this happens after the constraints test. This occures with/without
my patches. strange...

o pg_database_mb.h, pg_class_mb.h, pg_attribute_mb.h are no longer
used, and shoud be removed.

o GetDatabaseInfo() in utils/misc/database.c removed (actually in
#ifdef 0). seems nobody uses.

t-ishii@sra.co.jp
1998-08-24 01:14:24 +00:00
Bruce Momjian
07ae591c87 Attached is a patch that uses autoconf to determine whether there
is a working 64-bit-int type available.

In playing around with it on my machine, I found that gcc provides
perfectly fine support for "long long" arithmetic ... but sprintf()
and sscanf(), which are system-supplied, don't work :-(.  So the
autoconf test program does a cursory test on them too.

If we find that a lot of systems are like this, it might be worth
the trouble to implement binary<->ASCII conversion of int64 ourselves
rather than relying on sprintf/sscanf to handle the data type.

			regards, tom lane
1998-08-23 22:25:54 +00:00
Bruce Momjian
a738478ad8 Here are additional patches for the UnixWare 7 port.
Summary of changes:

In pqcomm.h, use the SUN_LEN macro if it is defined to calculate
the size of the sockaddr_un structure.

In unixware.h, drop the use of the UNIXWARE macro.  Everything can
be handled with the USE_UNIVEL_CC and DISABLE_COMPLEX_MACRO macros.

In s_lock.h, remove the reference to the UNIXWARE macro (see above).

In the unixware template, add the YFLAGS:-d line.

In various makefile templates, add (or cleanup) unixware and univel
port specific information.

-- Billy G. Allie
1998-08-22 04:24:41 +00:00
Bruce Momjian
bd5aaca391 Vacuum fix. Was modifying cache. 1998-08-19 19:59:49 +00:00
Bruce Momjian
7971539020 heap_fetch requires buffer pointer, must be released; heap_getnext
no longer returns buffer pointer, can be gotten from scan;
	descriptor; bootstrap can create multi-key indexes;
pg_procname index now is multi-key index; oidint2, oidint4, oidname
are gone (must be removed from regression tests); use System Cache
rather than sequential scan in many places; heap_modifytuple no
longer takes buffer parameter; remove unused buffer parameter in
a few other functions; oid8 is not index-able; remove some use of
single-character variable names; cleanup Buffer variables usage
and scan descriptor looping; cleaned up allocation and freeing of
tuples; 18k lines of diff;
1998-08-19 02:04:17 +00:00
Marc G. Fournier
338c54cbc1 From: Jan Wieck <jwieck@debis.com>
Hi,

    as  proposed here comes the first patch for the query rewrite
    system.

  <for details, see archive dated Mon, 17 Aug 1998>
1998-08-18 00:49:04 +00:00
Thomas G. Lockhart
4b11e394bc Remove single-argument trim() function from table.
Never seen because the parser frontend converts all trim() calls to
 btrim(), ltrim(), and rtime() calls before execution.
1998-08-15 06:47:39 +00:00
Thomas G. Lockhart
94f42ed389 Include OID as a built-in type. 1998-08-14 16:07:00 +00:00
Bruce Momjian
c7fe2543b8 fix typo. 1998-08-11 22:39:33 +00:00
Bruce Momjian
024d5f74ba index strategy cleanup 1998-08-11 19:32:39 +00:00
Bruce Momjian
79c8d2e3a0 Change owner from oid to int4 type. 1998-08-11 18:28:49 +00:00
Bruce Momjian
8ed36c3dba More op_class cleanup. 1998-08-11 14:32:03 +00:00
Bruce Momjian
22cc0e1645 Remove NOBTREE defines, and make findoidlinks handle regproc. 1998-08-11 05:32:46 +00:00
Bruce Momjian
22b370e6ce cleanup. 1998-08-11 05:09:30 +00:00
Bruce Momjian
2d32d909b5 Cleanup optimizer function names and clarify code. 1998-08-10 02:26:40 +00:00
Bruce Momjian
a08dc16c47 New pgindent. 1998-08-09 04:59:10 +00:00
Bruce Momjian
af5fde7491 Make large objects their own relkind type. Fix dups in pg_class_mb
files.  Fix sequence creation hack for relkind type.
1998-08-06 05:13:14 +00:00
Marc G. Fournier
a1627a1d64 From: David Hartwig <daybee@bellatlantic.net>
I have attached a patch to allow GROUP BY and/or ORDER BY function or
expressions.  Note worthy items:

1. The expression or function need not be in the target list.
Example:
            SELECT  name FROM foo GROUP BY lower(name);

2.   Simplified the grammar to use expressions only.

3.  Cleaned up earlier patch in this area to make use of existing
utility functions.

3.  Reduced some of the members in the SortGroupBy parse node.   The
original data members were redundant with the new expression node.
(MUST do a "make clean" now)

4.  Added a new parse node "JoinUsing".   The JOIN USING clause was
overloading this SortGroupBy structure.   With the afore mentioned
reduction of members, the two clauses lost all their commonality.

5.  A bug still exist where, if a function or expression is GROUPed BY,
and an aggregate function does not include a attribute from the
expression or function, the backend crashes.   (or something like
that)   The bug pre-dates this patch.    Example:

    SELECT lower(a) AS lowcase, count(b) FROM foo GROUP BY lowcase;
                 *** BOOM  ***

    --Also when not in target list
    SELECT  count(b) FROM foo GROUP BY lower(a);
                *** BOOM  AGAIN ***
1998-08-05 04:49:19 +00:00
Bruce Momjian
d9be0ff432 MergeSort was sometimes called mergejoin and was confusing. Now
it is now only mergejoin.
1998-08-04 16:44:31 +00:00
Bruce Momjian
439a2af0bc Update mark/reset index code for multiple indexes, (OR code).
Thanks for Vadim for fixes.
1998-08-03 19:41:35 +00:00
Marc G. Fournier
0668aa8817 Adrian Hall reported a problem to me that snprintf() doesn't exist in, at
least, Solaris 2.5.1.  We use it in backend/utils/adt/int8.c.

Add a check to configure so that we see if it exists or not, and, if not,
compile in snprintf.c from backend/port, which was taken from, and falls under
the same Berkeley license as us, the FreeBSD libc/stdio ...
1998-08-01 19:30:29 +00:00
Vadim B. Mikheev
0d78e8c112 Lmgr cleanup, new locking modes for LLL. 1998-08-01 15:26:38 +00:00
Vadim B. Mikheev
f73fc6eb29 Fix scan adjustment. 1998-07-30 05:05:05 +00:00
Vadim B. Mikheev
be8300b18f Use Snapshot in heap access methods. 1998-07-27 19:38:40 +00:00
Marc G. Fournier
f7f989c990 Missed a few files in the last round of commits from Tatsuo, as well
as needed to run autoconf ...
1998-07-27 03:21:58 +00:00
Marc G. Fournier
5979d73841 From: t-ishii@sra.co.jp
As Bruce mentioned, this is due to the conflict among changes we made.
Included patches should fix the problem(I changed all MB to
MULTIBYTE). Please let me know if you have further problem.

P.S. I did not include pathces to configure and gram.c to save the
file size(configure.in and gram.y modified).
1998-07-26 04:31:41 +00:00
Marc G. Fournier
bf00bbb0c4 I really hope that I haven't missed anything in this one...
From: t-ishii@sra.co.jp

Attached are patches to enhance the multi-byte support.  (patches are
against 7/18 snapshot)

* determine encoding at initdb/createdb rather than compile time

Now initdb/createdb has an option to specify the encoding. Also, I
modified the syntax of CREATE DATABASE to accept encoding option. See
README.mb for more details.

For this purpose I have added new column "encoding" to pg_database.
Also pg_attribute and pg_class are changed to catch up the
modification to pg_database.  Actually I haved added pg_database_mb.h,
pg_attribute_mb.h and pg_class_mb.h. These are used only when MB is
enabled. The reason having separate files is I couldn't find a way to
use ifdef or whatever in those files. I have to admit it looks
ugly. No way.

* support for PGCLIENTENCODING when issuing COPY command

commands/copy.c modified.

* support for SQL92 syntax "SET NAMES"

See gram.y.

* support for LATIN2-5
* add UNICODE regression test case
* new test suite for MB

New directory test/mb added.

* clean up source files

Basic idea is to have MB's own subdirectory for easier maintenance.
These are include/mb and backend/utils/mb.
1998-07-24 03:32:46 +00:00
Vadim B. Mikheev
5afe171443 VariableCache (next XID generator) is placed in shmem. 1998-07-21 06:17:39 +00:00
Bruce Momjian
e0058b6172 Theses buffer leaks are caused by indexes that are kept open between
calls. Outside a transaction, the backend detects them as buffer
leaks; it sends a NOTICE, and frees them. This sometimes cause a
segmentation fault (at least on Linux). These indexes are initialized
on the first lo_read/lo_write/lo_tell call, and (normally) closed
on a lo_close call.  Thus the buffer leaks appear when lo direct
access functions are used, and not with lo_import/lo_export functions
(libpq version calls lo_close before ending the command, and the
backend version uses another path).

The included patches (against recent snapshot, and against 6.3.2)
cause indexes to be closed on transaction end (that is on explicit
'END' statment, or on command termination outside trasaction blocks),
thus preventing the buffer leaks while increasing performance inside
transactions. Some (all?) 'classic' memory leaks are also removed.

I hope it will be ok.

--- Pascal ANDRE, graduated from Ecole Centrale Paris andre@via.ecp.fr
1998-07-21 04:17:30 +00:00
Bruce Momjian
7702d7aa4b target list fixes. 1998-07-20 21:18:35 +00:00
Bruce Momjian
1d00134be4 makeTargetEntry cleanup. 1998-07-20 20:48:54 +00:00
Bruce Momjian
3dd2eabc53 Cleanup makeTargetEntry and remove internal.c. 1998-07-20 19:53:53 +00:00
Bruce Momjian
97ac8f7ffc Use defines rather than constants for types. 1998-07-20 19:21:45 +00:00
Bruce Momjian
db48f7a153 Fix problem brought in with 32K machine. 1998-07-20 17:45:49 +00:00
Bruce Momjian
0da6358f37 Cleanup use of 16 that should be NAMEDATALEN. 1998-07-20 16:57:18 +00:00
Bruce Momjian
a292ed243a Lock fix from Tom Ivar Helbekkmo . 1998-07-19 09:44:36 +00:00
Bruce Momjian
460b20a43f 1) Queries using the having clause on base tables should work well
now. Here some tested features, (examples included in the patch):

1.1) Subselects in the having clause 1.2) Double nested subselects
1.3) Subselects used in the where clause and in the having clause
     simultaneously 1.4) Union Selects using having 1.5) Indexes
on the base relations are used correctly 1.6) Unallowed Queries
are prevented (e.g. qualifications in the
     having clause that belong to the where clause) 1.7) Insert
into as select

2) Queries using the having clause on view relations also work
   but there are some restrictions:

2.1) Create View as Select ... Having ...; using base tables in
the select 2.1.1) The Query rewrite system:

2.1.2) Why are only simple queries allowed against a view from 2.1)
? 2.2) Select ... from testview1, testview2, ... having...; 3) Bug
in ExecMergeJoin ??


Regards Stefan
1998-07-19 05:49:26 +00:00
Bruce Momjian
0624f3dcbd My mailer munged the intro text in my last post. Here is the text
in a more readable form.  -- I am submitting the following patches
to the June 6, 1998 snapshot of PostgreSQL.  These patches implement
a port of PostgreSQL to SCO UnixWare 7, and updates the Univel port
(UnixWare 2.x).  The patched files, and the reason
 for the patch are:

File            Reason for the patch ---------------
---------------------------------------------------------------
src/backend/port/dynloader/unixware.c src/backend/port/dynloader/unixware.h
src/include/port/unixware.h src/makefiles/Makefile.unixware
src/template/unixware
		Created for the UNIXWARE port.

src/include/port/univel.h
		Modifed this file to work with the changes made to
		s_lock.[ch].

src/backend/storage/buffer/s_lock.c src/include/storage/s_lock.h
		Moved the UNIXWARE (and Univel) tas() function from
		s_lock.c to s_lock.h.  The UnixWare compiler asm
		construct is treated as a macro and needs to be in
		the s_lock.h file.  I also reworked the tas()
		function to correct some errors in the code.

src/include/version.h.in
		The use of the ## operator with quoted strings in
		the VERSION macro caused problems with the UnixWare
		C compiler.  I removed the ## operators since they
		were not needed in this case.  The macro expands
		into a sequence of quoted strings that will be
		concatenated by any ANSI C compiler.

src/config.guess
		This script was modified to recognize SCO UnixWare
		7.

src/configure src/configure.in
		The configure script was modified to recognize SCO
		UnixWare 7.

Billy G. Allie
1998-07-19 04:17:13 +00:00
Bruce Momjian
62cd6e7b75 Somewhere between 6.1 and 6.3 someone removed the support for the
NS32K machine I contributed.  In any case, I now have postgresql-6.3
running again on NetBSD/pc532, a NS32532 machine.  The following
changes are needed relative to the src directory.  (It looks like
support was partially removed when the files were moved from the
src/backend/storage/.... tree to the src/include tree.)

If you need me to get a current development version of postgresql
for this change let me know.  Also, let me know if this code needs
updating due to another code movement that deleted the old NS32K
support.

Thank you.

Phil Nelson
1998-07-19 01:19:54 +00:00
Bruce Momjian
8ae23e1305 Add DISABLE_COMPLEX_MACRO to sco. 1998-07-19 01:11:01 +00:00
Bruce Momjian
7b2b779a2a Add auto-size to screen to \d? commands. Use UNION to show all
\d? results in one query. Add \d? field search feature.  Rename MB
to MULTIBYTE.
1998-07-18 18:34:34 +00:00
Bruce Momjian
550f209797 Move common lock code to their own section. 1998-07-18 14:58:58 +00:00
Bruce Momjian
a93f397423 On architectures where we don't have any special inline code for
GCC, the inner "#if defined(__GNUC__)" can just be omitted in that
architecture's block.

The existing arrangement with an outer "#if defined(__GNUC__)"
doesn't have any obvious benefit, and it encourages missed cases
like this one.


BTW, I'd suggest making the definition of clear_lock for HPUX be

static const slock_t clear_lock = {{-1, -1, -1, -1}};

The extra braces are needed to suppress warnings from gcc, and
declaring it const just seems like good practice.

			regards, tom lane
1998-07-18 14:51:10 +00:00
Bruce Momjian
b47466482f Thank you for testing and reporting this. It is my fault of course,
but as I don't have access to a sparc for testing I just did what
I could. I am guessing here, but please apply the following to your
pgsql and let me know what happens. Also, cd to src/storage/buffer
and do 'make s_lock_test' as well.

David Gould
1998-07-18 14:38:12 +00:00
Bruce Momjian
584f9438ca Rename Rel to RelOptInfo. 1998-07-18 04:22:52 +00:00
Bruce Momjian
4f807be2ad Patch for ReScan of Group. 1998-07-16 01:49:19 +00:00
Bruce Momjian
c1f1a2e03a Allow UNION/UNION ALL in subselects. 1998-07-15 22:16:21 +00:00
Bruce Momjian
9e964f90fb Fix explain for union and inheritance. Rename Append structure
members to be clearer.  Fix cost computation for these.
1998-07-15 14:54:39 +00:00
Bruce Momjian
5aea4062d6 Inline function, rename libpq variablees, change lrel to lockrel. 1998-07-13 16:35:04 +00:00
Bruce Momjian
683f399391 Change atttypmod from int16 to int32, for Thomas. 1998-07-12 21:29:40 +00:00
Marc G. Fournier
a0659e3e2c From: Tom Lane <tgl@sss.pgh.pa.us>
Making PQrequestCancel safe to call in a signal handler turned out to be
much easier than I feared.  So here are the diffs.

Some notes:
  * I modified the postmaster's packet "iodone" callback interface to allow
    the callback routine to return a continue-or-drop-connection return
    code; this was necessary to allow the connection to be closed after
    receiving a Cancel, rather than proceeding to launch a new backend...
    Being a neatnik, I also made the iodone proc have a typechecked
    parameter list.
  * I deleted all code I could find that had to do with OOB.
  * I made some edits to ensure that all signals mentioned in the code
    are referred to symbolically not by numbers ("SIGUSR2" not "2").
    I think Bruce may have already done at least some of the same edits;
    I hope that merging these patches is not too painful.
1998-07-09 03:29:11 +00:00
Thomas G. Lockhart
33dd5c444f Include int8 as a built-in data type.
Merge "resjunk" handling with automatic type conversion
 when selecting from another column.
1998-07-08 14:18:45 +00:00
Thomas G. Lockhart
bad339827e Add int8 8-byte integer type. 1998-07-08 14:10:30 +00:00
Thomas G. Lockhart
0f0d51b858 Add int8 type for 8-byte integers.
Fix OID conflict between "line()" and "version()" by changing version OID.
1998-07-08 14:09:00 +00:00
Bruce Momjian
f8a4746208 Patches HPUX applied for Tom Lane. 1998-07-06 20:28:09 +00:00
Bruce Momjian
c765b4b052 Hello!
Through some minor changes, I have been able to compile the libpq
client libraries on the Win32 platform. Since the libpq communications
part has been rewritten, this has become much easier. Enclosed is
a patch that will allow at least Microsoft Visual C++ to compile
libpq into both a static and a dynamic library.  I will take a look
at porting the psql frontend as well, but I figured it was a good
idea to send in these patches first - so no major changes are done
to the files before it gets applied (if it does).

Regards,
  Magnus Hagander
1998-07-03 04:24:16 +00:00
Bruce Momjian
2584029e31 Rename locking structure names to be clearer. Add narrative to
backend flowchart.
1998-06-30 02:33:34 +00:00
Bruce Momjian
f21fa6a773 Rename lockt to locktype and rename LOCKT to LOCKTYPE. 1998-06-28 21:17:36 +00:00
Bruce Momjian
54aabaa800 Rename BindingTable to ShmemIndex. 1998-06-27 15:47:48 +00:00
Bruce Momjian
48a94aaf51 Rename proc_exit_clear to on_exit_reset. 1998-06-27 13:24:21 +00:00
Bruce Momjian
e747c58718 Fix for hang after postmaster restart. Add new proc_exit and
shmem_exit to replace exitpg().
1998-06-27 04:53:49 +00:00
Bruce Momjian
8fa93b016a Rename Lockm to Locks. 1998-06-26 19:57:50 +00:00
Bruce Momjian
ae6a658584 Rename LockTab to LockTable in function name. 1998-06-26 01:58:46 +00:00
Bruce Momjian
eef15f555b Rename BindingTab to BindingTable. 1998-06-25 14:24:35 +00:00
Bruce Momjian
cba0c6559a rename MAIN_MEMORY to STABLE_MEMORY_STORAGE 1998-06-23 15:35:48 +00:00
Bruce Momjian
9eb0afd0ad Fixup for asserts. 1998-06-20 04:34:31 +00:00
Bruce Momjian
8ed5918faa Solaris cleanup. 1998-06-19 02:55:19 +00:00
Bruce Momjian
232dea3188 cleanup 1998-06-17 22:59:26 +00:00
Bruce Momjian
cb7cbc16fa Hi, here are the patches to enhance existing MB handling. This time
I have implemented a framework of encoding translation between the
backend and the frontend. Also I have added a new variable setting
command:

SET CLIENT_ENCODING TO 'encoding';

Other features include:
	Latin1 support more 8 bit cleaness

See doc/README.mb for more details. Note that the pacthes are
against May 30 snapshot.

Tatsuo Ishii
1998-06-16 07:29:54 +00:00
Bruce Momjian
0d8e7f6381 Here is the long awaited optimized version of the S_LOCK patch.
This incorporates all the precedeing patches and emailed suggestions
and the results of the performance testing I posted last week. I
would like to get this tested on as many platforms as possible so
I can verify it went in correctly (as opposed to the horrorshow
last time I sent in a patch).

Once this is confirmed, I will make a tarball of files that can be
dropped into a 6.3.2 source tree as a few people have asked for
this in 6.3.2 as well.

David Gould
1998-06-16 07:18:16 +00:00
Bruce Momjian
8d8bcda253 Hello!
Attached to the mail is locale-patch.tar.gz. In the archive
   there are:

file README.locale
   short description

directory src/test/locale
   test suite; currently only koi8-r tests, but the suite can be
   easily extended

file locale.patch
   the very patch; to apply: patch < locale.patch; should be applied
   to postgres-6.3.2 (at least I created it with 6.3.2 without any
additional
   patches)

   Files touched by the patch:  src/include/utils/builtins.h
src/backend/utils/adt/char.c src/backend/utils/adt/varchar.c
src/backend/utils/adt/varlena.c

Oleg
1998-06-16 06:42:02 +00:00
Bruce Momjian
27db9ecd0b Fix macros that were not properly surrounded by parens or braces. 1998-06-15 18:40:05 +00:00
Bruce Momjian
b52c666a99 Make new DISABLE_COMPLEX_MACRO for compilers that can't handle our
macros.
1998-06-14 01:34:07 +00:00
Bruce Momjian
bedfe275cc Make lo_unlink take oid param, not int4. 1998-06-13 20:27:10 +00:00
Bruce Momjian
3f372ee6b3 > I needed to do that for the web database that I'm setting up. We
have > 20000 users and each (potentially) needs a separate database
which is > only accessible to them. Rather than having 20000 lines
in pg_hba.conf, > I've patched Postgres so that the special token
"sameuser" in the > database field of pg_hba.conf allows access
only to the username which > is connecting.
1998-06-13 04:27:18 +00:00
Bruce Momjian
be1d4719b4 Now 6.4. 1998-06-09 22:59:04 +00:00
Bruce Momjian
a608637768 Another for for exec() removal and finding binaries. 1998-06-09 17:13:06 +00:00
Bruce Momjian
3912b75705 Fixed exec path problem. 1998-06-08 22:28:30 +00:00
Bruce Momjian
2e6159311a I made several adjustments to my earlier patch to handle the
condition where the target label is ambiguous.
1998-06-05 03:49:20 +00:00
Bruce Momjian
a576a60e3f Show backend status on ps command line. Remove unused args from
pg_exec_query().
1998-06-04 17:26:49 +00:00
Thomas G. Lockhart
345b0f6b99 Rewrite JROUND macro to multiply by 1e6 rather than divide by 1e-6
and vica versa for the next operation.
This is reputed to fix inline math optimization troubles in glibc-2.0.x.
Regression tests still pass on libc/i686 machine.  Patch suggested by Matt.
1998-05-31 17:08:35 +00:00
Bruce Momjian
212c905e2c Remove fork()/exec() and only do fork(). Small cleanups. 1998-05-29 17:00:34 +00:00
Thomas G. Lockhart
2d4c6cab96 Define new routines oper_exact() and oper_inexact().
Add coerce_target_expr().
1998-05-29 14:07:50 +00:00
Thomas G. Lockhart
d2404c17c9 Add func_select_candidate() to allow use in unary operator parsing. 1998-05-29 14:03:08 +00:00
Thomas G. Lockhart
3671cb3a32 Add NAMEOID as built-in type.
Change ordering of IS_BUILTIN_TYPE() macro to optimize lookup.
Make CASH type _not_ equivalent to INT4.
 CASH is passed by reference rather than passed by value.
1998-05-29 14:02:28 +00:00
Thomas G. Lockhart
3984f0eeb2 Add conversion functions between "name" and other string types. 1998-05-29 13:37:29 +00:00
Marc G. Fournier
9f3d63936b From: David Hartwig <daveh@insightdist.com>
Here is a patch to remove the requirement that ORDER/GROUP BY clause
identifiers be included in the target list.
1998-05-21 03:53:51 +00:00
Bruce Momjian
07140ee024 Allow cancel from client of backend query. Change some int variables
to bool's.
1998-05-19 18:05:58 +00:00
Marc G. Fournier
9391dd3698 Add a check for DBL_MIN problem...not sure if this is right...needs
testing...
1998-05-13 03:44:48 +00:00
Bruce Momjian
68f9c9819b Remove added NullProc define, and use fmgr.h value from fmgr.h. 1998-05-13 03:44:24 +00:00
Bruce Momjian
982c695fbd The attached patch corrects two problems with autoconfiguration of
psql in Postgres 6.3.2.  Both of these problems were complained of
recently in pgsql-questions:

1. In the right circumstances, psql.c will fail to compile due to
trying
   to include a nonexistent <history.h>.  (Thread "Compile-time
   error" around 17 Apr 98.) 2. In other circumstances, psql will
compile but does not provide
   command history capability, even though the underlying readline
   library supports it.  (Various threads, most recently "query
   repetition in psql" around 29 Apr.)

Tom Lane
1998-05-12 23:05:12 +00:00
Bruce Momjian
1b70585d4b Someone remove a #define too much from pg_proc.h which breaks
compiling nbtsearch.c after configuring with --enable-cassert.
Patch below.

-- --------------------------------------------- Göran Thyni,
sysadm, JMS Bildbasen, Kiruna
1998-05-12 17:46:50 +00:00
Thomas G. Lockhart
3ace5fd082 Add capabilities for automatic type conversion. 1998-05-09 23:31:34 +00:00
Thomas G. Lockhart
dc9a9cdfb9 Make lines and support routines/operators more visible.
Add #define's for remaining "builtin" types.
1998-05-09 22:48:37 +00:00
Thomas G. Lockhart
cb03826201 Add routines to convert between varchar and bpchar.
Add routines to allow sizing of varchar and bpchar into target columns.
1998-05-09 22:45:14 +00:00
Thomas G. Lockhart
9afe03355a Make lines more visible to the user. 1998-05-09 22:44:38 +00:00
Thomas G. Lockhart
14257ee2c6 Add bit flags to support timezonehour and minute in data retrieval. 1998-05-09 22:43:50 +00:00
Bruce Momjian
edbd51395c What I've done:
1. Rewritten libpq to allow asynchronous clients.

2. Implemented client side of cancel protocol in library,
   and patched psql.c to send a cancel request upon SIGINT.  The
   backend doesn't notice it yet :-(

3. Implemented 'Z' protocol message addition and renaming of
   copy in/out start messages.  These are implemented conditionally,
   ie, the client protocol version is checked; so the code should
   still work with 1.0 clients.

4. Revised protocol and libpq sgml documents (don't have an SGML
   compiler, though, so there may be some markup glitches here).


What remains to be done:

1. Implement addition of atttypmod field to RowDescriptor messages.
   The client-side code is there but ifdef'd out.  I have no idea
   what to change on the backend side.  The field should be sent
   only if protocol >= 2.0, of course.

2. Implement backend response to cancel requests received as OOB
   messages.  (This prolly need not be conditional on protocol
   version; just do it if you get SIGURG.)

3. Update libpq.3.  (I'm hoping this can be generated mechanically
   from libpq.sgml... if not, will do it by hand.)  Is there any
   other doco to fix?

4. Update non-libpq interfaces as necessary.  I patched libpgtcl
   so that it would compile, but haven't tested it.  Dunno what
   needs to be done with the other interfaces.

Have at it!

Tom Lane
1998-05-06 23:51:16 +00:00
Bruce Momjian
2e12331d42 Remove extra paren in __alpha so it compiles. 1998-05-06 23:25:19 +00:00
Marc G. Fournier
f9322c66d3 Missed the __alpha__ to __alpha change...
From: David Gould <dg@illustra.com>
1998-05-04 23:49:17 +00:00
Marc G. Fournier
c73e186948 Okay...this should fix the s_lock() patches from David to what he
currently has...

From: David Gould <dg@illustra.com>
1998-05-04 16:58:59 +00:00
Marc G. Fournier
1d36bdcfa6 Major screwed up s_lock patches...need to be fixed... 1998-05-04 15:45:03 +00:00
Bruce Momjian
29c20d498d Fix for missing parens with \g causing psql to get completely
confused.
1998-05-04 02:02:09 +00:00
Marc G. Fournier
51a1741cfb From: Jeroen van Vianen <jeroenv@design.nl>
Attached patch will add a version() function to Postges, e.g.

template1=> select version();
version
------------------------------------------------------------
PostgreSQL 6.3.2 on i586-pc-linux-gnu, compiled by gcc 2.8.1
(1 row)
1998-04-29 12:41:29 +00:00
Marc G. Fournier
f554af0a9f From: t-ishii@sra.co.jp
Hi, here are patches I promised (against 6.3.2):

* character_length(), position(), substring() are now aware of
          multi-byte characters
* add octet_length()
* add --with-mb option to configure
* new regression tests for EUC_KR
  (contributed by "Soonmyung. Hong" <hong@lunaris.hanmesoft.co.kr>)
* add some test cases to the EUC_JP regression test
* fix problem in regress/regress.sh in case of System V
* fix toupper(), tolower() to handle 8bit chars

note that:

o  patches for both configure.in and configure are
included. maybe the one for configure is not necessary.

o pg_proc.h was modified to add octet_length(). I used OIDs
(1374-1379) for that. Please let me know if these numbers are not
appropriate.
1998-04-27 17:10:50 +00:00
Marc G. Fournier
1af6b56427 From: Ryan Kirkpatrick <rkirkpat@nag.cs.colorado.edu>
Ok, I have finally gotten all of the defines for Dec/Alpha and
Linux/Alpha sorted out as Marc asked. There is no longer any need for
'-Dalpha' or '-Dlinuxalpha' in either the Dec/Alpha or the Linux/Alpha
template files (./src/template/{alpha,linuxalpha}). I have replaced every
instance of 'alpha' or '__alpha__' with '__alpha', as that appears to be
the common symbol between C compilers on both operating systems (RH4.2 &
DecUnix 4.0b) for alpha.
1998-04-27 14:46:51 +00:00
Bruce Momjian
09baa3cc81 This patch...
1. Removes the unnecessary "#define AbcRegProcedure 123"'s from
pg_proc.h.

2. Changes those #defines to use the names already defined in
fmgr.h.

3. Forces the make of fmgr.h in backend/Makefile instead of having
it
   made as a dependency in access/common/Makefile  *hack*hack*hack*

4. Rearranged the #includes to a less helter-skelter arrangement,
also
    changing <file.h> to "file.h" to signify a non-system header.

5. Removed "pg_proc.h" from files where its only purpose was for
the
   #defines removed in item #1.

6. Added "fmgr.h" to each file changed for completeness sake.

Turns out that #6 was not necessary for some files because fmgr.h
was being included in a roundabout way SIX levels deep by the first
include.

"access/genam.h"
 ->"access/relscan.h"
   ->"utils/rel.h"
     ->"access/strat.h"
       ->"access/skey.h"
	 ->"fmgr.h"

So adding fmgr.h really didn't add anything to the compile, hopefully
just made it clearer to the programmer.

S Darren.
1998-04-27 04:08:07 +00:00
Bruce Momjian
306f89232a Fixed table type lengths for Maurice. 1998-04-27 03:19:10 +00:00
Bruce Momjian
0d203b745d Re-apply Darren's char2-16 removal code. 1998-04-26 04:12:15 +00:00
Bruce Momjian
4cbfeef912 Inline some small functions called for every row. 1998-04-24 14:43:33 +00:00
Bruce Momjian
5529b783a8 Move HAVING function to proper file. 1998-04-15 15:29:57 +00:00
Bruce Momjian
0435ecf5d5 What was LINUX_ELF doing in there? 1998-04-13 16:34:48 +00:00
Marc G. Fournier
07e3fb08be More work in the right direction on linux/alpha
From: Ryan Kirkpatrick <rkirkpat@nag.cs.colorado.edu>
1998-04-12 02:58:22 +00:00
Thomas G. Lockhart
43cfa1a0ce Fix incorrect second argument type for dpow() declaration. 1998-04-08 06:40:09 +00:00
Bruce Momjian
db21523314 Back out char2-char16 removal. Add later. 1998-04-07 18:14:38 +00:00
Bruce Momjian
1125bbf871 Assert fix 1998-04-06 17:52:35 +00:00
Bruce Momjian
2ffd727531 ASSERT fixes. 1998-04-06 17:27:54 +00:00
Bruce Momjian
fdb37f073b this patch solve 2 problemes :
probleme number 1 :

- configure can find the library readline , but don't
  find the header file . so in this case we don't use lib readline
  .

probleme number 2 :

- when you have postgres 6.2.1 and readline installed
  with the same prefix( and generally all your software ) .  you
  can compile the version 6.3 .  I use this prefix , when configure
  ask me for "Additional directories to search for include files"
  .

  ( because there a conflict in the header when you
    compile psql.c ) In this case, you must permut the sequence of
  directive -I .

Erwan MAS
1998-04-05 21:29:49 +00:00
Bruce Momjian
4b6fcc4459 Remove GetDatabaseName/Path and use globals. Make consts later. 1998-04-05 21:04:50 +00:00
Bruce Momjian
03a7cd1788 Fix for memory leak. 1998-04-05 05:52:10 +00:00
Bruce Momjian
9fbdda039d Fix macro read violation for Maurice. 1998-03-31 15:53:51 +00:00
Marc G. Fournier
92c6bf9775 Pointed out by: Doug Winterburn <dlw@seavme.xroads.com>
2) Add "#define gettimeofday(a,b) gettimeofday(a) to src/include/config.h
        On the 88k SVR4, gettimeofday only has one argument.  This is
        checked for in a few other packages by configure, so there should
        be some examples of the configure test out there.
1998-03-31 02:59:07 +00:00
Bruce Momjian
57b5966405 The following uuencoded, gzip'd file will ...
1. Remove the char2, char4, char8 and char16 types from postgresql
2. Change references of char16 to name in the regression tests.
3. Rename the char16.sql regression test to name.sql.  4. Modify
the regression test scripts and outputs to match up.

Might require new regression.{SYSTEM} files...

Darren King
1998-03-30 17:28:21 +00:00
Bruce Momjian
5920345068 Sorry. I made above mistakes. "__svr4" should be "__svr4__" or
"__SVR4" as you pointed out.  There is another file that has the
same mistakes.  Included is a patche for include/c.h.

t-ishii@sra.co.jp
1998-03-20 04:17:34 +00:00
Bruce Momjian
6df719184c Fix spelling of "including
Edward J. Huff
1998-03-20 04:12:25 +00:00
Marc G. Fournier
661ecf3c48 From: t-ishii@sra.co.jp
Included are patches intended for allowing PostgreSQL to handle
multi-byte charachter sets such as EUC(Extende Unix Code), Unicode and
Mule internal code. With the MB patch you can use multi-byte character
sets in regexp and LIKE. The encoding system chosen is determined at
the compile time.

To enable the MB extension, you need to define a variable "MB" in
Makefile.global or in Makefile.custom. For further information please
take a look at README.mb under doc directory.

(Note that unlike "jp patch" I do not use modified GNU regexp any
more. I changed Henry Spencer's regexp coming with PostgreSQL.)
1998-03-15 07:39:04 +00:00
Bruce Momjian
8ecc01cf8a Fix bad oid in table. 1998-03-07 04:49:57 +00:00
Bruce Momjian
a8de40df53 Get rid of those pesky long constants, 'l'. Has no affect. 1998-03-04 18:41:08 +00:00
Marc G. Fournier
9bc57c6665 From: Darren King <darrenk@insightdist.com>
Patch1:

Postgres thinks dist_pl (dist of a point to a line) is expecting a box (603)
for the right arg, but it really should be a line (628).

Otherwise the left & right args match those of dist_pb (dist of a point to a
box) two lines further down.


Patch2:

Anyways, these two functions take a path (602) whereas in pg_proc.h they are
listed as taking a lseg (601).
1998-03-02 06:12:15 +00:00
Marc G. Fournier
6a9627e792 Last minute clean up for SunOS...
From: t-ishii@sra.co.jp
1998-03-02 05:42:15 +00:00
Thomas G. Lockhart
9ed7a21ba6 Fix boolean operator declarations for path to return boolean, not float8. 1998-03-01 08:10:34 +00:00
Marc G. Fournier
56b3182241 From: "Billy G. Allie" <Bill.Allie@mug.org>
The following patches will allow postgreSQL 6.3 to compile and run on a
UNIXWARE 2.1.2 system with the native C compiler with the following library
change:

        The alloca function must be copied from the libucb.a archive and added
        to the libgen.a archive.

Also, the GNU flex program is needed to successfully build postgreSQL.
1998-03-01 04:47:38 +00:00
Vadim B. Mikheev
9986d9a404 ExecReScan for MergeJoin. 1998-02-27 16:12:09 +00:00
Vadim B. Mikheev
8d78d16485 index_markpos()/index_restrpos() are in use now. 1998-02-26 12:14:54 +00:00
Bruce Momjian
a32450a585 pgindent run before 6.3 release, with Thomas' requested changes. 1998-02-26 04:46:47 +00:00
Marc G. Fournier
b5b3735f22 pg_user.h is obseleted in favor of pg_shadow.h 1998-02-25 14:54:44 +00:00
Marc G. Fournier
780068f812 From: Jan Wieck <jwieck@debis.com>
seems  that  my last post didn't make it through. That's good
    since  the  diff  itself  didn't  covered  the  renaming   of
    pg_user.h to pg_shadow.h and it's new content.

    Here  it's  again.  The  complete regression test passwd with
    only some  float  diffs.  createuser  and  destroyuser  work.
    pg_shadow cannot be read by ordinary user.
1998-02-25 13:09:49 +00:00
Marc G. Fournier
0227a4e114 From: "Denis V. Dmitrienko" <denis@null.net>
What it does:
It solves stupid problem with cyrillic charsets IP-based on-fly recoding.
take a look at /data/charset.conf for details.
You can use any tables for any charset.
Tables are from Russian Apache project.
Tables in this patch contains also Ukrainian characters.

Then run ./configure --enable-recode
1998-02-24 15:27:04 +00:00
Marc G. Fournier
96316211c3 From: t-ishii@sra.co.jp
Ok. I have decided to use:

#if defined(sun) && if defined(sparc) && !defined(__svr4)

instead of defined(sunos4).  interfaces/libpq/libpq-fe.h and
include/c.h have been modified(see included patches).

Another porblems I have found are:

o SunOS lacks strtoul(). to fix this I stole strtoul.c from FreeBSD
and place it under backend/port. necessary modifications have been
also made to backend/port/Makefile.in, include/config.h.in and
configure.in (see included patches).
1998-02-24 06:04:55 +00:00
Marc G. Fournier
712e77e3df Various fixes for string.h vs strings.h
From: Frank Ridderbusch <ridderbusch.pad@sni.de>
1998-02-24 04:02:20 +00:00
Marc G. Fournier
5cf1964fc6 From: Jan Wieck <jwieck@debis.com>
So   if   the   relname   is   given   to   acldefault()   in
    utils/adt/acl.c, it can do a IsSystemRelationName() on it and
    return ACL_RD instead of ACL_WORLD_DEFAULT.
1998-02-24 03:31:50 +00:00
Marc G. Fournier
7549bb66c2 Add an '#include <sys/types.h>' for the netinet/in.h section 1998-02-24 03:12:55 +00:00
Marc G. Fournier
0b4620b575 Quick cleanups 1998-02-23 18:43:13 +00:00
Marc G. Fournier
6c7c6d0c05 From: Jan Wieck <jwieck@debis.com>
The diff looks so simple and easy. But to find it wasn't fun.

    It must have been there for a long time. What happened:

    When a tuple in one of some central catalogs was updated, the
    referenced  relation  got flushed, so it would be reopened on
    the next access (to reflect new  triggers,  rules  and  table
    structure changes into the relation cache).

    Some  data  (the  tupleDescriptor e.g.) is used in the system
    cache too. So when a relation is subject to the system cache,
    this  must know too that a cached system relation got flushed
    because the tupleDesc data gets freed during the flush!

    For the GRANT/REVOKE on pg_class it was  slightly  different.
    There  is some local data in inval.c that gets initialized on
    the first invalidation of a tuple in some  central  catalogs.
    This  needs a SysCache lookup in pg_class. But when the first
    of all commands is a GRANT on pg_class,  exactly  the  needed
    tuple is the one actually invalidated. So I added little code
    snippets that the initialization of the  local  variables  in
    inval.c will already happen during InitPostgres().
1998-02-23 17:44:24 +00:00
Vadim B. Mikheev
f0e7e2faa4 ExecReScan for Unique & Sort nodes. 1998-02-23 06:28:16 +00:00
Bruce Momjian
856da1e65a Constlen can be -1, so make it a signed type. 1998-02-21 16:58:49 +00:00
Marc G. Fournier
7b30490bc9 First step done,
below  is  the patch to have views to override the permission
    checks for the accessed tables. Now we can do the following:

    CREATE VIEW db_user AS SELECT
         usename,
         usesysid,
         usecreatedb,
         usetrace,
         usecatupd,
         '**********'::text as passwd,
         valuntil
        FROM pg_user;

    REVOKE ALL ON pg_user FROM public;
    REVOKE ALL ON db_user FROM public;
    GRANT SELECT ON db_user TO public;
1998-02-21 06:32:15 +00:00
Marc G. Fournier
b76e437465 *** empty log message *** 1998-02-20 13:10:03 +00:00
Bruce Momjian
df67b83a7a Password fix. Now people have to do the REVOKE themselves. 1998-02-19 17:20:01 +00:00
Vadim B. Mikheev
9d557f83d4 GroupState changed. 1998-02-18 12:41:36 +00:00
Marc G. Fournier
922ea913b1 Check for and include <getopt.h> 1998-02-18 01:26:02 +00:00
Marc G. Fournier
527f8babc7 From: Brian E Gallew <geek+@cmu.edu>
dgux 5.4R4.11

Missing port-protos.h (not needed, I think).  Wants dld.h.  Should
really use the system dl stuff (like i386_solaris).  Needs to include
<netinet/in.h> before <arpa/inet.h>.  Here are some patches...
1998-02-14 19:56:21 +00:00
Bruce Momjian
edd3668895 Atttypmod cleanup. 1998-02-13 19:46:22 +00:00
Marc G. Fournier
2a07e65dcd From: Zeugswetter Andreas SARZ <Andreas.Zeugswetter@telecom.at>
Only occurrs in
src/include/storage/s_lock.h:#if defined(__AIX)
src/include/utils/dt.h:#if defined(__AIX)
src/include/utils/nabstime.h:#if defined(__AIX)

Simply delete one underscore, only occurs once per file, so no patch.
1998-02-13 17:12:08 +00:00
Marc G. Fournier
64e7adb07b From: Tom I Helbekkmo <tih@Hamartun.Priv.NO>
Apart from this Makefile hack, all I've done is to make dynamically
loaded code modules fail properly (as was already done for __mips__,
although I think this is too loose: I believe NetBSD for the pmax can
do dynamic linking), and to add test-and-set lock handling.  As Bruce
suggested, this is done in a maximally efficient inlined way: I was
not aware that this code was so important, speed-wise.
1998-02-13 05:10:06 +00:00
Vadim B. Mikheev
5d7923dd1c Subselects... 1998-02-13 03:46:56 +00:00
Vadim B. Mikheev
6fcf2d7cb3 New SubPlan node for subselects.
New PARAM_EXEC type.
1998-02-13 03:45:29 +00:00
Bruce Momjian
1e7fed7fd9 MemSet cleanup. 1998-02-12 01:50:01 +00:00
Bruce Momjian
1e3c5b0ab5 Memset cleanup 1998-02-11 21:45:40 +00:00
Bruce Momjian
e166409033 Change to MemSet for Alpha. 1998-02-11 21:38:08 +00:00
Bruce Momjian
182c2057f2 Change int align. 1998-02-11 21:17:44 +00:00
Bruce Momjian
0386a50f31 Pass around typmod as int16. 1998-02-10 16:04:38 +00:00
Bruce Momjian
2c482cdbf2 Pass attypmod through to executor by adding to Var and Resdom. 1998-02-10 04:02:59 +00:00
Bruce Momjian
65faaf3046 atttypmod now -1. 1998-02-07 06:11:56 +00:00
Bruce Momjian
ec9d5d71ec Update now that attcacheoff initial value is -1 always. 1998-02-06 20:18:01 +00:00
Bruce Momjian
5e6de5d961 FIx for atttypmod on system tables. 1998-02-05 19:50:55 +00:00
Marc G. Fournier
7b6cbd53f7 func_error() changed so that if caller is passed with NULL value, its
output at least doesn't appear that its missing something.

wasn't particularly confident with removing 'caller' altogether :(
1998-02-05 04:08:44 +00:00
Marc G. Fournier
48ad446c04 Fix up this so that it also doesn't use a caller variable... 1998-02-05 03:40:10 +00:00
Marc G. Fournier
d85a5420f7 Port specific, compiler specfied for SGI/Irix5
From: Andrew Martin <martin@biochemistry.ucl.ac.uk>
1998-02-05 03:31:01 +00:00
Bruce Momjian
1637684af4 Cleanup getattr code. Make CHAR() use attcacheoff. 1998-02-04 21:32:12 +00:00
Bruce Momjian
00f325d510 Subselects with =, >, etc.
Cleanup for vacuum help, manual page, and error message
1998-02-03 19:27:30 +00:00
Thomas G. Lockhart
93d80d3359 Define boolean functions and operators for lseg <, <=, <>, >=, >.
Define functions and operators for closest point to lseg on box,
 to line on lseg, to lseg on lseg.
Define function and operator for length of lseg.
Change length operator from '??' to '@-@'
 (currently defined for path and lseg).
1998-02-03 16:01:59 +00:00
Marc G. Fournier
50436b7214 Use proper symbol for hpux 1998-02-03 12:42:52 +00:00
Marc G. Fournier
feb5a2cfd6 Fix for various aix related 'mis-defines'
From: Darren King <darrenk@insightdist.com>
1998-02-03 02:09:08 +00:00
Bruce Momjian
c18ed2f5a7 Parser cleanup for expr and subqueries. 1998-02-03 01:53:24 +00:00
Marc G. Fournier
2bfc73f55e From: teunis <teunis@mauve.computersupportcentre.com>
Slight cleanups for glibc2.0
1998-02-03 00:57:42 +00:00
Marc G. Fournier
68c6ddbe8f Fix for ltoa() problem pointed out by Stan Brown <stanb@awod.com> 1998-02-02 03:11:37 +00:00
Marc G. Fournier
e6e364088a Move all the isinf() stuff from float.c to isinf.c, and build it according to
configure vs port specific #ifdef's...
1998-02-02 00:04:08 +00:00
Marc G. Fournier
6e9558e639 From: "Billy G. Allie" <Bill.Allie@mug.org>
The following patches will bring the UNIVEL port in line with the new porting
model used in postgreSQL 6.3
1998-02-01 07:44:00 +00:00
Bruce Momjian
d8ddb10f51 Reduce size of inlining. 1998-02-01 05:38:40 +00:00
Marc G. Fournier
1af818b8bf 1. "#ifdef 0" is bad C. ifdef is for checking a macro and 0 is
an illegal macro name.  Correct syntax is "#if 0".  This is in...

From: Darren King <darrenk@insightdist.com>
1998-02-01 00:02:59 +00:00
Bruce Momjian
726c3854cb Inline fastgetattr and others so data access does not use function
calls.
1998-01-31 04:39:26 +00:00
Bruce Momjian
8abd424369 More deadlock code to check for escallation locks.
offsetof() addition to local socket size.
1998-01-28 02:29:40 +00:00
Bruce Momjian
54399bb2f9 dummyret cleanup 1998-01-27 15:57:41 +00:00
Bruce Momjian
b4564a98fa Deadlock ceallnup.
(void) change for aix and hp compilers.

protocol cleanup.
1998-01-27 15:35:30 +00:00
Bruce Momjian
0519a96546 Fix local domain structure size computation. 1998-01-27 04:08:28 +00:00
Bruce Momjian
862927f443 Real deadlock detection. 1998-01-27 03:00:43 +00:00
Marc G. Fournier
16a20c53dc #include <sys/types.h> required for u_long 1998-01-26 01:49:19 +00:00
Marc G. Fournier
d5bbe2aca5 From: Phil Thompson <phil@river-bank.demon.co.uk>
I've completed the patch to fix the protocol and authentication issues I
was discussing a couple of weeks ago.  The particular changes are:

- the protocol has a version number
- network byte order is used throughout
- the pg_hba.conf file is used to specify what method is used to
  authenticate a frontend (either password, ident, trust, reject, krb4
  or krb5)
- support for multiplexed backends is removed
- appropriate changes to man pages
- the -a switch to many programs to specify an authentication service
  no longer has any effect
- the libpq.so version number has changed to 1.1

The new backend still supports the old protocol so old interfaces won't
break.
1998-01-26 01:42:53 +00:00
Bruce Momjian
91d983aa11 cash_words_out fix 1998-01-26 01:01:37 +00:00
Bruce Momjian
d57753efd4 Add cash_words_out and fix \df width. 1998-01-25 20:23:40 +00:00
Marc G. Fournier
98018c4b93 From: Keith Parks <emkxp01@mtcc.demon.co.uk>
Small patch for sparc solaris/tas()
1998-01-25 05:23:59 +00:00
Bruce Momjian
c16ebb0f67 getpid/pid cleanup 1998-01-25 05:15:15 +00:00
Marc G. Fournier
fc75484550 Somehow the 'comment' here got messed up 1998-01-25 05:04:21 +00:00
Bruce Momjian
7229513943 Fix prototypes so they don't look like function definitions. 1998-01-24 22:50:57 +00:00
Marc G. Fournier
1de8926bbe LOCK_LEVEL is defined in an i386_solaris system file, causing the compile
to break.  renaming to PG_LOCK_LEVEL
1998-01-23 19:53:44 +00:00
Marc G. Fournier
33de29fc45 Minor cleanups for i386_solaris port 1998-01-23 19:13:22 +00:00
Bruce Momjian
661bb38812 Cleanup deadlock message. 1998-01-23 06:01:36 +00:00
Bruce Momjian
0f413d2dc2 Make subqueries rewrite properly. 1998-01-21 04:24:46 +00:00
Bruce Momjian
7f31669bea Add Var.varlevelup to code. More parser cleanup. 1998-01-20 22:12:17 +00:00
Bruce Momjian
412a5e6539 Parser cleanup.
Add lock to i386 asm.
1998-01-20 05:05:08 +00:00
Bruce Momjian
1316113ea3 Fix problem with nodes handling. 1998-01-19 18:11:10 +00:00
Bruce Momjian
3d24e75176 Added code so SubLinks make it to optimizer. 1998-01-19 05:48:55 +00:00
Bruce Momjian
588867bd7b Create SubLink nodes in parser for Vadim. 1998-01-19 05:06:41 +00:00
Bruce Momjian
691dc282f8 Fix for SELECT INTO TABLE for varchar(). 1998-01-19 02:37:51 +00:00
Marc G. Fournier
36c1c94bca From: "Billy G. Allie" <Bill.Allie@mug.org>
The attached patches will allow postgreSQL to compile successfully on SCO
UNIXWARE 2.1.x.  The patches fix the following problems:

1.  Configure did not properly recognize the UNIXWARE system as needing the
    univel port.  It used the sys4 port.

2.  Configure did not properly process the CC flag in the template file.

3.  There was no working test and set locking implementation for the native
    UNIXWARE compiler.

4.  The test and set locking used for Intel X86 that was selected by defining
    NEED_I386_TAS_ASM could fail in a multi-processor environment.

5.  The makefiles for libpq and libpgtcl did not make a shared library for
    the univel port.
1998-01-17 23:33:58 +00:00
Bruce Momjian
b37bc65f44 Creates the SubLink structure, and the Query->hasSubLink field,
with supporting code.

Creates SubLink node in gram.y.

psql.c patch for newatttypmod field.
1998-01-17 04:53:46 +00:00
Bruce Momjian
c65ea0e040 New pg_attribute.atttypmod for type-specific information like
varchar length.

Cleans up code so attlen is always length.

Removed varchar() hack added earlier.

Will fix bug in selecting varchar() fields, and varchar() can be
variable length.
1998-01-16 23:21:07 +00:00
Marc G. Fournier
d876c25803 Fix:
nodeAgg.c: WARN -> NOTICE for elog
parse_oper.c: was created after patch for fmgr_info, so function call wrong
scan.c: regenerated for i386_solaris using flex 2.5.4
gethostname.c: required prototype for gethostname() function
config.h.in: create prototype for isinfo() function

isinf.c: "fake" isinf() under i386_solaris using fpclass() call...
1998-01-15 20:54:52 +00:00
PostgreSQL Daemon
baef78d96b Thank god for searchable mail archives.
Patch by: wieck@sapserv.debis.de (Jan Wieck)

   One  of  the design rules of PostgreSQL is extensibility. And
   to follow this rule means (at least for me) that there should
   not  only  be a builtin PL.  Instead I would prefer a defined
   interface for PL implemetations.
1998-01-15 19:46:37 +00:00
Bruce Momjian
763ff8aef8 Remove Query->qry_aggs and qry_numaggs and replace with Query->hasAggs.
Pass List* of Aggregs into executor, and create needed array there.
No longer need to double-processs Aggregs with second copy in Query.

Fix crash when doing:

	select sum(x+1) from test where 1 > 0;
1998-01-15 19:00:16 +00:00
Bruce Momjian
cb3ce64f2e Cleanup of prototypes. FIx for PQtrace start/stop several times. 1998-01-14 15:48:51 +00:00
Marc G. Fournier
8adc838ff6 Various cleanups for the i386_solaris environment 1998-01-13 19:28:39 +00:00
Vadim B. Mikheev
9453940a85 Remove PageSizeIsValid from BufferGetPageSize. 1998-01-13 14:56:15 +00:00
Vadim B. Mikheev
e8291f7ce2 extern char* crypt_getpwdreloadfilename(void);
^^^^
1998-01-13 14:53:36 +00:00
Marc G. Fournier
374bb5d261 Some *very* major changes by darrenk@insightdist.com (Darren King)
==========================================
What follows is a set of diffs that cleans up the usage of BLCKSZ.

As a side effect, the person compiling the code can change the
value of BLCKSZ _at_their_own_risk_.  By that, I mean that I've
tried it here at 4096 and 16384 with no ill-effects.  A value
of 4096 _shouldn't_ affect much as far as the kernel/file system
goes, but making it bigger than 8192 can have severe consequences
if you don't know what you're doing.  16394 worked for me, _BUT_
when I went to 32768 and did an initdb, the SCSI driver broke and
the partition that I was running under went to hell in a hand
basket. Had to reboot and do a good bit of fsck'ing to fix things up.

The patch can be safely applied though.  Just leave BLCKSZ = 8192
and everything is as before.  It basically only cleans up all of the
references to BLCKSZ in the code.

If this patch is applied, a comment in the config.h file though above
the BLCKSZ define with warning about monkeying around with it would
be a good idea.

Darren  darrenk@insightdist.com

(Also cleans up some of the #includes in files referencing BLCKSZ.)
==========================================
1998-01-13 04:05:12 +00:00
Bruce Momjian
4bad5be7bc Fix SCO and change index name. 1998-01-11 21:03:10 +00:00
Bruce Momjian
600c958a30 Add UNION, GROUP, DISTINCT to INSERT. 1998-01-11 03:41:57 +00:00
Bruce Momjian
e6c714bf30 Bye CursorStmt, now use SelectStmt. 1998-01-10 04:30:11 +00:00
Bruce Momjian
ad8fa23727 Remove old quel labels. 1998-01-09 21:13:43 +00:00
Bruce Momjian
3d15d1332a Remove old quel labels. 1998-01-09 20:06:08 +00:00
Bruce Momjian
679d39b9c8 Goodbye ABORT. Hello ERROR for all errors. 1998-01-07 21:07:04 +00:00
Bruce Momjian
e6c6146eb8 Allow varchar() to only store needed bytes. Remove PALLOC,PALLOCTYPE,PFREE. Clean up use of VARDATA. 1998-01-07 18:47:07 +00:00
Bruce Momjian
42acc6e8c4 Move variable.c to commands/ and aclchk.c to catalog/. 1998-01-05 18:53:12 +00:00
Bruce Momjian
9db64857e0 Move variable.c to commands/ and aclchk.c to catalog/. 1998-01-05 18:43:18 +00:00
Bruce Momjian
0d9fc5afd6 Change elog(WARN) to elog(ERROR) and elog(ABORT). 1998-01-05 03:35:55 +00:00
Marc G. Fournier
0aa928764a Various fixes NETBSD/sparc related
From: Tom I Helbekkmo <tih@Hamartun.Priv.NO>
1998-01-04 19:13:04 +00:00
Bruce Momjian
4b05912f0b Fix for count(*), aggs with views and multiple tables and sum(3). 1998-01-04 04:31:43 +00:00
Thomas G. Lockhart
439fb6c4fb Include text_substr() function and use instead of oracle_compat equivalent. 1998-01-01 05:47:11 +00:00
Thomas G. Lockhart
cc19151e3b Add substring function for text based on oracle_compat package but
closer to standard behavior.
Substitute "text *" for "struct varlena *" in declarations.
1998-01-01 05:42:40 +00:00
Marc G. Fournier
8a0967a3b1 bring in alpha/linux s_lock changes
From: Ryan Kirkpatrick <rkirkpat@nag.cs.colorado.edu>
1997-12-30 04:01:28 +00:00
Marc G. Fournier
3c1332e573 Slightly delayed patches from Todd...damn holidays :)
o  A new patch that contains the following changes:
        -- The pg_pwd file is now cached in the postmaster's memory.
        -- pg_pwd is reloaded when the postmaster detects a flag file creat()'ed
           by a backend.
        -- qsort() is used to sort loaded password entries, and bsearch() is
           is used to find entries in the pg_pwd cache.
        -- backends now copy the pg_user relation to pg_pwd.pid, and then
           rename the temp file to be pg_pwd.
        -- The delimiter for pg_pwd has been changed to a tab character.
1997-12-30 02:26:56 +00:00
Bruce Momjian
a1dd409053 Fix for ORDER BY in UNION. 1997-12-29 04:31:50 +00:00
Bruce Momjian
a01b085c78 Cleanup of UNION ALL fix. Manual page updates. 1997-12-29 01:13:37 +00:00
Bruce Momjian
4ce24c8aa9 UNION work for UNION ALL and other union stuff. 1997-12-27 06:41:41 +00:00
Vadim B. Mikheev
c06ecfb456 extern char* crypt_getpwdfilename(void);
^^^^ gcc likes this
1997-12-26 05:51:51 +00:00
Bruce Momjian
6231e161c9 Implementation of UNIONs. 1997-12-24 06:06:58 +00:00
Thomas G. Lockhart
e8783d4af0 Change field name in RetrieveStmt from selectClause to unionClause.
Add unionall boolean field to SubSelect structure.
1997-12-23 19:58:12 +00:00
Thomas G. Lockhart
0c714ea9ae Lengthen some time conversion routine names now that longer names
(> 16 characters) are allowed in pg_proc (thanks Bruce!).
1997-12-23 19:55:51 +00:00
Thomas G. Lockhart
7c682b46c9 Expand a few date/time routine names to > 16 characters now that this
is legal. Fix a little whitespace in other declarations.
1997-12-23 19:29:15 +00:00
Bruce Momjian
78a055a659 Remove some recursion in optimizer and clean up some code there. 1997-12-21 05:18:48 +00:00
Bruce Momjian
7fd4782504 Fix aggregates on inherited tables. 1997-12-20 07:59:44 +00:00
Marc G. Fournier
3cc95146c4 Missed a HAVE_ 1997-12-20 04:26:27 +00:00
Marc G. Fournier
0356acebd5 Make sure configure reflects changes 1997-12-20 03:41:06 +00:00
Marc G. Fournier
10ff1eea60 First clean compile without a "PORTNAME" variable being set... 1997-12-20 00:11:13 +00:00
Marc G. Fournier
903e21b451 More cleanups. Move alot of the prototype definitions straight into
config.h, right beside their appropriate HAVE_ #ifdefs...one central
location that is included everywhere...
1997-12-19 22:47:00 +00:00
Marc G. Fournier
5379b84eff More cleanups. I can now compile without PORTNAME being defined n
Makefile.global.

End result, if all goes well, should allow for much easier porting, since
there will no longer be a concept of a "port".  Most, if not everything,
*should* be determined by configure, or by the compiler itself.  Still
work to be done though :)
1997-12-19 02:09:10 +00:00
Bruce Momjian
6a45941f2f Remove Existential, and ifdef out generate_fjoin. Neither did anything. 1997-12-18 12:54:45 +00:00
Bruce Momjian
d3f0e87d17 Cost cleanup. 1997-12-18 12:21:02 +00:00
Thomas G. Lockhart
5af05c0a59 Move declarations for timespan2tm() and tm2timespan() from dt.c to here. 1997-12-17 23:19:28 +00:00
Thomas G. Lockhart
a58825a467 Add declarations for text, bpchar, and varchar length functions.
Remove declarations in builtins.h duplicated in dt.h.
Change a few return type declarations to use "type *"
 rather than "struct ...".
1997-12-16 15:55:17 +00:00
Thomas G. Lockhart
3551ee097f Add declarations for text, bpchar, and varchar length functions. 1997-12-16 15:53:17 +00:00
Bruce Momjian
ab179d6940 Make password null on startup. 1997-12-12 16:26:36 +00:00
Bruce Momjian
c60f70b53f Rename pg_plan and pg_eval to be more meaningful. 1997-12-11 17:36:58 +00:00
Bruce Momjian
b69359e2d7 Spark/Linux patch for locking, from Tom Szybist 1997-12-09 20:55:33 +00:00
Marc G. Fournier
da72b903ff Major code cleanup following the pg_password insertion...
...malloc/free -> palloc/pfree
	...fopen/fclose -> AllocateFile/FreeFile
1997-12-09 03:11:25 +00:00
Thomas G. Lockhart
5d7c9119fa Define USE_GERMAN_DATES for use in date/time I/O functions. 1997-12-04 23:58:01 +00:00
Thomas G. Lockhart
dc88e795d1 Change Constraint structure to be a full node structure.
Add new constraint types PRIMARY, UNIQUE.
1997-12-04 23:55:52 +00:00
Thomas G. Lockhart
77356a7fc1 Add Constraint node type.
Remove TimeRange node type tag (everything else already gone).
1997-12-04 23:43:59 +00:00
Marc G. Fournier
a91ad1af09 Missed a few files from Todd's patch...oops :) 1997-12-04 00:34:01 +00:00
Marc G. Fournier
4c04f7724e From: todd brandys <brandys@eng3.hep.uiuc.edu>
An extension to the code to allow for a pg_password authentication database
that is *seperate* from the system password file
1997-12-04 00:28:15 +00:00
Thomas G. Lockhart
b12ba5f695 Specify hash table support functions for float8 and int4 rather than using
btree support functions. Don't know why this was that way, but would
 assume that these should be consistant with all other types with
 hash support. Regression tests OK.
Change a few comments and field alignment to make things more readable.
1997-11-30 23:03:28 +00:00
Thomas G. Lockhart
2c98143681 Add datetime and timespan hash index declarations. Use float8 for both;
certainly OK for datetime since it is a float8 and should be OK for
 timespan since the first field within timespan is a float8.
Use float8 hash function for time type (rather than char8).
1997-11-30 22:58:07 +00:00
Thomas G. Lockhart
d16b4767fe Remove duplicate block of declarations. Must have been introduced recently
since I've run ./duplicate_oids (and found no problems) in the last
 couple of months.
Add and modify some DESCR() entries to describe functions.
1997-11-30 22:52:24 +00:00
Thomas G. Lockhart
abedcddbd1 Change hash field for a few equality operators so all have it set.
Don't know why these few were not already this way, and don't know if
  there is some hidden problem with this, but assume it was done
  accidentally as entries were copied from other operators.
 Regression tests are OK, but...
Move one block of declaration source to keep OIDs in increasing order.
 Did not change OID values, just moved source code.
1997-11-30 22:49:22 +00:00
Thomas G. Lockhart
9faa6cabc5 Add pg_type.h to include list to regain declaration of type OID assignments.
Lost these when some include files were reorganized.
 Regression test could not compile.
1997-11-30 22:42:58 +00:00
Bruce Momjian
002796b5ca Rename heap_destroyr to heap_destroy, heap_destroy to heap_destroy_with_catalog. 1997-11-28 17:28:02 +00:00
Bruce Momjian
c445ba331b Rename heap_create to heap_create_and_catatlog, rename heap_creatr to heap_create(). 1997-11-28 04:40:40 +00:00
Bruce Momjian
d79b9a1b7a Re-order args for TypeCreate() to be clearer. 1997-11-26 04:50:47 +00:00
Bruce Momjian
983ec2cb4b Make parser functions static where possible. 1997-11-26 03:54:23 +00:00
Bruce Momjian
b704426618 Make parser functions static where possible. 1997-11-26 03:43:18 +00:00
Bruce Momjian
43c7114b48 Cleanup up include files. 1997-11-26 01:26:13 +00:00
Bruce Momjian
598e86f3b3 Cleanup up include files. 1997-11-26 01:14:33 +00:00
Bruce Momjian
4a5b781d71 Break parser functions into smaller files, group together. 1997-11-25 22:07:18 +00:00
Bruce Momjian
a986b7ba4d Move descriptions to pg_proc, add descriptions. 1997-11-24 13:43:29 +00:00
Bruce Momjian
49656346b8 Move dbcommands.c to commands/. It should not be in the parser directory. 1997-11-24 05:32:56 +00:00
Bruce Momjian
f7f2e18f8e Remove tqual.h includes not needed. 1997-11-24 05:09:50 +00:00
Bruce Momjian
f4253b0b49 Archive cleanups. 1997-11-21 19:59:39 +00:00
Bruce Momjian
195f78e43c More archive cleanup. 1997-11-21 19:12:41 +00:00
Bruce Momjian
043cebce2b More archive cleanup. 1997-11-21 19:02:59 +00:00
Bruce Momjian
629e27284d Remove unused files. 1997-11-21 18:22:04 +00:00
Bruce Momjian
3fa2bb316c Remove archive stuff. 1997-11-21 18:12:58 +00:00
Bruce Momjian
e9e1ff226f Remove all time travel stuff. Small parser cleanup. 1997-11-20 23:24:03 +00:00
Bruce Momjian
20858bdd96 Make \d commands not wrap over 80 cols. 1997-11-18 06:46:31 +00:00
Bruce Momjian
79daac6bad Add descriptions for types and operators. 1997-11-18 05:22:51 +00:00
Bruce Momjian
d0471244e6 Remove 16 char limit on system table/index names. Rename system indexes. 1997-11-17 16:59:36 +00:00
Thomas G. Lockhart
680ef08511 Add DTK_DOY to help decode day of year fields. 1997-11-17 16:39:58 +00:00
Thomas G. Lockhart
45a8b666c0 Include first text in some type descriptions (~29 entries). 1997-11-17 16:39:16 +00:00
Bruce Momjian
12fc33077b New \dS psql command. initdb cleanup. 1997-11-16 04:36:52 +00:00
Bruce Momjian
1c32d285a6 Remove pg_magic, defaults, server, hosts, and demon tables. unused. 1997-11-15 20:58:05 +00:00
Bruce Momjian
0dec3a8d37 Fix problem of COPY before vacuum. 1997-11-15 17:15:35 +00:00
Bruce Momjian
4e9df155f0 Add new \df psql option and oid8types() function. 1997-11-15 16:32:25 +00:00
Bruce Momjian
4cbc06cff1 Add new psql \da, \do, and \dT options. 1997-11-14 21:38:25 +00:00
Bruce Momjian
ea4223c45f FIx for indexing regex stuff. Change rowoid to objoid. 1997-11-14 05:57:46 +00:00
Bruce Momjian
5071ae2972 Add pg_description table for info on tables, columns, operators, types, and aggregates. Modify psql with new \dd operator to access description 1997-11-13 03:23:18 +00:00
Bruce Momjian
baeb8790ac Fix case issues with quotes. 1997-11-10 05:10:50 +00:00
Bruce Momjian
6016148c61 new alpha linux locking from Travis Melhiser <melhiser@viper.co.union.nc.us> 1997-11-07 21:35:41 +00:00
Bruce Momjian
c17fa36d3c Add Unix domain socket support, from Goran Thyni, goran@bildbasen.se 1997-11-07 20:52:15 +00:00
Thomas G. Lockhart
27b12bfd54 Include transam.h to get NullTransactionId defined
for use by recently created macros.
1997-11-07 18:39:38 +00:00
Thomas G. Lockhart
ea567d2fad Declare routines which support SET keyword = value SQL commands. 1997-11-07 06:45:16 +00:00
Thomas G. Lockhart
7d1f2f8a27 Support alternate database locations. 1997-11-07 06:38:51 +00:00
Vadim B. Mikheev
32cd09ac6d Good Bye, Time Travel! 1997-11-02 15:27:14 +00:00
Bruce Momjian
0308f91cd2 No more warnings on macros, thanks VAdim. 1997-10-30 23:37:01 +00:00
Bruce Momjian
818f2644e9 Update version to 6.3. dump/reload for 6.1 version users. 1997-10-30 22:09:04 +00:00
Thomas G. Lockhart
cc1b420cfd Add routines istrue() and isfalse() to directly evaluate boolean type. 1997-10-30 16:45:12 +00:00
Bruce Momjian
58ed1232f5 Fix for netbsd locking, from Henry B. Hotz. 1997-10-30 05:24:19 +00:00
Vadim B. Mikheev
7bff4c5078 Now we are able to CREATE PROCEDURAL LANGUAGE (Thanks, Jan). 1997-10-28 15:11:45 +00:00
Vadim B. Mikheev
6855820e8f c.h:
#define StrNCpy(dst,src,len)    \
	(strncpy((dst),(src),(len)),(len > 0) ? *((dst)+(len)-1)='\0' : \
	NULL,(void)(dst))
	     ^^^^^^ - to avoid "value computed is not used" from gcc
	in ma-a-any places (should to fix thouse places instead, but ...
	time)

config.h.in:
/*
 * TBL_FREE_CMD_MEMORY: free memory allocated for an user query inside
 * transaction block after this query is done.
 */
#define TBL_FREE_CMD_MEMORY
- this is default now.
1997-10-27 12:07:13 +00:00
Thomas G. Lockhart
60fee0d67c Add conversion routines for int2, int4, and oid to and from text.
Change a few routine names to ensure <= 16 characters in name
 to fit correctly into pg_proc.
1997-10-25 05:40:43 +00:00
Thomas G. Lockhart
d8e260646e Reassign cash/float4 arithmetic operator oids to avoid duplicate oids. 1997-10-25 05:31:55 +00:00
Thomas G. Lockhart
a9a91b54c6 Add conversion functions for int2, int4, oid to and from text.
Shorten a few routine names to <= 16 characters long to fit in table.
1997-10-25 05:29:48 +00:00
Thomas G. Lockhart
b5f582b7ab Rename column to avoid "action" SQL92 reserved word. 1997-10-25 05:25:10 +00:00
Bruce Momjian
789d075021 StrNCpy cleanup. 1997-10-25 02:14:22 +00:00
Bruce Momjian
f3af1368bd Rename strNcpy to StrNCpy, and change third parameter. 1997-10-25 01:10:58 +00:00
Bruce Momjian
a805635d21 Cleanups for 6.2.1. 1997-10-16 04:14:30 +00:00
Vadim B. Mikheev
78351f422b Fix for backward cursors with ORDER BY. 1997-10-15 06:36:36 +00:00
Thomas G. Lockhart
ba2358896a Fix final function for cash avg() aggregate.
Wrong function referenced in previous versions.
1997-10-15 01:08:25 +00:00
Thomas G. Lockhart
070d494464 Clean up function declarations for the boolean type package
to use bool as the type for arguments and return values.
1997-10-09 05:07:25 +00:00
Marc G. Fournier
f1bfc520c0 We never do remember to up the PG_VERSION number, do we? :( 1997-10-03 17:31:29 +00:00
Bruce Momjian
83cd375cd2 Linux/alpha patch from Dan Maynard 1997-10-03 15:27:18 +00:00
Bruce Momjian
d663f1c839 Sparc lock fix for Linux/netbsd. 1997-10-02 18:32:58 +00:00
Bruce Momjian
cb9604f2ac Add support for NetBSD/sparc. 1997-09-30 16:21:42 +00:00
Vadim B. Mikheev
51689ece82 MOVE implementation (added bool ismove to FetchStmt). 1997-09-29 06:01:46 +00:00
Bruce Momjian
4b9fb26648 HPUX patches from Vladimir Turin. 1997-09-29 03:27:18 +00:00
Bruce Momjian
725a03eb4b Make GetAttributeByNum visible again for external use. 1997-09-27 14:37:21 +00:00
Bruce Momjian
4a98c5763e Back out inclusion of postgres.h. 1997-09-25 16:52:23 +00:00
Bruce Momjian
2f4275327e Massive examples fix from Nicola Bernardelli 1997-09-25 16:35:52 +00:00
Bruce Momjian
be5241420a S_LOCK_FREE fix. 1997-09-25 01:48:58 +00:00
Bruce Momjian
ebb3008dbd Fix for S_FREE_LOCK. 1997-09-24 23:37:26 +00:00
Vadim B. Mikheev
1777ba4c80 + SPI_palloc(), SPI_repalloc(), SPI_pfree() 1997-09-24 08:32:09 +00:00
Bruce Momjian
09dfed4022 Cleanup backslashes. 1997-09-22 18:14:25 +00:00
Bruce Momjian
a2a0842d1c Fix for missing tas on some platforms. 1997-09-22 15:59:19 +00:00
Bruce Momjian
85f7555132 Small lock cleanup for prototype. 1997-09-22 15:49:14 +00:00
Vadim B. Mikheev
94e52d38df Two copies... 1997-09-22 04:21:51 +00:00
Thomas G. Lockhart
354a18fcb2 Add tinterval comparison operators.
Add integer/money arithmetic.
1997-09-20 16:29:38 +00:00
Thomas G. Lockhart
aae2420e8b Add point_ne() comparison routine. 1997-09-20 16:25:28 +00:00
Thomas G. Lockhart
d0ab9c3f81 Add tinterval comparison routines. 1997-09-20 16:24:39 +00:00
Thomas G. Lockhart
2b83160dca Add integer/money arithmetic from Darren King. 1997-09-20 16:23:47 +00:00
Bruce Momjian
0f928c2d21 UPdate memset macro. 1997-09-18 18:48:32 +00:00
Bruce Momjian
79cb0fd9bb Cleanup for memset macro. 1997-09-18 17:06:21 +00:00
Marc G. Fournier
220941dac5 Add in srandom() check to configure
Add appropriate HAVE_{RANDOM,SRANDOM} values to config.h
Add approrpiate #ifdef's to sparc_solaris port files for Solaris v2.6
1997-09-18 16:09:41 +00:00
Vadim B. Mikheev
a6e0803a7f No more SortTuplesInTree... 1997-09-18 14:42:35 +00:00
Bruce Momjian
8cb4154492 Inline frequently called functions. 1997-09-18 14:21:02 +00:00
Vadim B. Mikheev
bbe2c10c14 Addded to Psortstate:
lt_tupcount - number of tuples in struct leftist *Tuples
	lasttuple   - last tuple put to disk by createfirstrun()
1997-09-18 05:42:01 +00:00
Vadim B. Mikheev
7ffd2c09c8 + SortTuplesInTree 1997-09-18 05:38:09 +00:00
Bruce Momjian
df7a435587 Mklinux patch from Tatsuo. 1997-09-16 16:25:28 +00:00
Vadim B. Mikheev
f3e9cf9c6b Fix pfree problem. 1997-09-15 14:29:01 +00:00
Bruce Momjian
0a3cee72ac Add mention of heap_getattr() compiler warning. 1997-09-14 03:59:44 +00:00
Bruce Momjian
aa0bad9638 Remove that 5 from MESSAGE SIZE that no one understands. 1997-09-12 22:26:13 +00:00
Bruce Momjian
cf5a8723dd Increase default geqo parameter to 8. 1997-09-12 21:25:10 +00:00
Bruce Momjian
7044dd7ec8 Fix heap_getattr bug I just added. 1997-09-12 14:29:04 +00:00
Vadim B. Mikheev
4587547f13 Added: SPI_copytuple() & SPI_modifytuple() 1997-09-12 08:37:52 +00:00
Bruce Momjian
b6bd3da520 Macro cleanup of heap_getattr. 1997-09-12 05:58:18 +00:00
Vadim B. Mikheev
7f97e05b09 char* --> Datum 1997-09-12 04:58:59 +00:00
Bruce Momjian
1ea01720d5 heapattr functions now return a Datum, not char *. 1997-09-12 04:09:08 +00:00
Vadim B. Mikheev
a74613f478 Cleanups. 1997-09-11 07:24:37 +00:00
Bruce Momjian
59f6a57e59 Used modified version of indent that understands over 100 typedefs. 1997-09-08 21:56:23 +00:00
Bruce Momjian
075cede748 Add typdefs to pgindent run. 1997-09-08 20:59:27 +00:00
Bruce Momjian
319dbfa736 Another PGINDENT run that changes variable indenting and case label indenting. Also static variable indenting. 1997-09-08 02:41:22 +00:00
Bruce Momjian
1ccd423235 Massive commit to run PGINDENT on all *.c and *.h files. 1997-09-07 05:04:48 +00:00
Vadim B. Mikheev
bf1d9aeb97 Cleanups. 1997-09-06 11:23:05 +00:00
Thomas G. Lockhart
b647a27cf5 Add comparision routines to support indices on datetime and timespan. 1997-09-04 18:44:29 +00:00
Thomas G. Lockhart
7c243f83e8 Add comparision routines and catalog entries to support indices on
datetime and timespan.
1997-09-04 18:43:59 +00:00
Bruce Momjian
9fcd4c25bc Fix conditional casting. 1997-09-04 16:20:55 +00:00
Vadim B. Mikheev
444369e7b2 struct Trigger changed 1997-09-04 13:26:45 +00:00
Vadim B. Mikheev
9ba606cd24 Prototypes, definitions... 1997-09-04 13:26:19 +00:00
Vadim B. Mikheev
989ab6b1e7 pg_trigger changed 1997-09-04 13:25:14 +00:00
Vadim B. Mikheev
6084c915d0 Triggers added to Relation 1997-09-01 08:13:22 +00:00
Vadim B. Mikheev
b69b815e3a + Member for actions in CreateTrigStmt. 1997-09-01 08:11:57 +00:00
Vadim B. Mikheev
2ca45d5729 Function prototypes. 1997-09-01 08:10:12 +00:00
Vadim B. Mikheev
38f0ffd36c #define TriggerRelationName "pg_trigger" 1997-09-01 08:09:09 +00:00
Thomas G. Lockhart
1bf90bc7d3 Add structure for subselects.
Add field to support "WITH TIME ZONE".
1997-09-01 06:04:59 +00:00
Thomas G. Lockhart
1370a08746 Fix return value data type declarations for box_circle() and poly_circle(). 1997-09-01 05:46:09 +00:00
Vadim B. Mikheev
8dd090f6da CREATE/DROP TRIGGER statement nodes 1997-08-31 11:43:09 +00:00
Vadim B. Mikheev
bcf03a7ed6 CREATE/DROP TRIGGER functions 1997-08-31 11:42:21 +00:00
Vadim B. Mikheev
2d7b93c0ca Welcome, triggers 1997-08-31 09:55:24 +00:00
Vadim B. Mikheev
d8933d5cff New results destination for SPI manager. 1997-08-29 09:06:27 +00:00
Vadim B. Mikheev
0d0254d1fb SPI manager. 1997-08-29 09:05:57 +00:00
Vadim B. Mikheev
3152996ffb Fix very old bug which made tuples changed/inserted by a commnd
visible to command itself (so we had multiple update of updated tuples,
etc).
1997-08-29 09:05:25 +00:00
Bruce Momjian
e06099c607 heap_getattr fix for aix. 1997-08-29 00:44:55 +00:00
Vadim B. Mikheev
3751b49545 Number of tuples inserted/affected by INSERT/UPDATE/DELETE... 1997-08-27 09:05:24 +00:00
Vadim B. Mikheev
40ac5a692b heap_delete returns int now (for non-functional deletes). 1997-08-27 09:03:47 +00:00
Bruce Momjian
75c6c2b608 Inlined heap_getattr(). 1997-08-26 23:31:58 +00:00
Bruce Momjian
8d0e658d06 Small cleanup. 1997-08-25 04:15:40 +00:00
Bruce Momjian
c4cb617504 Major patch to speed up backend startup after profiling analysis. 1997-08-24 23:08:01 +00:00
Vadim B. Mikheev
c16d29f990 + ExecConstraints () 1997-08-22 14:39:33 +00:00
Bruce Momjian
021778eed3 We store Cash/money as int of size 4, so make it an int rather than a long. 1997-08-22 07:13:01 +00:00
Vadim B. Mikheev
5f7f236ba4 ConstraintDef changed 1997-08-22 04:05:27 +00:00
Vadim B. Mikheev
d67547d82d Set attbyval for attdisbursion to FALSE
Set atttype for relchecks to 21 (int2)
Set relkind for pg_attrdef & pg_relcheck to 'n'
1997-08-22 04:04:19 +00:00
Vadim B. Mikheev
ee5f09f07c + CreateTupleDescCopyConstr
+ FreeTupleDesc
1997-08-22 03:55:39 +00:00
Bruce Momjian
3dd23aadf0 Allow functions and operators on internally-identical types to succeed. 1997-08-22 00:02:19 +00:00
Bruce Momjian
0ab2921290 Change time function names to be more consistent, and check for zero divides, from Michael Reifenberg. 1997-08-21 23:57:00 +00:00
Vadim B. Mikheev
d37e93aafd #definitions for pg_attrdef & pg_relcheck names 1997-08-21 04:33:20 +00:00
Vadim B. Mikheev
cc332d612b AttrConstr --> TupleConstr 1997-08-21 04:10:25 +00:00
Bruce Momjian
e482462960 Rename pg_attribute.attnvals to attdisbursion. 1997-08-21 03:02:13 +00:00
Bruce Momjian
f1edf02cc1 Change pg_attribute.attnvals to float4, change #ifdef 0 to #if 0, fix aix call to strNcpy, fix pg_super_user_id in pg_dumpall, change pg_database.dtadba from oid to int4. 1997-08-21 02:28:55 +00:00
Vadim B. Mikheev
ac3d7b3146 + extern double *box_area(BOX *box); 1997-08-21 01:40:30 +00:00
Vadim B. Mikheev
f2dd89b6fa + struct ConstaintDef - for constraints. 1997-08-21 01:39:25 +00:00
Vadim B. Mikheev
25aa0f8d04 New system relations to store DEFAULT/CHECK expressions. 1997-08-21 01:37:55 +00:00
Bruce Momjian
11ac1bf268 More NOT_USEDs 1997-08-20 14:54:35 +00:00
Vadim B. Mikheev
4527172b80 CHECK/DEFAULT syntax 1997-08-20 01:12:38 +00:00
Bruce Momjian
1d8bbfd2e7 Make functions static where possible, enclose unused functions in #ifdef NOT_USED. 1997-08-19 21:40:56 +00:00
Vadim B. Mikheev
b992e200b8 NOT NULL implementation (submitted by Robson Paniago de Miranda). 1997-08-19 04:46:15 +00:00
Bruce Momjian
022903f22e Reduce open() calls. Replace fopen() calls with calls to fd.c functions. 1997-08-18 02:15:04 +00:00
Marc G. Fournier
eaae21fb4d Fixes for alphalinux port by abrams@philos.umass.edu 1997-08-17 02:40:00 +00:00
Marc G. Fournier
9d90de5de7 Changes so that it actually checks for <readline/history.h>, instead
of assuming it does exist
1997-08-17 00:48:51 +00:00
Bruce Momjian
fd86ae151a Cleanup global variables, remove stable memory stuff. 1997-08-14 16:11:41 +00:00
Bruce Momjian
edb58721b8 Fix pgproc names over 15 chars in output. Add strNcpy() function. remove some (void) casts that are unnecessary. 1997-08-12 20:16:25 +00:00
Bruce Momjian
42c0cd33a2 I think I finally got psort working for all cases. 1997-08-06 07:02:49 +00:00
Bruce Momjian
cc24b846dd psort cleanups. 1997-08-06 05:38:46 +00:00
Bruce Momjian
f5f366e188 Allow internal sorts to be stored in memory rather than in files. 1997-08-06 03:42:21 +00:00
Bruce Momjian
6ed1715b1f Cleanup for NAMEDATALEN use. 1997-08-03 02:38:47 +00:00
Marc G. Fournier
5089f6ce87 Check for and use <netdb.h> for postmaster.c, instead of checking if
MAXHOSTNAMELEN is defined.  For some reason, my 2.5.1 Solaris box at
work fails on that check...
1997-07-30 14:03:33 +00:00
Bruce Momjian
bcc883fed3 Remove HAVE_USAGE because it is no longer used. 1997-07-30 00:09:42 +00:00
Thomas G. Lockhart
3c2d74d2af Add new operators and functions for geometric types.
Add text concatenation operator and function.
Add text trim function for SQL92 support.
1997-07-29 16:17:52 +00:00
Thomas G. Lockhart
e89d139dbe Add new routines.
Change definition for isreltime().
Change some names of #define constants to avoid conflicts with the yacc parser.
1997-07-29 16:16:14 +00:00
Bruce Momjian
8d25436d70 mkLinux patches from Tatsuo Ishii. 1997-07-29 14:09:11 +00:00
Bruce Momjian
8338f90d4e Add SCO files. 1997-07-28 01:34:24 +00:00
Bruce Momjian
d5e21e0924 HPUX 10 patches from Vladimir Turin 1997-07-27 18:52:43 +00:00
Bruce Momjian
3ac9d2fff3 Various compile errors concerning overflow due to shifts, unsigned, and bad prototypes, from Solaris, from Diab Jerius 1997-07-24 20:19:10 +00:00
Bruce Momjian
31fba1d974 Mips sysv4 support. 1997-07-14 16:52:13 +00:00
Thomas G. Lockhart
e66f5c05eb Remove endian information which is now in port-specific header files.
Note that this version is probably identical to two versions ago.
1997-07-11 14:09:00 +00:00
Thomas G. Lockhart
c6df30edb9 Modify port-specific definitions to support missing endian information.
Add extra include file for aix to find endian information.
1997-07-11 14:03:01 +00:00
Thomas G. Lockhart
bf3bcb6a6d Include definitions for endian info if not in system includes. 1997-07-01 00:31:10 +00:00
Thomas G. Lockhart
495fdfba98 Rearrange DTK_x constants.
Define constants to allow day of week decoding.
Add new datetime and timespan routines.
1997-07-01 00:25:30 +00:00
Thomas G. Lockhart
45409f0cdd Remove code not previously enabled with USE_NEW_DATE and USE_NEW_TIME
#defines.
1997-06-23 15:03:45 +00:00
Thomas G. Lockhart
742425447d Drop internal routines for formatting time output. Use default formatter.
Add timezone info to abstime2tm().
1997-06-23 14:58:51 +00:00
Thomas G. Lockhart
9af564ada6 Add parser category for "DST" Daylight Savings Time qualifier on time zones. 1997-06-20 17:15:00 +00:00
Marc G. Fournier
442306fe36 From: "Brian E. Gallew" <geek+@cmu.edu>
Define USE_POSIX_TIME for dgux port
1997-06-06 01:39:24 +00:00
Marc G. Fournier
15da18508f From: Phil Nelson <phil@cs.wwu.edu>
Subject: [PATCHES] Added support for NetBSD/pc532.
1997-06-06 01:37:23 +00:00
Vadim B. Mikheev
39c73eff63 Definition for RelationForgetRelation(). 1997-06-04 09:01:49 +00:00
Thomas G. Lockhart
4bd4a55b98 Add upgradepath(), isoldpath(), upgradepoly() and revertpoly() to allow
upgrading from existing pre-v6.1 path and polygon geometric data types.
1997-06-03 14:11:28 +00:00
Thomas G. Lockhart
3887d41b13 Put parens around macro arguments for safety per D'Arcy's suggestion. 1997-06-03 14:07:24 +00:00
Vadim B. Mikheev
9c0d64c21c #define GEQO_RELS 6 (not 7) 1997-06-03 03:15:50 +00:00
Vadim B. Mikheev
465047d604 #define GEQO_RELS 7
moved from geqo.h to internal.h.
1997-06-02 11:19:33 +00:00
Marc G. Fournier
187e0f2405 From: Phil Nelson <phil@cs.wwu.edu>
Subject: [PATCHES] Support for NetBSD/sparc

The following is a patch to allow BSD44_derived to support NetBSD/sparc.
1997-06-01 15:51:10 +00:00
Marc G. Fournier
b3db8ee0b2 From: Darren King <aixssd!darrenk@abs.net>
Subject: [PATCHES] aix.h needs POSIX...
1997-06-01 15:50:08 +00:00
Bruce Momjian
8bc7439ccf Enable GEQO for more than six tables, from Martin. 1997-06-01 02:56:00 +00:00
Bruce Momjian
c3a960ad8a Fix for SELECT * INTO TABLE for char(), varchar() fields. 1997-05-31 16:52:19 +00:00
Vadim B. Mikheev
5cf55737a4 Added: new BTP_CHAIN flag (if hikey == firstkey then it's not
last page in chain of duplicates).
1997-05-30 18:40:02 +00:00
Thomas G. Lockhart
07f0647808 Ensure double alignment for time and arrays of circles. 1997-05-26 16:55:23 +00:00
Thomas G. Lockhart
0828204538 Enable new date and time definitions to allow Solaris and Irix -O2 compilation.
Move date and time field type labels to less than 32 to allow use as masks.
1997-05-23 05:10:03 +00:00
Vadim B. Mikheev
12d9a12eda gist.h:
/*
** You can have as many strategies as you please in GiSTs, as
** long as your consistent method can handle them
*/
#define GISTNStrategies                 100
                                        ^^^
- too big number:

strat.h->StrategyEvaluationData->StrategyExpression  expression[12]
                                                                ^^
 - so 12 is real max # of strategies, or StrategyEvaluationIsValid
crashes backend (called if CASSER defined).
1997-05-22 16:09:57 +00:00
Marc G. Fournier
5e7c0a0b9a From: Darren King <aixssd!darrenk@abs.net>
Subject: [PATCHES] DROP AGGREGATE patch/fix.


Here's a patch that fixes the DROP AGGREGATE command to delete
the desired aggregate for a specific type.
1997-05-22 00:17:24 +00:00
Vadim B. Mikheev
b0dfe8e38e Define FREE(x) as pfree. 1997-05-20 11:37:33 +00:00
Edmund Mergl
33a629cfef added const declaration in form() E.Mergl 1997-05-17 16:25:57 +00:00
Thomas G. Lockhart
9fd868d16a Rename new float and int conversion routines to avoid conflicts with
system calls on AIX (and probably other machines too).
1997-05-14 04:35:10 +00:00
Marc G. Fournier
45165538c5 From: "Brian E. Gallew" <geek+@cmu.edu>
Subject: [PORTS] minor fix for DGUX port

src/include/port/dgux.h needs the following three lines appended:

#ifndef         BYTE_ORDER
#define         BYTE_ORDER      BIG_ENDIAN
#endif


I believe this to be correct for DG/UX on M88k processors.  I don't have one of
the new Intel-based boxes to check on.
1997-05-13 22:13:33 +00:00
Thomas G. Lockhart
57f55032ff Add type conversion functions between floats and integers.
Include some additional path functions which were coded but omitted here.
Add translation and rotation/scaling operators for some geometric types.
Fix bugs in some geometry comparison operator declarations.
1997-05-11 15:19:33 +00:00
Thomas G. Lockhart
407cd4ee24 Add a few type conversion functions.
Pass an additional argument for date/time formatting to better handle timezones.
1997-05-11 15:13:49 +00:00
Marc G. Fournier
9f2d714620 From: "Paul M. Aoki" <aoki@CS.Berkeley.EDU>
Subject: [PATCHES] port patch: ultrix4

ultrix4 doesn't compile without this.  this also fixes a problem
with dynamic loading (ultrix relocatable objects must be loaded
with -G 0).
1997-05-07 03:12:46 +00:00
Thomas G. Lockhart
36d18351aa Change dummy array dimensions from [0] to [1] to keep non-gcc compilers happy.
No real change in the support code is required since the actual size
 of the structures is calculated using offsetof() rather than sizeof().
1997-05-06 07:24:42 +00:00
Thomas G. Lockhart
6e27af13eb Rename LOread() and LOwrite() to loread() and lowrite() to allow use by
case-insensitive SQL parser.
1997-05-06 07:20:53 +00:00
Thomas G. Lockhart
94123219bf Rename LOread() and LOwrite() to be lower case to allow use
in case-insensitive SQL. Define LOread() and LOwrite() as macros
 to avoid having to update calls everywhere.
1997-05-06 07:14:34 +00:00
Vadim B. Mikheev
a1fbd470a9 Fix GroupBy: enable functions over aggregates and GroupBy-ed fields
in target list.
1997-04-29 04:32:50 +00:00
Thomas G. Lockhart
0a95a17da2 Change mixed-case routines to lower-case for case-insensitive SQL.
Add mixed-case #define synonyms to avoid changing more source code.
Add comparison operators for boolean.
Add aggregate min() and max() for datetime and timespan.
1997-04-27 19:24:16 +00:00
Thomas G. Lockhart
1d1c9ff211 Change mixed-case routines to lower-case in pg_proc.h
Add comparison operators for boolean.
Add aggregate min() and max() for datetime and timespan.
Fix duplicate OID in pg_proc.h
1997-04-27 19:22:45 +00:00
Thomas G. Lockhart
d831e9ce19 Change mixed-case routines to lower-case if referenced in pg_proc.h 1997-04-27 19:21:06 +00:00
Marc G. Fournier
c2ae467300 clean up the bin/*/Makefiles...up version.h to v6.1 instead of v6.0
Remove bin/Makefile.global since it wasn't actually *doing* anything
that Makefile.global hadn't already done
1997-04-26 05:07:12 +00:00
Marc G. Fournier
094ec2d3f3 More timezone patches by Thomas:
Here are patches which should help fix timezone problems in the
datetime and abstime code. Also, I repatched varlena.c to add in
some comments and a little error checking on top of Vadim's earlier
repairs. There are slight mods to the circle data type to have the
distance operator between circles measure the distance between
closest points rather than between centers.
1997-04-25 18:40:50 +00:00
Marc G. Fournier
87fffc4342 Various bug fixes based on a bug report submitted by
Doug Neuhauser <doug@seismo.berkeley.edu> on April 15th
1997-04-24 20:02:02 +00:00
Vadim B. Mikheev
2bbc2e2c0d Added comments about FASTBUILD.
Added #define BTREE_VERSION_1.
1997-04-24 16:21:46 +00:00
Vadim B. Mikheev
0a08f2b22d #define _CPU_PAGE_WEIGHT_: 0.065 --> 0.033
#define _CPU_INDEX_PAGE_WEIGHT_: 0.033 --> 0.017
1997-04-24 15:38:34 +00:00
Marc G. Fournier
08a5901ba1 Various patches not commited, plus a linux/sparc patch from
Satoshi Ishikawa <power@sekine.densi.gifu-u.ac.jp>
1997-04-24 02:35:39 +00:00
Vadim B. Mikheev
3c461c8397 Analyze data only if specified and specified attrs only. 1997-04-23 06:28:48 +00:00
Vadim B. Mikheev
bc67a4617d 1. VariableShowStmt and VariableResetStmt added.
2. VacuumStmt changed (for VACUUM ANALYZE...).
1997-04-23 05:58:06 +00:00
Vadim B. Mikheev
72fcb4ee91 There were too many comments. 1997-04-23 05:52:32 +00:00
Marc G. Fournier
4b5319129c To: Thomas Lockhart <Thomas.G.Lockhart@jpl.nasa.gov>
Subject: Re: [PATCHES] SET DateStyle patches

On Tue, 22 Apr 1997, Thomas Lockhart wrote:

> Some more patches! These (try to) finish implementing SET variable TO value
> for "DateStyle" (changed the name from simply "date" to be more descriptive).
> This is based on code from Martin and Bruce (?), which was easy to modify.
> The syntax is
>
> SET DateStyle TO 'iso'
> SET DateStyle TO 'postgres'
> SET DateStyle TO 'sql'
> SET DateStyle TO 'european'
> SET DateStyle TO 'noneuropean'
> SET DateStyle TO 'us'         (same as "noneuropean")
> SET DateStyle TO 'default'    (current same as "postgres,us")
>
> ("european" is just compared for the first 4 characters, and "noneuropean"
> is compared for the first 7 to allow less typing).
>
> Multiple arguments are allowed, so SET datestyle TO 'sql,euro' is valid.
>
> My mods also try to implement "SHOW variable" and "RESET variable", but
> that part just core dumps at the moment. I would guess that my errors
> are obvious to someone who knows what they are doing with the parser stuff,
> so if someone (Bruce and/or Martin??) could have it do the right thing
> we will have a more complete set of what we need.
>
> Also, I would like to have a floating point precision global variable to
> implement "SET precision TO 10" and perhaps "SET precision TO 10,2" for
> float8 and float4, but I don't know how to do that for integer types rather
> than strings. If someone is fixing the SHOW and RESET code, perhaps they can
> add some hooks for me to do the floats while they are at it.
>
> I've left some remnants of variable structures in the source code which
> I did not use in the interests of getting something working for v6.1.
> We'll have time to clean things up for the next release...
1997-04-23 03:18:27 +00:00
Marc G. Fournier
5514c1fa23 Add fcvt() as a check to configure so that we can get rid of the BSD44_derived
type check in numutils.c:ftoa()

Pointed out by: "Martin J. Laubach" <mjl@emsi.priv.at>
1997-04-22 17:47:42 +00:00
Marc G. Fournier
9e2a87b62d Major patch from Thomas Lockhart <Thomas.G.Lockhart@jpl.nasa.gov>
OK, here are a passel of patches for the geometric data types.
These add a "circle" data type, new operators and functions
for the existing data types, and change the default formats
for some of the existing types to make them consistant with
each other. Current formatting conventions (e.g. compatible
with v6.0 to allow dump/reload) are supported, but the new
conventions should be an improvement and we can eventually
drop the old conventions entirely.

For example, there are two kinds of paths (connected line segments),
open and closed, and the old format was

'(1,2,1,2,3,4)' for a closed path with two points (1,2) and (3,4)
'(0,2,1,2,3,4)' for an open path with two points (1,2) and (3,4)

Pretty arcane, huh? The new format for paths is

'((1,2),(3,4))' for a closed path with two points (1,2) and (3,4)
'[(1,2),(3,4)]' for an open path with two points (1,2) and (3,4)

For polygons, the old convention is

'(0,4,2,0,4,3)' for a triangle with points at (0,0),(4,4), and (2,3)

and the new convention is

'((0,0),(4,4),(2,3))' for a triangle with points at (0,0),(4,4), and (2,3)

Other data types which are also represented as lists of points
(e.g. boxes, line segments, and polygons) have similar representations
(they surround each point with parens).

For v6.1, any format which can be interpreted as the old style format
is decoded as such; we can remove that backwards compatibility but ugly
convention for v7.0. This will allow dump/reloads from v6.0.

These include some updates to the regression test files to change the test
for creating a data type from "circle" to "widget" to keep the test from
trashing the new builtin circle type.
1997-04-22 17:35:09 +00:00
Vadim B. Mikheev
d94c7fc4c5 1. Declaration
static const char *num_word(Cash value);
moved to cash.c.
2. 'extern ' added to funcs prototypes.
1997-04-18 02:59:26 +00:00
Marc G. Fournier
a1f229b19e From: "Martin J. Laubach" <mjl@CSlab.tuwien.ac.at>
Subject: [HACKERS] Patch: set date to euro/us postgres/iso/sql

  Here a patch that implements a SET date for use by the datetime
stuff. The syntax is

        SET date TO 'val[,val,...]'

  where val is us (us dates), euro (european dates), postgres,
iso or sql.

  Thomas is working on the integration in his datetime module.
I just needed to get the patch out before it went stale :)
1997-04-17 13:50:57 +00:00
Vadim B. Mikheev
afd9295786 BTREE_VERSION_1: using bti_itup->t_tid as unique identifier for a given
index tuple (logical position within A LEVEL). bti_oid & bti_dummy
taken off from BTItemData.
1997-04-16 01:21:59 +00:00
Marc G. Fournier
cacaaed62b A couple of cleanups from Scott Harrison <Scott_Harrison@next.com> 1997-04-15 19:08:13 +00:00
Marc G. Fournier
f9d2ec0eba Have CASSERT enabled/disabled via configure, and passed through config.h
instead of as a -D
1997-04-15 18:35:50 +00:00
Marc G. Fournier
6fd4e2b414 Various minor HP related patches from:
Morten Kjeldgaard <mok@monster.kemi.aau.dk>
1997-04-15 17:55:37 +00:00
Marc G. Fournier
88d740462f From: Thomas Lockhart <Thomas.G.Lockhart@jpl.nasa.gov>
Subject: [HACKERS] Money integration patches

Here are patches to integrate the money data type. I have included
some math and aggregate functions and have made the locale support optional
by #ifdef USE_LOCALE bracketing of functions.

Modules affected are:
builtins.h.patch
cash.c.patch
cash.h.patch
main.c.patch
pg_aggregate.h.patch
pg_operator.h.patch
pg_proc.h.patch
pg_type.h.patch

I changed the data type to be pass-by-reference rather than by-value
to pave the way for a larger internal representation (64-bit ints?).
Also, I changed the tabbing of cash.c and cash.h to match most of
the other Postgres source code files (4 space indent, 8 spaces == 1 tab).

The locale stuff should be tested under another convention (Russian?)
but I don't know what the correct results should be so perhaps someone
else can give them a try. Will update docs and regression tests in
the next few days.
1997-04-15 17:41:44 +00:00
Marc G. Fournier
7113e880b8 More more of the include files under the include directory 1997-04-12 10:21:55 +00:00
Marc G. Fournier
1e9b80a2fd modifications to pg_dump towards supporting dumping of ACLs (doesn't work yet!)
modification to c.h so that bool isn't typedef'd under __cplusplus
1997-04-12 09:24:23 +00:00
Marc G. Fournier
4999f002e6 Add in D'Arcy's cash code
pg_proc.h still needs modifying, but this gets it in there so that we can
get around any compiler bugs.  Will try and get the pg_proc.h entries done
up later tonight...
1997-04-09 08:36:21 +00:00
Vadim B. Mikheev
75e2370cc8 Now we have #define _CPU_INDEX_PAGE_WEIGHT_ 0.033 (/* CPU-index-to-page cost
weighting factor */) in addition to
#define _CPU_PAGE_WEIGHT_  0.065 (/* CPU-heap-to-page cost weighting factor
*/).
1997-04-09 02:24:19 +00:00
Vadim B. Mikheev
bd511f268a Put resdom into GroupClause (GROUP BY func_results) 1997-04-05 06:19:22 +00:00
Marc G. Fournier
0213a81dca More modifications to make building more interactive:
Allow installer to change DEF_PGPORT
	Allow installer to disable HBA
1997-04-03 22:16:34 +00:00
Marc G. Fournier
a03dc60508 Remove code associated with !ACLGROUP_PATCH, and appropriate #ifdef's 1997-04-03 21:31:57 +00:00
Marc G. Fournier
e3649e9e52 Various improvements to reduce questions :)
Remove USE_LOCALE from Makefile.global.in
Add USE_LOCALE to build/configure/config.h

Add check for BUILDRUN in configure to make sure that build is run before
configure
1997-04-03 21:26:36 +00:00
Marc G. Fournier
9d5c0af586 From: Thomas Lockhart <Thomas.G.Lockhart@jpl.nasa.gov>
Subject: [HACKERS] Aggregate function patches

Here are the aggregate function patches I originally sent in last December.
They fix sum() and avg() behavior for ints and floats when NULL values are
involved.

I was waiting to resubmit these until I had a chance to write a v6.0->v6.1
database upgrade script to ensure that existing v6.0 databases which have
not been reloaded for v6.1 do no break with the new aggregate behavior.
These scripts are included below. It's OK with me if someone wants to do
something different with the upgrade strategy, but something like this
was discussed a few weeks ago.

Also, there were a couple of small items which cropped up in doing a clean
install of 970403 (actually 970402 + 970403 changes since the full 970403
tar file appears to be damaged or at least suspect). They are the first
two patches below and can be omitted if desired (although I think they
aren't dangerous :).
1997-04-03 19:56:47 +00:00
Marc G. Fournier
2ab34dfe1a From: Thomas Lockhart <Thomas.G.Lockhart@jpl.nasa.gov>
Subject: [HACKERS] More date time functions

Here are some additional patches mostly related to the date and time
data types. It includes some type conversion routines to move between
the different date types and some other date manipulation routines such
as date_part(units,datetime).

I noticed Edmund Mergl et al's neat trick for getting function overloading
for builtin functions, so started to use that for the date and time stuff.
Later, if someone figures out how to get function overloading directly
for internal C code, then we can move to that technique.

These patches include documentation updates (don't faint!) for the built-in
man page. Doesn't yet include mention of timestamp, since I don't know
much about it and since it may change a bit to become a _real_ ANSI timestamp
which would include parser support for the declaration syntax (what do you
think, Dan?).

The patches were developed on the 970330 release, but have been rebuilt
off of the 970402 release. The first patch below is to get libpq to compile,
on my Linux box, but is not related to the rest of the patches and you can
choose not to apply that one at this time. Thanks in advance, scrappy!
1997-04-02 18:36:24 +00:00
Marc G. Fournier
a51df14a69 From: "Martin J. Laubach" <mjl@CSlab.tuwien.ac.at>
Subject: [HACKERS] Patch: SET var TO 'val'

  Here is a patch that adds a "SET variable TO 'somevalue'" capability
to the parser, and then calls the SetPGVariable() function (which does
just issue a elog(NOTICE) to see whether it works).

  That's the framework for adding timezone/date format/language/...
stuff.
1997-04-02 18:24:52 +00:00
Vadim B. Mikheev
6ec8d375f5 New node T_CreateSeqStmt. 1997-04-02 03:34:46 +00:00
Vadim B. Mikheev
46d11f314f New relkind ('S') for sequence relations.
New funcs (nextval & currval) in pg_proc.h
1997-04-02 03:29:37 +00:00
Vadim B. Mikheev
4d8e84155e Prototypes for sequence.c 1997-04-02 03:23:38 +00:00
Marc G. Fournier
28454c216b From: Thomas Lockhart <Thomas.G.Lockhart@jpl.nasa.gov>
Subject: Re: [HACKERS] abstime "now" broken

Yes, I broke 'now' :( with an attempt at a bug fix involving
servers running in the UTC/GMT timezone. These patches fix
the problem, and have been tested in GMT (+00 hours),
PST (-08), and NZT (+12) timezones which exercized the code for
various cases including across day boundaries.  btw, this code
fixes the same type of problem for 'today', 'yesterday', 'tomorrow',
for DATETIME, ABSTIME, DATE and TIME types.

The bugfix itself is quite small, but I have accumulated other
changes in the datetime data type and include them here also.
One set of changes involves printing ISO-formatted dates and
is in response to the helpful information from Kurt Lidl regarding
ANSI SQL dates. I'll send another e-mail sometime soon discussing
more issues he has raised...
1997-03-28 07:13:21 +00:00
Marc G. Fournier
159f8c63ad From: Dan McGuirk <mcguirk@indirect.com>
Reply-To: hackers@hub.org, Dan McGuirk <mcguirk@indirect.com>
To: hackers@hub.org
Subject: [HACKERS] tmin writeback optimization

I was doing some profiling of the backend, and noticed that during a certain
benchmark I was running somewhere between 30% and 75% of the backend's CPU
time was being spent in calls to TransactionIdDidCommit() from
HeapTupleSatisfiesNow() or HeapTupleSatisfiesItself() to determine that
changed rows' transactions had in fact been committed even though the rows'
tmin values had not yet been set.

When a query looks at a given row, it needs to figure out whether the
transaction that changed the row has been committed and hence it should pay
attention to the row, or whether on the other hand the transaction is still
in progress or has been aborted and hence the row should be ignored.  If
a tmin value is set, it is known definitively that the row's transaction
has been committed.  However, if tmin is not set, the transaction
referred to in xmin must be looked up in pg_log, and this is what the
backend was spending a lot of time doing during my benchmark.

So, implementing a method suggested by Vadim, I created the following
patch that, the first time a query finds a committed row whose tmin value
is not set, sets it, and marks the buffer where the row is stored as
dirty.  (It works for tmax, too.)  This doesn't result in the boost in
real time performance I was hoping for, however it does decrease backend
CPU usage by up to two-thirds in certain situations, so it could be
rather beneficial in high-concurrency settings.
1997-03-28 07:06:53 +00:00
Marc G. Fournier
dd07f76658 turn GEQO code on by default 1997-03-27 01:00:41 +00:00
Marc G. Fournier
64c82a5016 Add checs for float.h
Remove 'unused variable' from dt.c
1997-03-25 20:02:42 +00:00
Marc G. Fournier
0ccaaac169 another one missed 1997-03-25 09:44:33 +00:00
Marc G. Fournier
070381482f From: "D'Arcy J.M. Cain" <darcy@druid.net>
Subject: [HACKERS] backend/utils/adt/timestamp.c

Back to this timezone stuff.  The struct tm has a field (tm_gmtoff) which
is the offset from UTC (GMT is archaic BTW) in seconds.  Is this the
value you are looking for when you use timezone?  Note that this applies
to NetBSD but it does not appear to be in either ANSI C or POSIX.  This
looks like one of those things that is just going to have to be hand
coded for each platform.

Why not just store the values in UTC and use localtime instead of
gmtime when retrieving the value?

Also, you assume the time is returned as a 4 byte integer.  In fact,
there is not even any requirement that time be an integral value.  You
should use time_t here.

The input function seems unduly restrictive.  Somewhere in the sources
there is an input function that allows words for months.  Can't we do
the same here?

There is a standard function, difftime, for subtracting two times.  It
deals with cases where time_t is not integral.  There is, however, a
small performance hit since it returns a double and I don't believe
there is any system currently which uses anything but an integral for
time_t.  Still, this is technically the correct and portable thing to do.

The returns from the various comparisons should probably be a bool.
1997-03-25 09:25:33 +00:00
Marc G. Fournier
ea2fa32eff Rather than make this a Linux test, we should just test for the existence
of endian.h.  I figure that if it exists it's pretty sure that it has
the byte order information and we may catch some other ports without
any further testing.

From: "D'Arcy J.M. Cain" <darcy@druid.net>
1997-03-25 08:25:47 +00:00
Marc G. Fournier
dfe0475362 From: Thomas Lockhart <Thomas.G.Lockhart@jpl.nasa.gov>
Subject: [HACKERS] More patches for date/time

I have accumulated several patches to add functionality to the datetime
and timespan data types as well as to fix reported porting bugs on non-BSD
machines. These patches are:

dt.c.patch              - add datetime_part(), fix bugs
dt.h.patch              - add quarter and timezone support, add prototypes
globals.c.patch         - add time and timezone variables
miscadmin.h.patch       - add time and timezone variables
nabstime.c.patch        - add datetime conversion routine
nabstime.h.patch        - add prototypes
pg_operator.h.patch     - add datetime operators, clean up formatting
pg_proc.h.patch         - add datetime functions, reassign conflicting date OIDs
pg_type.h.patch         - add datetime and timespan data types

The dt.c and pg_proc.h patches are fairly large; the latter mostly because I tried
to get some columns for existing entries to line up.
1997-03-25 08:11:24 +00:00
Vadim B. Mikheev
427a87911d New func _bt_checkkeys() added to let caller know number of keys
for which checking was TRUE.
1997-03-24 08:04:51 +00:00
Vadim B. Mikheev
5d4e3a7511 Added #define NullValueRegProcedure and #define NonNullValueRegProcedure -
is in use by btree now.
1997-03-24 07:32:38 +00:00
Marc G. Fournier
bf872f0aff From: "D'Arcy J.M. Cain" <darcy@druid.net>
Subject: [HACKERS] libpq/pqcomm stuff and Solaris byte order

I decided to go ahead with the required changes since no one else seems
to.  I don't guarantee that it is perfect but with these changes the
package actually compiles.  While I was at it I added to the Sparc
Solaris header to define the byte order.  Note that NetBSD sets this
in the system headers so it wasn't required there.

In particular, someone may want to check whether I removed the correct
84 lines from backend/libpq/pqcomprim.c.
1997-03-20 18:23:33 +00:00
Marc G. Fournier
7d5770eaf2 Check for and set HAVE_CRYPT_H if <crypt.h> exists
include crypt.h in password.c if crypt.h does exist
1997-03-20 18:04:32 +00:00
Vadim B. Mikheev
8157c833aa Fix index_create for multi-column indices 1997-03-19 07:36:35 +00:00
Marc G. Fournier
6ffd26d8eb Add a check for strerr, and add in D'Arcy's strerror() code in case not
found
1997-03-19 02:37:42 +00:00
Marc G. Fournier
812a6c2b54 - Move most of the I/O in both libpq and the backend to a set
of common routines in pqcomprim.c (pq communication primitives).
    Not all adapted to it yet, but it's a start.

  - Rewritten some of those routines, to write/read bigger chunks of
    data, precomputing stuff in buffers instead of sending out byte
    by byte.

  - As a consequence, I need to know the endianness of the machine.
    Currently I rely on getting it from machine/endian.h, but this
    may not be available everywhere? (Who the hell thought it was
    a good idea to pass integers to the backend the other way around
    than the normal network byte order? *argl*)

  - Libpq looks in the environment for magic variables, and upon
    establishing a connection to the backend, sends it queries
    of the form "SET var_name TO 'var_value'". This needs a change
    in the backend parser (Mr. Parser, are you there? :)

  - Currently it looks for two Env-Vars, namely PG_DATEFORMAT
    and PG_FLOATFORMAT. What else makes sense? PG_TIMEFORMAT?
    PG_TIMEZONE?

From: "Martin J. Laubach" <mjl@wwx.vip.at>
1997-03-18 20:15:39 +00:00
Marc G. Fournier
d146305065 Patches for Vadim's multikey indexing... 1997-03-18 18:41:37 +00:00
Marc G. Fournier
b5e16b1869 Resync the source tree, commit some things that were missing (pqcomprim.c) and
bring in Thomas's updates for the date/time code...
1997-03-18 16:36:50 +00:00
Marc G. Fournier
4b4ac7c159 oracle_compat.c fixed for function overloading...
By: From: Edmund Mergl <mergl@nadia.s.bawue.de>
1997-03-16 20:40:52 +00:00
Marc G. Fournier
ea58f28ee8 om: "Martin J. Laubach" <mjl@CSlab.tuwien.ac.at>
Subject: [HACKERS] Patch for io routines

  I am currently trying to improve on the front-backend communication
routines; and noticed that lots of code are duplicated for libpq and
the backend. This is a first patch that tries to share code between
the two, more to follow.

        mjl
1997-03-16 18:51:29 +00:00
Marc G. Fournier
bd2c53c2a9 Remove overloaded functions until we can figure out how to get them to work
properly...
1997-03-16 01:16:31 +00:00
Marc G. Fournier
078633e729 Re-oid the oracle_compat functions
Add new "overloaded" oracle_compat functions (see man oracle_compat)
1997-03-15 06:13:12 +00:00
Marc G. Fournier
9e4798ea0d A couple of development scripts by Dan to detect unused and duplicate
oids
1997-03-15 06:03:08 +00:00
Marc G. Fournier
791c075852 Date/Time updates from Thomas... 1997-03-14 23:34:16 +00:00
Marc G. Fournier
0889b17444 Missing bits from Dan's patches...sorry :( 1997-03-14 05:56:27 +00:00
Marc G. Fournier
071484c5d8 From: Dan McGuirk <mcguirk@indirect.com>
Subject: [HACKERS] timestamp type

OK, last one.  This patch adds an ANSI SQL 'timestamp' type.
1997-03-12 21:28:14 +00:00
Marc G. Fournier
3a7c93e7f3 From: Dan McGuirk <mcguirk@indirect.com>
Subject: [HACKERS] password authentication

This patch adds support for plaintext password authentication.  To use
it, you add a line like

host         all         0.0.0.0       0.0.0.0           password  pg_pwd.conf


to your pg_hba.conf, where 'pg_pwd.conf' is the name of a file containing
the usernames and password hashes in the format of the first two fields
of a Unix /etc/passwd file.  (Of course, you can use a specific database
name or IP instead.)

Then, to connect with a password through libpq, you use the PQconnectdb()
function, specifying the "password=" tag in the connect string and also
adding the tag "authtype=password".

I also added a command-line switch '-u' to psql that tells it to prompt
for a username and password and use password authentication.
1997-03-12 21:23:16 +00:00
Marc G. Fournier
5dde558ce6 From: Dan McGuirk <mcguirk@indirect.com>
Subject: [HACKERS] linux/alpha patches

These patches lay the groundwork for a Linux/Alpha port.  The port doesn't
actually work unless you tweak the linker to put all the pointers in the
first 32 bits of the address space, but it's at least a start.  It
implements the test-and-set instruction in Alpha assembly, and also fixes
a lot of pointer-to-integer conversions, which is probably good anyway.
1997-03-12 21:13:19 +00:00
Marc G. Fournier
e4949f9fe5 From: Dan McGuirk <mcguirk@indirect.com>
Subject: [HACKERS] better access control error messages

This patch replaces the 'no such class or insufficient privilege' with
distinct error messages that tell you whether the table really doesn't
exist or whether access was denied.
1997-03-12 20:48:48 +00:00
Bruce Momjian
b913dd1f9e Add prototypes for oracle-compat functions. Rename geo-*.c adt to geo_*.c 1997-03-09 20:41:02 +00:00
Marc G. Fournier
83978e1ea7 This is a set of single row character functions, defined for the datatype
text, which are supposed to behave exactly as their Oracle counterparts.

From: Edmund Mergl <E.Mergl@bawue.de>
1997-03-04 05:32:26 +00:00
Marc G. Fournier
497e3c9b5e Fix the prototype for on_exitpg() 1997-03-03 23:34:27 +00:00
Bruce Momjian
688aff37f9 Change debug to pretty-print tree, recommended by Darren King. 1997-03-02 02:12:49 +00:00
Bruce Momjian
162c2a6e4c Remove _PAGE_SIZE_ as recommended by Darren King. 1997-03-02 01:34:50 +00:00
Vadim B. Mikheev
36058981a4 Added: UNIQUE feature to bulkload code. 1997-02-22 10:08:27 +00:00
Bruce Momjian
6eb0525185 Prevent under/over flow of float8 constants in parser. Small regression fix. 1997-02-19 20:11:05 +00:00
Marc G. Fournier
5b5bbdb161 Disable GEQO...it seems to be broken as shown by the message to
bugs@postgresql.org concerning updates
1997-02-19 19:25:42 +00:00
Marc G. Fournier
29138eeb3c Merge in GEQO Optimizer
From: "Martin S. Utesch" <utesch@aut.tu-freiberg.de>
1997-02-19 12:59:07 +00:00
Bruce Momjian
a17b01f320 Update btree patches that were missed. 1997-02-18 17:14:25 +00:00
Bruce Momjian
d38767fcb5 Add prototypes and remove unused variables from btree Fastbuild patch. 1997-02-14 22:47:36 +00:00
Bruce Momjian
31c8e94b34 Remove WIN32 defines. They never worked. 1997-02-14 04:19:07 +00:00
Marc G. Fournier
aa7dbd0b95 Had configure check for strdup, but didn't have it set HAVE_STRDUP
Fixed
1997-02-13 08:33:28 +00:00
Marc G. Fournier
fb70587c1d Patch from Massimo Dal Zotto <dz@cs.unitn.it>
The following patches add to the backend a new debugging flag -K which prints
a debug trace of all locking operations on user relations (those with oid
greater than 20000). The code is compiled only if LOCK_MGR_DEBUG is defined,
so the patch should be harmless if not explicitly enabled.
I'm using the code to trace deadlock conditions caused by application queries
using the command "$POSTMASTER -D $PGDATA -o '-d 1 -K 1'.
The patches are for version 6.0 dated 970126.
1997-02-12 05:25:13 +00:00
Marc G. Fournier
5d9f146c64 What looks like some *major* improvements to btree indexing...
Patches from: aoki@CS.Berkeley.EDU (Paul M. Aoki)

i gave jolly my btree bulkload code a long, long time ago but never
gave him a bunch of my bugfixes.  here's a diff against the 6.0
baseline.

for some reason, this code has slowed down somewhat relative to the
insertion-build code on very small tables.  don't know why -- it used
to be within about 10%.  anyway, here are some (highly unscientific!)
timings on a dec 3000/300 for synthetic tables with 10k, 100k and
1000k tuples (basically, 1mb, 10mb and 100mb heaps).  'c' means
clustered (pre-sorted) inputs and 'u' means unclustered (randomly
ordered) inputs.  the 10k table basically fits in the buffer pool, but
the 100k and 1000k tables don't.  as you can see, insertion build is
fine if you've sorted your heaps on your index key or if your heap
fits in core, but is absolutely horrible on unordered data (yes,
that's 7.5 hours to index 100mb of data...) because of the zillions of
random i/os.

if it doesn't work for you for whatever reason, you can always turn it
back off by flipping the FastBuild flag in nbtree.c.  i don't have
time to maintain it.

good luck!

baseline code:

time psql -c 'create index c10 on k10 using btree (c int4_ops)' bttest
real   8.6
time psql -c 'create index u10 on k10 using btree (b int4_ops)' bttest
real   9.1
time psql -c 'create index c100 on k100 using btree (c int4_ops)' bttest
real   59.2
time psql -c 'create index u100 on k100 using btree (b int4_ops)' bttest
real   652.4
time psql -c 'create index c1000 on k1000 using btree (c int4_ops)' bttest
real   636.1
time psql -c 'create index u1000 on k1000 using btree (b int4_ops)' bttest
real   26772.9

bulkloading code:

time psql -c 'create index c10 on k10 using btree (c int4_ops)' bttest
real   11.3
time psql -c 'create index u10 on k10 using btree (b int4_ops)' bttest
real   10.4
time psql -c 'create index c100 on k100 using btree (c int4_ops)' bttest
real   59.5
time psql -c 'create index u100 on k100 using btree (b int4_ops)' bttest
real   63.5
time psql -c 'create index c1000 on k1000 using btree (c int4_ops)' bttest
real   636.9
time psql -c 'create index u1000 on k1000 using btree (b int4_ops)' bttest
real   701.0
1997-02-12 05:04:52 +00:00
Bruce Momjian
4331b16320 Add comment for questionable 5 padding. 1997-02-11 15:37:18 +00:00
Marc G. Fournier
86c28441b4 Remove machine.h, since it wasn't doing anything that config.h wasn't
already doing

Removed only reference to a machine.h I could find in c.h, to win32/machine.h
1997-02-09 04:50:25 +00:00
Marc G. Fournier
e7c767b477 Try to further reduce the PORT dependencies.
Essentially, config.h now includes an 'os.h', which is created via
configure by linking a "port.h" file from the port directory to the
include directory.

Going to try to merge backend/port in similar ways
1997-02-09 04:34:07 +00:00
Marc G. Fournier
d557375d61 Remove NO_{SIGPROCMASK,SETSID,WAITPID} from nextstep port, since they
aren't doing anything anyway
1997-02-09 03:36:08 +00:00
Marc G. Fournier
171e0c27e4 Changes to configure/config.h.in to check for:
sigprocmask, setsid and waitpid

Especially for nextstep systems

Awaiting for a context diff from Gregor to complete changes for the nextstep
port
1997-02-09 03:33:38 +00:00
Bruce Momjian
e2292e0c0c Add missing paren for hpux. 1997-02-08 20:39:50 +00:00
Bruce Momjian
2300ac0dc4 Add attribute optimization statistics. 1997-02-07 16:24:12 +00:00
Marc G. Fournier
2c9dbc57e5 Various changes to improve/support Mklinux
Submitted by: Tatsuo Ishii
1997-02-06 08:40:16 +00:00
Marc G. Fournier
9b9141245c Make sure all changes are committed... 1997-02-06 06:33:58 +00:00
Marc G. Fournier
a7257ff41f autoconf test for and set HAVE_VFORK 1997-02-06 06:15:49 +00:00
Marc G. Fournier
e72b1ccd30 Add test for union semun to configure
Remove references to NEED_UNION_SEMUN from include/config.h.in and
from include/storage/ipc.h, replacing it with a single HAVE_UNION_SEMUN
1997-02-06 05:30:50 +00:00
Marc G. Fournier
4506116db8 Add in appropriate checks for inet_aton, and modifications to backend/port/Makefile
to include inet_aton.c if required
1997-02-04 22:39:56 +00:00
Marc G. Fournier
63c28920ab remove old non-autoconf config.h
clean up some of the readline code in config.h.in
1997-02-04 09:08:56 +00:00
Marc G. Fournier
a20440b210 Final file required for autoconf, so far... 1997-02-04 08:54:47 +00:00
Marc G. Fournier
a1019b6ca7 AIX *does* have <sys/select.h>
Pointed out by Darren King
1997-01-30 16:02:38 +00:00
Marc G. Fournier
6791355823 aix does have <termios.h>
pointed out by Darren King
1997-01-30 03:54:13 +00:00
Marc G. Fournier
abd38d8b22 Linux doesn't have sys/select.h... 1997-01-29 04:49:14 +00:00
Marc G. Fournier
8d3d5d2e2f Slight change to nabstime.c so that configure is able to handle a system
whereby timezone isn't an int, but tzset() exists...

This isn't a definitive fix, as there is probably an easier way of
fixing the bug...
1997-01-27 01:51:26 +00:00
Marc G. Fournier
a246e87d12 Convert MISSING_SYSCONF to !HAVE_SYSCONF for autoconf
From: Keith Parks
1997-01-27 00:09:47 +00:00
Bruce Momjian
1836ce2c81 Change next to nextstep where missed. 1997-01-26 20:15:26 +00:00
Marc G. Fournier
632c44d829 Bring in a patch from Keith Parks to move the use of European dates
from a #define to a run-time option '-e'

Man page was updated to reflect new option
1997-01-26 15:32:28 +00:00
Marc G. Fournier
aa46d53fa4 Okay, this should pretty much clean up the psql/readline/history mess.
Added a README.readline file until configure is integrated to *try* and
explain the way things stand.

Removed a stray configure .in file
1997-01-25 22:52:08 +00:00
Marc G. Fournier
374b2b0639 Why can't everyone be standard? :(
Add some code to make psql happy with a system where there is *no*
history code available, but there is readline code...
1997-01-25 22:16:43 +00:00
Marc G. Fournier
49f30e80fc Some fixes for using configure under sparc_solaris 1997-01-25 21:55:37 +00:00
Bruce Momjian
311c521d96 would you mind committing the following changes for me? (the first
bug causes compilation to fail on alpha, the second causes a compiler
in this environment
1997-01-25 21:09:20 +00:00
Marc G. Fournier
37e8621623 The check should be for getrusage(), not rusage() ... change the defines
to reflect what configure is going to define when the time comes
1997-01-25 19:29:47 +00:00
Marc G. Fournier
f389e9dfc2 Change how readline support is included in psql.c ...
See message to hackers@ mailing list concerning this...
1997-01-25 03:51:59 +00:00
Bruce Momjian
6dbe1be690 Restructure padding to handle structure already 128 bytes(alpha). 1997-01-25 03:09:33 +00:00
Marc G. Fournier
60265ee651 Switch over NEED_RUSAGE to HAVE_RUSAGE for configure 1997-01-24 23:48:32 +00:00
Marc G. Fournier
970e3f69b7 I reversed a bunch of the #define's inadvertantly...
Fixed them, and am re-committing
1997-01-24 23:36:33 +00:00
Marc G. Fournier
c19b247aec Change NEED_SIG_JMP to HAVE_SIGSETJMP in preparation for configure 1997-01-24 22:42:35 +00:00
Marc G. Fournier
f12c5f898c Another switch for configure: NEED_SYS_SELECT_H to HAVE_SYS_SELECT_H 1997-01-24 18:27:32 +00:00
Marc G. Fournier
0a16069901 Convert NEED_{RINT,CBRT,ISINF} to HAVE_* in prepration for configure... 1997-01-24 18:17:37 +00:00
Marc G. Fournier
3ffd5694dd Replace occurances of USE_{LIMITS,VALUES}_H with HAVE_* in preparation
for switch over to configure
1997-01-24 18:00:48 +00:00
Marc G. Fournier
cfe18a8e3f Remove from include/config.h:
#if defined(aix)
#define TERMIOS_H_LOCATION <termios.h>
#else
#define TERMIOS_H_LOCATION <sys/termios.h>
#endif

libpq/fe-exec.c modified so that location of termios.h is determined
by whether HAVE_TERMIOS_H is defined or not, in preparation for switch
to configure
1997-01-24 17:47:39 +00:00
Marc G. Fournier
1ac3ea9dcf This should clean everything up back to pre-configure status 1997-01-24 17:32:34 +00:00
Marc G. Fournier
03f0136990 Remove all the configure related stuff... 1997-01-24 17:09:11 +00:00
Marc G. Fournier
a245ba7cb7 Okay, that does it for tonight...
Cleaned out alot of the #define that can be auto-detect'd by
configure from config.h...
1997-01-24 04:09:41 +00:00
Marc G. Fournier
e736ca3113 Slowly building up config.h so that it is pretty much generated by
configure, thereby reducing the ports dependencies in it :)
1997-01-24 00:42:22 +00:00
Marc G. Fournier
36f7766a18 Add config.h to configure 1997-01-23 23:31:39 +00:00
Marc G. Fournier
fdaf47f9f4 The last patch fixes some incongruences in the #define used to compile the
Tcl arrays support. Here are the correct values to be defined in config.h
and pgtclCmds.c.

Submitted by: Massimo Dal Zotto <dz@cs.unitn.it>
1997-01-23 19:47:18 +00:00
Marc G. Fournier
5184bd7cb3 Document and enable ACLGROUP_PATCH submitted by Massimo 1997-01-23 19:39:40 +00:00
Bruce Momjian
fa937b5e6b Remove SB_PAD. Compute padding at compile time. 1997-01-23 18:15:29 +00:00
Marc G. Fournier
f504e5a253 Taking a chance here. Under both Solaris and FreeBSD, there is a
/usr/include/limits.h (which quiets the costsize.c warnings)...under
FreeBSD, /usr/include/limits.h *includes* machine/limits.h, while under
Solaris, there is no such things as /usr/include/machine...

Problem with Solaris pointed out by Mark Wahl
1997-01-22 04:41:45 +00:00
Bruce Momjian
84876289cc Cast constants to the type of the other binary operand.
Invalidate vacuum relation cache to use new row counts from vacuum.
1997-01-22 01:44:02 +00:00
Vadim B. Mikheev
deef313fd0 New flag for BufferDesc - BM_JUST_DIRTIED, - to prevent
losing data changes.
1997-01-20 04:06:13 +00:00
Bruce Momjian
3a02ccfa1d Change EXPLAIN options to just use VERBOSE. 1997-01-16 14:56:59 +00:00
Vadim B. Mikheev
5abfe1484a SetBufferWriteMode () added; FlushLocalBuffer () fixed (shouldn't
release buffer if called from WriteNoReleaseBuffer ())
1997-01-16 07:53:27 +00:00
Bruce Momjian
a514dded2a DEC Alpha fix. Missing #. 1997-01-14 23:06:01 +00:00
Vadim B. Mikheev
cbac986736 There is no more ReleaseTmpRelBuffers, but ReleaseRelationBuffers. 1997-01-14 05:36:15 +00:00
Bruce Momjian
abeaabef2e Restored original pg_type/pg_attribute defaults. Regression fixes. 1997-01-14 01:42:38 +00:00
Bryan Henderson
6ece8a8d0b Part of patch to make a working nextstep port. 1997-01-13 03:54:48 +00:00
Bruce Momjian
0d3bf78e0b Added VERBOSE option to vacuum command. 1997-01-13 03:45:33 +00:00
Marc G. Fournier
ef228cb170 From: Keith Parks <emkxp01@mtcc.demon.co.uk>
OK, The votes are in for the NOFILES limit.

With the exception of Next, for which I've not yet heard, all supported platforms
seem to have the sysconf() call.


port           supported	default	Source.
aix            yes		2000	darrenk@insightdist.com
alpha          yes		4096	mjl@wwx.vip.at
BSD44_derived  yes		64	scrappy@hub.org
bsdi           yes		???	maillist@candle.pha.pa.us
dgux           yes		???	geek@andrew.cmu.edu
hpux           yes		60	emkxp01@mtcc.demon.co.uk
i386_solaris   yes		64	emkxp01@mtcc.demon.co.uk
irix5          yes		200	martin@biochem.uc.ac.uk
linux          yes		256	emkxp01@mtcc.demon.co.uk
next           ????		???
sparc_solaris  yes		64	emkxp01@mtcc.demon.co.uk
sunos4         yes		64	emkxp01@mtcc.demon.co.uk
svr4           yes		64	chicks@chicks.net
ultrix4        yes		64	erik@sockdev.uni-c.dk

So here's a patch that I think will do the job.
(I assume Next will have sysconf() but if not just add MISSING_SYSCONF to
 the config.h file )

Thanks,
Keith.
1997-01-13 01:25:29 +00:00
Bruce Momjian
0567d7edb0 Remove octal character constants and convert to decimal constants 1997-01-10 20:44:41 +00:00
Bruce Momjian
90ff767d14 I found the following bugs in the version 6.0 (dated 961229).
At least the first two should be fixed before the final release of 6.0.

1)      There is a mismatch between the type declared in the catalog for
        the input/output attributes of pg_type and the actual type of
        values stored in the table.  The type of typinput, typoutput,
        typsend and typreceive are declared oid (26) while the values are
        regproc (24).  The error was there also in previous versions but
        nobody noticed it until an Assert has been added in ExecEvalVar.
        The effect is that it is now impossible to replace the typoutput
        of existing data types with new procs.

2)      The identd hba fails after the first time because the data read
        from the identd socket is not zero-terminated and strlen reports
        an incorrect length if the stack contains garbage, which usually
        happens after the first connection has been made.

3)      The new initdb wants to create itself the data directory. This
        implies that the parent directory must be writable by postgres and
        this may not always be desirable.  A better solution would be to
        allow the directory to be created by root and then filled by initdb.
        It would also nice to have some reasonable default for PGLIB and
        PGDATA like the previous version did.  This applies also to the
        postmaster executable.
1997-01-10 17:40:07 +00:00
Vadim B. Mikheev
c7990b35f7 index_insert has now HeapRelation as last param (for
unique index implementation).
1997-01-10 09:36:34 +00:00
Bryan Henderson
3c4b21493d Use proper types so it compiles on DEC C89. Thanks Erik Bertelson. 1997-01-08 08:39:10 +00:00
Bryan Henderson
2091345297 Add Irix stuff. 1997-01-06 10:10:43 +00:00
Marc G. Fournier
a9bfcf459e PORT NeXT requires an isascii() define...put it in config.h, most likely
*should* have gone into the ports directory, but hopefully *someday* we'll
be able to get rid of that?
1997-01-06 00:22:55 +00:00
Marc G. Fournier
5f5958cb98 add define for USE_LIMIT_H into NeXT port...
Pointed out by: Ovidiu Predescu <ovidiu@bx.logicnet.ro>
1997-01-06 00:08:07 +00:00
Bruce Momjian
cb6cb7745d Here's the final set of patches to 6.0 (sup'd on 27/12/96) that allow a full
gmake of the code without interruption.

There's also some tidy-up of the MAXPATHLEN stuff based on the assumption that
all supported platforms have MAXPATHLEN defined in <sys/param.h>.

(The only unknowns for the above are AIX and IRIX5.)
1996-12-28 02:13:05 +00:00
Bryan Henderson
645b587788 Remove use of "bool", which user program may not have defined. This .h file
gets included by libpq-fe.h, and thus is part of the API.
1996-12-26 23:28:27 +00:00
Bruce Momjian
e8f43854ac pq/signal() portability patch. Also psql copy prompt fix. 1996-12-26 22:08:34 +00:00
Bruce Momjian
9643e8ba37 Added needed prototype.
Bruce Momjian
1996-12-26 17:53:40 +00:00
Bruce Momjian
0cb22cb7ef Removal of unused CppConcat defines.
Bruce Momjian
1996-12-26 17:53:24 +00:00
Bryan Henderson
ab90c18d12 Fix Solaris stuff so it compiles. Thanks Keith Parks. 1996-12-23 10:16:54 +00:00
Bruce Momjian
a952d67296 Remove NOTIFY_PATCH. 1996-12-20 20:33:46 +00:00
Marc G. Fournier
dc97a7b90e Add various comments to explain #define's and add a few extra #define's
Submitted by: Massimo Dal Zotto <dz@cs.unitn.it>
1996-12-19 04:56:35 +00:00
Bruce Momjian
db7a90f1d9 Make GROUP BY work with aliases, ORDER BY with column numbers 1996-12-17 01:53:43 +00:00
Bryan Henderson
9fc7250d3a Make compile on AIX, Alpha OSF. Thanks Darren King, Igor Notanzon. 1996-12-15 09:05:53 +00:00
Bryan Henderson
7439ba64b1 Use "Oid" type where applicable and %ud instead of %d. Thanks Darren King. 1996-12-11 03:18:12 +00:00
Bryan Henderson
2697c27923 sigjmp_buf/jmp_buf is backwards, so backend doesn't compile. 1996-12-10 07:04:22 +00:00
Bryan Henderson
7492fb165f Fix bug: libpq clients (which include libpq-fe.h) won't compile.
Plus: sigjmp_buf/jmp_buf is backwards, so backend doesn't compile.
1996-12-10 07:03:43 +00:00
Bryan Henderson
79729c0e5e Add comments defining "typelem" column of pg_type. 1996-12-09 01:23:51 +00:00
Bryan Henderson
9005a38bdb Change portname "sparc" to "sunos4" and change some portname dependencies to
feature dependencies.  Thanks Kurt J. Lidl.
1996-12-04 03:06:33 +00:00
Bryan Henderson
514d69bdbf Remove #if defined(bsdi) define SIGJMP_BUF, per Kurt Lidl. 1996-12-03 00:11:07 +00:00
Bruce Momjian
63df35e249 This patch changes quite a few instances of references of Oid's
as ints and longs.  Touches on quite a few function args as
well.  Most other files look ok as far as Oids go...still checking
though...

Since Oids are type'd as unsigned ints, they should prolly be used
with the %ud format string in elog and sprintf messages.  Not sure
what kind of strangeness that could produce.

Darren King
1996-11-30 18:07:02 +00:00
Vadim B. Mikheev
a962c6128f vrl_min_tlen added to VRelListData. 1996-11-29 10:29:45 +00:00
Bruce Momjian
c9ec45062a Remove unused define's. 1996-11-27 13:48:58 +00:00
Bryan Henderson
9c0afeabb7 More stuff to make it compile on various ports. 1996-11-27 08:16:44 +00:00
Vadim B. Mikheev
a38365e0eb New structures for new vacuum. 1996-11-27 07:35:06 +00:00
Vadim B. Mikheev
948720ee94 New mdtruncate() & smgrtruncate() funcs. 1996-11-27 07:33:42 +00:00
Vadim B. Mikheev
b41aa3903c TransactionIdIsInProgress moved to shmem.c 1996-11-27 07:32:10 +00:00
Bryan Henderson
93f722536f Whoops, redo Ultrix patch so the other ports still compile. 1996-11-26 07:39:11 +00:00
Bryan Henderson
46d58fba33 Make it compile on Ultrix. Thanks Erik Bertelson. 1996-11-26 03:20:35 +00:00
Bryan Henderson
d3f9d6ad4f Move include of signal.h inside pqsignal.h so it's always where it's needed. 1996-11-24 04:07:17 +00:00
Bryan Henderson
4a820de1f2 Include some macros that used to be -D options in Makefile.global. 1996-11-18 02:27:27 +00:00
Bruce Momjian
b3ce105b31 Add prototype for new datetime functions. 1996-11-16 04:59:10 +00:00
Marc G. Fournier
8abc490181 Features added:
* Wrote max(date) and min(date) aggregates
* Wrote operator "-" for date; date - date yields number of days
  difference
* Wrote operator+(date,int) and operator-(date,int); the int is the
  number of days.  Each operator returns a new date.


By: Tom Tromey <tromey@creche.cygnus.com>
1996-11-14 21:39:14 +00:00
Marc G. Fournier
fb3b9d7661 Fix a comment that wasn't commente'd out
Pointed out by: Erik Bertelsen <erik@sockdev.uni-c.dk>
1996-11-14 20:06:39 +00:00
Bryan Henderson
f64b840387 Remove most compile-time options, add a few runtime options to make up for it.
In particular, no more compiled-in default for PGDATA or LIBDIR.  Commands
that need them need either invocation options or environment variables.
PGPORT default is hardcoded as 5432, but overrideable with options or
environment variables.
1996-11-14 10:25:54 +00:00
Bryan Henderson
200d4a4ec3 Include stdlib.h to gives its NULL, etc. definitions precedence over ours. 1996-11-14 06:06:39 +00:00
Marc G. Fournier
07a65b2255 Commit of a *MAJOR* patch from Dan McGuirk <djm@indirect.com>
Changes:

        * Unique index capability works using the syntax 'create unique
          index'.

        * Duplicate OID's in the system tables are removed.  I put
          little scripts called 'duplicate_oids' and 'find_oid' in
          include/catalog that help to find and remove duplicate OID's.
          I also moved 'unused_oids' from backend/catalog to
          include/catalog, since it has to be in the same directory
          as the include files in order to work.

        * The backend tries converting the name of a function or aggregate
          to all lowercase if the original name given doesn't work (mostly
          for compatibility with ODBC).

        * You can 'SELECT NULL' to your heart's content.

        * I put my _bt_updateitem fix in instead, which uses
          _bt_insertonpg so that even if the new key is so big that
          the page has to be split, everything still works.

        * All literal references to system catalog OID's have been
          replaced with references to define'd constants from the catalog
          header files.

        * I added a couple of node copy functions.  I think this was a
          preliminary attempt to get rules to work.
1996-11-13 20:56:15 +00:00
Bryan Henderson
17befd6c69 Use new utils/version.c instead of backend/utils/init/magic.c. 1996-11-12 06:47:10 +00:00
Bryan Henderson
b0961b3974 Goes with the recently added src/utils/version.c, will replace some stuff in
miscadmin.h.
1996-11-11 14:24:38 +00:00
Bruce Momjian
aaeef4d17d All external function definitions now have prototypes that are checked. 1996-11-10 03:06:38 +00:00
Bryan Henderson
bf5cbbf789 Quiet compiler warnings. 1996-11-10 02:27:15 +00:00
Bryan Henderson
5d9e25c5ff Add USE_POSIX_TIME, HAVE_TZSET for Linux so backend compiles. 1996-11-10 00:50:54 +00:00
Bruce Momjian
1d0e308395 Added new include file. 1996-11-09 05:48:28 +00:00
Marc G. Fournier
757b829ea8 A few more sparc_solaris cleanups from keith parks 1996-11-09 01:48:32 +00:00
Bruce Momjian
c9c0e111b8 More compile cleanups 1996-11-08 20:46:33 +00:00
Marc G. Fournier
cecf081aba Change includes from "" to <> 1996-11-08 06:43:28 +00:00
Bruce Momjian
4b2b8592a0 Compile and warning cleanup 1996-11-08 06:02:30 +00:00
Marc G. Fournier
026387013e Secondly, small problem when trying to create a MAX/MIN aggregate in 1.09.
>From the create_aggregate man page...

"The arguments to state-transition-function-1 must be
(stype1,basetype), and its return value must be stype1."

create aggregate MIN (sfunc1 = int2smaller,
                      basetype = int2,
                      stype1 = int2);

will fail becase int2smaller and int2larger are in pg_proc
as returning an int4.  Can't happen since both args have to
be int2.

From: Darren King <aixssd!ceodev!darrenk@abs.net>
1996-11-08 01:08:37 +00:00
Marc G. Fournier
b38d565fc3 D'Arcy's recent cleanups 1996-11-08 00:46:14 +00:00
Marc G. Fournier
1d0dd471fa Okay...this pretty much cleans out the include files.
I'm able to get through a 'make' of the backend with no errors except
the occasional 'might not be initialized error', which is nothing major,
just annoying.

Have a few patches from D'Arcy to incorporate, but am waiting until I can
get a clean compile first, which I'm hoping to have before bed, or sometime
tomorrow.
1996-11-06 10:31:02 +00:00
Marc G. Fournier
b49d41884f Add prototype for: int DebugFileOpen() 1996-11-06 10:15:25 +00:00
Marc G. Fournier
9f5eac1f97 ...same... 1996-11-06 09:56:47 +00:00
Marc G. Fournier
be9197320a One by one, file by file 1996-11-06 09:27:29 +00:00
Marc G. Fournier
3f07f6bab2 Another 1996-11-06 09:24:57 +00:00
Marc G. Fournier
7d5e795596 Getting there, one by one... 1996-11-06 09:21:42 +00:00
Marc G. Fournier
92ec7b5812 And another 1996-11-06 09:19:16 +00:00
Marc G. Fournier
8b6b4d063a another one bites the dust 1996-11-06 09:17:31 +00:00
Marc G. Fournier
e0b772cc00 another gone 1996-11-06 08:52:04 +00:00
Marc G. Fournier
33a8df7edd Another one cleaned up 1996-11-06 08:07:45 +00:00
Marc G. Fournier
98f72c28dc Oops, two includes unrequired 1996-11-06 08:05:02 +00:00
Marc G. Fournier
08905a7406 Another one bite sthe dust 1996-11-06 08:02:40 +00:00
Marc G. Fournier
6508241acb another include cleaned out 1996-11-06 07:50:12 +00:00
Marc G. Fournier
87b07a3974 Further include file cleanups 1996-11-06 07:44:18 +00:00
Marc G. Fournier
8544daf645 Another one bites the dust 1996-11-06 07:05:18 +00:00
Marc G. Fournier
90113e2847 another one quickly done up 1996-11-05 11:29:45 +00:00
Marc G. Fournier
dc0e256902 clean this one 1996-11-05 11:23:43 +00:00
Marc G. Fournier
6608278ea4 these ones have their dependencies cleaned up 1996-11-05 10:37:16 +00:00
Marc G. Fournier
d1e9a76131 Another run through.
This gets us a clean compile of 'common' and 'gist' with *clean* #include
files
1996-11-05 08:18:44 +00:00
Marc G. Fournier
efef619b83 And double check changes 1996-11-05 07:41:13 +00:00
Marc G. Fournier
6c8482c970 Make sure all changes commited 1996-11-05 07:38:17 +00:00
Marc G. Fournier
51716fdd8d Another 1996-11-05 07:24:03 +00:00
Marc G. Fournier
9ec5e78613 And another one 1996-11-05 07:22:50 +00:00
Marc G. Fournier
bc711a3f54 Another one bits the dust... 1996-11-05 07:20:09 +00:00
Marc G. Fournier
54c2aa99bd And another... 1996-11-05 07:18:05 +00:00
Marc G. Fournier
8202bce9ba And another.. 1996-11-05 07:15:58 +00:00
Marc G. Fournier
7585d25185 Another one cleaned out 1996-11-05 07:07:22 +00:00
Marc G. Fournier
d2125805d1 Another directory totally cleaned out 1996-11-05 06:11:08 +00:00
Marc G. Fournier
abf578ac6c Fix c.h for sparc_solaris
Pointed out by Keith Parks
1996-11-05 05:28:20 +00:00
Marc G. Fournier
d2746c65b5 Make sure all the cleaned includes are commited 1996-11-04 12:12:52 +00:00
Marc G. Fournier
0e2822072c Make sure all the cleaned up includes are commited 1996-11-04 12:11:44 +00:00
Marc G. Fournier
dc037969ad Another one completely cleaned up 1996-11-04 12:07:05 +00:00
Marc G. Fournier
0b3cb80e03 finally, this directory is (should be!) totally clean 1996-11-04 11:51:27 +00:00
Marc G. Fournier
434201d8d7 another pass through.
Note.  all include files that have been hit so far have had extraneous
       include files cleaned out and are reduced to...the lowest common
       "include file", based on 'cc -Wall -I. test.c', where test.c is:

#include "postgres.h"
#include "<top of branches>" (ie. top of branches this time was utils/fcache2.h)
1996-11-04 08:53:07 +00:00
Marc G. Fournier
63482946c7 More cleanups (this one will most likely break under Win32, if anyone is
working on it)
1996-11-04 08:14:05 +00:00
Marc G. Fournier
82400d4c50 Next, based on utils/catcache.h 1996-11-04 07:59:39 +00:00
Marc G. Fournier
5a5f9420e5 Another series started from utils/builtins.h 1996-11-04 07:46:06 +00:00
Marc G. Fournier
d93d3c843a -Wall based cleanup of include files, based from acl.h, and everything
that it depends on
1996-11-04 07:18:46 +00:00
Marc G. Fournier
796aca3916 include utils/palloc.h as a default include, as its used more often then
not
1996-11-04 06:35:36 +00:00
Bruce Momjian
de3286ce3a Remove AMERICAN STYLE. Not used. 1996-11-04 05:02:44 +00:00
Bruce Momjian
18bbad7696 Remove OPENLINK define 1996-11-04 04:53:51 +00:00
Bruce Momjian
0108fddf13 Remove NULL_PATCH define 1996-11-04 04:35:48 +00:00
Bruce Momjian
8edbc3bde4 Remove ARRAY_PATCH define 1996-11-04 04:19:55 +00:00
Bruce Momjian
e43dfad289 Remove ESCAPE_PATCH define 1996-11-04 04:05:16 +00:00
Bruce Momjian
7e42f4814d Removed PORTNAME_. Use OS version only. 1996-11-04 04:00:56 +00:00
Marc G. Fournier
d46d53387f Not sure if this is the right place, but add a prototype for
Bryan's superuser() function
1996-11-03 23:49:07 +00:00
Marc G. Fournier
ff36ebc922 More cleans of the inter-dependencies in the #include files 1996-11-03 12:13:35 +00:00
Marc G. Fournier
0c960e7fc0 More include file cleanups 1996-11-03 08:17:38 +00:00
Marc G. Fournier
3516eda61c Okay, following Bryan's (and others) suggestions...cleaning up the
include files properly...yet, slowly...
1996-11-01 09:31:17 +00:00
Marc G. Fournier
f44acab12c Include dependencies based on tupdesc.h, as:
access/tupdesc.h
	catalog/pg_attribute.h
	nodes/pg_list.h
		nodes/nodes.h
	access/attnum.h
1996-11-01 09:22:37 +00:00
Marc G. Fournier
6d4c760eb5 Include file cleanup:
Based on include files require by htup.h, as:

	access/htup.h
		storage/itemptr.h
			storage/block.h
			storage/off.h
		utils/nabstime.h
			<time.h>
1996-11-01 09:19:11 +00:00
Bruce Momjian
dd10d0de23 More chanes for bsdi_2_1 removal 1996-11-01 03:36:16 +00:00
Bruce Momjian
3a4c2888a1 Removal of bsdi_2_1 port. 1996-11-01 01:47:23 +00:00
Bruce Momjian
727c840754 typo fix on include file. 1996-10-31 18:33:09 +00:00
Bruce Momjian
69dfa71bc3 Fix prototype. 1996-10-31 18:27:54 +00:00
Marc G. Fournier
99412aef23 remove:
#include "postgres.h"
	#include "c.h"
1996-10-31 09:51:30 +00:00
Marc G. Fournier
83311355d7 Add these files to ${SRCDIR}/include 1996-10-31 07:10:14 +00:00
Marc G. Fournier
5cbff9a020 USE of PORTNAME_* should be discouraged wherever possible. The code
*should* be intelligent enough that:

#if defined(__FreeBSD__) works, where __FreeBSD__ is actually defined
by the compiler itself.

Makefile.global used to have -DPORTNAME_<port> -D<port> as part of the flags
for gcc while all occurances of PORTNAME_<port> slowly get removed from
the source tree...
1996-10-31 06:55:15 +00:00
Bruce Momjian
3d7fe6c97c Added needed include file. 1996-10-31 05:58:01 +00:00
Bruce Momjian
7a93da98af Missing from parser patch.
Added needed include file.
1996-10-31 05:57:23 +00:00
Bruce Momjian
3eb6cc491d changed define(port) to define(PORTNAME_port)
Added needed include file.
1996-10-31 05:56:27 +00:00
Bruce Momjian
f59a46a8c8 Parser Overhaul 1996-10-30 02:02:41 +00:00
Marc G. Fournier
87b48ff032 D'Arcy's cleanups 1996-10-26 04:15:05 +00:00
Marc G. Fournier
20b4c46e26 Fixes: Errors when PQexec() in backend creates temp
relations and transaction is aborted

Submitted by: wieck@sapserv.debis.de (Jan Wieck)
1996-10-24 07:55:54 +00:00
Marc G. Fournier
7f76072d81 Bruce...does this fix it once and for all? *grin* 1996-10-24 06:25:34 +00:00
Marc G. Fournier
f36b2560a4 Major code cleanups from D'arcy (-Wall -Werror) 1996-10-23 07:42:13 +00:00
Marc G. Fournier
8325d9fc3b Define prototypes from giststrat.c required in gistscan.c 1996-10-21 05:05:42 +00:00
Marc G. Fournier
597a1de903 remove an #ifdef/#else/#endif that doesn't actually have anything inside
of it
1996-10-20 21:51:45 +00:00
Marc G. Fournier
2217b1ccd8 Make default HAVE_MEMMOVE defined, undef inside of definitions for sparc 1996-10-20 20:58:14 +00:00
Marc G. Fournier
331bb53b0f change '#if defined(PORTNAME_sparc)' to '#if !defined(HAVE_MEMMOVE)' 1996-10-20 20:57:06 +00:00
Marc G. Fournier
925ea01ed6 Add #define HAVE_MEMMOVE for systems that do have it. 1996-10-20 20:40:17 +00:00
Marc G. Fournier
7b58bb0088 Clean up comments (-Wall -Werror) 1996-10-20 20:34:06 +00:00
Marc G. Fournier
2b5a8bc38b More include files cleaned up 1996-10-20 06:35:27 +00:00
Marc G. Fournier
0eac5b0ed5 Welp, another subdirectory cleaned out of redundant/unused #include
files
1996-10-19 06:27:33 +00:00
Marc G. Fournier
f4ba64a0ac Almost have access/common cleaned up... 1996-10-19 04:49:29 +00:00
Marc G. Fournier
23f444f64d A few more yet... 1996-10-19 04:48:30 +00:00
Marc G. Fournier
6592bbaf08 wish there was an easier way to clean this up... 1996-10-19 04:46:28 +00:00
Marc G. Fournier
4c9309a8d5 another small one 1996-10-19 04:36:08 +00:00
Marc G. Fournier
42dd813494 Hopefully that cleans up the cruft from rel.h 1996-10-19 04:31:45 +00:00
Marc G. Fournier
1d5c3ec010 another... 1996-10-19 04:25:53 +00:00
Marc G. Fournier
c6979925ea its coming... 1996-10-19 04:24:57 +00:00
Marc G. Fournier
7bb98fd618 step by step...file by file... 1996-10-19 04:16:04 +00:00
Marc G. Fournier
7260183685 ...same 1996-10-19 04:09:32 +00:00
Marc G. Fournier
d0bfb6b78d slow work... 1996-10-19 04:08:58 +00:00
Marc G. Fournier
f697bf3b85 and another 1996-10-19 04:06:48 +00:00
Marc G. Fournier
6fd191c899 another one cleaned up 1996-10-19 04:05:44 +00:00
Marc G. Fournier
9b6b82b91d and another one.. 1996-10-19 04:03:29 +00:00
Marc G. Fournier
f3671cc910 another another one 1996-10-19 04:02:39 +00:00
Marc G. Fournier
c2c618fada anothre one reduced to its component parts 1996-10-19 04:01:41 +00:00
Marc G. Fournier
d9ebe7711f clean out include files of including other includes files except those
absolutely required
1996-10-19 03:58:34 +00:00
Marc G. Fournier
1c5fa955cd Add prototype for heap_getattr() to quiet compiler 1996-10-18 17:58:33 +00:00
Vadim B. Mikheev
c8fc4c9607 Reap deleted/unused tuples on page-base 1996-10-18 08:15:58 +00:00
Vadim B. Mikheev
57de92c648 Move definition of PageIsNew from hio.c to here 1996-10-18 07:39:07 +00:00
Marc G. Fournier
46606ab077 Document some more #ifdef's 1996-10-18 05:59:52 +00:00
Marc G. Fournier
6c3dff4245 Document #ifdef's from backend/access subdirs so that we know what
features(?) are available
1996-10-18 05:22:24 +00:00
Marc G. Fournier
1b6322a9c0 Moved more -D's out of the port specific Makefiles straight into the
config.h file
1996-10-18 04:45:54 +00:00
Marc G. Fournier
d16bc9ce37 Centralize more of the defines from backend/port under config.h
Further ports should *really* avoid backend/port and make use of
config.h
1996-10-18 00:33:41 +00:00
Marc G. Fournier
c39857925b Add a HAVE_TZSET define to clean up defines in backend/utils/adt/nabstime.c 1996-10-17 23:55:27 +00:00
Bruce Momjian
d31909be6c Fix structure member name from previous patch. 1996-10-13 17:13:58 +00:00
Bruce Momjian
abb1b3e770 I checked the alter table code, and started suspecting the relation
cache.  I found if I manually added a line to flush the whole relation
cache, the assert error disappeared.  Looking through the code, I found
that the relation cache is flushed at the end of each query if the
reference count is zero for the relation.  However, printf's showed that
the rd_relcnt(reference count) for the accessed query was not returning
to zero after each query.

It turns out the parser was doing a heap_ropen in parser/analyze.c to
get information about the table's columns, but was not doing a
heap_close.

This was causing the query after the ALTER TABLE ADD to see the old
table structure, and the executor's assert was reporting the problem.
1996-10-13 04:26:39 +00:00
Bryan Henderson
6d70d550e6 Prepare for new host-based authentication 1996-10-11 09:12:18 +00:00
Marc G. Fournier
81cda65f74 Add a MIPS/NetBSD port... 1996-10-11 03:56:41 +00:00
Bruce Momjian
c306d06cf9 Change sh-style comments to C comments. 1996-10-08 22:23:19 +00:00
Marc G. Fournier
d6dfbecb07 Moved the following definitions to include/config.h from Makefile.global:
NAMEDATALEN
	OIDDATALEN
	EUROPEAN_DATES
	HBA
	DEADLOCK_TIMEOUT
	OPENLINK_PATCHES
	NULL_PATCH
	ARRAY_PATCH

Attempting to document and centralize as many of the "defines" as possible...
kinda useless to have defines if nobody knows they exist, eh?
1996-10-08 00:09:05 +00:00
Marc G. Fournier
87bb8daab8 Move the NAMEDATALEN/OIDNAMELEN defines to include/config.h 1996-10-07 23:57:01 +00:00
Marc G. Fournier
50e708ef88 Stylistic cleanups... 1996-10-05 20:39:05 +00:00
Bruce Momjian
8999ce097f Add comment about possible zero value. 1996-10-05 20:33:45 +00:00
Bruce Momjian
efac791640 Change shell-style comments to C-style. 1996-10-05 20:33:10 +00:00
Marc G. Fournier
ff25e44d03 Moved the define of SIGNAL_ARGS that D'Arcy just created to config.h so that
hopefully this sort of thing can eventually be determined using configure?
1996-10-04 20:20:57 +00:00
Marc G. Fournier
f8009e1786 The remainder of D'Arcy's changes, most notibly the usage of SIGNAL_ARGS 1996-10-04 20:17:11 +00:00
Bruce Momjian
dbc268ca15 Fixed file to properly do SEMUN for BSDI.
Grouped some PORTNAME's for SEMUN.
1996-10-03 01:14:37 +00:00
Marc G. Fournier
0fadfc00ad Added NEED_UNION_SEMUN to config.h 1996-10-02 20:42:20 +00:00
Marc G. Fournier
22ef6d06fc Moved whether to define union semun from include/storage/ipc.h to
a define in include/config.h
1996-10-02 20:40:17 +00:00
Marc G. Fournier
3bf2b361f0 Date: Sun, 22 Sep 1996 13:47:39 -0400 (EDT)
From: Bruce Momjian <maillist@candle.pha.pa.us>
To: Postgres95-development <pg95-dev@ki.net>
Subject: [PG95-DEV] 2.0 patch for fastgetattr
1996-09-23 08:36:39 +00:00
Marc G. Fournier
7efc8ef1a1 |For starters, here's a small patch that removes a compiler warning in that
|regex stuff on Linux.
|
|--
|Bryan Henderson                                    Phone 408-227-6803
|San Jose, California
|
1996-09-21 06:31:13 +00:00
Marc G. Fournier
985acb8ea0 Add the regex include files to the repository...
In my cvs source tree, tihs directory existed, which is why it compiled
on my system, but nobody elses...
1996-09-20 05:29:31 +00:00
Marc G. Fournier
33dccad831 enable PQ_NOTIFY_PATCH in config.h 1996-09-16 05:52:51 +00:00
Marc G. Fournier
df6ca83a5b Enable FUNC_UTIL_PATCH by default 1996-09-16 05:39:04 +00:00
Marc G. Fournier
475493130d |Subject: Postgres patch: Assert attribute type match
|
|Here's a patch for Version 2 only.  It just adds an Assert to catch some
|inconsistencies in the catalog classes.
|
|--
|Bryan Henderson                                    Phone 408-227-6803
|San Jose, California
|
1996-09-16 05:33:20 +00:00
Marc G. Fournier
c5dd292007 Add use of INDEXSCAN_PATCH to config.h instead of putting it in Makefile.global 1996-09-10 06:51:28 +00:00
Marc G. Fournier
870be9fa8e Clean up th ecompile process by centralizing the include files
- code compile tested, but due to a yet unresolved problem with
          parse.h's creation, compile not completed...
1996-08-28 07:27:54 +00:00
Marc G. Fournier
1054097464 More cleanups of the include files
- centralizing to simplify the -I's required to compile
1996-08-28 01:59:28 +00:00
Marc G. Fournier
ad5a3141a2 c.h is included in postgres.h already 1996-08-28 01:23:59 +00:00
Marc G. Fournier
a88b72ea39 #ifndef the include file like the rest, so that it doesn't get pulled
in twice...
1996-08-27 22:09:10 +00:00
Marc G. Fournier
54223de000 Oops, win32 does have one more thing in its machine.h...move that
define to config.h
1996-08-27 22:07:59 +00:00
Marc G. Fournier
3a606407c7 We have a machine.h for each platform just because of BLCKSZ, and every
platform with a machine.h has the same BLCKSZ?

Consolidate machine.h into config.h
1996-08-27 22:06:30 +00:00
Marc G. Fournier
5a8820efcd Moved from backend/access to include/access 1996-08-27 21:50:29 +00:00
Marc G. Fournier
e733befeed One file at a time, one directory after the other...this is going
to be one helluva chore to clean up...
1996-08-27 07:30:55 +00:00
Marc G. Fournier
849292a188 first attempt at centralizing config information for ports 1996-08-27 06:56:08 +00:00
Marc G. Fournier
1da12ffb12 Its a start... 1996-08-27 06:14:29 +00:00