Commit Graph

597 Commits

Author SHA1 Message Date
Bruce Momjian
c666d6fd41 Here is a diff of changes to the psql source code implementing a simple
'list domains' command '\dD'. This is the interface component of
rbt@zort.ca's domain backend modifications.

Jonathan Eisler
2002-03-06 20:39:45 +00:00
Bruce Momjian
92288a1cf9 Change made to elog:
o  Change all current CVS messages of NOTICE to WARNING.  We were going
to do this just before 7.3 beta but it has to be done now, as you will
see below.

o Change current INFO messages that should be controlled by
client_min_messages to NOTICE.

o Force remaining INFO messages, like from EXPLAIN, VACUUM VERBOSE, etc.
to always go to the client.

o Remove INFO from the client_min_messages options and add NOTICE.

Seems we do need three non-ERROR elog levels to handle the various
behaviors we need for these messages.

Regression passed.
2002-03-06 06:10:59 +00:00
Bruce Momjian
ed5eb09cce Adds \du documentation line for \? in psqls help.c
Thought I saw a patch earlier converting docs to use []s, so this uses
them.

Rod Taylor
2002-03-05 06:13:19 +00:00
Bruce Momjian
925d60ee53 Showing index details with \d on psql.
Greg Sabino Mullane
2002-03-05 02:42:56 +00:00
Bruce Momjian
25b0b09fd3 Add \timing patch to psql. Times all queries.
Greg Sabino Mullane
2002-03-05 00:01:03 +00:00
Bruce Momjian
a033daf566 Commit to match discussed elog() changes. Only update is that LOG is
now just below FATAL in server_min_messages.  Added more text to
highlight ordering difference between it and client_min_messages.

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

REALLYFATAL => PANIC
STOP => PANIC
New INFO level the prints to client by default
New LOG level the prints to server log by default
Cause VACUUM information to print only to the client
NOTICE => INFO where purely information messages are sent
DEBUG => LOG for purely server status messages
DEBUG removed, kept as backward compatible
DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1 added
DebugLvl removed in favor of new DEBUG[1-5] symbols
New server_min_messages GUC parameter with values:
        DEBUG[5-1], INFO, NOTICE, ERROR, LOG, FATAL, PANIC
New client_min_messages GUC parameter with values:
        DEBUG[5-1], LOG, INFO, NOTICE, ERROR, FATAL, PANIC
Server startup now logged with LOG instead of DEBUG
Remove debug_level GUC parameter
elog() numbers now start at 10
Add test to print error message if older elog() values are passed to elog()
Bootstrap mode now has a -d that requires an argument, like postmaster
2002-03-02 21:39:36 +00:00
Tom Lane
86a07143d4 Tweak psql's \connect command to not downcase unquoted database and user
names.  This is a temporary measure to allow backwards compatibility with
7.2 and earlier pg_dump.  7.2.1 and later pg_dump will double-quote mixed
case names in \connect.  Once we feel that older dumps are not a problem
anymore, we can revert this change and treat \connect arguments as normal
SQL identifiers.
2002-02-25 21:37:42 +00:00
Bruce Momjian
5f644ea699 Add fstat / S_ISDIR checks to make sure we're not trying to use a
directory for COPY TO/FROM.

Brent Verner
2002-02-23 21:46:03 +00:00
Tom Lane
a40c17e17d Fix comment. 2002-02-20 22:47:12 +00:00
Bruce Momjian
fb8e3f15c0 Add code to preserve paren level display after \g, as submitted months ago. 2002-02-18 05:57:41 +00:00
Tom Lane
3dfe80243c Add missing 'else', per report from sugita@sra.co.jp. 2002-01-18 16:14:54 +00:00
Bruce Momjian
52c780e04b Oops, back out paren fix. That is for 7.3. 2001-12-28 05:01:05 +00:00
Bruce Momjian
deab927470 Add mention of Christof Petig for ecpg items. 2001-12-28 05:00:32 +00:00
Peter Eisentraut
cb85a62807 Czech translation updates from Karel Zak 2001-12-21 22:30:49 +00:00
Peter Eisentraut
cfe88fdf4b update 2001-12-13 22:04:40 +00:00
Peter Eisentraut
e2024ec6f0 update 2001-12-10 13:03:12 +00:00
Peter Eisentraut
a3cef00dd6 Update to get around backslash problems 2001-12-03 19:56:43 +00:00
Peter Eisentraut
0556f7ca87 NLS updates, most notably fixed zh_TW translations 2001-11-29 18:59:28 +00:00
Bruce Momjian
b6cb91023e Chinese for psql and pg_dump.
laser
2001-11-26 17:56:32 +00:00
Hiroshi Inoue
535d92877e Remove compile errors of psql.exe and libpq.dll under
Multibyte mode.
2001-11-22 10:18:52 +00:00
Bruce Momjian
2985286eb4 I think it's patch's size problem that I can't
send patches to pgsql-patches list.
the zh_CN NLS patch is about 80K,
but sended twice and still can emerge on list.
so I've put it at:

http://laser.zhengmai.com.cn/download/zh_CN.po.diff.tar.gz

If possible, please download it and apply it.
(for current CVS).

    regards   laser
2001-11-21 05:45:31 +00:00
Tom Lane
112bd6f06b psql's \do was going out of its way to lie about the result type of
operators.  Should report the declared oprresult type, not the return type
of the underlying proc, which might be only binary-compatible (cf.
textcat entries).
2001-11-12 15:57:08 +00:00
Bruce Momjian
ea08e6cd55 New pgindent run with fixes suggested by Tom. Patch manually reviewed,
initdb/regression tests pass.
2001-11-05 17:46:40 +00:00
Peter Eisentraut
a9b6691ae7 updates 2001-11-02 19:16:47 +00:00
Bruce Momjian
c41b6b1b9c Fix small problem Tom Lane found with pgindent run. 2001-10-30 05:38:56 +00:00
Tatsuo Ishii
f2a2ad59bc Fix bug with illegal call to calloc. 2001-10-29 06:45:32 +00:00
Bruce Momjian
6783b2372e Another pgindent run. Fixes enum indenting, and improves #endif
spacing.  Also adds space for one-line comments.
2001-10-28 06:26:15 +00:00
Bruce Momjian
b81844b173 pgindent run on all C files. Java run to follow. initdb/regression
tests pass.
2001-10-25 05:50:21 +00:00
Bruce Momjian
6f6d16ab25 All three *.po patches applied.
forth@pagic.net
2001-10-24 17:52:28 +00:00
Tom Lane
4fec55af6c Fix several problems with simple_prompt() --- the nastiest being that
the entered password would get echoed on some platforms, eg HPUX.
We have enough copies of this code that I'm thinking it ought to be
moved into libpq, but that's a task for another day.
2001-10-18 21:57:11 +00:00
Bruce Momjian
66b77dbcd6 Prompt for password from /dev/tty and fall back to stdin/stderr. 2001-10-15 16:40:27 +00:00
Tatsuo Ishii
cdce507053 Forgot to add this file... 2001-10-15 04:52:59 +00:00
Tatsuo Ishii
df4cba68cf Commit Patrice's patches except:
> - corrects a bit the UTF-8 code from Tatsuo to allow Unicode 3.1
>  characters (characters with values >= 0x10000, which are encoded on
>  four bytes).

Also, update mb/expected/unicode.out. This is necessary since the
patches affetc the result of queries using UTF-8.
---------------------------------------------------------------
Hi,

I should have sent the patch earlier, but got delayed by other stuff.
Anyway, here is the patch:

- most of the functionality is only activated when MULTIBYTE is
  defined,

- check valid UTF-8 characters, client-side only yet, and only on
  output, you still can send invalid UTF-8 to the server (so, it's
  only partly compliant to Unicode 3.1, but that's better than
  nothing).

- formats with the correct number of columns (that's why I made it in
  the first place after all), but only for UNICODE. However, the code
  allows to plug-in routines for other encodings, as Tatsuo did for
  the other multibyte functions.

- corrects a bit the UTF-8 code from Tatsuo to allow Unicode 3.1
  characters (characters with values >= 0x10000, which are encoded on
  four bytes).

- doesn't depend on the locale capabilities of the glibc (useful for
  remote telnet).

I would like somebody to check it closely, as it is my first patch to
pgsql.  Also, I created dummy .orig files, so that the two files I
created are included, I hope that's the right way.

Now, a lot of functionality is NOT included here, but I will keep that
for 7.3 :) That includes all string checking on the server side (which
will have to be a bit more optimised ;) ), and the input checking on
the client side for UTF-8, though that should not be difficult. It's
just to send the strings through mbvalidate() before sending them to
the server. Strong checking on UTF-8 strings is mandatory to be
compliant with Unicode 3.1+ .

Do I have time to look for a patch to include iso-8859-15 for 7.2 ?
The euro is coming 1. january 2002 (before 7.3 !) and over 280
millions people in Europe will need the euro sign and only iso-8859-15
and iso-8859-16 have it (and unfortunately, I don't think all Unices
will switch to Unicode in the meantime)....

err... yes, I know that this is not every single person in Europe that
uses PostgreSql, so it's not exactly 280m, but it's just a matter of
time ! ;)

I'll come back (on pgsql-hackers) later to ask a few questions
regarding the full unicode support (normalisation, collation,
regexes,...) on the server side :)

Here is the patch !

Patrice.

--
Patrice HÉDÉ ------------------------------- patrice à islande org -----
  --  Isn't it weird  how scientists  can imagine  all the matter of the
universe exploding out of a dot smaller than the head of a pin, but they
can't come up with a more evocative name for it than "The Big Bang" ?
  -- What would _you_ call the creation of the universe ?
  -- "The HORRENDOUS SPACE KABLOOIE !"               - Calvin and Hobbes
------------------------------------------ http://www.islande.org/ -----
2001-10-15 01:25:10 +00:00
Bruce Momjian
78f7ba13cb Tatsuo Ishii <t-ishii@sra.co.jp> writes:
> As you can see, psql reconnect as any user if the password is same as
> foo. Of course this is due to the careless password setting, but I
> think it's better to prompt ANY TIME the user tries to switch to
> another user. Comments?

Yeah, I agree.  Looks like a simple change in dbconnect():

    /*
     * Use old password if no new one given (if you didn't have an old
     * one, fine)
     */
    if (!pwparam && oldconn)
        pwparam = PQpass(oldconn);

to

    /*
     * Use old password (if any) if no new one given and we are
     * reconnecting as same user
     */
    if (!pwparam && oldconn && PQuser(oldconn) && userparam &&
        strcmp(PQuser(oldconn), userparam) == 0)
        pwparam = PQpass(oldconn);

                        regards, tom lane
2001-10-11 16:54:18 +00:00
Bruce Momjian
a965750abf While playing around with trying to add foreign keys to the
\d table display in psql, I noticed that tableinfo.triggers
is not used once it is set.

Greg Sabino Mullane
2001-10-06 14:41:17 +00:00
Peter Eisentraut
9110ef4de6 Move psql's zh_TW.po to the right place. 2001-10-05 21:14:35 +00:00
Bruce Momjian
453ef3f81f Attached is the updated version of the patch, which matches
on words as opposed to lines, which means that all of the
following work in psql:

\d foo \d bar
\d foo; \d bar
\d foo \d bar;;
\d foo; <space>


This one also uses "true and false" and strips semicolons
for the following backslash commands: \C \c \d \e \i \o \s \z

Greg Sabino Mullane
2001-10-05 19:01:13 +00:00
Tom Lane
c24e5ddf5f Don't try to hack pg_description if not superuser. (Really want a
COMMENT ON LARGE OBJECT command instead, but no time for it now.)
Fix some code that would not work with OIDs > 2G.
2001-10-04 22:39:34 +00:00
Bruce Momjian
a6020b396b I've just finished the Chinese NLS support(zh_CN part) files
translation,
    the attachement is those four files.
   (.tar.gz file, with the directory, root is $PGSRC).
    Tested on some Linux platform.

Weiping He
2001-10-04 15:44:14 +00:00
Tom Lane
fcd2e372a7 Consistently use gcc's __attribute__((format)) to check sprintf-style
format strings wherever possible.  Remarkably, this exercise didn't
turn up any inconsistencies, but it seems a good idea for the future.
2001-10-03 21:58:28 +00:00
Tom Lane
c969fed7ec Give VACUUM its own GUC parameter for memory usage, rather than
piggybacking on SortMem.  Add documentation for some recently-added
GUC parameters that had so far escaped it.
2001-09-21 03:32:36 +00:00
Peter Eisentraut
d0a6cf2180 Update from Serguei Mokhov 2001-09-16 23:06:33 +00:00
Peter Eisentraut
93a9cc8533 Invoke on_exit() with correct number and type of arguments. 2001-09-11 23:08:07 +00:00
Peter Eisentraut
51ba1c5a8c Remove extra space at end of line. 2001-09-10 19:34:18 +00:00
Bruce Momjian
be18a49d39 > NOTE: in the command.c in three places there (I believe) is a typo:
>
> "parse error at [the] end of line"
>
> Attached patch also fixes it. I noticed this while editing the po file.
> If I'm wrong, please ignore the command.c.patch. I will revert my translation
> as well then.
>
> --
> Serguei A. Mokhov
2001-09-10 14:51:33 +00:00
Bruce Momjian
4ab2393729 Update tab completion for \d*. 2001-09-07 01:24:18 +00:00
Peter Eisentraut
8837164730 Russian translation from Serguei Mokhov 2001-09-06 11:10:47 +00:00
Peter Eisentraut
daac2d0ce3 Parse the arguments of \connect as SQL identifiers, so that they expose
the expected behavior in mixed-case situations.

bug report from James Pattie, 2001-08-31
2001-09-02 23:52:19 +00:00
Peter Eisentraut
11193c8a20 For INSERTs, one can now tab complete DEFAULT VALUES.
from Liam Stewart
2001-08-30 13:17:03 +00:00
Bruce Momjian
e8cb935921 Reverse sense of comparison in psql socket test, per Tom Lane. 2001-08-24 19:59:54 +00:00
Bruce Momjian
4142769257 There are two problems when compiling libpq.dll and psql.exe
on Windows. I'm not sure it is the best way to fix them
(see patch below.)

Mikhail Terekhov with mods by Tom Lane
2001-08-24 16:59:10 +00:00
Tom Lane
f933766ba7 Restructure pg_opclass, pg_amop, and pg_amproc per previous discussions in
pgsql-hackers.  pg_opclass now has a row for each opclass supported by each
index AM, not a row for each opclass name.  This allows pg_opclass to show
directly whether an AM supports an opclass, and furthermore makes it possible
to store additional information about an opclass that might be AM-dependent.
pg_opclass and pg_amop now store "lossy" and "haskeytype" information that we
previously expected the user to remember to provide in CREATE INDEX commands.
Lossiness is no longer an index-level property, but is associated with the
use of a particular operator in a particular index opclass.

Along the way, IndexSupportInitialize now uses the syscaches to retrieve
pg_amop and pg_amproc entries.  I find this reduces backend launch time by
about ten percent, at the cost of a couple more special cases in catcache.c's
IndexScanOK.

Initial work by Oleg Bartunov and Teodor Sigaev, further hacking by Tom Lane.

initdb forced.
2001-08-21 16:36:06 +00:00
Peter Eisentraut
633b5d5653 update 2001-08-10 20:58:09 +00:00
Tom Lane
bf56f0759b Make OIDs optional, per discussions in pghackers. WITH OIDS is still the
default, but OIDS are removed from many system catalogs that don't need them.
Some interesting side effects: TOAST pointers are 20 bytes not 32 now;
pg_description has a three-column key instead of one.

Bugs fixed in passing: BINARY cursors work again; pg_class.relhaspkey
has some usefulness; pg_dump dumps comments on indexes, rules, and
triggers in a valid order.

initdb forced.
2001-08-10 18:57:42 +00:00
Tom Lane
50982933f8 Add TOAST table to the set of relkinds known to \d. 2001-08-09 03:32:16 +00:00
Peter Eisentraut
957eea278e Czech translation for psql from Karel Zak 2001-08-07 11:28:18 +00:00
Tom Lane
4cba72ccc8 Show index predicate when doing \d on a partial index. 2001-08-05 22:13:46 +00:00
Bruce Momjian
7208518720 Attached is a trivial patch to add ANALYZE to the tab complete file in
psql.

Randy Hall
2001-08-01 18:45:50 +00:00
Bruce Momjian
ea72cc4e11 Attached ia a patch to enable window size detection code of psql for Solaris
platform.

TIOCGWINSZ is defined as follows:

    Linux       asm/ioctls.h
    FreeBSD     sys/ttycom.h. This file is included by sys/ioctl.h.
    Solaris     sys/termios.h

This patch tells print.c to know TIOCGWINSZ on Solaris platform. Same code is
founded in src/bin/psal/common.c.

Kenji Sugita
2001-08-01 18:44:54 +00:00
Peter Eisentraut
082e1c7b95 Show islossy for index. 2001-07-08 14:42:17 +00:00
Peter Eisentraut
2ab0f11a79 NLS for the psql \d family of commands. (E.g., the column headers will
have localized strings.)  Also, modernize the system catalog queries where
appropriate, e.g., with outer joins.
2001-06-30 17:26:12 +00:00
Peter Eisentraut
e3cade2e29 Re-add explicit declaration of filename_completion_function(), which seems
to be missing in some header files (on OpenBSD 2.8?).
2001-06-20 18:39:14 +00:00
Peter Eisentraut
f445289781 Swedish translation for psql (my interpretation of Swedish, surely) 2001-06-20 18:25:26 +00:00
Bruce Momjian
92f450652c The attached patch enables PostgreSQL CVS to build cleanly under Cygwin
when built against readline 4.2.  Specifically, it handles the deprecation
of

    filename_completion_function()

with preference for

    rl_filename_completion_function()

Although, I was motivated by Cygwin support, IMO this patch is appropriate
for all platforms.  To quote from the readline source:

    #if 0
    /* Backwards compatibility (compat.c).  These will go away sometime. */
    ...
    extern READLINE_EXPORT(char, *filename_completion_function) ...
    #endif

Note that this patch is modeled after the one by Peter Eisentraut for
completion_matches():

    http://www.ca.postgresql.org/~petere/readline42.html
I tested this patch under the following environments:

    Cygwin with readline 4.1
    Cygwin with readline 4.2
    Linux with readline 2.2.1
    Linux with readline 4.2

and it behaved as expected.

Jason Tishler
2001-06-11 22:12:48 +00:00
Peter Eisentraut
05150e2df3 Add French psql translation. (My rendition of French anyway...)
Fix typo in message.
2001-06-11 18:23:33 +00:00
Peter Eisentraut
0acd843c05 Finish German translation, edit (original) messages a bit. 2001-06-08 23:53:48 +00:00
Peter Eisentraut
e542036461 Native Language Support (NLS)
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.
2001-06-02 18:25:18 +00:00
Bruce Momjian
33f2614aa1 Remove SEP_CHAR, replace with / or '/' as appropriate. 2001-05-30 14:15:27 +00:00
Bruce Momjian
d66a404983 This just breaks down the indices in to three groups:
non-unique: stay as they were
unique and primary: become listed as primary keys
unique and non-primary: become listed as unique keys

I also made it so that it shows the names of check constraints ie:

Check: "$1" (a > 5)

Christopher Kings
2001-05-28 02:01:22 +00:00
Peter Eisentraut
9a61532a6a Don't use multi-line string literals. 2001-05-27 21:50:50 +00:00
Peter Eisentraut
b3f66d1980 Add command '\pset footer' to psql to turn off default "(x rows)" footer. 2001-05-12 19:44:46 +00:00
Tom Lane
02549a2d2c Add comment to explain need for bizarre-looking coding in HandleSlashCmds. 2001-05-12 17:37:15 +00:00
Bruce Momjian
d8eade3784 Right-align \du user-id. 2001-05-09 17:57:42 +00:00
Bruce Momjian
68319f9103 Fix memory leak in new psql \du code. 2001-05-09 17:49:42 +00:00
Bruce Momjian
a79b698adb Here's a version of my suggested diffs transplanted to 7.1 beta 5. I'm
still looking at the best way to integrate Tom Vijlbrief's fixes
(insofar as they're still needed); would 7.2 be a suitable time for
incompatible API changes?


Jeroen


Changes:

(*) Introduced bool, true, false (replacing some int, 1, 0)
(*) Made some member functions const
(*) Documented GetIsNull()
(*) Marked DisplayTuples() and PrintTuples() as obsolescent; fixed possible
    portability problem (assumed that NULL pointer equals all-zero bit pattern)
(*) PrintTuples(): renamed width parameter to fillAlign to conform with other
    usage; fixed memory leak and compile issue w.r.t. field separator (should
    also slightly improve performance)
(*) Fixed some minor compilation issues
(*) Moved "using namespace std;" out of headers, where they didn't belong; used
    new (temporary) preprocessor macro PGSTD to do this
(*) Made ToString() static, removed unneeded memset(), made buffer size adapt
    to sizeof(int)
(*) Made some constructors explicit
(*) Changed some const std::string & parameters to plain std::string
(*) Marked PgCursor::Cursor(std::string) as obsolescent (setter with same name
    as getter--bad style)
(*) Renamed some paramaters previously named "string"
(*) Introduced size_type typedef for number of tuples in result set
(*) PgTransaction now supports re-opening after closing, and aborts if not
    explicitly committed prior to destruction

J. T. Vermeulen
2001-05-09 17:29:10 +00:00
Peter Eisentraut
1c1c58c76c Add SET SESSION AUTHORIZATION command. 2001-05-08 21:06:43 +00:00
Peter Eisentraut
232724af0d Add \cd command to psql. 2001-05-07 19:31:33 +00:00
Peter Eisentraut
9583aea9d0 Fix collateral damage from previous (rev 1.49) patch. 2001-05-06 21:15:51 +00:00
Peter Eisentraut
7038554c4e Allow 'psql -f -' to read from standard input. 2001-05-06 17:38:32 +00:00
Peter Eisentraut
84e8e5b427 Make prompt customization work with changeable Unix socket location. 2001-05-06 17:21:11 +00:00
Peter Eisentraut
645ebc0403 Repair misbehavior of \! with immediately following argument that contains
spaces (e.g., '\!ls -l').  Also correct a comment.
2001-04-18 20:53:08 +00:00
Peter Eisentraut
15a6cd0091 If the password prompt goes to stderr, then the trailing newline should
also go there.
2001-04-15 00:43:37 +00:00
Peter Eisentraut
eb1b164317 Work with Readline 4.2. 2001-04-14 22:55:02 +00:00
Tom Lane
d0f6ae68f5 random_seed => seed ... 2001-03-30 04:50:47 +00:00
Tom Lane
b8c2421ef6 pqsignal call needs to be #ifndef WIN32, per report from Magnus. 2001-03-26 15:18:51 +00:00
Tom Lane
a062473696 Fix problems with coredumps due to ^C when longjmp buffer isn't valid.
Now, we will only catch ^C at times when it is valid.
2001-03-23 00:36:38 +00:00
Bruce Momjian
9e1552607a pgindent run. Make it all clean. 2001-03-22 04:01:46 +00:00
Peter Eisentraut
653cd3e38e Fix memory leak. 2001-03-01 18:52:50 +00:00
Tom Lane
ea7b4f1f04 Ensure previous setting of pset.queryFout is restored after a failed
backslash-g command.
2001-03-01 18:34:29 +00:00
Peter Eisentraut
bd6f02e7e6 Do not strip whitespace within quotes. 2001-02-28 20:39:42 +00:00
Tatsuo Ishii
df247b821d Massive commits for SunOS4 port. 2001-02-27 08:13:31 +00:00
Tom Lane
9c9936587c Implement COMMIT_SIBLINGS parameter to allow pre-commit delay to occur
only if at least N other backends currently have open transactions.  This
is not a great deal of intelligence about whether a delay might be
profitable ... but it beats no intelligence at all.  Note that the default
COMMIT_DELAY is still zero --- this new code does nothing unless that
setting is changed.
Also, mark ENABLEFSYNC as a system-wide setting.  It's no longer safe to
allow that to be set per-backend, since we may be relying on some other
backend's fsync to have synced the WAL log.
2001-02-26 00:50:08 +00:00
Peter Eisentraut
cb6edf9d56 Make sure -L and -I's for our source tree are always before system include
or library directories on the command line.
2001-02-20 19:20:30 +00:00
Bruce Momjian
da84545d61 Add copyright mentions, per Tom Lane. 2001-02-18 18:34:02 +00:00
Tatsuo Ishii
2bc2738fc4 Fix a bug in psql. unescape() does not work for multi-byte encodings. 2001-02-17 10:03:33 +00:00
Tom Lane
d08741eab5 Restructure the key include files per recent pghackers discussion: there
are now separate files "postgres.h" and "postgres_fe.h", which are meant
to be the primary include files for backend .c files and frontend .c files
respectively.  By default, only include files meant for frontend use are
installed into the installation include directory.  There is a new make
target 'make install-all-headers' that adds the whole content of the
src/include tree to the installed fileset, for use by people who want to
develop server-side code without keeping the complete source tree on hand.
Cleaned up a whole lot of crufty and inconsistent header inclusions.
2001-02-10 02:31:31 +00:00
Bruce Momjian
d7f0b7ef6e Here is an update on the Win32 patch. Modified files are 'config.h.win32'
and two 'win32.mak'. Addresses the following:

1) Oops. Spelled fcntl.h wrong in the last one. D'uh.
2) PG_VERSION changed to be defined with " around it. psql/command.c failed
to compile without that.
3) Changed makefiles to use "/MD" and link both psql and libpq.dll against
MSVCRT.DLL instead of a static library. This takes care of the
crash-upon-free in psql.

I *think* this is what is on the "Open 7.1 Items" list as "Magnus Hagander
ODBC Issues?". It has nothing to do with ODBC, but it's the only issue I've
been involved with...

Magnus Hagander
2001-01-27 21:49:59 +00:00
Bruce Momjian
623bf843d2 Change Copyright from PostgreSQL, Inc to PostgreSQL Global Development Group. 2001-01-24 19:43:33 +00:00
Bruce Momjian
bd0a767eab Here is a patch to make the current snapshot compile on Win32 (native, libpq
and psql) again. Changes are:
1) psql requires the includes of "io.h" and "fcntl.h" in command.c in order
to make a call to open() work (io.h for _open(), fcntl.h for the O_xxx)
2) PG_VERSION is no longer defined in version.h[.in], but in configure.in.
Since we don't do configure on native win32, we need to put it in
config.h.win32 :-(
3) Added define of SYSCONFDIR to config.h.win32 - libpq won't compile
without it. This functionality is *NOT* tested - it's just defined as "" for
now. May work, may not.
4) DEF_PGPORT renamed to DEF_PGPORT_STR

I have done the "basic tests" on it - it connects to a database, and I can
run queries. Haven't tested any of the fancier functions (yet).

However, I stepped on a much bigger problem when fixing psql to work. It no
longer works when linked against the .DLL version of libpq (which the
Makefile does for it). I have left it linked against this version anyway,
pending the comments I get on this mail :-)
The problem is that there are strings being allocated from libpq.dll using
PQExpBuffers (for example, initPQExpBuffer() on line 92 of input.c). These
are being allocated using the malloc function used by libpq.dll. This
function *may* be different from the malloc function used by psql.exe - only
the resulting pointer must be valid. And with the default linking methods,
it *WILL* be different. Later, psql.exe tries to free() this string, at
which point it crashes because the free() function can't find the allocated
block (it's on the allocated blocks list used by the runtime lib of
libpq.dll).

Shouldn't the right thing to do be to have psql call termPQExpBuffer() on
the data instead? As it is now, gets_fromFile() will just return the pointer
received from the PQExpBuffer.data (this may well be present at several
places - this is the one I was bitten by so far). Isn't that kind of
"accessing the internals of the PQExpBuffer structure" wrong? Instead,
perhaps it shuold make a copy of the string, adn then termPQExpBuffer() it?
In that case, the string will have been allocated from within the same
library as the free() is called.

I can get it to work just fine by doing this - changing from (around line
100 of input.c):
and the same a bit further down in the same function.

But, as I said above, this may be at more places in the code? Perhaps
someone more familiar to it could comment on that?


What do you think shuld be done about this? Personally, I go by the "If you
allocate a piece of memory using an interface, use the same interface to
free it", but the question is how to make it work :-)


Also, AFAIK this only affects psql.exe, so the changes made to the libpq
this patch are required no matter how the other issue is handled.

Regards,
 Magnus
2001-01-24 03:42:38 +00:00
Peter Eisentraut
d7157d32cb The -R option didn't accept an argument, which made it kind of useless. 2001-01-23 22:46:14 +00:00