| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
| |
conditional rules (rules with WHERE clauses). We cannot support these
since there's noplace to hang a condition on a utility statement.
We caught the other case (attempt to attach a condition at rewrite time)
awhile ago, but this one escaped notice until now.
|
|
|
|
| |
make strings in xlog.c look more like English and less like binary noise.
|
|
|
|
|
| |
suggestion from Ross Reedstrom. Still needs work to make those symbols
convert to actual IEEE infinities (on machines where such things exist).
|
|
|
|
|
|
|
|
|
|
|
| |
(vs. at the end of a normal sort). This ensures that explicit sorts
yield the same ordering as a btree index scan. To be really sure that
that equivalence holds, we use the btree entries in pg_amop to decide
whether we are looking at a '<' or '>' operator. For a sort operator
that has no btree association, we put the nulls at the front if the
operator is named '>' ... pretty grotty, but it does the right thing in
simple ASC and DESC cases, and at least there's no possibility of getting
a different answer depending on the plan type chosen.
|
|
|
|
|
|
|
|
|
|
|
| |
Use --enable-nls to turn it on; see installation instructions for details.
See developer's guide how to make use of it in programs and how to add
translations.
psql sources have been almost fully prepared and an incomplete German
translation has been provided. In the backend, only elog() calls are
currently translatable, and the provided German translation file is more
of a placeholder.
|
|
|
|
|
|
| |
given values that compare as unordered, make sure we reply that they
are equal, which is better than giving an arbitrary answer --- at least
it doesn't depend on which one is passed as which arg.
|
|
|
|
|
|
|
| |
There is no elog() available. Used fprintf(stderr, ...) and exit
instead.
Jan
|
| |
|
|
|
|
| |
until we hold the spinlock.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
right, but it failed to get the padding case right.
This was obscured by subsequent application of bpchar() in all but one
regression test case, and that one didn't fail in an obvious way ---
trailing blanks are hard to see. Add another test case to make it
more obvious if it breaks again.
|
|
|
|
|
|
|
|
|
| |
calls. This has never actually cached anything, because postgres.c does
each fastpath call as a separate transaction command, and so fastpath.c
would always decide that its cache was outdated. If it had worked, it
would now be failing for calls of oldstyle functions due to dangling
pointers in the FmgrInfo struct. Rip it out for simplicity and bug-
proofing.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
report on old-style functions invoked by RI triggers. We had a number of
other places that were being sloppy about which memory context FmgrInfo
subsidiary data will be allocated in. Turns out none of them actually
cause a problem in 7.1, but this is for arcane reasons such as the fact
that old-style triggers aren't supported anyway. To avoid getting burnt
later, I've restructured the trigger support so that we don't keep trigger
FmgrInfo structs in relcache memory. Some other related cleanups too:
it's not really necessary to call fmgr_info at all while setting up
the index support info in relcache entries, because those ScanKeyEntry
structs are never used to invoke the functions. This should speed up
relcache initialization a tiny bit.
|
|
|
|
|
| |
and Teodor Sigaev). Declare key values as Datum where appropriate,
rather than char* (Tom Lane).
|
|
|
|
|
|
| |
because cached fmgr info contained reference to a shorter-lived data
structure. Also guard against possibility that fmgr_info could fail,
leaving an incomplete entry present in the hash table.
|
| |
|
|
|
|
|
| |
number of strategies supported by an index AM. Add missing copyright
notices and CVS $Header$ markers to GIST source files.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
when added by alter table add constraint. The first file
patches backend/commands/command.c and the latter is a patch
to the alter table regression test.
Stephan Szabo
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
basically want your guys feedback. I have sprinkled some of my q's thru
the text delimited with the @@ symbol. It seems to work perfectly.
[ Removed @@ comments because patch was reviewed. ]
At the moment it does CHECK constraints only, with inheritance. However,
due to the problem mentioned before with the mismatching between inherited
constraints it may be wise to disable the inheritance feature for a while.
it is written in an extensible fashion to support future dropping of other
types of constraint, and is well documented.
Please send me your comments, check my use of locking, updating of
indices, use of ERROR and NOTICE, etc. and I will rework the patch based
on feedback until everyone
is happy with it...
Christopher Kings
|
|
|
|
|
|
| |
from an empty text string. This makes them consistent with the de facto
behavior of type char's I/O conversion functions, and avoids generating
text values with embedded nulls, which confuse many text operators.
|
| |
|
|
|
|
|
|
|
|
| |
the same tuple slot that the raw tuple came from, because that slot has
the wrong tuple descriptor. Store it into its own slot with the correct
descriptor, instead. This repairs problems with SPI functions seeing
inappropriate tuple descriptors --- for example, plpgsql code failing to
cope with SELECT FOR UPDATE.
|
|
|
|
| |
Rather surprising we hadn't seen bug reports about this ...
|
| |
|
|
|
|
|
| |
privileges. INSERT and COPY FROM now require INSERT (only). Add
privileges regression test.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Python) to support shared extension modules, I have learned that Guido
prefers the style of the attached patch to solve the above problem.
I feel that this solution is particularly appropriate in this case
because the following:
PglargeType
PgType
PgQueryType
are already being handled in the way that I am proposing for PgSourceType.
Jason Tishler
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
it does not support 64bit integers. AFAIK that's the default data type for
OIDs, so I am not surprised that this does not work. Use gcc instead.
BTW., 7.1 does not compile as is with gcc either, I believed the
required patches made it into the 7.1.1 release but obviously I missed
the deadline.
Since the ports mailing list does not seem to be archived I have attached
a copy of the patch (for 7.1 and 7.1.1).
I've just performed a build of a Watcom compiled version and found a couple
of bugs in the watcom specific part of that patch. Please use the attached
version instead.
Tegge, Bernd
|
|
|
|
|
|
| |
was lack of disk space.
Oliver Elphick
|
|
|
|
|
|
| |
to do that, but inconsistently.) Make bit type reject too short input,
too, per SQL. Since it no longer zero pads, 'zpbit*' has been renamed to
'bit*' in the source, hence initdb.
|
|
|
|
|
|
|
| |
the output of "egrep '^[0-9]' " is empty. Changing the pattern to
"egrep '^[ ]*[0-9]" generates the correct file.
Tegge, Bernd
|
|
|
|
| |
You can't use relation names alone in the target list, try relation.*
|
|
|
|
|
| |
too long. While I was adjusting the regression tests I moved the array
things all into array.sql, to make things more manageable.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- New functions to create a portal using a prepared/saved
SPI plan or lookup an existing portal by name.
- Functions to fetch/move from/in portals. Results are placed
in the usual SPI_processed and SPI_tuptable, so the entire
set of utility functions can be used to gain attribute access.
- Prepared/saved SPI plans now use their own memory context
and SPI_freeplan(plan) can remove them.
- Tuple result sets (SPI_tuptable) now uses it's own memory
context and can be free'd by SPI_freetuptable(tuptab).
Enhancement of PL/pgSQL
- Uses generic named portals internally in FOR ... SELECT
loops to avoid running out of memory on huge result sets.
- Support for CURSOR and REFCURSOR syntax using the new SPI
functionality. Cursors used internally only need no explicit
transaction block. Refcursor variables can be used inside
of explicit transaction block to pass cursors between main
application and functions.
Jan
|
|
|
|
|
|
|
|
| |
create_index_paths are not immediately discarded, but are available for
subsequent planner work. This allows avoiding redundant syscache lookups
in several places. Change interface to operator selectivity estimation
procedures to allow faster and more flexible estimation.
Initdb forced due to change of pg_proc entries for selectivity functions!
|
|
|
|
| |
initialized FmgrInfo structs linger after elog.
|
|
|
|
|
| |
FUNCTION command. Guard against trying to load a directory. Update
documentation some.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
/*
* parse function
* This code is confusing because the database can accept
* relation.column, column.function, or relation.column.function.
* In these cases, funcname is the last parameter, and fargs are
* the rest.
*
* It can also be called as func(col) or func(col,col).
* In this case, Funcname is the part before parens, and fargs
* are the part in parens.
*
*/
Node *
ParseFuncOrColumn(ParseState *pstate, char *funcname, List *fargs,
bool agg_star, bool agg_distinct,
int precedence)
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
library extension.
|
| |
|
| |
|