syntax for CREATE OPERATOR with SORT parameters. Fixed.
It is now actually possible to dump and reload a database containing
fully specified user-definable operators ...
elements prior to CREATEing new ones. It is under control of the -c
command line option (with the default being status quo).
The DROP TRIGGER portion still needs implementation. Anyone able to
help clarify what exactly the CREATE TRIGGER portion does so I can fix
this?
Again, I have tried this with tables/indexes/sequences, but do not
have other schema elements in my database. As a result, I am not 100%
convinced that I got the syntax correct in all cases (but think I did,
nonetheless). If anyone can check the other cases, I'd appreciate it.
Cheers,
Brook
[I added manual page and sgml additions for the new -c option.]
unless necessary.
Label internal bpchar types as "character" and varchar types as
"character varying" to be less Postgres-specific. These types map to
the SQL92 definitions anyway.
Redefine g_force_quotes to be the local variable force_quotes.
Pass this as an argument to fmtId().
These should help with handling the single-byte internal "char" type.
in the ACL code, and spell "GRANT RULE" correctly.
Apply patch from Oliver Elphick to not dump inherited constraints.
Apply patch from Constantin Teodorescu to dump table definitions with a
readable layout.
This is the default, but the new flag will allow overriding an alias,
for example. So psql -n -N will put in the double quotes,
and psql -n can be an alias for psql.
Also, add a few braces around a nested single-line conditional construct
to suppress compiler warnings about "an ambiguous else".
Is it too late to add a feature to pg_dump for 6.4??
I just spent most of the day learning pg_dump and modifing it so it
would
dump views also.
This is the first time I have ever contributed any code changes, so I'm
not sure of how to submit it.
The diff's and a readme as a tgz file are attached.
Thanks
Terry Mackintosh <terry@terrym.com> http://www.terrym.com
Formerly did so only for those which clearly required it, but that
would still miss things like reserved key words which also require it.
Implement the "-n" switch to revert the double quote behavior
to put DQs only where there is more than lower-case, digits,
and underscores.
prompt_for_password code that psql does. We fixed psql a month or
two back to permit usernames and passwords longer than 8 characters.
I propagated the same fix into pg_dump.
Tom Lane
structs from libpq-fe.h, as we previously discussed.
There turned out to be sloppy coding practices in more places than
I had realized :-(, but all in all I think it was a well-worth-while
exercise.
I ended up adding several routines to libpq's API in order to respond
to application requirements that were exposed by this work. I owe the
docs crew updates for libpq.sgml to describe these changes. I'm way too
tired to work on the docs tonight, however.
This is the last major change I intend to submit for 6.4. I do want
to see if I can make libpgtcl work with Tcl 8.0 before we go final,
but hopefully that will be a minor bug fix.
ODBC driver have found a bug in 6.3.2 pg_dump and have made patches.
I confirmed that the same bug still exists in the current source
tree. So I made up patches based on Kataoka's. Here are some
explanations.
o fmtId() returns pointer to a static memory in it. In the meantime
there is a line where is fmtId() called twice without saving the
first value returned by fmtId(). So second call to fmtId() will
break the first one.
o findTableByName() looks up a table by its name. if a table name
contanins upper letters or non ascii chars, fmtId() will returns
a name quoted in double quotes, which will not what findTableByName()
wants. The result is SEG fault. -- Tatsuo Ishii t-ishii@sra.co.jp
of days --- it was emitting stuff like
REVOKE ALL on 'table' from PUBLIC; GRANT ALL on "table" to
"Public"; neither of which work. While I was at it I
cleaned up a few other things:
* \connect commands are issued only in -z mode. In this way,
reloading a pg_dump script made without -z will generate a simple
database wholly owned by the invoking user, rather than a mishmash
of tables owned by various people but lacking in access rights.
(Analogy: cp versus cp -p.)
* \connect commands are issued just before COPY FROM stdin commands;
without this, reloading a database containing non-world-writable
tables tended to fail because the COPY was not necessarily attempted
as the table owner.
* Redundant \connect commands are suppressed (each one costs a
backend launch, so...).
* Man page updated (-z wasn't ever documented).
The first two items were discussed in a pgsql-hackers thread around
6 May 98 ("An item for the TODO list: pg_dump and multiple table
owners") but no one had bothered to deal with 'em yet.
regards, tom lane
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
syntax that can be read back in with psql. I did this by adding
a
"-c" switch that controls moving the CONTSTRAINT statements inside
the CREATE TABLE statements and adding () around the CHECK arguments.
Here's diffs against the 6.3.2 version of pg_dump.c.
ccb
yyerror ones from bison. It also includes a few 'enhancements' to
the C programming style (which are, of course, personal).
The other patch removes the compilation of backend/lib/qsort.c, as
qsort() is a standard function in stdlib.h and can be used any
where else (and it is). It was only used in
backend/optimizer/geqo/geqo_pool.c, backend/optimizer/path/predmig.c,
and backend/storage/page/bufpage.c
> > Some or all of these changes might not be appropriate for v6.3,
since we > > are in beta testing and since they do not affect the
current functionality. > > For those cases, how about submitting
patches based on the final v6.3 > > release?
There's more to come. Please review these patches. I ran the
regression tests and they only failed where this was expected
(random, geo, etc).
Cheers,
Jeroen
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.
src. It is in the function ParseACL. When I find that I
can not allocate enough memory for the ACL structure I
return an NULL instead of doing an exit_nicely(g_conn);
From: Matthew C Aycock <maycock@scuba.pcpipeline.com>
Clean up formatting of code
Integrate new functions into dumpTable
This is not tested yet...have to recompile server due to patches from
Todd...but this compiles cleanly as it stands now