diff -cr --new-file postgresql-6.5.1/HISTORY postgresql-6.5.2/HISTORY *** postgresql-6.5.1/HISTORY Wed Jul 14 19:38:26 1999 --- postgresql-6.5.2/HISTORY Mon Sep 13 18:38:46 1999 *************** *** 5,10 **** --- 5,13 ---- PostgreSQL is Copyright © 1996-9 by the Postgres Global Development Group. Table of Contents + Release 6.5.2 + Migration to v6.5.2 + Detailed Change List Release 6.5.1 Migration to v6.5.1 Detailed Change List *************** *** 60,65 **** --- 63,107 ---- Postgres95 Beta 0.02 Detailed Change List Postgres95 Beta 0.01 + + Release 6.5.2 + + This is basically a cleanup release for 6.5.1. We have fixed a + variety of problems reported by 6.5.1 users. + + Migration to v6.5.2 + + A dump/restore is not required for those running 6.5 or 6.5.1. + + Detailed Change List + + subselect+CASE fixes(Tom) + Add SHLIB_LINK setting for solaris_i386 and solaris_sparc ports(Daren + Sefcik) + Fixes for CASE in WHERE join clauses(Tom) + Fix BTScan abort(Tom) + Repair the check for redundant UNIQUE and PRIMARY KEY indices(Thomas) + Improve it so that it checks for multi-column constraints(Tom) + Fix for Win32 making problem with MB enabled(Hiroki Kataoka) + Allow BSD yacc and bison to compile pl code(Bruce) + Fix SET NAMES + int8 fixes(Thomas) + Fix vacuum's memory consumption(Hiroshi,Tatsuo) + Reduce the total memory consumption of vacuum(Tom) + Fix for timestamp(datetime) + Rule deparsing bugfixes(Tom) + Fix quoting problems in mkMakefile.tcldefs.sh.in and + mkMakefile.tkdefs.sh.in(Tom) + This is to re-use space on index pages freed by vacuum(Vadim) + document -x for pg_dump(Bruce) + Fix for unary operators in rule deparser(Tom) + Comment out FileUnlink of excess segments during mdtruncate()(Tom) + Irix linking fix from Yu Cao + Repair logic error in LIKE: should not return LIKE_ABORT + when reach end of pattern before end of text(Tom) + Repair incorrect cleanup of heap memory allocation during transaction + abort(Tom) + Updated version of pgaccess 0.98 Release 6.5.1 diff -cr --new-file postgresql-6.5.1/README postgresql-6.5.2/README *** postgresql-6.5.1/README Sat Jul 10 12:27:59 1999 --- postgresql-6.5.2/README Sun Sep 12 20:13:07 1999 *************** *** 2,8 **** PostgreSQL Data Base Management System (formerly known as Postgres, then as Postgres95). ! This directory contains the development version of 6.5.1 of the PostgreSQL database server. The server is not ANSI SQL compliant, but it gets closer with every release. After you unzip and untar the distribution file, look at file INSTALL for the installation notes and file HISTORY --- 2,8 ---- PostgreSQL Data Base Management System (formerly known as Postgres, then as Postgres95). ! This directory contains the stable version of 6.5.2 of the PostgreSQL database server. The server is not ANSI SQL compliant, but it gets closer with every release. After you unzip and untar the distribution file, look at file INSTALL for the installation notes and file HISTORY diff -cr --new-file postgresql-6.5.1/doc/FAQ postgresql-6.5.2/doc/FAQ *** postgresql-6.5.1/doc/FAQ Sat Jul 10 12:28:00 1999 --- postgresql-6.5.2/doc/FAQ Sun Sep 12 20:20:48 1999 *************** *** 1,7 **** Frequently Asked Questions (FAQ) for PostgreSQL ! Last updated: Sat Jul 10 00:37:57 EDT 1999 Current maintainer: Bruce Momjian (maillist@candle.pha.pa.us) --- 1,7 ---- Frequently Asked Questions (FAQ) for PostgreSQL ! Last updated: Wed Sep 1 19:26:40 EDT 1999 Current maintainer: Bruce Momjian (maillist@candle.pha.pa.us) *************** *** 49,55 **** 3.2) How do I install PostgreSQL somewhere other than /usr/local/pgsql? 3.3) When I start the postmaster, I get a Bad System Call or core ! dumped message3. Why? 3.4) When I try to start the postmaster, I get IpcMemoryCreate errors3. Why? 3.5) When I try to start the postmaster, I get IpcSemaphoreCreate --- 49,55 ---- 3.2) How do I install PostgreSQL somewhere other than /usr/local/pgsql? 3.3) When I start the postmaster, I get a Bad System Call or core ! dumped message. Why? 3.4) When I try to start the postmaster, I get IpcMemoryCreate errors3. Why? 3.5) When I try to start the postmaster, I get IpcSemaphoreCreate *************** *** 93,98 **** --- 93,100 ---- 4.19) Why do I get the error "FATAL: palloc failure: memory exhausted?" 4.20) How do I tell what PostgreSQL version I am running? + 4.21) My large-object operations get invalid large obj descriptor. + Why? Extending PostgreSQL *************** *** 213,219 **** available for discussion of matters pertaining to PostgreSQL. To subscribe, send a mail with the lines in the body (not the subject line) - subscribe end --- 215,220 ---- *************** *** 221,227 **** There is also a digest list available. To subscribe to this list, send email to: pgsql-general-digest-request@postgreSQL.org with a BODY of: - subscribe end --- 222,227 ---- *************** *** 231,237 **** The bugs mailing list is available. To subscribe to this list, send email to bugs-request@postgreSQL.org with a BODY of: - subscribe end --- 231,236 ---- *************** *** 239,245 **** subscribe to this list, send email to hackers-request@postgreSQL.org with a BODY of: - subscribe end --- 238,243 ---- *************** *** 315,323 **** Features PostgreSQL has most features present in large commercial ! DBMS's, like transactions, subselects, and sophisticated ! locking. We have some features they don't have, like ! user-defined types, inheritance, rules, and multi-version concurrency control to reduce lock contention. We don't have foreign key referential integrity or outer joins, but are working on them for our next release. --- 313,321 ---- Features PostgreSQL has most features present in large commercial ! DBMS's, like transactions, subselects, triggers, views, and ! sophisticated locking. We have some features they don't have, ! like user-defined types, inheritance, rules, and multi-version concurrency control to reduce lock contention. We don't have foreign key referential integrity or outer joins, but are working on them for our next release. *************** *** 325,345 **** Performance PostgreSQL runs in two modes. Normal fsync mode flushes every completed transaction to disk, guaranteeing that if the OS ! crashes or looses power in the next few seconds, all your data is safely stored on disk. In this mode, we are slower than most commercial databases, partly because few of them do such conservative flushing to disk in their default modes. In no-fsync mode, we are usually faster than commercial databases, though in this mode, an OS crash could cause data corruption. We are working to provide an intermediate mode that suffers ! from less performance overhead than full fsync mode, and will ! allow data integrity within 30 seconds of an OS crash. The mode ! is select-able by the database administrator. ! In comparison to MySQL or leaner database systems, we are ! slower because we have transaction overhead. We are built for ! flexibility and features, not speed, though we continue to ! improve performance through profiling and source code analysis. Reliability We realize that a DBMS must be reliable, or it is worthless. We --- 323,348 ---- Performance PostgreSQL runs in two modes. Normal fsync mode flushes every completed transaction to disk, guaranteeing that if the OS ! crashes or loses power in the next few seconds, all your data is safely stored on disk. In this mode, we are slower than most commercial databases, partly because few of them do such conservative flushing to disk in their default modes. In no-fsync mode, we are usually faster than commercial databases, though in this mode, an OS crash could cause data corruption. We are working to provide an intermediate mode that suffers ! less performance overhead than full fsync mode, and will allow ! data integrity within 30 seconds of an OS crash. The mode is ! select-able by the database administrator. In comparison to MySQL or leaner database systems, we are ! slower on inserts/updates because we have transaction overhead. ! Of course, MySQL doesn't have any of the features mentioned in ! the Features section above. We are built for flexibility and ! features, though we continue to improve performance through ! profiling and source code analysis. ! We handle each user connection by creating a Unix process. ! Backend processes share data buffers and locking information. ! With multiple CPU's, multiple backends can easily run on ! different CPU's. Reliability We realize that a DBMS must be reliable, or it is worthless. We *************** *** 544,550 **** Both postmaster and postgres have several debug options available. First, whenever you start the postmaster, make sure you send the standard output and error to a log file, like: - cd /usr/local/pgsql ./bin/postmaster >server.log 2>&1 & --- 547,552 ---- *************** *** 615,621 **** Currently, there is no easy interface to set up user groups. You have to explicitly insert/update the pg_group table. For example: - jolly=> insert into pg_group (groname, grosysid, grolist) jolly=> values ('posthackers', '1234', '{5443, 8261}'); INSERT 548224 --- 617,622 ---- *************** *** 667,673 **** 4.5) How do you remove a column from a table? We do not support alter table drop column, but do this: - SELECT ... -- select all columns but the one you want to remove INTO TABLE new_table FROM old_table; --- 668,673 ---- *************** *** 871,877 **** It is possible you have run out of virtual memory on your system, or your kernel has a low limit for certain resources. Try this before starting the postmaster: - ulimit -d 65536 limit datasize 64m --- 871,876 ---- *************** *** 885,890 **** --- 884,908 ---- 4.20) How do I tell what PostgreSQL version I am running? From psql, type select version(); + + 4.21) My large-object operations get invalid large obj descriptor. Why? + + You need to put BEGIN WORK and COMMIT around any use of a large object + handle, that is, surrounding lo_open ... lo_close. + + The documentation has always stated that lo_open must be wrapped in a + transaction, but PostgreSQL versions prior to 6.5 didn't enforce that + rule. Instead, they'd just fail occasionally if you broke it. + + Current PostgreSQL enforces the rule by closing large object handles + at transaction commit, which will be instantly upon completion of the + lo_open command if you are not inside a transaction. So the first + attempt to do anything with the handle will draw invalid large obj + descriptor. So code that used to work (at least most of the time) will + now generate that error message if you fail to use a transaction. + + If you are using a client interface like ODBC you may need to set + auto-commit off. _________________________________________________________________ Extending PostgreSQL diff -cr --new-file postgresql-6.5.1/doc/FAQ_AIX postgresql-6.5.2/doc/FAQ_AIX *** postgresql-6.5.1/doc/FAQ_AIX Thu May 27 12:05:38 1999 --- postgresql-6.5.2/doc/FAQ_AIX Tue Sep 14 11:33:50 1999 *************** *** 1,51 **** - From - Thu May 27 03:10:25 1999 - Received: from localhost (lockhart@localhost [127.0.0.1]) - by localhost (8.8.7/8.8.7) with ESMTP id RAA08251 - for ; Wed, 26 May 1999 17:49:20 GMT - Received: from apop-server.alumni.caltech.edu - by localhost with POP3 (fetchmail-4.7.9) - for lockhart@localhost (single-drop); Wed, 26 May 1999 17:49:20 +0000 (UTC) - Received: from gandalf.telecom.at (gandalf.telecom.at [194.118.26.84]) - by alumnus.caltech.edu (8.9.1/8.9.1) with ESMTP id KAA01676 - for ; Wed, 26 May 1999 10:46:19 -0700 (PDT) - Received: from sdexcgtw01.sd.spardat.at (sdexcgtw01.sd.spardat.at [172.18.99.31]) - by gandalf.telecom.at (xxx/xxx) with ESMTP id MAA12220; - Wed, 26 May 1999 12:02:50 +0200 - Received: by sdexcgtw01.f000.d0188.sd.spardat.at with Internet Mail Service (5.5.2448.0) - id ; Wed, 26 May 1999 12:02:51 +0200 - Message-ID: <219F68D65015D011A8E000006F8590C60267B37B@sdexcsrv1.f000.d0188.sd.spardat.at> From: ZEUGSWETTER Andreas IZ5 To: "'Thomas Lockhart'" Cc: "'hackers@postgresql.org'" ! Subject: AW: [HACKERS] Call for updates! ! Date: Wed, 26 May 1999 12:02:48 +0200 ! MIME-Version: 1.0 ! X-Mailer: Internet Mail Service (5.5.2448.0) ! Content-Type: text/plain ! X-UIDL: 220301b41f1310903e8d55cb7ecc5f4b ! X-Mozilla-Status: 8001 ! X-Mozilla-Status2: 00000000 ! > Hi. I'd like to update the ports list in the docs to include > references to v6.5 for the various platforms for which PostgreSQL-6.5b > has been tested. ! > ! Current CVS (after pgindent) compiles and regresses ok on AIX 4.3.2 ! using the IBM compiler. It has the following problems: ! 1. AIX has int8,int16,int32,int64 in /usr/include/inttypes.h ! --> configure fails to find snprintf support for int8 (because it ! includes stdio.h) ! I feel this is an IBM problem. I changed my inttypes.h ! 2. No AIX in Makefile.shlib --> plpgsql.so is not built / no rule. ! a number of other platforms are also missing there ! a working rule is often in Makefile.port, but only for a single ! object ! not multiple, which plpgsql has. ! The single object rule in Makefile.aix can be used to make a ! plpgsql.so ! from libplpgsql.a. I built it manually. ! 3. libpq++ does not work because xlC does not have the string type/class ? ! Andreas --- 1,34 ---- From: ZEUGSWETTER Andreas IZ5 To: "'Thomas Lockhart'" Cc: "'hackers@postgresql.org'" ! Subject: Re: [HACKERS] Call for updates! ! Date: Tue, 14 September 1999 > Hi. I'd like to update the ports list in the docs to include > references to v6.5 for the various platforms for which PostgreSQL-6.5b > has been tested. ! ! PostgreSQL 6.5.2 compiles and regresses ok on AIX 4.3.2 ! using the IBM compiler. ! gcc has problems with shared libs that are not easily resolved. ! ! The following regression tests fail because of different rounding ! behavior or error messages: ! int2 .. failed -- same as int2-i386-netbsd.out ! int4 .. failed -- same as int4-i386-netbsd.out ! geometry .. failed -- Some Zero Values with minus sign (-0) ! abstime .. failed ! tinterval .. failed ! horology .. failed ! It has the following problems: ! ! 1. AIX has int8,int16,int32,int64 in /usr/include/inttypes.h ! --> configure fails to find snprintf support for int8 ! (because it includes stdio.h) ! I feel this is an IBM problem. I changed my /usr/include/inttypes.h ! Either do that or comment out int8-int32 in src/include/c.h. ! ! 2. libpq++ does not work because xlC does not have the string and bool classes. ! it does compile/work with gcc diff -cr --new-file postgresql-6.5.1/doc/FAQ_DEV postgresql-6.5.2/doc/FAQ_DEV *** postgresql-6.5.1/doc/FAQ_DEV Sat Jul 10 12:28:00 1999 --- postgresql-6.5.2/doc/FAQ_DEV Sun Sep 12 20:20:48 1999 *************** *** 48,53 **** --- 48,54 ---- make_mkid make mkid ID files mkldexport create AIX exports file pgindent indents C source files + pginclude scripts for adding/removing include files Let me note some of these. If you point your browser at the file:/usr/local/src/pgsql/src/tools/backend/index.html directory, you *************** *** 82,88 **** It auto-formats all source files to make them consistent. Comment blocks that need specific line breaks should be formatted as block comments, where the comment starts as /*------. These comments will ! not be reformatted in any way. 2) What books are good for developers? --- 83,90 ---- It auto-formats all source files to make them consistent. Comment blocks that need specific line breaks should be formatted as block comments, where the comment starts as /*------. These comments will ! not be reformatted in any way. pginclude contains scripts used to add ! needed #include's to include files, and removed unneeded #include's. 2) What books are good for developers? *************** *** 362,366 **** Then, check src/include/port and add your new OS file, with appropriate values. Hopefully, there is already locking code in ! src/include/storage/s_lock.h for your CPU. There is a backend/port ! directory if you need special files for your OS. --- 364,369 ---- Then, check src/include/port and add your new OS file, with appropriate values. Hopefully, there is already locking code in ! src/include/storage/s_lock.h for your CPU. There is also a ! src/makefiles directory for port-specific Makefile handling. There is ! a backend/port directory if you need special files for your OS. diff -cr --new-file postgresql-6.5.1/doc/README.Charsets postgresql-6.5.2/doc/README.Charsets *** postgresql-6.5.1/doc/README.Charsets Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/doc/README.Charsets Mon Aug 16 16:29:10 1999 *************** *** 0 **** --- 1,113 ---- + + PostgreSQL Charsets README + Josef Balatka, + Draft v0.1, Tue Jul 20 15:49:07 CEST 1999 + + This document is a brief overview of the national charsets support + that PostgreSQL ver. 6.5 has implemented. Various compilation options + and setup tips are mentioned here to be helpful in the particular use. + + --------------------------------------------------------------------------- + + Table of Contents + + 1. Locale awareness + + 2. Single-byte charsets recoding + + 3. Multi-byte support/recoding + + 4. Credits + + --------------------------------------------------------------------------- + + 1. Locale awareness + + PostgreSQL server supports both locale aware and locale not aware + (default) operational modes. You can determine this mode during the + configuration stage of the installation with --enable-locale option. + + If you don't use --enable-locale, the multi-language code will not be + compiled and PostgreSQL will behave as an ASCII compliant application. + This mode is useful for its speed but only provided that you don't + have to consider national specific chars. + + With --enable-locale you will get a locale aware server using LC_* + environment variables to determine how to process national specifics. + In this case strcoll(3) and similar functions are used internally + so speed is somewhat lower. + + Notice here that --enable-locale is sufficient when all your clients + use the same single-byte encoding as the database server does. + + When your clients use encoding different from the server than you have + to use, moreover, --enable-recode or --with-mb= options on + the server side or a particular client that does recoding itself (e.g. + there exists a PostgreSQL ODBC driver for Win32 with various Cyrillic + encoding capability). Option --with-mb= is necessary for the + multi-byte charsets support. + + + 2. Single-byte charsets recoding + + You can set up this feature with --enable-recode option. This option + is described as 'enable Cyrillic recode support' which doesn't express + all its power. It can be used for *any* single-byte charset recoding. + + This method uses charset.conf file located in the $PGDATA directory. + It's a typical configuration text file where spaces and newlines + separate items and records and # specifies comments. Three keywords + with the following syntax are recognized here: + + BaseCharset + RecodeTable + HostCharset + + BaseCharset defines encoding of the database server. All charset + names are only used for mapping inside the charset.conf so you can + freely use typing-friendly names. + + RecodeTable records specify translation table between server and client. + The file name is relative to the $PGDATA directory. Table file format + is very simple. There are no keywords and characters are represented by + a pair of decimal or hexadecimal (0x prefixed) values on single lines: + + + + HostCharset records define IP address and charset. You can use a single + IP address, an IP mask range starting from the given address or an IP + interval (e.g. 127.0.0.1, 192.168.1.100/24, 192.168.1.20-192.168.1.40) + + The charset.conf is always processed up to the end, so you can easily + specify exceptions from the previous rules. In the src/data you will + find charset.conf example and a few recoding tables. + + As this solution is based on the client's IP address / charset mapping + there are obviously some restrictions as well. You can't use different + encoding on the same host at the same time. It's also inconvenient when + you boot your client hosts into more operating systems. + Nevertheless, when these restrictions are not limiting and you don't + need multi-byte chars than it's a simple and effective solution. + + + 3. Multi-byte support/recoding + + It's a new generation of charset encoding in PostgreSQL designed as a + more complex solution supporting both single-byte and multi-byte chars. + You can set up this feature with --with-mb= option. + + There is no IP mapping file and recoding is controlled through the new + SQL statements. Recoding tables are included in the code. Many national + charsets are already supported and further will follow. + + See doc/README.mb, doc/README.mb.jp to get detailed instruction on how + to use the multibyte support. In the file doc/README.locale there is + a particular instruction on usage of the multibyte support with Cyrillic. + + + 4. Credits + + I'd like to thank the PostgreSQL development team and all contributors + for creating PostgreSQL. Thanks to Oleg Bartunov, Oleg Broytmann and + Tatsuo Ishii for opening the door into the multi-language world. + diff -cr --new-file postgresql-6.5.1/doc/README.locale postgresql-6.5.2/doc/README.locale *** postgresql-6.5.1/doc/README.locale Thu Apr 15 03:25:05 1999 --- postgresql-6.5.2/doc/README.locale Mon Aug 16 16:32:56 1999 *************** *** 1,5 **** =========== ! 14 Apr 1999 =========== Tatsuo Ishii updated Multibyte support extending it --- 1,18 ---- =========== ! 1999 Jul 21 ! =========== ! ! Josef Balatka, asked us not to remove RECODE and sent me ! Czech ISO-8859-2 -> WIN-1250 translation table. ! RECODE is no longer contains just Cyrillic RECODE and will stay in ! PostgreSQL. ! ! He also created some bits of documentation, mostly concerning RECODE - ! see README.Charsets. ! ! ! =========== ! 1999 Apr 14 =========== Tatsuo Ishii updated Multibyte support extending it diff -cr --new-file postgresql-6.5.1/doc/TODO postgresql-6.5.2/doc/TODO *** postgresql-6.5.1/doc/TODO Mon Jul 12 23:07:20 1999 --- postgresql-6.5.2/doc/TODO Sun Sep 12 20:20:48 1999 *************** *** 1,6 **** TODO list for PostgreSQL ======================== ! Last updated: Thu Jul 8 01:04:06 EDT 1999 Current maintainer: Bruce Momjian (maillist@candle.pha.pa.us) --- 1,6 ---- TODO list for PostgreSQL ======================== ! Last updated: Mon Sep 6 23:55:43 EDT 1999 Current maintainer: Bruce Momjian (maillist@candle.pha.pa.us) *************** *** 27,42 **** * Alter TABLE ADD COLUMN does not honor DEFAULT, add CONSTRAINT * Do not allow bpchar column creation without length * Select a[1] FROM test fails, it needs test.a[1] ! * Array index references without table name cause problems * Update table SET table.value = 3 fails * Creating index of TIMESTAMP & RELTIME fails, or rename to DATETIME(Thomas) * SELECT foo UNION SELECT foo is incorrectly simplified to SELECT foo ! * INSERT ... SELECT ... GROUP BY groups by target columns not source columns ! * CREATE TABLE test (a char(5) DEFAULT text '', b int4) fails on INSERT * UNION with LIMIT fails * Unique index on base column not honored on inserts from inherited table INSERT INTO inherit_table (unique_index_col) VALUES (dup) should fail ! * CREATE TABLE x AS SELECT 1 UNION SELECT 2 fails VIEWS --- 27,49 ---- * Alter TABLE ADD COLUMN does not honor DEFAULT, add CONSTRAINT * Do not allow bpchar column creation without length * Select a[1] FROM test fails, it needs test.a[1] ! * -Array index references without table name cause problems * Update table SET table.value = 3 fails * Creating index of TIMESTAMP & RELTIME fails, or rename to DATETIME(Thomas) * SELECT foo UNION SELECT foo is incorrectly simplified to SELECT foo ! * -INSERT ... SELECT ... GROUP BY groups by target columns not source columns ! * -CREATE TABLE test (a char(5) DEFAULT text '', b int4) fails on INSERT * UNION with LIMIT fails * Unique index on base column not honored on inserts from inherited table INSERT INTO inherit_table (unique_index_col) VALUES (dup) should fail ! * CREATE TABLE x AS SELECT 1 UNION SELECT 2 fails ! * CREATE TABLE test(col char(2) DEFAULT user) fails in length restriction ! * SELECT ... UNION ... ORDER BY fails when sort expr not in result list ! * Be smarter about promoting types when UNION merges different data types ! * SELECT ... UNION ... GROUP BY fails if column types disagree ! * redesign INSERT ... SELECT to have two levels of target list ! * -select * from pg_class where oid in (0,-1) ! * have INTERSECT/EXCEPT prevent duplicates unless ALL is specified VIEWS *************** *** 48,53 **** --- 55,61 ---- * User who can create databases can modify pg_database table * Plpgsql does not handle quoted mixed-case identifiers * Fix btree to give a useful elog when key > 1/2 (page - overhead) + * pg_dump should preserve primary key information ENHANCEMENTS ------------ *************** *** 94,100 **** * Remove Money type, add money formatting for decimal type * Declare typein/out functions in pg_proc with a special "C string" data type * Add non-large-object binary field ! * Add index on NUMERIC type VIEWS --- 102,109 ---- * Remove Money type, add money formatting for decimal type * Declare typein/out functions in pg_proc with a special "C string" data type * Add non-large-object binary field ! * Add index on NUMERIC/DECIMAL type ! * Make Absolutetime/Relativetime int4 because time_t can be int8 on some ports VIEWS *************** *** 128,133 **** --- 137,143 ---- supplied ESCAPE * Move LIKE index optimization handling to the optimizer * Allow RULE recompilation + * Support UNION/INTERSECT/EXCEPT in sub-selects CLIENTS *************** *** 177,182 **** --- 187,193 ---- * Make postgres user have a password by default * Add configure test to check for C++ need for *.h and namespaces * Allow BLCKSZ <= 64k, not <= 32k + * redesign UNION structures to have separarate target lists PERFORMANCE ----------- *************** *** 202,207 **** --- 213,220 ---- * Create more system table indexes for faster cache lookups * fix indexscan() so it does leak memory by not requiring caller to free * Improve _bt_binsrch() to handle equal keys better, remove _bt_firsteq()(Tom) + * Allow SELECT * FROM tab WHERE int2col = 4 use int2col index + * Allow optimizer to prefer plans that match ORDER BY CACHE *************** *** 217,223 **** * Update pg_statistic table to remove operator column * Allow char() not to use variable-sized header to reduce disk size * Do async I/O to do better read-ahead of data ! * Fix memory exhaustion when using many OR's * Get faster regex() code from Henry Spencer when it is available * Use mmap() rather than SYSV shared memory(?) --- 230,236 ---- * Update pg_statistic table to remove operator column * Allow char() not to use variable-sized header to reduce disk size * Do async I/O to do better read-ahead of data ! * -Fix memory exhaustion when using many OR's * Get faster regex() code from Henry Spencer when it is available * Use mmap() rather than SYSV shared memory(?) *************** *** 239,244 **** --- 252,258 ---- * Add use of 'const' for varibles in source tree * Fix C optimizer problem where fmgr_ptr calls return different types * Add needed includes and removed unneede include files(Bruce) + * Make configure --enable-debug add -g on compile line --------------------------------------------------------------------------- diff -cr --new-file postgresql-6.5.1/doc/bug.template postgresql-6.5.2/doc/bug.template *** postgresql-6.5.1/doc/bug.template Sat Jul 10 12:28:00 1999 --- postgresql-6.5.2/doc/bug.template Sun Sep 12 20:13:13 1999 *************** *** 27,33 **** Operating System (example: Linux 2.0.26 ELF) : ! PostgreSQL version (example: PostgreSQL-6.5.1): PostgreSQL-6.5.1 Compiler used (example: gcc 2.8.0) : --- 27,33 ---- Operating System (example: Linux 2.0.26 ELF) : ! PostgreSQL version (example: PostgreSQL-6.5.2): PostgreSQL-6.5.2 Compiler used (example: gcc 2.8.0) : diff -cr --new-file postgresql-6.5.1/doc/src/sgml/release.sgml postgresql-6.5.2/doc/src/sgml/release.sgml *** postgresql-6.5.1/doc/src/sgml/release.sgml Sun Jul 11 22:27:31 1999 --- postgresql-6.5.2/doc/src/sgml/release.sgml Mon Sep 13 18:38:51 1999 *************** *** 2,7 **** --- 2,70 ---- Release Notes + Release 6.5.2 + + + + This is basically a cleanup release for 6.5.1. We have fixed a variety of + problems reported by 6.5.1 users. + + + + + Migration to v6.5.2 + + + A dump/restore is not required for those running + 6.5.*. + + + + Detailed Change List + + + + subselect+CASE fixes(Tom) + Add SHLIB_LINK setting for solaris_i386 and solaris_sparc ports(Daren Sefcik) + Fixes for CASE in WHERE join clauses(Tom) + Fix BTScan abort(Tom) + Repair the check for redundant UNIQUE and PRIMARY KEY indices(Thomas) + Improve it so that it checks for multi-column constraints(Thomas) + Fix for Win32 making problem with MB enabled(Hiroki Kataoka) + Allow BSD yacc and bison to compile pl code(Bruce) + Fix SET NAMES working + int8 fixes(Thomas) + Fix vacuum's memory consumption(Hiroshi,Tatsuo) + Reduce the total memory consumption of vacuum(Tom) + Fix for timestamp(datetime) + Rule deparsing bugfixes(Tom) + Fix quoting problems in mkMakefile.tcldefs.sh.in and mkMakefile.tkdefs.sh.in(Tom) + This is to re-use space on index pages freed by vacuum(Vadim) + document -x for pg_dump(Bruce) + Fix for unary operators in rule deparser(Tom) + Comment out FileUnlink of excess segments during mdtruncate()(Tom) + Irix linking fix from Yu Cao + Repair logic error in LIKE: should not return LIKE_ABORT + when reach end of pattern before end of text(Tom) + Repair incorrect cleanup of heap memory allocation during transaction abort(Tom) + Updated version of pgaccess 0.98 + + + + + + + Release 6.5.1 next-internal-state1 + sfunc2( internal-state2 ) ---> next-internal-state2 + + and a final calculation function, ffunc: + + ffunc(internal-state1, internal-state2) ---> aggregate-value + + Postgres creates up to two temporary variables (referred to here as temp1 and temp2) to hold intermediate results used as arguments to the transition functions. + + These transition functions are required to have the following properties: + + The arguments to sfunc1 must be temp1 of type sfunc1_return_type and column_value of type data_type. The return value must be of type sfunc1_return_type and will be used as + the first argument in the next call to sfunc1. + + The argument and return value of sfunc2 must be temp2 of type sfunc2_return_type. + + The arguments to the final-calculation-function must be temp1 and temp2 and its return value must be a Postgres base type (not necessarily data_type which had been specified for + BASETYPE). + + FINALFUNC should be specified if and only if both state-transition functions are specified. + + An aggregate function may also require one or two initial conditions, one for each transition function. These are specified and stored in the database as fields of type text. + + " {} "Synopsis" {bold} " + " {} " + CREATE AGGREGATE name \[ AS \] + ( BASETYPE = data_type + \[ , SFUNC1 = sfunc1 + , STYPE1 = sfunc1_return_type \] + \[ , SFUNC2 = sfunc2 + , STYPE2 = sfunc2_return_type \] + \[ , FINALFUNC = ffunc \] + \[ , INITCOND1 = initial_condition1 \] + \[ , INITCOND2 = initial_condition2 \] + ) + + " {code} "Inputs" {bold} " + + " {} "name" {italic} " + The name of an aggregate function to create. + + " {} "data_type" {italic} " + The fundamental data type on which this aggregate function operates. + + " {} "sfunc1" {italic} " + The state transition function to be called for every non-NULL field from the source column. It takes a variable of type sfunc1_return_type as the first argument and that field as the + second argument. + + " {} "sfunc1_return_type" {italic} " + The return type of the first transition function. + + " {} "sfunc2" {italic} " + The state transition function to be called for every non-NULL field from the source column. It takes a variable of type sfunc2_return_type as the only argument and returns a variable + of the same type. + + " {} "sfunc2_return_type" {italic} " + The return type of the second transition function. + + " {} "ffunc" {italic} " + The final function called after traversing all input fields. This function must take two arguments of types sfunc1_return_type and sfunc2_return_type. + + " {} "initial_condition1" {italic} " + The initial value for the first transition function argument. + + " {} "initial_condition2" {italic} " + The initial value for the second transition function argument. + + " {} "Outputs" {bold} " + + " {} "CREATE" {italic} " + + Message returned if the command completes successfully. + + " {} "Usage" {bold} " + + Refer to the chapter on aggregate functions in the PostgreSQL Programmer's Guide on aggregate functions for complete examples of usage. + + " {} "Notes" {bold} " + + Use " {} "DROP AGGREGATE" {bold} " to drop aggregate functions. + + It is possible to specify aggregate functions that have varying combinations of state and final functions. For example, the count aggregate requires SFUNC2 (an incrementing function) but not \ + SFUNC1 or FINALFUNC, whereas the sum aggregate requires SFUNC1 (an addition function) but not SFUNC2 or FINALFUNC and the avg aggregate requires both of the above state \ + functions as well as a FINALFUNC (a division function) to produce its answer. In any case, at least one state function must be defined, and any SFUNC2 must have a corresponding \ + INITCOND2." diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/create_database.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/create_database.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/create_database.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/create_database.hlp Mon Sep 13 14:47:30 1999 *************** *** 0 **** --- 1,59 ---- + .pgaw:Help.f.t insert end "CREATE DATABASE" {bold} " creates a new Postgres database. The creator becomes the administrator of the new database. + + " {} "Synopsis" {bold} " + " {} " + CREATE DATABASE name \[ WITH LOCATION = 'dbpath' \] + + " {code} "Inputs" {bold} " + + " {} "name" {italic} " + The name of a database to create. + + " {} "dbpath" {italic} " + An alternate location can be specified as either an environment variable known to the backend server (e.g. 'PGDATA2') or as an absolute path name (e.g. '/usr/local/pgsql/data'). In \ + either case, the location must be pre-configured by initlocation. + + " {} "Outputs" {bold} " + + " {} "CREATEDB" {italic} " + Message returned if the command completes successfully. + + " {} "WARN: createdb: database \"name\" already exists." {italic} " + This occurs if database specified already exists. + + " {} "ERROR: Unable to create database directory directory" {italic} " + There was a problem with creating the required directory; this operation will need permissions for the postgres user on the specified location. + + " {} "Usage" {bold} " + + To create a new database: + + olly=> create database lusiadas; + + To create a new database in an alternate area ~/private_db: + + $ mkdir private_db + $ initlocation ~/private_db + Creating Postgres database system directory /home/olly/private_db/base + + $ psql olly + Welcome to the POSTGRESQL interactive sql monitor: + Please read the file COPYRIGHT for copyright terms of POSTGRESQL + + type \\? for help on slash commands + type \\q to quit + type \\g or terminate with semicolon to execute query + You are currently connected to the database: template1 + + olly=> create database elsewhere with location = '/home/olly/private_db'; + + " {} "Bugs" {bold} " + + There are security and data integrity issues involved with using alternate database locations specified with absolute path names, and by default only an environment variable known to the \ + backend may be specified for an alternate location. See the Administrator's Guide for more information. + + " {} "Notes" {bold} " + + " {} "CREATE DATABASE" {italic} " is a Postgres language extension. + + Use " {} "DROP DATABASE" {italic} " to remove a database. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/create_function.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/create_function.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/create_function.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/create_function.hlp Mon Sep 13 14:47:30 1999 *************** *** 0 **** --- 1,69 ---- + .pgaw:Help.f.t insert end \ + "Synopsis" {bold} " + + CREATE FUNCTION name ( \[ ftype \[, ...\] \] ) + RETURNS rtype + AS definition + LANGUAGE 'langname' + " {code} " + + name" {italic} " + The name of a function to create. + + " {} "ftype" {italic} " + The data type of function arguments. + + " {} "rtype" {italic} " + The return data type. + + " {} "definition" {italic} " + A string defining the function; the meaning depends on the language. It may be an internal function name, the path to an object file, an SQL query, or text in a procedural language. + + " {} "langname" {italic} " + may be 'C', 'sql', 'internal' or 'plname', where 'plname' is the name of a created procedural language. See CREATE LANGUAGE for details. + + " {} "Outputs" {bold} " + + CREATE + This is returned if the command completes successfully. + + CREATE FUNCTION allows a Postgres user to register a function with a database. Subsequently, this user is treated as the owner of the function. + + " {} "Notes:" {italic} "Refer to the chapter on functions in the PostgreSQL Programmer's Guide for further information. + + Use " {} "DROP FUNCTION" {link drop_function} " to drop user-defined functions. + + Postgres allows function \"overloading\"; that is, the same name can be used for several different functions so long as they have distinct argument types. This facility must be used with caution for INTERNAL and C-language functions, however. + + Two INTERNAL functions cannot have the same C name without causing errors at link time. To get around that, give them different C names (for example, use the argument types as part of the C names), then specify those names in the AS clause of CREATE FUNCTION. If the AS clause is left empty then CREATE FUNCTION assumes the C name of the function is the same as the SQL name. + + For dynamically-loaded C functions, the SQL name of the function must be the same as the C function name, because the AS clause is used to give the path name of the object file containing the C code. In this situation it is best not to try to overload SQL function names. It might work to load a C function that has the same C name as an internal function or another dynamically-loaded function --- or it might not. On some platforms the dynamic loader may botch the load in interesting ways if there is a conflict of C function names. So, even if it works for you today, you might regret overloading names later when you try to run the code somewhere else. + + " {} "Usage" {bold} " + + To create a simple SQL function: + " {} " + CREATE FUNCTION product_price(int4) RETURNS float8 AS + 'SELECT price FROM products where id = \$1' + LANGUAGE 'sql'; + + SELECT product_price(314) AS answer; + + answer + ------ + 15.25 + " {code} " + + To create a C function, calling a routine from a user-created shared library. This particular routine calculates a check digit and returns TRUE if the check digit in the function parameters is correct. It is intended for use in a CHECK contraint. + " {} " + CREATE FUNCTION ean_checkdigit(bpchar, bpchar) RETURNS bool + AS '/usr1/proj/bray/sql/funcs.so' LANGUAGE 'c'; + + CREATE TABLE product ( + id char(8) PRIMARY KEY, + eanprefix char(8) CHECK (eanprefix ~ '\[0-9\]{2}-\[0-9\]{5}') + REFERENCES brandname(ean_prefix), + eancode char(6) CHECK (eancode ~ '\[0-9\]{6}'), + CONSTRAINT ean CHECK (ean_checkdigit(eanprefix, eancode)) + ); + " {code} diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/create_index.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/create_index.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/create_index.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/create_index.hlp Mon Sep 13 14:47:30 1999 *************** *** 0 **** --- 1,87 ---- + .pgaw:Help.f.t insert end "CREATE INDEX" {bold} " constructs an index index_name. on the specified table. + + Tip: Indexes are primarily used to enhance database performance. But inappropriate use will result in slower performance. + + In the first syntax shown above, the key fields for the index are specified as column names; a column may also have an associated operator class. An operator class is used to specify the \ + operators to be used for a particular index. For example, a btree index on four-byte integers would use the int4_ops class; this operator class includes comparison functions for four-byte \ + integers. The default operator class is the appropriate operator class for that field type. + + In the second syntax, an index is defined on the result of a user-defined function func_name applied to one or more attributes of a single class. These functional indexes can be used to obtain \ + fast access to data based on operators that would normally require some transformation to apply them to the base data. + + " {} "Synopsis" {bold} " + + CREATE \[ UNIQUE \] INDEX index_name + ON table \[ USING acc_name \] + ( column \[ ops_name\] \[, ...\] ) + CREATE \[ UNIQUE \] INDEX index_name + ON table \[ USING acc_name \] + ( func_name( column \[, ... \]) ops_name ) + + " {code} "Inputs" {bold} " + + " {} "UNIQUE" {italic} " + Causes the system to check for duplicate values in the table when the index is created \ + \(if data already exist\) and each time data is added. Attempts to insert or update non-duplicate \ + data will generate an error. + + " {} "index_name" {italic} " + The name of the index to be created. + + " {} "table" {italic} " + The name of the table to be indexed. + + " {} "acc_name" {italic} " + the name of the access method which is to be used for the index. The default access method is BTREE. Postgres provides three access methods for secondary indexes: + + BTREE + + an implementation of the Lehman-Yao high-concurrency btrees. + + RTREE + + implements standard rtrees using Guttman's quadratic split algorithm. + + HASH + + an implementation of Litwin's linear hashing. + + " {} "column" {italic} " + The name of a column of the table. + + " {} "ops_name" {italic} " + An associated operator class. The following select list returns all ops_names: + " {} " + SELECT am.amname AS acc_name, + opc.opcname AS ops_name, + opr.oprname AS ops_comp + FROM pg_am am, pg_amop amop, + pg_opclass opc, pg_operator opr + WHERE amop.amopid = am.oid AND + amop.amopclaid = opc.oid AND + amop.amopopr = opr.oid + ORDER BY acc_name, ops_name, ops_comp + + " {code} "func_name" {italic} " + A user-defined function, which returns a value that can be indexed. + + " {} "Outputs" {bold} " + + " {} "CREATE" {italic} " + The message returned if the index is successfully created. + + " {} "ERROR: Cannot create index: 'index_name' already exists." {italic} " + This error occurs if it is impossible to create the index. + + " {} "Usage" {bold} " + + To create a btree index on the field title in the table films: + " {} " + CREATE UNIQUE INDEX title_idx + ON films (title); + + " {code} "Notes" {bold} " + + Currently, only the BTREE access method supports multi-column indexes. Up to 7 keys may be specified. + + Use DROP INDEX to remove an index. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/create_language.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/create_language.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/create_language.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/create_language.hlp Mon Sep 13 14:47:30 1999 *************** *** 0 **** --- 1,130 ---- + .pgaw:Help.f.t insert end "CREATE LANGUAGE" {bold} ". Using CREATE LANGUAGE, a Postgres user can register a new language with Postgres. Subsequently, functions and trigger procedures can be defined in this new language. The user must \ + have the Postgres superuser privilege to register a new language. + + Writing PL handlers + + The call handler for a procedural language must be written in a compiler language such as 'C' and registered with Postgres as a function taking no arguments and returning the opaque type, a \ + placeholder for unspecified or undefined types.. This prevents the call handler from being called directly as a function from queries. + However, arguments must be supplied on the actual call when a PL function or trigger procedure in the language offered by the handler is to be executed. \ + When called from the trigger manager, the only argument is the object ID from the procedure's pg_proc entry. All other information from the trigger manager is found in the global \ + CurrentTriggerData pointer. + When called from the function manager, the arguments are the object ID of the procedure's pg_proc entry, the number of arguments given to the PL function, the arguments in a \ + FmgrValues structure and a pointer to a boolean where the function tells the caller if the return value is the SQL NULL value. + + It's up to the call handler to fetch the pg_proc entry and to analyze the argument and return types of the called procedure. The AS clause from the CREATE FUNCTION of the procedure will \ + be found in the prosrc attribute of the pg_proc table entry. This may be the source text in the procedural language itself (like for PL/Tcl), a pathname to a file or anything else that tells the call \ + handler what to do in detail. + + " {} "Synopsis" {bold} " + + CREATE \[ TRUSTED \] PROCEDURAL LANGUAGE 'langname' + HANDLER call_handler + LANCOMPILER 'comment' + + " {code} "Inputs" {bold} " + + " {} "TRUSTED" {italic} " + TRUSTED specifies that the call handler for the language is safe; that is, it offers an unprivileged user no functionality to bypass access restrictions. If this keyword is omitted when + registering the language, only users with the Postgres superuser privilege can use this language to create new functions (like the 'C' language). + + " {} "langname" {italic} " + The name of the new procedural language. The language name is case insensitive. A procedural language cannot override one of the built-in languages of Postgres. + + " {} "HANDLER call_handler" {italic} " + call_handler is the name of a previously registered function that will be called to execute the PL procedures. + + " {} "comment" {italic} " + The LANCOMPILER argument is the string that will be inserted in the LANCOMPILER attribute of the new pg_language entry. At present, Postgres does not use this attribute in any way. + + " {} "Outputs" {bold} " + + " {} "CREATE" {italic} " + This message is returned if the language is successfully created. + + " {} "ERROR: PL handler function funcname\(\) doesn't exist" {italic} " + This error is returned if the function funcname() is not found. + + " {} "Usage" {bold} " + + This is a template for a PL handler written in 'C': + " {} " + #include \"executor/spi.h\" + #include \"commands/trigger.h\" + #include \"utils/elog.h\" + #include \"fmgr.h\" /* for FmgrValues struct */ + #include \"access/heapam.h\" + #include \"utils/syscache.h\" + #include \"catalog/pg_proc.h\" + #include \"catalog/pg_type.h\" + + Datum + plsample_call_handler\( + Oid prooid, + int pronargs, + FmgrValues *proargs, + bool *isNull\) + \{ + Datum retval; + TriggerData *trigdata; + + if \(CurrentTriggerData == NULL\) \{ + /* + * Called as a function + */ + + retval = ... + \} else \{ + /* + * Called as a trigger procedure + */ + trigdata = CurrentTriggerData; + CurrentTriggerData = NULL; + + retval = ... + \} + + *isNull = false; + return retval; + \} + " {code} " + Only a few thousand lines of code have to be added instead of the dots to complete the PL call handler. See CREATE FUNCTION for information on how to compile it into a loadable module . + + The following commands then register the sample procedural language: + " {} " + CREATE FUNCTION plsample_call_handler () RETURNS opaque + AS '/usr/local/pgsql/lib/plsample.so' + LANGUAGE 'C'; + + CREATE PROCEDURAL LANGUAGE 'plsample' + HANDLER plsample_call_handler + LANCOMPILER 'PL/Sample'; + + " {code} "Notes" {bold} " + + Use " {} "CREATE FUNCTION" {bold} " to create a function. + + Use DROP LANGUAGE to drop procedural languages. + + Refer to the table pg_language for further information: + + Table = pg_language + " {} " + +-----------------+----------+-------+ + | Field | Type | Length| + +-----------------+----------+-------+ + | lanname | name | 32 | + | lancompiler | text | var | + +-----------------+----------+-------+ + + lanname |lancompiler + --------+-------------- + internal|n/a + lisp |/usr/ucb/liszt + C |/bin/cc + sql |postgres + " {code} " + + " {} "Restrictions" {bold} " + + Since the call handler for a procedural language must be registered with Postgres in the 'C' language, it inherits all the capabilities and restrictions of 'C' functions. + " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/create_operator.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/create_operator.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/create_operator.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/create_operator.hlp Mon Sep 13 14:47:30 1999 *************** *** 0 **** --- 1,145 ---- + .pgaw:Help.f.t insert end "CREATE OPERATOR" {bold} " defines a new operator, name. The user who defines an operator becomes its owner. + + The operator name is a sequence of up to thirty two (32) characters in any combination from the following: + + + - * / < > = ~ ! @ # % ^ & | ` ? $ : + " {} "Note:" {bold} " No alphabetic characters are allowed in an operator name. This enables Postgres to parse SQL input into tokens without requiring spaces between each token. + + The operator \"!=\" is mapped to \"<>\" on input, so they are therefore equivalent. + + At least one of LEFTARG and RIGHTARG must be defined. For binary operators, both should be defined. For right unary operators, only LEFTARG should be defined, while for left unary \ + operators only RIGHTARG should be defined. + Also, the func_name procedure must have been previously defined using CREATE FUNCTION and must be defined to accept the correct number of arguments (either one or two). \ + The commutator operator should be identified if one exists, so that Postgres can reverse the order of the operands if it wishes. For example, the operator area-less-than, <<<, would probably \ + have a commutator operator, area-greater-than, >>>. Hence, the query optimizer could freely convert: + + \"0,0,1,1\"::box >>> MYBOXES.description + to + MYBOXES.description <<< \"0,0,1,1\"::box + + This allows the execution code to always use the latter representation and simplifies the query optimizer somewhat. + + Similarly, if there is a negator operator then it should be identified. Suppose that an operator, area-equal, ===, exists, as well as an area not equal, !==. The negator link allows the query \ + optimizer to simplify + + NOT MYBOXES.description === \"0,0,1,1\"::box + to + MYBOXES.description !== \"0,0,1,1\"::box + + If a commutator operator name is supplied, Postgres searches for it in the catalog. If it is found and it does not yet have a commutator itself, then the commutator's entry is updated to have the \ + newly created operator as its commutator. This applies to the negator, as well. + + This is to allow the definition of two operators that are the commutators or the negators of each other. The first operator should be defined without a commutator or negator (as appropriate). \ + When the second operator is defined, name the first as the commutator or negator. The first will be updated as a side effect.(As of Postgres 6.5, it also works to just have both operators refer to \ + each other.) + + The next three specifications are present to support the query optimizer in performing joins. Postgres can always evaluate a join (i.e., processing a clause with two tuple variables separated by \ + an operator that returns a boolean) by iterative substitution \[WONG76\]. In addition, Postgres can use a hash-join algorithm along the lines of \ + \[SHAP86\]; however, it must know whether this \ + strategy is applicable. The current hash-join algorithm is only correct for operators that represent equality tests; furthermore, equality of the datatype must mean bitwise equality of the \ + representation of the type. (For example, a datatype that contains unused bits that don't matter for equality tests could not be hashjoined.) The HASHES flag indicates to the query optimizer \ + that a hash join may safely be used with this operator. + + Similarly, the two sort operators indicate to the query optimizer whether merge-sort is a usable join strategy and which operators should be used to sort the two operand classes. Sort operators \ + should only be provided for an equality operator, and they should refer to less-than operators for the left and right side data types respectively. + + If other join strategies are found to be practical, Postgres will change the optimizer and run-time system to use them and will require additional specification when an operator is defined. \ + Fortunately, the research community invents new join strategies infrequently, and the added generality of user-defined join strategies was not felt to be worth the complexity involved. + + The last two pieces of the specification are present so the query optimizer can estimate result sizes. If a clause of the form: + + MYBOXES.description <<< \"0,0,1,1\"::box + + is present in the qualification, then Postgres may have to estimate the fraction of the instances in MYBOXES that satisfy the clause. The function res_proc must be a registered function \ + (meaning it is already defined using CREATE FUNCTION) which accepts arguments of the correct data types and returns a floating point number. The query optimizer simply calls this function, \ + passing the parameter \"0,0,1,1\" and multiplies the result by the relation size to get the desired expected number of instances. + + Similarly, when the operands of the operator both contain instance variables, the query optimizer must estimate the size of the resulting join. The function join_proc will return another floating \ + point number which will be multiplied by the cardinalities of the two classes involved to compute the desired expected result size. + + The difference between the function + + my_procedure_1 (MYBOXES.description, \"0,0,1,1\"::box) + + and the operator + + MYBOXES.description === \"0,0,1,1\"::box + + is that Postgres attempts to optimize operators and can decide to use an index to restrict the search space when operators are involved. However, there is no attempt to optimize functions, and \ + they are performed by brute force. Moreover, functions can have any number of arguments while operators are restricted to one or two. + + " {} "Synopsis" {bold} " + + CREATE OPERATOR name ( + PROCEDURE = func_name + \[, LEFTARG = type1 \] + \[, RIGHTARG = type2 \] + \[, COMMUTATOR = com_op \] + \[, NEGATOR = neg_op \] + \[, RESTRICT = res_proc \] + \[, JOIN = join_proc \] + \[, HASHES \] + \[, SORT1 = left_sort_op \] + \[, SORT2 = right_sort_op \] + ) + + " {code} "Inputs" {bold} " + + " {} "name" {italic} " + The operator to be defined. See below for allowable characters. + + " {} "func_name" {italic} " + The function used to implement this operator. + + " {} "type1" {italic} " + The type for the left-hand side of the operator, if any. This option would be omitted for a right-unary operator. + + " {} "type2" {italic} " + The type for the right-hand side of the operator, if any. This option would be omitted for a left-unary operator. + + " {} "com_op" {italic} " + The commutator for this operator. + + " {} "neg_op" {italic} " + The negator of this operator. + + " {} "res_proc" {italic} " + The restriction selectivity estimator function for this operator. + + " {} "join_proc" {italic} " + The join selectivity estimator function for this operator. + + " {} "HASHES" {italic} " + Indicates this operator can support a hash-join algorithm. + + " {} "left_sort_op" {italic} " + Operator that sorts the left-hand data type of this operator. + + " {} "right_sort_op" {italic} " + Operator that sorts the right-hand data type of this operator. + + " {} "Outputs" {bold} " + + " {} "CREATE" {italic} " + Message returned if the operator is successfully created. + + " {} "Usage" {bold} " + + The following command defines a new operator, area-equality, for the BOX data type. + " {} " + CREATE OPERATOR === ( + LEFTARG = box, + RIGHTARG = box, + PROCEDURE = area_equal_procedure, + COMMUTATOR = ===, + NEGATOR = !==, + RESTRICT = area_restriction_procedure, + JOIN = area_join_procedure, + HASHES, + SORT1 = <<<, + SORT2 = <<<) + + " {code} "Notes" {bold} " + + Refer to the chapter on operators in the PostgreSQL User's Guide for further information. Refer to DROP OPERATOR to delete user-defined operators from a database. + " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/create_rule.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/create_rule.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/create_rule.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/create_rule.hlp Mon Sep 13 14:47:30 1999 *************** *** 0 **** --- 1,132 ---- + .pgaw:Help.f.t insert end "CREATE RULE" {bold} " The semantics of a rule is that at the time an individual instance is accessed, updated, inserted or deleted, there is a current instance (for retrieves, updates and deletes) and a new instance (for \ + updates and appends). If the event specified in the ON clause and the condition specified in the WHERE clause are true for the current instance, the action part of the rule is executed. First, \ + however, values from fields in the current instance and/or the new instance are substituted for current.attribute-name and new.attribute-name. + + The action part of the rule executes with the same command and transaction identifier as the user command that caused activation. + + " {} "Synopsis" {bold} " + + CREATE RULE name + AS ON event + TO object \[ WHERE condition \] + DO \[ INSTEAD \] \[ action | NOTHING \] + + " {code} "Inputs" {bold} " + + " {} "name" {italic} " + The name of a rule to create. + + " {} "event" {italic} " + Event is one of select, update, delete or insert. + + " {} "object" {italic} " + Object is either table or table.column. + + " {} "condition" {italic} " + Any SQL WHERE clause. new or current can appear instead of an instance variable whenever an instance variable is permissible in SQL. + + " {} "action" {italic} " + Any SQL statement. new or current can appear instead of an instance variable whenever an instance variable is permissible in SQL. + + " {} "Outputs" {bold} " + + " {} "CREATE" {italic} " + Message returned if the rule is successfully created. + + " {} "Usage" {bold} " + + Make Sam get the same salary adjustment as Joe: + " {} " + create rule example_1 as + on update EMP.salary where current.name = \"Joe\" + do update EMP (salary = new.salary) + where EMP.name = \"Sam\" + + " {code} " + At the time Joe receives a salary adjustment, the event will become true and Joe's current instance and proposed new instance are available to the execution routines. Hence, his new salary is \ + substituted into the action part of the rule which is subsequently executed. This propagates Joe's salary on to Sam. + + Make Bill get Joe's salary when it is accessed: + " {} " + create rule example_2 as + on select to EMP.salary + where current.name = \"Bill\" + do instead + select (EMP.salary) from EMP + where EMP.name = \"Joe\" + + " {code} " + Deny Joe access to the salary of employees in the shoe department (current_user returns the name of the current user): + + " {} " + create rule example_3 as + on select to EMP.salary + where current.dept = \"shoe\" and current_user = \"Joe\" + do instead nothing + + " {code} " + Create a view of the employees working in the toy department. + " {} " + create TOYEMP(name = char16, salary = int4) + + create rule example_4 as + on select to TOYEMP + do instead + select (EMP.name, EMP.salary) from EMP + where EMP.dept = \"toy\" + + " {code} " + All new employees must make 5,000 or less + " {} " + create rule example_5 as + on insert to EMP where new.salary > 5000 + do update newset salary = 5000 + + " {code} "Notes" {bold} " + + A caution about SQL rules is in order. If the same class name or instance variable appears in the event, the condition and the action parts of a rule, they are all considered different tuple \ + variables. More accurately, new and current are the only tuple variables that are shared between these clauses. For example, the following two rules have the same semantics: + " {} " + on update to EMP.salary where EMP.name = \"Joe\" + do update EMP ( ... ) where ... + + on update to EMP-1.salary where EMP-2.name = \"Joe\" + do update EMP-3 ( ... ) where ... + + " {code} " + Each rule can have the optional tag INSTEAD. Without this tag, action will be performed in addition to the user command when the event in the condition part of the rule occurs. Alternately, \ + the action part will be done instead of the user command. In this later case, the action can be the keyword NOTHING. + + When choosing between the rewrite and instance rule systems for a particular rule application, remember that in the rewrite system, current refers to a relation and some qualifiers whereas in \ + the instance system it refers to an instance (tuple). + + It is very important to note that the rewrite rule system will neither detect nor process circular rules. For example, though each of the following two rule definitions are accepted by Postgres, the \ + retrieve command will cause Postgres to crash: + + Example 14-1. Example of a circular rewrite rule combination. + " {} " + create rule bad_rule_combination_1 as + on select to EMP + do instead select to TOYEMP + + create rule bad_rule_combination_2 as + on select to TOYEMP + do instead select to EMP + + " {code} " + This attempt to retrieve from EMP will cause Postgres to crash. + " {} " + select * from EMP + + " {code} " + You must have rule definition access to a class in order to define a rule on it. Use GRANT and REVOKE to change permissions. + + " {} "Bugs" {bold} " + + The object in a SQL rule cannot be an array reference and cannot have parameters. + + Aside from the \"oid\" field, system attributes cannot be referenced anywhere in a rule. Among other things, this means that functions of instances (e.g., \"foo(emp)\" where \ + \"emp\" is a class) cannot be called anywhere in a rule. + + The rule system stores the rule text and query plans as text attributes. This implies that creation of rules may fail if the rule plus its various internal representations exceed some value that is on \ + the order of one page (8KB). " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/create_sequence.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/create_sequence.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/create_sequence.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/create_sequence.hlp Mon Sep 13 14:47:30 1999 *************** *** 0 **** --- 1,42 ---- + .pgaw:Help.f.t insert end \ + "CREATE SEQUENCE" {bold} " will enter a new sequence number generator into the current data base. This involves creating and initialising a new single-row table with the name seqname. The generator will be \"owned\" by the user issuing the command. + + After a sequence is created, you may use the function nextval(seqname) to get a new number from the sequence. The function currval('seqname') may be used to determine the number returned by the last call to nextval(seqname) for the specified sequence in the current session. The function setval('seqname', newvalue) may be used to set the current value of the specified sequence. The next call to nextval(seqname) will return the given value plus the sequence increment. + + " {} "Synopsis" {bold} " + + CREATE SEQUENCE seqname + \[ INCREMENT increment \] + \[ MINVALUE minvalue \] + \[ MAXVALUE maxvalue \] + \[ START start \] + \[ CACHE cache \] + \[ CYCLE \] + " {code} " + " {} "Inputs" {bold} " + + " {} "seqname" {italic} " + The name of a sequence to be created. + + " {} "increment" {italic} " + The INCREMENT increment clause is optional. A positive value will make an ascending sequence, a negative one a descending sequence. The default value is one (1). + + " {} "minvalue" {italic} " + The optional clause MINVALUE minvalue determines the minimum value a sequence can generate. The defaults are 1 and -2147483647 for ascending and descending sequences, respectively. + + " {} "maxvalue" {italic} " + Use the optional clause MAXVALUE maxvalue to determine the maximum value for the sequence. The defaults are 2147483647 and -1 for ascending and descending sequences, respectively. + + " {} "start" {italic} " + The optional START start clause enables the sequence to begin anywhere. The default starting value is minvalue for ascending sequences and maxvalue for descending ones. + + " {} "cache" {italic} " + The CACHE cache option enables sequence numbers to be preallocated and stored in memory for faster access. The minimum value is 1 (only one value can be generated at a time, i.e. no cache) and this is also the default. + + " {} "CYCLE" {italic} " + The optional CYCLE keyword may be used to enable the sequence to continue when the maxvalue or minvalue has been reached by an ascending or descending sequence respectively. If the limit is reached, the next number generated will be whatever the minvalue or maxvalue is, as appropriate. + + " {} "CAUTION" {title} " + Unexpected results may be obtained if a cache setting greater than one is used for a sequence object that will be used concurrently by multiple backends. Each backend will allocate \"cache\" successive sequence values during one access to the sequence object and increase the sequence object's last_value accordingly. Then, the next cache-1 uses of nextval within that backend simply return the preallocated values without touching the shared object. So, numbers allocated but not used in the current session will be lost. Furthermore, although multiple backends are guaranteed to allocate distinct sequence values, the values may be generated out of sequence when all the backends are considered. (For example, with a cache setting of 10, backend A might reserve values 1..10 and return nextval=1, then backend B might reserve values 11..20 and return nextval=11 before backend A has generated nextval=2.) Thus, with a cache setting of one it is safe to assume that nextval values are generated sequentially; with a cache setting greater than one you should only assume that the nextval values are all distinct, not that they are generated purely sequentially. Also, last_value will reflect the latest value reserved by any backend, whether or not it has yet been returned by nextval. + + CREATE SEQUENCE is a Postgres language extension. There is no CREATE SEQUENCE statement in SQL92." diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/create_table.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/create_table.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/create_table.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/create_table.hlp Mon Sep 13 14:47:30 1999 *************** *** 0 **** --- 1,39 ---- + .pgaw:Help.f.t insert end \ + "CREATE TABLE" {bold} " + + CREATE \[ TEMPORARY | TEMP \] TABLE table ( + column type + \[ NULL | NOT NULL \] \[ UNIQUE \] \[ DEFAULT value \] + \[column_constraint_clause | PRIMARY KEY } \[ ... \] \] + \[, ... ] + \[, PRIMARY KEY ( column \[, ...\] ) \] + \[, CHECK ( condition ) \] + \[, table_constraint_clause \] + ) \[ INHERITS ( inherited_table \[, ...\] ) \] + " {code} " + TEMPORARY + The table is created only for this session, and is automatically dropped on session exit. Existing permanent tables with the same name are not visible while the temporary table exists. + " {} " + table" {italic} " + The name of a new table to be created. + " {} " + column" {italic} " + The name of a column. + " {} " + type" {italic} " + The type of the column. This may include array specifiers. Refer to the PostgreSQL User's Guide for further information about data types and arrays. + " {} " + DEFAULT value" {italic} " + A default value for a column. See the DEFAULT clause for more information. + " {} " + column_constraint_clause" {italic} " + The optional column constraint clauses specify a list of integrity constraints or tests which new or updated entries must satisfy for an insert or update operation to succeed. Each constraint must evaluate to a boolean expression. Although SQL92 requires the column_constraint_clause to refer to that column only, Postgres allows multiple columns to be referenced within a single column constraint. See the column constraint clause for more information. + " {} " + table_constraint_clause" {italic} " + The optional table CONSTRAINT clause specifies a list of integrity constraints which new or updated entries must satisfy for an insert or update operation to succeed. Each constraint must evaluate to a boolean expression. Multiple columns may be referenced within a single constraint. Only one PRIMARY KEY clause may be specified for a table; PRIMARY KEY column (a table constraint) and PRIMARY KEY (a column constraint) are mutually exclusive.. See the table constraint clause for more information. + " {} " + INHERITS inherited_table" {italic} " + The optional INHERITS clause specifies a collection of table names from which this table automatically inherits all fields. If any inherited field name appears more than once, Postgres reports an error. Postgres automatically allows the created table to inherit functions on tables above it in the inheritance hierarchy. + + Aside: Inheritance of functions is done according to the conventions of the Common Lisp Object System (CLOS). + " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/create_table_as.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/create_table_as.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/create_table_as.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/create_table_as.hlp Mon Sep 13 14:47:30 1999 *************** *** 0 **** --- 1,20 ---- + .pgaw:Help.f.t insert end "CREATE TABLE AS" {bold} " CREATE TABLE AS enables a table to be created from the contents of an existing table. It has functionality equivalent to SELECT TABLE INTO, but with perhaps a more obvious syntax. + + " {} "Synopsis" {bold} " + " {} " + CREATE TABLE table \[ (column \[, ...\] ) \] + AS select_clause + + " {code} "Inputs" {bold} " + + " {} "table" {italic} " + The name of a new table to be created. + + " {} "column" {italic} " + The name of a column. Multiple column names can be specified using a comma-delimited list of column names. + + " {} "select_clause" {italic} " + A valid query statement. Refer to SELECT for a description of the allowed syntax. + + " {} "Outputs" {bold} " + Refer to CREATE TABLE and SELECT for a summary of possible output messages. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/create_trigger.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/create_trigger.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/create_trigger.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/create_trigger.hlp Mon Sep 13 14:47:30 1999 *************** *** 0 **** --- 1,80 ---- + .pgaw:Help.f.t insert end "CREATE TRIGGER" {bold} " will enter a new trigger into the current data base. The trigger will be associated with the relation relname and will execute the specified function funcname. + + The trigger can be specified to fire either before the operation is attempted on a tuple (before constraints are checked and the INSERT, UPDATE or DELETE is attempted) or after the operation \ + has been attempted (e.g. after constraints are checked and the INSERT, UPDATE or DELETE has completed). If the trigger fires before the event, the trigger may skip the operation for the \ + current tuple, or change the tuple being inserted (for INSERT and UPDATE operations only). If the trigger fires after the event, all changes, including the last insertion, update, or deletion, are \ + \"visible\" to the trigger. + + Refer to the chapters on SPI and Triggers in the PostgreSQL Programmer's Guide for more information. + + " {} "Synopsis" {bold} " + + CREATE TRIGGER name \{ BEFORE | AFTER \} + \{ event \[OR ...\] \} + ON table FOR EACH \{ ROW | STATEMENT \} + EXECUTE PROCEDURE funcname ( arguments ) + + " {code} "Inputs" {bold} " + + " {} "name" {italic} " + The name of an existing trigger. + + " {} "table" {italic} " + The name of a table. + + " {} "event" {italic} " + One of INSERT, DELETE or UPDATE. + + " {} "funcname" {italic} " + A user-supplied function. + + " {} "Outputs" {bold} " + + " {} "CREATE" {italic} " + This message is returned if the trigger is successfully created. + + " {} "Usage" {bold} " + + Check if the specified distributor code exists in the distributors table before appending or updating a row in the table films: + " {} " + CREATE TRIGGER if_dist_exists + BEFORE INSERT OR UPDATE ON films FOR EACH ROW + EXECUTE PROCEDURE check_primary_key ('did', 'distributors', 'did'); + + " {code} " + Before cancelling a distributor or updating its code, remove every reference to the table films: + " {} " + CREATE TRIGGER if_film_exists + BEFORE DELETE OR UPDATE ON distributors FOR EACH ROW + EXECUTE PROCEDURE check_foreign_key (1, 'CASCADE', 'did', 'films', 'did'); + + + + " {code} "Compatibility" {bold} " + + " {} "SQL92" {italic} " + + There is no CREATE TRIGGER in SQL92. + + The second example above may also be done by using a FOREIGN KEY constraint as in: + " {} " + CREATE TABLE distributors ( + did DECIMAL(3), + name VARCHAR(40), + CONSTRAINT if_film_exists + FOREIGN KEY(did) REFERENCES films + ON UPDATE CASCADE ON DELETE CASCADE + ); + + " {code} " + However, foreign keys are not yet implemented (as of version 6.4) in Postgres. + + " {} "Notes" {bold} " + + " {} "CREATE TRIGGER" {italic} " is a Postgres language extension. + + Only the relation owner may create a trigger on this relation. + + As of the current release (v6.4), STATEMENT triggers are not implemented. + + Refer to DROP TRIGGER for information on how to remove triggers. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/create_type.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/create_type.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/create_type.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/create_type.hlp Mon Sep 13 14:47:30 1999 *************** *** 0 **** --- 1,24 ---- + .pgaw:Help.f.t insert end "CREATE TYPE" {bold} " allows the user to register a new user data type with Postgres for use in the current data base. The user who defines a type becomes its owner. Typename is the name of the new \ + type and must be unique within the types defined for this database. + + " {} "Synopsis" {bold} " + + CREATE TYPE typename ( + INPUT = input_function + , OUTPUT = output_function + , INTERNALLENGTH = (internallength | VARIABLE) + \[ , EXTERNALLENGTH = (externallength | VARIABLE) \] + \[ , ELEMENT = element \] + \[ , DELIMITER = delimiter \] + \[ , DEFAULT = \"default\" \] + \[ , SEND = send_function \] + \[ , RECEIVE = receive_function \] + \[ , PASSEDBYVALUE \] + ) + + " {code} "Notes" {bold} " + + Refer to DROP TYPE to remove an existing type. + + See also CREATE FUNCTION, CREATE OPERATOR and the chapter on Large Objects in the PostgreSQL Programmer's Guide. + " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/create_user.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/create_user.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/create_user.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/create_user.hlp Mon Sep 13 14:47:30 1999 *************** *** 0 **** --- 1,50 ---- + .pgaw:Help.f.t insert end "CREATE USER" {bold} " will add a new user to an instance of Postgres. + + The new user will be given a usesysid of: 'SELECT MAX(usesysid) + 1 FROM pg_shadow'. This means that Postgres users' usesysids will not correspond to their operating system(OS) \ + user ids. The exception to this rule is the 'postgres' user, whose OS user id is used as the usesysid during the initdb process. If you still want the OS user id and the usesysid to match for any \ + given user, use the \"createuser\" script provided with the Postgres distribution. + + " {} "Synopsis" {bold} " + + CREATE USER username + \[ WITH PASSWORD password \] + \[ CREATEDB | NOCREATEDB \] + \[ CREATEUSER | NOCREATEUSER \] + \[ IN GROUP groupname \[, ...\] \] + \[ VALID UNTIL 'abstime' \] + + + " {code} "Usage" {bold} " + + Create a user with no password: + " {} " CREATE USER jonathan + " {code} " + Create a user with a password: + " {} " CREATE USER davide WITH PASSWORD jw8s0F4 + " {code} " + Create a user with a password, whose account is valid until the end of 2001. Note that after one second has ticked in 2002, the account is not valid: + " {} " CREATE USER miriam WITH PASSWORD jw8s0F4 VALID UNTIL 'Jan 1 2002' + " {code} " + Create an account where the user can create databases: + " {} " CREATE USER manuel WITH PASSWORD jw8s0F4 CREATEDB + + " {code} "Notes" {bold} " + + CREATE USER statement is a Postgres language extension. + Use DROP USER or ALTER USER statements to remove or modify a user account. + Refer to the pg_shadow table for further information. + " {} " + Table = pg_shadow + +--------------------------+--------------------------+-------+ + | Field | Type | Length| + +--------------------------+--------------------------+-------+ + | usename | name | 32 | + | usesysid | int4 | 4 | + | usecreatedb | bool | 1 | + | usetrace | bool | 1 | + | usesuper | bool | 1 | + | usecatupd | bool | 1 | + | passwd | text | var | + | valuntil | abstime | 4 | + +--------------------------+--------------------------+-------+ + " {code} diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/create_view.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/create_view.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/create_view.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/create_view.hlp Mon Sep 13 14:47:30 1999 *************** *** 0 **** --- 1,27 ---- + .pgaw:Help.f.t insert end "CREATE VIEW" {bold} " will define a view of a table. This view is not physically materialized. Specifically, a query rewrite retrieve rule is automatically generated to support retrieve operations on \ + views. + + " {} "Synopsis" {bold} " + + CREATE VIEW view + AS SELECT query + + " {} "Usage" {bold} " + + Create a view consisting of all Comedy films: + " {} " + CREATE VIEW kinds AS + SELECT * + FROM films + WHERE kind = 'Comedy'; + + SELECT * FROM kinds; + + code |title |did| date_prod|kind |len + -----+-------------------------+---+----------+----------+------ + UA502|Bananas |105|1971-07-13|Comedy | 01:22 + C_701|There's a Girl in my Soup|107|1970-06-11|Comedy | 01:36 + + " {code} "Notes" {bold} " + + Use the DROP VIEW statement to drop views. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/data_types.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/data_types.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/data_types.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/data_types.hlp Mon Sep 13 14:47:30 1999 *************** *** 0 **** --- 1,48 ---- + .pgaw:Help.f.t configure -tabs {130 300 450} + .pgaw:Help.f.t insert end \ + "Data types\n\n" {title} \ + "Postgres has a rich set of native data types available to users. Users may add new types to Postgres using the DEFINE TYPE command described elsewhere. + + In the context of data types, the following sections will discuss SQL standards compliance, porting issues, and usage. Some Postgres types correspond directly to SQL92-compatible types. In other cases, data types defined by SQL92 syntax are mapped directly into native Postgres types. Many of the built-in types have obvious external formats. However, several types are either unique to Postgres, such as open and closed paths, or have several possibilities for formats, such as the date and time types. + + " {} \ + "Postgres Type\tSQL92 or SQL3 Type\tDescription\n" {bold} \ + "bool\tboolean\tlogical boolean (true/false) + box\t\trectangular box in 2D plane\tchar(n) + character(n)\t\tfixed-length character string + cidr\t\tIP version 4 network or host address + circle\t\tcircle in 2D plane + date\tdate\tcalendar date without time of day + float4/8\tfloat(p)\tfloating-point number with precision p + float8\treal, double precision\tdouble-precision floating-point number + inet\t\tIP version 4 network or host address + int2\tsmallint\tsigned two-byte integer + int4\tint, integer\tsigned 4-byte integer + int4\tdecimal(p,s)\texact numeric for p <= 9, s = 0 + int4\tnumeric(p,s)\texact numeric for p == 9, s = 0 + int8\t\tsigned 8-byte integer + line\t\tinfinite line in 2D plane + lseg\t\tline segment in 2D plane + money\tdecimal(9,2)\tUS-style currency + path\t\topen and closed geometric path in 2D plane + point\t\tgeometric point in 2D plane + polygon\t\tclosed geometric path in 2D plane + serial\t\tunique id for indexing and cross-reference + time\ttime\ttime of day + timespan\tinterval\tgeneral-use time span + timestamp\ttimestamp with time zone\tdate/time + varchar(n)\tcharacter varying(n)\tvariable-length character string + + Note: The cidr and inet types are designed to handle any IP type but only ipv4 is handled in the current implementation. Everything here that talks about ipv4 will apply to ipv6 in a future release. + + " {} \ + "Postgres Function Constants + + Postgres Function\tSQL92 Constant\tDescription" {bold} \ + " + getpgusername()\tcurrent_user\tuser name in current session + date('now')\tcurrent_date\tdate of current transaction + time('now')\tcurrent_time\ttime of current transaction + timestamp('now')\tcurrent_timestamp\tdate and time of current transaction + " {} + diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/datefunc.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/datefunc.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/datefunc.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/datefunc.hlp Mon Sep 13 14:47:30 1999 *************** *** 0 **** --- 1,58 ---- + .pgaw:Help.f.t insert end \ + "DateTime functions\n\n" {title} \ + "abstime(datetime) " {bold} " + Returns: abstime + convert to abstime + + " {} "age(datetime,datetime) " {bold} " + Returns: timespan + preserve months and years + + " {} "datetime(abstime) " {bold} " + Returns: datetime + convert to datetime + + " {} "datetime(date) " {bold} " + Returns: datetime + convert to datetime + + " {} "datetime(date,time) " {bold} " + Returns: datetime + convert to datetime + + " {} "date_part(text,datetime) " {bold} " + Returns: float8 + portion of date + + " {} "date_part(text,timespan) " {bold} " + Returns: float8 + portion of time + + " {} "date_trunc(text,datetime) " {bold} " + Returns: datetime + truncate date + + " {} "isfinite(abstime) " {bold} " + Returns: bool + a finite time? + + " {} "isfinite(datetime) " {bold} " + Returns: bool + a finite time? + + " {} "isfinite(timespan) " {bold} " + Returns: bool + a finite time? + + " {} "reltime(timespan) " {bold} " + Returns: reltime + convert to reltime + + " {} "timespan(reltime) " {bold} " + Returns: timespan + convert to timespan + + + " {} \ + "PostgreSQL functions\n" {link pgfunctions} \ + "Next - geometric functions" {link geomfunc} diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/declare.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/declare.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/declare.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/declare.hlp Mon Sep 13 14:47:30 1999 *************** *** 0 **** --- 1,29 ---- + .pgaw:Help.f.t insert end "DECLARE" {bold} " allows a user to create cursors, which can be used to retrieve a small number of rows at a time out of a larger query. Cursors can return data either in text or in binary foramt. + + Normal cursors return data in text format, either ASCII or another encoding scheme depending on how the Postgres backend was built. Since data is stored natively in binary format, the system \ + must do a conversion to produce the text format. In addition, text formats are often larger in size than the corresponding binary format. Once the information comes back in text form, the client \ + application may have to convert it to a binary format to manipulate it anyway. + + BINARY cursors give you back the data in the native binary representation. So binary cursors will tend to be a little faster since they suffer less conversion overhead. + + " {} "Synopsis" {bold} " + + DECLARE cursor \[ BINARY \] \[ INSENSITIVE \] \[ SCROLL \] + CURSOR FOR query + \[ FOR \[ READ ONLY | UPDATE \[ OF column \[, ...\] \] \] + + " {code} "Usage" {bold} " + + To declare a cursor: + " {} " + DECLARE liahona CURSOR + FOR SELECT * FROM films; + + " {code} "Notes" {bold} " + + Cursors are only available in transactions. + + Postgres does not have an explicit OPEN cursor statement; a cursor is considered to be open when it is declared. + + Note: In SQL92 cursors are only available in embedded applications. ecpg, the embedded SQL preprocessor for Postgres, supports the SQL92 conventions, including those \ + involving DECLARE and OPEN statements. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/delete.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/delete.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/delete.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/delete.hlp Mon Sep 13 14:47:30 1999 *************** *** 0 **** --- 1,43 ---- + .pgaw:Help.f.t insert end "DELETE" {bold} " emoves rows which satisfy the WHERE condition, from the specified table. \ + If the condition is absent, the effect is to delete all rows in the table. The result is a valid, but empty table. \ + You must have write access to the table in order to modify it, as well as read access to any table whose values are read in the condition. + + " {} "Synopsis" {bold} " + " {} " + DELETE FROM table \[ WHERE condition \] + + " {code} "Usage" {bold} " + + Remove all films but musicals: + " {} " + DETETE FROM films WHERE kind <> 'Musical'; + + SELECT * FROM films; + + code |title |did| date_prod|kind |len + -----+-------------------------+---+----------+----------+------ + UA501|West Side Story |105|1961-01-03|Musical | 02:32 + TC901|The King and I |109|1956-08-11|Musical | 02:13 + WD101|Bed Knobs and Broomsticks|111| |Musical | 01:57 + (3 rows) + + + Clear the table films: + + DELETE FROM films; + + SELECT * FROM films; + code|title|did|date_prod|kind|len + ----+-----+---+---------+----+--- + (0 rows) + + " {code} "Compatibility" {bold} " + + SQL92 + + SQL92 allows a positioned DELETE statement: + + DELETE FROM table WHERE CURRENT OF cursor + + + where cursor identifies an open cursor. Interactive cursors in Postgres are read-only. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/drop_aggregate.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/drop_aggregate.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/drop_aggregate.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/drop_aggregate.hlp Mon Sep 13 14:47:30 1999 *************** *** 0 **** --- 1,17 ---- + .pgaw:Help.f.t insert end "DROP AGGREGATE" {bold} " will remove all references to an existing aggregate definition. To execute this command the current user must be the owner of the aggregate. + + " {} "Synopsis" {bold} " + + DROP AGGREGATE name type + + " {} "Usage" {bold} " + + To remove the myavg aggregate for type int4: + + DROP AGGREGATE myavg int4; + + " {} "Notes" {bold} " + + The DROP AGGREGATE statement is a Postgres language extension. + + Refer to the CREATE AGGREGATE statement to create aggregate functions. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/drop_database.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/drop_database.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/drop_database.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/drop_database.hlp Mon Sep 13 14:47:30 1999 *************** *** 0 **** --- 1,14 ---- + .pgaw:Help.f.t insert end "DROP DATABASE" {bold} " removes the catalog entries for an existing database and deletes the directory containing the data. It can only be executed by the database administrator (See the \ + CREATE DATABASE command for details). + + " {} "Synopsis" {bold} " + + DROP DATABASE name + + " {} "Notes" {bold} " + + DROP DATABASE statement is a Postgres language extension. + + Tip: This query cannot be executed while connected to the target database. It is usually preferable to use the destroydb script instead. + + Refer to the CREATE DATABASE statement for information on how to create a database. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/drop_function.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/drop_function.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/drop_function.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/drop_function.hlp Mon Sep 13 14:47:30 1999 *************** *** 0 **** --- 1,22 ---- + .pgaw:Help.f.t insert end \ + "DROP FUNCTION" {bold} " will remove references to an existing C function. To execute this command the user must be the owner of the function. The input argument types to the function must be specified, as only the function with the given name and argument types will be removed. + + " {} "Synopsis" {bold} " + + DROP FUNCTION name ( \[ type \[, ...\] \] ) + " {code} " + Inputs + " {} "name" {italic} " + The name of an existing function. + + " {} "type" {italic} " + The type of function parameters. + + Outputs + " {} "DROP" {code} " + + Message returned if the command completes successfully. + + WARN RemoveFunction: Function \"name\" (\"types\") does not exist + + This message is given if the function specified does not exist in the current database." diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/drop_index.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/drop_index.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/drop_index.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/drop_index.hlp Mon Sep 13 14:47:30 1999 *************** *** 0 **** --- 1,17 ---- + .pgaw:Help.f.t insert end "DROP INDEX" {bold} " drops an existing index from the database system. To execute this command you must be the owner of the index. + + " {} "Synopsis" {bold} " + + DROP INDEX index_name + + " {code} "Usage" {bold} " + + This command will remove the title_idx index: + " {} " + DROP INDEX title_idx; + + " {code} "Notes" {bold} " + + DROP INDEX is a Postgres language extension. + + Refer to the CREATE INDEX statement for information on how to create indexes. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/drop_language.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/drop_language.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/drop_language.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/drop_language.hlp Mon Sep 13 14:47:30 1999 *************** *** 0 **** --- 1,17 ---- + .pgaw:Help.f.t insert end "DROP LANGUAGE" {bold} " will remove the definition of the previously registered procedural language having the name 'langname'. + + " {} "Synopsis" {bold} " + + DROP PROCEDURAL LANGUAGE 'langname' + + " {code} "Usage" {bold} " + + This command removes the PL/Sample language: + " {} " + DROP PROCEDURAL LANGUAGE 'plsample' + + " {code} "Notes" {bold} " + + The DROP PROCEDURAL LANGUAGE statement is a Postgres language extension. + + Refer to CREATE PROCEDURAL LANGUAGE for information on how to create procedural languages. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/drop_operator.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/drop_operator.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/drop_operator.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/drop_operator.hlp Mon Sep 13 14:47:30 1999 *************** *** 0 **** --- 1,32 ---- + .pgaw:Help.f.t insert end "DROP OPERATOR" {bold} " The DROP OPERATOR statement drops an existing operator from the database. To execute this command you must be the owner of the operator. \ + The left or right type of a left or right unary operator, respectively, may be specified as NONE. + + " {} "Synopsis" {bold} " + " {} " + DROP OPERATOR id ( type | NONE \[,...\] ) + + " {code} "Usage" {bold} " + + Remove power operator a^n for int4: + " {} " + DROP OPERATOR ^ (int4, int4); + + " {code} " + Remove left unary operator !a for booleans: + " {} " + DROP OPERATOR ! (none, bool); + + " {code} " + Remove right unary factorial operator a! for int4: + " {} " + DROP OPERATOR ! (int4, none); + + + " {code} "Notes" {bold} " + + The DROP OPERATOR statement is a Postgres language extension. + + Refer to CREATE OPERATOR for information on how to create operators. + + It is the user's responsibility to remove any access methods and operator classes that rely on the deleted operator. + " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/drop_rule.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/drop_rule.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/drop_rule.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/drop_rule.hlp Mon Sep 13 14:47:30 1999 *************** *** 0 **** --- 1,17 ---- + .pgaw:Help.f.t insert end "DROP RULE" {bold} " drops a rule from the specified Postgres rule system. Postgres will immediately cease enforcing it and will purge its definition from the system catalogs. + + " {} "Synopsis" {bold} " + + DROP RULE name + + " {} "Usage" {bold} " + + To drop the rewrite rule newrule: + + DROP RULE newrule + + " {} "Notes" {bold} " + + The DROP RULE statement is a Postgres language extension. + + Refer to CREATE RULE for information on how to create rules. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/drop_sequence.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/drop_sequence.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/drop_sequence.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/drop_sequence.hlp Mon Sep 13 14:47:30 1999 *************** *** 0 **** --- 1,17 ---- + .pgaw:Help.f.t insert end "DROP SEQUENCE" {bold} " removes sequence number generators from the data base. With the current implementation of sequences as special tables it works just like the DROP TABLE statement. + + " {} "Synopsis" {bold} " + " {} " + DROP SEQUENCE seqname \[, ...\] + + " {code} "Usage" {bold} " + + To remove sequence serial from database: + + DROP SEQUENCE serial + + " {} "Notes" {bold} " + + The DROP SEQUENCE statement is a Postgres language extension. + + Refer to the CREATE SEQUENCE statement for information on how to create a sequence. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/drop_table.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/drop_table.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/drop_table.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/drop_table.hlp Mon Sep 13 14:47:30 1999 *************** *** 0 **** --- 1,17 ---- + .pgaw:Help.f.t insert end "DROP TABLE" {bold} " removes tables and views from the database. Only its owner may destroy a table or view. A table may be emptied of rows, but not destroyed, by using DELETE. + + If a table being destroyed has secondary indexes on it, they will be removed first. The removal of just a secondary index will not affect the contents of the underlying table. + + " {} "Synopsis" {bold} " + " {} " + DROP TABLE table \[, ...\] + + " {code} "Usage" {bold} " + + To destroy the films and distributors tables: + + DROP TABLE films, distributors + + " {} "Notes" {bold} " + + Refer to CREATE TABLE and ALTER TABLE for information on how to create or modify tables. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/drop_trigger.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/drop_trigger.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/drop_trigger.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/drop_trigger.hlp Mon Sep 13 14:47:30 1999 *************** *** 0 **** --- 1,17 ---- + .pgaw:Help.f.t insert end "DROP TRIGGER" {bold} " will remove all references to an existing trigger definition. To execute this command the current user must be the owner of the trigger. + + " {} "Synopsis" {bold} " + + DROP TRIGGER name ON table + + " {} "Usage" {bold} " + + Destroy the if_dist_exists trigger on table films: + + DROP TRIGGER if_dist_exists ON films; + + " {} "Notes" {bold} " + + DROP TRIGGER is a Postgres language extension. + + Refer to CREATE TRIGGER for information on how to create triggers. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/drop_type.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/drop_type.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/drop_type.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/drop_type.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,20 ---- + .pgaw:Help.f.t insert end "DROP TYPE" {bold} " will remove a user type from the system catalogs. + + " {} "Synopsis" {bold} " + + DROP TYPE typename + + " {} "Usage" {bold} " + + To remove the box type: + + DROP TYPE box + + " {} "Notes" {bold} " + + DROP TYPE statement is a Postgres language extension. + + Refer to CREATE TYPE for inforamation on how to create types. + + It is the user's responsibility to remove any operators, functions, aggregates, access methods, subtypes, and classes that use a deleted type. + " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/drop_user.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/drop_user.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/drop_user.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/drop_user.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,19 ---- + .pgaw:Help.f.t insert end "DROP USER" {bold} " removes the specified user from the database, along with any databases owned by the user. It does not remove tables, views, or triggers owned by the named user in databases \ + not owned by the user. This statement can be used in place of the destroyuser script, regardless of how the user was created. + + " {} "Synopsis" {bold} " + + DROP USER username + + " {} "Usage" {bold} " + + To drop a user account: + + DROP USER Jonathan; + + " {} "Notes" {bold} " + + DROP USER is a Postgres language extension. + + Refer to CREATE USER and ALTER USER for information on how to create or modify user accounts. + " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/drop_view.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/drop_view.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/drop_view.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/drop_view.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,17 ---- + .pgaw:Help.f.t insert end "DROP VIEW" {bold} " drops an existing view from the database. To execute this command you must be the owner of the view. + + " {} "Synopsis" {bold} " + + DROP VIEW view + + " {} "Usage" {bold} " + + This command will remove the view called kinds: + + DROP VIEW kinds; + + " {} "Notes" {bold} " + + The Postgres DROP TABLE statement also drops views. + + Refer to CREATE VIEW for information on how to create views. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/explain.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/explain.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/explain.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/explain.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,23 ---- + .pgaw:Help.f.t insert end "EXPLAIN" {bold} " This command outputs details about the supplied query. The default output is the computed query cost. The cost value is only meaningful to the optimizer in comparing various query plans. \ + VERBOSE displays the full query plan and cost to your screen, and pretty-prints the plan to the postmaster log file. + + " {} "Synopsis" {bold} " + " {} " + EXPLAIN \[ VERBOSE \] query + + " {code} "Usage" {bold} " + + To show a query plan for a simple query: + " {} " + postgres=> explain select * from foo; + NOTICE: QUERY PLAN: + + Seq Scan on foo (cost=0.00 rows=0 width=4) + + EXPLAIN + + " {code} "Notes" {bold} " + + There is only sparse documentation on the optimizer's use of cost information in Postgres. General information on cost estimation for query optimization can be found in database textbooks. + Refer to the Programmer's Guide in the chapters on indexes and the genetic query optimizer for more \ + information." diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/fetch.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/fetch.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/fetch.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/fetch.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,62 ---- + .pgaw:Help.f.t insert end "FETCH" {bold} " FETCH allows a user to retrieve rows using a cursor. The number of rows retrieved is specified by #. If the number of rows remaining in the cursor is less than #, then only those available are \ + fetched. Substituting the keyword ALL in place of a number will cause all remaining rows in the cursor to be retrieved. Instances may be fetched in both FORWARD and BACKWARD \ + directions. The default direction is FORWARD. + + Tip: Negative numbers are now allowed to be specified for the row count. A negative number is equivalent to reversing the sense of the FORWARD and BACKWARD \ + keywords. For example, FORWARD -1 is the same as BACKWARD 1. + + Note that the FORWARD and BACKWARD keywords are Postgres extensions. The SQL92 syntax is also supported, specified in the second form of the command. See below for details on \ + compatibility issues. + + Once all rows are fetched, every other fetch access returns no rows. + + Updating data in a cursor is not supported by Postgres, because mapping cursor updates back to base tables is not generally possible, as is also the case with VIEW updates. Consequently, \ + users must issue explicit UPDATE commands to replace data. + + Cursors may only be used inside of transactions because the data that they store spans multiple user queries. + + " {} "Synopsis" {bold} " + " {} " + FETCH \[ selector \] \[ count \] + \{ IN | FROM \} cursor + FETCH \[ RELATIVE \] \[ \{ \[ # | ALL | NEXT | PRIOR \] \} \] + FROM \] cursor + + " {code} "Usage" {bold} " + " {} " + --set up and use a cursor: + -- + BEGIN WORK; + DECLARE liahona CURSOR + FOR SELECT * FROM films; + + --Fetch first 5 rows in the cursor liahona: + -- + FETCH FORWARD 5 IN liahona; + + code |title |did| date_prod|kind |len + -----+-----------------------+---+----------+----------+------ + BL101|The Third Man |101|1949-12-23|Drama | 01:44 + BL102|The African Queen |101|1951-08-11|Romantic | 01:43 + JL201|Une Femme est une Femme|102|1961-03-12|Romantic | 01:25 + P_301|Vertigo |103|1958-11-14|Action | 02:08 + P_302|Becket |103|1964-02-03|Drama | 02:28 + + + --Fetch previous row: + -- + FETCH BACKWARD 1 IN liahona; + + code |title |did| date_prod|kind |len + -----+-----------------------+---+----------+----------+------ + P_301|Vertigo |103|1958-11-14|Action | 02:08 + + -- close the cursor and commit work: + -- + CLOSE liahona; + COMMIT WORK; + + " {code} "Notes" {bold} " + + Refer to MOVE statements to change cursor position. Refer to DECLARE statements to declare a cursor. Refer to BEGIN WORK, COMMIT WORK, ROLLBACK WORK statements for \ + further information about transactions." diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/form_design.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/form_design.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/form_design.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/form_design.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,27 ---- + .pgaw:Help.f.t insert end "Form designing" {title} " + + For the moment, it has only some basic widgets : labels, entries, buttons , listboxes\ + , checkboxes and radiobuttons. Also there is a pseudo query widget that allows you\ + to have access to a query results. + + How do you generate widgets : + -select a widget from the toolbox by clicking the appropriate icon + -move to the canvas , point with the mouse at the desired location and click the mouse button to begin + -keeping the mouse-button pressed move the mouse in order to draw a rectangle that will hold the widget + -release the mouse-button + + In the rectangle that you have designed it will appear the selected object. Move now to the attribute window to change some of its properties. + + Renaming, resizing items are possible (for the moment) only by modifying appropriate parameters in attribute window. You must press Enter in the edit field after changing a dimension in order to be accepted. You can also move items by dragging them or delete them by pressing Del key after selecting them. + + In attribute window, there are some fields named Command and Variable. The field Command have meaning only for Button or checkboxes widgets and holds the command that will be invoked when the button is pressed. Also, there is a \"autoload\" style script for the form that will be executed when form will bne opened. + + The field Variable have meaning only for Buttons, EditField , Label widgets , checkboxes and radiobuttons and it is the name of the global variable that will hold the value for that widget. For checkboxes the values are t and f (from true and false) in order to simplify binding to logical data fields. + + For radiobuttons, it is usual to assign the same variable to the same radiobuttons within the same group. That variable will contain the value field from the radiobutton that has been pressed. Let's presume that you have entered 3 radiobuttons with values red, green and blue, all of them having the same variable named color. If you will press them, they will assign their names to global variable. + + In order to make a simple test, put an entry field and set it's variable to v1 and a button who's command is \"set v1 whisky\". Press the button \"Test form\" and click on the button. In that entry should appear whisky. + + Another test is defining in Script module a script called \"My first script\" having the following commands: + " {} "tk_messageBox -title Warning -message \"This is my first message!\" " {code} " + and then define a button with the command is Scripts::execute \"My first script\". " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/forms.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/forms.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/forms.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/forms.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,19 ---- + .pgaw:Help.f.t insert end "Forms" {title} " + + Forms" {bold} " tab is used to inspect, create and design\ + database stored forms that can be later executed. + + Forms are actually Tcl/Tk code stored in the opened database in a special table called \"pga_forms\" \ + and they can be executed by selecting it and pressing the \"Open\" button. + + The design module will allow you do define the graphical layout of the form and\ + to bind Tcl/Tk code to different widgets. You will really need to know Tcl/Tk in\ + order to be able to write PgAccess forms. + + Due to internal limits of PostgreSQL that cannot store more than 8Kb per record\ + and taking into account that pga_forms store one form per record it's possible that\ + too complicated forms cannot be stored into the table. Too complicated code in\ + forms could be stored in scripts instead thought scripts also are limited to the\ + 8 Kb size. + + See also " {} "form designing" {link form_design} diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/functions.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/functions.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/functions.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/functions.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,32 ---- + .pgaw:Help.f.t insert end "Functions" {title} " + + The Functions tab is used to inspect the user defined functions in the\ + database, to define new functions and to alter the existing ones. + + Press the \"New\" button to define a new function. You should enter the\ + function name, the function parameters (if any) separated by comma. \ + If function returns a value, you should specify the " {} \ + "PostgreSQL data type" {link data_types} " that function will return. + + You must also specify the language that will be used to parse the defined\ + function. You could specify SQL, plpgsql, pgtcl or C. Then you should enter the\ + function body. Press \"Save\" button in order to save it + + " {} "Example:" {italic} " + We have a table called \"products\" that is indexed on \"id\" (int4) field and\ + contains the float8 field \"price\". We will define a new function \"get_product_price\"\ + that will return the product price for a given id. + + You should enter " {} "get_product_price" {code} " as the function name, " {} \ + "int4" {code} " in parameters entry, " {} "float8" {code} " for returns, " {} \ + "SQL" {code} " for the language. Then go to the function body definition and type:" {} " + + SELECT price FROM products where id = \$1" {code} " + + To delete a function, select it from the list box and use the menu command\ + Object/Delete. + + For more information see SQL commands " {} "CREATE FUNCTION" {link create_function} " and " {} \ + "DROP FUNCTION" {link drop_function} + + diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/geomfunc.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/geomfunc.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/geomfunc.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/geomfunc.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,73 ---- + .pgaw:Help.f.t insert end \ + "Geometric functions\n\n" {title} \ + "area(box) " {bold} " + Returns: float8 + area of box + + " {} "area(circle) " {bold} " + Returns: float8 + area of circle + + " {} "box(box,box) " {bold} " + Returns: box + boxes to intersection box + + " {} "center(box) " {bold} " + Returns: point + center of object + + " {} "center(circle) " {bold} " + Returns: point + center of object + + " {} "diameter(circle) " {bold} " + Returns: float8 + diameter of circle + + " {} "height(box) " {bold} " + Returns: float8 + vertical size of box + + " {} "isclosed(path) " {bold} " + Returns: bool + a closed path? + + " {} "isopen(path) " {bold} " + Returns: bool + an open path? + + " {} "length(lseg) " {bold} " + Returns: float8 + length of line segment + + " {} "length(path) " {bold} " + Returns: float8 + length of path + + " {} "pclose(path) " {bold} " + Returns: path + convert path to closed + + " {} "point(lseg,lseg) " {bold} " + Returns: point + intersection + + " {} "points(path) " {bold} " + Returns: int4 + number of points + + " {} "popen(path) " {bold} " + Returns: path + convert path to open + + " {} "radius(circle) " {bold} " + Returns: float8 + radius of circle + + " {} "width(box) " {bold} " + Returns: float8 + horizontal size + + " {} \ + "PostgreSQL functions\n" {link pgfunctions} \ + "Next - IP V4 functions" {link ipv4func} diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/grant.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/grant.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/grant.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/grant.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,52 ---- + .pgaw:Help.f.t insert end "GRANT" {bold} " GRANT allows the creator of an object to give specific permissions to all users (PUBLIC) or to a certain user or group. Users other than the creator don't have any access permission unless \ + the creator GRANTs permissions, after the object is created. + + Once a user has a privilege on an object, he is enabled to exercise that privilege. There is no need to GRANT privileges to the creator of an object, the creator automatically holds ALL \ + privileges, and can also drop the object. + + " {} "Synopsis" {bold} " + " {} " + GRANT privilege \[, ...\] + ON object \[, ...\] + TO \{ PUBLIC | GROUP group | username \} + + " {code} "Usage" {bold} " + " {} " + -- grant insert privilege to all users on table films: + -- + GRANT INSERT ON films TO PUBLIC; + + + -- grant all privileges to user manuel on view kinds: + -- + GRANT ALL ON kinds TO manuel; + + " {code} "Notes" {bold} " + + Use the psql \\z command for further information about permissions on existing objects: + " {} " + Database = lusitania + +------------------+------------------------------------------------+ + | Relation | Grant/Revoke Permissions | + +------------------+------------------------------------------------+ + | mytable | \{\"=rw\",\"miriam=arwR\",\"group todos=rw\"\} | + +------------------+------------------------------------------------+ + Legend: + uname=arwR -- privileges granted to a user + group gname=arwR -- privileges granted to a GROUP + =arwR -- privileges granted to PUBLIC + + r -- SELECT + w -- UPDATE/DELETE + a -- INSERT + R -- RULE + arwR -- ALL + " {code} "Tip" {bold} " + + Tip: Currently, to create a GROUP you have to insert data manually into table pg_group as: + + INSERT INTO pg_group VALUES ('todos'); + CREATE USER miriam IN GROUP todos; + + + Refer to REVOKE statements to revoke access privileges. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/history.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/history.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/history.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/history.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,43 ---- + .pgaw:Help.f.t insert end \ + "PostgreSQL history\n\n" {title} \ + "The Berkeley Postgres project\n" {bold} \ + "Implementation of the Postgres DBMS began in 1986. The initial concepts for the system were presented in The Design of Postgres and the definition of the initial data model appeared in The Postgres Data Model. The design of the rule system at that time was described in The Design of the Postgres Rules System. The rationale and architecture of the storage manager were detailed in The Postgres Storage System. + + Postgres has undergone several major releases since then. The first 'demoware' system became operational in 1987 and was shown at the 1988 ACM-SIGMOD Conference. We released Version 1, described in The Implementation of Postgres, to a few external users in June 1989. In response to a critique of the first rule system (A Commentary on the Postgres Rules System), the rule system was redesigned (On Rules, Procedures, Caching and Views in Database Systems) and Version 2 was released in June 1990 with the new rule system. Version 3 appeared in 1991 and added support for multiple storage managers, an improved query executor, and a rewritten rewrite rule system. For the most part, releases since then have focused on portability and reliability. + + Postgres has been used to implement many different research and production applications. These include: a financial data analysis system, a jet engine performance monitoring package, an asteroid tracking database, a medical information database, and several geographic information systems. Postgres has also been used as an educational tool at several universities. Finally, Illustra Information Technologies (since merged into Informix) picked up the code and commercialized it. Postgres became the primary data manager for the Sequoia 2000 scientific computing project in late 1992. Furthermore, the size of the external user community nearly doubled during 1993. It became increasingly obvious that maintenance of the prototype code and support was taking up large amounts of time that should have been devoted to database research. In an effort to reduce this support burden, the project officially ended with Version 4.2. + + " {} \ + "Postgres95\n" {bold} \ + "In 1994, Andrew Yu and Jolly Chen added a SQL language interpreter to Postgres, and the code was subsequently released to the Web to find its own way in the world. Postgres95 was a public-domain, open source descendant of this original Berkeley code. + + Postgres95 is a derivative of the last official release of Postgres (version 4.2). The code is now completely ANSI C and the code size has been trimmed by 25%. There are a lot of internal changes that improve performance and code maintainability. Postgres95 v1.0.x runs about 30-50% faster on the Wisconsin Benchmark compared to v4.2. Apart from bug fixes, these are the major enhancements: + + The query language Postquel has been replaced with SQL (implemented in the server). We do not yet support subqueries (which can be imitated with user defined SQL functions). Aggregates have been re-implemented. We also added support for ``GROUP BY''. The libpq interface is still available for C programs. + + In addition to the monitor program, we provide a new program (psql) which supports GNU readline. + + We added a new front-end library, libpgtcl, that supports Tcl-based clients. A sample shell, pgtclsh, provides new Tcl commands to interface tcl programs with the Postgres95 backend. + + The large object interface has been overhauled. We kept Inversion large objects as the only mechanism for storing large objects. (This is not to be confused with the Inversion file system which has been removed.) + + The instance-level rule system has been removed. Rules are still available as rewrite rules. + + A short tutorial introducing regular SQL features as well as those of ours is distributed with the source code. + + GNU make (instead of BSD make) is used for the build. Also, Postgres95 can be compiled with an unpatched gcc (data alignment of doubles has been fixed). + + + " {} \ + "PostgreSQL\n" {bold} \ + "By 1996, it became clear that the name \"Postgres95\" would not stand the test of time. A new name, PostgreSQL, was chosen to reflect the relationship between original Postgres and the more recent versions with SQL capability. At the same time, the version numbering was reset to start at 6.0, putting the numbers back into the sequence originally begun by the Postgres Project. + + The emphasis on development for the v1.0.x releases of Postgres95 was on stabilizing the backend code. With the v6.x series of PostgreSQL, the emphasis has shifted from identifying and understanding existing problems in the backend to augmenting features and capabilities, although work continues in all areas. + + Major enhancements include: + + - Important backend features, including subselects, defaults, constraints, and triggers, have been implemented. + - Additional SQL92-compliant language features have been added, including primary keys, quoted identifiers, literal string type coersion, type casting, and binary and hexadecimal integer input. + - Built-in types have been improved, including new wide-range date/time types and additional geometric type support. + - Overall backend code speed has been increased by approximately 20-40%, and backend startup time has decreased 80% since v6.0 was released." + diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/index.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/index.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/index.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/index.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,19 ---- + .pgaw:Help.f.t insert end \ + "PgAccess help index" {title} \ + " + + Topics available: + " {} \ + " Tables\n" {link tables} \ + " Queries\n" {link queries} \ + " Views\n" {link views} \ + " Sequences\n" {link sequences} \ + " Functions\n" {link functions} \ + " Reports\n" {link reports} \ + " Forms\n" {link forms} \ + " Scripts\n" {link scripts} \ + " Users\n" {link users} \ + " Schema\n\n" {link schema} \ + " PostgreSQL\n" {link postgresql} \ + " The author of PgAccess\n" {link author} + diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/inheritance.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/inheritance.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/inheritance.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/inheritance.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,49 ---- + .pgaw:Help.f.t insert end \ + "Inheritance" {title} " + + Let's create two classes. The capitals class contains state capitals which are also cities. Naturally, the capitals class should inherit from cities. + + " {} "CREATE TABLE cities ( + name text, + population float, + altitude int -- (in ft) + ); + + CREATE TABLE capitals ( + state char2 + ) INHERITS (cities); + " {code} " + In this case, an instance of capitals inherits all attributes (name, population, and altitude) from its parent, cities. The type of the attribute name is text, a native Postgres type for variable length ASCII strings. The type of the attribute population is float, a native Postgres type for double precision floating point numbers. State capitals have an extra attribute, state, that shows their state. In Postgres, a class can inherit from zero or more other classes, and a query can reference either all instances of a class or all instances of a class plus all of its descendants. + + " {} "Note" {italic} ": The inheritance hierarchy is a actually a directed acyclic graph. + + For example, the following query finds all the cities that are situated at an attitude of 500ft or higher: + + " {} "SELECT name, altitude FROM cities WHERE altitude > 500; + + +----------+----------+ + |name | altitude | + +----------+----------+ + |Las Vegas | 2174 | + +----------+----------+ + |Mariposa | 1953 | + +----------+----------+ + " {code} " + On the other hand, to find the names of all cities, including state capitals, that are located at an altitude over 500ft, the query is: + + " {} "SELECT c.name, c.altitude FROM cities* c WHERE c.altitude > 500; + + " {code} "which returns:" {} " + + +----------+----------+ + |name | altitude | + +----------+----------+ + |Las Vegas | 2174 | + +----------+----------+ + |Mariposa | 1953 | + +----------+----------+ + |Madison | 845 | + +----------+----------+ + " {code} " + Here the \"*\" after cities indicates that the query should be run over cities and all classes below cities in the inheritance hierarchy. Many of the commands that we have already discussed -- select, update and delete -- support this \"*\" notation, as do others, like alter. + " {} diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/insert.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/insert.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/insert.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/insert.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,54 ---- + .pgaw:Help.f.t insert end "INSERT" {bold} " allows one to insert new rows into a table. One can insert a single row at time or several rows as a result of a query. The columns in the target list may be listed in any order. In every \ + column not present in the target list will be inserted the default value, if column has not a declared default value it will be assumed as NULL. If the expression for each column is not of the \ + correct data type, automatic type coercion will be attempted. + + " {} "Synopsis" {bold} " + " {} " + INSERT INTO table \[ ( column \[, ...\] ) \] + \{ VALUES ( expression \[, ...\] ) | SELECT query \} + + " {code} "Usage" {bold} " + " {} " + --Insert a single row into table films; + --(in the second example the column date_prod is omitted + --therefore will be stored in it a default value of NULL): + -- + INSERT INTO films VALUES + ('UA502','Bananas',105,'1971-07-13','Comedy',INTERVAL '82 minute'); + + INSERT INTO films (code, title, did, date_prod, kind) + VALUES ('T_601', 'Yojimbo', 106, DATE '1961-06-16', 'Drama'); + + + --Insert a single row into table distributors, note that + --only column \"name\" is specified, to the non specified + --column \"did\" will be assigned its default value: + -- + INSERT INTO distributors (name) VALUES ('British Lion'); + + + --Insert several rows into table films from table tmp: + -- + INSERT INTO films + SELECT * FROM tmp; + + + --Insert into arrays: + --Create an empty 3x3 gameboard for noughts-and-crosses + --(all of these queries create the same board attribute) + --(Refer to the PostgreSQL User's Guide for further + --information about arrays). + + INSERT INTO tictactoe (game, board\[1:3\]\[1:3\]) + VALUES (1,'\{\{\"\",\"\",\"\"\},\{\},\{\"\",\"\"\}\}'); + INSERT INTO tictactoe (game, board\[3\]\[3\]) + VALUES (2,'\{\}'); + INSERT INTO tictactoe (game, board) + VALUES (3,'\{\{,,\},\{,,\},\{,,\}\}'); + + " {code} "Compatibility" {bold} " + + SQL92 + + The INSERT statement is fully compatible with SQL92. Possible limitations in features of the query clause are documented for the SELECT statement. + " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/ipv4func.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/ipv4func.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/ipv4func.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/ipv4func.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,28 ---- + .pgaw:Help.f.t insert end \ + "IP V4 functions\n\n" {title} \ + "broadcast(cidr)" {bold} " + Returns: text + construct broadcast address as text + + " {} "broadcast(inet) " {bold} " + Returns: text + construct broadcast address as text + + " {} "host(inet) " {bold} " + Returns: text + extract host address as text + + " {} "masklen(cidr) " {bold} " + Returns: int4 + calculate netmask length + + " {} "masklen(inet) " {bold} " + Returns: int4 + calculate netmask length + + " {} "netmask(inet) " {bold} " + Returns: text + construct netmask as text + + " {} \ + "PostgreSQL functions\n" {link pgfunctions} diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/isolation.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/isolation.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/isolation.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/isolation.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,24 ---- + .pgaw:Help.f.t insert end \ + "Isolation levels" {title} " + + " {} "Read Committed Isolation Level" {bold} " + + Read Committed is the default isolation level in Postgres. When a transaction runs on this isolation level, a query sees only data committed before the query began and never sees either dirty data or concurrent transaction changes committed during query execution. + + If a row returned by a query while executing an UPDATE statement (or DELETE or SELECT FOR UPDATE) is being updated by a concurrent uncommitted transaction then the second transaction that tries to update this row will wait for the other transaction to commit or rollback. In the case of rollback, the waiting transaction can proceed to change the row. In the case of commit (and if the row still exists; i.e. was not deleted by the other transaction), the query will be re-executed for this row to check that new row version satisfies query search condition. If the new row version satisfies the query search condition then row will be updated (or deleted or marked for update). + + Note that the results of execution of SELECT or INSERT (with a query) statements will not be affected by concurrent transactions. + + + " {} "Serializable Isolation Level" {bold} " + + Serializable provides the highest transaction isolation. When a transaction is on the serializable level, a query sees only data committed before the transaction began and never see either dirty data or concurrent transaction changes committed during transaction execution. So, this level emulates serial transaction execution, as if transactions would be executed one after another, serially, rather than concurrently. + + If a row returned by query while executing a UPDATE (or DELETE or SELECT FOR UPDATE) statement is being updated by a concurrent uncommitted transaction then the second transaction that tries to update this row will wait for the other transaction to commit or rollback. In the case of rollback, the waiting transaction can proceed to change the row. In the case of a concurrent transaction commit, a serializable transaction will be rolled back with the message + + " {} "ERROR: Can't serialize access due to concurrent update" {code} " + + because a serializable transaction cannot modify rows changed by other transactions after the serializable transaction began. + + " {} "Note" {italic} ": Note that results of execution of SELECT or INSERT (with a query) will not be affected by concurrent transactions. + " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/keywords.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/keywords.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/keywords.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/keywords.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,85 ---- + .pgaw:Help.f.t insert end \ + "PostgreSQL reserved key words\n\n" {title} \ + "The following are Postgres reserved words which are also SQL92 or SQL3 reserved words: " {} \ + " + ADD ALL ALTER AND ANY AS ASC + BEGIN BETWEEN BOTH BY + CASCADE CAST CHAR CHARACTER CHECK CLOSE + COLLATE COLUMN COMMIT CONSTRAINT + CREATE CURRENT_DATE CURRENT_TIME + CURRENT_TIMESTAMP CURRENT_USER CURSOR + DECIMAL DECLARE DEFAULT DELETE DESC DISTINCT DROP + EXECUTE EXISTS EXTRACT + FETCH FLOAT FOR FROM FULL + GRANT + HAVING + IN INNER INSERT INTERVAL INTO IS + JOIN + LEADING LEFT LIKE LOCAL + NAMES NATIONAL NATURAL NCHAR NO NOT NULL NUMERIC + ON OR OUTER + PARTIAL PRIMARY PRIVILEGES PROCEDURE PUBLIC + REFERENCES REVOKE RIGHT ROLLBACK + SELECT SET SUBSTRING + TO TRAILING TRIM + UNION UNIQUE UPDATE USER USING + VALUES VARCHAR VARYING VIEW + WHERE WITH WORK + + " {code} \ + "The following are Postgres reserved words which are neither SQL92 nor SQL3 reserved words. These are allowed to be present as column labels, but not as identifiers: " {} \ + " + ABORT ANALYZE + BINARY + CLUSTER CONSTRAINT COPY + DO + EXPLAIN EXTEND + LISTEN LOAD LOCK + MOVE + NEW NONE NOTIFY + RESET + SETOF SHOW + UNLISTEN UNTIL + VACUUM VERBOSE + + " {code} \ + "The following are Postgres reserved words which are also SQL92 or SQL3 reserved words, and which are allowed to be present as column labels, but not as identifiers: " {} \ + " + CASE COALESCE CROSS CURRENT + ELSE END + FALSE FOREIGN + GLOBAL GROUP + LOCAL + NULLIF + ORDER + POSITION PRECISION + TABLE THEN TRANSACTION TRUE + WHEN + + " {code} \ + "The following are either SQL92 or SQL3 reserved key words which are not key words in Postgres. These have no proscribed usage in Postgres at the time of writing (v6.5) but may become reserved key words in the future: " {} \ + " + + Note: Some of these key words represent functions in SQL92. These functions are defined in Postgres, but the parser does not consider the names to be key words and they are allowed in other contexts. + + ALLOCATE ARE ASSERTION AT AUTHORIZATION AVG + BIT BIT_LENGTH + CASCADED CATALOG COLLATION CONNECT CONNECTION + CONSTRAINTS CONTINUE CONVERT CORRESPONDING COUNT + DATE DEALLOCATE DEC DESCRIBE DESCRIPTOR DIAGNOSTICS DISCONNECT DOMAIN + END-EXEC ESCAPE EXCEPT EXCEPTION EXEC EXTERNAL + FIRST FOUND + GET GO GOTO + IDENTITY IMMEDIATE INDICATOR INITIALLY INPUT INTERSECT ISOLATION + LAST LEVEL LOWER + MAX MIN MODULE + OCTET_LENGTH OPEN OUTPUT OVERLAPS + PREPARE PRESERVE + RESTRICT ROWS + SCHEMA SECTION SESSION SESSION_USER SIZE SOME + SQL SQLCODE SQLERROR SQLSTATE SUM SYSTEM_USER + TEMPORARY TRANSLATE TRANSLATION + UNKNOWN UPPER USAGE + VALUE + WHENEVER WRITE + " {code} diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/listen.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/listen.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/listen.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/listen.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,34 ---- + .pgaw:Help.f.t insert end "LISTEN" {bold} " registers the current Postgres backend as a listener on the notify condition notifyname. \ + + Whenever the command NOTIFY notifyname is invoked, either by this backend or another one connected to the same database, all the backends currently listening on that notify condition are \ + notified, and each will in turn notify its connected frontend application. See the discussion of NOTIFY for more information. \ + + A backend can be deregistered for a given notify condition with the UNLISTEN command. Also, a backend's listen registrations are automatically cleared when the backend process exits. \ + + The method a frontend application must use to detect notify events depends on which Postgres application programming interface it uses. With the basic libpq library, the application issues \ + LISTEN as an ordinary SQL command, and then must periodically call the routine PQnotifies to find out whether any notify events have been received. Other interfaces such as libpgtcl provide \ + higher-level methods for handling notify events; indeed, with libpgtcl the application programmer should not even issue LISTEN or UNLISTEN directly. See the documentation for the library \ + you are using for more details. + + The reference page for NOTIFY contains a more extensive discussion of the use of LISTEN and NOTIFY. + + " {} "Synopsis" {bold} " + + LISTEN notifyname + + " {} "Usage" {bold} " + " {} " + -- Configure and execute a listen/notify sequence from psql + postgres=> listen virtual; + LISTEN + postgres=> notify virtual; + NOTIFY + ASYNC NOTIFY of 'virtual' from backend pid '11239' received + + " {code} "Notes" {bold} " + + notifyname can be any string valid as a name; it need not correspond to the name of any actual table. If notifyname is enclosed in double-quotes, it need not even be a syntactically valid name, \ + but can be any string up to 31 characters long. + + In some previous releases of Postgres, notifyname had to be enclosed in double-quotes when it did not correspond to any existing table name, even if syntactically valid as a name. That is no \ + longer required. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/load.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/load.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/load.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/load.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,27 ---- + .pgaw:Help.f.t insert end "LOAD" {bold} " Loads an object (or \".o\") file into the Postgres backend address space. Once a file is loaded, all functions in that file can be accessed. This function is used in support of user-defined types and \ + functions. + + If a file is not loaded using LOAD, the file will be loaded automatically the first time the function is called by Postgres. LOAD can also be used to reload an object file if it has been edited and \ + recompiled. Only objects created from C language files are supported at this time. + + + " {} "Synopsis" {bold} " + + LOAD 'filename' + + " {} "Usage" {bold} " + + --Load the file /usr/postgres/demo/circle.o + -- + LOAD '/usr/postgres/demo/circle.o' + + " {} "Notes" {bold} " + + Functions in loaded object files should not call functions in other object files loaded through the LOAD command. For example, all functions in file A should call each other, functions in the \ + standard or math libraries, or in Postgres itself. They should not call functions defined in a different loaded file B. This is because if B is reloaded, the Postgres loader is not able to relocate the \ + calls from the functions in A into the new address space of B. If B is not reloaded, however, there will not be a problem. + + Object files must be compiled to contain position independent code. For example, on DECstations you must use /bin/cc with the -G 0 option when compiling object files to be loaded. \ + + Note that if you are porting Postgres to a new platform, LOAD will have to work in order to support ADTs. + " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/lock.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/lock.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/lock.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/lock.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,49 ---- + .pgaw:Help.f.t insert end "LOCK" {bold} " Postgres always uses the least restrictive lock mode whenever possible. LOCK TABLE provided for cases when you might need more restrictive locking. + + For example, an application runs a transaction at READ COMMITTED isolation level and needs to ensure the existance of data in a table for the duration of the transaction. To achieve this you \ + could use SHARE lock mode over the table before querying. This will protect data from concurrent changes and provide any further read operations over the table with data in their actual current \ + state, because SHARE lock mode conflicts with any ROW EXCLUSIVE one acquired by writers, and your LOCK TABLE table IN SHARE MODE statement will wait until any concurrent \ + write operations commit or rollback. + + " {} "Synopsis" {bold} " + " {} " + LOCK \[ TABLE \] table + LOCK \[ TABLE \] table IN \[ ROW | ACCESS \] \{ SHARE | EXCLUSIVE \} MODE + LOCK \[ TABLE \] table IN SHARE ROW EXCLUSIVE MODE + + " {code} "Usage" {bold} " + + -- + -- SHARE lock primary key table when going to perform + -- insert into foreign key table. + -- + " {} " BEGIN WORK; + LOCK TABLE films IN SHARE MODE; + SELECT id FROM films + WHERE name = 'Star Wars: Episode I - The Phantom Menace'; + -- + -- Do ROLLBACK if record was not returned + -- + INSERT INTO films_user_comments VALUES + (_id_, 'GREAT! I was waiting for it for so long!'); + COMMIT WORK; + + + -- + -- SHARE ROW EXCLUSIVE lock primary key table when going to perform + -- delete operation. + -- + BEGIN WORK; + LOCK TABLE films IN SHARE ROW EXCLUSIVE MODE; + DELETE FROM films_user_comments WHERE id IN + (SELECT id FROM films WHERE rating < 5); + DELETE FROM films WHERE rating < 5; + COMMIT WORK; + + " {code} "Notes" {bold} " + + LOCK is a Postgres language extension. + + Except for ACCESS SHARE/EXCLUSIVE lock modes, all other Postgres lock modes and the LOCK TABLE syntax are compatible with those present in Oracle. + + LOCK works only inside transactions. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/mathfunc.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/mathfunc.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/mathfunc.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/mathfunc.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,34 ---- + .pgaw:Help.f.t insert end \ + "Mathematical functions\n\n" {title} \ + "dexp(float8)" {bold} \ + " + Returns: float8 + raise e to the specified exponent + + " {} \ + "dpow(float8,float8)" {bold} \ + " + Returns: float8 + raise a number to the specified exponent + + " {} \ + "float(int)" {bold} \ + " + Returns: float8 + convert integer to floating point + + " {} \ + "float4(int)" {bold} \ + " + Returns: float4 + convert integer to floating point + + " {} \ + "integer(float)" {bold} \ + " + Returns: int + convert floating point to integer + + " {} \ + "PostgreSQL functions\n" {link pgfunctions} \ + "Next - string functions" {link stringfunc} diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/move.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/move.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/move.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/move.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,43 ---- + .pgaw:Help.f.t insert end "MOVE" {bold} "allows a user to move cursor position a specified number of rows. MOVE works like the FETCH command, but only positions the cursor and does not return rows. + + Refer to the FETCH command for details on syntax and usage. + + " {} "Synopsis" {bold} " + " {} " + MOVE \[ selector \] \[ count \] + \{ IN | FROM \} cursor + FETCH \[ RELATIVE \] \[ \{ \[ # | ALL | NEXT | PRIOR \] \} \] FROM \] cursor + + + " {code} "Usage" {bold} " + + --set up and use a cursor: + -- + " {} " BEGIN WORK; + DECLARE liahona CURSOR FOR SELECT * FROM films; + + --Skip first 5 rows: + -- + MOVE FORWARD 5 IN liahona; + MOVE + + --Fetch 6th row in the cursor liahona: + -- + FETCH 1 IN liahona; + FETCH + code |title |did| date_prod|kind |len + -----+------+---+----------+----------+------ + P_303|48 Hrs|103|1982-10-22|Action | 01:37 + (1 row) + + -- close the cursor liahona and commit work: + -- + CLOSE liahona; + COMMIT WORK; + + " {code} "Notes" {bold} " + + MOVE is a Postgres language extension. + + Refer to FETCH for a description of valid arguments. Refer to DECLARE to declare a cursor. Refer to BEGIN WORK, COMMIT WORK, ROLLBACK WORK statements for further \ + information about transactions. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/mvcc.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/mvcc.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/mvcc.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/mvcc.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,13 ---- + .pgaw:Help.f.t insert end \ + "Multi-Version Concurrency Control" {title} " + + Multi-Version Concurrency Control (MVCC) is an advanced technique for\ + improving database performance in a multi-user environment. " {} "Vadim Mikheev" {bold} " provided the implementation for Postgres. + + " {} "Introduction" {bold} " + + Unlike most other database systems which use locks for concurrency control, Postgres maintains data consistency by using a multiversion model. This means that while querying a database each transaction sees a snapshot of data (a database version) as it was some time ago, regardless of the current state of the underlying data. This protects the transaction from viewing inconsistent data that could be caused by (other) concurrent transaction updates on the same data rows, providing transaction isolation for each database session. + + The main difference between multiversion and lock models is that in MVCC locks acquired for querying (reading) data don't conflict with locks acquired for writing data and so reading never blocks writing and writing never blocks reading. + + " {} "Isolation levels" {link isolation} diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/new_query.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/new_query.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/new_query.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/new_query.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,22 ---- + .pgaw:Help.f.t insert end \ + "Creating a new query" {bold} " + + Select the \"Queries\" tab from the main window and press\ + the \"New\" button. + + You will need to enter the query name and the SQL command for the query. If\ + you desire, you could use the " {} "visual query designer" {link visual_designer} " + + You can design dynamic queries that can include a parameter that will be\ + provided later at query execution time by using the \[parameter \"message\"\] function\ + as in the following examples :" {} " + + select * from people where age <= \[parameter \"Maximum age?\"\] + select * from invoices where received_date = '\[parameter \"Invoice date?\"\]' " {code} " + + Before query execution a popup dialog will be displayed in order to get that\ + parameter and to substitute it in the query command. + + Checking the \"save this query as a view\" checkbox will create a new view from\ + the current query. + " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/new_table.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/new_table.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/new_table.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/new_table.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,31 ---- + .pgaw:Help.f.t insert end \ + "Creating a new table" {bold} " + + Select the \"Tables\" tab from the main window and then press then \"New\" button.\ + A form will be displayed allowing you to define a new table. + + You should enter the table name and then to define the fields.\ + At this point you can define also a primary key for that table by checking the \"primary key\" checkbox for the fields that will be included in the primary key. Fields selected for the primary key will be displayed with a * in the K column.\ + The \"size\" entry is used in order to specify the dimension for those field types\ + that have variable dimensions (varchar, char). Otherwise, it will be disabled.\ + The \"default value\" entry can be used in order to specify the field's default\ + value that will be assigned if a value is not specified in the insert command. + + The \"check\" entry can be used in order to specify a boolean expression using\ + tables fields or defined functions that will\ + be checked on every insert or update command. The \"constraint\" entry is optional\ + and it's just for naming purposes. + " {} "Example:" {italic} " + (price > 0) and (quantity > 0) and valid_product(product_id) + " {code} " + In the above example, price and quantity are fields from the new table and\ + valid_product(product_id) is a SQL function that will return the boolean value true\ + if the product_id was found in another table \"products\". + + In the \"Inherits\" field you can select one or more tables. They will be separated\ + with commas. The new table will inherit all the fields from the parent tables.\ + Read more " {} "about inheritance here." {link inheritance} " + + Select a field from the listbox and use the \"Move up\" and \"Move down\" buttons in order to rearrange the field order. At the end, press the \"Create\" button to define the table. + + Read also about " {} "CREATE TABLE" {link create_table} " SQL command." diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/notify.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/notify.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/notify.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/notify.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,57 ---- + .pgaw:Help.f.t insert end "NOTIFY" {bold} " The NOTIFY command sends a notify event to each frontend application that has previously executed LISTEN notifyname for the specified notify condition in the current database. + + The information passed to the frontend for a notify event includes the notify condition name and the notifying backend process's PID. It is up to the database designer to define the condition \ + names that will be used in a given database and what each one means. + + Commonly, the notify condition name is the same as the name of some table in the database, and the notify event essentially means + \"I changed this table, take a look at it to see what's new\". \ + But no such association is enforced by the NOTIFY and LISTEN commands. For example, a database designer could use several different condition names to signal different sorts of changes \ + to a single table. + + NOTIFY provides a simple form of signal or IPC (interprocess communication) mechanism for a collection of processes accessing the same Postgres database. Higher-level mechanisms can \ + be built by using tables in the database to pass additional data (beyond a mere condition name) from notifier to listener(s). + + When NOTIFY is used to signal the occurrence of changes to a particular table, a useful programming technique is to put the NOTIFY in a rule that is triggered by table updates. In this way, \ + notification happens automatically when the table is changed, and the application programmer can't accidentally forget to do it. + + NOTIFY interacts with SQL transactions in some important ways. Firstly, if a NOTIFY is executed inside a transaction, the notify events are not delivered until and unless the transaction is \ + committed. This is appropriate, since if the transaction is aborted we would like all the commands within it to have had no effect --- including NOTIFY. But it can be disconcerting if one is \ + expecting the notify events to be delivered immediately. Secondly, if a listening backend receives a notify signal while it is within a transaction, the notify event will not be delivered to its \ + connected frontend until just after the transaction is completed (either committed or aborted). Again, the reasoning is that if a notify were delivered within a transaction that was later aborted, \ + one would want the notification to be undone somehow --- but the backend cannot \"take \ + back\" a notify once it has sent it to the frontend. So notify events are only delivered between \ + transactions. The upshot of this is that applications using NOTIFY for real-time signaling should try to keep their transactions short. + + NOTIFY behaves like Unix signals in one important respect: if the same condition name is signaled multiple times in quick succession, recipients may get only one notify event for several \ + executions of NOTIFY. So it is a bad idea to depend on the number of notifies received. Instead, use NOTIFY to wake up applications that need to pay attention to something, and use a \ + database object (such as a sequence) to keep track of what happened or how many times it happened. + + It is common for a frontend that sends NOTIFY to be listening on the same notify name itself. In that case it will get back a notify event, just like all the other listening frontends. Depending on \ + the application logic, this could result in useless work --- for example, re-reading a database table to find the same updates that that frontend just wrote out. In Postgres 6.4 and later, it is \ + possible to avoid such extra work by noticing whether the notifying backend process's PID (supplied in the notify event message) is the same as one's own backend's PID (available from \ + libpq). When they are the same, the notify event is one's own work bouncing back, and can be ignored. (Despite what was said in the preceding paragraph, this is a safe technique. Postgres \ + keeps self-notifies separate from notifies arriving from other backends, so you cannot miss an outside notify by ignoring your own notifies.) + + " {} "Synopsis" {bold} " + + NOTIFY notifyname + + " {} "Usage" {bold} " + + -- Configure and execute a listen/notify sequence from psql + " {} " postgres=> listen virtual; + LISTEN + postgres=> notify virtual; + NOTIFY + ASYNC NOTIFY of 'virtual' from backend pid '11239' received + + " {code} "Notes" {bold} " + + notifyname can be any string valid as a name; it need not correspond to the name of any actual table. If notifyname is enclosed in double-quotes, it need not even be a syntactically valid name, \ + but can be any string up to 31 characters long. + + In some previous releases of Postgres, notifyname had to be enclosed in double-quotes when it did not correspond to any existing table name, even if syntactically valid as a name. That is no \ + longer required. + + In Postgres releases prior to 6.4, the backend PID delivered in a notify message was always the PID of the frontend's own backend. So it was not possible to distinguish one's own notifies from \ + other clients' notifies in those earlier releases. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/open_query.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/open_query.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/open_query.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/open_query.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,17 ---- + .pgaw:Help.f.t insert end \ + "Open a query for vieweing" {bold} " + + Select the \"Queries\" tab from the main window and select a query from the list. Press on \ + the \"Open\" button. + + If the query will return some records (i.e. is not an action query) a query \ + viewer will be displayed and the selected rows from the result will be displayed. + + You will not be able to specify a sort field or a filter as you can do it in \ + table viewer. If you want to specify sort fields, go and edit the query command \ + and add there the desired sort order or filter conditions. + Also, you will not be able to change or to add new records. + + If the selected query is an \"action query\" (INSERT INTO, DELETE FROM, UPDATE) \ + a confirmation for the query execution will be requested. + " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/open_table.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/open_table.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/open_table.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/open_table.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,19 ---- + .pgaw:Help.f.t insert end \ + "Opening tables for viewing and editing" {bold} " + + Select the \"Tables\" tab from the main window ,select a table from the listbox and click with the mouse on the \"Open\" button. A new table viewer window will be opened showing you the records from that table + + " {} "Note:" {italic} " Due to the fact that the records being displayed are kept in memory, only the first 200 records from that table will be displayed. The maximum number of records being displayed can be changed in the Database/Preference dialog. + + You can sort and filter the records being displayed. Go to the \"Sort field\" entry and type the name of the field. Add the desc (descending) keyword if you want records to be sorted in reverse order. If you want to sort the records based on multiple fields just separate them with commas + + " {} "Example:" {italic} " + Sort field: price + Sort field: price desc, customer asc + " {code} " + If you want to select for display just some records frm that table go to the \"Filter conditions\" entry and specify a filter criteria. + + " {} "Example:" {italic} " + Filter conditions: (price > 150) and (not sold) + " {code} " + After specifying a sort field or a filter conditions, pres Enter or the \"Reload\" button." diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/pgfunctions.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/pgfunctions.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/pgfunctions.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/pgfunctions.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,13 ---- + .pgaw:Help.f.t insert end \ + "PostgreSQL functions" {title} \ + " + + Many data types have functions available for conversion to other related types. In addition, there are some type-specific functions. Some functions are also available through operators and may be documented as operators only. + + " {} \ + "\tSQL functions\n" {link sqlfunc} \ + "\tMathematical functions\n" {link mathfunc} \ + "\tString functions\n" {link stringfunc} \ + "\tDate/Time functions\n" {link datefunc} \ + "\tGeometric functions\n" {link geomfunc} \ + "\tIP V4 functions" {link ipv4func} diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/postgresql.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/postgresql.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/postgresql.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/postgresql.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,13 ---- + .pgaw:Help.f.t insert end \ + "PostgreSQL" {title} \ + "\n\n" {} \ + "What is PostgreSQL?\n" {bold} \ + " PostgreSQL is a object-relational database management system, originally developed at the University of California at Berkeley. PostgreSQL is based on Postgres release 4.2. The Postgres project, led by Professor Michael Stonebraker, was sponsored by the Defense Advanced Research Projects Agency (DARPA), the Army Research Office (ARO), the National Science Foundation (NSF), and ESL, Inc.\n\n" {} \ + " History of PostgreSQL\n" {link history} \ + " Copyrights\n" {link copyrights} \ + " Y2K statement\n" {link y2k} \ + " PostgreSQL reserved key words\n" {link keywords} \ + " Data types" {link data_types} " , " {} "Functions\n" {link pgfunctions} \ + " Quick guide of PostgreSQL commands\n" {link sql_guide} \ + " Inheritance\n" {link inheritance} \ + " Multi-Version Concurency Control\n" {link mvcc} diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/queries.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/queries.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/queries.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/queries.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,8 ---- + .pgaw:Help.f.t insert end \ + "Queries" {title} \ + "\n\n" {} \ + " The following topics are available:\n" {} \ + " creating a new query\n" {link new_query} \ + " opening a query for viewing\n" {link open_query} \ + " visual query designer\n" {link visual_designer} + diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/reports.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/reports.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/reports.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/reports.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,10 ---- + .pgaw:Help.f.t insert end "The Reports module is still in alpha stage. + + The module should be able to design and execute a report based on a table\ + or from an existing query. + + Grouping, sorting, subtotals, expressions should be implemented. + Report output can be printed as a Postscript file. + + For the moment I have no time to do that so volunteers are welcome. + " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/reset.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/reset.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/reset.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/reset.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,21 ---- + .pgaw:Help.f.t insert end "RESET" {bold} " restores variables to the default values. Refer to the SET command for details on allowed values and defaults. RESET is an alternate form for SET variable = DEFAULT + + " {} "Synopsis" {bold} " + + RESET variable + + " {} "Usage" {bold} " + + -- reset DateStyle to its default; + " {} " + RESET DateStyle; + + " {code} " + -- reset Geqo to its default; + " {} "RESET GEQO; + + " {code} "Notes" {bold} " + + The RESET statement is a Postgres language extension. + + Refer to SET/SHOW statements to set/show variable values. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/revoke.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/revoke.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/revoke.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/revoke.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,49 ---- + .pgaw:Help.f.t insert end "REVOKE" {bold} " allows creator of an object to revoke permissions granted before, from all users (via PUBLIC) or a certain user or group. + + " {} "Synopsis" {bold} " + " {} " + REVOKE privilege \[, ...\] + ON object \[, ...\] + FROM \{ PUBLIC | GROUP ER\">gBLE> | username \} + + " {code} "Usage" {bold} " + + -- revoke insert privilege from all users on table films: + -- + " {} "REVOKE INSERT ON films FROM PUBLIC; + + + " {code} " + -- revoke all privileges from user manuel on view kinds: + -- + " {} "REVOKE ALL ON kinds FROM manuel; + + " {code} "Notes" {bold} " + + Refer to psql \\z command for further information about permissions on existing objects: + " {} " + Database = lusitania + +------------------+-------------------------------------------------+ + | Relation | Grant/Revoke Permissions | + +------------------+-------------------------------------------------+ + | mytable | \{\"=rw\",\"miriam=arwR\",\"group todos=rw\"\} | + +------------------+-------------------------------------------------+ + Legend: + uname=arwR -- privileges granted to a user + group gname=arwR -- privileges granted to a GROUP + =arwR -- privileges granted to PUBLIC + + r -- SELECT + w -- UPDATE/DELETE + a -- INSERT + R -- RULE + arwR -- ALL + + + Tip: Currently, to create a GROUP you have to insert data manually into table pg_group as: + + + INSERT INTO pg_group VALUES ('todos'); + CREATE USER miriam IN GROUP todos; + + " {code} diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/rollback.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/rollback.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/rollback.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/rollback.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,17 ---- + .pgaw:Help.f.t insert end "ROLLBACK" {bold} " rolls back the current transaction and causes all the updates made by the transaction to be discarded. + + " {} "Synopsis" {bold} " + " {} " + ROLLBACK \[ WORK | TRANSACTION \] + + " {code} "Usage" {bold} " + " {} " + --To abort all changes: + -- + ROLLBACK WORK; + + " {code} "Notes" {bold} " + + The keywords WORK and TRANSACTION are noise and can be omitted. + + Use " {} "COMMIT" {link commit} " to successfully terminate a transaction. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/schema.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/schema.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/schema.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/schema.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,2 ---- + .pgaw:Help.f.t insert end " + To be written" diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/scripts.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/scripts.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/scripts.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/scripts.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,2 ---- + .pgaw:Help.f.t insert end " + To be written" diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/select.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/select.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/select.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/select.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,136 ---- + .pgaw:Help.f.t insert end "SELECT" {bold} " will return rows from one or more tables. Candidates for selection are rows which satisfy the WHERE condition; if WHERE is omitted, all rows are candidates. + + " {} "Synopsis" {bold} " + " {} " + SELECT \[ALL|DISTINCT \[ON column\] \] + expression \[ AS + name \] \[, ...\] + \[ INTO \[TEMP\] \[TABLE\] new_table \] + \[ FROM table + \[alias \] \[, ...\] \] + \[ WHERE condition \] + \[ GROUP BY column \[, ...\] \] + \[ HAVING condition \[, ...\] \] + \[ { UNION \[ALL\] | INTERSECT | EXCEPT } select \] + \[ ORDER BY column \[ ASC | DESC \] \[, ...\] \] + \[ FOR UPDATE \[OF class_name...\]\] + \[ LIMIT count \[OFFSET|, count\]\] + + " {code} "Usage" {bold} " + + To join the table films with the table distributors: + " {} " + SELECT f.title, f.did, d.name, f.date_prod, f.kind + FROM distributors d, films f + WHERE f.did = d.did + + title |did|name | date_prod|kind + -------------------------+---+----------------+----------+---------- + The Third Man |101|British Lion |1949-12-23|Drama + The African Queen |101|British Lion |1951-08-11|Romantic + Une Femme est une Femme |102|Jean Luc Godard |1961-03-12|Romantic + Vertigo |103|Paramount |1958-11-14|Action + Becket |103|Paramount |1964-02-03|Drama + 48 Hrs |103|Paramount |1982-10-22|Action + War and Peace |104|Mosfilm |1967-02-12|Drama + West Side Story |105|United Artists |1961-01-03|Musical + Bananas |105|United Artists |1971-07-13|Comedy + Yojimbo |106|Toho |1961-06-16|Drama + There's a Girl in my Soup|107|Columbia |1970-06-11|Comedy + Taxi Driver |107|Columbia |1975-05-15|Action + Absence of Malice |107|Columbia |1981-11-15|Action + Storia di una donna |108|Westward |1970-08-15|Romantic + The King and I |109|20th Century Fox|1956-08-11|Musical + Das Boot |110|Bavaria Atelier |1981-11-11|Drama + Bed Knobs and Broomsticks|111|Walt Disney | |Musical + + + To sum the column len of all films and group the results by kind: + + SELECT kind, SUM(len) AS total FROM films GROUP BY kind; + + kind |total + ----------+------ + Action | 07:34 + Comedy | 02:58 + Drama | 14:28 + Musical | 06:42 + Romantic | 04:38 + + + To sum the column len of all films, group the results by kind and show those group totals that are less than 5 hours: + + SELECT kind, SUM(len) AS total + FROM films + GROUP BY kind + HAVING SUM(len) < INTERVAL '5 hour'; + + kind |total + ----------+------ + Comedy | 02:58 + Romantic | 04:38 + + + The following two examples are identical ways of sorting the individual results according to the contents of the second column (name): + + SELECT * FROM distributors ORDER BY name; + SELECT * FROM distributors ORDER BY 2; + + did|name + ---+---------------- + 109|20th Century Fox + 110|Bavaria Atelier + 101|British Lion + 107|Columbia + 102|Jean Luc Godard + 113|Luso films + 104|Mosfilm + 103|Paramount + 106|Toho + 105|United Artists + 111|Walt Disney + 112|Warner Bros. + 108|Westward + + + This example shows how to obtain the union of the tables distributors and actors, restricting the results to those that begin with letter W in each table. Only distinct rows are to be used, so + the ALL keyword is omitted: + + -- distributors: actors: + -- did|name id|name + -- ---+------------ --+-------------- + -- 108|Westward 1|Woody Allen + -- 111|Walt Disney 2|Warren Beatty + -- 112|Warner Bros. 3|Walter Matthau + -- ... ... + + SELECT distributors.name + FROM distributors + WHERE distributors.name LIKE 'W%' + UNION + SELECT actors.name + FROM actors + WHERE actors.name LIKE 'W%' + + name + -------------- + Walt Disney + Walter Matthau + Warner Bros. + Warren Beatty + Westward + Woody Allen + + " {code} "Compatibility" {bold} " + + Extensions + + Postgres allows one to omit the FROM clause from a query. This feature was retained from the original PostQuel query language: + " {} " + SELECT distributors.* WHERE name = 'Westwood'; + + did|name + ---+---------------- + 108|Westward + + " {code} diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/select_into.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/select_into.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/select_into.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/select_into.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,17 ---- + .pgaw:Help.f.t insert end "SELECT INTO" {bold} " creates a new table from the results of a query. Typically, this query draws data from an existing table, but any SQL query is allowed. + + " {} "Synopsis" {bold} " + " {} " + SELECT \[ ALL | DISTINCT \] expression \[ AS name \] \[, ...\] + INTO \[TEMP\] \[ TABLE \] new_table \] + \[ FROM table \[alias\] \[, ...\] \] + \[ WHERE condition \] + \[ GROUP BY column \[, ...\] \] + \[ HAVING condition \[, ...\] \] + \[ { UNION \[ALL\] | INTERSECT | EXCEPT } select\] + \[ ORDER BY column \[ ASC | DESC \] \[, ...\] \] + \[ FOR UPDATE \[OF class_name...\]\] + \[ LIMIT count \[OFFSET|, count\]\] + + " {code} "Note" {bold} " + CREATE TABLE AS is functionally equivalent to the SELECT INTO command. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/sequences.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/sequences.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/sequences.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/sequences.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,15 ---- + .pgaw:Help.f.t insert end " The " {} "Sequences" {bold} " tab is used to\ + define new sequence number generators or to inspect them. + + Sequences are used sometimes for assigning default values to some unique\ + fields in order to obtain a unique id. Sequences are returning an int4\ + value. For example, a new sequence will be automatically defined if you\ + are adding a 'serial' field type into a table. + + In order to define a new sequence you should supply at least the sequence\ + name. The default increment is 1, the default start value and minvalue is 1. + + Inspecting a sequence will show you the last number generated. + + For more information see also " {} "CREATE SEQUENCE" {link create_sequence} \ + " SQL command." {} diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/set.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/set.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/set.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/set.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,54 ---- + .pgaw:Help.f.t insert end "SET" {bold} " will modify configuration parameters for variable during a session. + + " {} "Synopsis" {bold} " + " {} " + SET variable \{ TO | = \} \{ + 'value' | DEFAULT \} + SET TIME ZONE \{ 'timezone' | LOCAL | DEFAULT \}; + SET TRANSACTION ISOLATION LEVEL \{ READ COMMITTED | SERIALIZED \} + + " {code} "Usage" {bold} " + " {} " + --Set the style of date to ISO: + -- + SET DATESTYLE TO 'ISO'; + + + + --Enable GEQO for queries with 4 or more tables + -- + SET GEQO ON=4; + + + + --Set GEQO to default: + -- + SET GEQO = DEFAULT; + + + + --set the timezone for Berkeley, California: + SET TIME ZONE 'PST8PDT'; + + SELECT CURRENT_TIMESTAMP AS today; + + today + ---------------------- + 1998-03-31 07:41:21-08 + + + + --set the timezone for Italy: + SET TIME ZONE 'Europe/Rome'; + + SELECT CURRENT_TIMESTAMP AS today; + + today + ---------------------- + 1998-03-31 17:41:31+02 + + " {code} "Notes" {bold} " + + The SET variable statement is a Postgres language extension. + + Refer to SHOW and RESET to display or reset the current values. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/show.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/show.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/show.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/show.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,23 ---- + .pgaw:Help.f.t insert end "will display the current configuration parameters for variable during a session. + + The session can be configured using SET statement, and values can be restored to the defaults using RESET statement. Parameters and values are case-insensitive. + + " {} "Synopsis" {bold} " + + SHOW variable + + " {} "Usage" {bold} " + " {} " + -- show DateStyle; + SHOW DateStyle; + NOTICE:DateStyle is Postgres with US (NonEuropean) conventions + + -- show Geqo; + SHOW GEQO; + NOTICE:GEQO is ON + + " {code} "Notes" {bold} " + + The SHOW is a Postgres language extension. + + Refer to SET/RESET to set/reset variable values. See also SET TIME ZONE. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/sql_guide.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/sql_guide.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/sql_guide.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/sql_guide.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,62 ---- + .pgaw:Help.f.t configure -tabs {170 400} + .pgaw:Help.f.t insert end \ + "SQL guide\n" {title} \ + " + " {} "ABORT" {link abort} " Aborts the current transaction + " {} "ALTER TABLE" {link alter_table} " Modifies table properties + " {} "ALTER USER" {link alter_user} " Modifies user account information + " {} "BEGIN" {link begin} " Begins a transaction in chained mode + " {} "CLOSE" {link close} " Close a cursor + " {} "CLUSTER" {link cluster} " Gives storage clustering advice to the backend + " {} "COMMIT" {link commit} " Commits the current transaction + " {} "COPY" {link copy} " Copies data between files and tables + " {} "CREATE AGGREGATE" {link create_aggregate} " Defines a new aggregate function + " {} "CREATE DATABASE" {link create_database} " Creates a new database + " {} "CREATE FUNCTION" {link create_function} " Defines a new function + " {} "CREATE INDEX" {link create_index} " Constructs a secondary index + " {} "CREATE LANGUAGE" {link create_language} " Defines a new language for functions + " {} "CREATE OPERATOR" {link create_operator} " Defines a new user operator + " {} "CREATE RULE" {link create_rule} " Defines a new rule + " {} "CREATE SEQUENCE" {link create_sequence} " Creates a new sequence number generator + " {} \ + "CREATE TABLE" {link create_table} " Creates a new table + " {} "CREATE TABLE AS" {link create_table_as} " Creates a new table + " {} "CREATE TRIGGER" {link create_trigger} " Creates a new trigger + " {} "CREATE TYPE" {link create_type} " Defines a new base data type + " {} "CREATE USER" {link create_user} " Creates account information for a new user + " {} "CREATE VIEW" {link create_view} " Constructs a virtual table + " {} "DECLARE" {link declare} " Defines a cursor for table access + " {} "DELETE" {link delete} " Deletes rows from a table + " {} "DROP AGGREGATE" {link drop_aggregate} " Removes the definition of an aggregate function + " {} "DROP DATABASE" {link drop_database} " Destroys an existing database + " {} "DROP FUNCTION" {link drop_function} " Removes a user-defined C function + " {} "DROP INDEX" {link drop_index} " Removes an index from a database + " {} "DROP LANGUAGE" {link drop_language} " Removes a user-defined procedural language + " {} "DROP OPERATOR" {link drop_operator} " Removes an operator from the database + " {} "DROP RULE" {link drop_rule} " Removes an existing rule from the database + " {} "DROP SEQUENCE" {link drop_sequence} " Removes an existing sequence + " {} "DROP TABLE" {link drop_table} " Removes existing tables from a database + " {} "DROP TRIGGER" {link drop_trigger} " Removes the definition of a trigger + " {} "DROP TYPE" {link drop_type} " Removes a user-defined type from the system catalogs + " {} "DROP USER" {link drop_user} " Removes an user account information + " {} "DROP VIEW" {link drop_view} " Removes an existing view from a database + " {} "EXPLAIN" {link explain} " Shows statement execution details + " {} "FETCH" {link fetch} " Gets rows using a cursor + " {} "GRANT" {link grant} " Grants access privilege to a user, a group or all users + " {} "INSERT" {link insert} " Inserts new rows into a table + " {} "LISTEN" {link listen} " Listen for notification on a notify condition + " {} "LOAD" {link load} " Dynamically loads an object file + " {} "LOCK" {link lock} " Explicit lock of a table inside a transaction + " {} "MOVE" {link move} " Moves cursor position + " {} "NOTIFY" {link notify} " Signals all frontends and backends listening on a notify condition + " {} "RESET" {link reset} " Restores run-time parameters for session to default values + " {} "REVOKE" {link revoke} " Revokes access privilege from a user, a group or all users. + " {} "ROLLBACK" {link rollback} " Aborts the current transaction + " {} "SELECT" {link select} " Retrieve rows from a table or view. + " {} "SELECT INTO" {link select_into} " Create a new table from an existing table or view + " {} "SET" {link set} " Set run-time parameters for session + " {} "SHOW" {link show} " Shows run-time parameters for session + " {} "UNLISTEN" {link unlisten} " Stop listening for notification + " {} "UPDATE" {link update} " Replaces values of columns in a table + " {} "VACUUM" {link vacuum} " Clean and analyze a Postgres database + " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/sqlfunc.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/sqlfunc.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/sqlfunc.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/sqlfunc.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,21 ---- + .pgaw:Help.f.t insert end \ + "SQL functions\n\n" {title} \ + "COALESCE(list)" {bold} " + return first non-NULL value in list + Example: + COALESCE(a2, c2 + 5, 0) + + " {} "IFNULL(input,non-NULL substitute)" {bold} " + return second argument if first is NULL + Example: + IFNULL(c1, 'N/A') + + " {} "CASE WHEN expr THEN expr \[...\] ELSE expr END" {bold} " + return expression for first true clause + Example: + CASE WHEN c1 = 1 THEN 'match' ELSE 'no match' END + + + " {} \ + "PostgreSQL functions\n" {link pgfunctions} \ + "Next - mathematical functions" {link mathfunc} diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/stringfunc.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/stringfunc.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/stringfunc.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/stringfunc.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,102 ---- + .pgaw:Help.f.t insert end \ + "String functions\n\n" {title} \ + "SQL92 String Functions" {bold} \ + " - SQL92 defines string functions with specific syntax. Some of these are implemented using other Postgres functions. The supported string types for SQL92 are char, varchar, and text. + " {} " + char_length(string)" {bold} " + Returns: int4 + length of string" {} " + + character_length(string)" {bold} " + Returns: int4 + length of string" {} " + + lower(string)" {bold} " + Returns: string + convert string to lower case" {} " + + octet_length(string)" {bold} " + Returns: int4 + storage length of string" {} " + + position(string in string)" {bold} " + Returns: int4 + location of specified substring" {} " + + substring(string \[from int\] \[for int\])" {bold} " + Returns: string + extract specified substring" {} " + + trim(\[leading|trailing|both\] \[string\] from string)" {bold} " + Returns: string + trim characters from string" {} " + + upper(text)" {bold} " + Returns: text + convert text to upper case + + Many additional string functions are available for text, varchar(), and char() types. Some are used internally to implement the SQL92 string functions listed above. + + " {} "PostgreSQL String Functions + + char(text)" {bold} " + Returns: char + convert text to char type + + " {} "char(varchar)" {bold} " + Returns: char + convert varchar to char type + + " {} "initcap(text)" {bold} " + Returns: text + first letter of each word to upper case + + " {} "lpad(text,int,text)" {bold} " + Returns: text + left pad string to specified length + + " {} "ltrim(text,text)" {bold} " + Returns: text + left trim characters from text + + " {} "textpos(text,text)" {bold} " + Returns:text + locate specified substring + + " {} "rpad(text,int,text)" {bold} " + Returns: text + right pad string to specified length + + " {} "rtrim(text,text)" {bold} " + Returns: text + right trim characters from text + + " {} "substr(text,int\[,int\])" {bold} " + Returns: text + extract specified substring + + " {} "text(char)" {bold} " + Returns: text + convert char to text type + + " {} "text(varchar)" {bold} " + Returns: text + convert varchar to text type + + " {} "translate(text,from,to)" {bold} " + Returns: text + convert character in string + + " {} "varchar(char)" {bold} " + Returns: varchar + convert char to varchar type + + " {} "varchar(text)" {bold} " + Returns: varchar + convert text to varchar type + + Most functions explicitly defined for text will work for char() and varchar() arguments. + + " {} \ + "PostgreSQL functions\n" {link pgfunctions} \ + "Next - Date/Time functions" {link datefunc} diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/tables.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/tables.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/tables.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/tables.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,8 ---- + .pgaw:Help.f.t insert end \ + "Tables" {title} \ + "\n\n" {} \ + " The following topics are available:\n" {} \ + " creating a new table\n" {link new_table} \ + " opening a table for viewing and editing\n" {link open_table} \ + " adding new records to an existing table\n" {link add_records} \ + " viewing and changing table structure\n" {link view_table_structure} diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/unlisten.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/unlisten.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/unlisten.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/unlisten.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,32 ---- + .pgaw:Help.f.t insert end "UNLISTEN" {bold} " is used to remove an existing NOTIFY registration. UNLISTEN cancels any existing registration of the current Postgres session as a listener on the notify condition notifyname. \ + The special condition wildcard \"*\" cancels all listener registrations for the current session. + + " {} "NOTIFY" {link notify} " contains a more extensive discussion of the use of LISTEN and NOTIFY. + + " {} "Synopsis" {bold} " + " {} " + UNLISTEN \{ notifyname | * \} + + " {code} "Usage" {bold} " + " {} " + postgres=> LISTEN virtual; + LISTEN + postgres=> NOTIFY virtual; + NOTIFY + ASYNC NOTIFY of 'virtual' from backend pid '12317' received + + postgres=> UNLISTEN virtual; + UNLISTEN + postgres=> NOTIFY virtual; + NOTIFY + -- notice no NOTIFY event is received + postgres=> + + " {code} "Notes" {bold} " + + classname needs not to be a valid class name but can be any string valid as a name up to 32 characters long. + + The backend does not complain if you UNLISTEN something you were not listening for. Each backend will automatically execute UNLISTEN * when exiting. + + A restriction in some previous releases of Postgres that a classname which does not correspond to an actual table must be enclosed in double-quotes is no longer present. + " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/update.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/update.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/update.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/update.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,40 ---- + .pgaw:Help.f.t insert end "UPDATE" {bold} " changes the values of the columns specified for all rows which satisfy condition. Only the columns to be modified need appear as column. + + Array references use the same syntax found in SELECT. That is, either single array elements, a range of array elements or the entire array may be replaced with a single query. + + You must have write access to the table in order to modify it, as well as read access to any table whose values are mentioned in the WHERE condition. + + " {} "Synopsis" {bold} " + " {} " + UPDATE table SET column = expression \[, ...\] + \[ FROM fromlist \] + \[ WHERE condition \] + + " {code} "Usage" {bold} " + " {} " + --Change word \"Drama\" with \"Dramatic\" on column kind: + -- + UPDATE films + SET kind = 'Dramatic' + WHERE kind = 'Drama'; + + SELECT * FROM films WHERE kind = 'Dramatic' OR kind = 'Drama'; + + code |title |did| date_prod|kind |len + -----+-------------+---+----------+----------+------ + BL101|The Third Man|101|1949-12-23|Dramatic | 01:44 + P_302|Becket |103|1964-02-03|Dramatic | 02:28 + M_401|War and Peace|104|1967-02-12|Dramatic | 05:57 + T_601|Yojimbo |106|1961-06-16|Dramatic | 01:50 + DA101|Das Boot |110|1981-11-11|Dramatic | 02:29 + + " {code} "Compatibility" {bold} " + + SQL92 + + SQL92 defines a different syntax for positioned UPDATE statement: + " {} " + UPDATE table SET column = expression \[, ...\] + WHERE CURRENT OF cursor + + " {code} "where cursor identifies an open cursor. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/users.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/users.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/users.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/users.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,2 ---- + .pgaw:Help.f.t insert end " + To be written" diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/vacuum.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/vacuum.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/vacuum.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/vacuum.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,26 ---- + .pgaw:Help.f.t insert end \ + "VACUUM" {bold} " serves two purposes in Postgres as both a means to reclaim storage and also a means to collect information for the optimizer. + + VACUUM opens every class in the database, cleans out records from rolled back transactions, and updates statistics in the system catalogs. The statistics maintained include the number of tuples and number of pages stored in all classes. Running VACUUM periodically will increase the speed of the database in processing user queries. + + " {} "Notes:" {italic} " The open database is target for VACUUM. + + We recommend that active production databases be cleaned nightly, in order to keep statistics relatively current. The VACUUM query may be executed at any time, however. In particular, after copying a large class into Postgres or after deleting a large number of records, it may be a good idea to issue a VACUUM query. This will update the system catalogs with the results of all recent changes, and allow the Postgres query optimizer to make better choices in planning user queries. + + If the server crashes during a VACUUM command, chances are it will leave a lock file hanging around. Attempts to re-run the VACUUM command result in an error message about the creation of a lock file. If you are sure VACUUM is not running, remove the pg_vlock file in your database directory (i.e. PGDATA/base/dbname/pg_vlock). + + " {} "Synopsis" {bold} " + VACUUM \[ VERBOSE \] \[ ANALYZE \] \[ table \] + VACUUM \[ VERBOSE \] ANALYZE \[ table \[ (column \[, ...\] ) \] \] + + " {code} "VERBOSE" {italic} " + Prints a detailed vacuum activity report for each table. + + " {} "ANALYZE" {italic} " + Updates column statistics used by the optimizer to determine the most efficient way to execute a query. The statistics represent the disbursion of the data in each column. This information is valuable when several execution paths are possible. + + " {} "table" {italic} " + The name of a specific table to vacuum. Defaults to all tables. + + " {} "column" {italic} " + The name of a specific column to analyze. Defaults to all columns. " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/view_table_structure.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/view_table_structure.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/view_table_structure.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/view_table_structure.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,15 ---- + .pgaw:Help.f.t insert end \ + "View and change table structure" {bold} " + + Select the Tables tab from the main window , select the desired table and press the \"Design\" button. You will get a tabbed dialog containing general information for the table, table structure, index information and permissions. + + You will be able to add new fields, rename the existing ones and add new indexes. In order to add a new index, select the fields that will be included in the index (multiple selections with shift-click) and press the \"Add new index\" button. + + A confirmation form will be displayed. The index name will be asigned by default by concatenating using underscore the table name with the fields names but you can change it as you will. Checking the \"Is unique?\" check box will force the creation of a unique index. + + You can inspect the properties of a index by selecting it from the list of defined indexes. You can also delete one of them by selecting the index and then pressing the \"Delete index\" button.\ + You can cluster an index fo the table, more information on " {} "cluster SQL command" {link cluster} " + + Through \"Permissions\" tab you can assign new permissions for the table or alter the existing ones. See also " {} "GRANT" {link grant} " and " {} "REVOKE" {link revoke} " SQL commands." + + diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/views.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/views.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/views.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/views.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,2 ---- + .pgaw:Help.f.t insert end " + To be written" diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/visual_designer.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/visual_designer.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/visual_designer.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/visual_designer.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,57 ---- + .pgaw:Help.f.t insert end \ + "Visual query designer" {bold} " + + PgAccess is using an advanced tool for visual designing of queries. \ + For those of you that have used Microsoft Access, it will be very familiar. + + When a new query is build, an empty canvas will be presented to you. \ + In the bottom of the screen there is the " {} "result" {italic} " zone. + + Add new tables on the canvas by selecting them from the drop-down or by entering \ + their names in the \"Add table\" entry and then pressing Enter. + + After adding the source tables on the canvas you can make links between fields from \ + different tables by dragging one field and dropping it on the label of the\ + corresponding field in the linked table. Links can be deleted by selecting them\ + (the link line will change it's colour) and then press \"Delete\" key. + + In order to delete a table from the canvas, select it by mouse clicking on the\ + name of the table and then press the \"Delete\" key. The tables can be moved\ + on the canvas by dragging them from their name labels. The entire canvas can\ + be panned by dragging it from an empty area. + + In order to select fields that will be included in the result, drag the desired \ + field from the table and drop it in the result zone in the desired column.\ + If there is already another field in that column, it will be shifted to the \ + right together with all the remaining fields to the right and the new field will \ + be inserted in the desired column. + + You can also specify a condition for records to be included in the result. Go \ + to the result zone and in the \"Criteria\" row enter the condition for the \ + selected field." {} " + Example:" {italic} " + > 150 + we will presume that we entered the above criteria for a numeric field. Or: + = 'CPU' + for a character field. + + If you don't want a field to be included in the result and you dropped it into \ + the result area just for adding a selection criteria on it, mouse click on \ + the Yes or No label in the \"Return\" row. + + In order to sort the results on a field, mouse click on the 'unsorted' label in \ + the \"Sort\" row. + + If you want to remove a field from the result zone, click on it's name and \ + then hit the \"Delete\" key. + + Pressing the \"Show SQL\" button will display the SQL command that will be \ + build from the current tables and result columns. Clicking on the canvas will \ + make it dissapear and the table layout will be displayed again. + + Check the query execution by pressing on the \"Execute SQL\" button. If the \ + query has been executed without error, a query viewer will be displayed and \ + you will be able to see the selected rows. When everything is ok, save the \ + query command to the query builder by pressing the \"Save to query builder\" \ + button. + " diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/help/y2k.hlp postgresql-6.5.2/src/bin/pgaccess/lib/help/y2k.hlp *** postgresql-6.5.1/src/bin/pgaccess/lib/help/y2k.hlp Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/help/y2k.hlp Mon Sep 13 14:47:31 1999 *************** *** 0 **** --- 1,16 ---- + .pgaw:Help.f.t insert end \ + "Year 2000 statement\n\n" {title} \ + "Author : " {bold} "Written by Thomas Lockhart on 1998-10-22\n" {} \ + { + The PostgreSQL Global Development Team provides the Postgres software code tree as a public service, without warranty and without liability for it's behavior or performance. However, at the time of writing: + + The author of this statement, a volunteer on the Postgres support team since November, 1996, is not aware of any problems in the Postgres code base related to time transitions around Jan 1, 2000 (Y2K). + + The author of this statement is not aware of any reports of Y2K problems uncovered in regression testing or in other field use of recent or current versions of Postgres. We might have expected to hear about problems if they existed, given the installed base and the active participation of users on the support mailing lists. + + To the best of the author's knowledge, the assumptions Postgres makes about dates specified with a two-digit year are documented in the current User's Guide in the chapter on data types. For two-digit years, the significant transition year is 1970, not 2000; e.g. "70-01-01" is interpreted as "1970-01-01", whereas "69-01-01" is interpreted as "2069-01-01". + + Any Y2K problems in the underlying OS related to obtaining "the current time" may propagate into apparent Y2K problems in Postgres. + + Refer to The Gnu Project and The Perl Institute for further discussion of Y2K issues, particularly as it relates to open source, no fee software. + } diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/languages/francais postgresql-6.5.2/src/bin/pgaccess/lib/languages/francais *** postgresql-6.5.1/src/bin/pgaccess/lib/languages/francais Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/languages/francais Mon Sep 13 14:47:37 1999 *************** *** 0 **** --- 1,525 ---- + array set Messages { + + "Label" "Etiquette" + + "Save schema" "Sauver schémas" + + "Is unique ?" "Est unique ?" + + "Report builder" "Constructeur d'états" + + "Criteria" "Critère" + + "FATAL ERROR upgrading PgAccess table" "ERREUR FATALE en actualisant la table PgAccess" + + "Save this query as a view" "Sauver cette requête comme vue ?" + + "Page header" "En-tête de page" + + "Query name" "Nom de requête" + + "Please select an object first!" "Selectionnez un objet d'abord" + + "Fields :" "Le champs de index" + + "Name" "Nom" + + "File name" "Nom du fichier" + + "Detail record" "Detail d'enregistrement" + + "Auto-load the last opened database at startup" "Chargement automatique de la base au démarrage" + + "Maxvalue" "Valeur maximale" + + "Start value" "Valeur de début" + + "Report fields" "Champs de l'état" + + "Test form" "Tester formulaire" + + "Error trying to connect to database '%s' on host %s \n\nPostgreSQL error message:%s" "Erreur de liaison à la base de données '%s' pour machine %s \n\nMessage d'erreur PostgreSQL :%s" + + "No field type ?" "Type champ inexistant ?" + + "User without name?" "Cette utilisateur a-t-il un nom?" + + "You have to supply a name for this schema!" "Vous devez fournir un nom pour ce schéma !" + + "Last value" "Dernière valeur" + + "Preferences" "Préférences" + + "View '%s' already exists!\nOverwrite ?" "La vue '%s' existe déjà!\n Ecraser ?" + + "You have to select an index!" "Vous devez selectionner un index!" + + "Field type" "Type de champ" + + "Script name" "Nom du script" + + "Reload" "Valider" + + "Remove table %s from query?" "Eliminer table %s de la requête ?" + + "SQL window" "Fenêtre SQL" + + "Allow user to create other users" "Peut créer d'autres utilisateurs" + + "Delete current record ?" "Détruire enregistrement courant ?" + + "List box" "Liste" + + "Save to query builder" "Sauver le constructeur de requêtes" + + "fixed width" "largeur de police fixe" + + "Scripts" "Scripts" + + "Yes" "Oui" + + "Add label" "Ajouter étiquette" + + "Sequence created!" "Le séquence avait été créée" + + "Field information" "Information de champ" + + "Design" "Editer" + + "Field" "Champ" + + "You have to supply an external file name!" "Vous devez fournir un nom du fichier" + + "Increment" "Incrément" + + "No" "Non" + + "Form design" "Création du formulaire" + + "You must supply a return type!" "Vous devez fournir un type de retour" + + "Remove field from result ?" "Eliminer champ du résultat ?" + + "There is another object (a %s) with the same name.\nPlease change it!" "Il y a un autre objet (%s) avec le même nom.\nChangez le SVP!" + + "This query has no commands?" "Cette requête n'a pas de définition?" + + "Execute query" "Execute requête" + + "field cannot be null" "champ ne peut être vide" + + "Help" "Aide" + + "Rename column" "Renomme champ" + + "Database" "Base de données" + + "Information" "Information" + + "Close" "Fermer" + + "Command" "Commande" + + "Table" "Table" + + "verify password" "encore un fois" + + "Vacuum" "Vider" + + "Default value" "Valeur par defaut" + + "Import" "Importer" + + "Delete index" "Détruire index" + + "Move up" "Monter" + + "index properties" "Propriétés d'index" + + "check" "vérifier" + + "Create new table" "Création de nouvelle table" + + "Visual query designer" "Créateur visuel de requêtes" + + "Delete all" "Détruire tous" + + "You are going to delete\n\n %s \n\nProceed?" "Vous allez détruire\n\n %s \n\nD'accord?" + + "Schema name" "Nom de schéma" + + "Error executing query" "Erreur en exécutant la requête" + + "Report name" "Nom de l'état" + + "Add field" "Ajout champ" + + "Field name" "Nom de champ" + + "FATAL ERROR searching for PgAccess system tables" "ERREUR FATALE en cherchant le système de tables PgAccess" + + "A big number of rows displayed in table view will take a lot of memory!" "L'affichage d'un grand nombre de colonnes prend beaucoup de mémoire" + + "Preview" "Pré-visualisation" + + "Users" "Utilisateurs" + + "Owner" "Auteur" + + "Form's window internal name" "Le nom interne de la fenêtre de formulaire" + + "Sort field" "Trier champs" + + "New name is the same as the old one!" "Le nouveau nom est le même que l'ancien" + + "Warning" "Avertissement" + + "Suggestions at" "Suggestions à" + + "Functions" "Fonctions" + + "Schema" "Schéma" + + "Open" "Ouvrir" + + "size" "taille" + + "Delete" "Détruire" + + "Returns" "Retours" + + "Define new user" "Définir nouvel utilisateur" + + "Move down" "Descendre" + + "Design script" "Script de création" + + "Check box" "Case à cocher" + + "FINAL WARNING" "DERNIER AVERTISSEMENT" + + "Add table" "Ajouter table" + + "Table viewer font" "Police de visualisateur de tables" + + "The field type is not specified!" "Le type de champ n'est pas spécifié" + + "Close test form" "Fermer test du formulaire" + + "Export table" "Exporter" + + "Add new index" "Ajout nouvel index" + + "Left" "Gauche" + + "Field delimiter" "Séparateur de champs" + + "Add formula" "Ajouter formule" + + "Open database" "Ouvre la base de données" + + "Return" "Retour" + + "Changed fonts may appear in the next working session!" "Les nouvelles polices apparaîtront à la prochaine session" + + "Error" "Erreur" + + "Enter a field name" "Entrez un nom de champ !" + + "field name" "Nom de champ" + + "Forms" "Formulaires" + + "Cannot add column" "Ne peut ajouter de colonne" + + "Clean" "Nettoyer" + + "Delete all objects ?" "Détruire tous les objets" + + "Preferred language" "Langage préféré" + + "Execute SQL" "Exécute SQL" + + "Sequences" "Séquences" + + "Button" "Bouton" + + "Language" "Langage" + + "Query '%s' was not found!" "La requête '%s' n'a pas été trouvée" + + "Object" "Objet" + + "Font fixed" "Police fixe" + + "Table name" "Nom de table" + + "Export" "Export" + + "Change user" "Changer utilisateur" + + "You must give object a new name!" "Vous devez donner un nouveau nom" + + "Query" "Requête" + + "User name" "Nom d'utilisateur" + + "Font normal" "Police normale" + + "Import table" "Importer" + + "Toolbar" "Outils" + + "Radio btn" "Radio" + + "You must supply a name for this function!" "Vous devez fournir un nom pour la fonction" + + "You have to select index fields!" "Vous devez selectionner le champ pour l'index" + + "Constraint" "Contrainte" + + "The script must have a name" "Le script doit avoir un nom" + + "Save" "Sauver" + + "Exit" "Quitter" + + "Inherits" "Source" + + "Delete field" "Détruire" + + "About" "A propos" + + "Empty field name ?" "Nom de champ inexistant ?" + + "All report information will be deleted.\n\nProceed ?" "Toutes les informations de l'état vont être détruites\n\nContinuer ?" + + "Host" "Machine" + + "vacuuming database %s ..." "Vider base %s ..." + + "Indexes defined" "Index définis" + + "You must specify field size!" "La taille du champ doit être précisée" + + "Schema '%s' already exists!" "Le schéma '%s' existe déjà!" + + "There is another field with the same name: '%s'!\n\nReplace it ?" "Il y a un autre champ avec le même nom : '%s'!\n\nRemplacer?" + + "Contents" "Contient" + + "Views" "Vues" + + "Variable" "Variable" + + "Error executing query\n\n%s\n\nPostgreSQL error message:\n%s\nPostgreSQL status:%s" "Erreur en exécutant la requête\n\n%s\n\nMessage d'erreur PostgreSQL :\n%s \n Statut de PostgreSQL:%s" + + "Filter conditions" "Conditions de filtre" + + "Error retrieving query definition" "Erreur en retrouvant la définition de la requête" + + "Error deleting view" "Erreur en détruisant la vue" + + "New" "Nouveau" + + "Tables" "Tables" + + "Create" "Créer" + + "Forms need an internal name, only literals, low case" "Les formulaires ont besoin d'un nom interne, seulement en lettres minuscules" + + "Do you want to save the form into the database?" "Voulez vous sauver le formulaire dans la base?" + + "Schema '%s' was not found!" "Le schéma '%s' n'a pas été trouvé" + + "proportional" "Proportionnelle" + + "Function saved!" "Le fonction avait ete créée" + + "with OIDs" "avec des OIDs" + + "Table information" "Information de table" + + "Error inserting new record" "Erreur en introduisant le nouvel enregistrement" + + "Column name '%s' already exists in this table!" "Le nom de colonne existe déjà dans cette table !" + + "File" "Fichier" + + "Your table has no fields!" "Cette table n'a pas de champ?" + + "Height" "Hauteur" + + "You will always get the latest version at:" "Le derniere version toujours à" + + "Form must have a name" "Le formulaire doit avoir un nom !" + + "Password" "Mot de passe" + + "Valid until (date)" "Valable jusqu'à" + + "Report source" "Source de l'état" + + "Allow user to create databases" "Peut créer une base" + + "Cancel" "Abandon" + + "Is clustered ?" "Est groupé ?" + + "Add new column" "Ajout nouveau champ" + + "Show SQL" "Montrez le code SQL." + + "New name" "Nouveau nom" + + "Table '%s' not found!" "Le table '%s' n'est pas trouvée" + + "Form name" "Nom du formulaire" + + "Visual designer" "Créateur visuel" + + "You choose to delete index\n\n %s \n\nProceed?" "Vous allez détruire index\n\n %s \n\nConfirmation?" + + "Error retrieving from" "Erreur en retrouvant..." + + "Save query definition" "Sauver la définition de la requête" + + "A Tcl/Tk interface to\nPostgreSQL\nby Constantin Teodorescu" "Une Tcl/Tk interface pour\nPostgreSQL\npar Constantin Teodorescu" + + "Operation completed!" "Opération finie" + + "Max rows displayed in table/query view" "Nombre maximal de colonnes affichées dans la table/vue de requête" + + "Passwords do not match!" "Les mots de passe ne vont pas" + + "Rename" "Renommer" + + "Entry" "Entrée" + + "Error retrieving schema definition" "Erreur en retrouvant la définition du schéma" + + "This is an action query!\n\nExecute it?" "Ceci est une requête d'action !\nExécuter ?" + + "Error retrieving view definition for" "Erreur en lisant la définition pour la vue" + + "options" "options" + + "Sequence '%s' not found!" "Le séquence '%s' n'a pas été trouvée" + + "Text" "Texte" + + "Tcl error executing pg_exec %s\n\n%s" "Erreur Tcl en exécutant %s\n\n%s" + + "Width" "Largeur" + + "You have to supply a name for this query!" "Vous devez donner un nom à cette requête" + + "Accessing data. Please wait ..." "Lit les données. Patience ..." + + "Report footer" "Pied de rapport" + + "Parameters" "Paramètres" + + "Queries" "Requêtes" + + "Query '%s' already exists!" "La requête '%s' existe dejà!" + + "Font bold" "Police grasse" + + "Query builder" "Constructeur de requêtes" + + "Error defining view" "Erreur en définissant la vue" + + "Top" "Haut" + + "You must supply a name for your table!" "Vous devez introduire un nom pour cette table" + + "Page footer" "Pied de page" + + "Font italic" "Police italique" + + "Field name not entered!" "Le nom de champ n'est pas entré" + + "Index name cannot be null!" "Le nom de l'index ne peut être nul" + + "Sort" "Trier" + + "Import-Export table" "Import/Export table" + + "Point" "Point" + + "type" "type" + + "You should supply a name for this sequence" "Vous devez donner un nom à la séquence" + + "Remove link ?" "Détruire cette liaison?" + + "You have to supply a table name!" "Vous devez fournir un nom de table" + + "Report header" "En tête de l'état" + + "Attributes" "Attributs" + + "Table '%s' already in schema" "Le table est déjà dans le schéma" + + "Username" "Utilisateur" + + "Minvalue" "Valeur minimale" + + "Sequence name" "Nom de séquence" + + "Define sequence" "Définir la séquence" + + "Function" "Fonction" + + "Sorting and filtering not (yet) available from queries!\n\nPlease enter them in the query definition!" "Tri et filtrage pas (encore) possible à partir des requêtes!\n\nEntrez les dans la définition de la requête SVP" + + "Reports" "Etats" + + "Columns" "Champs" + + "Indexes" "Index" + + "Permissions" "Permissions" + + "not null" "non vide" + + "Cluster index" "index groupe" + + "index columns" "index champs" + + "Add user" "Ajoute utilisateur" + + "Change permissions" "Change droits" + + "select" "sélections" + + "update" "actualise" + + "insert" "introduire" + + "rule" "règles" + + "Identification" "Identification" + + "Owner ID" "ID du propriétaire" + + "Has primary key ?" "A une clé primaire ?" + + "Has rules ?" "A des règles?" + + "Statistics" "Statistiques" + + "Number of tuples" "Nombre des enregistrements" + + "Number of pages" "Nombres des pages" + + "Index name" "Nom d'index" + + "Index fields" "Champs d'index" + + "Table OID" "OID de table" + + } + + diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/languages/italiano postgresql-6.5.2/src/bin/pgaccess/lib/languages/italiano *** postgresql-6.5.1/src/bin/pgaccess/lib/languages/italiano Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/languages/italiano Mon Sep 13 14:47:37 1999 *************** *** 0 **** --- 1,539 ---- + array set Messages { + + "Label" "Etichetta" + + "Save schema" "Salva lo schema" + + "Is unique ?" "E' unico ?" + + "Report builder" "Report builder" + + "Criteria" "Criterio" + + "FATAL ERROR upgrading PgAccess table" "ERRORE FATALE aggiornando le tabelle PgAccess" + + "Save this query as a view" "Salva questa query come View" + + "Page header" "Testata di pagina" + + "Query name" "Nome query" + + "Please select an object first!" "Seleziona prima un'oggetto!" + + "Fields :" "Campi :" + + "Name" "Nome" + + "File name" "Nome del file" + + "Detail record" "Dettaglio del record" + + "Auto-load the last opened database at startup" "Apertura automatica ultimo database all'avvio" + + "Maxvalue" "Valore massimo" + + "Start value" "Valore d'inizio" + + "Report fields" "Campi disponibili" + + "Test form" "Test form" + + "Error trying to connect to database '%s' on host %s \n\nPostgreSQL error message:%s" "Errore di connessione al database '%s' sull'host %s \n\nMessaggio d'errore di PostgreSQL :%s" + + "No field type ?" "Nessun tipo per il campo?" + + "User without name?" "Utente senza nome ?" + + "You have to supply a name for this schema!" "Devi specificare un nome per lo schema!" + + "Last value" "Ultimo valore" + + "Preferences" "Preferenze" + + "View '%s' already exists!\nOverwrite ?" "View '%s' esiste gia'!\nSovrascrivo ?" + + "You have to select an index!" "Devi scegliere un'indice!" + + "Field type" "Tipo campo" + + "Script name" "Nome dello Script" + + "Reload" "Ricarica" + + "Remove table %s from query?" "Rimuovere la tabella %s dalla query?" + + "SQL window" "Finestra SQL" + + "Allow user to create other users" "L'utente puo' creare altri utenti" + + "Delete current record ?" "Cancello il record corrente? " + + "List box" "Lista" + + "Save to query builder" "Salva nel query builder" + + "fixed width" "larghezza fissa" + + "Scripts" "Scripts" + + "Yes" "Si" + + "Add label" "Aggiungi etichetta" + + "Sequence created!" "Sequenza creata !" + + "Field information" "Informazioni sul campo" + + "Design" "Disegna" + + "Field" "Campo" + + "You have to supply an external file name!" "Devi specificare un nome file esterno!" + + "Increment" "Incremento" + + "No" "No" + + "Form design" "Disegna il Form" + + "You must supply a return type!" "Devi specificare il tipo di dato ritornato" + + "Remove field from result ?" "Eliminare il campo dal risultato ?" + + "There is another object (a %s) with the same name.\nPlease change it!" "Esiste un'altro oggetto (un %s) con lo stesso nome.\nCambia nome!" + + "This query has no commands?" "Questa query non ha comandi ?" + + "Execute query" "Esegui query" + + "field cannot be null" "Il campo non puo' essere nullo" + + "Help" "Aiuto" + + "Rename column" "Rinomina campo" + + "Database" "Database" + + "Information" "Informazioni" + + "Close" "Chiudi" + + "Command" "Comando" + + "Table" "Tabella" + + "verify password" "verifica password" + + "Vacuum" "Vacuum" + + "Default value" "Valore predefinito" + + "Import" "Importa" + + "Delete index" "Cancella indice" + + "Move up" "Muovi su'" + + "index properties" "proprieta' dell'indice" + + "check" "Controlla" + + "Create new table" "Crea una nuova tabella" + + "Visual query designer" "Visual query designer" + + "Delete all" "Cancella tutto" + + "You are going to delete\n\n %s \n\nProceed?" "Stai per cancellare\n\n %s\n\n Procedo?" + + "Schema name" "Nome dello schema" + + "Error executing query" "Errore eseguendo la query" + + "Report name" "Nome del report" + + "Add field" "Aggiungi campo" + + "Field name" "Nome campo" + + "FATAL ERROR searching for PgAccess system tables" "ERRORE FATALE cercando le tabelle PgAccess di sistema" + + "A big number of rows displayed in table view will take a lot of memory!" "Un numero grande di righe visualizzate richiedera' molta memoria!" + + "Preview" "Anteprima" + + "Users" "Utenti" + + "Owner" "Proprietario" + + "Form's window internal name" "Il nome interno del form" + + "Sort field" "Campo ordinato" + + "New name is the same as the old one!" "Nuovo nome uguale al precedente!" + + "Warning" "Attenzione" + + "Suggestions at" "Suggerimenti a" + + "Functions" "Funzioni" + + "Schema" "Schema" + + "Open" "Apri" + + "size" "Dimensione" + + "Delete" "Cancella" + + "Returns" "Risultati" + + "Define new user" "Definisce nuovo utente" + + "Move down" "Muovi Giù" + + "Design script" "Design script" + + "Check box" "Casella si/no" + + "FINAL WARNING" "Ultimo Warning" + + "Add table" "Nuova tabella" + + "Table viewer font" "Carattere del visualizzatore tabelle" + + "The field type is not specified!" "Il tipo del campo non e' stato specificato!" + + "Close test form" "Chiudi test form" + + "Export table" "Esporta tabelle" + + "Add new index" "Aggiungi nuovo indice" + + "Left" "Sinistra" + + "Field delimiter" "Delimitatore di campo" + + "Add formula" "Aggiungi formula" + + "Open database" "Apri il Database" + + "Return" "Risultato" + + "Changed fonts may appear in the next working session!" "I caratteri cambiati saranno visibili nella prossima sessione!" + + "Error" "Errore" + + "Enter a field name" "Inserisci un nome campo" + + "field name" "Nome Campo" + + "Forms" "Forms" + + "Cannot add column" "Non posso aggiungere una colonna" + + "Clean" "Pulisci" + + "Delete all objects ?" "Cancellare tutti gli oggetti ?" + + "Preferred language" "Lingua preferita" + + "Execute SQL" "Esegui SQL" + + "Sequences" "Sequences" + + "Button" "Bottone" + + "Language" "Lingua" + + "Query '%s' was not found!" "La query '%s' non e' stata trovata!" + + "Object" "Oggetto" + + "Font fixed" "Carattere fisso" + + "Table name" "Nome tabella" + + "Export" "Esporta" + + "Change user" "Cambia utente" + + "You must give object a new name!" "Devi dare un nuovo nome all'oggetto!" + + "Query" "Query" + + "User name" "Nome utente" + + "Font normal" "Carattere normale" + + "Import table" "Importa" + + "Toolbar" "Barra degli strumenti" + + "Radio btn" "Bottone a scelta" + + "You must supply a name for this function!" "Devi fornire un nome per questa funzione!" + + "You have to select index fields!" "Devi selezionare i campi dell'indice" + + "Constraint" "Constraint" + + "The script must have a name" "Lo script deve avere un nome" + + "Save" "Salva" + + "Exit" "Esci" + + "Inherits" "Eredita" + + "Delete field" "Cancella campo" + + "About" "Apropos" + + "Empty field name ?" "Nome del campo vuoto?" + + "All report information will be deleted.\n\nProceed ?" "Tutte le informazioni relative al report saranno cancellate.\n\n Procedo ?" + + "Host" "Host" + + "vacuuming database %s ..." "vacuuming database %s ..." + + "Indexes defined" "Indici definiti" + + "Owner ID" "Proprietario ID" + + "You must specify field size!" "Devi specificare la dimensione del campo!" + + "Schema '%s' already exists!" "Lo schema '%s' esiste gia'!" + + "There is another field with the same name: '%s'!\n\nReplace it ?" "C'e' un'altro campo con lo stesso nome: '%s'!\n\nSostituisco ? " + + "Contents" "Contenuto" + + "Views" "Views" + + "Variable" "Variabile" + + "Error executing query\n\n%s\n\nPostgreSQL error message:\n%s\nPostgreSQL status:%s" "Errore eseguendo la query\n\n%s\n\nErrore PostgreSQL:\n%s\nPostgreSQL status:%s" + + "Filter conditions" "Condizioni di filtro" + + "Error retrieving query definition" "Errore caricando la definizione della query" + + "Error deleting view" "Errore durante la cancellazione" + + "New" "Nuovo" + + "Tables" "Tabelle" + + "Create" "Crea" + + "Forms need an internal name, only literals, low case" "Il form ha bisogno di un nome interno, solo lettere minuscole" + + "Do you want to save the form into the database?" "Vuoi salvare il form nel database ?" + + "Schema '%s' was not found!" "Lo schema '%s' non e' stato trovato!" + + "proportional" "proporzionale" + + "Function saved!" "Funzione salvata!" + + "with OIDs" "con OIDs" + + "Table information" "Informazioni tabella" + + "Error inserting new record" "Errore inserendo il nuovo record" + + "Column name '%s' already exists in this table!" "Il campo '%s' esiste gia'!" + + "File" "File" + + "Your table has no fields!" "La tabella non ha campi !" + + "Height" "Altezza" + + "You will always get the latest version at:" "Troverai l'ultima versione su:" + + "Form must have a name" "Il form deve avere un nome" + + "Password" "Password" + + "Valid until (date)" "Valido fino a" + + "Report source" "Sorgente del report" + + "Allow user to create databases" "L'utente puo' creare database" + + "Cancel" "Abbandona" + + "Is clustered ?" "Is clustered ?" + + "Add new column" "Aggiungi nuovo campo" + + "Show SQL" "Mostra SQL" + + "New name" "Nuovo nome" + + "Table '%s' not found!" "Tabella '%s' non trovata!" + + "Form name" "Nome form" + + "Visual designer" "Visual Designer" + + "You choose to delete index\n\n %s \n\nProceed?" "Hai scelto di cancellare l'indice\n\n %s \n\nProcedo?" + + "Error retrieving from" "Errore caricando da" + + "Save query definition" "Salva la definizione della query" + + "A Tcl/Tk interface to\nPostgreSQL\nby Constantin Teodorescu" "Una interfaccia Tcl/Tk verso\nPostgreSQL\n di Constantin Teodorescu" + + "Operation completed!" "Operazione completata!" + + "Max rows displayed in table/query view" "Numero massimo di righe nella visualiz. tabella/query" + + "Passwords do not match!" "La password non corrisponde!" + + "Rename" "Rinomina" + + "Entry" "Entry" + + "Error retrieving schema definition" "Errore caricando la definizione dello schema" + + "This is an action query!\n\nExecute it?" "Questa e' una query d'azione\n\nLa eseguo?" + + "Error retrieving view definition for" "Errore caricando la definizione di" + + "options" "opzioni" + + "Sequence '%s' not found!" "Sequence '%s' non trovata!" + + "Text" "Testo" + + "Tcl error executing pg_exec %s\n\n%s" "Errore Tcl eseguendo pg_exec %s\n\n%s" + + "Width" "Larghezza" + + "You have to supply a name for this query!" "Devi specificare un nomer per la query" + + "Accessing data. Please wait ..." "Carico i dati, attendi..." + + "Report footer" "Piede del report" + + "Parameters" "Parametri" + + "Queries" "Queries" + + "Query '%s' already exists!" "La query '%s' esiste gia'!" + + "Font bold" "Carattere grassetto" + + "Query builder" "Query builder" + + "Error defining view" "Errore definendo la query" + + "Top" "Sopra" + + "You must supply a name for your table!" "Devi specificare un nome per la tabella!" + + "Page footer" "Pie' di pagina" + + "Font italic" "Carattere corsivo" + + "Field name not entered!" "Nome del campo non inserito!" + + "Index name cannot be null!" "Il nome dell'indice non puo' essere nullo!" + + "Sort" "Ordina" + + "Import-Export table" "Importa/Esporta tabella" + + "Point" "Punto" + + "type" "tipo" + + "You should supply a name for this sequence" "Tu devi fornire un nome per la sequenza" + + "Remove link ?" "Rimuovere collegamento ?" + + "You have to supply a table name!" "Devi specificare il nome tabella!" + + "Report header" "Testata del report" + + "Attributes" "Attributi" + + "Table '%s' already in schema" "Tabella '%s' esiste gia' nello schema!" + + "Username" "Nome utente" + + "Minvalue" "Valore minimo" + + "Sequence name" "Nome del sequence" + + "Define sequence" "Definisci la sequenza" + + "Function" "Funzione" + + "Sorting and filtering not (yet) available from queries!\n\nPlease enter them in the query definition!" "Ordinamento e filtri non ancora disponibili dalle query!\n\nInseriscili nella definizione della query!" + + "Reports" "Reports" + + "primary key" "chiave primaria" + + "Visual schema designer" "Ambiente sviluppo relazioni visuale" + + Print Stampa + + "Print to Postscript" "Stampa Postscript" + + Commands Azioni + + "Report preview" "Anteprima report" + + "The printed image in Postscript is in the file pgaccess-report.ps" "La stampa in Poscript è nel file pgaccess-report.ps" + + "Columns" "Campi" + + "Indexes" "Indici" + + "Permissions" "Autorita" + + "not null" "non nullo" + + "Cluster index" "Cluster indice" + + "index columns" "campi dello indice" + + "Add user" "Nuovo utente" + + "Change permissions" "Cambiare autorita" + + "select" "selezioni" + + "update" "update" + + "insert" "inserisci" + + "rule" "regoli" + + "Identification" "Identificatione" + + "Owner ID" "ID dello proprieta" + + "Has primary key ?" "Chiave primaria ?" + + "Has rules ?" "Regoli definiti ?" + + "Statistics" "Statistica" + + "Number of tuples" "Numero righe" + + "Number of pages" "Numero pagine" + + "Index name" "Nome indici" + + "Index fields" "Campi dello indice" + + "Table OID" "Tabella OID" + + } diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/lib/languages/romana postgresql-6.5.2/src/bin/pgaccess/lib/languages/romana *** postgresql-6.5.1/src/bin/pgaccess/lib/languages/romana Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/bin/pgaccess/lib/languages/romana Mon Sep 13 14:47:37 1999 *************** *** 0 **** --- 1,526 ---- + array set Messages { + + "Label" "Etichetã" + + "Save schema" "Salveazã planul" + + "Is unique ?" "Este index unic ?" + + "Report builder" "Proiectare rapoarte" + + "Criteria" "Conditie" + + "FATAL ERROR upgrading PgAccess table" "EROARE FATALA la actualizarea tabelei PgAccess" + + "Save this query as a view" "Salveazã aceastã selecþie ca o vedere" + + "Page header" "Cap de paginã" + + "Query name" "Nume selecþie" + + "Please select an object first!" "Selectati mai intai un obiect!" + + "Fields :" "Cîmpurile indexului" + + "Name" "Nume" + + "File name" "Nume fiºier" + + "Detail record" "Înregistrãri" + + "Auto-load the last opened database at startup" "Încarcã automat la lansare ultima bazã deschisã" + + "Maxvalue" "Valoare maximã" + + "Start value" "Începe de la" + + "Report fields" "Câmpuri disponibile" + + "Test form" "Testeazã macheta" + + "Error trying to connect to database '%s' on host %s \n\nPostgreSQL error message:%s" "Eroare la conectarea la baza de date '%s' pe masina %s \n\nMesajul de eroare PostgreSQL:%s" + + "No field type ?" "Tip cimp necompletat!" + + "User without name?" "Utilizatorul asta n-ar si el un nume?" + + "You have to supply a name for this schema!" "Trebuie sa dati un nume acestui plan!" + + "Last value" "Ultima valoare" + + "Preferences" "Preferinþe" + + "View '%s' already exists!\nOverwrite ?" "Vederea '%s' mai exista!\nO suprainscriem ?" + + "You have to select an index!" "Trebuie sa selectati un index!" + + "Field type" "Tip cãmp" + + "Script name" "Nume script" + + "Reload" "Reîncãrcare" + + "Remove table %s from query?" "Eliminati tabela %s din selectie?" + + "SQL window" "Comenzi SQL executate" + + "Allow user to create other users" "Are voie sã creeze alþi utilizatori" + + "Delete current record ?" "Stergeti inregistrarea curenta?" + + "List box" "Listã" + + "Save to query builder" "Salveazã fraza SQL" + + "fixed width" "lãþime fixã" + + "Scripts" "Scripturi" + + "Yes" "Da" + + "Add label" "Adaugã etichetã" + + "Sequence created!" "Secventa a fost creata!" + + "Field information" "Informaþii despre câmpuri" + + "Design" "Proiecteazã" + + "Field" "Cimp" + + "You have to supply an external file name!" "Trebuie sa introduceti numele fisierului extern!" + + "Increment" "Increment" + + "No" "Nu" + + "Form design" "Proiectare machetã" + + "You must supply a return type!" "Trebuie sa introduceti tipul rezultatului" + + "Remove field from result ?" "Eliminati acest cimp din rezultat?" + + "There is another object (a %s) with the same name.\nPlease change it!" "Mai este un obiect (%s) cu acelasi nume!\nSchimbati-l!" + + "This query has no commands?" "Aceasta selectie nu are definitie?" + + "Execute query" "Executã selecþia" + + "field cannot be null" "obligatoriu de completat" + + "Help" "Ajutor" + + "Rename column" "Redenumeºte cîmp" + + "Database" "Baza de date" + + "Information" "Informaþii" + + "Close" "Închide" + + "Command" "Comandã" + + "Table" "Tabela" + + "verify password" "verificã parola" + + "Vacuum" "Taseazã" + + "Default value" "Valoare implicitã" + + "Import" "Importã" + + "Delete index" "ªterge index" + + "Move up" "Urcã" + + "index properties" "proprietãþi index" + + "check" "verificã" + + "Create new table" "Creazã tabelã nouã" + + "Visual query designer" "Proiectare vizuala a selectiilor" + + "Delete all" "ªterge toate" + + "You are going to delete\n\n %s \n\nProceed?" "Urmeaza sa stergeti obiectul\n\n %s \n\nConfirmati?" + + "Schema name" "Numele planului" + + "Error executing query" "Eroare la executia selectiei" + + "Report name" "Nume raport" + + "Add field" "Adaugã-l" + + "Field name" "Nume câmp" + + "FATAL ERROR searching for PgAccess system tables" "EROARE FATALA la citirea tabelelor necesare PgAccess" + + "A big number of rows displayed in table view will take a lot of memory!" "Un numãr mare de înregistrãri încãrcate va lua multã memorie" + + "Preview" "Încercare" + + "Users" "Utilizatori" + + "Owner" "Aparþine lui" + + "Form's window internal name" "Numele intern al machetei" + + "Sort field" "Cîmpuri sortare" + + "New name is the same as the old one!" "Numele nou este acelasi cu numele vechi!" + + "Warning" "Avertisment" + + "Suggestions at" "Sugestii la" + + "Functions" "Funcþii" + + "Schema" "Plan" + + "Open" "Deschide" + + "size" "mãrime" + + "Delete" "ªterge" + + "Returns" "Întoarce" + + "Define new user" "Definire utilizator nou" + + "Move down" "Coboarã" + + "Design script" "Proiecteazã script" + + "Check box" "Marcaj" + + "FINAL WARNING" "AVERTISMENT FINAL" + + "Add table" "Adaugã tabelã" + + "Table viewer font" "Fonturi tabele" + + "The field type is not specified!" "Tipul cimpului nu a fost specificat" + + "Close test form" "Inchide macheta test" + + "Export table" "Exportã tabelã" + + "Add new index" "Adaugã index nou" + + "Left" "Stânga" + + "Field delimiter" "Delimitator cîmp" + + "Add formula" "Adaugã formulã" + + "Open database" "Deschide baza de date" + + "Return" "Selectat" + + "Changed fonts may appear in the next working session!" "Fonturile se vor schimba la urmãtoarea lansare" + + "Error" "Eroare" + + "Enter a field name" "Trebuie sa introduceti numele cimpului" + + "field name" "Nume cîmp" + + "Forms" "Machete" + + "Cannot add column" "Nu putem adauga cimpul" + + "Clean" "Curãþã" + + "Delete all objects ?" "Stergeti toate obiectele?" + + "Preferred language" "Limba preferatã" + + "Execute SQL" "Executã selecþia" + + "Sequences" "Secvenþe" + + "Button" "Buton" + + "Language" "Limbaj" + + "Query '%s' was not found!" "Definitia pentru selectia '%s' nu a fost gasita" + + "Object" "Obiect" + + "Font fixed" "Font fix" + + "Table name" "Nume tabelã" + + "Export" "Exportã" + + "Change user" "Modificare date utilizator" + + "You must give object a new name!" "Trebuie sa introduceti totusi numele nou" + + "Query" "Query" + + "User name" "Nume utilizator" + + "Font normal" "Font normal" + + "Import table" "Importã tabelã" + + "Toolbar" "Scule" + + "Radio btn" "Selector" + + "You must supply a name for this function!" "Trebuie sa introduceti un nume pentru aceasta functie" + + "You have to select index fields!" "Trebuie sa selectati cimpurile indexului!" + + "Constraint" "Cerinþe" + + "The script must have a name" "Script-ul ar trebui sa aiba un nume" + + "Save" "Salveazã" + + "Exit" "Terminare" + + "Inherits" "Strãmoºi" + + "Delete field" "ªterge cîmp" + + "About" "Despre" + + "Empty field name ?" "Nume cimp necompletat" + + "All report information will be deleted.\n\nProceed ?" "Toate obiectele din raport vor fi sterse!\n\nSinteti de acord?" + + "Host" "Maºina" + + "vacuuming database %s ..." "Tasãm baza de date %s ..." + + "Indexes defined" "Indecºi definiþi" + + "You must specify field size!" "Marimea cimpului trebuie specificata" + + "Schema '%s' already exists!" "Schema '%s' exista deja!" + + "There is another field with the same name: '%s'!\n\nReplace it ?" "Mai exista un cimp cu acelasi nume: '%s'!\n\nIl inlocuim cu descrierea noua?" + + "Contents" "Conþinut" + + "Views" "Vederi" + + "Variable" "Variabilã" + + "Error executing query\n\n%s\n\nPostgreSQL error message:\n%s\nPostgreSQL status:%s" "Eroare la executia selectiei:\n\n%s\n\nMesaj de eroare PostgreSQL:\n%s\nStare:%s" + + "Filter conditions" "Condiþii de filtrare" + + "Error retrieving query definition" "Eroare la citirea definitiei pentru selectie" + + "Error deleting view" "Eroare la stergerea vederii" + + "New" "Nou" + + "Tables" "Tabele" + + "Create" "Creazã" + + "Forms need an internal name, only literals, low case" "Machetele au nevoie de un nume intern, doar litere mici" + + "Do you want to save the form into the database?" "Vrei sa salvezi descrierea machetei in baza de date?" + + "Schema '%s' was not found!" "Schema '%s' nu a fost gasita!" + + "proportional" "proporþional" + + "Function saved!" "Functia a fost salvata!" + + "with OIDs" "cu OID-uri" + + "Table information" "Informaþii despre tabela" + + "Error inserting new record" "Eroare la adaugarea noii inregistrari" + + "Column name '%s' already exists in this table!" "Cimpul '%s' exista deja in tabela!" + + "File" "Fiºier" + + "Your table has no fields!" "Tabela asta nu are nici un cimp ?" + + "Height" "Înãlþime" + + "You will always get the latest version at:" "Întotdeauna ultima versiune se va gãsi la" + + "Form must have a name" "Macheta trebuie sa aiba si ea un nume!" + + "Password" "Parolã" + + "Valid until (date)" "Valabil pînã la" + + "Report source" "Sursa raportului" + + "Allow user to create databases" "Are voie sã creeze baze de date" + + "Cancel" "Abandon" + + "Is clustered ?" "E conglomerat ?" + + "Add new column" "Adaugã cîmp nou" + + "Show SQL" "Aratã comanda" + + "New name" "Nume nou" + + "Table '%s' not found!" "Tabela '%s' nu a fost gasita!" + + "Form name" "Nume machetã" + + "Visual designer" "Proiectare vizualã" + + "You choose to delete index\n\n %s \n\nProceed?" "Urmeaza sa stergeti indexul\n\n %s \n\nConfirmati?" + + "Error retrieving from" "Eroare la citirea tabelei" + + "Save query definition" "Salveazã definiþia selecþiei" + + "A Tcl/Tk interface to\nPostgreSQL\nby Constantin Teodorescu" "O interfaþã Tcl/Tk pentru\nPostgreSQL\nde Constantin Teodorescu" + + "Operation completed!" "Operatiune terminata!" + + "Max rows displayed in table/query view" "Numãr maxim înregistrãri afiºate" + + "Passwords do not match!" "Parolele nu se prea potrivesc!" + + "Rename" "Redenumeºte" + + "Entry" "Cîmp" + + "Error retrieving schema definition" "Eroare la citirea definitiei pentru plan" + + "This is an action query!\n\nExecute it?" "Aceasta este o comanda nu o selectie!\n\nO executam?" + + "Error retrieving view definition for" "Eroare la citirea definitiei pentru vederea" + + "options" "opþiuni" + + "Sequence '%s' not found!" "Secventa '%s' nu a fost gasita!" + + "Text" "Text" + + "Tcl error executing pg_exec %s\n\n%s" "Eroare Tcl la executia comenzii %s\n\n%s" + + "Width" "Lãþime" + + "You have to supply a name for this query!" "Trebuie sa dati totusi un nume acestei selectii" + + "Accessing data. Please wait ..." "Citim inregistrarile. Asteptati ..." + + "Report footer" "Încheiere raport" + + "Parameters" "Parametrii" + + "Queries" "Selecþii" + + "Query '%s' already exists!" "Selectia '%s' exista deja!" + + "Font bold" "Font îngroºat" + + "Query builder" "Proiectare selectii" + + "Error defining view" "Eroare la definirea vederii" + + "Top" "Sus" + + "You must supply a name for your table!" "Trebuie sa introduceti un nume pentru aceasta tabela!" + + "Page footer" "Încheiere paginã" + + "Font italic" "Font înclinat" + + "Field name not entered!" "Nu ati introdus numele cimpului!" + + "Index name cannot be null!" "Numele indexului trebuie sa fie completat!" + + "Sort" "Sortare" + + "Import-Export table" "Import/Export tabela" + + "Point" "Selecteazã" + + "type" "tip" + + "You should supply a name for this sequence" "Ar trebui sa dai un nume secventei" + + "Remove link ?" "Stergeti aceasta legatura?" + + "You have to supply a table name!" "Trebuie sa introduceti numele tabelei!" + + "Report header" "Cap de raport" + + "Attributes" "Atribute" + + "Table '%s' already in schema" "Tabela '%s' exista deja pe plan!" + + "Username" "Utilizator" + + "Minvalue" "Valoare minimã" + + "Sequence name" "Nume secvenþã" + + "Define sequence" "Defineºte secvenþã" + + "Function" "Funcþie" + + "Sorting and filtering not (yet) available from queries!\n\nPlease enter them in the query definition!" "Sortari si filtrari nu se pot face din vizualizare selectii\n\nSpecificati-le in definitia selectiei!" + + "Reports" "Rapoarte" + + "primary key" "cheie primarã" + + "Back" "Inapoi" + + "Columns" "Coloane" + + "Indexes" "Indecºi" + + "Permissions" "Drepturi" + + "not null" "nenul" + + "Cluster index" "Aglomereazã indexul" + + "index columns" "compunerea indexului" + + "Add user" "Adaugã utilizator" + + "Change permissions" "Schimbã drepturile de acces" + + "select" "selecþii" + + "update" "actualizãri" + + "insert" "inserãri" + + "rule" "reguli" + + "Identification" "Identificare" + + "Owner ID" "ID-ul proprietarului" + + "Has primary key ?" "Are cheie primarã ?" + + "Has rules ?" "Are reguli definite ?" + + "Statistics" "Statistice" + + "Number of tuples" "Numãr înregistrãri" + + "Number of pages" "Numãr pagini" + + "Index name" "Nume index" + + "Index fields" "Coloanele indexului" + + "Table OID" "OID-ul tabelei" + } Binary files postgresql-6.5.1/src/bin/pgaccess/libpgtcl.dll and postgresql-6.5.2/src/bin/pgaccess/libpgtcl.dll differ Binary files postgresql-6.5.1/src/bin/pgaccess/libpq.dll and postgresql-6.5.2/src/bin/pgaccess/libpq.dll differ diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/maillist.html postgresql-6.5.2/src/bin/pgaccess/maillist.html *** postgresql-6.5.1/src/bin/pgaccess/maillist.html Sun Mar 1 16:13:21 1998 --- postgresql-6.5.2/src/bin/pgaccess/maillist.html Wed Dec 31 19:00:00 1969 *************** *** 1,43 **** - - - - - - - - -

The mailing list for PgAccess is :       pgsql-interfaces@postgresql.org

- -

If you have some questions regarding PgAccess you should mail to this - address. I will also answer to messages addresed directly to me but it - would be better to post your messages here because it might be possible - to get an answer quickly from another user of PgAccess.

- -

-


- -

To subscribe please send a mail message to :

- -

     pgsql-interfaces-request@postgresql.org -  

- -

having a single line in the body message :      subscribe

- -

In a couple of minutes , if everything is ok, you must receive something - like that :

- -

-


- -

Welcome to the pgsql-interfaces mailing list!

- -

Please save this message for future reference. Thank you.

- -

If you ever want to remove yourself from this mailing list, you - can send mail to <Majordomo@hub.org> with the following command in - the body of your email message:

- -

unsubscribe pgsql-interfaces yourname@yourdomain

- - - --- 0 ---- diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/pg93patch.html postgresql-6.5.2/src/bin/pgaccess/pg93patch.html *** postgresql-6.5.1/src/bin/pgaccess/pg93patch.html Tue Mar 9 09:17:51 1999 --- postgresql-6.5.2/src/bin/pgaccess/pg93patch.html Wed Dec 31 19:00:00 1969 *************** *** 1,25 **** - - - - - - - - -

- PgAccess 0.93 patch to make it work with PostgreSQL 6.3.x -

- -


PgAccess 0.93 is working fine with PostgreSQL 6.4.x due to some - changes in libpgtcl ! -

There is a small patch that you have to make in order to make it work - with 6.3.x ! -

Replace in procedure wpg_exec the following line: -

set pgsql(errmsg) [pg_result $pgsql(res) -error] -

with this one : -

set pgsql(errmsg) "NO ERROR INFORMATION SUPPLIED" -

And it will work fine! In some error cases, you will not get the appropriate - error message from libpgtcl. -

 Back - - --- 0 ---- diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/pga-rad.html postgresql-6.5.2/src/bin/pgaccess/pga-rad.html *** postgresql-6.5.1/src/bin/pgaccess/pga-rad.html Sun Mar 29 16:52:53 1998 --- postgresql-6.5.2/src/bin/pgaccess/pga-rad.html Wed Dec 31 19:00:00 1969 *************** *** 1,65 **** - - - - - - - -

- PgAccess - Scripts and Forms  -

- Beginning with 0.70 version, I have introduced in PgAccess two new modules - for operating with scripts and forms. - -

   This would give to PgAccess the power of creating application - directly into PgAccess, defining new modules, procedures, forms and possibly - making it a rapid development tool for PostgreSQL. The "scripts" and "forms" - modules are using two new tables called pga_forms and pga_scripts. PgAccess - take care of creating them if user is opening a new database and grant - ALL permissions on them to PUBLIC. -
  -
   Of course, when Designing a script, a simple text editor - is opened and text is saved as is in pga_scripts table. When "designing" - a form, a "form editor" that would be very similar with "Visual Tcl" is - invoked. - -

   This mechanism and the extremely versatile scripting mode - of Tcl/Tk would give PgAccess a great power for creating end user application - using PostgreSQL. The most important thing is that the user could call - procedures and functions that I have used for building up PgAccess ! -

- Forms

-    Forms are used for creating windows and placing widgets inside - it. When PgAccess interpret them, a new window appear, with buttons as - defined that could call "user defined scripts", "user defined procedures" - or "internal PgAccess procedures". -
   Forms can hold all the widgets allowed in Tcl/Tk , buttons, - check-boxes, radio-buttons, list-boxes, frames, canvases, etc. With these - forms, you can control your application so PgAccess would become just a - "shell", a startup point for you applications. See the  special - section concerning forms. -

- Scripts

-    Scripts are normal Tcl/Tk code that is interpreted by Tcl/Tk. - You can define your own procedures inside a script called "Library" for - example. You can call your procedures from within another script, from - another procedure. -
   The most important thing is that you have total access - to the PgAccess core of functions and procedures used by me in building - PgAccess as an application. Just write open_table - "Your sample table" and you'll see the result. -
   If you are writing a script called "Autoexec" then it - will be executed every time the database is opened. You can put inside - different commands that you want to be executed such as : running scripts - that would define your own procedures such as execute_script - "My own procedure library" or open a form with open_form - "Main window with menu buttons" , and so on. - -

-


-
Remember : I'm waiting your messages at teo@flex.ro - -

-


- - --- 0 ---- diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/pgaccess.tcl postgresql-6.5.2/src/bin/pgaccess/pgaccess.tcl *** postgresql-6.5.1/src/bin/pgaccess/pgaccess.tcl Tue Mar 9 09:17:51 1999 --- postgresql-6.5.2/src/bin/pgaccess/pgaccess.tcl Wed Dec 31 19:00:00 1969 *************** *** 1,5044 **** - #!/bin/sh - # the next line restarts using wish \ - exec wish "$0" "$@" - - global widget; - - image create bitmap dnarw -data { - #define down_arrow_width 15 - #define down_arrow_height 15 - static char down_arrow_bits[] = { - 0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80, - 0x00,0x80,0xf8,0x8f,0xf0,0x87,0xe0,0x83, - 0xc0,0x81,0x80,0x80,0x00,0x80,0x00,0x80, - 0x00,0x80,0x00,0x80,0x00,0x80 - } - } - - proc {set_default_fonts} {} { - global pref tcl_platform - if {[string toupper $tcl_platform(platform)]=="WINDOWS"} { - set pref(font_normal) {"MS Sans Serif" 8} - set pref(font_bold) {"MS Sans Serif" 8 bold} - set pref(font_fix) {Terminal 8} - set pref(font_italic) {"MS Sans Serif" 8 italic} - } else { - set pref(font_normal) -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* - set pref(font_bold) -Adobe-Helvetica-Bold-R-Normal-*-*-120-*-*-*-*-* - set pref(font_italic) -Adobe-Helvetica-Medium-O-Normal-*-*-120-*-*-*-*-* - set pref(font_fix) -*-Clean-Medium-R-Normal-*-*-130-*-*-*-*-* - } - } - - proc {set_gui_pref} {} { - global pref - foreach wid {Label Text Button Listbox Checkbutton Radiobutton} { - option add *$wid.font $pref(font_normal) - } - option add *Entry.background #fefefe - option add *Entry.foreground #000000 - } - - proc {load_pref} {} { - global pref - set_default_fonts - set_gui_pref - set retval [catch {set fid [open "~/.pgaccessrc" r]}] - if {$retval} { - set pref(rows) 200 - set pref(tvfont) clean - set pref(autoload) 1 - set pref(lastdb) {} - set pref(lasthost) localhost - set pref(lastport) 5432 - set pref(username) {} - set pref(password) {} - } else { - while {![eof $fid]} { - set pair [gets $fid] - set pref([lindex $pair 0]) [lindex $pair 1] - } - close $fid - set_gui_pref - } - } - - proc init {argc argv} { - global dbc host pport tablist mw fldval activetab qlvar mwcount pref - load_pref - set host localhost - set pport 5432 - set dbc {} - set tablist [list Tables Queries Views Sequences Functions Reports Forms Scripts Users] - set activetab {} - set qlvar(yoffs) 360 - set qlvar(xoffs) 50 - set qlvar(reswidth) 150 - set qlvar(resfields) {} - set qlvar(ressort) {} - set qlvar(resreturn) {} - set qlvar(rescriteria) {} - set qlvar(restables) {} - set qlvar(critedit) 0 - set qlvar(links) {} - set qlvar(ntables) 0 - set qlvar(newtablename) {} - set mwcount 0 - } - - init $argc $argv - - proc {sqlw_display} {msg} { - if {![winfo exists .sqlw]} {return} - .sqlw.f.t insert end "$msg\n\n" - .sqlw.f.t see end - set nrlines [lindex [split [.sqlw.f.t index end] .] 0] - if {$nrlines>50} { - .sqlw.f.t delete 1.0 3.0 - } - } - - proc {wpg_exec} {db cmd} { - global pgsql - set pgsql(cmd) "never executed" - set pgsql(status) "no status yet" - set pgsql(errmsg) "no error message yet" - if {[catch { - sqlw_display $cmd - set pgsql(cmd) $cmd - set pgsql(res) [pg_exec $db $cmd] - set pgsql(status) [pg_result $pgsql(res) -status] - set pgsql(errmsg) [pg_result $pgsql(res) -error] - } tclerrmsg]} { - show_error "Tcl error executing pg_exec $cmd\n\n$tclerrmsg" - return 0 - } - return $pgsql(res) - } - - proc {wpg_select} {args} { - sqlw_display "[lindex $args 1]" - uplevel pg_select $args - } - - proc {anfw:add} {} { - global anfw pgsql tiw - if {$anfw(name)==""} { - show_error "Empty field name ?" - focus .anfw.e1 - return - } - if {$anfw(type)==""} { - show_error "No field type ?" - focus .anfw.e2 - return - } - if {![sql_exec quiet "alter table \"$tiw(tablename)\" add column \"$anfw(name)\" $anfw(type)"]} { - show_error "Cannot add column\n\nPostgreSQL error: $pgsql(errmsg)" - return - } - Window destroy .anfw - sql_exec quiet "update pga_layout set colnames=colnames || ' {$anfw(name)}', colwidth=colwidth || ' 150',nrcols=nrcols+1 where tablename='$tiw(tablename)'" - show_table_information $tiw(tablename) - } - - proc {add_new_field} {} { - global ntw - if {$ntw(fldname)==""} { - show_error "Enter a field name" - focus .nt.e2 - return - } - if {$ntw(fldtype)==""} { - show_error "The field type is not specified!" - return - } - if {($ntw(fldtype)=="varchar")&&($ntw(fldsize)=="")} { - focus .nt.e3 - show_error "You must specify field size!" - return - } - if {$ntw(fldsize)==""} then {set sup ""} else {set sup "($ntw(fldsize))"} - if {[regexp $ntw(fldtype) "varchartextdatetime"]} {set supc "'"} else {set supc ""} - if {$ntw(defaultval)==""} then {set sup2 ""} else {set sup2 " DEFAULT $supc$ntw(defaultval)$supc"} - # Checking for field name collision - set inspos end - for {set i 0} {$i<[.nt.lb size]} {incr i} { - set linie [.nt.lb get $i] - if {$ntw(fldname)==[string trim [string range $linie 2 33]]} { - if {[tk_messageBox -title Warning -parent .nt -message "There is another field with the same name: \"$ntw(fldname)\"!\n\nReplace it ?" -type yesno -default yes]=="no"} return - .nt.lb delete $i - set inspos $i - break - } - } - .nt.lb insert $inspos [format "%1s %-32.32s %-14s%-16s" $ntw(pk) $ntw(fldname) $ntw(fldtype)$sup $sup2$ntw(notnull)] - focus .nt.e2 - set ntw(fldname) {} - set ntw(fldsize) {} - set ntw(defaultval) {} - set ntw(pk) " " - } - - proc {create_table} {} { - global dbc ntw - if {$ntw(newtablename)==""} then { - show_error "You must supply a name for your table!" - focus .nt.etabn - return - } - if {[.nt.lb size]==0} then { - show_error "Your table has no fields!" - focus .nt.e2 - return - } - set fl {} - set pkf {} - foreach line [.nt.lb get 0 end] { - set fldname "\"[string trim [string range $line 2 33]]\"" - lappend fl "$fldname [string trim [string range $line 35 end]]" - if {[string range $line 0 0]=="*"} { - lappend pkf "$fldname" - } - } - set temp "create table \"$ntw(newtablename)\" ([join $fl ,]" - if {$ntw(constraint)!=""} then {set temp "$temp, constraint \"$ntw(constraint)\""} - if {$ntw(check)!=""} then {set temp "$temp check ($ntw(check))"} - if {[llength $pkf]>0} then {set temp "$temp, primary key([join $pkf ,])"} - set temp "$temp)" - if {$ntw(fathername)!=""} then {set temp "$temp inherits ($ntw(fathername))"} - cursor_clock - if {[sql_exec noquiet $temp]} { - Window destroy .nt - cmd_Tables - } - cursor_normal - } - - proc {cmd_Delete} {} { - global dbc activetab - if {$dbc==""} return; - set objtodelete [get_dwlb_Selection] - if {$objtodelete==""} return; - set temp {} - switch $activetab { - Tables { - if {[tk_messageBox -title "FINAL WARNING" -parent .dw -message "You are going to delete table:\n\n$objtodelete\n\nProceed ?" -type yesno -default no]=="yes"} { - sql_exec noquiet "drop table \"$objtodelete\"" - sql_exec quiet "delete from pga_layout where tablename='$objtodelete'" - cmd_Tables - } - } - Views { - if {[tk_messageBox -title "FINAL WARNING" -parent .dw -message "You are going to delete view:\n\n$objtodelete\n\nProceed ?" -type yesno -default no]=="yes"} { - sql_exec noquiet "drop view \"$objtodelete\"" - sql_exec quiet "delete from pga_layout where tablename='$objtodelete'" - cmd_Views - } - } - Queries { - if {[tk_messageBox -title "FINAL WARNING" -parent .dw -message "You are going to delete query:\n\n$objtodelete\n\nProceed ?" -type yesno -default no]=="yes"} { - sql_exec quiet "delete from pga_queries where queryname='$objtodelete'" - sql_exec quiet "delete from pga_layout where tablename='$objtodelete'" - cmd_Queries - } - } - Scripts { - if {[tk_messageBox -title "FINAL WARNING" -parent .dw -message "You are going to delete script:\n\n$objtodelete\n\nProceed ?" -type yesno -default no]=="yes"} { - sql_exec quiet "delete from pga_scripts where scriptname='$objtodelete'" - cmd_Scripts - } - } - Forms { - if {[tk_messageBox -title "FINAL WARNING" -parent .dw -message "You are going to delete form:\n\n$objtodelete\n\nProceed ?" -type yesno -default no]=="yes"} { - sql_exec quiet "delete from pga_forms where formname='$objtodelete'" - cmd_Forms - } - } - Sequences { - if {[tk_messageBox -title "FINAL WARNING" -parent .dw -message "You are going to delete sequence:\n\n$objtodelete\n\nProceed ?" -type yesno -default no]=="yes"} { - sql_exec quiet "drop sequence \"$objtodelete\"" - cmd_Sequences - } - } - Functions { - if {[tk_messageBox -title "FINAL WARNING" -parent .dw -message "You are going to delete function:\n\n$objtodelete\n\nProceed ?" -type yesno -default no]=="yes"} { - delete_function $objtodelete - cmd_Functions - } - } - Reports { - if {[tk_messageBox -title "FINAL WARNING" -parent .dw -message "You are going to delete report:\n\n$objtodelete\n\nProceed ?" -type yesno -default no]=="yes"} { - sql_exec noquiet "delete from pga_reports where reportname='$objtodelete'" - cmd_Reports - } - } - Users { - if {[tk_messageBox -title "FINAL WARNING" -parent .dw -message "You are going to delete user:\n\n$objtodelete\n\nProceed ?" -type yesno -default no]=="yes"} { - sql_exec noquiet "drop user \"$objtodelete\"" - cmd_Users - } - } - } - if {$temp==""} return; - } - - proc {cmd_Design} {} { - global dbc activetab rbvar uw - if {$dbc==""} return; - if {[.dw.lb curselection]==""} return; - set objname [.dw.lb get [.dw.lb curselection]] - set tablename $objname - switch $activetab { - Queries {open_query design} - Views {open_view_design} - Scripts {design_script $objname} - Forms {fd_load_form $objname design} - Reports { - Window show .rb - tkwait visibility .rb - rb_init - set rbvar(reportname) $objname - rb_load_report - set rbvar(justpreview) 0 - } - Users { - Window show .uw - tkwait visibility .uw - wm transient .uw .dw - wm title .uw "Design user" - set uw(username) $objname - set uw(password) {} ; set uw(verify) {} - pg_select $dbc "select *,date(valuntil) as valdata from pg_user where usename='$objname'" tup { - if {$tup(usesuper)=="t"} { - set uw(createuser) CREATEUSER - } else { - set uw(createuser) NOCREATEUSER - } - if {$tup(usecreatedb)=="t"} { - set uw(createdb) CREATEDB - } else { - set uw(createdb) NOCREATEDB - } - if {$tup(valuntil)!=""} { - set uw(valid) $tup(valdata) - } else { - set uw(valid) {} - } - } - .uw.e1 configure -state disabled - .uw.b1 configure -text Alter - focus .uw.e2 - } - } - } - - proc {cmd_Forms} {} { - global dbc - cursor_clock - .dw.lb delete 0 end - catch { - wpg_select $dbc "select formname from pga_forms order by formname" rec { - .dw.lb insert end $rec(formname) - } - } - cursor_normal - } - - proc {cmd_Functions} {} { - global dbc - set maxim 16384 - cursor_clock - catch { - wpg_select $dbc "select oid from pg_database where datname='template1'" rec { - set maxim $rec(oid) - } - } - .dw.lb delete 0 end - catch { - wpg_select $dbc "select proname from pg_proc where prolang=14 and oid>$maxim order by proname" rec { - .dw.lb insert end $rec(proname) - } - } - cursor_normal - } - - proc {cmd_Import_Export} {how} { - global dbc ie_tablename ie_filename activetab - if {$dbc==""} return; - Window show .iew - set ie_tablename {} - set ie_filename {} - set ie_delimiter {} - if {$activetab=="Tables"} { - set tn [get_dwlb_Selection] - set ie_tablename $tn - if {$tn!=""} {set ie_filename "$tn.txt"} - } - .iew.expbtn configure -text $how - } - - proc {cmd_Information} {} { - global dbc tiw activetab - if {$dbc==""} return; - if {$activetab!="Tables"} return; - show_table_information [get_dwlb_Selection] - } - - proc {cmd_New} {} { - global dbc activetab queryname queryoid cbv funcpar funcname funcret rbvar uw - if {$dbc==""} return; - switch $activetab { - Tables { - Window show .nt - focus .nt.etabn - } - Queries { - Window show .qb - set queryoid 0 - set queryname {} - set cbv 0 - .qb.cbv configure -state normal - } - Users { - Window show .uw - wm transient .uw .dw - set uw(username) {} - set uw(password) {} - set uw(createdb) NOCREATEDB - set uw(createuser) NOCREATEUSER - set uw(verify) {} - set uw(valid) {} - focus .uw.e1 - } - Views { - set queryoid 0 - set queryname {} - Window show .qb - set cbv 1 - .qb.cbv configure -state disabled - } - Sequences { - Window show .sqf - focus .sqf.e1 - } - Reports { - Window show .rb ; tkwait visibility .rb ; rb_init ; set rbvar(reportname) {} ; set rbvar(justpreview) 0 - focus .rb.e2 - } - Forms { - Window show .fd - Window show .fdtb - Window show .fdmenu - Window show .fda - fd_init - } - Scripts { - design_script {} - } - Functions { - Window show .fw - set funcname {} - set funcpar {} - set funcret {} - place .fw.okbtn -y 255 - .fw.okbtn configure -state normal - .fw.okbtn configure -text Define - .fw.text1 delete 1.0 end - focus .fw.e1 - } - } - } - - proc {cmd_Open} {} { - global dbc activetab - if {$dbc==""} return; - set objname [get_dwlb_Selection] - if {$objname==""} return; - switch $activetab { - Tables {open_table $objname} - Forms {open_form $objname} - Scripts {execute_script $objname} - Queries {open_query view} - Views {open_view} - Sequences {open_sequence $objname} - Functions {open_function $objname} - Reports {open_report $objname} - } - } - - proc {cmd_Preferences} {} { - Window show .pw - } - - proc {cmd_Queries} {} { - global dbc - .dw.lb delete 0 end - catch { - wpg_select $dbc "select queryname from pga_queries order by queryname" rec { - .dw.lb insert end $rec(queryname) - } - } - } - - proc {uw:create_user} {} { - global dbc uw - set uw(username) [string trim $uw(username)] - set uw(password) [string trim $uw(password)] - set uw(verify) [string trim $uw(verify)] - if {$uw(username)==""} { - show_error "User without name!" - focus .uw.e1 - return - } - if {$uw(password)!=$uw(verify)} { - show_error "Passwords do not match!" - set uw(password) {} ; set uw(verify) {} - focus .uw.e2 - return - } - set cmd "[.uw.b1 cget -text] user \"$uw(username)\"" - if {$uw(password)!=""} { - set cmd "$cmd WITH PASSWORD \"$uw(password)\" " - } - set cmd "$cmd $uw(createdb) $uw(createuser)" - if {$uw(valid)!=""} { - set cmd "$cmd VALID UNTIL '$uw(valid)'" - } - if {[sql_exec noquiet $cmd]} { - Window destroy .uw - cmd_Users - } - } - - proc {cmd_Rename} {} { - global dbc oldobjname activetab - if {$dbc==""} return; - if {$activetab=="Views"} return; - if {$activetab=="Sequences"} return; - if {$activetab=="Functions"} return; - if {$activetab=="Users"} return; - set temp [get_dwlb_Selection] - if {$temp==""} { - tk_messageBox -title Warning -parent .dw -message "Please select an object first !" - return; - } - set oldobjname $temp - Window show .rf - } - - proc {cmd_Reports} {} { - global dbc - cursor_clock - catch { - wpg_select $dbc "select reportname from pga_reports order by reportname" rec { - .dw.lb insert end "$rec(reportname)" - } - } - cursor_normal - } - - proc {cmd_Users} {} { - global dbc - cursor_clock - .dw.lb delete 0 end - catch { - wpg_select $dbc "select * from pg_user order by usename" rec { - .dw.lb insert end $rec(usename) - } - } - cursor_normal - } - - proc {cmd_Scripts} {} { - global dbc - cursor_clock - .dw.lb delete 0 end - catch { - wpg_select $dbc "select scriptname from pga_scripts order by scriptname" rec { - .dw.lb insert end $rec(scriptname) - } - } - cursor_normal - } - - proc {cmd_Sequences} {} { - global dbc - - cursor_clock - .dw.lb delete 0 end - catch { - wpg_select $dbc "select relname from pg_class where (relname not like 'pg_%') and (relkind='S') order by relname" rec { - .dw.lb insert end $rec(relname) - } - } - cursor_normal - } - - proc {cmd_Tables} {} { - global dbc - cursor_clock - .dw.lb delete 0 end - foreach tbl [get_tables] {.dw.lb insert end $tbl} - cursor_normal - } - - proc {cmd_Views} {} { - global dbc - cursor_clock - .dw.lb delete 0 end - catch { - wpg_select $dbc "select c.relname,count(c.relname) from pg_class C, pg_rewrite R where (relname !~ '^pg_') and (r.ev_class = C.oid) and (r.ev_type = '1') group by relname" rec { - if {$rec(count)!=0} { - set itsaview($rec(relname)) 1 - } - } - wpg_select $dbc "select relname from pg_class where (relname !~ '^pg_') and (relkind='r') and (relhasrules) order by relname" rec { - if {[info exists itsaview($rec(relname))]} { - .dw.lb insert end $rec(relname) - } - } - } - cursor_normal - } - - proc {create_drop_down} {base x y w} { - global pref - if {[winfo exists $base.ddf]} { - return - } - frame $base.ddf -borderwidth 1 -height 75 -relief raised -width 55 - listbox $base.ddf.lb -background #fefefe -foreground #000000 -selectbackground #c3c3c3 -borderwidth 1 -font $pref(font_normal) -highlightthickness 0 -selectborderwidth 0 -yscrollcommand [subst {$base.ddf.sb set}] - scrollbar $base.ddf.sb -borderwidth 1 -command [subst {$base.ddf.lb yview}] -highlightthickness 0 -orient vert - place $base.ddf -x $x -y $y -width $w -height 185 -anchor nw -bordermode ignore - place $base.ddf.lb -x 1 -y 1 -width [expr $w-18] -height 182 -anchor nw -bordermode ignore - place $base.ddf.sb -x [expr $w-15] -y 1 -width 14 -height 183 -anchor nw -bordermode ignore - } - - proc {cursor_normal} {} { - foreach wn [winfo children .] { - catch {$wn configure -cursor left_ptr} - } - update ; update idletasks - } - - proc {cursor_clock} {} { - foreach wn [winfo children .] { - catch {$wn configure -cursor watch} - } - update ; update idletasks - } - - proc {delete_function} {objname} { - global dbc - wpg_select $dbc "select proargtypes,pronargs from pg_proc where proname='$objname'" rec { - set funcpar $rec(proargtypes) - set nrpar $rec(pronargs) - } - set lispar {} - for {set i 0} {$i<$nrpar} {incr i} { - lappend lispar [get_pgtype [lindex $funcpar $i]] - } - set lispar [join $lispar ,] - sql_exec noquiet "drop function $objname ($lispar)" - } - - proc {design_script} {sname} { - global dbc scriptname - Window show .sw - set scriptname $sname - .sw.src delete 1.0 end - if {[string length $sname]==0} return; - wpg_select $dbc "select * from pga_scripts where scriptname='$sname'" rec { - .sw.src insert end $rec(scriptsource) - } - } - - proc {drag_it} {w x y} { - global draglocation - set dlo "" - catch { set dlo $draglocation(obj) } - if {$dlo != ""} { - set dx [expr $x - $draglocation(x)] - set dy [expr $y - $draglocation(y)] - $w move $dlo $dx $dy - set draglocation(x) $x - set draglocation(y) $y - } - } - - proc {drag_start} {wn w x y} { - global draglocation - catch {unset draglocation} - set object [$w find closest $x $y] - if {[lsearch [$wn.c gettags $object] movable]==-1} return; - $wn.c bind movable {} - set draglocation(obj) $object - set draglocation(x) $x - set draglocation(y) $y - set draglocation(start) $x - } - - proc {drag_stop} {wn w x y} { - global draglocation mw dbc - set dlo "" - catch { set dlo $draglocation(obj) } - if {$dlo != ""} { - $wn.c bind movable "$wn configure -cursor left_ptr" - $wn configure -cursor left_ptr - set ctr [get_tag_info $wn $draglocation(obj) v] - set diff [expr $x-$draglocation(start)] - if {$diff==0} return; - set newcw {} - for {set i 0} {$i<$mw($wn,colcount)} {incr i} { - if {$i==$ctr} { - lappend newcw [expr [lindex $mw($wn,colwidth) $i]+$diff] - } else { - lappend newcw [lindex $mw($wn,colwidth) $i] - } - } - set mw($wn,colwidth) $newcw - $wn.c itemconfigure c$ctr -width [expr [lindex $mw($wn,colwidth) $ctr]-5] - mw_draw_headers $wn - mw_draw_hgrid $wn - if {$mw($wn,crtrow)!=""} {mw_show_record $wn $mw($wn,crtrow)} - for {set i [expr $ctr+1]} {$i<$mw($wn,colcount)} {incr i} { - $wn.c move c$i $diff 0 - } - cursor_clock - sql_exec quiet "update pga_layout set colwidth='$mw($wn,colwidth)' where tablename='$mw($wn,layout_name)'" - cursor_normal - } - } - - proc {draw_tabs} {} { - global tablist activetab - set ypos 85 - foreach tab $tablist { - label .dw.tab$tab -borderwidth 1 -anchor w -relief raised -text $tab - place .dw.tab$tab -x 10 -y $ypos -height 25 -width 82 -anchor nw -bordermode ignore - lower .dw.tab$tab - bind .dw.tab$tab {tab_click %W} - incr ypos 25 - } - set activetab "" - } - - proc {execute_script} {scriptname} { - global dbc - set ss {} - wpg_select $dbc "select * from pga_scripts where scriptname='$scriptname'" rec { - set ss $rec(scriptsource) - } - if {[string length $ss] > 0} { - eval $ss - } - } - - proc {fd_change_coord} {} { - global fdvar fdobj - set i $fdvar(moveitemobj) - set c $fdobj($i,c) - set c [list $fdvar(c_left) $fdvar(c_top) [expr $fdvar(c_left)+$fdvar(c_width)] [expr $fdvar(c_top)+$fdvar(c_height)]] - set fdobj($i,c) $c - .fd.c delete o$i - fd_draw_object $i - fd_draw_hookers $i - } - - proc {fd_delete_object} {} { - global fdvar - set i $fdvar(moveitemobj) - .fd.c delete o$i - .fd.c delete hook - set j [lsearch $fdvar(objlist) $i] - set fdvar(objlist) [lreplace $fdvar(objlist) $j $j] - } - - proc {fd_draw_hook} {x y} { - .fd.c create rectangle [expr $x-2] [expr $y-2] [expr $x+2] [expr $y+2] -fill black -tags hook - } - - proc {fd_draw_hookers} {i} { - global fdobj - foreach {x1 y1 x2 y2} $fdobj($i,c) {} - .fd.c delete hook - fd_draw_hook $x1 $y1 - fd_draw_hook $x1 $y2 - fd_draw_hook $x2 $y1 - fd_draw_hook $x2 $y2 - } - - proc {fd_draw_object} {i} { - global fdvar fdobj pref - set c $fdobj($i,c) - foreach {x1 y1 x2 y2} $c {} - .fd.c delete o$i - switch $fdobj($i,t) { - button { - fd_draw_rectangle $x1 $y1 $x2 $y2 raised #a0a0a0 o$i - .fd.c create text [expr ($x1+$x2)/2] [expr ($y1+$y2)/2] -text $fdobj($i,l) -font $pref(font_normal) -tags o$i - } - text { - fd_draw_rectangle $x1 $y1 $x2 $y2 sunken #a0a0a0 o$i - } - entry { - fd_draw_rectangle $x1 $y1 $x2 $y2 sunken white o$i - } - label { - .fd.c create text $x1 $y1 -text $fdobj($i,l) -font $pref(font_normal) -anchor nw -tags o$i - } - checkbox { - fd_draw_rectangle [expr $x1+2] [expr $y1+5] [expr $x1+12] [expr $y1+15] raised #a0a0a0 o$i - .fd.c create text [expr $x1+20] [expr $y1+3] -text $fdobj($i,l) -anchor nw -font $pref(font_normal) -tags o$i - } - radio { - .fd.c create oval [expr $x1+4] [expr $y1+5] [expr $x1+14] [expr $y1+15] -fill white -tags o$i - .fd.c create text [expr $x1+24] [expr $y1+3] -text $fdobj($i,l) -anchor nw -font $pref(font_normal) -tags o$i - } - query { - .fd.c create oval $x1 $y1 [expr $x1+20] [expr $y1+20] -fill white -tags o$i - .fd.c create text [expr $x1+5] [expr $y1+4] -text Q -anchor nw -font $pref(font_normal) -tags o$i - } - listbox { - fd_draw_rectangle $x1 $y1 [expr $x2-12] $y2 sunken white o$i - fd_draw_rectangle [expr $x2-11] $y1 $x2 $y2 sunken gray o$i - .fd.c create line [expr $x2-5] $y1 $x2 [expr $y1+10] -fill #808080 -tags o$i - .fd.c create line [expr $x2-10] [expr $y1+9] $x2 [expr $y1+9] -fill #808080 -tags o$i - .fd.c create line [expr $x2-10] [expr $y1+9] [expr $x2-5] $y1 -fill white -tags o$i - .fd.c create line [expr $x2-5] $y2 $x2 [expr $y2-10] -fill #808080 -tags o$i - .fd.c create line [expr $x2-10] [expr $y2-9] $x2 [expr $y2-9] -fill white -tags o$i - .fd.c create line [expr $x2-10] [expr $y2-9] [expr $x2-5] $y2 -fill white -tags o$i - } - } - .fd.c raise hook - } - - proc {fd_draw_rectangle} {x1 y1 x2 y2 relief color tag} { - if {$relief=="raised"} { - set c1 white - set c2 #606060 - } else { - set c1 #606060 - set c2 white - } - if {$color != "none"} { - .fd.c create rectangle $x1 $y1 $x2 $y2 -outline "" -fill $color -tags $tag - } - .fd.c create line $x1 $y1 $x2 $y1 -fill $c1 -tags $tag - .fd.c create line $x1 $y1 $x1 $y2 -fill $c1 -tags $tag - .fd.c create line $x1 $y2 $x2 $y2 -fill $c2 -tags $tag - .fd.c create line $x2 $y1 $x2 [expr 1+$y2] -fill $c2 -tags $tag - } - - proc {fd_init} {} { - global fdvar fdobj - catch {unset fdvar} - catch {unset fdobj} - catch {.fd.c delete all} - set fdvar(forminame) {udf0} - set fdvar(formname) "New form" - set fdvar(objnum) 0 - set fdvar(objlist) {} - set fdvar(oper) none - set fdvar(tool) point - } - - proc {fd_item_click} {x y} { - global fdvar fdobj - set fdvar(oper) none - set fdvar(moveitemobj) {} - set il [.fd.c find overlapping $x $y $x $y] - if {[llength $il]==0} return - set tl [.fd.c gettags [lindex $il 0]] - set i [lsearch -glob $tl o*] - if {$i==-1} return - set objnum [string range [lindex $tl $i] 1 end] - set fdvar(moveitemobj) $objnum - set fdvar(moveitemx) $x - set fdvar(moveitemy) $y - set fdvar(oper) move - fd_show_attributes $objnum - fd_draw_hookers $objnum - } - - proc {fd_load_form} {name mode} { - global fdvar fdobj dbc - fd_init - set fdvar(formname) $name - if {$mode=="design"} { - Window show .fd - Window show .fdmenu - Window show .fda - Window show .fdtb - } - #set fid [open "$name.form" r] - #set info [gets $fid] - #close $fid - set res [wpg_exec $dbc "select * from pga_forms where formname='$fdvar(formname)'"] - set info [lindex [pg_result $res -getTuple 0] 1] - pg_result $res -clear - set fdvar(forminame) [lindex $info 0] - set fdvar(objnum) [lindex $info 1] - set fdvar(objlist) [lindex $info 2] - set fdvar(geometry) [lindex $info 3] - set j 0 - foreach objinfo [lrange $info 4 end] { - foreach {t n c x l v} $objinfo {} - set i [lindex $fdvar(objlist) $j] - set fdobj($i,t) $t - set fdobj($i,n) $n - set fdobj($i,c) $c - set fdobj($i,l) $l - set fdobj($i,x) $x - set fdobj($i,v) $v - if {$mode=="design"} {fd_draw_object $i} - incr j - } - if {$mode=="design"} {wm geometry .fd $fdvar(geometry)} - } - - proc {fd_mouse_down} {x y} { - global fdvar - set x [expr 3*int($x/3)] - set y [expr 3*int($y/3)] - set fdvar(xstart) $x - set fdvar(ystart) $y - if {$fdvar(tool)=="point"} { - fd_item_click $x $y - return - } - set fdvar(oper) draw - } - - proc {fd_mouse_move} {x y} { - global fdvar - #set fdvar(msg) "x=$x y=$y" - set x [expr 3*int($x/3)] - set y [expr 3*int($y/3)] - set oper "" - catch {set oper $fdvar(oper)} - if {$oper=="draw"} { - catch {.fd.c delete curdraw} - .fd.c create rectangle $fdvar(xstart) $fdvar(ystart) $x $y -tags curdraw - return - } - if {$oper=="move"} { - set dx [expr $x-$fdvar(moveitemx)] - set dy [expr $y-$fdvar(moveitemy)] - .fd.c move o$fdvar(moveitemobj) $dx $dy - .fd.c move hook $dx $dy - set fdvar(moveitemx) $x - set fdvar(moveitemy) $y - } - } - - proc {fd_mouse_up} {x y} { - global fdvar fdobj - set x [expr 3*int($x/3)] - set y [expr 3*int($y/3)] - if {$fdvar(oper)=="move"} { - set fdvar(moveitem) {} - set fdvar(oper) none - set oc $fdobj($fdvar(moveitemobj),c) - set dx [expr $x - $fdvar(xstart)] - set dy [expr $y - $fdvar(ystart)] - set newcoord [list [expr $dx+[lindex $oc 0]] [expr $dy+[lindex $oc 1]] [expr $dx+[lindex $oc 2]] [expr $dy+[lindex $oc 3]]] - set fdobj($fdvar(moveitemobj),c) $newcoord - fd_show_attributes $fdvar(moveitemobj) - fd_draw_hookers $fdvar(moveitemobj) - return - } - if {$fdvar(oper)!="draw"} return - set fdvar(oper) none - .fd.c delete curdraw - # Check for x2$y} break - } - incr row -1 - if {$y>[lindex $mw($wn,rowy) $mw($wn,last_rownum)]} {set row $mw($wn,last_rownum)} - if {$row<0} return - set mw($wn,row_edited) $row - set mw($wn,crtrow) $row - mw_show_record $wn $row - if {$mw($wn,errorsavingnew)} return - # Determining column - set posx [expr -$mw($wn,leftoffset)] - set col 0 - foreach cw $mw($wn,colwidth) { - incr posx [expr $cw+2] - if {$x<$posx} break - incr col - } - set itlist [$wn.c find withtag r$row] - foreach item $itlist { - if {[get_tag_info $wn $item c]==$col} { - mw_start_edit $wn $item $x $y - break - } - } - } - - proc {mw_delete_record} {wn} { - global dbc mw - if {!$mw($wn,updatable)} return; - if {![mw_exit_edit $wn]} return; - set taglist [$wn.c gettags hili] - if {[llength $taglist]==0} return; - set rowtag [lindex $taglist [lsearch -regexp $taglist "^r"]] - set row [string range $rowtag 1 end] - set oid [lindex $mw($wn,keylist) $row] - if {[tk_messageBox -title "FINAL WARNING" -icon question -parent $wn -message "Delete current record ?" -type yesno -default no]=="no"} return - if {[sql_exec noquiet "delete from \"$mw($wn,tablename)\" where oid=$oid"]} { - $wn.c delete hili - } - } - - proc {mw_draw_headers} {wn} { - global mw pref - $wn.c delete header - set posx [expr 5-$mw($wn,leftoffset)] - for {set i 0} {$i<$mw($wn,colcount)} {incr i} { - set xf [expr $posx+[lindex $mw($wn,colwidth) $i]] - $wn.c create rectangle $posx 1 $xf 22 -fill #CCCCCC -outline "" -width 0 -tags header - $wn.c create text [expr $posx+[lindex $mw($wn,colwidth) $i]*1.0/2] 14 -text [lindex $mw($wn,colnames) $i] -tags header -fill navy -font $pref(font_normal) - $wn.c create line $posx 22 [expr $xf-1] 22 -fill #AAAAAA -tags header - $wn.c create line [expr $xf-1] 5 [expr $xf-1] 22 -fill #AAAAAA -tags header - $wn.c create line [expr $xf+1] 5 [expr $xf+1] 22 -fill white -tags header - $wn.c create line $xf -15000 $xf 15000 -fill #CCCCCC -tags [subst {header movable v$i}] - set posx [expr $xf+2] - } - set mw($wn,r_edge) $posx - $wn.c bind movable "drag_start $wn %W %x %y" - $wn.c bind movable {drag_it %W %x %y} - $wn.c bind movable "drag_stop $wn %W %x %y" - $wn.c bind movable "$wn configure -cursor left_side" - $wn.c bind movable "$wn configure -cursor left_ptr" - } - - proc {mw_draw_hgrid} {wn} { - global mw - $wn.c delete hgrid - set posx 10 - for {set j 0} {$j<$mw($wn,colcount)} {incr j} { - set ledge($j) $posx - incr posx [expr [lindex $mw($wn,colwidth) $j]+2] - set textwidth($j) [expr [lindex $mw($wn,colwidth) $j]-5] - } - incr posx -6 - for {set i 0} {$i<$mw($wn,nrecs)} {incr i} { - $wn.c create line [expr -$mw($wn,leftoffset)] [lindex $mw($wn,rowy) [expr $i+1]] [expr $posx-$mw($wn,leftoffset)] [lindex $mw($wn,rowy) [expr $i+1]] -fill gray -tags [subst {hgrid g$i}] - } - if {$mw($wn,updatable)} { - set i $mw($wn,nrecs) - set posy [expr 14+[lindex $mw($wn,rowy) $mw($wn,nrecs)]] - $wn.c create line [expr -$mw($wn,leftoffset)] $posy [expr $posx-$mw($wn,leftoffset)] $posy -fill gray -tags [subst {hgrid g$i}] - } - } - - proc {mw_draw_new_record} {wn} { - global mw pref - set posx [expr 10-$mw($wn,leftoffset)] - set posy [lindex $mw($wn,rowy) $mw($wn,last_rownum)] - if {$pref(tvfont)=="helv"} { - set tvfont $pref(font_normal) - } else { - set tvfont $pref(font_fix) - } - if {$mw($wn,updatable)} { - for {set j 0} {$j<$mw($wn,colcount)} {incr j} { - $wn.c create text $posx $posy -text * -tags [subst {r$mw($wn,nrecs) c$j q new unt}] -anchor nw -font $tvfont -width [expr [lindex $mw($wn,colwidth) $j]-5] - incr posx [expr [lindex $mw($wn,colwidth) $j]+2] - } - incr posy 14 - $wn.c create line [expr -$mw($wn,leftoffset)] $posy [expr $mw($wn,r_edge)-$mw($wn,leftoffset)] $posy -fill gray -tags [subst {hgrid g$mw($wn,nrecs)}] - } - } - - proc {mw_edit_text} {wn c k} { - global mw - set bbin [$wn.c bbox r$mw($wn,row_edited)] - switch $k { - BackSpace { set dp [expr [$wn.c index $mw($wn,id_edited) insert]-1];if {$dp>=0} {$wn.c dchars $mw($wn,id_edited) $dp $dp; set mw($wn,dirtyrec) 1}} - Home {$wn.c icursor $mw($wn,id_edited) 0} - End {$wn.c icursor $mw($wn,id_edited) end} - Left {$wn.c icursor $mw($wn,id_edited) [expr [$wn.c index $mw($wn,id_edited) insert]-1]} - Delete {} - Right {$wn.c icursor $mw($wn,id_edited) [expr [$wn.c index $mw($wn,id_edited) insert]+1]} - Return {if {[mw_exit_edit $wn]} {$wn.c focus {}}} - Escape {set mw($wn,dirtyrec) 0; $wn.c itemconfigure $mw($wn,id_edited) -text $mw($wn,text_initial_value); $wn.c focus {}} - default {if {[string compare $c " "]>-1} {$wn.c insert $mw($wn,id_edited) insert $c;set mw($wn,dirtyrec) 1}} - } - set bbout [$wn.c bbox r$mw($wn,row_edited)] - set dy [expr [lindex $bbout 3]-[lindex $bbin 3]] - if {$dy==0} return - set re $mw($wn,row_edited) - $wn.c move g$re 0 $dy - for {set i [expr 1+$re]} {$i<=$mw($wn,nrecs)} {incr i} { - $wn.c move r$i 0 $dy - $wn.c move g$i 0 $dy - set rh [lindex $mw($wn,rowy) $i] - incr rh $dy - set mw($wn,rowy) [lreplace $mw($wn,rowy) $i $i $rh] - } - mw_show_record $wn $mw($wn,row_edited) - # Delete is trapped by window interpreted as record delete - # Delete {$wn.c dchars $mw($wn,id_edited) insert insert; set mw($wn,dirtyrec) 1} - } - - proc {mw_exit_edit} {wn} { - global mw dbc - # User has edited the text ? - if {!$mw($wn,dirtyrec)} { - # No, unfocus text - $wn.c focus {} - # For restoring * to the new record position - if {$mw($wn,id_edited)!=""} { - if {[lsearch [$wn.c gettags $mw($wn,id_edited)] new]!=-1} { - $wn.c itemconfigure $mw($wn,id_edited) -text $mw($wn,text_initial_value) - } - } - set mw($wn,id_edited) {};set mw($wn,text_initial_value) {} - return 1 - } - # Trimming the spaces - set fldval [string trim [$wn.c itemcget $mw($wn,id_edited) -text]] - $wn.c itemconfigure $mw($wn,id_edited) -text $fldval - if {[string compare $mw($wn,text_initial_value) $fldval]==0} { - set mw($wn,dirtyrec) 0 - $wn.c focus {} - set mw($wn,id_edited) {};set mw($wn,text_initial_value) {} - return 1 - } - cursor_clock - set oid [lindex $mw($wn,keylist) $mw($wn,row_edited)] - set fld [lindex $mw($wn,colnames) [get_tag_info $wn $mw($wn,id_edited) c]] - set fillcolor black - if {$mw($wn,row_edited)==$mw($wn,last_rownum)} { - set fillcolor red - set sfp [lsearch $mw($wn,newrec_fields) "\"$fld\""] - if {$sfp>-1} { - set mw($wn,newrec_fields) [lreplace $mw($wn,newrec_fields) $sfp $sfp] - set mw($wn,newrec_values) [lreplace $mw($wn,newrec_values) $sfp $sfp] - } - lappend mw($wn,newrec_fields) "\"$fld\"" - lappend mw($wn,newrec_values) '$fldval' - # Remove the untouched tag from the object - $wn.c dtag $mw($wn,id_edited) unt - $wn.c itemconfigure $mw($wn,id_edited) -fill red - set retval 1 - } else { - set mw($wn,msg) "Updating record ..." - after 1000 "set mw($wn,msg) {}" - regsub -all ' $fldval \\' sqlfldval - set retval [sql_exec noquiet "update \"$mw($wn,tablename)\" set \"$fld\"='$sqlfldval' where oid=$oid"] - } - cursor_normal - if {!$retval} { - set mw($wn,msg) "" - focus $wn.c - return 0 - } - set mw($wn,dirtyrec) 0 - $wn.c focus {} - set mw($wn,id_edited) {};set mw($wn,text_initial_value) {} - return 1 - } - - proc {mw_load_layout} {wn layoutname} { - global dbc mw - cursor_clock - set mw($wn,layout_name) $layoutname - catch {unset mw($wn,colcount) mw($wn,colnames) mw($wn,colwidth)} - set mw($wn,layout_found) 0 - set pgres [wpg_exec $dbc "select *,oid from pga_layout where tablename='$layoutname' order by oid desc"] - set pgs [pg_result $pgres -status] - if {$pgs!="PGRES_TUPLES_OK"} { - # Probably table pga_layout isn't yet defined - sql_exec noquiet "create table pga_layout (tablename varchar(64),nrcols int2,colnames text,colwidth text)" - sql_exec quiet "grant ALL on pga_layout to PUBLIC" - } else { - set nrlay [pg_result $pgres -numTuples] - if {$nrlay>=1} { - set layoutinfo [pg_result $pgres -getTuple 0] - set mw($wn,colcount) [lindex $layoutinfo 1] - set mw($wn,colnames) [lindex $layoutinfo 2] - set mw($wn,colwidth) [lindex $layoutinfo 3] - set goodoid [lindex $layoutinfo 4] - set mw($wn,layout_found) 1 - } - if {$nrlay>1} { - show_error "Multiple ($nrlay) layout info found\n\nPlease report the bug!" - sql_exec quiet "delete from pga_layout where (tablename='$mw($wn,tablename)') and (oid<>$goodoid)" - } - } - pg_result $pgres -clear - } - - proc {mw_pan_left} {wn } { - global mw - if {![mw_exit_edit $wn]} return; - if {$mw($wn,leftcol)==[expr $mw($wn,colcount)-1]} return; - set diff [expr 2+[lindex $mw($wn,colwidth) $mw($wn,leftcol)]] - incr mw($wn,leftcol) - incr mw($wn,leftoffset) $diff - $wn.c move header -$diff 0 - $wn.c move q -$diff 0 - $wn.c move hgrid -$diff 0 - } - - proc {mw_pan_right} {wn} { - global mw - if {![mw_exit_edit $wn]} return; - if {$mw($wn,leftcol)==0} return; - incr mw($wn,leftcol) -1 - set diff [expr 2+[lindex $mw($wn,colwidth) $mw($wn,leftcol)]] - incr mw($wn,leftoffset) -$diff - $wn.c move header $diff 0 - $wn.c move q $diff 0 - $wn.c move hgrid $diff 0 - } - - proc {mw_save_new_record} {wn} { - global dbc mw - if {![mw_exit_edit $wn]} {return 0} - if {$mw($wn,newrec_fields)==""} {return 1} - set mw($wn,msg) "Saving new record ..." - after 1000 "set mw($wn,msg) {}" - set pgres [wpg_exec $dbc "insert into \"$mw($wn,tablename)\" ([join $mw($wn,newrec_fields) ,]) values ([join $mw($wn,newrec_values) ,])" ] - if {[pg_result $pgres -status]!="PGRES_COMMAND_OK"} { - set errmsg [pg_result $pgres -error] - show_error "Error inserting new record\n\n$errmsg" - return 0 - } - set oid [pg_result $pgres -oid] - lappend mw($wn,keylist) $oid - pg_result $pgres -clear - # Get bounds of the last record - set lrbb [$wn.c bbox new] - lappend mw($wn,rowy) [lindex $lrbb 3] - $wn.c itemconfigure new -fill black - $wn.c dtag q new - # Replace * from untouched new row elements with " " - foreach item [$wn.c find withtag unt] { - $wn.c itemconfigure $item -text " " - } - $wn.c dtag q unt - incr mw($wn,last_rownum) - incr mw($wn,nrecs) - mw_draw_new_record $wn - set mw($wn,newrec_fields) {} - set mw($wn,newrec_values) {} - return 1 - } - - proc {mw_scroll_window} {wn par1 args} { - global mw - if {![mw_exit_edit $wn]} return; - if {$par1=="scroll"} { - set newtop $mw($wn,toprec) - if {[lindex $args 1]=="units"} { - incr newtop [lindex $args 0] - } else { - incr newtop [expr [lindex $args 0]*25] - if {$newtop<0} {set newtop 0} - if {$newtop>=[expr $mw($wn,nrecs)-1]} {set newtop [expr $mw($wn,nrecs)-1]} - } - } elseif {$par1=="moveto"} { - set newtop [expr int([lindex $args 0]*$mw($wn,nrecs))] - } else { - return - } - if {$newtop<0} return; - if {$newtop>=[expr $mw($wn,nrecs)-1]} return; - set dy [expr [lindex $mw($wn,rowy) $mw($wn,toprec)]-[lindex $mw($wn,rowy) $newtop]] - $wn.c move q 0 $dy - $wn.c move hgrid 0 $dy - set newrowy {} - foreach y $mw($wn,rowy) {lappend newrowy [expr $y+$dy]} - set mw($wn,rowy) $newrowy - set mw($wn,toprec) $newtop - mw_set_scrollbar $wn - } - - proc {mw_select_records} {wn sql} { - global dbc field mw pgsql pref - set mw($wn,newrec_fields) {} - set mw($wn,newrec_values) {} - if {![mw_exit_edit $wn]} return; - $wn.c delete q - $wn.c delete header - $wn.c delete hgrid - $wn.c delete new - set mw($wn,leftcol) 0 - set mw($wn,leftoffset) 0 - set mw($wn,crtrow) {} - set mw($wn,msg) "Accessing data. Please wait ..." - $wn.f1.b1 configure -state disabled - cursor_clock - set is_error 1 - if {[sql_exec noquiet "BEGIN"]} { - if {[sql_exec noquiet "declare mycursor cursor for $sql"]} { - set pgres [wpg_exec $dbc "fetch $pref(rows) in mycursor"] - if {$pgsql(status)=="PGRES_TUPLES_OK"} { - set is_error 0 - } - } - } - if {$is_error} { - sql_exec quiet "END" - set mw($wn,msg) {} - $wn.f1.b1 configure -state normal - cursor_normal - set mw($wn,msg) "Error executing : $sql" - return - } - if {$mw($wn,updatable)} then {set shift 1} else {set shift 0} - # - # checking at least the numer of fields - set attrlist [pg_result $pgres -lAttributes] - if {$mw($wn,layout_found)} then { - if { ($mw($wn,colcount) != [expr [llength $attrlist]-$shift]) || - ($mw($wn,colcount) != [llength $mw($wn,colnames)]) || - ($mw($wn,colcount) != [llength $mw($wn,colwidth)]) } then { - # No. of columns don't match, something is wrong - # tk_messageBox -title Information -message "Layout info changed !\nRescanning..." - set mw($wn,layout_found) 0 - sql_exec quiet "delete from pga_layout where tablename='$mw($wn,layout_name)'" - } - } - # Always take the col. names from the result - set mw($wn,colcount) [llength $attrlist] - if {$mw($wn,updatable)} then {incr mw($wn,colcount) -1} - set mw($wn,colnames) {} - # In defmw($wn,colwidth) prepare mw($wn,colwidth) (in case that not layout_found) - set defmw($wn,colwidth) {} - for {set i 0} {$i<$mw($wn,colcount)} {incr i} { - lappend mw($wn,colnames) [lindex [lindex $attrlist [expr {$i+$shift}]] 0] - lappend defmw($wn,colwidth) 150 - } - if {!$mw($wn,layout_found)} { - set mw($wn,colwidth) $defmw($wn,colwidth) - sql_exec quiet "insert into pga_layout values ('$mw($wn,layout_name)',$mw($wn,colcount),'$mw($wn,colnames)','$mw($wn,colwidth)')" - set mw($wn,layout_found) 1 - } - set mw($wn,nrecs) [pg_result $pgres -numTuples] - if {$mw($wn,nrecs)>$pref(rows)} { - set mw($wn,msg) "Only first $pref(rows) records from $mw($wn,nrecs) have been loaded" - set mw($wn,nrecs) $pref(rows) - } - set tagoid {} - if {$pref(tvfont)=="helv"} { - set tvfont $pref(font_normal) - } else { - set tvfont $pref(font_fix) - } - # Computing column's left edge - set posx 10 - for {set j 0} {$j<$mw($wn,colcount)} {incr j} { - set ledge($j) $posx - incr posx [expr {[lindex $mw($wn,colwidth) $j]+2}] - set textwidth($j) [expr {[lindex $mw($wn,colwidth) $j]-5}] - } - incr posx -6 - set posy 24 - mw_draw_headers $wn - set mw($wn,updatekey) oid - set mw($wn,keylist) {} - set mw($wn,rowy) {24} - set mw($wn,msg) "Loading maximum $pref(rows) records ..." - set wupdatable $mw($wn,updatable) - for {set i 0} {$i<$mw($wn,nrecs)} {incr i} { - set curtup [pg_result $pgres -getTuple $i] - if {$wupdatable} then {lappend mw($wn,keylist) [lindex $curtup 0]} - for {set j 0} {$j<$mw($wn,colcount)} {incr j} { - $wn.c create text $ledge($j) $posy -text [lindex $curtup [expr {$j+$shift}]] -tags [subst {r$i c$j q}] -anchor nw -font $tvfont -width $textwidth($j) -fill black - } - set bb [$wn.c bbox r$i] - incr posy [expr {[lindex $bb 3]-[lindex $bb 1]}] - lappend mw($wn,rowy) $posy - $wn.c create line 0 [lindex $bb 3] $posx [lindex $bb 3] -fill gray -tags [subst {hgrid g$i}] - if {$i==25} {update; update idletasks} - } - after 3000 "set mw($wn,msg) {}" - set mw($wn,last_rownum) $i - # Defining position for input data - mw_draw_new_record $wn - pg_result $pgres -clear - sql_exec quiet "END" - set mw($wn,toprec) 0 - mw_set_scrollbar $wn - if {$mw($wn,updatable)} then { - $wn.c bind q "mw_edit_text $wn %A %K" - } else { - $wn.c bind q {} - } - set mw($wn,dirtyrec) 0 - $wn.c raise header - $wn.f1.b1 configure -state normal - cursor_normal - } - - proc {mw_set_scrollbar} {wn} { - global mw - if {$mw($wn,nrecs)==0} return; - $wn.sb set [expr $mw($wn,toprec)*1.0/$mw($wn,nrecs)] [expr ($mw($wn,toprec)+27.0)/$mw($wn,nrecs)] - } - - proc {mw_reload} {wn} { - global mw - set nq $mw($wn,query) - if {($mw($wn,isaquery)) && ("$mw($wn,filter)$mw($wn,sortfield)"!="")} { - show_error "Sorting and filtering not (yet) available from queries!\n\nPlease enter them in the query definition!" - set mw($wn,sortfield) {} - set mw($wn,filter) {} - } else { - if {$mw($wn,filter)!=""} { - set nq "$mw($wn,query) where ($mw($wn,filter))" - } else { - set nq $mw($wn,query) - } - if {$mw($wn,sortfield)!=""} { - set nq "$nq order by $mw($wn,sortfield)" - } - } - if {[mw_save_new_record $wn]} {mw_select_records $wn $nq} - } - - proc {mw_show_record} {wn row} { - global mw - set mw($wn,errorsavingnew) 0 - if {$mw($wn,newrec_fields)!=""} { - if {$row!=$mw($wn,last_rownum)} { - if {![mw_save_new_record $wn]} { - set mw($wn,errorsavingnew) 1 - return - } - } - } - set y1 [lindex $mw($wn,rowy) $row] - set y2 [lindex $mw($wn,rowy) [expr $row+1]] - if {$y2==""} {set y2 [expr $y1+14]} - $wn.c dtag hili hili - $wn.c addtag hili withtag r$row - # Making a rectangle arround the record - set x 3 - foreach wi $mw($wn,colwidth) {incr x [expr $wi+2]} - $wn.c delete crtrec - $wn.c create rectangle [expr -1-$mw($wn,leftoffset)] $y1 [expr $x-$mw($wn,leftoffset)] $y2 -fill #EEEEEE -outline {} -tags {q crtrec} - $wn.c lower crtrec - } - - proc {mw_start_edit} {wn id x y} { - global mw - if {!$mw($wn,updatable)} return - set mw($wn,id_edited) $id - set mw($wn,dirtyrec) 0 - set mw($wn,text_initial_value) [$wn.c itemcget $id -text] - focus $wn.c - $wn.c focus $id - $wn.c icursor $id @$x,$y - if {$mw($wn,row_edited)==$mw($wn,nrecs)} { - if {[$wn.c itemcget $id -text]=="*"} { - $wn.c itemconfigure $id -text "" - $wn.c icursor $id 0 - } - } - } - - proc {open_database} {} { - global dbc host pport dbname username password newusername newpassword sdbname newdbname newhost newpport pref pgsql - cursor_clock - if {$newusername!=""} { - set connres [catch {set newdbc [pg_connect -conninfo "host=$newhost port=$newpport dbname=$newdbname user=$newusername password=$newpassword"]} msg] - } else { - set connres [catch {set newdbc [pg_connect $newdbname -host $newhost -port $newpport]} msg] - } - if {$connres} { - cursor_normal - show_error "Error trying to connect to database \"$newdbname\" on host $newhost\n\nPostgreSQL error message: $msg" - return $msg - } else { - catch {pg_disconnect $dbc} - set dbc $newdbc - set host $newhost - set pport $newpport - set dbname $newdbname - set username $newusername - set password $newpassword - set sdbname $dbname - set pref(lastdb) $dbname - set pref(lasthost) $host - set pref(lastport) $pport - set pref(lastusername) $username - save_pref - catch {cursor_normal ; Window hide .dbod} - tab_click .dw.tabTables - # Check for pga_ tables - foreach {table structure} { pga_queries {queryname varchar(64),querytype char(1),querycommand text} pga_forms {formname varchar(64),formsource text} pga_scripts {scriptname varchar(64),scriptsource text} pga_reports {reportname varchar(64),reportsource text,reportbody text,reportprocs text,reportoptions text}} { - set pgres [wpg_exec $dbc "select relname from pg_class where relname='$table'"] - if {$pgsql(status)!="PGRES_TUPLES_OK"} { - show_error "FATAL ERROR searching for PgAccess system tables : $pgsql(errmsg)\nStatus:$pgsql(status)" - catch {pg_disconnect $dbc} - exit - } elseif {[pg_result $pgres -numTuples]==0} { - pg_result $pgres -clear - sql_exec quiet "create table $table ($structure)" - sql_exec quiet "grant ALL on $table to PUBLIC" - } - catch {pg_result $pgres -clear} - } - # searching for autoexec script - wpg_select $dbc "select * from pga_scripts where scriptname ~* '^autoexec$'" recd { - eval $recd(scriptsource) - } - return "" - } - } - - proc {open_form} {formname} { - fd_load_form $formname run - fd_test - } - - proc {open_function} {objname} { - global dbc funcname funcpar funcret - Window show .fw - place .fw.okbtn -y 400 - .fw.okbtn configure -state disabled - .fw.text1 delete 1.0 end - wpg_select $dbc "select * from pg_proc where proname='$objname'" rec { - set funcname $objname - set temppar $rec(proargtypes) - set funcret [get_pgtype $rec(prorettype)] - set funcnrp $rec(pronargs) - .fw.text1 insert end $rec(prosrc) - } - set funcpar {} - for {set i 0} {$i<$funcnrp} {incr i} { - lappend funcpar [get_pgtype [lindex $temppar $i]] - } - set funcpar [join $funcpar ,] - } - - proc {open_report} {objname} { - global dbc rbvar - Window show .rb - #tkwait visibility .rb - Window hide .rb - Window show .rpv - rb_init - set rbvar(reportname) $objname - rb_load_report - tkwait visibility .rpv - set rbvar(justpreview) 1 - rb_preview - } - - proc {open_view_design} {} { - global dbc cbv queryname - set viewname [.dw.lb get [.dw.lb curselection]] - set vd {} - wpg_select $dbc "select pg_get_viewdef('$viewname')as vd" tup { - set vd $tup(vd) - } - if {$vd==""} { - show_error "Error retrieving view definition for '$viewname'!" - return - } - Window show .qb - .qb.text1 delete 0.0 end - .qb.text1 insert end $vd - set cbv 1 - .qb.cbv configure -state disabled - set queryname $viewname - } - - proc {open_query} {how} { - global dbc queryname mw queryoid - - if {[.dw.lb curselection]==""} return; - set queryname [.dw.lb get [.dw.lb curselection]] - if {[set pgres [wpg_exec $dbc "select querycommand,querytype,oid from pga_queries where queryname='$queryname'"]]==0} then { - show_error "Error retrieving query definition" - return - } - if {[pg_result $pgres -numTuples]==0} { - show_error "Query $queryname was not found!" - pg_result $pgres -clear - return - } - set tuple [pg_result $pgres -getTuple 0] - set qcmd [lindex $tuple 0] - set qtype [lindex $tuple 1] - set queryoid [lindex $tuple 2] - pg_result $pgres -clear - if {$how=="design"} { - Window show .qb - .qb.text1 delete 0.0 end - .qb.text1 insert end $qcmd - } else { - if {$qtype=="S"} then { - set wn [mw_get_new_name] - set mw($wn,query) [subst $qcmd] - set mw($wn,updatable) 0 - set mw($wn,isaquery) 1 - mw_create_window - wm title $wn "Query result: $queryname" - mw_load_layout $wn $queryname - mw_select_records $wn $mw($wn,query) - } else { - set answ [tk_messageBox -title Warning -type yesno -message "This query is an action query!\n\n[string range $qcmd 0 30] ...\n\nDo you want to execute it?"] - if {$answ} { - if {[sql_exec noquiet $qcmd]} { - tk_messageBox -title Information -message "Your query has been executed without error!" - } - } - } - } - } - - proc {mw_free_variables} {wn} { - global mw - foreach varname [array names mw $wn,*] { - unset mw($varname) - } - } - - proc {mw_get_new_name} {} { - global mw mwcount - incr mwcount - set wn .mw$mwcount - set mw($wn,dirtyrec) 0 - set mw($wn,id_edited) {} - set mw($wn,filter) {} - set mw($wn,sortfield) {} - return .mw$mwcount - } - - proc {open_sequence} {objname} { - global dbc seq_name seq_inc seq_start seq_minval seq_maxval - Window show .sqf - set flag 1 - wpg_select $dbc "select * from \"$objname\"" rec { - set flag 0 - set seq_name $objname - set seq_inc $rec(increment_by) - set seq_start $rec(last_value) - .sqf.l3 configure -text "Last value" - set seq_minval $rec(min_value) - set seq_maxval $rec(max_value) - .sqf.defbtn configure -state disabled - place .sqf.defbtn -x 40 -y 300 - } - if {$flag} { - show_error "Sequence $objname not found!" - } else { - for {set i 1} {$i<6} {incr i} { - .sqf.e$i configure -state disabled - } - focus .sqf.closebtn - } - } - - proc {open_table} {objname} { - global mw sortfield filter - set sortfield {} - set filter {} - set wn [mw_get_new_name] - mw_create_window - set mw($wn,tablename) $objname - mw_load_layout $wn $objname - set mw($wn,query) "select oid,\"$objname\".* from \"$objname\"" - set mw($wn,updatable) 1 - set mw($wn,isaquery) 0 - mw_select_records $wn $mw($wn,query) - catch {wm title $wn "Table viewer : $objname"} - } - - proc {open_view} {} { - global mw - set vn [get_dwlb_Selection] - if {$vn==""} return; - set wn [mw_get_new_name] - mw_create_window - set mw($wn,query) "select * from \"$vn\"" - set mw($wn,isaquery) 0 - set mw($wn,updatable) 0 - mw_load_layout $wn $vn - mw_select_records $wn $mw($wn,query) - } - - proc {rename_column} {} { - global dbc tiw - if {[string length [string trim $tiw(new_cn)]]==0} { - show_error "Field name not entered!" - return - } - set old_name [string trim [string range $tiw(old_cn) 0 31]] - set tiw(new_cn) [string trim $tiw(new_cn)] - if {$old_name == $tiw(new_cn)} { - show_error "New name is the same as the old one !" - return - } - foreach line [.tiw.lb get 0 end] { - if {[string trim [string range $line 0 31]]==$tiw(new_cn)} { - show_error "Colum name \"$tiw(new_cn)\" already exists in this table!" - return - } - } - if {[sql_exec noquiet "alter table \"$tiw(tablename)\" rename column \"$old_name\" to \"$tiw(new_cn)\""]} { - set temp $tiw(col_id) - .tiw.lb delete $temp $temp - .tiw.lb insert $temp "[format %-32.32s $tiw(new_cn)] [string range $tiw(old_cn) 33 end]" - Window destroy .rcw - } - } - - proc {parameter} {msg} { - global gpw - Window show .gpw - focus .gpw.e1 - set gpw(var) "" - set gpw(flag) 0 - set gpw(msg) $msg - bind .gpw "set gpw(flag) 1" - grab .gpw - tkwait variable gpw(flag) - if {$gpw(result)} { - return $gpw(var) - } else { - return "" - } - } - - proc {ql_add_new_table} {} { - global qlvar dbc - - if {$qlvar(newtablename)==""} return - set fldlist {} - cursor_clock - wpg_select $dbc "select attnum,attname from pg_class,pg_attribute where (pg_class.relname='$qlvar(newtablename)') and (pg_class.oid=pg_attribute.attrelid) and (attnum>0) order by attnum" rec { - lappend fldlist $rec(attname) - } - cursor_normal - if {$fldlist==""} { - show_error "Table $qlvar(newtablename) not found!" - return - } - set qlvar(tablename$qlvar(ntables)) $qlvar(newtablename) - set qlvar(tablestruct$qlvar(ntables)) $fldlist - set qlvar(tablealias$qlvar(ntables)) "t$qlvar(ntables)" - set qlvar(ali_t$qlvar(ntables)) $qlvar(newtablename) - incr qlvar(ntables) - if {$qlvar(ntables)==1} { - ql_draw_lizzard - } else { - ql_draw_table [expr $qlvar(ntables)-1] - } - set qlvar(newtablename) {} - focus .ql.entt - } - - proc {ql_compute_sql} {} { - global qlvar - set sqlcmd "select " - #rjr 8Mar1999 added logical return state for results - for {set i 0} {$i<[llength $qlvar(resfields)]} {incr i} { - if {[lindex $qlvar(resreturn) $i]} { - if {$sqlcmd!="select "} {set sqlcmd "$sqlcmd, "} - set sqlcmd "$sqlcmd[lindex $qlvar(restables) $i].\"[lindex $qlvar(resfields) $i]\"" - } - } - set tables {} - for {set i 0} {$i<$qlvar(ntables)} {incr i} { - set thename {} - catch {set thename $qlvar(tablename$i)} - if {$thename!=""} {lappend tables "\"$qlvar(tablename$i)\" $qlvar(tablealias$i)"} - } - set sqlcmd "$sqlcmd from [join $tables ,] " - set sup1 {} - if {[llength $qlvar(links)]>0} { - set sup1 "where " - foreach link $qlvar(links) { - if {$sup1!="where "} {set sup1 "$sup1 and "} - set sup1 "$sup1 ([lindex $link 0].\"[lindex $link 1]\"=[lindex $link 2].\"[lindex $link 3]\")" - } - } - for {set i 0} {$i<[llength $qlvar(resfields)]} {incr i} { - set crit [lindex $qlvar(rescriteria) $i] - if {$crit!=""} { - if {$sup1==""} {set sup1 "where "} - if {[string length $sup1]>6} {set sup1 "$sup1 and "} - set sup1 "$sup1 ([lindex $qlvar(restables) $i].\"[lindex $qlvar(resfields) $i]\" $crit) " - } - } - set sqlcmd "$sqlcmd $sup1" - set sup2 {} - for {set i 0} {$i<[llength $qlvar(ressort)]} {incr i} { - set how [lindex $qlvar(ressort) $i] - if {$how!="unsorted"} { - if {$how=="Ascending"} {set how asc} else {set how desc} - if {$sup2==""} {set sup2 " order by "} else {set sup2 "$sup2,"} - set sup2 "$sup2 [lindex $qlvar(restables) $i].\"[lindex $qlvar(resfields) $i]\" $how " - } - } - set sqlcmd "$sqlcmd $sup2" - set qlvar(sql) $sqlcmd - #tk_messageBox -message $sqlcmd - return $sqlcmd - } - - proc {ql_delete_object} {} { - global qlvar - # Checking if there - set obj [.ql.c find withtag hili] - if {$obj==""} return - # Is object a link ? - if {[ql_get_tag_info $obj link]=="s"} { - if {[tk_messageBox -title WARNING -icon question -parent .ql -message "Remove link ?" -type yesno -default no]=="no"} return - set linkid [ql_get_tag_info $obj lkid] - set qlvar(links) [lreplace $qlvar(links) $linkid $linkid] - .ql.c delete links - ql_draw_links - return - } - # Is object a result field ? - if {[ql_get_tag_info $obj res]=="f"} { - set col [ql_get_tag_info $obj col] - if {$col==""} return - if {[tk_messageBox -title WARNING -icon question -parent .ql -message "Remove field from result ?" -type yesno -default no]=="no"} return - set qlvar(resfields) [lreplace $qlvar(resfields) $col $col] - set qlvar(ressort) [lreplace $qlvar(ressort) $col $col] - set qlvar(resreturn) [lreplace $qlvar(resreturn) $col $col] - set qlvar(restables) [lreplace $qlvar(restables) $col $col] - set qlvar(rescriteria) [lreplace $qlvar(rescriteria) $col $col] - ql_draw_res_panel - return - } - # Is object a table ? - set tablealias [ql_get_tag_info $obj tab] - set tablename $qlvar(ali_$tablealias) - if {"$tablename"==""} return - if {[tk_messageBox -title WARNING -icon question -parent .ql -message "Remove table $tablename from query ?" -type yesno -default no]=="no"} return - for {set i [expr [llength $qlvar(restables)]-1]} {$i>=0} {incr i -1} { - if {"$tablename"==[lindex $qlvar(restables) $i]} { - set qlvar(resfields) [lreplace $qlvar(resfields) $i $i] - set qlvar(ressort) [lreplace $qlvar(ressort) $i $i] - set qlvar(resreturn) [lreplace $qlvar(resreturn) $i $i] - set qlvar(restables) [lreplace $qlvar(restables) $i $i] - set qlvar(rescriteria) [lreplace $qlvar(rescriteria) $i $i] - } - } - for {set i [expr [llength $qlvar(links)]-1]} {$i>=0} {incr i -1} { - set thelink [lindex $qlvar(links) $i] - if {($tablealias==[lindex $thelink 0]) || ($tablealias==[lindex $thelink 2])} { - set qlvar(links) [lreplace $qlvar(links) $i $i] - } - } - for {set i 0} {$i<$qlvar(ntables)} {incr i} { - set temp {} - catch {set temp $qlvar(tablename$i)} - if {"$temp"=="$tablename"} { - unset qlvar(tablename$i) - unset qlvar(tablestruct$i) - unset qlvar(tablealias$i) - break - } - } - #incr qlvar(ntables) -1 - .ql.c delete tab$tablealias - .ql.c delete links - ql_draw_links - ql_draw_res_panel - } - - proc {ql_dragit} {w x y} { - global draginfo - if {"$draginfo(obj)" != ""} { - set dx [expr $x - $draginfo(x)] - set dy [expr $y - $draginfo(y)] - if {$draginfo(is_a_table)} { - set taglist [.ql.c gettags $draginfo(obj)] - set tabletag [lindex $taglist [lsearch -regexp $taglist "^tab"]] - $w move $tabletag $dx $dy - ql_draw_links - } else { - $w move $draginfo(obj) $dx $dy - } - set draginfo(x) $x - set draginfo(y) $y - } - } - - proc {ql_dragstart} {w x y} { - global draginfo - catch {unset draginfo} - set draginfo(obj) [$w find closest $x $y] - if {[ql_get_tag_info $draginfo(obj) r]=="ect"} { - # If it'a a rectangle, exit - set draginfo(obj) {} - return - } - .ql configure -cursor hand1 - .ql.c raise $draginfo(obj) - set draginfo(table) 0 - if {[ql_get_tag_info $draginfo(obj) table]=="header"} { - set draginfo(is_a_table) 1 - .ql.c itemconfigure [.ql.c find withtag hili] -fill black - .ql.c dtag [.ql.c find withtag hili] hili - .ql.c addtag hili withtag $draginfo(obj) - .ql.c itemconfigure hili -fill blue - } else { - set draginfo(is_a_table) 0 - } - set draginfo(x) $x - set draginfo(y) $y - set draginfo(sx) $x - set draginfo(sy) $y - } - - proc {ql_dragstop} {x y} { - global draginfo qlvar - # when click Close, ql window is destroyed but event ButtonRelease-1 is fired - if {![winfo exists .ql]} return; - .ql configure -cursor left_ptr - set este {} - catch {set este $draginfo(obj)} - if {$este==""} return - # Re-establish the normal paint order so - # information won't be overlapped by table rectangles - # or link linkes - .ql.c lower $draginfo(obj) - .ql.c lower rect - .ql.c lower links - set qlvar(panstarted) 0 - if {$draginfo(is_a_table)} { - set draginfo(obj) {} - .ql.c delete links - ql_draw_links - return - } - .ql.c move $draginfo(obj) [expr $draginfo(sx)-$x] [expr $draginfo(sy)-$y] - if {($y>$qlvar(yoffs)) && ($x>$qlvar(xoffs))} { - # Drop position : inside the result panel - # Compute the offset of the result panel due to panning - set resoffset [expr [lindex [.ql.c bbox resmarker] 0]-$qlvar(xoffs)] - set newfld [.ql.c itemcget $draginfo(obj) -text] - set tabtag [ql_get_tag_info $draginfo(obj) tab] - set col [expr int(($x-$qlvar(xoffs)-$resoffset)/$qlvar(reswidth))] - set qlvar(resfields) [linsert $qlvar(resfields) $col $newfld] - set qlvar(ressort) [linsert $qlvar(ressort) $col unsorted] - set qlvar(rescriteria) [linsert $qlvar(rescriteria) $col {}] - set qlvar(restables) [linsert $qlvar(restables) $col $tabtag] - set qlvar(resreturn) [linsert $qlvar(resreturn) $col yes] - ql_draw_res_panel - } else { - # Drop position : in the table panel - set droptarget [.ql.c find overlapping $x $y $x $y] - set targettable {} - foreach item $droptarget { - set targettable [ql_get_tag_info $item tab] - set targetfield [ql_get_tag_info $item f-] - if {($targettable!="") && ($targetfield!="")} { - set droptarget $item - break - } - } - # check if target object isn't a rectangle - if {[ql_get_tag_info $droptarget rec]=="t"} {set targettable {}} - if {$targettable!=""} { - # Target has a table - # See about originate table - set sourcetable [ql_get_tag_info $draginfo(obj) tab] - if {$sourcetable!=""} { - # Source has also a tab .. tag - set sourcefield [ql_get_tag_info $draginfo(obj) f-] - if {$sourcetable!=$targettable} { - lappend qlvar(links) [list $sourcetable $sourcefield $targettable $targetfield $draginfo(obj) $droptarget] - ql_draw_links - } - } - } - } - # Erase information about onbject beeing dragged - set draginfo(obj) {} - } - - proc {ql_draw_links} {} { - global qlvar - .ql.c delete links - set i 0 - foreach link $qlvar(links) { - # Compute the source and destination right edge - set sre [lindex [.ql.c bbox tab[lindex $link 0]] 2] - set dre [lindex [.ql.c bbox tab[lindex $link 2]] 2] - # Compute field bound boxes - set sbbox [.ql.c bbox [lindex $link 4]] - set dbbox [.ql.c bbox [lindex $link 5]] - # Compute the auxiliary lines - if {[lindex $sbbox 2] < [lindex $dbbox 0]} { - # Source object is on the left of target object - set x1 $sre - set y1 [expr ([lindex $sbbox 1]+[lindex $sbbox 3])/2] - .ql.c create line $x1 $y1 [expr $x1+10] $y1 -tags [subst {links lkid$i}] -width 3 - set x2 [lindex $dbbox 0] - set y2 [expr ([lindex $dbbox 1]+[lindex $dbbox 3])/2] - .ql.c create line [expr $x2-10] $y2 $x2 $y2 -tags [subst {links lkid$i}] -width 3 - .ql.c create line [expr $x1+10] $y1 [expr $x2-10] $y2 -tags [subst {links lkid$i}] -width 2 - } else { - # source object is on the right of target object - set x1 [lindex $sbbox 0] - set y1 [expr ([lindex $sbbox 1]+[lindex $sbbox 3])/2] - .ql.c create line $x1 $y1 [expr $x1-10] $y1 -tags [subst {links lkid$i}] -width 3 - set x2 $dre - set y2 [expr ([lindex $dbbox 1]+[lindex $dbbox 3])/2] - .ql.c create line $x2 $y2 [expr $x2+10] $y2 -width 3 -tags [subst {links lkid$i}] - .ql.c create line [expr $x1-10] $y1 [expr $x2+10] $y2 -tags [subst {links lkid$i}] -width 2 - } - incr i - } - .ql.c lower links - .ql.c bind links {ql_link_click %x %y} - } - - proc {ql_draw_lizzard} {} { - global qlvar pref - .ql.c delete all - set posx 20 - for {set it 0} {$it<$qlvar(ntables)} {incr it} { - ql_draw_table $it - } - .ql.c lower rect - .ql.c create line 0 $qlvar(yoffs) 10000 $qlvar(yoffs) -width 3 - .ql.c create rectangle 0 $qlvar(yoffs) 10000 5000 -fill #FFFFFF - for {set i [expr 15+$qlvar(yoffs)]} {$i<500} {incr i 15} { - .ql.c create line $qlvar(xoffs) $i 10000 $i -fill #CCCCCC -tags {resgrid} - } - for {set i $qlvar(xoffs)} {$i<10000} {incr i $qlvar(reswidth)} { - .ql.c create line $i [expr 1+$qlvar(yoffs)] $i 10000 -fill #cccccc -tags {resgrid} - } - # Make a marker for result panel offset calculations (due to panning) - .ql.c create line $qlvar(xoffs) $qlvar(yoffs) $qlvar(xoffs) 500 -tags {resmarker resgrid} - .ql.c create rectangle 0 $qlvar(yoffs) $qlvar(xoffs) 5000 -fill #EEEEEE -tags {reshdr} - .ql.c create text 5 [expr 1+$qlvar(yoffs)] -text Field: -anchor nw -font $pref(font_normal) -tags {reshdr} - .ql.c create text 5 [expr 16+$qlvar(yoffs)] -text Table: -anchor nw -font $pref(font_normal) -tags {reshdr} - .ql.c create text 5 [expr 31+$qlvar(yoffs)] -text Sort: -anchor nw -font $pref(font_normal) -tags {reshdr} - .ql.c create text 5 [expr 46+$qlvar(yoffs)] -text Criteria: -anchor nw -font $pref(font_normal) -tags {reshdr} - .ql.c create text 5 [expr 61+$qlvar(yoffs)] -text Return: -anchor nw -font $pref(font_normal) -tags {reshdr} - .ql.c bind mov {ql_dragstart %W %x %y} - .ql.c bind mov {ql_dragit %W %x %y} - bind .ql {ql_dragstop %x %y} - bind .ql {qlc_click %x %y %W} - bind .ql {ql_pan %x %y} - bind .ql {ql_delete_object} - } - - proc {ql_draw_res_panel} {} { - global qlvar pref - # Compute the offset of the result panel due to panning - set resoffset [expr [lindex [.ql.c bbox resmarker] 0]-$qlvar(xoffs)] - .ql.c delete resp - for {set i 0} {$i<[llength $qlvar(resfields)]} {incr i} { - .ql.c create text [expr $resoffset+4+$qlvar(xoffs)+$i*$qlvar(reswidth)] [expr 1+$qlvar(yoffs)] -text [lindex $qlvar(resfields) $i] -anchor nw -tags [subst {resf resp col$i}] -font $pref(font_normal) - .ql.c create text [expr $resoffset+4+$qlvar(xoffs)+$i*$qlvar(reswidth)] [expr 16+$qlvar(yoffs)] -text $qlvar(ali_[lindex $qlvar(restables) $i]) -anchor nw -tags {resp rest} -font $pref(font_normal) - .ql.c create text [expr $resoffset+4+$qlvar(xoffs)+$i*$qlvar(reswidth)] [expr 31+$qlvar(yoffs)] -text [lindex $qlvar(ressort) $i] -anchor nw -tags {resp sort} -font $pref(font_normal) - if {[lindex $qlvar(rescriteria) $i]!=""} { - .ql.c create text [expr $resoffset+4+$qlvar(xoffs)+$i*$qlvar(reswidth)] [expr $qlvar(yoffs)+46+15*0] -anchor nw -text [lindex $qlvar(rescriteria) $i] -font $pref(font_normal) -tags [subst {resp cr-c$i-r0}] - } - .ql.c create text [expr $resoffset+4+$qlvar(xoffs)+$i*$qlvar(reswidth)] [expr 61+$qlvar(yoffs)] -text [lindex $qlvar(resreturn) $i] -anchor nw -tags {resp retval} -font $pref(font_normal) - } - .ql.c raise reshdr - .ql.c bind resf {ql_resfield_click %x %y} - .ql.c bind sort {ql_swap_sort %W %x %y} - .ql.c bind retval {ql_toggle_return %W %x %y} - } - - proc {ql_draw_table} {it} { - global qlvar pref - - set posy 10 - set allbox [.ql.c bbox rect] - if {$allbox==""} {set posx 10} else {set posx [expr 20+[lindex $allbox 2]]} - set tablename $qlvar(tablename$it) - set tablealias $qlvar(tablealias$it) - .ql.c create text $posx $posy -text "$tablename" -anchor nw -tags [subst {tab$tablealias f-oid mov tableheader}] -font $pref(font_bold) - incr posy 16 - foreach fld $qlvar(tablestruct$it) { - .ql.c create text $posx $posy -text $fld -fill #010101 -anchor nw -tags [subst {f-$fld tab$tablealias mov}] -font $pref(font_normal) - incr posy 14 - } - set reg [.ql.c bbox tab$tablealias] - .ql.c create rectangle [lindex $reg 0] [lindex $reg 1] [lindex $reg 2] [lindex $reg 3] -fill #EEEEEE -tags [subst {rect tab$tablealias}] - .ql.c create line [lindex $reg 0] [expr [lindex $reg 1]+15] [lindex $reg 2] [expr [lindex $reg 1]+15] -tags [subst {rect tab$tablealias}] - .ql.c lower tab$tablealias - .ql.c lower rect - } - - proc {ql_get_tag_info} {obj prefix} { - set taglist [.ql.c gettags $obj] - set tagpos [lsearch -regexp $taglist "^$prefix"] - if {$tagpos==-1} {return ""} - set thattag [lindex $taglist $tagpos] - return [string range $thattag [string length $prefix] end] - } - - proc {ql_init} {} { - global qlvar - catch {unset qlvar} - set qlvar(yoffs) 360 - set qlvar(xoffs) 50 - set qlvar(reswidth) 150 - set qlvar(resfields) {} - set qlvar(resreturn) {} - set qlvar(ressort) {} - set qlvar(rescriteria) {} - set qlvar(restables) {} - set qlvar(critedit) 0 - set qlvar(links) {} - set qlvar(ntables) 0 - set qlvar(newtablename) {} - } - - proc {ql_link_click} {x y} { - global qlvar - - set obj [.ql.c find closest $x $y 1 links] - if {[ql_get_tag_info $obj link]!="s"} return - .ql.c itemconfigure [.ql.c find withtag hili] -fill black - .ql.c dtag [.ql.c find withtag hili] hili - .ql.c addtag hili withtag $obj - .ql.c itemconfigure $obj -fill blue - } - - proc {ql_pan} {x y} { - global qlvar - set panstarted 0 - catch {set panstarted $qlvar(panstarted) } - if {!$panstarted} return - set dx [expr $x-$qlvar(panstartx)] - set dy [expr $y-$qlvar(panstarty)] - set qlvar(panstartx) $x - set qlvar(panstarty) $y - if {$qlvar(panobject)=="tables"} { - .ql.c move mov $dx $dy - .ql.c move links $dx $dy - .ql.c move rect $dx $dy - } else { - .ql.c move resp $dx 0 - .ql.c move resgrid $dx 0 - .ql.c raise reshdr - } - } - - proc {ql_resfield_click} {x y} { - global qlvar - - set obj [.ql.c find closest $x $y] - if {[ql_get_tag_info $obj res]!="f"} return - .ql.c itemconfigure [.ql.c find withtag hili] -fill black - .ql.c dtag [.ql.c find withtag hili] hili - .ql.c addtag hili withtag $obj - .ql.c itemconfigure $obj -fill blue - } - - proc {ql_show_sql} {} { - global qlvar pref - - set sqlcmd [ql_compute_sql] - .ql.c delete sqlpage - .ql.c create rectangle 0 0 2000 [expr $qlvar(yoffs)-1] -fill #ffffff -tags {sqlpage} - .ql.c create text 10 10 -text $sqlcmd -anchor nw -width 550 -tags {sqlpage} -font $pref(font_normal) - .ql.c bind sqlpage {.ql.c delete sqlpage} - } - - proc {ql_swap_sort} {w x y} { - global qlvar - set obj [$w find closest $x $y] - set taglist [.ql.c gettags $obj] - if {[lsearch $taglist sort]==-1} return - set cum [.ql.c itemcget $obj -text] - if {$cum=="unsorted"} { - set cum Ascending - } elseif {$cum=="Ascending"} { - set cum Descending - } else { - set cum unsorted - } - set col [expr int(($x-$qlvar(xoffs))/$qlvar(reswidth))] - set qlvar(ressort) [lreplace $qlvar(ressort) $col $col $cum] - .ql.c itemconfigure $obj -text $cum - } - - #rjr 8Mar1999 toggle logical return state for result - proc {ql_toggle_return} {w x y} { - global qlvar - set obj [$w find closest $x $y] - set taglist [.ql.c gettags $obj] - if {[lsearch $taglist retval]==-1} return - set cum [.ql.c itemcget $obj -text] - if {$cum} { - set cum no - } else { - set cum yes - } - set col [expr int(($x-$qlvar(xoffs))/$qlvar(reswidth))] - set qlvar(resreturn) [lreplace $qlvar(resreturn) $col $col $cum] - .ql.c itemconfigure $obj -text $cum - } - - proc {qlc_click} {x y w} { - global qlvar pref - set qlvar(panstarted) 0 - if {$w==".ql.c"} { - set canpan 1 - if {$y<$qlvar(yoffs)} { - if {[llength [.ql.c find overlapping $x $y $x $y]]!=0} {set canpan 0} - set qlvar(panobject) tables - } else { - set qlvar(panobject) result - } - if {$canpan} { - .ql configure -cursor hand1 - set qlvar(panstartx) $x - set qlvar(panstarty) $y - set qlvar(panstarted) 1 - } - } - set isedit 0 - catch {set isedit $qlvar(critedit)} - # Compute the offset of the result panel due to panning - set resoffset [expr [lindex [.ql.c bbox resmarker] 0]-$qlvar(xoffs)] - if {$isedit} { - set qlvar(rescriteria) [lreplace $qlvar(rescriteria) $qlvar(critcol) $qlvar(critcol) $qlvar(critval)] - .ql.c delete cr-c$qlvar(critcol)-r$qlvar(critrow) - .ql.c create text [expr $resoffset+4+$qlvar(xoffs)+$qlvar(critcol)*$qlvar(reswidth)] [expr $qlvar(yoffs)+46+15*$qlvar(critrow)] -anchor nw -text $qlvar(critval) -font $pref(font_normal) -tags [subst {resp cr-c$qlvar(critcol)-r$qlvar(critrow)}] - set qlvar(critedit) 0 - } - catch {destroy .ql.entc} - if {$y<[expr $qlvar(yoffs)+46]} return - if {$x<[expr $qlvar(xoffs)+5]} return - set col [expr int(($x-$qlvar(xoffs)-$resoffset)/$qlvar(reswidth))] - if {$col>=[llength $qlvar(resfields)]} return - set nx [expr $col*$qlvar(reswidth)+8+$qlvar(xoffs)+$resoffset] - set ny [expr $qlvar(yoffs)+76] - # Get the old criteria value - set qlvar(critval) [lindex $qlvar(rescriteria) $col] - entry .ql.entc -textvar qlvar(critval) -borderwidth 0 -background #FFFFFF -highlightthickness 0 -selectborderwidth 0 -font $pref(font_normal) - place .ql.entc -x $nx -y $ny -height 14 - focus .ql.entc - bind .ql.entc {set qlvar(panstarted) 0} - set qlvar(critcol) $col - set qlvar(critrow) 0 - set qlvar(critedit) 1 - } - - proc {rb_add_field} {} { - global rbvar pref - set fldname [.rb.lb get [.rb.lb curselection]] - set newid [.rb.c create text $rbvar(xf_auto) [expr $rbvar(y_rpthdr)+5] -text $fldname -tags [subst {t_l mov ro}] -anchor nw -font $pref(font_normal)] - .rb.c create text $rbvar(xf_auto) [expr $rbvar(y_pghdr)+5] -text $fldname -tags [subst {f-$fldname t_f rg_detail mov ro}] -anchor nw -font $pref(font_normal) - set bb [.rb.c bbox $newid] - incr rbvar(xf_auto) [expr 5+[lindex $bb 2]-[lindex $bb 0]] - } - - proc {rb_add_label} {} { - global rbvar pref - set fldname $rbvar(labeltext) - set newid [.rb.c create text $rbvar(xl_auto) [expr $rbvar(y_rpthdr)+5] -text $fldname -tags [subst {t_l mov ro}] -anchor nw -font $pref(font_normal)] - set bb [.rb.c bbox $newid] - incr rbvar(xl_auto) [expr 5+[lindex $bb 2]-[lindex $bb 0]] - } - - proc {rb_change_object_font} {} { - global rbvar - .rb.c itemconfigure hili -font -Adobe-[.rb.bfont cget -text]-[rb_get_bold]-[rb_get_italic]-Normal--*-$rbvar(pointsize)-*-*-*-*-*-* - } - - proc {rb_delete_object} {} { - if {[tk_messageBox -title Warning -parent .rb -message "Delete current report object?" -type yesno -default no]=="no"} return; - .rb.c delete hili - } - - proc {rb_dragit} {w x y} { - global draginfo rbvar - # Showing current region - foreach rg $rbvar(regions) { - set rbvar(msg) $rbvar(e_$rg) - if {$rbvar(y_$rg)>$y} break; - } - set temp {} - catch {set temp $draginfo(obj)} - if {"$temp" != ""} { - set dx [expr $x - $draginfo(x)] - set dy [expr $y - $draginfo(y)] - if {$draginfo(region)!=""} { - set x $draginfo(x) ; $w move bg_$draginfo(region) 0 $dy - } else { - $w move $draginfo(obj) $dx $dy - } - set draginfo(x) $x - set draginfo(y) $y - } - } - - proc {rb_dragstart} {w x y} { - global draginfo rbvar - focus .rb.c - catch {unset draginfo} - set obj {} - # Only movable objects start dragging - foreach id [$w find overlapping $x $y $x $y] { - if {[rb_has_tag $id mov]} { - set obj $id - break - } - } - if {$obj==""} return; - set draginfo(obj) $obj - set taglist [.rb.c itemcget $obj -tags] - set i [lsearch -glob $taglist bg_*] - if {$i==-1} { - set draginfo(region) {} - } else { - set draginfo(region) [string range [lindex $taglist $i] 3 64] - } - .rb configure -cursor hand1 - .rb.c itemconfigure [.rb.c find withtag hili] -fill black - .rb.c dtag [.rb.c find withtag hili] hili - .rb.c addtag hili withtag $draginfo(obj) - .rb.c itemconfigure hili -fill blue - set draginfo(x) $x - set draginfo(y) $y - set draginfo(sx) $x - set draginfo(sy) $y - # Setting font information - if {[.rb.c type hili]=="text"} { - set fnta [split [.rb.c itemcget hili -font] -] - .rb.bfont configure -text [lindex $fnta 2] - if {[lindex $fnta 3]=="Medium"} then {.rb.lbold configure -relief raised} else {.rb.lbold configure -relief sunken} - if {[lindex $fnta 4]=="R"} then {.rb.lita configure -relief raised} else {.rb.lita configure -relief sunken} - set rbvar(pointsize) [lindex $fnta 8] - if {[rb_has_tag $obj t_f]} {set rbvar(info) "Database field"} - if {[rb_has_tag $obj t_l]} {set rbvar(info) "Label"} - if {[.rb.c itemcget $obj -anchor]=="nw"} then {.rb.balign configure -text left} else {.rb.balign configure -text right} - } - } - - proc {rb_dragstop} {x y} { - global draginfo rbvar - # when click Close, ql window is destroyed but event ButtonRelease-1 is fired - if {![winfo exists .rb]} return; - .rb configure -cursor left_ptr - set este {} - catch {set este $draginfo(obj)} - if {$este==""} return - # Erase information about object beeing dragged - if {$draginfo(region)!=""} { - set dy 0 - foreach rg $rbvar(regions) { - .rb.c move rg_$rg 0 $dy - if {$rg==$draginfo(region)} { - set dy [expr $y-$rbvar(y_$draginfo(region))] - } - incr rbvar(y_$rg) $dy - } - # .rb.c move det 0 [expr $y-$rbvar(y_$draginfo(region))] - set rbvar(y_$draginfo(region)) $y - rb_draw_regions - } else { - # Check if object beeing dragged is inside the canvas - set bb [.rb.c bbox $draginfo(obj)] - if {[lindex $bb 0] < 5} { - .rb.c move $draginfo(obj) [expr 5-[lindex $bb 0]] 0 - } - } - set draginfo(obj) {} - unset draginfo - } - - proc {rb_draw_regions} {} { - global rbvar - foreach rg $rbvar(regions) { - .rb.c delete bg_$rg - .rb.c create line 0 $rbvar(y_$rg) 5000 $rbvar(y_$rg) -tags [subst {bg_$rg}] - .rb.c create rectangle 6 [expr $rbvar(y_$rg)-3] 12 [expr $rbvar(y_$rg)+3] -fill black -tags [subst {bg_$rg mov reg}] - .rb.c lower bg_$rg - } - } - - proc {rb_flip_align} {} { - set bb [.rb.c bbox hili] - if {[.rb.balign cget -text]=="left"} then { - .rb.balign configure -text right - .rb.c itemconfigure hili -anchor ne - .rb.c move hili [expr [lindex $bb 2]-[lindex $bb 0]-3] 0 - } else { - .rb.balign configure -text left - .rb.c itemconfigure hili -anchor nw - .rb.c move hili [expr [lindex $bb 0]-[lindex $bb 2]+3] 0 - } - } - - proc {rb_get_bold} {} { - if {[.rb.lbold cget -relief]=="raised"} then {return Medium} else {return Bold} - } - - proc {rb_get_italic} {} { - if {[.rb.lita cget -relief]=="raised"} then {return R} else {return O} - } - - proc {rb_get_report_fields} {} { - global dbc rbvar - .rb.lb delete 0 end - if {$rbvar(tablename)==""} return ; - #cursor_clock - wpg_select $dbc "select attnum,attname from pg_class,pg_attribute where (pg_class.relname='$rbvar(tablename)') and (pg_class.oid=pg_attribute.attrelid) and (attnum>0) order by attnum" rec { - .rb.lb insert end $rec(attname) - } - #cursor_normal - } - - proc {rb_has_tag} {id tg} { - if {[lsearch [.rb.c itemcget $id -tags] $tg]==-1} then {return 0 } else {return 1} - } - - proc {rb_init} {} { - global rbvar - set rbvar(xl_auto) 10 - set rbvar(xf_auto) 10 - set rbvar(regions) {rpthdr pghdr detail pgfoo rptfoo} - set rbvar(y_rpthdr) 30 - set rbvar(y_pghdr) 60 - set rbvar(y_detail) 90 - set rbvar(y_pgfoo) 120 - set rbvar(y_rptfoo) 150 - set rbvar(e_rpthdr) {Report header} - set rbvar(e_pghdr) {Page header} - set rbvar(e_detail) {Detail record} - set rbvar(e_pgfoo) {Page footer} - set rbvar(e_rptfoo) {Report footer} - rb_draw_regions - } - - proc {rb_load_report} {} { - global rbvar dbc - .rb.c delete all - wpg_select $dbc "select * from pga_reports where reportname='$rbvar(reportname)'" rcd { - eval $rcd(reportbody) - } - rb_get_report_fields - rb_draw_regions - } - - proc {rb_preview} {} { - global dbc rbvar - Window show .rpv - .rpv.fr.c delete all - set ol [.rb.c find withtag ro] - set fields {} - foreach objid $ol { - set tags [.rb.c itemcget $objid -tags] - lappend fields [string range [lindex $tags [lsearch -glob $tags f-*]] 2 64] - lappend fields [lindex [.rb.c coords $objid] 0] - lappend fields [lindex [.rb.c coords $objid] 1] - lappend fields $objid - lappend fields [lindex $tags [lsearch -glob $tags t_*]] - } - # Parsing page header - set py 10 - foreach {field x y objid objtype} $fields { - if {$objtype=="t_l"} { - .rpv.fr.c create text $x [expr $py+$y] -text [.rb.c itemcget $objid -text] -font [.rb.c itemcget $objid -font] -anchor nw - } - } - incr py [expr $rbvar(y_pghdr)-$rbvar(y_rpthdr)] - # Parsing detail group - set di [lsearch $rbvar(regions) detail] - set y_hi $rbvar(y_detail) - set y_lo $rbvar(y_[lindex $rbvar(regions) [expr $di-1]]) - wpg_select $dbc "select * from \"$rbvar(tablename)\"" rec { - foreach {field x y objid objtype} $fields { - if {($y>=$y_lo) && ($y<=$y_hi)} then { - if {$objtype=="t_f"} { - .rpv.fr.c create text $x [expr $py+$y] -text $rec($field) -font [.rb.c itemcget $objid -font] -anchor [.rb.c itemcget $objid -anchor] - } - if {$objtype=="t_l"} { - .rpv.fr.c create text $x [expr $py+$y] -text [.rb.c itemcget $objid -text] -font [.rb.c itemcget $objid -font] -anchor nw - } - } - } - incr py [expr $rbvar(y_detail)-$rbvar(y_pghdr)] - } - .rpv.fr.c configure -scrollregion [subst {0 0 1000 $py}] - } - - proc {rb_print_report} {} { - set bb [.rpv.fr.c bbox all] - .rpv.fr.c postscript -file "pgaccess-report.ps" -width [expr 10+[lindex $bb 2]-[lindex $bb 0]] -height [expr 10+[lindex $bb 3]-[lindex $bb 1]] - tk_messageBox -title Information -parent .rb -message "The printed image in Postscript is in the file pgaccess-report.ps" - } - - proc {rb_save_report} {} { - global rbvar - set prog "set rbvar(tablename) \"$rbvar(tablename)\"" - foreach region $rbvar(regions) { - set prog "$prog ; set rbvar(y_$region) $rbvar(y_$region)" - } - foreach obj [.rb.c find all] { - if {[.rb.c type $obj]=="text"} { - set bb [.rb.c bbox $obj] - if {[.rb.c itemcget $obj -anchor]=="nw"} then {set x [expr [lindex $bb 0]+1]} else {set x [expr [lindex $bb 2]-2]} - set prog "$prog ; .rb.c create text $x [lindex $bb 1] -font [.rb.c itemcget $obj -font] -anchor [.rb.c itemcget $obj -anchor] -text {[.rb.c itemcget $obj -text]} -tags {[.rb.c itemcget $obj -tags]}" - } - } - sql_exec noquiet "delete from pga_reports where reportname='$rbvar(reportname)'" - sql_exec noquiet "insert into pga_reports (reportname,reportsource,reportbody) values ('$rbvar(reportname)','$rbvar(tablename)','$prog')" - } - - proc {save_pref} {} { - global pref - catch { - set fid [open "~/.pgaccessrc" w] - foreach {opt val} [array get pref] { puts $fid "$opt {$val}" } - close $fid - } - } - - proc {show_error} {emsg} { - bell ; tk_messageBox -title Error -icon error -message $emsg - } - - proc {show_table_information} {tblname} { - global dbc tiw activetab indexlist - set tiw(tablename) $tblname - if {$tiw(tablename)==""} return; - Window show .tiw - .tiw.lb delete 0 end - .tiw.ilb delete 0 end - set tiw(isunique) {} - set tiw(isclustered) {} - set tiw(indexfields) {} - wpg_select $dbc "select attnum,attname,typname,attlen,atttypmod,usename,pg_class.oid from pg_class,pg_user,pg_attribute,pg_type where (pg_class.relname='$tiw(tablename)') and (pg_class.oid=pg_attribute.attrelid) and (pg_class.relowner=pg_user.usesysid) and (pg_attribute.atttypid=pg_type.oid) order by attnum" rec { - set fsize $rec(attlen) - set fsize1 $rec(atttypmod) - set ftype $rec(typname) - if { $fsize=="-1" && $fsize1!="-1" } { - set fsize $rec(atttypmod) - incr fsize -4 - } - if { $fsize1=="-1" && $fsize=="-1" } { - set fsize "" - } - if {$rec(attnum)>0} {.tiw.lb insert end [format "%-33s %-14s %-4s" $rec(attname) $ftype $fsize]} - set tiw(owner) $rec(usename) - set tiw(tableoid) $rec(oid) - set tiw(f$rec(attnum)) $rec(attname) - } - set tiw(indexlist) {} - wpg_select $dbc "select oid,indexrelid from pg_index where (pg_class.relname='$tiw(tablename)') and (pg_class.oid=pg_index.indrelid)" rec { - lappend tiw(indexlist) $rec(oid) - wpg_select $dbc "select relname from pg_class where oid=$rec(indexrelid)" rec1 { - .tiw.ilb insert end $rec1(relname) - } - } - } - - proc {sql_exec} {how cmd} { - global dbc pgsql - if {[set pgr [wpg_exec $dbc $cmd]]==0} { - return 0 - } - if {($pgsql(status)=="PGRES_COMMAND_OK") || ($pgsql(status)=="PGRES_TUPLES_OK")} { - pg_result $pgr -clear - return 1 - } - if {$how != "quiet"} { - show_error "Error executing query\n\n$cmd\n\nPostgreSQL error message:\n$pgsql(errmsg)\nPostgreSQL status:$pgsql(status)" - } - pg_result $pgr -clear - return 0 - } - - proc {tab_click} {w} { - global dbc tablist activetab pref - if {$dbc==""} return; - set curtab [$w cget -text] - #if {$activetab==$curtab} return; - .dw.btndesign configure -state disabled - if {$activetab!=""} { - place .dw.tab$activetab -x 10 - .dw.tab$activetab configure -font $pref(font_normal) - } - $w configure -font $pref(font_bold) - place $w -x 7 - place .dw.lmask -x 80 -y [expr 86+25*[lsearch -exact $tablist $curtab]] - set activetab $curtab - # Tabs where button Design is enabled - if {[lsearch {Scripts Queries Views Reports Forms Users} $activetab]!=-1} { - .dw.btndesign configure -state normal - } - .dw.lb delete 0 end - cmd_$curtab - } - - proc {tiw_show_index} {} { - global tiw dbc - set cs [.tiw.ilb curselection] - if {$cs==""} return - set idxname [.tiw.ilb get $cs] - wpg_select $dbc "select pg_index.*,pg_class.oid from pg_index,pg_class where pg_class.relname='$idxname' and pg_class.oid=pg_index.indexrelid" rec { - if {$rec(indisunique)=="t"} { - set tiw(isunique) Yes - } else { - set tiw(isunique) No - } - if {$rec(indisclustered)=="t"} { - set tiw(isclustered) Yes - } else { - set tiw(isclustered) No - } - set tiw(indexfields) {} - foreach field $rec(indkey) { - if {$field!=0} { - # wpg_select $dbc "select attname from pg_attribute where attrelid=$tiw(tableoid) and attnum=$field" rec1 { - # set tiw(indexfields) "$tiw(indexfields) $rec1(attname)" - # } - set tiw(indexfields) "$tiw(indexfields) $tiw(f$field)" - } - - } - } - set tiw(indexfields) [string trim $tiw(indexfields)] - } - - proc {vacuum} {} { - global dbc dbname sdbname pgsql - if {$dbc==""} return; - set sdbname "vacuuming database $dbname ..." - cursor_clock - set pgres [wpg_exec $dbc "vacuum;"] - catch {pg_result $pgres -clear} - cursor_normal - set sdbname $dbname - } - - proc {main} {argc argv} { - global pref newdbname newpport newhost newusername newpassword dbc tcl_platform - if {[string toupper $tcl_platform(platform)]=="WINDOWS"} { - load libpgtcl.dll - } else { - load libpgtcl.so - } - catch {draw_tabs} - set newusername {} - set newpassword {} - if {$argc>0} { - set newdbname [lindex $argv 0] - set newhost localhost - set newpport 5432 - open_database - } elseif {$pref(autoload) && ($pref(lastdb)!="")} { - set newdbname $pref(lastdb) - set newhost $pref(lasthost) - set newpport $pref(lastport) - catch {set newusername $pref(lastusername)} - if {[set openmsg [open_database]]!=""} { - if {[regexp "no password supplied" $openmsg]} { - Window show .dbod - focus .dbod.epassword - wm transient .dbod .dw - } - } - - } - wm protocol .dw WM_DELETE_WINDOW { - catch {pg_disconnect $dbc} - exit } - } - - proc {Window} {args} { - global vTcl - set cmd [lindex $args 0] - set name [lindex $args 1] - set newname [lindex $args 2] - set rest [lrange $args 3 end] - if {$name == "" || $cmd == ""} {return} - if {$newname == ""} { - set newname $name - } - set exists [winfo exists $newname] - switch $cmd { - show { - if {$exists == "1" && $name != "."} {wm deiconify $name; return} - if {[info procs vTclWindow(pre)$name] != ""} { - eval "vTclWindow(pre)$name $newname $rest" - } - if {[info procs vTclWindow$name] != ""} { - eval "vTclWindow$name $newname $rest" - } - if {[info procs vTclWindow(post)$name] != ""} { - eval "vTclWindow(post)$name $newname $rest" - } - } - hide { if $exists {wm withdraw $newname; return} } - iconify { if $exists {wm iconify $newname; return} } - destroy { if $exists {destroy $newname; return} } - } - } - - proc vTclWindow. {base} { - if {$base == ""} { - set base . - } - wm focusmodel $base passive - wm geometry $base 1x1+0+0 - wm maxsize $base 1009 738 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 1 1 - wm withdraw $base - wm title $base "vt.tcl" - } - - proc vTclWindow.about {base} { - if {$base == ""} { - set base .about - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - wm geometry $base 471x177+168+243 - wm maxsize $base 1009 738 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 1 1 - wm title $base "About" - label $base.l1 -borderwidth 3 -font -Adobe-Helvetica-Bold-R-Normal-*-*-180-*-*-*-*-* -relief ridge -text PgAccess - label $base.l2 -relief groove -text {A Tcl/Tk interface to - PostgreSQL - by Constantin Teodorescu} - label $base.l3 -borderwidth 0 -relief sunken -text {v 0.96} - label $base.l4 -relief groove -text {You will always get the latest version at: - http://www.flex.ro/pgaccess - - Suggestions : teo@flex.ro} - button $base.b1 -borderwidth 1 -command {Window destroy .about} -text Ok - place $base.l1 -x 10 -y 10 -width 196 -height 103 -anchor nw -bordermode ignore - place $base.l2 -x 10 -y 115 -width 198 -height 55 -anchor nw -bordermode ignore - place $base.l3 -x 145 -y 80 -anchor nw -bordermode ignore - place $base.l4 -x 215 -y 10 -width 246 -height 103 -anchor nw -bordermode ignore - place $base.b1 -x 295 -y 130 -width 105 -height 28 -anchor nw -bordermode ignore - } - - proc vTclWindow.dbod {base} { - if {$base == ""} { - set base .dbod - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel \ - -cursor left_ptr - wm focusmodel $base passive - wm geometry $base 282x180+358+333 - wm maxsize $base 1009 738 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 0 0 - wm deiconify $base - wm title $base "Open database" - label $base.lhost \ - -borderwidth 0 -text Host - entry $base.ehost \ - -background #fefefe -borderwidth 1 -highlightthickness 1 \ - -selectborderwidth 0 -textvariable newhost - bind $base.ehost { - focus .dbod.epport - } - label $base.lport \ - -borderwidth 0 -text Port - entry $base.epport \ - -background #fefefe -borderwidth 1 -highlightthickness 1 \ - -selectborderwidth 0 -textvariable newpport - bind $base.epport { - focus .dbod.edbname - } - label $base.ldbname \ - -borderwidth 0 -text Database - entry $base.edbname \ - -background #fefefe -borderwidth 1 -highlightthickness 1 \ - -selectborderwidth 0 -textvariable newdbname - bind $base.edbname { - focus .dbod.eusername - .dbod.eusername selection range 0 end - } - label $base.lusername \ - -borderwidth 0 -text Username - entry $base.eusername \ - -background #fefefe -borderwidth 1 -highlightthickness 1 \ - -selectborderwidth 0 -textvariable newusername - bind $base.eusername { - focus .dbod.epassword - } - label $base.lpassword \ - -borderwidth 0 -text Password - entry $base.epassword \ - -background #fefefe -borderwidth 1 -highlightthickness 1 \ - -selectborderwidth 0 -textvariable newpassword -show "*" - bind $base.epassword { - focus .dbod.opbtu - } - button $base.opbtu \ - -borderwidth 1 -command open_database -text Open - bind $base.opbtu { - open_database - } - button $base.canbut \ - -borderwidth 1 -command {Window hide .dbod} -text Cancel - place $base.lhost \ - -x 35 -y 7 -anchor nw -bordermode ignore - place $base.ehost \ - -x 100 -y 5 -anchor nw -bordermode ignore - place $base.lport \ - -x 35 -y 32 -anchor nw -bordermode ignore - place $base.epport \ - -x 100 -y 30 -anchor nw -bordermode ignore - place $base.ldbname \ - -x 35 -y 57 -anchor nw -bordermode ignore - place $base.edbname \ - -x 100 -y 55 -anchor nw -bordermode ignore - place $base.lusername \ - -x 35 -y 82 -anchor nw -bordermode ignore - place $base.eusername \ - -x 100 -y 80 -anchor nw -bordermode ignore - place $base.lpassword \ - -x 35 -y 107 -anchor nw -bordermode ignore - place $base.epassword \ - -x 100 -y 105 -anchor nw -bordermode ignore - place $base.opbtu \ - -x 70 -y 140 -width 60 -height 26 -anchor nw -bordermode ignore - place $base.canbut \ - -x 150 -y 140 -width 60 -height 26 -anchor nw -bordermode ignore - } - - proc vTclWindow.dw {base} { - global pref - if {$base == ""} { - set base .dw - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel \ - -background #efefef -cursor left_ptr - wm focusmodel $base passive - wm geometry $base 322x355+96+172 - wm maxsize $base 1009 738 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 0 0 - wm deiconify $base - wm title $base "PostgreSQL access" - label $base.labframe \ - -relief raised - listbox $base.lb \ - -background #fefefe \ - -selectbackground #c3c3c3 \ - -foreground black -highlightthickness 0 -selectborderwidth 0 \ - -yscrollcommand {.dw.sb set} - bind $base.lb { - cmd_Open - } - button $base.btnnew \ - -borderwidth 1 -command cmd_New -text New - button $base.btnopen \ - -borderwidth 1 -command cmd_Open -text Open - button $base.btndesign \ - -borderwidth 1 -command cmd_Design -text Design - label $base.lmask \ - -borderwidth 0 \ - -text { } - label $base.label22 \ - -borderwidth 1 \ - -relief raised - menubutton $base.menubutton23 \ - -borderwidth 1 -font $pref(font_normal) \ - -menu .dw.menubutton23.01 -padx 4 -pady 3 -text Database - menu $base.menubutton23.01 \ - -borderwidth 1 -font $pref(font_normal) \ - -tearoff 0 - $base.menubutton23.01 add command \ - \ - -command { - Window show .dbod - set newhost $host - set newpport $pport - focus .dbod.edbname - .dbod.edbname selection range 0 end} \ - -label Open -font $pref(font_normal) - $base.menubutton23.01 add command \ - \ - -command {.dw.lb delete 0 end - set dbc {} - set dbname {} - set sdbname {}} \ - -label Close - $base.menubutton23.01 add command \ - -command vacuum -label Vacuum - $base.menubutton23.01 add separator - $base.menubutton23.01 add command \ - -command {cmd_Import_Export Import} -label {Import table} - $base.menubutton23.01 add command \ - -command {cmd_Import_Export Export} -label {Export table} - $base.menubutton23.01 add separator - $base.menubutton23.01 add command \ - -command cmd_Preferences -label Preferences - $base.menubutton23.01 add command \ - -command "Window show .sqlw" -label "SQL window" - $base.menubutton23.01 add separator - $base.menubutton23.01 add command \ - -command {catch {pg_disconnect $dbc} - save_pref - exit} -label Exit - label $base.lshost \ - -relief groove -text localhost -textvariable host - label $base.lsdbname \ - -anchor w \ - -relief groove -textvariable sdbname - scrollbar $base.sb \ - -borderwidth 1 -command {.dw.lb yview} -orient vert - menubutton $base.mnob \ - -borderwidth 1 \ - -menu .dw.mnob.m -font $pref(font_normal) -text Object - menu $base.mnob.m \ - -borderwidth 1 -font $pref(font_normal) \ - -tearoff 0 - $base.mnob.m add command \ - -command cmd_New -font $pref(font_normal) -label New - $base.mnob.m add command \ - -command {cmd_Delete } -label Delete - $base.mnob.m add command \ - -command {cmd_Rename } -label Rename - $base.mnob.m add command \ - -command cmd_Information -label Information - menubutton $base.mhelp \ - -borderwidth 1 \ - -menu .dw.mhelp.m -font $pref(font_normal) -text Help - menu $base.mhelp.m \ - -borderwidth 1 -font $pref(font_normal) \ - -tearoff 0 - $base.mhelp.m add command \ - -label Contents - $base.mhelp.m add command \ - -label PostgreSQL - $base.mhelp.m add separator - $base.mhelp.m add command \ - -command {Window show .about} -label About - place $base.labframe \ - -x 80 -y 30 -width 236 -height 300 -anchor nw -bordermode ignore - place $base.lb \ - -x 90 -y 75 -width 205 -height 243 -anchor nw -bordermode ignore - place $base.btnnew \ - -x 90 -y 40 -width 60 -height 25 -anchor nw -bordermode ignore - place $base.btnopen \ - -x 165 -y 40 -width 60 -height 25 -anchor nw -bordermode ignore - place $base.btndesign \ - -x 235 -y 40 -width 60 -height 25 -anchor nw -bordermode ignore - place $base.lmask \ - -x 155 -y 45 -width 10 -height 23 -anchor nw -bordermode ignore - place $base.label22 \ - -x 0 -y 0 -width 396 -height 23 -anchor nw -bordermode ignore - place $base.menubutton23 \ - -x 0 -y 3 -width 63 -height 17 -anchor nw -bordermode ignore - place $base.lshost \ - -x 3 -y 335 -width 91 -height 20 -anchor nw -bordermode ignore - place $base.lsdbname \ - -x 95 -y 335 -width 223 -height 20 -anchor nw -bordermode ignore - place $base.sb \ - -x 295 -y 74 -width 18 -height 245 -anchor nw -bordermode ignore - place $base.mnob \ - -x 70 -y 2 -width 44 -height 19 -anchor nw -bordermode ignore - place $base.mhelp \ - -x 280 -y 1 -height 20 -anchor nw -bordermode ignore - } - - proc vTclWindow.fw {base} { - if {$base == ""} { - set base .fw - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - wm geometry $base 306x288+233+130 - wm maxsize $base 1009 738 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 0 0 - wm title $base "Function" - label $base.l1 -borderwidth 0 -text Name - entry $base.e1 -background #fefefe -borderwidth 1 -highlightthickness 1 -selectborderwidth 0 -textvariable funcname - label $base.l2 -borderwidth 0 -text Parameters - entry $base.e2 -background #fefefe -borderwidth 1 -highlightthickness 1 -selectborderwidth 0 -textvariable funcpar - label $base.l3 -borderwidth 0 -text Returns - entry $base.e3 -background #fefefe -borderwidth 1 -highlightthickness 1 -selectborderwidth 0 -textvariable funcret - text $base.text1 -background #fefefe -borderwidth 1 -highlightthickness 1 -selectborderwidth 0 -wrap word - button $base.okbtn -borderwidth 1 -command { - if {$funcname==""} { - show_error "You must supply a name for this function!" - } elseif {$funcret==""} { - show_error "You must supply a return type!" - } else { - set funcbody [.fw.text1 get 1.0 end] - regsub -all "\n" $funcbody " " funcbody - if {[sql_exec noquiet "create function $funcname ($funcpar) returns $funcret as '$funcbody' language 'sql'"]} { - Window destroy .fw - tk_messageBox -title PostgreSQL -message "Function created!" - tab_click .dw.tabFunctions - } - - } - } -state disabled -text Define - button $base.cancelbtn -borderwidth 1 -command {Window destroy .fw} -text Close - place $base.l1 -x 15 -y 18 -anchor nw -bordermode ignore - place $base.e1 -x 95 -y 15 -width 198 -height 22 -anchor nw -bordermode ignore - place $base.l2 -x 15 -y 48 -anchor nw -bordermode ignore - place $base.e2 -x 95 -y 45 -width 198 -height 22 -anchor nw -bordermode ignore - place $base.l3 -x 15 -y 78 -anchor nw -bordermode ignore - place $base.e3 -x 95 -y 75 -width 198 -height 22 -anchor nw -bordermode ignore - place $base.text1 -x 15 -y 105 -width 275 -height 141 -anchor nw -bordermode ignore - place $base.okbtn -x 90 -y 400 -anchor nw -bordermode ignore - place $base.cancelbtn -x 160 -y 255 -anchor nw -bordermode ignore - } - - proc vTclWindow.iew {base} { - if {$base == ""} { - set base .iew - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - wm geometry $base 287x151+259+304 - wm maxsize $base 1009 738 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 0 0 - wm title $base "Import-Export table" - label $base.l1 -borderwidth 0 -text {Table name} - entry $base.e1 -background #fefefe -borderwidth 1 -textvariable ie_tablename - label $base.l2 -borderwidth 0 -text {File name} - entry $base.e2 -background #fefefe -borderwidth 1 -textvariable ie_filename - label $base.l3 -borderwidth 0 -text {Field delimiter} - entry $base.e3 -background #fefefe -borderwidth 1 -textvariable ie_delimiter - button $base.expbtn -borderwidth 1 -command {if {$ie_tablename==""} { - show_error "You have to supply a table name!" - } elseif {$ie_filename==""} { - show_error "You have to supply a external file name!" - } else { - if {$ie_delimiter==""} { - set sup "" - } else { - set sup " USING DELIMITERS '$ie_delimiter'" - } - if {[.iew.expbtn cget -text]=="Import"} { - set oper "FROM" - } else { - set oper "TO" - } - if {$oicb} { - set sup2 " WITH OIDS " - } else { - set sup2 "" - } - set sqlcmd "COPY $ie_tablename $sup2 $oper '$ie_filename'$sup" - cursor_clock - if {[sql_exec noquiet $sqlcmd]} { - tk_messageBox -title Information -parent .iew -message "Operation completed!" - Window destroy .iew - } - cursor_normal - }} -text Export - button $base.cancelbtn -borderwidth 1 -command {Window destroy .iew} -text Cancel - checkbutton $base.oicb -borderwidth 1 -text {with OIDs} -variable oicb - place $base.l1 -x 25 -y 15 -anchor nw -bordermode ignore - place $base.e1 -x 115 -y 10 -height 22 -anchor nw -bordermode ignore - place $base.l2 -x 25 -y 45 -anchor nw -bordermode ignore - place $base.e2 -x 115 -y 40 -height 22 -anchor nw -bordermode ignore - place $base.l3 -x 25 -y 75 -height 18 -anchor nw -bordermode ignore - place $base.e3 -x 115 -y 74 -width 33 -height 22 -anchor nw -bordermode ignore - place $base.expbtn -x 60 -y 110 -height 25 -width 75 -anchor nw -bordermode ignore - place $base.cancelbtn -x 155 -y 110 -height 25 -width 75 -anchor nw -bordermode ignore - place $base.oicb -x 170 -y 75 -anchor nw -bordermode ignore - } - - proc {mw_canvas_paste} {wn x y} { - global mw - $wn.c insert $mw($wn,id_edited) insert [selection get] - set mw($wn,dirtyrec) 1 - } - - proc {mw_create_window} {} { - global mwcount - set base .mw$mwcount - set wn .mw$mwcount - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - wm geometry $base 550x400 - wm maxsize $base 1009 738 - wm minsize $base 550 400 - wm overrideredirect $base 0 - wm resizable $base 1 1 - wm deiconify $base - wm title $base "Table browser" - bind $base "mw_delete_record $wn" - frame $base.f1 -borderwidth 2 -height 75 -relief groove -width 125 - label $base.f1.l1 -borderwidth 0 -text {Sort field} - entry $base.f1.e1 -background #fefefe -borderwidth 1 -width 14 -highlightthickness 1 -textvariable mw($wn,sortfield) - bind $base.f1.e1 "mw_reload $wn" - bind $base.f1.e1 "mw_reload $wn" - label $base.f1.lb1 -borderwidth 0 -text { } - label $base.f1.l2 -borderwidth 0 -text {Filter conditions} - entry $base.f1.e2 -background #fefefe -borderwidth 1 -highlightthickness 1 -textvariable mw($wn,filter) - bind $base.f1.e2 "mw_reload $wn" - bind $base.f1.e2 "mw_reload $wn" - button $base.f1.b1 -borderwidth 1 -text Close -command " - if {\[mw_save_new_record $wn\]} { - $wn.c delete rows - $wn.c delete header - set sortfield {} - set filter {} - Window destroy $wn - mw_free_variables $wn - } - " - button $base.f1.b2 -borderwidth 1 -text Reload -command "mw_reload $wn" - frame $base.frame20 -borderwidth 2 -height 75 -relief groove -width 125 - button $base.frame20.01 -borderwidth 1 -text < -command "mw_pan_right $wn" - label $base.frame20.02 -anchor w -borderwidth 1 -height 1 -relief sunken -text {} -textvariable mw($wn,msg) - button $base.frame20.03 -borderwidth 1 -text > -command "mw_pan_left $wn" - canvas $base.c -background #fefefe -borderwidth 2 -height 207 -highlightthickness 0 -relief ridge -selectborderwidth 0 -takefocus 1 -width 295 - scrollbar $base.sb -borderwidth 1 -orient vert -width 12 -command "mw_scroll_window $wn" - bind $base.c "mw_canvas_click $wn %x %y" - bind $base.c "mw_canvas_paste $wn %x %y" - bind $base.c "if {[mw_exit_edit $wn]} \"mw_save_new_record $wn\"" - pack $base.f1 -in $wn -anchor center -expand 0 -fill x -side top - pack $base.f1.l1 -in $wn.f1 -anchor center -expand 0 -fill none -side left - pack $base.f1.e1 -in $wn.f1 -anchor center -expand 0 -fill none -side left - pack $base.f1.lb1 -in $wn.f1 -anchor center -expand 0 -fill none -side left - pack $base.f1.l2 -in $wn.f1 -anchor center -expand 0 -fill none -side left - pack $base.f1.e2 -in $wn.f1 -anchor center -expand 0 -fill none -side left - pack $base.f1.b1 -in $wn.f1 -anchor center -expand 0 -fill none -side right - pack $base.f1.b2 -in $wn.f1 -anchor center -expand 0 -fill none -side right - pack $base.frame20 -in $wn -anchor s -expand 0 -fill x -side bottom - pack $base.frame20.01 -in $wn.frame20 -anchor center -expand 0 -fill none -side left - pack $base.frame20.02 -in $wn.frame20 -anchor center -expand 1 -fill x -side left - pack $base.frame20.03 -in $wn.frame20 -anchor center -expand 0 -fill none -side right - pack $base.c -in $wn -anchor w -expand 1 -fill both -side left - pack $base.sb -in $wn -anchor e -expand 0 -fill y -side right - } - - proc vTclWindow.nt {base} { - global pref - if {$base == ""} { - set base .nt - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - wm geometry $base 614x392+78+181 - wm maxsize $base 1009 738 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 0 0 - wm deiconify $base - wm title $base "Create new table" - entry $base.etabn \ - -background #fefefe -borderwidth 1 -selectborderwidth 0 \ - -textvariable ntw(newtablename) - bind $base.etabn { - focus .nt.einh - } - label $base.li \ - -anchor w -borderwidth 0 -text Inherits - entry $base.einh \ - -background #fefefe -borderwidth 1 -selectborderwidth 0 \ - -textvariable ntw(fathername) - bind $base.einh { - focus .nt.e2 - } - button $base.binh \ - -borderwidth 1 \ - -command {if {[winfo exists .nt.ddf]} { - destroy .nt.ddf - } else { - create_drop_down .nt 386 23 220 - focus .nt.ddf.sb - foreach tbl [get_tables] {.nt.ddf.lb insert end $tbl} - bind .nt.ddf.lb { - set i [.nt.ddf.lb curselection] - if {$i!=""} { - if {$ntw(fathername)==""} { - set ntw(fathername) "\"[.nt.ddf.lb get $i]\"" - } else { - set ntw(fathername) "$ntw(fathername),\"[.nt.ddf.lb get $i]\"" - } - } - if {$i!=""} {focus .nt.e2} - destroy .nt.ddf - break - } - }} \ - -highlightthickness 0 -takefocus 0 -image dnarw - entry $base.e2 \ - -background #fefefe -borderwidth 1 -selectborderwidth 0 \ - -textvariable ntw(fldname) - bind $base.e2 { - focus .nt.e1 - } - entry $base.e1 \ - -background #fefefe -borderwidth 1 -selectborderwidth 0 \ - -textvariable ntw(fldtype) - bind $base.e1 { - focus .nt.e5 - } - entry $base.e3 \ - -background #fefefe -borderwidth 1 -selectborderwidth 0 \ - -textvariable ntw(fldsize) - bind $base.e3 { - focus .nt.e5 - } - entry $base.e5 \ - -background #fefefe -borderwidth 1 -selectborderwidth 0 \ - -textvariable ntw(defaultval) - bind $base.e5 { - focus .nt.cb1 - } - checkbutton $base.cb1 \ - -borderwidth 1 \ - -offvalue { } -onvalue { NOT NULL} -text {field cannot be null} \ - -variable ntw(notnull) - label $base.lab1 \ - -borderwidth 0 -text type - label $base.lab2 \ - -borderwidth 0 -anchor w -text {Field name} - label $base.lab3 \ - -borderwidth 0 -text size - label $base.lab4 \ - -borderwidth 0 -anchor w -text {Default value} - button $base.addfld \ - -borderwidth 1 -command add_new_field \ - -text {Add field} - button $base.delfld \ - -borderwidth 1 -command {catch {.nt.lb delete [.nt.lb curselection]}} \ - -text {Delete field} - button $base.emptb \ - -borderwidth 1 -command {.nt.lb delete 0 [.nt.lb size]} \ - -text {Delete all} - button $base.maketbl \ - -borderwidth 1 -command create_table \ - -text Create - listbox $base.lb \ - -background #fefefe -borderwidth 1 \ - -selectbackground #c3c3c3 \ - -font $pref(font_fix) \ - -selectborderwidth 0 -yscrollcommand {.nt.sb set} - bind $base.lb { - if {[.nt.lb curselection]!=""} { - set fldname [string trim [lindex [split [.nt.lb get [.nt.lb curselection]]] 0]] - } - } - button $base.exitbtn \ - -borderwidth 1 -command {Window destroy .nt} \ - -text Cancel - label $base.l1 \ - -anchor w -borderwidth 1 \ - -relief raised -text { field name} - label $base.l2 \ - -borderwidth 1 \ - -relief raised -text type - label $base.l3 \ - -borderwidth 1 \ - -relief raised -text options - scrollbar $base.sb \ - -borderwidth 1 -command {.nt.lb yview} -orient vert - label $base.l93 \ - -anchor w -borderwidth 0 -text {Table name} - button $base.mvup \ - -borderwidth 1 \ - -command {if {[.nt.lb size]>1} { - set i [.nt.lb curselection] - if {($i!="")&&($i>0)} { - .nt.lb insert [expr $i-1] [.nt.lb get $i] - .nt.lb delete [expr $i+1] - .nt.lb selection set [expr $i-1] - } - }} \ - -text {Move up} - button $base.mvdn \ - -borderwidth 1 \ - -command {if {[.nt.lb size]>1} { - set i [.nt.lb curselection] - if {($i!="")&&($i<[expr [.nt.lb size]-1])} { - .nt.lb insert [expr $i+2] [.nt.lb get $i] - .nt.lb delete $i - .nt.lb selection set [expr $i+1] - } - }} \ - -text {Move down} - button $base.button17 \ - -borderwidth 1 \ - -command { - if {[winfo exists .nt.ddf]} { - destroy .nt.ddf - } else { - create_drop_down .nt 291 80 97 - focus .nt.ddf.sb - .nt.ddf.lb insert end char varchar text int2 int4 serial float4 float8 money abstime date datetime interval reltime time timespan timestamp boolean box circle line lseg path point polygon - bind .nt.ddf.lb { - set i [.nt.ddf.lb curselection] - if {$i!=""} {set ntw(fldtype) [.nt.ddf.lb get $i]} - destroy .nt.ddf - if {$i!=""} {focus .nt.e3} - break - } - }} \ - -highlightthickness 0 -takefocus 0 -image dnarw - label $base.lco \ - -borderwidth 0 -anchor w -text Constraint - entry $base.eco \ - -background #fefefe -borderwidth 1 -textvariable ntw(constraint) - label $base.lch \ - -borderwidth 0 -text check - entry $base.ech \ - -background #fefefe -borderwidth 1 -textvariable ntw(check) - label $base.ll \ - -borderwidth 1 \ - -relief raised - checkbutton $base.pk \ - -borderwidth 1 \ - -offvalue { } -onvalue * -text {primary key} -variable ntw(pk) - label $base.lpk \ - -borderwidth 1 \ - -relief raised -text K - place $base.etabn \ - -x 85 -y 5 -width 156 -height 20 -anchor nw -bordermode ignore - place $base.li \ - -x 245 -y 7 -width 42 -height 16 -anchor nw -bordermode ignore - place $base.einh \ - -x 290 -y 5 -width 318 -height 20 -anchor nw -bordermode ignore - place $base.binh \ - -x 590 -y 7 -width 16 -height 16 -anchor nw -bordermode ignore - place $base.e2 \ - -x 85 -y 60 -width 156 -height 20 -anchor nw -bordermode ignore - place $base.e1 \ - -x 291 -y 60 -width 98 -height 20 -anchor nw -bordermode ignore - place $base.e3 \ - -x 445 -y 60 -width 46 -height 20 -anchor nw -bordermode ignore - place $base.e5 \ - -x 85 -y 82 -width 156 -height 20 -anchor nw -bordermode ignore - place $base.cb1 \ - -x 245 -y 83 -width 131 -height 20 -anchor nw -bordermode ignore - place $base.lab1 \ - -x 247 -y 62 -width 26 -height 16 -anchor nw -bordermode ignore - place $base.lab2 \ - -x 4 -y 62 -width 64 -height 16 -anchor nw -bordermode ignore - place $base.lab3 \ - -x 410 -y 62 -width 24 -height 16 -anchor nw -bordermode ignore - place $base.lab4 \ - -x 5 -y 83 -width 76 -height 16 -anchor nw -bordermode ignore - place $base.addfld \ - -x 534 -y 60 -width 75 -height 26 -anchor nw -bordermode ignore - place $base.delfld \ - -x 534 -y 190 -width 75 -height 26 -anchor nw -bordermode ignore - place $base.emptb \ - -x 534 -y 220 -width 75 -height 26 -anchor nw -bordermode ignore - place $base.maketbl \ - -x 534 -y 365 -width 75 -height 26 -anchor nw -bordermode ignore - place $base.lb \ - -x 4 -y 121 -width 506 -height 269 -anchor nw -bordermode ignore - place $base.exitbtn \ - -x 534 -y 335 -width 75 -height 26 -anchor nw -bordermode ignore - place $base.l1 \ - -x 18 -y 105 -width 195 -height 18 -anchor nw -bordermode ignore - place $base.l2 \ - -x 213 -y 105 -width 88 -height 18 -anchor nw -bordermode ignore - place $base.l3 \ - -x 301 -y 105 -width 225 -height 18 -anchor nw -bordermode ignore - place $base.sb \ - -x 509 -y 121 -width 18 -height 269 -anchor nw -bordermode ignore - place $base.l93 \ - -x 4 -y 7 -width 67 -height 16 -anchor nw -bordermode ignore - place $base.mvup \ - -x 534 -y 120 -width 75 -height 26 -anchor nw -bordermode ignore - place $base.mvdn \ - -x 534 -y 150 -width 75 -height 26 -anchor nw -bordermode ignore - place $base.button17 \ - -x 371 -y 62 -width 16 -height 16 -anchor nw -bordermode ignore - place $base.lco \ - -x 5 -y 28 -width 58 -height 16 -anchor nw -bordermode ignore - place $base.eco \ - -x 85 -y 27 -width 156 -height 20 -anchor nw -bordermode ignore - place $base.lch \ - -x 245 -y 30 -anchor nw -bordermode ignore - place $base.ech \ - -x 290 -y 27 -width 318 -height 22 -anchor nw -bordermode ignore - place $base.ll \ - -x 5 -y 53 -width 603 -height 2 -anchor nw -bordermode ignore - place $base.pk \ - -x 407 -y 83 -width 93 -height 20 -anchor nw -bordermode ignore - place $base.lpk \ - -x 4 -y 105 -width 14 -height 18 -anchor nw -bordermode ignore - } - - proc vTclWindow.pw {base} { - global pref - if {$base == ""} { - set base .pw - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - wm geometry $base 322x227+210+219 - wm maxsize $base 1009 738 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 0 0 - wm title $base "Preferences" - label $base.l1 -borderwidth 0 -text {Max rows displayed in table/query view} - entry $base.e1 -background #fefefe -borderwidth 1 -highlightthickness 1 -selectborderwidth 0 -textvariable pref(rows) - label $base.l2 -borderwidth 0 -text "Table viewer font" - radiobutton $base.tvf -borderwidth 1 -text {fixed width} -value clean -variable pref(tvfont) - radiobutton $base.tvfv -borderwidth 1 -text proportional -value helv -variable pref(tvfont) - label $base.lfn -borderwidth 0 -anchor w -text "Font normal" - label $base.lfb -borderwidth 0 -anchor w -text "Font bold" - label $base.lfi -borderwidth 0 -anchor w -text "Font italic" - label $base.lff -borderwidth 0 -anchor w -text "Font fixed" - entry $base.efn -borderwidth 1 -highlightthickness 1 -selectborderwidth 0 -textvariable pref(font_normal) - entry $base.efb -borderwidth 1 -highlightthickness 1 -selectborderwidth 0 -textvariable pref(font_bold) - entry $base.efi -borderwidth 1 -highlightthickness 1 -selectborderwidth 0 -textvariable pref(font_italic) - entry $base.eff -borderwidth 1 -highlightthickness 1 -selectborderwidth 0 -textvariable pref(font_fix) - label $base.ll -borderwidth 1 -relief sunken - checkbutton $base.alcb -borderwidth 1 -text {Auto-load the last opened database at startup} -variable pref(autoload) - button $base.okbtn -borderwidth 1 -command { - if {$pref(rows)>200} { - tk_messageBox -title Warning -parent .pw -message "A big number of rows displayed in table view will take a lot of memory!" - } - save_pref - Window destroy .pw - tk_messageBox -title Warning -message "Changed fonts may appear in the next working session!" - } -text Ok - place $base.l1 -x 10 -y 10 -anchor nw -bordermode ignore - place $base.e1 -x 240 -y 8 -width 65 -height 20 -anchor nw -bordermode ignore - place $base.l2 -x 10 -y 38 -anchor nw -bordermode ignore - place $base.tvf -x 115 -y 34 -anchor nw -bordermode ignore - place $base.tvfv -x 205 -y 34 -anchor nw -bordermode ignore - place $base.lfn -x 10 -y 65 -anchor nw - place $base.lfb -x 10 -y 86 -anchor nw - place $base.lfi -x 10 -y 107 -anchor nw - place $base.lff -x 10 -y 128 -anchor nw - place $base.efn -x 80 -y 63 -width 230 -height 20 - place $base.efb -x 80 -y 84 -width 230 -height 20 - place $base.efi -x 80 -y 105 -width 230 -height 20 - place $base.eff -x 80 -y 126 -width 230 -height 20 - place $base.ll -x 10 -y 150 -width 301 -height 2 -anchor nw -bordermode ignore - place $base.alcb -x 10 -y 155 -anchor nw -bordermode ignore - place $base.okbtn -x 125 -y 195 -width 80 -height 26 -anchor nw -bordermode ignore - } - - proc vTclWindow.qb {base} { - global pref - if {$base == ""} { - set base .qb - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - wm geometry $base 442x344+150+150 - wm maxsize $base 1009 738 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 0 0 - wm deiconify $base - wm title $base "Query builder" - label $base.lqn -borderwidth 0 -text {Query name} - entry $base.eqn -background #fefefe -borderwidth 1 -foreground #000000 -highlightthickness 1 -selectborderwidth 0 -textvariable queryname - button $base.savebtn -borderwidth 1 -command {if {$queryname==""} then { - show_error "You have to supply a name for this query!" - focus .qb.eqn - } else { - set qcmd [.qb.text1 get 1.0 end] - regsub -all "\n" $qcmd " " qcmd - if {$qcmd==""} then { - show_error "This query has no commands ?" - } else { - if { [lindex [split [string toupper [string trim $qcmd]]] 0] == "SELECT" } { - set qtype S - } else { - set qtype A - } - if {$cbv} { - wpg_select $dbc "select pg_get_viewdef('$queryname') as vd" tup { - if {$tup(vd)!="Not a view"} { - if {[tk_messageBox -title Warning -message "View '$queryname' already exists! Delete ?" -type yesno -default no]=="yes"} { - set pg_res [wpg_exec $dbc "drop view \"$queryname\""] - if {$pgsql(status)!="PGRES_COMMAND_OK"} { - show_error "Error deleting view '$queryname'" - } - } - } - } - set pgres [wpg_exec $dbc "create view \"$queryname\" as $qcmd"] - if {$pgsql(status)!="PGRES_COMMAND_OK"} { - show_error "Error defining view\n\n$pgsql(errmsg)" - } else { - tab_click .dw.tabViews - Window destroy .qb - } - catch {pg_result $pgres -clear} - } else { - regsub -all "'" $qcmd "''" qcmd - cursor_clock - if {$queryoid==0} then { - set pgres [wpg_exec $dbc "insert into pga_queries values ('$queryname','$qtype','$qcmd')"] - } else { - set pgres [wpg_exec $dbc "update pga_queries set queryname='$queryname',querytype='$qtype',querycommand='$qcmd' where oid=$queryoid"] - } - cursor_normal - if {$pgsql(status)!="PGRES_COMMAND_OK"} then { - show_error "Error executing query\n$pgres(errmsg)" - } else { - tab_click .dw.tabQueries - if {$queryoid==0} {set queryoid [pg_result $pgres -oid]} - } - } - catch {pg_result $pgres -clear} - } - }} -text {Save query definition} - button $base.execbtn -borderwidth 1 -command { - set qcmd [.qb.text1 get 0.0 end] - regsub -all "\n" [string trim $qcmd] " " qcmd - if {[lindex [split [string toupper $qcmd]] 0]!="SELECT"} { - if {[tk_messageBox -title Warning -parent .qb -message "This is an action query!\n\nExecute it?" -type yesno -default no]=="yes"} { - sql_exec noquiet $qcmd - } - } else { - set wn [mw_get_new_name] - set mw($wn,query) [subst $qcmd] - set mw($wn,updatable) 0 - set mw($wn,isaquery) 1 - mw_create_window - mw_load_layout $wn $queryname - mw_select_records $wn $mw($wn,query) - } - } -text {Execute query} - button $base.termbtn -borderwidth 1 -command {.qb.cbv configure -state normal - set cbv 0 - set queryname {} - .qb.text1 delete 1.0 end - Window destroy .qb} -text Close - text $base.text1 -background #fefefe -borderwidth 1 -font $pref(font_normal) -foreground #000000 -highlightthickness 1 -wrap word - checkbutton $base.cbv -borderwidth 1 -text {Save this query as a view} -variable cbv - button $base.qlshow -borderwidth 1 -command {Window show .ql - ql_draw_lizzard - focus .ql.entt} -text {Visual designer} - place $base.lqn -x 5 -y 5 -anchor nw -bordermode ignore - place $base.eqn -x 80 -y 1 -width 355 -height 24 -anchor nw -bordermode ignore - place $base.savebtn -x 5 -y 60 -height 25 -anchor nw -bordermode ignore - place $base.execbtn -x 150 -y 60 -height 25 -anchor nw -bordermode ignore - place $base.termbtn -x 375 -y 60 -width 50 -height 25 -anchor nw -bordermode ignore - place $base.text1 -x 5 -y 90 -width 430 -height 246 -anchor nw -bordermode ignore - place $base.cbv -x 5 -y 30 -height 25 -anchor nw -bordermode ignore - place $base.qlshow -x 255 -y 60 -height 25 -anchor nw -bordermode ignore - } - - proc vTclWindow.ql {base} { - global pref - if {$base == ""} { - set base .ql - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - wm geometry $base 759x530+10+13 - wm maxsize $base 1009 738 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 1 1 - wm deiconify $base - wm title $base "Visual query designer" - bind $base { - ql_pan %x %y - } - bind $base { - qlc_click %x %y %W - } - bind $base { - ql_dragstop %x %y - } - bind $base { - ql_delete_object - } - canvas $base.c -background #fefefe -borderwidth 2 -height 207 -relief ridge -takefocus 0 -width 295 - button $base.exitbtn -borderwidth 1 -command { - ql_init - Window destroy .ql} -text Close - button $base.showbtn -borderwidth 1 -command ql_show_sql -text {Show SQL} - label $base.l12 -borderwidth 0 -text {Add table} - entry $base.entt -background #fefefe -borderwidth 1 -highlightthickness 1 -selectborderwidth 0 -textvariable qlvar(newtablename) - bind $base.entt { - ql_add_new_table - } - button $base.execbtn -borderwidth 1 -command { - set qcmd [ql_compute_sql] - set wn [mw_get_new_name] - set mw($wn,query) [subst $qcmd] - set mw($wn,updatable) 0 - set mw($wn,isaquery) 1 - mw_create_window - mw_load_layout $wn nolayoutneeded - mw_select_records $wn $mw($wn,query)} -text {Execute SQL} - button $base.stoqb -borderwidth 1 -command {Window show .qb - .qb.text1 delete 1.0 end - .qb.text1 insert end [ql_compute_sql] - focus .qb} -text {Save to query builder} - button $base.bdd -borderwidth 1 -command {if {[winfo exists .ql.ddf]} { - destroy .ql.ddf - } else { - create_drop_down .ql 70 27 200 - focus .ql.ddf.sb - foreach tbl [get_tables] {.ql.ddf.lb insert end $tbl} - bind .ql.ddf.lb { - set i [.ql.ddf.lb curselection] - if {$i!=""} { - set qlvar(newtablename) [.ql.ddf.lb get $i] - ql_add_new_table - } - destroy .ql.ddf - break - } - }} -image dnarw - place $base.c -x 5 -y 30 -width 748 -height 500 -anchor nw -bordermode ignore - place $base.exitbtn -x 695 -y 5 -height 25 -anchor nw -bordermode ignore - place $base.showbtn -x 367 -y 5 -height 25 -anchor nw -bordermode ignore - place $base.l12 -x 10 -y 8 -width 53 -height 16 -anchor nw -bordermode ignore - place $base.entt -x 70 -y 7 -width 126 -height 20 -anchor nw -bordermode ignore - place $base.execbtn -x 452 -y 5 -height 25 -anchor nw -bordermode ignore - place $base.stoqb -x 550 -y 5 -height 25 -anchor nw -bordermode ignore - place $base.bdd -x 200 -y 7 -width 17 -height 20 -anchor nw -bordermode ignore - } - - - proc vTclWindow.rf {base} { - if {$base == ""} { - set base .rf - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - wm geometry $base 272x105+294+262 - wm maxsize $base 1009 738 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 0 0 - wm title $base "Rename" - label $base.l1 -borderwidth 0 -text {New name} - entry $base.e1 -background #fefefe -borderwidth 1 -textvariable newobjname - button $base.b1 -borderwidth 1 -command { - if {$newobjname==""} { - show_error "You must give object a new name!" - } elseif {$activetab=="Tables"} { - set retval [sql_exec noquiet "alter table \"$oldobjname\" rename to \"$newobjname\""] - if {$retval} { - sql_exec quiet "update pga_layout set tablename='$newobjname' where tablename='$oldobjname'" - cmd_Tables - Window destroy .rf - } - } elseif {$activetab=="Queries"} { - set pgres [wpg_exec $dbc "select * from pga_queries where queryname='$newobjname'"] - if {$pgsql(status)!="PGRES_TUPLES_OK"} { - show_error "Error retrieving from pga_queries\n$pgsql(errmsg)\n$pgsql(status)" - } elseif {[pg_result $pgres -numTuples]>0} { - show_error "Query \"$newobjname\" already exists!" - } else { - sql_exec noquiet "update pga_queries set queryname='$newobjname' where queryname='$oldobjname'" - sql_exec noquiet "update pga_layout set tablename='$newobjname' where tablename='$oldobjname'" - cmd_Queries - Window destroy .rf - } - catch {pg_result $pgres -clear} - } - } -text Rename - button $base.b2 -borderwidth 1 -command {Window destroy .rf} -text Cancel - place $base.l1 -x 15 -y 28 -anchor nw -bordermode ignore - place $base.e1 -x 100 -y 25 -anchor nw -bordermode ignore - place $base.b1 -x 65 -y 65 -width 70 -anchor nw -bordermode ignore - place $base.b2 -x 145 -y 65 -width 70 -anchor nw -bordermode ignore - } - - proc vTclWindow.rb {base} { - global pref - if {$base == ""} { - set base .rb - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - wm geometry $base 652x426+96+120 - wm maxsize $base 1009 738 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 0 0 - wm deiconify $base - wm title $base "Report builder" - label $base.l1 \ - -borderwidth 1 \ - -relief raised -text {Report fields} - listbox $base.lb \ - -background #fefefe -borderwidth 1 \ - -selectbackground #c3c3c3 \ - -highlightthickness 1 -selectborderwidth 0 \ - -yscrollcommand {.rb.sb set} - bind $base.lb { - rb_add_field - } - canvas $base.c \ - -background #fffeff -borderwidth 2 -height 207 -highlightthickness 0 \ - -relief ridge -takefocus 1 -width 295 - bind $base.c { - rb_dragstart %W %x %y - } - bind $base.c { - rb_dragstop %x %y - } - bind $base.c { - rb_delete_object - } - bind $base.c { - rb_dragit %W %x %y - } - button $base.bt2 \ - -borderwidth 1 \ - -command {if {[tk_messageBox -title Warning -parent .rb -message "All report information will be deleted.\n\nProceed ?" -type yesno -default no]=="yes"} then { - .rb.c delete all - rb_init - rb_draw_regions - }} \ - -text {Clear all} - button $base.bt4 \ - -borderwidth 1 -command rb_preview \ - -text Preview - button $base.bt5 \ - -borderwidth 1 -command {Window destroy .rb} \ - -text Quit - scrollbar $base.sb \ - -borderwidth 1 -command {.rb.lb yview} -orient vert - label $base.lmsg \ - -anchor w \ - -relief groove -text {Report header} -textvariable rbvar(msg) - entry $base.e2 \ - -background #fefefe -borderwidth 1 -highlightthickness 0 \ - -textvariable rbvar(tablename) - bind $base.e2 { - rb_get_report_fields - } - entry $base.elab \ - -background #fefefe -borderwidth 1 -highlightthickness 0 \ - -textvariable rbvar(labeltext) - button $base.badl \ - -borderwidth 1 -command rb_add_label \ - -text {Add label} - label $base.lbold \ - -borderwidth 1 -relief raised -text B - bind $base.lbold { - if {[rb_get_bold]=="Bold"} { - .rb.lbold configure -relief raised - } else { - .rb.lbold configure -relief sunken - } - rb_change_object_font - } - label $base.lita \ - -borderwidth 1 \ - -font $pref(font_italic) \ - -relief raised -text i - bind $base.lita { - if {[rb_get_italic]=="O"} { - .rb.lita configure -relief raised - } else { - .rb.lita configure -relief sunken - } - rb_change_object_font - } - entry $base.eps \ - -background #fefefe -highlightthickness 0 -relief groove \ - -textvariable rbvar(pointsize) - bind $base.eps { - rb_change_object_font - } - label $base.linfo \ - -anchor w \ - -relief groove -text {Database field} -textvariable rbvar(info) - label $base.llal \ - -borderwidth 0 -text Align - button $base.balign \ - -borderwidth 0 -command rb_flip_align \ - -relief groove -text right - button $base.savebtn \ - -borderwidth 1 -command rb_save_report \ - -text Save - label $base.lfn \ - -borderwidth 0 -text Font - button $base.bfont \ - -borderwidth 0 \ - -command {set temp [.rb.bfont cget -text] - if {$temp=="Courier"} then { - .rb.bfont configure -text Helvetica - } else { - .rb.bfont configure -text Courier - } - rb_change_object_font} \ - -relief groove -text Courier - button $base.bdd \ - -borderwidth 1 \ - -command {if {[winfo exists .rb.ddf]} { - destroy .rb.ddf - } else { - create_drop_down .rb 405 22 200 - focus .rb.ddf.sb - foreach tbl [get_tables] {.rb.ddf.lb insert end $tbl} - bind .rb.ddf.lb { - set i [.rb.ddf.lb curselection] - if {$i!=""} {set rbvar(tablename) [.rb.ddf.lb get $i]} - destroy .rb.ddf - rb_get_report_fields - break - } - }} \ - -highlightthickness 0 -image dnarw - label $base.lrn \ - -borderwidth 0 -text {Report name} - entry $base.ern \ - -background #fefefe -borderwidth 1 -highlightthickness 0 \ - -textvariable rbvar(reportname) - bind $base.ern { - rb_load_report - } - label $base.lrs \ - -borderwidth 0 -text {Report source} - label $base.ls \ - -borderwidth 1 -relief raised - entry $base.ef \ - -background #fefefe -borderwidth 1 -highlightthickness 0 \ - -textvariable rbvar(formula) - button $base.baf \ - -borderwidth 1 \ - -text {Add formula} - place $base.l1 \ - -x 5 -y 55 -width 131 -height 18 -anchor nw -bordermode ignore - place $base.lb \ - -x 5 -y 70 -width 118 -height 121 -anchor nw -bordermode ignore - place $base.c \ - -x 140 -y 75 -width 508 -height 345 -anchor nw -bordermode ignore - place $base.bt2 \ - -x 5 -y 365 -width 64 -height 26 -anchor nw -bordermode ignore - place $base.bt4 \ - -x 70 -y 365 -width 66 -height 26 -anchor nw -bordermode ignore - place $base.bt5 \ - -x 70 -y 395 -width 66 -height 26 -anchor nw -bordermode ignore - place $base.sb \ - -x 120 -y 70 -width 18 -height 122 -anchor nw -bordermode ignore - place $base.lmsg \ - -x 142 -y 55 -width 151 -height 18 -anchor nw -bordermode ignore - place $base.e2 \ - -x 405 -y 4 -width 129 -height 18 -anchor nw -bordermode ignore - place $base.elab \ - -x 5 -y 225 -width 130 -height 18 -anchor nw -bordermode ignore - place $base.badl \ - -x 5 -y 243 -width 132 -height 26 -anchor nw -bordermode ignore - place $base.lbold \ - -x 535 -y 55 -width 18 -height 18 -anchor nw -bordermode ignore - place $base.lita \ - -x 555 -y 55 -width 18 -height 18 -anchor nw -bordermode ignore - place $base.eps \ - -x 500 -y 55 -width 30 -height 18 -anchor nw -bordermode ignore - place $base.linfo \ - -x 295 -y 55 -width 91 -height 18 -anchor nw -bordermode ignore - place $base.llal \ - -x 575 -y 56 -anchor nw -bordermode ignore - place $base.balign \ - -x 610 -y 54 -width 35 -height 21 -anchor nw -bordermode ignore - place $base.savebtn \ - -x 5 -y 395 -width 64 -height 26 -anchor nw -bordermode ignore - place $base.lfn \ - -x 405 -y 56 -anchor nw -bordermode ignore - place $base.bfont \ - -x 435 -y 54 -width 65 -height 21 -anchor nw -bordermode ignore - place $base.bdd \ - -x 535 -y 4 -width 15 -height 20 -anchor nw -bordermode ignore - place $base.lrn \ - -x 5 -y 5 -anchor nw -bordermode ignore - place $base.ern \ - -x 80 -y 4 -width 219 -height 18 -anchor nw -bordermode ignore - place $base.lrs \ - -x 320 -y 5 -anchor nw -bordermode ignore - place $base.ls \ - -x 5 -y 30 -width 641 -height 2 -anchor nw -bordermode ignore - place $base.ef \ - -x 5 -y 280 -width 130 -height 18 -anchor nw -bordermode ignore - place $base.baf \ - -x 5 -y 298 -width 132 -height 26 -anchor nw -bordermode ignore - } - - proc vTclWindow.rpv {base} { - if {$base == ""} { - set base .rpv - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - wm geometry $base 495x500+230+50 - wm maxsize $base 1009 738 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 1 1 - wm title $base "Report preview" - frame $base.fr \ - -borderwidth 2 -height 75 -relief groove -width 125 - canvas $base.fr.c \ - -background #fcfefe -borderwidth 2 -height 207 -relief ridge \ - -scrollregion {0 0 1000 824} -width 295 \ - -yscrollcommand {.rpv.fr.sb set} - scrollbar $base.fr.sb \ - -borderwidth 1 -command {.rpv.fr.c yview} -highlightthickness 0 \ - -orient vert -width 12 - frame $base.f1 \ - -borderwidth 2 -height 75 -width 125 - button $base.f1.button18 \ - -borderwidth 1 -command {if {$rbvar(justpreview)} then {Window destroy .rb} ; Window destroy .rpv} \ - -text Close - button $base.f1.button17 \ - -borderwidth 1 -command rb_print_report \ - -text Print - pack $base.fr \ - -in .rpv -anchor center -expand 1 -fill both -side top - pack $base.fr.c \ - -in .rpv.fr -anchor center -expand 1 -fill both -side left - pack $base.fr.sb \ - -in .rpv.fr -anchor center -expand 0 -fill y -side right - pack $base.f1 \ - -in .rpv -anchor center -expand 0 -fill none -side top - pack $base.f1.button18 \ - -in .rpv.f1 -anchor center -expand 0 -fill none -side right - pack $base.f1.button17 \ - -in .rpv.f1 -anchor center -expand 0 -fill none -side left - } - - proc vTclWindow.sqf {base} { - if {$base == ""} { - set base .sqf - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - wm geometry $base 310x223+245+158 - wm maxsize $base 1009 738 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 0 0 - wm title $base "Sequence" - label $base.l1 -anchor w -borderwidth 0 -text {Sequence name} - entry $base.e1 -borderwidth 1 -highlightthickness 1 -textvariable seq_name - label $base.l2 -borderwidth 0 -text Increment - entry $base.e2 -borderwidth 1 -highlightthickness 1 -selectborderwidth 0 -textvariable seq_inc - label $base.l3 -borderwidth 0 -text {Start value} - entry $base.e3 -borderwidth 1 -highlightthickness 1 -selectborderwidth 0 -textvariable seq_start - label $base.l4 -borderwidth 0 -text Minvalue - entry $base.e4 -borderwidth 1 -highlightthickness 1 -selectborderwidth 0 -textvariable seq_minval - label $base.l5 -borderwidth 0 -text Maxvalue - entry $base.e5 -borderwidth 1 -highlightthickness 1 -selectborderwidth 0 -textvariable seq_maxval - button $base.defbtn -borderwidth 1 -command { - if {$seq_name==""} { - show_error "You should supply a name for this sequence" - } else { - set s1 {};set s2 {};set s3 {};set s4 {}; - if {$seq_inc!=""} {set s1 "increment $seq_inc"}; - if {$seq_start!=""} {set s2 "start $seq_start"}; - if {$seq_minval!=""} {set s3 "minvalue $seq_minval"}; - if {$seq_maxval!=""} {set s4 "maxvalue $seq_maxval"}; - set sqlcmd "create sequence \"$seq_name\" $s1 $s2 $s3 $s4" - if {[sql_exec noquiet $sqlcmd]} { - cmd_Sequences - tk_messageBox -title Information -parent .sqf -message "Sequence created!" - } - } - } -text {Define sequence} - button $base.closebtn -borderwidth 1 -command {for {set i 1} {$i<6} {incr i} { - .sqf.e$i configure -state normal - .sqf.e$i delete 0 end - .sqf.defbtn configure -state normal - .sqf.l3 configure -text {Start value} - } - place .sqf.defbtn -x 40 -y 175 - Window destroy .sqf - } -text Close - place $base.l1 -x 20 -y 20 -width 111 -height 18 -anchor nw -bordermode ignore - place $base.e1 -x 135 -y 19 -anchor nw -bordermode ignore - place $base.l2 -x 20 -y 50 -anchor nw -bordermode ignore - place $base.e2 -x 135 -y 49 -anchor nw -bordermode ignore - place $base.l3 -x 20 -y 80 -anchor nw -bordermode ignore - place $base.e3 -x 135 -y 79 -anchor nw -bordermode ignore - place $base.l4 -x 20 -y 110 -anchor nw -bordermode ignore - place $base.e4 -x 135 -y 109 -anchor nw -bordermode ignore - place $base.l5 -x 20 -y 140 -anchor nw -bordermode ignore - place $base.e5 -x 135 -y 139 -anchor nw -bordermode ignore - place $base.defbtn -x 40 -y 175 -anchor nw -bordermode ignore - place $base.closebtn -x 195 -y 175 -anchor nw -bordermode ignore - } - - proc vTclWindow.sw {base} { - global pref - if {$base == ""} { - set base .sw - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - wm geometry $base 594x416+192+152 - wm maxsize $base 1009 738 - wm minsize $base 300 300 - wm overrideredirect $base 0 - wm resizable $base 1 1 - wm title $base "Design script" - frame $base.f1 -height 55 -relief groove -width 125 - label $base.f1.l1 -borderwidth 0 -text {Script name} - entry $base.f1.e1 -background #fefefe -borderwidth 1 -highlightthickness 0 -textvariable scriptname -width 32 - text $base.src -background #fefefe -font $pref(font_normal) -height 2 -highlightthickness 1 -selectborderwidth 0 -width 2 - frame $base.f2 -height 75 -relief groove -width 125 - button $base.f2.b1 -borderwidth 1 -command {Window destroy .sw} -text Cancel - button $base.f2.b2 -borderwidth 1 -command {if {$scriptname==""} { - tk_messageBox -title Warning -parent .sw -message "The script must have a name!" - } else { - sql_exec noquiet "delete from pga_scripts where scriptname='$scriptname'" - regsub -all {\\} [.sw.src get 1.0 end] {\\\\} scriptsource - regsub -all ' $scriptsource \\' scriptsource - sql_exec noquiet "insert into pga_scripts values ('$scriptname','$scriptsource')" - cmd_Scripts - }} -text Save -width 6 - pack $base.f1 -in .sw -anchor center -expand 0 -fill x -pady 2 -side top - pack $base.f1.l1 -in .sw.f1 -anchor center -expand 0 -fill none -ipadx 2 -side left - pack $base.f1.e1 -in .sw.f1 -anchor center -expand 0 -fill none -side left - pack $base.src -in .sw -anchor center -expand 1 -fill both -padx 2 -side top - pack $base.f2 -in .sw -anchor center -expand 0 -fill none -side top - pack $base.f2.b1 -in .sw.f2 -anchor center -expand 0 -fill none -side right - pack $base.f2.b2 -in .sw.f2 -anchor center -expand 0 -fill none -side right - } - - proc vTclWindow.tiw {base} { - global pref - if {$base == ""} { - set base .tiw - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - wm geometry $base 390x460+243+20 - wm maxsize $base 1009 738 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 0 0 - wm title $base "Table information" - label $base.l1 -borderwidth 0 -text {Table name} - label $base.l2 -anchor w -borderwidth 0 -text conturi -textvariable tiw(tablename) - label $base.l3 -borderwidth 0 -text Owner - label $base.l4 -anchor w -borderwidth 1 -textvariable tiw(owner) - listbox $base.lb -background #fefefe -selectbackground #c3c3c3 -borderwidth 1 -font $pref(font_fix) -highlightthickness 1 -selectborderwidth 0 -yscrollcommand {.tiw.sb set} - scrollbar $base.sb -activebackground #d9d9d9 -activerelief sunken -borderwidth 1 -command {.tiw.lb yview} -orient vert - button $base.closebtn -borderwidth 1 -command {Window destroy .tiw} -pady 3 -text Close - button $base.renbtn -borderwidth 1 -command { - if {[set tiw(col_id) [.tiw.lb curselection]]==""} then {bell} else {set tiw(old_cn) [.tiw.lb get [.tiw.lb curselection]] ; set tiw(new_cn) {} ; Window show .rcw ; tkwait visibility .rcw ; wm transient .rcw .tiw ; focus .rcw.e1}} -text {Rename field} - button $base.addbtn -borderwidth 1 -command "Window show .anfw ; set anfw(name) {} ; set anfw(type) {} ; wm transient .anfw .tiw ; focus .anfw.e1" -text "Add new field" - label $base.l10 -borderwidth 1 -relief raised -text {field name} - label $base.l11 -borderwidth 1 -relief raised -text {field type} - label $base.l12 -borderwidth 1 -relief raised -text size - label $base.lfi -borderwidth 0 -text {Field information} - label $base.lii -borderwidth 1 -relief raised -text {Indexes defined} - listbox $base.ilb -background #fefefe -borderwidth 1 -highlightthickness 1 -selectborderwidth 0 -selectbackground #c3c3c3 - bind $base.ilb { - tiw_show_index - } - label $base.lip -borderwidth 1 -relief raised -text {index properties} - frame $base.fr11 -borderwidth 1 -height 75 -relief sunken -width 125 - label $base.fr11.l9 -borderwidth 0 -text {Is clustered ?} - label $base.fr11.l2 -borderwidth 0 -text {Is unique ?} - label $base.fr11.liu -anchor nw -borderwidth 0 -text Yes -textvariable tiw(isunique) - label $base.fr11.lic -anchor nw -borderwidth 0 -text No -textvariable tiw(isclustered) - label $base.fr11.l5 -borderwidth 0 -text {Fields :} - label $base.fr11.lif -anchor nw -borderwidth 1 -justify left -relief sunken -text cont -textvariable tiw(indexfields) -wraplength 170 - place $base.l1 -x 20 -y 15 -anchor nw -bordermode ignore - place $base.l2 -x 100 -y 14 -width 161 -height 18 -anchor nw -bordermode ignore - place $base.l3 -x 20 -y 35 -anchor nw -bordermode ignore - place $base.l4 -x 100 -y 34 -width 226 -height 18 -anchor nw -bordermode ignore - place $base.lb -x 20 -y 91 -width 338 -height 171 -anchor nw -bordermode ignore - place $base.renbtn -x 20 -y 263 -height 25 - place $base.addbtn -x 120 -y 263 -height 25 - place $base.sb -x 355 -y 90 -width 18 -height 173 -anchor nw -bordermode ignore - place $base.closebtn -x 325 -y 5 -height 25 -anchor nw -bordermode ignore - place $base.l10 -x 21 -y 75 -width 204 -height 18 -anchor nw -bordermode ignore - place $base.l11 -x 225 -y 75 -width 90 -height 18 -anchor nw -bordermode ignore - place $base.l12 -x 315 -y 75 -width 41 -height 18 -anchor nw -bordermode ignore - place $base.lfi -x 20 -y 55 -anchor nw -bordermode ignore - place $base.lii -x 20 -y 290 -width 151 -height 18 -anchor nw -bordermode ignore - place $base.ilb -x 20 -y 306 -width 150 -height 148 -anchor nw -bordermode ignore - place $base.lip -x 171 -y 290 -width 198 -height 18 -anchor nw -bordermode ignore - place $base.fr11 -x 170 -y 307 -width 199 -height 147 -anchor nw -bordermode ignore - place $base.fr11.l9 -x 10 -y 30 -anchor nw -bordermode ignore - place $base.fr11.l2 -x 10 -y 10 -anchor nw -bordermode ignore - place $base.fr11.liu -x 95 -y 10 -width 27 -height 16 -anchor nw -bordermode ignore - place $base.fr11.lic -x 95 -y 30 -width 32 -height 16 -anchor nw -bordermode ignore - place $base.fr11.l5 -x 10 -y 55 -anchor nw -bordermode ignore - place $base.fr11.lif -x 10 -y 70 -width 178 -height 68 -anchor nw -bordermode ignore - } - - proc vTclWindow.fd {base} { - if {$base == ""} { - set base .fd - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - wm geometry $base 377x315+103+101 - wm maxsize $base 785 570 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 1 1 - wm deiconify $base - wm title $base "Form design" - bind $base { - fd_delete_object - } - canvas $base.c \ - -background #828282 -height 207 -highlightthickness 0 -relief ridge \ - -selectborderwidth 0 -width 295 - bind $base.c { - fd_mouse_down %x %y - } - bind $base.c { - fd_mouse_up %x %y - } - bind $base.c { - fd_mouse_move %x %y - } - pack $base.c \ - -in .fd -anchor center -expand 1 -fill both -side top - } - - proc vTclWindow.fda {base} { - if {$base == ""} { - set base .fda - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - wm geometry $base 225x197+561+0 - wm maxsize $base 785 570 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 1 1 - wm deiconify $base - wm title $base "Attributes" - label $base.l1 \ - -anchor nw -borderwidth 0 \ - -justify left -text Name -width 8 - entry $base.e1 \ - -background #fefefe -borderwidth 1 -highlightthickness 0 \ - -selectborderwidth 0 -textvariable fdvar(c_name) - bind $base.e1 { - fd_set_name - } - label $base.l2 \ - -anchor nw -borderwidth 0 \ - -justify left -text Top -width 8 - entry $base.e2 \ - -background #fefefe -borderwidth 1 -highlightthickness 0 \ - -selectborderwidth 0 -textvariable fdvar(c_top) - bind $base.e2 { - fd_change_coord - } - label $base.l3 \ - -anchor w -borderwidth 0 \ - -text Left -width 8 - entry $base.e3 \ - -background #fefefe -borderwidth 1 -highlightthickness 0 \ - -selectborderwidth 0 -textvariable fdvar(c_left) - bind $base.e3 { - fd_change_coord - } - label $base.l4 \ - -anchor w -borderwidth 0 \ - -text Width \ - -width 8 - entry $base.e4 \ - -background #fefefe -borderwidth 1 -highlightthickness 0 \ - -selectborderwidth 0 -textvariable fdvar(c_width) - bind $base.e4 { - fd_change_coord - } - label $base.l5 \ - -anchor w -borderwidth 0 -padx 0 -text Height -width 8 - entry $base.e5 \ - -background #fefefe -borderwidth 1 -highlightthickness 0 \ - -selectborderwidth 0 -textvariable fdvar(c_height) - bind $base.e5 { - fd_change_coord - } - label $base.l6 \ - -borderwidth 0 -text Command - entry $base.e6 \ - -background #fefefe -borderwidth 1 -highlightthickness 0 \ - -selectborderwidth 0 -textvariable fdvar(c_cmd) - bind $base.e6 { - fd_set_command - } - button $base.bcmd \ - -borderwidth 1 \ - -command {Window show .fdcmd - .fdcmd.f.txt delete 1.0 end - .fdcmd.f.txt insert end $fdvar(c_cmd)} \ - -text ... -width 1 - label $base.l7 \ - -anchor w -borderwidth 0 \ - -text Variable -width 8 - entry $base.e7 \ - -background #fefefe -borderwidth 1 -highlightthickness 0 \ - -selectborderwidth 0 -textvariable fdvar(c_var) - bind $base.e7 { - set fdobj($fdvar(moveitemobj),v) $fdvar(c_var) - } - label $base.l8 \ - -anchor w -borderwidth 0 \ - -text Text -width 8 - entry $base.e8 \ - -background #fefefe -borderwidth 1 -highlightthickness 0 \ - -selectborderwidth 0 -textvariable fdvar(c_text) - bind $base.e8 { - fd_set_text - } - label $base.l0 \ - -borderwidth 1 -relief raised -text {checkbox .udf0.checkbox17} \ - -textvariable fdvar(c_info) -width 28 - grid $base.l1 \ - -in .fda -column 0 -row 1 -columnspan 1 -rowspan 1 - grid $base.e1 \ - -in .fda -column 1 -row 1 -columnspan 1 -rowspan 1 -pady 2 - grid $base.l2 \ - -in .fda -column 0 -row 2 -columnspan 1 -rowspan 1 - grid $base.e2 \ - -in .fda -column 1 -row 2 -columnspan 1 -rowspan 1 - grid $base.l3 \ - -in .fda -column 0 -row 3 -columnspan 1 -rowspan 1 - grid $base.e3 \ - -in .fda -column 1 -row 3 -columnspan 1 -rowspan 1 -pady 2 - grid $base.l4 \ - -in .fda -column 0 -row 4 -columnspan 1 -rowspan 1 - grid $base.e4 \ - -in .fda -column 1 -row 4 -columnspan 1 -rowspan 1 - grid $base.l5 \ - -in .fda -column 0 -row 5 -columnspan 1 -rowspan 1 - grid $base.e5 \ - -in .fda -column 1 -row 5 -columnspan 1 -rowspan 1 -pady 2 - grid $base.l6 \ - -in .fda -column 0 -row 6 -columnspan 1 -rowspan 1 - grid $base.e6 \ - -in .fda -column 1 -row 6 -columnspan 1 -rowspan 1 - grid $base.bcmd \ - -in .fda -column 2 -row 6 -columnspan 1 -rowspan 1 - grid $base.l7 \ - -in .fda -column 0 -row 7 -columnspan 1 -rowspan 1 - grid $base.e7 \ - -in .fda -column 1 -row 7 -columnspan 1 -rowspan 1 - grid $base.l8 \ - -in .fda -column 0 -row 8 -columnspan 1 -rowspan 1 - grid $base.e8 \ - -in .fda -column 1 -row 8 -columnspan 1 -rowspan 1 -pady 2 - grid $base.l0 \ - -in .fda -column 0 -row 0 -columnspan 2 -rowspan 1 - } - - proc vTclWindow.fdcmd {base} { - global pref - if {$base == ""} { - set base .fdcmd - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - wm geometry $base 282x274+504+229 - wm maxsize $base 785 570 - wm minsize $base 1 19 - wm overrideredirect $base 0 - wm resizable $base 1 1 - wm title $base "Command" - frame $base.f \ - -borderwidth 2 -height 75 -relief groove -width 125 - scrollbar $base.f.sb \ - -borderwidth 1 -command {.fdcmd.f.txt yview} -orient vert -width 12 - text $base.f.txt \ - -font $pref(font_fix) -height 1 \ - -width 115 -yscrollcommand {.fdcmd.f.sb set} - frame $base.fb \ - -height 75 -width 125 - button $base.fb.b1 \ - -borderwidth 1 \ - -command {set fdvar(c_cmd) [.fdcmd.f.txt get 1.0 "end - 1 chars"] - Window hide .fdcmd - fd_set_command} \ - -text Ok -width 5 - button $base.fb.b2 \ - -borderwidth 1 -command {Window hide .fdcmd} \ - -text Cancel - pack $base.f \ - -in .fdcmd -anchor center -expand 1 -fill both -side top - pack $base.f.sb \ - -in .fdcmd.f -anchor e -expand 1 -fill y -side right - pack $base.f.txt \ - -in .fdcmd.f -anchor center -expand 1 -fill both -side top - pack $base.fb \ - -in .fdcmd -anchor center -expand 0 -fill none -side top - pack $base.fb.b1 \ - -in .fdcmd.fb -anchor center -expand 0 -fill none -side left - pack $base.fb.b2 \ - -in .fdcmd.fb -anchor center -expand 0 -fill none -side top - } - - proc vTclWindow.fdmenu {base} { - if {$base == ""} { - set base .fdmenu - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - wm geometry $base 288x70+103+0 - wm maxsize $base 785 570 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 0 0 - wm deiconify $base - wm title $base "Commands" - button $base.but17 \ - -borderwidth 1 \ - -command {if {[tk_messageBox -title Warning -message "Delete all objects ?" -type yesno -default no]=="no"} return - fd_init} \ - -text {Delete all} - button $base.but18 \ - -borderwidth 1 -command {set fdvar(geometry) [wm geometry .fd] ; fd_test } \ - -text {Test form} - button $base.but19 \ - -borderwidth 1 -command {destroy .$fdvar(forminame)} \ - -text {Close test form} - button $base.bex \ - -borderwidth 1 \ - -command {if {[fd_save_form $fdvar(formname)]==1} { - catch {Window destroy .fd} - catch {Window destroy .fdtb} - catch {Window destroy .fdmenu} - catch {Window destroy .fda} - catch {Window destroy .fdcmd} - catch {Window destroy .$fdvar(forminame)} - }} \ - -text Close - button $base.bload \ - -borderwidth 1 -command {fd_load_form nimic design} \ - -text {Load from database} - button $base.button17 \ - -borderwidth 1 -command {fd_save_form nimic} \ - -text Save - label $base.l1 \ - -borderwidth 0 -text {Form name} - entry $base.e1 \ - -background #fefefe -borderwidth 1 -highlightthickness 0 \ - -selectborderwidth 0 -textvariable fdvar(formname) - label $base.l2 \ - -borderwidth 0 \ - -text {Form's window internal name} - entry $base.e2 \ - -background #fefefe -borderwidth 1 -highlightthickness 0 \ - -selectborderwidth 0 -textvariable fdvar(forminame) - place $base.but17 \ - -x 5 -y 80 -width 62 -height 24 -anchor nw -bordermode ignore - place $base.but18 \ - -x 5 -y 45 -width 62 -height 24 -anchor nw -bordermode ignore - place $base.but19 \ - -x 70 -y 45 -width 94 -height 24 -anchor nw -bordermode ignore - place $base.bex \ - -x 230 -y 45 -height 24 -anchor nw -bordermode ignore - place $base.bload \ - -x 75 -y 80 -width 114 -height 23 -anchor nw -bordermode ignore - place $base.button17 \ - -x 165 -y 45 -width 44 -height 24 -anchor nw -bordermode ignore - place $base.l1 \ - -x 5 -y 5 -anchor nw -bordermode ignore - place $base.e1 \ - -x 75 -y 5 -width 193 -height 17 -anchor nw -bordermode ignore - place $base.l2 \ - -x 5 -y 25 -anchor nw -bordermode ignore - place $base.e2 \ - -x 175 -y 25 -width 60 -height 17 -anchor nw -bordermode ignore - } - - proc vTclWindow.gpw {base} { - if {$base == ""} { - set base .gpw - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - set sw [winfo screenwidth .] - set sh [winfo screenheight .] - set x [expr ($sw - 297)/2] - set y [expr ($sh - 98)/2] - wm geometry $base 297x98+$x+$y - wm maxsize $base 1009 738 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 0 0 - wm deiconify $base - wm title $base "Input parameter" - label $base.l1 \ - -anchor nw -borderwidth 1 \ - -justify left -relief sunken -textvariable gpw(msg) -wraplength 200 - entry $base.e1 \ - -background #fefefe -borderwidth 1 -highlightthickness 0 \ - -textvariable gpw(var) - bind $base.e1 { - set gpw(result) 1 - destroy .gpw - } - bind $base.e1 { - set gpw(result) 1 - destroy .gpw - } - button $base.bok \ - -borderwidth 1 -command {set gpw(result) 1 - destroy .gpw} -text Ok - button $base.bcanc \ - -borderwidth 1 -command {set gpw(result) 0 - destroy .gpw} -text Cancel - place $base.l1 \ - -x 10 -y 5 -width 201 -height 53 -anchor nw -bordermode ignore - place $base.e1 \ - -x 10 -y 65 -width 200 -height 24 -anchor nw -bordermode ignore - place $base.bok \ - -x 225 -y 5 -width 61 -height 26 -anchor nw -bordermode ignore - place $base.bcanc \ - -x 225 -y 35 -width 61 -height 26 -anchor nw -bordermode ignore - } - - proc vTclWindow.fdtb {base} { - if {$base == ""} { - set base .fdtb - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - wm geometry $base 90x172+0+0 - wm maxsize $base 785 570 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 1 1 - wm deiconify $base - wm title $base "Toolbar" - radiobutton $base.rb1 \ - -anchor w -borderwidth 1 \ - -highlightthickness 0 -text Point -value point -variable fdvar(tool) \ - -width 9 - radiobutton $base.rb2 \ - -anchor w -borderwidth 1 \ - -foreground #000000 -highlightthickness 0 \ - -text Label -value label -variable fdvar(tool) -width 9 - radiobutton $base.rb3 \ - -anchor w -borderwidth 1 \ - -highlightthickness 0 -text Entry -value entry -variable fdvar(tool) \ - -width 9 - radiobutton $base.rb4 \ - -anchor w -borderwidth 1 \ - -highlightthickness 0 -text Button -value button \ - -variable fdvar(tool) -width 9 - radiobutton $base.rb5 \ - -anchor w -borderwidth 1 \ - -highlightthickness 0 -text {List box} -value listbox \ - -variable fdvar(tool) -width 9 - radiobutton $base.rb6 \ - -anchor w -borderwidth 1 \ - -highlightthickness 0 -text {Check box} -value checkbox \ - -variable fdvar(tool) -width 9 - radiobutton $base.rb7 \ - -anchor w -borderwidth 1 \ - -highlightthickness 0 -text {Radio btn} -value radio \ - -variable fdvar(tool) -width 9 - radiobutton $base.rb9 \ - -anchor w -borderwidth 1 \ - -highlightthickness 0 -text {Text} -value text \ - -variable fdvar(tool) -width 9 - radiobutton $base.rb8 \ - -anchor w -borderwidth 1 \ - -highlightthickness 0 -text Query -value query -variable fdvar(tool) \ - -width 9 - grid $base.rb1 \ - -in .fdtb -column 0 -row 0 -columnspan 1 -rowspan 1 - grid $base.rb2 \ - -in .fdtb -column 0 -row 1 -columnspan 1 -rowspan 1 - grid $base.rb3 \ - -in .fdtb -column 0 -row 2 -columnspan 1 -rowspan 1 - grid $base.rb4 \ - -in .fdtb -column 0 -row 3 -columnspan 1 -rowspan 1 - grid $base.rb5 \ - -in .fdtb -column 0 -row 4 -columnspan 1 -rowspan 1 - grid $base.rb6 \ - -in .fdtb -column 0 -row 5 -columnspan 1 -rowspan 1 - grid $base.rb7 \ - -in .fdtb -column 0 -row 6 -columnspan 1 -rowspan 1 - grid $base.rb9 \ - -in .fdtb -column 0 -row 7 -columnspan 1 -rowspan 1 - grid $base.rb8 \ - -in .fdtb -column 0 -row 8 -columnspan 1 -rowspan 1 - } - - proc vTclWindow.sqlw {base} { - if {$base == ""} { - set base .sqlw - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - wm geometry $base 551x408+192+169 - wm maxsize $base 1009 738 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 1 1 - wm deiconify $base - wm title $base "SQL commands" - frame $base.f \ - -borderwidth 1 -height 392 -relief raised -width 396 - scrollbar $base.f.01 \ - -borderwidth 1 -command {.sqlw.f.t xview} -orient horiz \ - -width 10 - scrollbar $base.f.02 \ - -borderwidth 1 -command {.sqlw.f.t yview} -orient vert -width 10 - text $base.f.t \ - -borderwidth 1 \ - -height 200 -width 200 -wrap word \ - -xscrollcommand {.sqlw.f.01 set} \ - -yscrollcommand {.sqlw.f.02 set} - button $base.b1 \ - -borderwidth 1 -command {.sqlw.f.t delete 1.0 end} -text Clean - button $base.b2 \ - -borderwidth 1 -command {destroy .sqlw} -text Close - grid columnconf $base 0 -weight 1 - grid columnconf $base 1 -weight 1 - grid rowconf $base 0 -weight 1 - grid $base.f \ - -in .sqlw -column 0 -row 0 -columnspan 2 -rowspan 1 - grid columnconf $base.f 0 -weight 1 - grid rowconf $base.f 0 -weight 1 - grid $base.f.01 \ - -in .sqlw.f -column 0 -row 1 -columnspan 1 -rowspan 1 -sticky ew - grid $base.f.02 \ - -in .sqlw.f -column 1 -row 0 -columnspan 1 -rowspan 1 -sticky ns - grid $base.f.t \ - -in .sqlw.f -column 0 -row 0 -columnspan 1 -rowspan 1 \ - -sticky nesw - grid $base.b1 \ - -in .sqlw -column 0 -row 1 -columnspan 1 -rowspan 1 - grid $base.b2 \ - -in .sqlw -column 1 -row 1 -columnspan 1 -rowspan 1 - } - - proc vTclWindow.rcw {base} { - if {$base == ""} { - set base .rcw - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - wm geometry $base 215x75+258+213 - wm maxsize $base 1009 738 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 0 0 - wm deiconify $base - wm title $base "Rename field" - label $base.l1 \ - -borderwidth 0 -text {New name} - entry $base.e1 \ - -background #fefefe -borderwidth 1 -textvariable tiw(new_cn) - bind $base.e1 "rename_column" - bind $base.e1 "rename_column" - frame $base.f \ - -height 75 -relief groove -width 147 - button $base.f.b1 \ - -borderwidth 1 -command rename_column -text Rename - button $base.f.b2 \ - -borderwidth 1 -command {Window destroy .rcw} -text Cancel - label $base.l2 -borderwidth 0 - grid $base.l1 \ - -in .rcw -column 0 -row 0 -columnspan 1 -rowspan 1 - grid $base.e1 \ - -in .rcw -column 1 -row 0 -columnspan 1 -rowspan 1 - grid $base.f \ - -in .rcw -column 0 -row 4 -columnspan 2 -rowspan 1 - grid $base.f.b1 \ - -in .rcw.f -column 0 -row 0 -columnspan 1 -rowspan 1 - grid $base.f.b2 \ - -in .rcw.f -column 1 -row 0 -columnspan 1 -rowspan 1 - grid $base.l2 \ - -in .rcw -column 0 -row 3 -columnspan 1 -rowspan 1 - } - - proc vTclWindow.anfw {base} { - if {$base == ""} { - set base .anfw - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - wm geometry $base 302x114+195+175 - wm maxsize $base 1009 738 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 0 0 - wm deiconify $base - wm title $base "Add new field" - label $base.l1 \ - -borderwidth 0 \ - -text {Field name} - entry $base.e1 \ - -background #fefefe -borderwidth 1 -textvariable anfw(name) - bind $base.e1 { - focus .anfw.e2 - } - bind $base.e1 { - focus .anfw.e2 - } - label $base.l2 \ - -borderwidth 0 \ - -text {Field type} - entry $base.e2 \ - -background #fefefe -borderwidth 1 -textvariable anfw(type) - bind $base.e2 { - anfw:add - } - bind $base.e2 { - anfw:add - } - button $base.b1 \ - -borderwidth 1 -command anfw:add -text {Add field} - button $base.b2 \ - -borderwidth 1 -command {Window destroy .anfw} -text Cancel - place $base.l1 \ - -x 25 -y 10 -anchor nw -bordermode ignore - place $base.e1 \ - -x 98 -y 7 -width 178 -height 22 -anchor nw -bordermode ignore - place $base.l2 \ - -x 25 -y 40 -anchor nw -bordermode ignore - place $base.e2 \ - -x 98 -y 37 -width 178 -height 22 -anchor nw -bordermode ignore - place $base.b1 \ - -x 70 -y 75 -anchor nw -bordermode ignore - place $base.b2 \ - -x 160 -y 75 -anchor nw -bordermode ignore - } - - proc vTclWindow.uw {base} { - if {$base == ""} { - set base .uw - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - wm geometry $base 263x220+233+165 - wm maxsize $base 1009 738 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 0 0 - wm deiconify $base - wm title $base "Define new user" - label $base.l1 \ - -borderwidth 0 -anchor w -text "User name" - entry $base.e1 \ - -background #fefefe -borderwidth 1 -textvariable uw(username) - bind $base.e1 "focus .uw.e2" - bind $base.e1 "focus .uw.e2" - label $base.l2 \ - -borderwidth 0 -text Password - entry $base.e2 \ - -background #fefefe -borderwidth 1 -show * -textvariable uw(password) - bind $base.e2 "focus .uw.e3" - bind $base.e2 "focus .uw.e3" - label $base.l3 \ - -borderwidth 0 -text {verify password} - entry $base.e3 \ - -background #fefefe -borderwidth 1 -show * -textvariable uw(verify) - bind $base.e3 "focus .uw.cb1" - bind $base.e3 "focus .uw.cb1" - checkbutton $base.cb1 \ - -borderwidth 1 -offvalue NOCREATEDB -onvalue CREATEDB \ - -text {Alow user to create databases } -variable uw(createdb) - checkbutton $base.cb2 \ - -borderwidth 1 -offvalue NOCREATEUSER -onvalue CREATEUSER \ - -text {Allow users to create other users} -variable uw(createuser) - label $base.l4 \ - -borderwidth 0 -anchor w -text {Valid until (date)} - entry $base.e4 \ - -background #fefefe -borderwidth 1 -textvariable uw(valid) - bind $base.e4 "focus .uw.b1" - bind $base.e4 "focus .uw.b1" - button $base.b1 \ - -borderwidth 1 -command uw:create_user -text Create - button $base.b2 \ - -borderwidth 1 -command {Window destroy .uw} -text Cancel - place $base.l1 \ - -x 5 -y 7 -width 62 -height 16 -anchor nw -bordermode ignore - place $base.e1 \ - -x 109 -y 5 -width 146 -height 20 -anchor nw -bordermode ignore - place $base.l2 \ - -x 5 -y 35 -anchor nw -bordermode ignore - place $base.e2 \ - -x 109 -y 32 -width 146 -height 20 -anchor nw -bordermode ignore - place $base.l3 \ - -x 5 -y 60 -anchor nw -bordermode ignore - place $base.e3 \ - -x 109 -y 58 -width 146 -height 20 -anchor nw -bordermode ignore - place $base.cb1 \ - -x 5 -y 90 -anchor nw -bordermode ignore - place $base.cb2 \ - -x 5 -y 115 -anchor nw -bordermode ignore - place $base.l4 \ - -x 5 -y 145 -width 100 -height 16 -anchor nw -bordermode ignore - place $base.e4 \ - -x 110 -y 143 -width 146 -height 20 -anchor nw -bordermode ignore - place $base.b1 \ - -x 45 -y 185 -anchor nw -width 70 -height 25 -bordermode ignore - place $base.b2 \ - -x 140 -y 185 -anchor nw -width 70 -height 25 -bordermode ignore - } - - Window show . - Window show .dw - - main $argc $argv --- 0 ---- diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/qbtclet.html postgresql-6.5.2/src/bin/pgaccess/qbtclet.html *** postgresql-6.5.1/src/bin/pgaccess/qbtclet.html Sun Mar 1 16:13:30 1998 --- postgresql-6.5.2/src/bin/pgaccess/qbtclet.html Wed Dec 31 19:00:00 1969 *************** *** 1,45 **** - - - Visual Query Builder in Tcl/Tk - -

Visual Query Builder

-
- This visual query builder is included in - PgAccess, a visual interface to - PostgreSQL written entirely in - vTcl , (Visual Tcl). - - -

- - - -

- -
- - - Visual Query Designer demo
- Click here to download the source - created by Constantin Teodorescu with vTcl (visual Tcl), teo@flex.ro -
- Facitilies
- - drag and drop selection of fields
- - drag and drop fields from a table to another do create links
- - move table position by dragging
- - point and click any link or table then press delete to delete them
- - modify sort order by clicking on (unsorted)
- - enter filter conditions as criteria (>2000 , ='item')
- - easy panning of table and result panels
- - show SQL command
-
- If you want to use it for your database, modify ql_read_struct in order to read - your table structure. -
- Feel free to use, modify or copy this software for non-commercial purposes.
- In any other case, please contact me. -
- FLEX Consulting Braila, ROMANIA is able to deliver high end interfaces - and any other commercial products written in Tcl/Tk just like that you have seen. - - --- 0 ---- diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/qbtclet.tcl postgresql-6.5.2/src/bin/pgaccess/qbtclet.tcl *** postgresql-6.5.1/src/bin/pgaccess/qbtclet.tcl Sat Aug 29 23:32:47 1998 --- postgresql-6.5.2/src/bin/pgaccess/qbtclet.tcl Wed Dec 31 19:00:00 1969 *************** *** 1,529 **** - ################################# - # GLOBAL VARIABLES - # - global qlvar; - global widget; - - ################################# - # USER DEFINED PROCEDURES - # - proc init {argc argv} { - global qlvar - set qlvar(yoffs) 360 - set qlvar(xoffs) 50 - set qlvar(reswidth) 150 - } - - init $argc $argv - - proc main {argc argv} { - - } - - proc show_message {usrmsg} { - global msg - set msg $usrmsg - after 2000 {set msg {}} - } - - proc ql_delete_object {} { - global qlvar - # Checking if there - set obj [.c find withtag hili] - if {$obj==""} return - if {[ql_get_tag_info $obj link]=="s"} { - # if {[tk_messageBox -title WARNING -icon question -message "Remove link ?" -type yesno -default no]=="no"} return - show_message "Deleting the link from tables ..." - set linkid [ql_get_tag_info $obj lkid] - set qlvar(links) [lreplace $qlvar(links) $linkid $linkid] - .c delete links - ql_draw_links - } else { - set tablename [ql_get_tag_info $obj tab] - if {$tablename==""} return - # if {[tk_messageBox -title WARNING -icon question -message "Remove table $tablename from query ?" -type yesno -default no]=="no"} return - show_message "Deleting table from query ..." - for {set i [expr [llength $qlvar(restables)]-1]} {$i>=0} {incr i -1} { - if {$tablename==[lindex $qlvar(restables) $i]} { - set qlvar(resfields) [lreplace $qlvar(resfields) $i $i] - set qlvar(restables) [lreplace $qlvar(restables) $i $i] - set qlvar(rescriteria) [lreplace $qlvar(rescriteria) $i $i] - } - } - for {set i [expr [llength $qlvar(links)]-1]} {$i>=0} {incr i -1} { - set thelink [lindex $qlvar(links) $i] - if {($tablename==[lindex $thelink 0]) || ($tablename==[lindex $thelink 2])} { - set qlvar(links) [lreplace $qlvar(links) $i $i] - } - } - .c delete tab$tablename - .c delete links - ql_draw_links - ql_draw_res_panel - } - } - - proc ql_dragit {w x y} { - global draginfo - if {"$draginfo(obj)" != ""} { - set dx [expr $x - $draginfo(x)] - set dy [expr $y - $draginfo(y)] - if {$draginfo(is_a_table)} { - set taglist [.c gettags $draginfo(obj)] - set tabletag [lindex $taglist [lsearch -regexp $taglist "^tab"]] - $w move $tabletag $dx $dy - ql_draw_links - } else { - $w move $draginfo(obj) $dx $dy - } - set draginfo(x) $x - set draginfo(y) $y - } - } - - proc ql_dragstart {w x y} { - global draginfo - catch {unset draginfo} - set draginfo(obj) [$w find closest $x $y] - if {[ql_get_tag_info $draginfo(obj) r]=="ect"} { - # If it'a a rectangle, exit - set draginfo(obj) {} - return - } - . configure -cursor hand1 - .c raise $draginfo(obj) - set draginfo(table) 0 - if {[ql_get_tag_info $draginfo(obj) table]=="header"} { - set draginfo(is_a_table) 1 - .c itemconfigure [.c find withtag hili] -fill black - .c dtag [.c find withtag hili] hili - .c addtag hili withtag $draginfo(obj) - .c itemconfigure hili -fill blue - } else { - set draginfo(is_a_table) 0 - } - set draginfo(x) $x - set draginfo(y) $y - set draginfo(sx) $x - set draginfo(sy) $y - } - - proc ql_dragstop {x y} { - global draginfo qlvar - . configure -cursor top_left_arrow - set este {} - catch {set este $draginfo(obj)} - if {$este==""} return - # Re-establish the normal paint order so - # information won't be overlapped by table rectangles - # or link linkes - .c lower $draginfo(obj) - .c lower rect - .c lower links - set qlvar(panstarted) 0 - if {$draginfo(is_a_table)} { - set draginfo(obj) {} - .c delete links - ql_draw_links - return - } - .c move $draginfo(obj) [expr $draginfo(sx)-$x] [expr $draginfo(sy)-$y] - if {($y>$qlvar(yoffs)) && ($x>$qlvar(xoffs))} { - # Drop position : inside the result panel - # Compute the offset of the result panel due to panning - set resoffset [expr [lindex [.c bbox resmarker] 0]-$qlvar(xoffs)] - set newfld [.c itemcget $draginfo(obj) -text] - set tabtag [ql_get_tag_info $draginfo(obj) tab] - set col [expr int(($x-$qlvar(xoffs)-$resoffset)/$qlvar(reswidth))] - set qlvar(resfields) [linsert $qlvar(resfields) $col $newfld] - set qlvar(ressort) [linsert $qlvar(ressort) $col unsorted] - set qlvar(rescriteria) [linsert $qlvar(rescriteria) $col {}] - set qlvar(restables) [linsert $qlvar(restables) $col $tabtag] - ql_draw_res_panel - } else { - # Drop position : in the table panel - set droptarget [.c find overlapping $x $y $x $y] - set targettable {} - foreach item $droptarget { - set targettable [ql_get_tag_info $item tab] - set targetfield [ql_get_tag_info $item f-] - if {($targettable!="") && ($targetfield!="")} { - set droptarget $item - break - } - } - # check if target object isn't a rectangle - if {[ql_get_tag_info $droptarget rec]=="t"} {set targettable {}} - if {$targettable!=""} { - # Target has a table - # See about originate table - set sourcetable [ql_get_tag_info $draginfo(obj) tab] - if {$sourcetable!=""} { - # Source has also a tab .. tag - set sourcefield [ql_get_tag_info $draginfo(obj) f-] - if {$sourcetable!=$targettable} { - lappend qlvar(links) [list $sourcetable $sourcefield $targettable $targetfield $draginfo(obj) $droptarget] - ql_draw_links - } - } - } - } - # Erase information about onbject beeing dragged - set draginfo(obj) {} - } - - proc ql_draw_links {} { - global qlvar - .c delete links - set i 0 - foreach link $qlvar(links) { - # Compute the source and destination right edge - set sre [lindex [.c bbox tab[lindex $link 0]] 2] - set dre [lindex [.c bbox tab[lindex $link 2]] 2] - # Compute field bound boxes - set sbbox [.c bbox [lindex $link 4]] - set dbbox [.c bbox [lindex $link 5]] - # Compute the auxiliary lines - if {[lindex $sbbox 2] < [lindex $dbbox 0]} { - # Source object is on the left of target object - set x1 $sre - set y1 [expr ([lindex $sbbox 1]+[lindex $sbbox 3])/2] - .c create line $x1 $y1 [expr $x1+10] $y1 -tags [subst {links lkid$i}] -width 3 - set x2 [lindex $dbbox 0] - set y2 [expr ([lindex $dbbox 1]+[lindex $dbbox 3])/2] - .c create line [expr $x2-10] $y2 $x2 $y2 -tags {links} -width 3 - .c create line [expr $x1+10] $y1 [expr $x2-10] $y2 -tags [subst {links lkid$i}] -width 2 - } else { - # source object is on the right of target object - set x1 [lindex $sbbox 0] - set y1 [expr ([lindex $sbbox 1]+[lindex $sbbox 3])/2] - .c create line $x1 $y1 [expr $x1-10] $y1 -tags [subst {links lkid$i}] -width 3 - set x2 $dre - set y2 [expr ([lindex $dbbox 1]+[lindex $dbbox 3])/2] - .c create line $x2 $y2 [expr $x2+10] $y2 -width 3 -tags [subst {links lkid$i}] - .c create line [expr $x1-10] $y1 [expr $x2+10] $y2 -tags [subst {links lkid$i}] -width 2 - } - incr i - } - .c lower links - .c bind links {ql_link_click %x %y} - } - - proc ql_draw_lizzard {} { - global qlvar - ql_read_struct - .c delete all - set posx 20 - for {set it 0} {$it<$qlvar(ntables)} {incr it} { - ql_draw_table $it - # set posy 10 - # set tablename $qlvar(tablename$it) - # .c create text $posx $posy -text $tablename -anchor nw -tags [subst {tab$tablename f-oid mov tableheader}] -font -Adobe-Helvetica-Bold-R-Normal-*-*-120-*-*-*-*-* - # incr posy 16 - # foreach fld $qlvar(tablestruct$it) { - # .c create text $posx $posy -text $fld -anchor nw -tags [subst {f-$fld tab$tablename mov}] -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* - # incr posy 14 - # } - # set reg [.c bbox tab$tablename] - # .c create rectangle [lindex $reg 0] [lindex $reg 1] [lindex $reg 2] [lindex $reg 3] -fill #EEEEEE -tags [subst {rect tab$tablename}] - # .c create line [lindex $reg 0] [expr [lindex $reg 1]+15] [lindex $reg 2] [expr [lindex $reg 1]+15] -tags [subst {rect tab$tablename}] - # set posx [expr $posx+40+[lindex $reg 2]-[lindex $reg 0]] - } - .c lower rect - .c create line 0 $qlvar(yoffs) 10000 $qlvar(yoffs) -width 3 - .c create rectangle 0 $qlvar(yoffs) 10000 5000 -fill #FFFFFF - for {set i [expr 15+$qlvar(yoffs)]} {$i<500} {incr i 15} { - .c create line $qlvar(xoffs) $i 10000 $i -fill #CCCCCC -tags {resgrid} - } - for {set i $qlvar(xoffs)} {$i<10000} {incr i $qlvar(reswidth)} { - .c create line $i [expr 1+$qlvar(yoffs)] $i 10000 -fill #cccccc -tags {resgrid} - } - # Make a marker for result panel offset calculations (due to panning) - .c create line $qlvar(xoffs) $qlvar(yoffs) $qlvar(xoffs) 500 -tags {resmarker resgrid} - .c create rectangle 0 $qlvar(yoffs) $qlvar(xoffs) 5000 -fill #EEEEEE -tags {reshdr} - .c create text 5 [expr 1+$qlvar(yoffs)] -text Field: -anchor nw -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -tags {reshdr} - .c create text 5 [expr 16+$qlvar(yoffs)] -text Table: -anchor nw -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -tags {reshdr} - .c create text 5 [expr 31+$qlvar(yoffs)] -text Sort: -anchor nw -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -tags {reshdr} - .c create text 5 [expr 46+$qlvar(yoffs)] -text Criteria: -anchor nw -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -tags {reshdr} - .c bind mov {ql_dragstart %W %x %y} - .c bind mov {ql_dragit %W %x %y} - bind . {ql_dragstop %x %y} - bind . {qlc_click %x %y %W} - bind . {ql_pan %x %y} - bind . {ql_delete_object} - set qlvar(resfields) {} - set qlvar(ressort) {} - set qlvar(rescriteria) {} - set qlvar(restables) {} - set qlvar(critedit) 0 - set qlvar(links) {} - set qlvar(linktodelete) {} - } - - proc ql_draw_res_panel {} { - global qlvar - # Compute the offset of the result panel due to panning - set resoffset [expr [lindex [.c bbox resmarker] 0]-$qlvar(xoffs)] - .c delete resp - for {set i 0} {$i<[llength $qlvar(resfields)]} {incr i} { - .c create text [expr $resoffset+4+$qlvar(xoffs)+$i*$qlvar(reswidth)] [expr 1+$qlvar(yoffs)] -text [lindex $qlvar(resfields) $i] -anchor nw -fill navy -tags {resf resp} -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* - .c create text [expr $resoffset+4+$qlvar(xoffs)+$i*$qlvar(reswidth)] [expr 16+$qlvar(yoffs)] -text [lindex $qlvar(restables) $i] -anchor nw -tags {resp rest} -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* - .c create text [expr $resoffset+4+$qlvar(xoffs)+$i*$qlvar(reswidth)] [expr 31+$qlvar(yoffs)] -text [lindex $qlvar(ressort) $i] -anchor nw -tags {resp sort} -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* - if {[lindex $qlvar(rescriteria) $i]!=""} { - .c create text [expr $resoffset+4+$qlvar(xoffs)+$i*$qlvar(reswidth)] [expr $qlvar(yoffs)+46+15*0] -anchor nw -text [lindex $qlvar(rescriteria) $i] -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -tags [subst {resp cr-c$i-r0}] - } - } - .c raise reshdr - .c bind sort {ql_swap_sort %W %x %y} - } - - proc ql_draw_table {it} { - global qlvar - - set posy 10 - set allbox [.c bbox rect] - if {$allbox==""} {set posx 10} else {set posx [expr 20+[lindex $allbox 2]]} - set tablename $qlvar(tablename$it) - .c create text $posx $posy -text $tablename -anchor nw -tags [subst {tab$tablename f-oid mov tableheader}] -font -Adobe-Helvetica-Bold-R-Normal-*-*-120-*-*-*-*-* - incr posy 16 - foreach fld $qlvar(tablestruct$it) { - .c create text $posx $posy -text $fld -anchor nw -tags [subst {f-$fld tab$tablename mov}] -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* - incr posy 14 - } - set reg [.c bbox tab$tablename] - .c create rectangle [lindex $reg 0] [lindex $reg 1] [lindex $reg 2] [lindex $reg 3] -fill #EEEEEE -tags [subst {rect tab$tablename}] - .c create line [lindex $reg 0] [expr [lindex $reg 1]+15] [lindex $reg 2] [expr [lindex $reg 1]+15] -tags [subst {rect tab$tablename}] - } - - proc ql_get_tag_info {obj prefix} { - set taglist [.c gettags $obj] - set tagpos [lsearch -regexp $taglist "^$prefix"] - if {$tagpos==-1} {return ""} - set thattag [lindex $taglist $tagpos] - return [string range $thattag [string length $prefix] end] - } - - proc ql_link_click {x y} { - global qlvar - - set obj [.c find closest $x $y 1 links] - if {[ql_get_tag_info $obj link]!="s"} return - .c itemconfigure [.c find withtag hili] -fill black - .c dtag [.c find withtag hili] hili - .c addtag hili withtag $obj - .c itemconfigure $obj -fill blue - } - - proc ql_pan {x y} { - global qlvar - set panstarted 0 - catch {set panstarted $qlvar(panstarted) } - if {!$panstarted} return - set dx [expr $x-$qlvar(panstartx)] - set dy [expr $y-$qlvar(panstarty)] - set qlvar(panstartx) $x - set qlvar(panstarty) $y - if {$qlvar(panobject)=="tables"} { - .c move mov $dx $dy - .c move links $dx $dy - .c move rect $dx $dy - } else { - .c move resp $dx 0 - .c move resgrid $dx 0 - .c raise reshdr - } - } - - proc ql_read_struct {} { - global qlvar - - set qlvar(ntables) 3 - set qlvar(tablename0) Facturi - set qlvar(tablename1) Nommat - set qlvar(tablename2) Incasari - set qlvar(tablestruct0) [list factura client valoare tva] - set qlvar(tablestruct1) [list cod denumire pret greutate procent_tva] - set qlvar(tablestruct2) [list data valoare nrdoc referinta] - } - - proc ql_show_sql {} { - global qlvar - - set sqlcmd "select " - for {set i 0} {$i<[llength $qlvar(resfields)]} {incr i} { - if {$sqlcmd!="select "} {set sqlcmd "$sqlcmd, "} - set sqlcmd "$sqlcmd[lindex $qlvar(restables) $i].[lindex $qlvar(resfields) $i]" - } - set tables {} - for {set i 0} {$i<$qlvar(ntables)} {incr i} { - lappend tables $qlvar(tablename$i) - } - set sqlcmd "$sqlcmd from [join $tables ,] " - set sup1 {} - if {[llength $qlvar(links)]>0} { - set sup1 "where " - foreach link $qlvar(links) { - if {$sup1!="where "} {set sup1 "$sup1 and "} - set sup1 "$sup1 ([lindex $link 0].[lindex $link 1]=[lindex $link 2].[lindex $link 3])" - } - } - for {set i 0} {$i<[llength $qlvar(resfields)]} {incr i} { - set crit [lindex $qlvar(rescriteria) $i] - if {$crit!=""} { - if {$sup1==""} {set sup1 "where "} - if {[string range $sup1 0 4]=="where"} {set sup1 "$sup1 and "} - set sup1 "$sup1 ([lindex $qlvar(restables) $i].[lindex $qlvar(resfields) $i]$crit) " - } - } - set sqlcmd "$sqlcmd $sup1" - set sup2 {} - for {set i 0} {$i<[llength $qlvar(ressort)]} {incr i} { - set how [lindex $qlvar(ressort) $i] - if {$how!="unsorted"} { - if {$how=="Ascending"} {set how asc} else {set how desc} - if {$sup2==""} {set sup2 " order by "} else {set sup2 "$sup2,"} - set sup2 "$sup2 [lindex $qlvar(resfields) $i] $how " - } - } - set sqlcmd "$sqlcmd $sup2" - set qlvar(sql) $sqlcmd - #tk_messageBox -message $sqlcmd - .c delete sqlpage - .c create rectangle 0 0 2000 [expr $qlvar(yoffs)-1] -fill #ffffff -tags {sqlpage} - .c create text 10 10 -text $sqlcmd -anchor nw -width 550 -tags {sqlpage} -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* - .c bind sqlpage {.c delete sqlpage} - } - - proc ql_swap_sort {w x y} { - global qlvar - set obj [$w find closest $x $y] - set taglist [.c gettags $obj] - if {[lsearch $taglist sort]==-1} return - set cum [.c itemcget $obj -text] - if {$cum=="unsorted"} { - set cum Ascending - } elseif {$cum=="Ascending"} { - set cum Descending - } else { - set cum unsorted - } - set col [expr int(($x-$qlvar(xoffs))/$qlvar(reswidth))] - set qlvar(ressort) [lreplace $qlvar(ressort) $col $col $cum] - .c itemconfigure $obj -text $cum - } - - proc qlc_click {x y w} { - global qlvar - set qlvar(panstarted) 0 - if {$w==".c"} { - set canpan 1 - if {$y<$qlvar(yoffs)} { - if {[llength [.c find overlapping $x $y $x $y]]!=0} {set canpan 0} - set qlvar(panobject) tables - } else { - set qlvar(panobject) result - } - if {$canpan} { - . configure -cursor hand1 - set qlvar(panstartx) $x - set qlvar(panstarty) $y - set qlvar(panstarted) 1 - } - } - set isedit 0 - catch {set isedit $qlvar(critedit)} - # Compute the offset of the result panel due to panning - set resoffset [expr [lindex [.c bbox resmarker] 0]-$qlvar(xoffs)] - if {$isedit} { - set qlvar(rescriteria) [lreplace $qlvar(rescriteria) $qlvar(critcol) $qlvar(critcol) $qlvar(critval)] - .c delete cr-c$qlvar(critcol)-r$qlvar(critrow) - .c create text [expr $resoffset+4+$qlvar(xoffs)+$qlvar(critcol)*$qlvar(reswidth)] [expr $qlvar(yoffs)+46+15*$qlvar(critrow)] -anchor nw -text $qlvar(critval) -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -tags [subst {resp cr-c$qlvar(critcol)-r$qlvar(critrow)}] - set qlvar(critedit) 0 - } - catch {destroy .entc} - if {$y<[expr $qlvar(yoffs)+46]} return - if {$x<[expr $qlvar(xoffs)+5]} return - set col [expr int(($x-$qlvar(xoffs)-$resoffset)/$qlvar(reswidth))] - if {$col>=[llength $qlvar(resfields)]} return - set nx [expr $col*$qlvar(reswidth)+8+$qlvar(xoffs)+$resoffset] - set ny [expr $qlvar(yoffs)+76] - # Get the old criteria value - set qlvar(critval) [lindex $qlvar(rescriteria) $col] - entry .entc -textvar qlvar(critval) -borderwidth 0 -background #FFFFFF -highlightthickness 0 -selectborderwidth 0 -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* - place .entc -x $nx -y $ny -height 14 - focus .entc - bind .entc {set qlvar(panstarted) 0} - set qlvar(critcol) $col - set qlvar(critrow) 0 - set qlvar(critedit) 1 - } - - proc Window {args} { - global vTcl - set cmd [lindex $args 0] - set name [lindex $args 1] - set newname [lindex $args 2] - set rest [lrange $args 3 end] - if {$name == "" || $cmd == ""} {return} - if {$newname == ""} { - set newname $name - } - set exists [winfo exists $newname] - switch $cmd { - show { - if {$exists == "1" && $name != "."} {wm deiconify $name; return} - if {[info procs vTclWindow(pre)$name] != ""} { - eval "vTclWindow(pre)$name $newname $rest" - } - if {[info procs vTclWindow$name] != ""} { - eval "vTclWindow$name $newname $rest" - } - if {[info procs vTclWindow(post)$name] != ""} { - eval "vTclWindow(post)$name $newname $rest" - } - } - hide { if $exists {wm withdraw $newname; return} } - iconify { if $exists {wm iconify $newname; return} } - destroy { if $exists {destroy $newname; return} } - } - } - - - set base "" - bind $base { - ql_pan %x %y - } - bind $base { - qlc_click %x %y %W - } - bind $base { - ql_dragstop %x %y - } - bind $base { - ql_delete_object - } - canvas $base.c \ - -background #fefefe -borderwidth 2 -height 207 -relief ridge \ - -takefocus 0 -width 295 - label $base.msg -textvar msg -borderwidth 1 -relief sunken - button $base.b2 \ - -borderwidth 1 -command ql_draw_lizzard \ - -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -padx 9 \ - -pady 3 -text {Paint demo tables} - button $base.showbtn \ - -borderwidth 1 -command ql_show_sql \ - -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -padx 9 \ - -pady 3 -text {Show SQL} - ################### - # SETTING GEOMETRY - ################### - place $base.c \ - -x 5 -y 30 -width 578 -height 425 -anchor nw -bordermode ignore - place $base.b2 \ - -x 5 -y 5 -height 26 -anchor nw -bordermode ignore - place $base.showbtn \ - -x 130 -y 5 -height 26 -anchor nw -bordermode ignore - place $base.msg \ - -x 5 -y 460 -width 578 -anchor nw - - main $argc $argv --- 0 ---- diff -cr --new-file postgresql-6.5.1/src/bin/pgaccess/specialchars.html postgresql-6.5.2/src/bin/pgaccess/specialchars.html *** postgresql-6.5.1/src/bin/pgaccess/specialchars.html Thu Mar 12 08:09:46 1998 --- postgresql-6.5.2/src/bin/pgaccess/specialchars.html Wed Dec 31 19:00:00 1969 *************** *** 1,47 **** - - - - Special locale characters - - - - -

Special locale characters and PgAccess -

- -

The problem is related with some special characters used in different - countries because PgAccess did not use fonts with `-ISO8859-1' encoding - --

- -

The sollution was proposed by H.P.Heidinger ( hph@hphbbs.ruhr.de) and - it's very simple.

- -

If you look into PgAccess, you will find fonts declared as follows :

- -

$ grep -e '-font' -i pgaccess.tcl
- -font -Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-* \
- -font -Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-* \
- -font -Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-* \
- -font -Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-* \

- -

It should be something like: -adobe-helvetica-medium-r-normal-*-*-120-*-*-*-*-iso8859-1

- -

You can achieve this by running the following script :

- -

#!/bin/sh
- cp pgaccess.tcl pgaccess.tcl-org
- cat pgaccess.tcl |\
- sed -e's/\-\*\-\*\ /\-iso8859\-1\ /g' |\
- sed -e's/\-\*\-\*\}/\-iso8859\-1}/g' |\
- sed -e's/\-\*\-\*\]/\-iso8859\-1]/g' |\
- sed -e's/\-\*\-\*$/\-iso8859\-1/g' |\
- sed -e's/\-Clean\-/\-Fixed\-/g' |\
- sed -e's/clean/fixed/g' >pgaccess.iso
- mv pgaccess.iso pgaccess.tcl
- chmod +x pgaccess.tcl

- -

The final version of PgAccess (1.0) will let the user decide what fonts - will be used through a "preferences" dialog window.

- - - --- 0 ---- Binary files postgresql-6.5.1/src/bin/pgaccess/win32/dll/libpgtcl80.dll-6.4.2 and postgresql-6.5.2/src/bin/pgaccess/win32/dll/libpgtcl80.dll-6.4.2 differ Binary files postgresql-6.5.1/src/bin/pgaccess/win32/dll/libpgtcl80.dll-6.5.1 and postgresql-6.5.2/src/bin/pgaccess/win32/dll/libpgtcl80.dll-6.5.1 differ Binary files postgresql-6.5.1/src/bin/pgaccess/win32/dll/libpgtcl81.dll-6.5.1 and postgresql-6.5.2/src/bin/pgaccess/win32/dll/libpgtcl81.dll-6.5.1 differ Binary files postgresql-6.5.1/src/bin/pgaccess/win32/dll/libpq.dll-6.4.2 and postgresql-6.5.2/src/bin/pgaccess/win32/dll/libpq.dll-6.4.2 differ Binary files postgresql-6.5.1/src/bin/pgaccess/win32/dll/libpq.dll-6.5.1 and postgresql-6.5.2/src/bin/pgaccess/win32/dll/libpq.dll-6.5.1 differ diff -cr --new-file postgresql-6.5.1/src/bin/pgtclsh/mkMakefile.tcldefs.sh.in postgresql-6.5.2/src/bin/pgtclsh/mkMakefile.tcldefs.sh.in *** postgresql-6.5.1/src/bin/pgtclsh/mkMakefile.tcldefs.sh.in Fri Oct 16 13:00:44 1998 --- postgresql-6.5.2/src/bin/pgtclsh/mkMakefile.tcldefs.sh.in Sun Aug 29 16:11:52 1999 *************** *** 1,16 **** ! if [ ! -f @TCL_CONFIG_SH@ ]; then echo "@TCL_CONFIG_SH@ not found" echo "I need this file! Please make a symbolic link to this file" echo "and start make again." exit 1 fi cat @TCL_CONFIG_SH@ | ! egrep '^TCL_' | ! while read inp do ! eval eval echo $inp done >Makefile.tcldefs exit 0 --- 1,23 ---- + #! /bin/sh ! if [ ! -r @TCL_CONFIG_SH@ ]; then echo "@TCL_CONFIG_SH@ not found" echo "I need this file! Please make a symbolic link to this file" echo "and start make again." exit 1 fi + # Source the file to obtain the correctly expanded variable definitions + . @TCL_CONFIG_SH@ + + # Read the file a second time as an easy way of getting the list of variable + # definitions to output. cat @TCL_CONFIG_SH@ | ! egrep '^TCL_|^TK_' | ! sed 's/^\([^=]*\)=.*$/\1/' | ! while read var do ! eval echo "\"$var = \$$var\"" done >Makefile.tcldefs exit 0 diff -cr --new-file postgresql-6.5.1/src/bin/pgtclsh/mkMakefile.tkdefs.sh.in postgresql-6.5.2/src/bin/pgtclsh/mkMakefile.tkdefs.sh.in *** postgresql-6.5.1/src/bin/pgtclsh/mkMakefile.tkdefs.sh.in Fri Oct 16 13:00:44 1998 --- postgresql-6.5.2/src/bin/pgtclsh/mkMakefile.tkdefs.sh.in Sun Aug 29 16:11:52 1999 *************** *** 1,18 **** ! if [ ! -f @TK_CONFIG_SH@ ]; then echo "@TK_CONFIG_SH@ not found" echo "I need this file! Please make a symbolic link to this file" echo "and start make again." exit 1 fi . @TK_CONFIG_SH@ cat @TK_CONFIG_SH@ | ! egrep '^TK_' | ! while read inp do ! eval eval echo $inp done >Makefile.tkdefs exit 0 --- 1,23 ---- + #! /bin/sh ! if [ ! -r @TK_CONFIG_SH@ ]; then echo "@TK_CONFIG_SH@ not found" echo "I need this file! Please make a symbolic link to this file" echo "and start make again." exit 1 fi + # Source the file to obtain the correctly expanded variable definitions . @TK_CONFIG_SH@ + # Read the file a second time as an easy way of getting the list of variable + # definitions to output. cat @TK_CONFIG_SH@ | ! egrep '^TCL_|^TK_' | ! sed 's/^\([^=]*\)=.*$/\1/' | ! while read var do ! eval echo "\"$var = \$$var\"" done >Makefile.tkdefs exit 0 diff -cr --new-file postgresql-6.5.1/src/configure postgresql-6.5.2/src/configure *** postgresql-6.5.1/src/configure Sat May 29 20:06:44 1999 --- postgresql-6.5.2/src/configure Sun Sep 12 18:58:33 1999 *************** *** 663,674 **** exit;; esac ! if test "X$elf" = "Xyes" ! then ! ELF_SYS=true ! else ! ELF_SYS= ! fi if test "X$need_tas" = "Xyes" then --- 663,674 ---- exit;; esac ! PORTNAME=${os} ! CPU=${host_cpu} ! ! ! ! if test "X$need_tas" = "Xyes" then *************** *** 677,688 **** fi - PORTNAME=${os} - - - - - echo "checking echo setting..." if echo '\c' | grep -s c >/dev/null 2>&1 then --- 677,682 ---- *************** *** 695,701 **** echo $ac_n "checking setting template to""... $ac_c" 1>&6 ! echo "configure:699: checking setting template to" >&5 # Check whether --with-template or --without-template was given. if test "${with_template+set}" = set; then withval="$with_template" --- 689,695 ---- echo $ac_n "checking setting template to""... $ac_c" 1>&6 ! echo "configure:693: checking setting template to" >&5 # Check whether --with-template or --without-template was given. if test "${with_template+set}" = set; then withval="$with_template" *************** *** 772,778 **** fi ! if test "$INCLUDE_DIRS"; then for dir in $INCLUDE_DIRS $SRCH_INC; do if test -d "$dir"; then PGSQL_CPPFLAGS="$PGSQL_CPPFLAGS -I$dir" --- 766,772 ---- fi ! if test "$INCLUDE_DIRS" -o "$SRCH_INC"; then for dir in $INCLUDE_DIRS $SRCH_INC; do if test -d "$dir"; then PGSQL_CPPFLAGS="$PGSQL_CPPFLAGS -I$dir" *************** *** 810,816 **** fi ! if test "$LIBRARY_DIRS"; then for dir in $LIBRARY_DIRS $SRCH_LIB; do if test -d "$dir"; then PGSQL_LDFLAGS="$PGSQL_LDFLAGS -L$dir" --- 804,810 ---- fi ! if test "$LIBRARY_DIRS" -o "$SRCH_LIB"; then for dir in $LIBRARY_DIRS $SRCH_LIB; do if test -d "$dir"; then PGSQL_LDFLAGS="$PGSQL_LDFLAGS -L$dir" *************** *** 821,827 **** fi echo $ac_n "checking setting USE_LOCALE""... $ac_c" 1>&6 ! echo "configure:825: checking setting USE_LOCALE" >&5 # Check whether --enable-locale or --disable-locale was given. if test "${enable_locale+set}" = set; then enableval="$enable_locale" --- 815,821 ---- fi echo $ac_n "checking setting USE_LOCALE""... $ac_c" 1>&6 ! echo "configure:819: checking setting USE_LOCALE" >&5 # Check whether --enable-locale or --disable-locale was given. if test "${enable_locale+set}" = set; then enableval="$enable_locale" *************** *** 836,842 **** echo $ac_n "checking setting CYR_RECODE""... $ac_c" 1>&6 ! echo "configure:840: checking setting CYR_RECODE" >&5 # Check whether --enable-recode or --disable-recode was given. if test "${enable_recode+set}" = set; then enableval="$enable_recode" --- 830,836 ---- echo $ac_n "checking setting CYR_RECODE""... $ac_c" 1>&6 ! echo "configure:834: checking setting CYR_RECODE" >&5 # Check whether --enable-recode or --disable-recode was given. if test "${enable_recode+set}" = set; then enableval="$enable_recode" *************** *** 851,857 **** echo $ac_n "checking setting MULTIBYTE""... $ac_c" 1>&6 ! echo "configure:855: checking setting MULTIBYTE" >&5 # Check whether --with-mb or --without-mb was given. if test "${with_mb+set}" = set; then withval="$with_mb" --- 845,851 ---- echo $ac_n "checking setting MULTIBYTE""... $ac_c" 1>&6 ! echo "configure:849: checking setting MULTIBYTE" >&5 # Check whether --with-mb or --without-mb was given. if test "${with_mb+set}" = set; then withval="$with_mb" *************** *** 873,879 **** echo $ac_n "checking setting DEF_PGPORT""... $ac_c" 1>&6 ! echo "configure:877: checking setting DEF_PGPORT" >&5 # Check whether --with-pgport or --without-pgport was given. if test "${with_pgport+set}" = set; then withval="$with_pgport" --- 867,873 ---- echo $ac_n "checking setting DEF_PGPORT""... $ac_c" 1>&6 ! echo "configure:871: checking setting DEF_PGPORT" >&5 # Check whether --with-pgport or --without-pgport was given. if test "${with_pgport+set}" = set; then withval="$with_pgport" *************** *** 891,897 **** echo $ac_n "checking setting DEF_MAXBACKENDS""... $ac_c" 1>&6 ! echo "configure:895: checking setting DEF_MAXBACKENDS" >&5 # Check whether --with-maxbackends or --without-maxbackends was given. if test "${with_maxbackends+set}" = set; then withval="$with_maxbackends" --- 885,891 ---- echo $ac_n "checking setting DEF_MAXBACKENDS""... $ac_c" 1>&6 ! echo "configure:889: checking setting DEF_MAXBACKENDS" >&5 # Check whether --with-maxbackends or --without-maxbackends was given. if test "${with_maxbackends+set}" = set; then withval="$with_maxbackends" *************** *** 909,915 **** echo $ac_n "checking setting USE_TCL""... $ac_c" 1>&6 ! echo "configure:913: checking setting USE_TCL" >&5 # Check whether --with-tcl or --without-tcl was given. if test "${with_tcl+set}" = set; then withval="$with_tcl" --- 903,909 ---- echo $ac_n "checking setting USE_TCL""... $ac_c" 1>&6 ! echo "configure:907: checking setting USE_TCL" >&5 # Check whether --with-tcl or --without-tcl was given. if test "${with_tcl+set}" = set; then withval="$with_tcl" *************** *** 961,967 **** echo $ac_n "checking setting USE_PERL""... $ac_c" 1>&6 ! echo "configure:965: checking setting USE_PERL" >&5 # Check whether --with-perl or --without-perl was given. if test "${with_perl+set}" = set; then withval="$with_perl" --- 955,961 ---- echo $ac_n "checking setting USE_PERL""... $ac_c" 1>&6 ! echo "configure:959: checking setting USE_PERL" >&5 # Check whether --with-perl or --without-perl was given. if test "${with_perl+set}" = set; then withval="$with_perl" *************** *** 978,984 **** echo $ac_n "checking setting USE_ODBC""... $ac_c" 1>&6 ! echo "configure:982: checking setting USE_ODBC" >&5 # Check whether --with-odbc or --without-odbc was given. if test "${with_odbc+set}" = set; then withval="$with_odbc" --- 972,978 ---- echo $ac_n "checking setting USE_ODBC""... $ac_c" 1>&6 ! echo "configure:976: checking setting USE_ODBC" >&5 # Check whether --with-odbc or --without-odbc was given. if test "${with_odbc+set}" = set; then withval="$with_odbc" *************** *** 1003,1009 **** echo $ac_n "checking setting ODBCINST""... $ac_c" 1>&6 ! echo "configure:1007: checking setting ODBCINST" >&5 # Check whether --with-odbcinst or --without-odbcinst was given. if test "${with_odbcinst+set}" = set; then withval="$with_odbcinst" --- 997,1003 ---- echo $ac_n "checking setting ODBCINST""... $ac_c" 1>&6 ! echo "configure:1001: checking setting ODBCINST" >&5 # Check whether --with-odbcinst or --without-odbcinst was given. if test "${with_odbcinst+set}" = set; then withval="$with_odbcinst" *************** *** 1027,1033 **** echo $ac_n "checking setting ASSERT CHECKING""... $ac_c" 1>&6 ! echo "configure:1031: checking setting ASSERT CHECKING" >&5 # Check whether --enable-cassert or --disable-cassert was given. if test "${enable_cassert+set}" = set; then enableval="$enable_cassert" --- 1021,1027 ---- echo $ac_n "checking setting ASSERT CHECKING""... $ac_c" 1>&6 ! echo "configure:1025: checking setting ASSERT CHECKING" >&5 # Check whether --enable-cassert or --disable-cassert was given. if test "${enable_cassert+set}" = set; then enableval="$enable_cassert" *************** *** 1058,1064 **** # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1062: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1052,1058 ---- # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1056: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1088,1094 **** # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1092: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1082,1088 ---- # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1086: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1139,1145 **** # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1143: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1133,1139 ---- # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1137: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1171,1177 **** fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 ! echo "configure:1175: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. --- 1165,1171 ---- fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 ! echo "configure:1169: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. *************** *** 1182,1193 **** cat > conftest.$ac_ext << EOF ! #line 1186 "configure" #include "confdefs.h" main(){return(0);} EOF ! if { (eval echo configure:1191: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then --- 1176,1187 ---- cat > conftest.$ac_ext << EOF ! #line 1180 "configure" #include "confdefs.h" main(){return(0);} EOF ! if { (eval echo configure:1185: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then *************** *** 1213,1224 **** { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 ! echo "configure:1217: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ! echo "configure:1222: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1207,1218 ---- { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 ! echo "configure:1211: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ! echo "configure:1216: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1227,1233 **** yes; #endif EOF ! if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1231: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no --- 1221,1227 ---- yes; #endif EOF ! if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1225: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no *************** *** 1246,1252 **** ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ! echo "configure:1250: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1240,1246 ---- ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ! echo "configure:1244: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1278,1284 **** fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ! echo "configure:1282: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= --- 1272,1278 ---- fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ! echo "configure:1276: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= *************** *** 1293,1305 **** # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1303: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 1287,1299 ---- # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1297: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** *** 1310,1322 **** rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1320: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 1304,1316 ---- rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1314: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** *** 1327,1339 **** rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1337: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 1321,1333 ---- rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1331: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** *** 1359,1371 **** if test $ac_cv_prog_gcc = yes; then echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6 ! echo "configure:1363: checking whether ${CC-cc} needs -traditional" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_pattern="Autoconf.*'x'" cat > conftest.$ac_ext < Autoconf TIOCGETP --- 1353,1365 ---- if test $ac_cv_prog_gcc = yes; then echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6 ! echo "configure:1357: checking whether ${CC-cc} needs -traditional" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_pattern="Autoconf.*'x'" cat > conftest.$ac_ext < Autoconf TIOCGETP *************** *** 1383,1389 **** if test $ac_cv_prog_gcc_traditional = no; then cat > conftest.$ac_ext < Autoconf TCGETA --- 1377,1383 ---- if test $ac_cv_prog_gcc_traditional = no; then cat > conftest.$ac_ext < Autoconf TCGETA *************** *** 1419,1424 **** --- 1413,1446 ---- LDFLAGS="$LDFLAGS $PGSQL_LDFLAGS" echo "- setting LDFLAGS=$LDFLAGS" + # Assume system is ELF if it predefines __ELF__ as 1, + # otherwise believe "elf" setting from check of host_os above. + cat > conftest.$ac_ext <&5 | + egrep "yes" >/dev/null 2>&1; then + rm -rf conftest* + ELF_SYS=true + else + rm -rf conftest* + if test "X$elf" = "Xyes" + then + ELF_SYS=true + else + ELF_SYS= + fi + + fi + rm -f conftest* + + + *************** *** 1456,1462 **** # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1460: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1478,1484 ---- # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1482: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1488,1494 **** echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6 ! echo "configure:1492: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. --- 1510,1516 ---- echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6 ! echo "configure:1514: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. *************** *** 1499,1510 **** cat > conftest.$ac_ext << EOF ! #line 1503 "configure" #include "confdefs.h" int main(){return(0);} EOF ! if { (eval echo configure:1508: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cxx_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then --- 1521,1532 ---- cat > conftest.$ac_ext << EOF ! #line 1525 "configure" #include "confdefs.h" int main(){return(0);} EOF ! if { (eval echo configure:1530: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cxx_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then *************** *** 1530,1541 **** { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 ! echo "configure:1534: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6 cross_compiling=$ac_cv_prog_cxx_cross echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 ! echo "configure:1539: checking whether we are using GNU C++" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1552,1563 ---- { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 ! echo "configure:1556: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6 cross_compiling=$ac_cv_prog_cxx_cross echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 ! echo "configure:1561: checking whether we are using GNU C++" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1544,1550 **** yes; #endif EOF ! if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1548: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gxx=yes else ac_cv_prog_gxx=no --- 1566,1572 ---- yes; #endif EOF ! if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1570: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gxx=yes else ac_cv_prog_gxx=no *************** *** 1563,1569 **** ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS= echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 ! echo "configure:1567: checking whether ${CXX-g++} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1585,1591 ---- ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS= echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 ! echo "configure:1589: checking whether ${CXX-g++} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1619,1625 **** # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 ! echo "configure:1623: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1641,1647 ---- # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 ! echo "configure:1645: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 1707,1713 **** # Extract the first word of "flex", so it can be a program name with args. set dummy flex; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1711: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1729,1735 ---- # Extract the first word of "flex", so it can be a program name with args. set dummy flex; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1733: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1741,1747 **** *) ac_lib=l ;; esac echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6 ! echo "configure:1745: checking for yywrap in -l$ac_lib" >&5 ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1763,1769 ---- *) ac_lib=l ;; esac echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6 ! echo "configure:1767: checking for yywrap in -l$ac_lib" >&5 ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 1749,1755 **** ac_save_LIBS="$LIBS" LIBS="-l$ac_lib $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 1782,1788 ---- yywrap() ; return 0; } EOF ! if { (eval echo configure:1786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 1783,1789 **** fi echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 ! echo "configure:1787: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1805,1811 ---- fi echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 ! echo "configure:1809: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1804,1810 **** fi echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 ! echo "configure:1808: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1826,1832 ---- fi echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 ! echo "configure:1830: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 1833,1839 **** # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1837: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1855,1861 ---- # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1859: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1863,1869 **** # Extract the first word of "find", so it can be a program name with args. set dummy find; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1867: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_find'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1885,1891 ---- # Extract the first word of "find", so it can be a program name with args. set dummy find; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1889: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_find'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1898,1904 **** # Extract the first word of "tar", so it can be a program name with args. set dummy tar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1902: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_tar'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1920,1926 ---- # Extract the first word of "tar", so it can be a program name with args. set dummy tar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1924: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_tar'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1933,1939 **** # Extract the first word of "split", so it can be a program name with args. set dummy split; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1937: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_split'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1955,1961 ---- # Extract the first word of "split", so it can be a program name with args. set dummy split; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1959: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_split'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1968,1974 **** # Extract the first word of "etags", so it can be a program name with args. set dummy etags; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1972: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_etags'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1990,1996 ---- # Extract the first word of "etags", so it can be a program name with args. set dummy etags; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1994: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_etags'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 2003,2009 **** # Extract the first word of "xargs", so it can be a program name with args. set dummy xargs; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2007: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_xargs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2025,2031 ---- # Extract the first word of "xargs", so it can be a program name with args. set dummy xargs; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2029: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_xargs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 2038,2044 **** # Extract the first word of "ipcs", so it can be a program name with args. set dummy ipcs; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2042: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_ipcs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2060,2066 ---- # Extract the first word of "ipcs", so it can be a program name with args. set dummy ipcs; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2064: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_ipcs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 2073,2079 **** # Extract the first word of "ipcrm", so it can be a program name with args. set dummy ipcrm; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2077: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_ipcrm'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2095,2101 ---- # Extract the first word of "ipcrm", so it can be a program name with args. set dummy ipcrm; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2099: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_ipcrm'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 2110,2116 **** # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2114: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_TR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2132,2138 ---- # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2136: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_TR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 2151,2157 **** # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2155: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GZCAT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2173,2179 ---- # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2177: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GZCAT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 2208,2214 **** # Extract the first word of "bison", so it can be a program name with args. set dummy bison; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2212: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_bison'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2230,2236 ---- # Extract the first word of "bison", so it can be a program name with args. set dummy bison; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2234: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_bison'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 2249,2255 **** # Extract the first word of "yacc", so it can be a program name with args. set dummy yacc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2253: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_yacc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2271,2277 ---- # Extract the first word of "yacc", so it can be a program name with args. set dummy yacc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2275: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_yacc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 2289,2295 **** echo $ac_n "checking for main in -lsfio""... $ac_c" 1>&6 ! echo "configure:2293: checking for main in -lsfio" >&5 ac_lib_var=`echo sfio'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2311,2317 ---- echo $ac_n "checking for main in -lsfio""... $ac_c" 1>&6 ! echo "configure:2315: checking for main in -lsfio" >&5 ac_lib_var=`echo sfio'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 2297,2310 **** ac_save_LIBS="$LIBS" LIBS="-lsfio $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 2319,2332 ---- ac_save_LIBS="$LIBS" LIBS="-lsfio $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 2333,2339 **** for curses in ncurses curses ; do echo $ac_n "checking for main in -l${curses}""... $ac_c" 1>&6 ! echo "configure:2337: checking for main in -l${curses}" >&5 ac_lib_var=`echo ${curses}'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2355,2361 ---- for curses in ncurses curses ; do echo $ac_n "checking for main in -l${curses}""... $ac_c" 1>&6 ! echo "configure:2359: checking for main in -l${curses}" >&5 ac_lib_var=`echo ${curses}'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 2341,2354 **** ac_save_LIBS="$LIBS" LIBS="-l${curses} $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 2363,2376 ---- ac_save_LIBS="$LIBS" LIBS="-l${curses} $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 2370,2376 **** done echo $ac_n "checking for main in -ltermcap""... $ac_c" 1>&6 ! echo "configure:2374: checking for main in -ltermcap" >&5 ac_lib_var=`echo termcap'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2392,2398 ---- done echo $ac_n "checking for main in -ltermcap""... $ac_c" 1>&6 ! echo "configure:2396: checking for main in -ltermcap" >&5 ac_lib_var=`echo termcap'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 2378,2391 **** ac_save_LIBS="$LIBS" LIBS="-ltermcap $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 2400,2413 ---- ac_save_LIBS="$LIBS" LIBS="-ltermcap $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 2413,2419 **** fi echo $ac_n "checking for main in -lhistory""... $ac_c" 1>&6 ! echo "configure:2417: checking for main in -lhistory" >&5 ac_lib_var=`echo history'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2435,2441 ---- fi echo $ac_n "checking for main in -lhistory""... $ac_c" 1>&6 ! echo "configure:2439: checking for main in -lhistory" >&5 ac_lib_var=`echo history'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 2421,2434 **** ac_save_LIBS="$LIBS" LIBS="-lhistory $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 2443,2456 ---- ac_save_LIBS="$LIBS" LIBS="-lhistory $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 2456,2462 **** fi echo $ac_n "checking for main in -lreadline""... $ac_c" 1>&6 ! echo "configure:2460: checking for main in -lreadline" >&5 ac_lib_var=`echo readline'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2478,2484 ---- fi echo $ac_n "checking for main in -lreadline""... $ac_c" 1>&6 ! echo "configure:2482: checking for main in -lreadline" >&5 ac_lib_var=`echo readline'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 2464,2477 **** ac_save_LIBS="$LIBS" LIBS="-lreadline $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 2486,2499 ---- ac_save_LIBS="$LIBS" LIBS="-lreadline $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 2499,2505 **** fi echo $ac_n "checking for write_history in -lreadline""... $ac_c" 1>&6 ! echo "configure:2503: checking for write_history in -lreadline" >&5 ac_lib_var=`echo readline'_'write_history | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2521,2527 ---- fi echo $ac_n "checking for write_history in -lreadline""... $ac_c" 1>&6 ! echo "configure:2525: checking for write_history in -lreadline" >&5 ac_lib_var=`echo readline'_'write_history | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 2507,2513 **** ac_save_LIBS="$LIBS" LIBS="-lreadline $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 2540,2546 ---- write_history() ; return 0; } EOF ! if { (eval echo configure:2544: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 2544,2550 **** if test "$PORTNAME" != "aix" -a "$PORTNAME" != "alpha" then echo $ac_n "checking for main in -lbsd""... $ac_c" 1>&6 ! echo "configure:2548: checking for main in -lbsd" >&5 ac_lib_var=`echo bsd'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2566,2572 ---- if test "$PORTNAME" != "aix" -a "$PORTNAME" != "alpha" then echo $ac_n "checking for main in -lbsd""... $ac_c" 1>&6 ! echo "configure:2570: checking for main in -lbsd" >&5 ac_lib_var=`echo bsd'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 2552,2565 **** ac_save_LIBS="$LIBS" LIBS="-lbsd $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 2574,2587 ---- ac_save_LIBS="$LIBS" LIBS="-lbsd $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 2588,2594 **** fi echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:2592: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2610,2616 ---- fi echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:2614: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 2596,2609 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 2618,2631 ---- ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 2631,2637 **** fi echo $ac_n "checking for main in -ldl""... $ac_c" 1>&6 ! echo "configure:2635: checking for main in -ldl" >&5 ac_lib_var=`echo dl'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2653,2659 ---- fi echo $ac_n "checking for main in -ldl""... $ac_c" 1>&6 ! echo "configure:2657: checking for main in -ldl" >&5 ac_lib_var=`echo dl'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 2639,2652 **** ac_save_LIBS="$LIBS" LIBS="-ldl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 2661,2674 ---- ac_save_LIBS="$LIBS" LIBS="-ldl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 2674,2680 **** fi echo $ac_n "checking for main in -lsocket""... $ac_c" 1>&6 ! echo "configure:2678: checking for main in -lsocket" >&5 ac_lib_var=`echo socket'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2696,2702 ---- fi echo $ac_n "checking for main in -lsocket""... $ac_c" 1>&6 ! echo "configure:2700: checking for main in -lsocket" >&5 ac_lib_var=`echo socket'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 2682,2695 **** ac_save_LIBS="$LIBS" LIBS="-lsocket $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 2704,2717 ---- ac_save_LIBS="$LIBS" LIBS="-lsocket $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 2717,2723 **** fi echo $ac_n "checking for main in -lnsl""... $ac_c" 1>&6 ! echo "configure:2721: checking for main in -lnsl" >&5 ac_lib_var=`echo nsl'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2739,2745 ---- fi echo $ac_n "checking for main in -lnsl""... $ac_c" 1>&6 ! echo "configure:2743: checking for main in -lnsl" >&5 ac_lib_var=`echo nsl'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 2725,2738 **** ac_save_LIBS="$LIBS" LIBS="-lnsl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 2747,2760 ---- ac_save_LIBS="$LIBS" LIBS="-lnsl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 2760,2766 **** fi echo $ac_n "checking for main in -lipc""... $ac_c" 1>&6 ! echo "configure:2764: checking for main in -lipc" >&5 ac_lib_var=`echo ipc'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2782,2788 ---- fi echo $ac_n "checking for main in -lipc""... $ac_c" 1>&6 ! echo "configure:2786: checking for main in -lipc" >&5 ac_lib_var=`echo ipc'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 2768,2781 **** ac_save_LIBS="$LIBS" LIBS="-lipc $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 2790,2803 ---- ac_save_LIBS="$LIBS" LIBS="-lipc $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 2803,2809 **** fi echo $ac_n "checking for main in -lIPC""... $ac_c" 1>&6 ! echo "configure:2807: checking for main in -lIPC" >&5 ac_lib_var=`echo IPC'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2825,2831 ---- fi echo $ac_n "checking for main in -lIPC""... $ac_c" 1>&6 ! echo "configure:2829: checking for main in -lIPC" >&5 ac_lib_var=`echo IPC'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 2811,2824 **** ac_save_LIBS="$LIBS" LIBS="-lIPC $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 2833,2846 ---- ac_save_LIBS="$LIBS" LIBS="-lIPC $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 2846,2852 **** fi echo $ac_n "checking for main in -llc""... $ac_c" 1>&6 ! echo "configure:2850: checking for main in -llc" >&5 ac_lib_var=`echo lc'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2868,2874 ---- fi echo $ac_n "checking for main in -llc""... $ac_c" 1>&6 ! echo "configure:2872: checking for main in -llc" >&5 ac_lib_var=`echo lc'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 2854,2867 **** ac_save_LIBS="$LIBS" LIBS="-llc $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 2876,2889 ---- ac_save_LIBS="$LIBS" LIBS="-llc $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 2889,2895 **** fi echo $ac_n "checking for main in -ldld""... $ac_c" 1>&6 ! echo "configure:2893: checking for main in -ldld" >&5 ac_lib_var=`echo dld'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2911,2917 ---- fi echo $ac_n "checking for main in -ldld""... $ac_c" 1>&6 ! echo "configure:2915: checking for main in -ldld" >&5 ac_lib_var=`echo dld'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 2897,2910 **** ac_save_LIBS="$LIBS" LIBS="-ldld $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 2919,2932 ---- ac_save_LIBS="$LIBS" LIBS="-ldld $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 2932,2938 **** fi echo $ac_n "checking for main in -lln""... $ac_c" 1>&6 ! echo "configure:2936: checking for main in -lln" >&5 ac_lib_var=`echo ln'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2954,2960 ---- fi echo $ac_n "checking for main in -lln""... $ac_c" 1>&6 ! echo "configure:2958: checking for main in -lln" >&5 ac_lib_var=`echo ln'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 2940,2953 **** ac_save_LIBS="$LIBS" LIBS="-lln $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 2962,2975 ---- ac_save_LIBS="$LIBS" LIBS="-lln $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 2975,2981 **** fi echo $ac_n "checking for main in -lld""... $ac_c" 1>&6 ! echo "configure:2979: checking for main in -lld" >&5 ac_lib_var=`echo ld'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2997,3003 ---- fi echo $ac_n "checking for main in -lld""... $ac_c" 1>&6 ! echo "configure:3001: checking for main in -lld" >&5 ac_lib_var=`echo ld'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 2983,2996 **** ac_save_LIBS="$LIBS" LIBS="-lld $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 3005,3018 ---- ac_save_LIBS="$LIBS" LIBS="-lld $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 3018,3024 **** fi echo $ac_n "checking for main in -lcompat""... $ac_c" 1>&6 ! echo "configure:3022: checking for main in -lcompat" >&5 ac_lib_var=`echo compat'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 3040,3046 ---- fi echo $ac_n "checking for main in -lcompat""... $ac_c" 1>&6 ! echo "configure:3044: checking for main in -lcompat" >&5 ac_lib_var=`echo compat'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 3026,3039 **** ac_save_LIBS="$LIBS" LIBS="-lcompat $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 3048,3061 ---- ac_save_LIBS="$LIBS" LIBS="-lcompat $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 3061,3067 **** fi echo $ac_n "checking for main in -lBSD""... $ac_c" 1>&6 ! echo "configure:3065: checking for main in -lBSD" >&5 ac_lib_var=`echo BSD'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 3083,3089 ---- fi echo $ac_n "checking for main in -lBSD""... $ac_c" 1>&6 ! echo "configure:3087: checking for main in -lBSD" >&5 ac_lib_var=`echo BSD'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 3069,3082 **** ac_save_LIBS="$LIBS" LIBS="-lBSD $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 3091,3104 ---- ac_save_LIBS="$LIBS" LIBS="-lBSD $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 3104,3110 **** fi echo $ac_n "checking for main in -lcrypt""... $ac_c" 1>&6 ! echo "configure:3108: checking for main in -lcrypt" >&5 ac_lib_var=`echo crypt'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 3126,3132 ---- fi echo $ac_n "checking for main in -lcrypt""... $ac_c" 1>&6 ! echo "configure:3130: checking for main in -lcrypt" >&5 ac_lib_var=`echo crypt'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 3112,3125 **** ac_save_LIBS="$LIBS" LIBS="-lcrypt $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 3134,3147 ---- ac_save_LIBS="$LIBS" LIBS="-lcrypt $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 3147,3153 **** fi echo $ac_n "checking for main in -lgen""... $ac_c" 1>&6 ! echo "configure:3151: checking for main in -lgen" >&5 ac_lib_var=`echo gen'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 3169,3175 ---- fi echo $ac_n "checking for main in -lgen""... $ac_c" 1>&6 ! echo "configure:3173: checking for main in -lgen" >&5 ac_lib_var=`echo gen'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 3155,3168 **** ac_save_LIBS="$LIBS" LIBS="-lgen $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 3177,3190 ---- ac_save_LIBS="$LIBS" LIBS="-lgen $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 3190,3196 **** fi echo $ac_n "checking for main in -lPW""... $ac_c" 1>&6 ! echo "configure:3194: checking for main in -lPW" >&5 ac_lib_var=`echo PW'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 3212,3218 ---- fi echo $ac_n "checking for main in -lPW""... $ac_c" 1>&6 ! echo "configure:3216: checking for main in -lPW" >&5 ac_lib_var=`echo PW'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 3198,3211 **** ac_save_LIBS="$LIBS" LIBS="-lPW $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 3220,3233 ---- ac_save_LIBS="$LIBS" LIBS="-lPW $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 3234,3245 **** echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 ! echo "configure:3238: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 3256,3267 ---- echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 ! echo "configure:3260: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** *** 3247,3253 **** #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3251: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 3269,3275 ---- #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3273: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** *** 3264,3270 **** if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF --- 3286,3292 ---- if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF *************** *** 3282,3288 **** if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF --- 3304,3310 ---- if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF *************** *** 3303,3309 **** : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') --- 3325,3331 ---- : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') *************** *** 3314,3320 **** exit (0); } EOF ! if { (eval echo configure:3318: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else --- 3336,3342 ---- exit (0); } EOF ! if { (eval echo configure:3340: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else *************** *** 3338,3349 **** fi echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 ! echo "configure:3342: checking for sys/wait.h that is POSIX.1 compatible" >&5 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 3360,3371 ---- fi echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 ! echo "configure:3364: checking for sys/wait.h that is POSIX.1 compatible" >&5 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** *** 3359,3365 **** s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF ! if { (eval echo configure:3363: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else --- 3381,3387 ---- s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF ! if { (eval echo configure:3385: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else *************** *** 3379,3399 **** fi ! for ac_hdr in limits.h unistd.h termios.h values.h sys/select.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:3387: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3397: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 3401,3421 ---- fi ! for ac_hdr in arpa/inet.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:3409: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3419: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** *** 3419,3439 **** fi done ! for ac_hdr in sys/resource.h netdb.h arpa/inet.h getopt.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:3427: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3437: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 3441,3461 ---- fi done ! for ac_hdr in crypt.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:3449: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3459: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** *** 3459,3479 **** fi done ! for ac_hdr in readline.h history.h dld.h crypt.h endian.h float.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:3467: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3477: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 3481,3501 ---- fi done ! for ac_hdr in dld.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:3489: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3499: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** *** 3499,3519 **** fi done ! for ac_hdr in readline/readline.h readline/history.h ieeefp.h fp_class.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:3507: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3517: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 3521,3541 ---- fi done ! for ac_hdr in endian.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:3529: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3539: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** *** 3539,3559 **** fi done ! for ac_hdr in netinet/in.h string.h strings.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:3547: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3557: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 3561,3581 ---- fi done ! for ac_hdr in float.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:3569: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3579: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** *** 3579,3599 **** fi done ! for ac_hdr in sys/param.h pwd.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:3587: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3597: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 3601,3621 ---- fi done ! for ac_hdr in fp_class.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:3609: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3619: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** *** 3619,3827 **** fi done ! ! echo $ac_n "checking for working const""... $ac_c" 1>&6 ! echo "configure:3625: checking for working const" >&5 ! if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <j = 5; ! } ! { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ ! const int foo = 10; ! } ! ! ; return 0; } EOF ! if { (eval echo configure:3679: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ! ac_cv_c_const=yes else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* ! ac_cv_c_const=no fi rm -f conftest* fi ! ! echo "$ac_t""$ac_cv_c_const" 1>&6 ! if test $ac_cv_c_const = no; then ! cat >> confdefs.h <<\EOF ! #define const EOF ! fi ! echo $ac_n "checking for inline""... $ac_c" 1>&6 ! echo "configure:3700: checking for inline" >&5 ! if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else - ac_cv_c_inline=no - for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ! ac_cv_c_inline=$ac_kw; break else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest* - done - fi ! ! echo "$ac_t""$ac_cv_c_inline" 1>&6 ! case "$ac_cv_c_inline" in ! inline | yes) ;; ! no) cat >> confdefs.h <<\EOF ! #define inline ! EOF ! ;; ! *) cat >> confdefs.h <&6 ! echo "configure:3742: checking for preprocessor stringizing operator" >&5 ! if eval "test \"`echo '$''{'ac_cv_c_stringize'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5 | ! egrep "#teststring" >/dev/null 2>&1; then rm -rf conftest* ! ac_cv_c_stringize=no else rm -rf conftest* ! ac_cv_c_stringize=yes fi rm -f conftest* - fi ! ! if test "${ac_cv_c_stringize}" = yes ! then ! cat >> confdefs.h <<\EOF ! #define HAVE_STRINGIZE 1 EOF ! fi ! echo "$ac_t""${ac_cv_c_stringize}" 1>&6 ! echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 ! echo "configure:3777: checking for uid_t in sys/types.h" >&5 ! if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ! egrep "uid_t" >/dev/null 2>&1; then rm -rf conftest* ! ac_cv_type_uid_t=yes else rm -rf conftest* ! ac_cv_type_uid_t=no fi rm -f conftest* - fi ! ! echo "$ac_t""$ac_cv_type_uid_t" 1>&6 ! if test $ac_cv_type_uid_t = no; then ! cat >> confdefs.h <<\EOF ! #define uid_t int ! EOF ! ! cat >> confdefs.h <<\EOF ! #define gid_t int EOF ! fi ! echo $ac_n "checking for mode_t""... $ac_c" 1>&6 ! echo "configure:3811: checking for mode_t" >&5 ! if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < ! #if STDC_HEADERS ! #include ! #include ! #endif EOF ! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ! egrep "(^|[^a-zA-Z_0-9])mode_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then rm -rf conftest* ac_cv_type_mode_t=yes else --- 3641,4409 ---- fi done ! for ac_hdr in getopt.h ! do ! ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ! echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:3649: checking for $ac_hdr" >&5 ! if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ! ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3659: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ! ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ! if test -z "$ac_err"; then rm -rf conftest* ! eval "ac_cv_header_$ac_safe=yes" else + echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* ! eval "ac_cv_header_$ac_safe=no" fi rm -f conftest* fi ! if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ! echo "$ac_t""yes" 1>&6 ! ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ! cat >> confdefs.h <&6 fi + done ! for ac_hdr in history.h ! do ! ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ! echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:3689: checking for $ac_hdr" >&5 ! if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ! ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3699: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ! ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ! if test -z "$ac_err"; then rm -rf conftest* ! eval "ac_cv_header_$ac_safe=yes" else + echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" fi rm -f conftest* fi ! if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ! echo "$ac_t""yes" 1>&6 ! ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ! cat >> confdefs.h <&6 ! fi ! done ! for ac_hdr in ieeefp.h ! do ! ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ! echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:3729: checking for $ac_hdr" >&5 ! if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ! ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3739: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ! ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ! if test -z "$ac_err"; then rm -rf conftest* ! eval "ac_cv_header_$ac_safe=yes" else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 rm -rf conftest* ! eval "ac_cv_header_$ac_safe=no" fi rm -f conftest* fi ! if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ! echo "$ac_t""yes" 1>&6 ! ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ! cat >> confdefs.h <&6 fi ! done ! for ac_hdr in limits.h ! do ! ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ! echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:3769: checking for $ac_hdr" >&5 ! if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ! ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3779: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ! ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ! if test -z "$ac_err"; then rm -rf conftest* ! eval "ac_cv_header_$ac_safe=yes" else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 rm -rf conftest* ! eval "ac_cv_header_$ac_safe=no" fi rm -f conftest* fi ! if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ! echo "$ac_t""yes" 1>&6 ! ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ! cat >> confdefs.h <&6 fi + done ! for ac_hdr in netdb.h ! do ! ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ! echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:3809: checking for $ac_hdr" >&5 ! if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ! ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3819: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ! ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ! if test -z "$ac_err"; then ! rm -rf conftest* ! eval "ac_cv_header_$ac_safe=yes" ! else ! echo "$ac_err" >&5 ! echo "configure: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! rm -rf conftest* ! eval "ac_cv_header_$ac_safe=no" ! fi ! rm -f conftest* ! fi ! if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ! echo "$ac_t""yes" 1>&6 ! ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ! cat >> confdefs.h <&6 ! fi ! done ! ! for ac_hdr in netinet/in.h ! do ! ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ! echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:3849: checking for $ac_hdr" >&5 ! if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! cat > conftest.$ac_ext < ! EOF ! ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3859: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ! ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ! if test -z "$ac_err"; then ! rm -rf conftest* ! eval "ac_cv_header_$ac_safe=yes" ! else ! echo "$ac_err" >&5 ! echo "configure: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! rm -rf conftest* ! eval "ac_cv_header_$ac_safe=no" ! fi ! rm -f conftest* ! fi ! if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ! echo "$ac_t""yes" 1>&6 ! ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ! cat >> confdefs.h <&6 ! fi ! done ! ! for ac_hdr in readline.h ! do ! ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ! echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:3889: checking for $ac_hdr" >&5 ! if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! cat > conftest.$ac_ext < ! EOF ! ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3899: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ! ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ! if test -z "$ac_err"; then ! rm -rf conftest* ! eval "ac_cv_header_$ac_safe=yes" ! else ! echo "$ac_err" >&5 ! echo "configure: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! rm -rf conftest* ! eval "ac_cv_header_$ac_safe=no" ! fi ! rm -f conftest* ! fi ! if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ! echo "$ac_t""yes" 1>&6 ! ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ! cat >> confdefs.h <&6 ! fi ! done ! ! for ac_hdr in readline/history.h ! do ! ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ! echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:3929: checking for $ac_hdr" >&5 ! if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! cat > conftest.$ac_ext < ! EOF ! ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3939: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ! ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ! if test -z "$ac_err"; then ! rm -rf conftest* ! eval "ac_cv_header_$ac_safe=yes" ! else ! echo "$ac_err" >&5 ! echo "configure: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! rm -rf conftest* ! eval "ac_cv_header_$ac_safe=no" ! fi ! rm -f conftest* ! fi ! if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ! echo "$ac_t""yes" 1>&6 ! ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ! cat >> confdefs.h <&6 ! fi ! done ! ! for ac_hdr in readline/readline.h ! do ! ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ! echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:3969: checking for $ac_hdr" >&5 ! if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! cat > conftest.$ac_ext < ! EOF ! ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3979: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ! ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ! if test -z "$ac_err"; then ! rm -rf conftest* ! eval "ac_cv_header_$ac_safe=yes" ! else ! echo "$ac_err" >&5 ! echo "configure: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! rm -rf conftest* ! eval "ac_cv_header_$ac_safe=no" ! fi ! rm -f conftest* ! fi ! if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ! echo "$ac_t""yes" 1>&6 ! ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ! cat >> confdefs.h <&6 ! fi ! done ! ! for ac_hdr in sys/select.h ! do ! ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ! echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4009: checking for $ac_hdr" >&5 ! if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! cat > conftest.$ac_ext < ! EOF ! ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4019: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ! ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ! if test -z "$ac_err"; then ! rm -rf conftest* ! eval "ac_cv_header_$ac_safe=yes" ! else ! echo "$ac_err" >&5 ! echo "configure: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! rm -rf conftest* ! eval "ac_cv_header_$ac_safe=no" ! fi ! rm -f conftest* ! fi ! if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ! echo "$ac_t""yes" 1>&6 ! ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ! cat >> confdefs.h <&6 ! fi ! done ! ! for ac_hdr in termios.h ! do ! ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ! echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4049: checking for $ac_hdr" >&5 ! if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! cat > conftest.$ac_ext < ! EOF ! ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4059: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ! ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ! if test -z "$ac_err"; then ! rm -rf conftest* ! eval "ac_cv_header_$ac_safe=yes" ! else ! echo "$ac_err" >&5 ! echo "configure: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! rm -rf conftest* ! eval "ac_cv_header_$ac_safe=no" ! fi ! rm -f conftest* ! fi ! if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ! echo "$ac_t""yes" 1>&6 ! ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ! cat >> confdefs.h <&6 ! fi ! done ! ! for ac_hdr in unistd.h ! do ! ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ! echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4089: checking for $ac_hdr" >&5 ! if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! cat > conftest.$ac_ext < ! EOF ! ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4099: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ! ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ! if test -z "$ac_err"; then ! rm -rf conftest* ! eval "ac_cv_header_$ac_safe=yes" ! else ! echo "$ac_err" >&5 ! echo "configure: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! rm -rf conftest* ! eval "ac_cv_header_$ac_safe=no" ! fi ! rm -f conftest* ! fi ! if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ! echo "$ac_t""yes" 1>&6 ! ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ! cat >> confdefs.h <&6 ! fi ! done ! ! for ac_hdr in values.h ! do ! ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ! echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4129: checking for $ac_hdr" >&5 ! if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! cat > conftest.$ac_ext < ! EOF ! ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4139: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ! ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ! if test -z "$ac_err"; then ! rm -rf conftest* ! eval "ac_cv_header_$ac_safe=yes" ! else ! echo "$ac_err" >&5 ! echo "configure: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! rm -rf conftest* ! eval "ac_cv_header_$ac_safe=no" ! fi ! rm -f conftest* ! fi ! if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ! echo "$ac_t""yes" 1>&6 ! ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ! cat >> confdefs.h <&6 ! fi ! done ! ! for ac_hdr in sys/param.h pwd.h ! do ! ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ! echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4169: checking for $ac_hdr" >&5 ! if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! cat > conftest.$ac_ext < ! EOF ! ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4179: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ! ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ! if test -z "$ac_err"; then ! rm -rf conftest* ! eval "ac_cv_header_$ac_safe=yes" ! else ! echo "$ac_err" >&5 ! echo "configure: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! rm -rf conftest* ! eval "ac_cv_header_$ac_safe=no" ! fi ! rm -f conftest* ! fi ! if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ! echo "$ac_t""yes" 1>&6 ! ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ! cat >> confdefs.h <&6 ! fi ! done ! ! ! echo $ac_n "checking for working const""... $ac_c" 1>&6 ! echo "configure:4207: checking for working const" >&5 ! if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! cat > conftest.$ac_ext <j = 5; ! } ! { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ ! const int foo = 10; ! } ! ! ; return 0; } ! EOF ! if { (eval echo configure:4261: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ! rm -rf conftest* ! ac_cv_c_const=yes ! else ! echo "configure: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! rm -rf conftest* ! ac_cv_c_const=no ! fi ! rm -f conftest* ! fi ! ! echo "$ac_t""$ac_cv_c_const" 1>&6 ! if test $ac_cv_c_const = no; then ! cat >> confdefs.h <<\EOF ! #define const ! EOF ! ! fi ! ! echo $ac_n "checking for inline""... $ac_c" 1>&6 ! echo "configure:4282: checking for inline" >&5 ! if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! ac_cv_c_inline=no ! for ac_kw in inline __inline__ __inline; do ! cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then ! rm -rf conftest* ! ac_cv_c_inline=$ac_kw; break ! else ! echo "configure: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! fi ! rm -f conftest* ! done ! ! fi ! ! echo "$ac_t""$ac_cv_c_inline" 1>&6 ! case "$ac_cv_c_inline" in ! inline | yes) ;; ! no) cat >> confdefs.h <<\EOF ! #define inline ! EOF ! ;; ! *) cat >> confdefs.h <&6 ! echo "configure:4324: checking for preprocessor stringizing operator" >&5 ! if eval "test \"`echo '$''{'ac_cv_c_stringize'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! cat > conftest.$ac_ext <&5 | ! egrep "#teststring" >/dev/null 2>&1; then ! rm -rf conftest* ! ac_cv_c_stringize=no ! else ! rm -rf conftest* ! ac_cv_c_stringize=yes ! fi ! rm -f conftest* ! ! fi ! ! if test "${ac_cv_c_stringize}" = yes ! then ! cat >> confdefs.h <<\EOF ! #define HAVE_STRINGIZE 1 ! EOF ! ! fi ! echo "$ac_t""${ac_cv_c_stringize}" 1>&6 ! ! echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 ! echo "configure:4359: checking for uid_t in sys/types.h" >&5 ! if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! cat > conftest.$ac_ext < ! EOF ! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ! egrep "uid_t" >/dev/null 2>&1; then ! rm -rf conftest* ! ac_cv_type_uid_t=yes ! else ! rm -rf conftest* ! ac_cv_type_uid_t=no ! fi ! rm -f conftest* ! ! fi ! ! echo "$ac_t""$ac_cv_type_uid_t" 1>&6 ! if test $ac_cv_type_uid_t = no; then ! cat >> confdefs.h <<\EOF ! #define uid_t int ! EOF ! ! cat >> confdefs.h <<\EOF ! #define gid_t int ! EOF ! ! fi ! ! echo $ac_n "checking for mode_t""... $ac_c" 1>&6 ! echo "configure:4393: checking for mode_t" >&5 ! if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! cat > conftest.$ac_ext < ! #if STDC_HEADERS ! #include ! #include ! #endif ! EOF ! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ! egrep "(^|[^a-zA-Z_0-9])mode_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then rm -rf conftest* ac_cv_type_mode_t=yes else *************** *** 3840,3851 **** fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 ! echo "configure:3844: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS --- 4422,4433 ---- fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 ! echo "configure:4426: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS *************** *** 3873,3884 **** fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 ! echo "configure:3877: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS --- 4455,4466 ---- fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 ! echo "configure:4459: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS *************** *** 3906,3917 **** fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 ! echo "configure:3910: checking whether time.h and sys/time.h may both be included" >&5 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 4488,4499 ---- fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 ! echo "configure:4492: checking whether time.h and sys/time.h may both be included" >&5 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** *** 3920,3926 **** struct tm *tp; ; return 0; } EOF ! if { (eval echo configure:3924: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else --- 4502,4508 ---- struct tm *tp; ; return 0; } EOF ! if { (eval echo configure:4506: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else *************** *** 3941,3952 **** fi echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6 ! echo "configure:3945: checking whether struct tm is in sys/time.h or time.h" >&5 if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 4523,4534 ---- fi echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6 ! echo "configure:4527: checking whether struct tm is in sys/time.h or time.h" >&5 if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** *** 3954,3960 **** struct tm *tp; tp->tm_sec; ; return 0; } EOF ! if { (eval echo configure:3958: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm=time.h else --- 4536,4542 ---- struct tm *tp; tp->tm_sec; ; return 0; } EOF ! if { (eval echo configure:4540: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm=time.h else *************** *** 3975,3986 **** fi echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6 ! echo "configure:3979: checking for tm_zone in struct tm" >&5 if eval "test \"`echo '$''{'ac_cv_struct_tm_zone'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include <$ac_cv_struct_tm> --- 4557,4568 ---- fi echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6 ! echo "configure:4561: checking for tm_zone in struct tm" >&5 if eval "test \"`echo '$''{'ac_cv_struct_tm_zone'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include <$ac_cv_struct_tm> *************** *** 3988,3994 **** struct tm tm; tm.tm_zone; ; return 0; } EOF ! if { (eval echo configure:3992: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm_zone=yes else --- 4570,4576 ---- struct tm tm; tm.tm_zone; ; return 0; } EOF ! if { (eval echo configure:4574: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm_zone=yes else *************** *** 4008,4019 **** else echo $ac_n "checking for tzname""... $ac_c" 1>&6 ! echo "configure:4012: checking for tzname" >&5 if eval "test \"`echo '$''{'ac_cv_var_tzname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #ifndef tzname /* For SGI. */ --- 4590,4601 ---- else echo $ac_n "checking for tzname""... $ac_c" 1>&6 ! echo "configure:4594: checking for tzname" >&5 if eval "test \"`echo '$''{'ac_cv_var_tzname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #ifndef tzname /* For SGI. */ *************** *** 4023,4029 **** atoi(*tzname); ; return 0; } EOF ! if { (eval echo configure:4027: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_var_tzname=yes else --- 4605,4611 ---- atoi(*tzname); ; return 0; } EOF ! if { (eval echo configure:4609: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_var_tzname=yes else *************** *** 4046,4061 **** echo $ac_n "checking for signed types""... $ac_c" 1>&6 ! echo "configure:4050: checking for signed types" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else --- 4628,4643 ---- echo $ac_n "checking for signed types""... $ac_c" 1>&6 ! echo "configure:4632: checking for signed types" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else *************** *** 4070,4085 **** rm -f conftest* echo $ac_n "checking for volatile""... $ac_c" 1>&6 ! echo "configure:4074: checking for volatile" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else --- 4652,4667 ---- rm -f conftest* echo $ac_n "checking for volatile""... $ac_c" 1>&6 ! echo "configure:4656: checking for volatile" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else *************** *** 4094,4102 **** rm -f conftest* echo $ac_n "checking for type of last arg to accept""... $ac_c" 1>&6 ! echo "configure:4098: checking for type of last arg to accept" >&5 cat > conftest.$ac_ext < #include --- 4676,4684 ---- rm -f conftest* echo $ac_n "checking for type of last arg to accept""... $ac_c" 1>&6 ! echo "configure:4680: checking for type of last arg to accept" >&5 cat > conftest.$ac_ext < #include *************** *** 4106,4112 **** int a = accept(1, (struct sockaddr *) 0, (size_t *) 0); ; return 0; } EOF ! if { (eval echo configure:4110: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define SOCKET_SIZE_TYPE size_t --- 4688,4694 ---- int a = accept(1, (struct sockaddr *) 0, (size_t *) 0); ; return 0; } EOF ! if { (eval echo configure:4692: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define SOCKET_SIZE_TYPE size_t *************** *** 4124,4139 **** rm -f conftest* echo $ac_n "checking for int timezone""... $ac_c" 1>&6 ! echo "configure:4128: checking for int timezone" >&5 cat > conftest.$ac_ext < int main() { int res = timezone / 60; ; return 0; } EOF ! if { (eval echo configure:4137: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_INT_TIMEZONE 1 --- 4706,4721 ---- rm -f conftest* echo $ac_n "checking for int timezone""... $ac_c" 1>&6 ! echo "configure:4710: checking for int timezone" >&5 cat > conftest.$ac_ext < int main() { int res = timezone / 60; ; return 0; } EOF ! if { (eval echo configure:4719: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_INT_TIMEZONE 1 *************** *** 4148,4163 **** rm -f conftest* echo $ac_n "checking for gettimeofday args""... $ac_c" 1>&6 ! echo "configure:4152: checking for gettimeofday args" >&5 cat > conftest.$ac_ext < int main() { struct timeval *tp; struct timezone *tzp; gettimeofday(tp,tzp); ; return 0; } EOF ! if { (eval echo configure:4161: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_GETTIMEOFDAY_2_ARGS 1 --- 4730,4745 ---- rm -f conftest* echo $ac_n "checking for gettimeofday args""... $ac_c" 1>&6 ! echo "configure:4734: checking for gettimeofday args" >&5 cat > conftest.$ac_ext < int main() { struct timeval *tp; struct timezone *tzp; gettimeofday(tp,tzp); ; return 0; } EOF ! if { (eval echo configure:4743: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_GETTIMEOFDAY_2_ARGS 1 *************** *** 4172,4180 **** rm -f conftest* echo $ac_n "checking for union semun""... $ac_c" 1>&6 ! echo "configure:4176: checking for union semun" >&5 cat > conftest.$ac_ext < #include --- 4754,4762 ---- rm -f conftest* echo $ac_n "checking for union semun""... $ac_c" 1>&6 ! echo "configure:4758: checking for union semun" >&5 cat > conftest.$ac_ext < #include *************** *** 4183,4189 **** union semun semun; ; return 0; } EOF ! if { (eval echo configure:4187: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_UNION_SEMUN 1 --- 4765,4771 ---- union semun semun; ; return 0; } EOF ! if { (eval echo configure:4769: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_UNION_SEMUN 1 *************** *** 4198,4206 **** rm -f conftest* echo $ac_n "checking for fcntl(F_SETLK)""... $ac_c" 1>&6 ! echo "configure:4202: checking for fcntl(F_SETLK)" >&5 cat > conftest.$ac_ext < int main() { --- 4780,4788 ---- rm -f conftest* echo $ac_n "checking for fcntl(F_SETLK)""... $ac_c" 1>&6 ! echo "configure:4784: checking for fcntl(F_SETLK)" >&5 cat > conftest.$ac_ext < int main() { *************** *** 4210,4216 **** fcntl(0, F_SETLK, &lck); ; return 0; } EOF ! if { (eval echo configure:4214: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_FCNTL_SETLK 1 --- 4792,4798 ---- fcntl(0, F_SETLK, &lck); ; return 0; } EOF ! if { (eval echo configure:4796: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_FCNTL_SETLK 1 *************** *** 4224,4262 **** fi rm -f conftest* - echo $ac_n "checking for good DBL_MIN""... $ac_c" 1>&6 - echo "configure:4229: checking for good DBL_MIN" >&5 - if test "$cross_compiling" = yes; then - echo "$ac_t""assuming ok on target machine" 1>&6 - else - cat > conftest.$ac_ext < - #include - #ifdef HAVE_FLOAT_H - # include - #endif - main() { double d = DBL_MIN; if (d != DBL_MIN) exit(-1); else exit(0); } - EOF - if { (eval echo configure:4243: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null - then - echo "$ac_t""yes" 1>&6 - else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -fr conftest* - cat >> confdefs.h <<\EOF - #define HAVE_DBL_MIN_PROBLEM 1 - EOF - echo "$ac_t""no" 1>&6 - fi - rm -fr conftest* - fi - - echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6 ! echo "configure:4260: checking for 8-bit clean memcmp" >&5 if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 4806,4813 ---- fi rm -f conftest* echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6 ! echo "configure:4811: checking for 8-bit clean memcmp" >&5 if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 4264,4270 **** ac_cv_func_memcmp_clean=no else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_memcmp_clean=yes else --- 4825,4831 ---- } EOF ! if { (eval echo configure:4829: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_memcmp_clean=yes else *************** *** 4292,4303 **** test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}" echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 ! echo "configure:4296: checking return type of signal handlers" >&5 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 4843,4854 ---- test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}" echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 ! echo "configure:4847: checking return type of signal handlers" >&5 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** *** 4314,4320 **** int i; ; return 0; } EOF ! if { (eval echo configure:4318: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else --- 4865,4871 ---- int i; ; return 0; } EOF ! if { (eval echo configure:4869: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else *************** *** 4333,4344 **** echo $ac_n "checking for vprintf""... $ac_c" 1>&6 ! echo "configure:4337: checking for vprintf" >&5 if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4888: checking for vprintf" >&5 if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_vprintf=yes" else --- 4912,4918 ---- ; return 0; } EOF ! if { (eval echo configure:4916: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_vprintf=yes" else *************** *** 4385,4396 **** if test "$ac_cv_func_vprintf" != yes; then echo $ac_n "checking for _doprnt""... $ac_c" 1>&6 ! echo "configure:4389: checking for _doprnt" >&5 if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4940: checking for _doprnt" >&5 if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func__doprnt=yes" else --- 4964,4970 ---- ; return 0; } EOF ! if { (eval echo configure:4968: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func__doprnt=yes" else *************** *** 4437,4451 **** fi ! for ac_func in tzset memmove sigsetjmp kill sysconf fpclass do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4444: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4995: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5019,5025 ---- ; return 0; } EOF ! if { (eval echo configure:5023: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 4492,4506 **** fi done ! for ac_func in fp_class fp_class_d class do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4499: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5050: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5074,5080 ---- ; return 0; } EOF ! if { (eval echo configure:5078: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 4547,4561 **** fi done ! for ac_func in sigprocmask waitpid setsid fcvt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4554: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5105: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5129,5135 ---- ; return 0; } EOF ! if { (eval echo configure:5133: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 4604,4615 **** SNPRINTF='' echo $ac_n "checking for snprintf""... $ac_c" 1>&6 ! echo "configure:4608: checking for snprintf" >&5 if eval "test \"`echo '$''{'ac_cv_func_snprintf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5159: checking for snprintf" >&5 if eval "test \"`echo '$''{'ac_cv_func_snprintf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_snprintf=yes" else --- 5183,5189 ---- ; return 0; } EOF ! if { (eval echo configure:5187: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_snprintf=yes" else *************** *** 4656,4667 **** fi echo $ac_n "checking for vsnprintf""... $ac_c" 1>&6 ! echo "configure:4660: checking for vsnprintf" >&5 if eval "test \"`echo '$''{'ac_cv_func_vsnprintf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5211: checking for vsnprintf" >&5 if eval "test \"`echo '$''{'ac_cv_func_vsnprintf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_vsnprintf=yes" else --- 5235,5241 ---- ; return 0; } EOF ! if { (eval echo configure:5239: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_vsnprintf=yes" else *************** *** 4709,4727 **** echo $ac_n "checking for isinf""... $ac_c" 1>&6 ! echo "configure:4713: checking for isinf" >&5 if eval "test \"`echo '$''{'ac_cv_func_or_macro_isinf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { double x = 0.0; int res = isinf(x); ; return 0; } EOF ! if { (eval echo configure:4725: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_or_macro_isinf=yes else --- 5260,5278 ---- echo $ac_n "checking for isinf""... $ac_c" 1>&6 ! echo "configure:5264: checking for isinf" >&5 if eval "test \"`echo '$''{'ac_cv_func_or_macro_isinf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { double x = 0.0; int res = isinf(x); ; return 0; } EOF ! if { (eval echo configure:5276: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_or_macro_isinf=yes else *************** *** 4746,4757 **** fi echo $ac_n "checking for getrusage""... $ac_c" 1>&6 ! echo "configure:4750: checking for getrusage" >&5 if eval "test \"`echo '$''{'ac_cv_func_getrusage'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5301: checking for getrusage" >&5 if eval "test \"`echo '$''{'ac_cv_func_getrusage'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_getrusage=yes" else --- 5325,5331 ---- ; return 0; } EOF ! if { (eval echo configure:5329: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_getrusage=yes" else *************** *** 4799,4810 **** echo $ac_n "checking for srandom""... $ac_c" 1>&6 ! echo "configure:4803: checking for srandom" >&5 if eval "test \"`echo '$''{'ac_cv_func_srandom'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5354: checking for srandom" >&5 if eval "test \"`echo '$''{'ac_cv_func_srandom'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_srandom=yes" else --- 5378,5384 ---- ; return 0; } EOF ! if { (eval echo configure:5382: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_srandom=yes" else *************** *** 4852,4863 **** echo $ac_n "checking for gethostname""... $ac_c" 1>&6 ! echo "configure:4856: checking for gethostname" >&5 if eval "test \"`echo '$''{'ac_cv_func_gethostname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5407: checking for gethostname" >&5 if eval "test \"`echo '$''{'ac_cv_func_gethostname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_gethostname=yes" else --- 5431,5437 ---- ; return 0; } EOF ! if { (eval echo configure:5435: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_gethostname=yes" else *************** *** 4905,4916 **** echo $ac_n "checking for random""... $ac_c" 1>&6 ! echo "configure:4909: checking for random" >&5 if eval "test \"`echo '$''{'ac_cv_func_random'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5460: checking for random" >&5 if eval "test \"`echo '$''{'ac_cv_func_random'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_random=yes" else --- 5484,5490 ---- ; return 0; } EOF ! if { (eval echo configure:5488: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_random=yes" else *************** *** 4958,4969 **** echo $ac_n "checking for inet_aton""... $ac_c" 1>&6 ! echo "configure:4962: checking for inet_aton" >&5 if eval "test \"`echo '$''{'ac_cv_func_inet_aton'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5513: checking for inet_aton" >&5 if eval "test \"`echo '$''{'ac_cv_func_inet_aton'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_inet_aton=yes" else --- 5537,5543 ---- ; return 0; } EOF ! if { (eval echo configure:5541: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_inet_aton=yes" else *************** *** 5011,5022 **** echo $ac_n "checking for strerror""... $ac_c" 1>&6 ! echo "configure:5015: checking for strerror" >&5 if eval "test \"`echo '$''{'ac_cv_func_strerror'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5566: checking for strerror" >&5 if eval "test \"`echo '$''{'ac_cv_func_strerror'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_strerror=yes" else --- 5590,5596 ---- ; return 0; } EOF ! if { (eval echo configure:5594: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_strerror=yes" else *************** *** 5065,5076 **** echo $ac_n "checking for strdup""... $ac_c" 1>&6 ! echo "configure:5069: checking for strdup" >&5 if eval "test \"`echo '$''{'ac_cv_func_strdup'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5620: checking for strdup" >&5 if eval "test \"`echo '$''{'ac_cv_func_strdup'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_strdup=yes" else --- 5644,5650 ---- ; return 0; } EOF ! if { (eval echo configure:5648: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_strdup=yes" else *************** *** 5118,5129 **** echo $ac_n "checking for strtol""... $ac_c" 1>&6 ! echo "configure:5122: checking for strtol" >&5 if eval "test \"`echo '$''{'ac_cv_func_strtol'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5673: checking for strtol" >&5 if eval "test \"`echo '$''{'ac_cv_func_strtol'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_strtol=yes" else --- 5697,5703 ---- ; return 0; } EOF ! if { (eval echo configure:5701: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_strtol=yes" else *************** *** 5171,5182 **** echo $ac_n "checking for strtoul""... $ac_c" 1>&6 ! echo "configure:5175: checking for strtoul" >&5 if eval "test \"`echo '$''{'ac_cv_func_strtoul'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5726: checking for strtoul" >&5 if eval "test \"`echo '$''{'ac_cv_func_strtoul'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_strtoul=yes" else --- 5750,5756 ---- ; return 0; } EOF ! if { (eval echo configure:5754: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_strtoul=yes" else *************** *** 5224,5235 **** echo $ac_n "checking for strcasecmp""... $ac_c" 1>&6 ! echo "configure:5228: checking for strcasecmp" >&5 if eval "test \"`echo '$''{'ac_cv_func_strcasecmp'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5779: checking for strcasecmp" >&5 if eval "test \"`echo '$''{'ac_cv_func_strcasecmp'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_strcasecmp=yes" else --- 5803,5809 ---- ; return 0; } EOF ! if { (eval echo configure:5807: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_strcasecmp=yes" else *************** *** 5277,5288 **** echo $ac_n "checking for cbrt""... $ac_c" 1>&6 ! echo "configure:5281: checking for cbrt" >&5 if eval "test \"`echo '$''{'ac_cv_func_cbrt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5832: checking for cbrt" >&5 if eval "test \"`echo '$''{'ac_cv_func_cbrt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_cbrt=yes" else --- 5856,5862 ---- ; return 0; } EOF ! if { (eval echo configure:5860: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_cbrt=yes" else *************** *** 5326,5332 **** else echo "$ac_t""no" 1>&6 echo $ac_n "checking for cbrt in -lm""... $ac_c" 1>&6 ! echo "configure:5330: checking for cbrt in -lm" >&5 ac_lib_var=`echo m'_'cbrt | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 5877,5883 ---- else echo "$ac_t""no" 1>&6 echo $ac_n "checking for cbrt in -lm""... $ac_c" 1>&6 ! echo "configure:5881: checking for cbrt in -lm" >&5 ac_lib_var=`echo m'_'cbrt | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 5334,5340 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 5896,5902 ---- cbrt() ; return 0; } EOF ! if { (eval echo configure:5900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 5383,5394 **** echo $ac_n "checking for rint""... $ac_c" 1>&6 ! echo "configure:5387: checking for rint" >&5 if eval "test \"`echo '$''{'ac_cv_func_rint'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5938: checking for rint" >&5 if eval "test \"`echo '$''{'ac_cv_func_rint'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_rint=yes" else --- 5962,5968 ---- ; return 0; } EOF ! if { (eval echo configure:5966: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_rint=yes" else *************** *** 5432,5438 **** else echo "$ac_t""no" 1>&6 echo $ac_n "checking for rint in -lm""... $ac_c" 1>&6 ! echo "configure:5436: checking for rint in -lm" >&5 ac_lib_var=`echo m'_'rint | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 5983,5989 ---- else echo "$ac_t""no" 1>&6 echo $ac_n "checking for rint in -lm""... $ac_c" 1>&6 ! echo "configure:5987: checking for rint in -lm" >&5 ac_lib_var=`echo m'_'rint | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 5440,5446 **** ac_save_LIBS="$LIBS" LIBS="-lm $HPUXMATHLIB $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 6002,6008 ---- rint() ; return 0; } EOF ! if { (eval echo configure:6006: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 5480,5491 **** HAVE_LONG_INT_64=0 echo $ac_n "checking whether 'long int' is 64 bits""... $ac_c" 1>&6 ! echo "configure:5484: checking whether 'long int' is 64 bits" >&5 if test "$cross_compiling" = yes; then echo "$ac_t""assuming not on target machine" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6035: checking whether 'long int' is 64 bits" >&5 if test "$cross_compiling" = yes; then echo "$ac_t""assuming not on target machine" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then HAVE_LONG_INT_64=1 cat >> confdefs.h <<\EOF --- 6064,6070 ---- exit(! does_int64_work()); } EOF ! if { (eval echo configure:6068: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then HAVE_LONG_INT_64=1 cat >> confdefs.h <<\EOF *************** *** 5534,5545 **** HAVE_LONG_LONG_INT_64=0 if [ $HAVE_LONG_INT_64 -eq 0 ] ; then echo $ac_n "checking whether 'long long int' is 64 bits""... $ac_c" 1>&6 ! echo "configure:5538: checking whether 'long long int' is 64 bits" >&5 if test "$cross_compiling" = yes; then echo "$ac_t""assuming not on target machine" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6089: checking whether 'long long int' is 64 bits" >&5 if test "$cross_compiling" = yes; then echo "$ac_t""assuming not on target machine" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then HAVE_LONG_LONG_INT_64=1 cat >> confdefs.h <<\EOF --- 6118,6124 ---- exit(! does_int64_work()); } EOF ! if { (eval echo configure:6122: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then HAVE_LONG_LONG_INT_64=1 cat >> confdefs.h <<\EOF *************** *** 5590,5596 **** if [ $HAVE_LONG_LONG_INT_64 -eq 1 ] ; then if [ x$SNPRINTF = x ] ; then echo $ac_n "checking whether snprintf handles 'long long int' as %lld""... $ac_c" 1>&6 ! echo "configure:5594: checking whether snprintf handles 'long long int' as %lld" >&5 if test "$cross_compiling" = yes; then echo "$ac_t""assuming not on target machine" 1>&6 # Force usage of our own snprintf, since we cannot test foreign snprintf --- 6141,6147 ---- if [ $HAVE_LONG_LONG_INT_64 -eq 1 ] ; then if [ x$SNPRINTF = x ] ; then echo $ac_n "checking whether snprintf handles 'long long int' as %lld""... $ac_c" 1>&6 ! echo "configure:6145: checking whether snprintf handles 'long long int' as %lld" >&5 if test "$cross_compiling" = yes; then echo "$ac_t""assuming not on target machine" 1>&6 # Force usage of our own snprintf, since we cannot test foreign snprintf *************** *** 5599,5605 **** else cat > conftest.$ac_ext < typedef long long int int64; --- 6150,6156 ---- else cat > conftest.$ac_ext < typedef long long int int64; *************** *** 5626,5632 **** exit(! does_int64_snprintf_work()); } EOF ! if { (eval echo configure:5630: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then echo "$ac_t""yes" 1>&6 INT64_FORMAT='"%lld"' --- 6177,6183 ---- exit(! does_int64_snprintf_work()); } EOF ! if { (eval echo configure:6181: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then echo "$ac_t""yes" 1>&6 INT64_FORMAT='"%lld"' *************** *** 5637,5643 **** rm -fr conftest* echo "$ac_t""no" 1>&6 echo $ac_n "checking whether snprintf handles 'long long int' as %qd""... $ac_c" 1>&6 ! echo "configure:5641: checking whether snprintf handles 'long long int' as %qd" >&5 if test "$cross_compiling" = yes; then echo "$ac_t""assuming not on target machine" 1>&6 # Force usage of our own snprintf, since we cannot test foreign snprintf --- 6188,6194 ---- rm -fr conftest* echo "$ac_t""no" 1>&6 echo $ac_n "checking whether snprintf handles 'long long int' as %qd""... $ac_c" 1>&6 ! echo "configure:6192: checking whether snprintf handles 'long long int' as %qd" >&5 if test "$cross_compiling" = yes; then echo "$ac_t""assuming not on target machine" 1>&6 # Force usage of our own snprintf, since we cannot test foreign snprintf *************** *** 5646,5652 **** else cat > conftest.$ac_ext < typedef long long int int64; --- 6197,6203 ---- else cat > conftest.$ac_ext < typedef long long int int64; *************** *** 5673,5679 **** exit(! does_int64_snprintf_work()); } EOF ! if { (eval echo configure:5677: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then echo "$ac_t""yes" 1>&6 INT64_FORMAT='"%qd"' --- 6224,6230 ---- exit(! does_int64_snprintf_work()); } EOF ! if { (eval echo configure:6228: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then echo "$ac_t""yes" 1>&6 INT64_FORMAT='"%qd"' *************** *** 5715,5721 **** echo $ac_n "checking alignment of short""... $ac_c" 1>&6 ! echo "configure:5719: checking alignment of short" >&5 if eval "test \"`echo '$''{'ac_cv_alignof_short'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 6266,6272 ---- echo $ac_n "checking alignment of short""... $ac_c" 1>&6 ! echo "configure:6270: checking alignment of short" >&5 if eval "test \"`echo '$''{'ac_cv_alignof_short'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 5723,5729 **** ac_cv_alignof_short='sizeof(short)' else cat > conftest.$ac_ext < struct { char filler; short field; } mystruct; --- 6274,6280 ---- ac_cv_alignof_short='sizeof(short)' else cat > conftest.$ac_ext < struct { char filler; short field; } mystruct; *************** *** 5735,5741 **** exit(0); } EOF ! if { (eval echo configure:5739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_alignof_short=`cat conftestval` else --- 6286,6292 ---- exit(0); } EOF ! if { (eval echo configure:6290: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_alignof_short=`cat conftestval` else *************** *** 5755,5761 **** echo $ac_n "checking alignment of int""... $ac_c" 1>&6 ! echo "configure:5759: checking alignment of int" >&5 if eval "test \"`echo '$''{'ac_cv_alignof_int'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 6306,6312 ---- echo $ac_n "checking alignment of int""... $ac_c" 1>&6 ! echo "configure:6310: checking alignment of int" >&5 if eval "test \"`echo '$''{'ac_cv_alignof_int'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 5763,5769 **** ac_cv_alignof_int='sizeof(int)' else cat > conftest.$ac_ext < struct { char filler; int field; } mystruct; --- 6314,6320 ---- ac_cv_alignof_int='sizeof(int)' else cat > conftest.$ac_ext < struct { char filler; int field; } mystruct; *************** *** 5775,5781 **** exit(0); } EOF ! if { (eval echo configure:5779: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_alignof_int=`cat conftestval` else --- 6326,6332 ---- exit(0); } EOF ! if { (eval echo configure:6330: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_alignof_int=`cat conftestval` else *************** *** 5795,5801 **** echo $ac_n "checking alignment of long""... $ac_c" 1>&6 ! echo "configure:5799: checking alignment of long" >&5 if eval "test \"`echo '$''{'ac_cv_alignof_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 6346,6352 ---- echo $ac_n "checking alignment of long""... $ac_c" 1>&6 ! echo "configure:6350: checking alignment of long" >&5 if eval "test \"`echo '$''{'ac_cv_alignof_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 5803,5809 **** ac_cv_alignof_long='sizeof(long)' else cat > conftest.$ac_ext < struct { char filler; long field; } mystruct; --- 6354,6360 ---- ac_cv_alignof_long='sizeof(long)' else cat > conftest.$ac_ext < struct { char filler; long field; } mystruct; *************** *** 5815,5821 **** exit(0); } EOF ! if { (eval echo configure:5819: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_alignof_long=`cat conftestval` else --- 6366,6372 ---- exit(0); } EOF ! if { (eval echo configure:6370: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_alignof_long=`cat conftestval` else *************** *** 5836,5842 **** if [ $HAVE_LONG_LONG_INT_64 -eq 1 ] ; then echo $ac_n "checking alignment of long long int""... $ac_c" 1>&6 ! echo "configure:5840: checking alignment of long long int" >&5 if eval "test \"`echo '$''{'ac_cv_alignof_long_long_int'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 6387,6393 ---- if [ $HAVE_LONG_LONG_INT_64 -eq 1 ] ; then echo $ac_n "checking alignment of long long int""... $ac_c" 1>&6 ! echo "configure:6391: checking alignment of long long int" >&5 if eval "test \"`echo '$''{'ac_cv_alignof_long_long_int'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 5844,5850 **** ac_cv_alignof_long_long_int='sizeof(long long int)' else cat > conftest.$ac_ext < struct { char filler; long long int field; } mystruct; --- 6395,6401 ---- ac_cv_alignof_long_long_int='sizeof(long long int)' else cat > conftest.$ac_ext < struct { char filler; long long int field; } mystruct; *************** *** 5856,5862 **** exit(0); } EOF ! if { (eval echo configure:5860: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_alignof_long_long_int=`cat conftestval` else --- 6407,6413 ---- exit(0); } EOF ! if { (eval echo configure:6411: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_alignof_long_long_int=`cat conftestval` else *************** *** 5877,5883 **** fi echo $ac_n "checking alignment of double""... $ac_c" 1>&6 ! echo "configure:5881: checking alignment of double" >&5 if eval "test \"`echo '$''{'ac_cv_alignof_double'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 6428,6434 ---- fi echo $ac_n "checking alignment of double""... $ac_c" 1>&6 ! echo "configure:6432: checking alignment of double" >&5 if eval "test \"`echo '$''{'ac_cv_alignof_double'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 5885,5891 **** ac_cv_alignof_double='sizeof(double)' else cat > conftest.$ac_ext < struct { char filler; double field; } mystruct; --- 6436,6442 ---- ac_cv_alignof_double='sizeof(double)' else cat > conftest.$ac_ext < struct { char filler; double field; } mystruct; *************** *** 5897,5903 **** exit(0); } EOF ! if { (eval echo configure:5901: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_alignof_double=`cat conftestval` else --- 6448,6454 ---- exit(0); } EOF ! if { (eval echo configure:6452: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_alignof_double=`cat conftestval` else *************** *** 5939,5947 **** echo $ac_n "checking for POSIX signal interface""... $ac_c" 1>&6 ! echo "configure:5943: checking for POSIX signal interface" >&5 cat > conftest.$ac_ext < int main() { --- 6490,6498 ---- echo $ac_n "checking for POSIX signal interface""... $ac_c" 1>&6 ! echo "configure:6494: checking for POSIX signal interface" >&5 cat > conftest.$ac_ext < int main() { *************** *** 5951,5957 **** sigaction(0, &act, &oact); ; return 0; } EOF ! if { (eval echo configure:5955: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cat >> confdefs.h <<\EOF #define USE_POSIX_SIGNALS 1 --- 6502,6508 ---- sigaction(0, &act, &oact); ; return 0; } EOF ! if { (eval echo configure:6506: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cat >> confdefs.h <<\EOF #define USE_POSIX_SIGNALS 1 *************** *** 5975,5981 **** # Extract the first word of "tclsh", so it can be a program name with args. set dummy tclsh; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:5979: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_TCLSH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 6526,6532 ---- # Extract the first word of "tclsh", so it can be a program name with args. set dummy tclsh; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6530: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_TCLSH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 6012,6018 **** # Extract the first word of "tcl", so it can be a program name with args. set dummy tcl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6016: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_TCLSH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 6563,6569 ---- # Extract the first word of "tcl", so it can be a program name with args. set dummy tcl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6567: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_TCLSH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 6055,6061 **** if test "$USE_TCL" = true then echo $ac_n "checking for tclConfig.sh""... $ac_c" 1>&6 ! echo "configure:6059: checking for tclConfig.sh" >&5 TCL_CONFIG_SH= library_dirs= if test -z "$TCL_DIRS" --- 6606,6612 ---- if test "$USE_TCL" = true then echo $ac_n "checking for tclConfig.sh""... $ac_c" 1>&6 ! echo "configure:6610: checking for tclConfig.sh" >&5 TCL_CONFIG_SH= library_dirs= if test -z "$TCL_DIRS" *************** *** 6084,6090 **** if test "$USE_TK" = true then echo $ac_n "checking for tkConfig.sh""... $ac_c" 1>&6 ! echo "configure:6088: checking for tkConfig.sh" >&5 TK_CONFIG_SH= # library_dirs are set in the check for TCL for dir in $library_dirs --- 6635,6641 ---- if test "$USE_TK" = true then echo $ac_n "checking for tkConfig.sh""... $ac_c" 1>&6 ! echo "configure:6639: checking for tkConfig.sh" >&5 TK_CONFIG_SH= # library_dirs are set in the check for TCL for dir in $library_dirs *************** *** 6121,6127 **** # Uses ac_ vars as temps to allow command line to override cache and checks. # --without-x overrides everything else, but does not touch the cache. echo $ac_n "checking for X""... $ac_c" 1>&6 ! echo "configure:6125: checking for X" >&5 # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then --- 6672,6678 ---- # Uses ac_ vars as temps to allow command line to override cache and checks. # --without-x overrides everything else, but does not touch the cache. echo $ac_n "checking for X""... $ac_c" 1>&6 ! echo "configure:6676: checking for X" >&5 # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then *************** *** 6183,6194 **** # First, try using that file with no special directory specified. cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6192: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 6734,6745 ---- # First, try using that file with no special directory specified. cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6743: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** *** 6257,6270 **** ac_save_LIBS="$LIBS" LIBS="-l$x_direct_test_library $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* LIBS="$ac_save_LIBS" # We can link X programs with no special library path. --- 6808,6821 ---- ac_save_LIBS="$LIBS" LIBS="-l$x_direct_test_library $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* LIBS="$ac_save_LIBS" # We can link X programs with no special library path. *************** *** 6370,6386 **** case "`(uname -sr) 2>/dev/null`" in "SunOS 5"*) echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6 ! echo "configure:6374: checking whether -R must be followed by a space" >&5 ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_nospace=yes else --- 6921,6937 ---- case "`(uname -sr) 2>/dev/null`" in "SunOS 5"*) echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6 ! echo "configure:6925: checking whether -R must be followed by a space" >&5 ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_nospace=yes else *************** *** 6396,6409 **** else LIBS="$ac_xsave_LIBS -R $x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_space=yes else --- 6947,6960 ---- else LIBS="$ac_xsave_LIBS -R $x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_space=yes else *************** *** 6435,6441 **** # libraries were built with DECnet support. And karl@cs.umb.edu says # the Alpha needs dnet_stub (dnet does not exist). echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 ! echo "configure:6439: checking for dnet_ntoa in -ldnet" >&5 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 6986,6992 ---- # libraries were built with DECnet support. And karl@cs.umb.edu says # the Alpha needs dnet_stub (dnet does not exist). echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 ! echo "configure:6990: checking for dnet_ntoa in -ldnet" >&5 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 6443,6449 **** ac_save_LIBS="$LIBS" LIBS="-ldnet $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 7005,7011 ---- dnet_ntoa() ; return 0; } EOF ! if { (eval echo configure:7009: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 6476,6482 **** if test $ac_cv_lib_dnet_dnet_ntoa = no; then echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6 ! echo "configure:6480: checking for dnet_ntoa in -ldnet_stub" >&5 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 7027,7033 ---- if test $ac_cv_lib_dnet_dnet_ntoa = no; then echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6 ! echo "configure:7031: checking for dnet_ntoa in -ldnet_stub" >&5 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 6484,6490 **** ac_save_LIBS="$LIBS" LIBS="-ldnet_stub $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 7046,7052 ---- dnet_ntoa() ; return 0; } EOF ! if { (eval echo configure:7050: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 6524,6535 **** # The nsl library prevents programs from opening the X display # on Irix 5.2, according to dickey@clark.net. echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 ! echo "configure:6528: checking for gethostbyname" >&5 if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7079: checking for gethostbyname" >&5 if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_gethostbyname=yes" else --- 7103,7109 ---- ; return 0; } EOF ! if { (eval echo configure:7107: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_gethostbyname=yes" else *************** *** 6573,6579 **** if test $ac_cv_func_gethostbyname = no; then echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 ! echo "configure:6577: checking for gethostbyname in -lnsl" >&5 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 7124,7130 ---- if test $ac_cv_func_gethostbyname = no; then echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 ! echo "configure:7128: checking for gethostbyname in -lnsl" >&5 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 6581,6587 **** ac_save_LIBS="$LIBS" LIBS="-lnsl $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 7143,7149 ---- gethostbyname() ; return 0; } EOF ! if { (eval echo configure:7147: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 6622,6633 **** # -lsocket must be given before -lnsl if both are needed. # We assume that if connect needs -lnsl, so does gethostbyname. echo $ac_n "checking for connect""... $ac_c" 1>&6 ! echo "configure:6626: checking for connect" >&5 if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7177: checking for connect" >&5 if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_connect=yes" else --- 7201,7207 ---- ; return 0; } EOF ! if { (eval echo configure:7205: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_connect=yes" else *************** *** 6671,6677 **** if test $ac_cv_func_connect = no; then echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6 ! echo "configure:6675: checking for connect in -lsocket" >&5 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 7222,7228 ---- if test $ac_cv_func_connect = no; then echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6 ! echo "configure:7226: checking for connect in -lsocket" >&5 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 6679,6685 **** ac_save_LIBS="$LIBS" LIBS="-lsocket $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 7241,7247 ---- connect() ; return 0; } EOF ! if { (eval echo configure:7245: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 6714,6725 **** # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX. echo $ac_n "checking for remove""... $ac_c" 1>&6 ! echo "configure:6718: checking for remove" >&5 if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7269: checking for remove" >&5 if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_remove=yes" else --- 7293,7299 ---- ; return 0; } EOF ! if { (eval echo configure:7297: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_remove=yes" else *************** *** 6763,6769 **** if test $ac_cv_func_remove = no; then echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 ! echo "configure:6767: checking for remove in -lposix" >&5 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 7314,7320 ---- if test $ac_cv_func_remove = no; then echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 ! echo "configure:7318: checking for remove in -lposix" >&5 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 6771,6777 **** ac_save_LIBS="$LIBS" LIBS="-lposix $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 7333,7339 ---- remove() ; return 0; } EOF ! if { (eval echo configure:7337: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 6806,6817 **** # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. echo $ac_n "checking for shmat""... $ac_c" 1>&6 ! echo "configure:6810: checking for shmat" >&5 if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7361: checking for shmat" >&5 if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_shmat=yes" else --- 7385,7391 ---- ; return 0; } EOF ! if { (eval echo configure:7389: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_shmat=yes" else *************** *** 6855,6861 **** if test $ac_cv_func_shmat = no; then echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 ! echo "configure:6859: checking for shmat in -lipc" >&5 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 7406,7412 ---- if test $ac_cv_func_shmat = no; then echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 ! echo "configure:7410: checking for shmat in -lipc" >&5 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 6863,6869 **** ac_save_LIBS="$LIBS" LIBS="-lipc $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 7425,7431 ---- shmat() ; return 0; } EOF ! if { (eval echo configure:7429: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 6907,6913 **** # libraries we check for below, so use a different variable. # --interran@uluru.Stanford.EDU, kb@cs.umb.edu. echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6 ! echo "configure:6911: checking for IceConnectionNumber in -lICE" >&5 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 7458,7464 ---- # libraries we check for below, so use a different variable. # --interran@uluru.Stanford.EDU, kb@cs.umb.edu. echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6 ! echo "configure:7462: checking for IceConnectionNumber in -lICE" >&5 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 6915,6921 **** ac_save_LIBS="$LIBS" LIBS="-lICE $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 7477,7483 ---- IceConnectionNumber() ; return 0; } EOF ! if { (eval echo configure:7481: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 6959,6965 **** X11_LIBS="" echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6 ! echo "configure:6963: checking for XOpenDisplay in -lX11" >&5 ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 7510,7516 ---- X11_LIBS="" echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6 ! echo "configure:7514: checking for XOpenDisplay in -lX11" >&5 ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 6967,6973 **** ac_save_LIBS="$LIBS" LIBS="-lX11 ${X_PRE_LIBS} $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 7529,7535 ---- XOpenDisplay() ; return 0; } EOF ! if { (eval echo configure:7533: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 7025,7041 **** PWD_INCDIR=no ac_safe=`echo "pwd.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for pwd.h""... $ac_c" 1>&6 ! echo "configure:7029: checking for pwd.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7039: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 7576,7592 ---- PWD_INCDIR=no ac_safe=`echo "pwd.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for pwd.h""... $ac_c" 1>&6 ! echo "configure:7580: checking for pwd.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7590: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** *** 7237,7242 **** --- 7788,7794 ---- s%@CC_VERSION@%$CC_VERSION%g s%@ELF_SYS@%$ELF_SYS%g s%@PORTNAME@%$PORTNAME%g + s%@CPU@%$CPU%g s%@SRCDIR@%$SRCDIR%g s%@AROPT@%$AROPT%g s%@SHARED_LIB@%$SHARED_LIB%g *************** *** 7533,7540 **** EOF cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF --- 8085,8092 ---- EOF cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF diff -cr --new-file postgresql-6.5.1/src/configure.in postgresql-6.5.2/src/configure.in *** postgresql-6.5.1/src/configure.in Sat May 29 20:06:44 1999 --- postgresql-6.5.2/src/configure.in Sun Sep 12 18:58:37 1999 *************** *** 58,69 **** exit;; esac ! if test "X$elf" = "Xyes" ! then ! ELF_SYS=true ! else ! ELF_SYS= ! fi if test "X$need_tas" = "Xyes" then --- 58,69 ---- exit;; esac ! PORTNAME=${os} ! CPU=${host_cpu} ! AC_LINK_FILES(backend/port/dynloader/${os}.c, backend/port/dynloader.c) ! AC_LINK_FILES(backend/port/dynloader/${os}.h, include/dynloader.h) ! AC_LINK_FILES(include/port/${os}.h, include/os.h) ! AC_LINK_FILES(makefiles/Makefile.${os}, Makefile.port) if test "X$need_tas" = "Xyes" then *************** *** 72,83 **** AC_SUBST(TAS) fi - PORTNAME=${os} - AC_LINK_FILES(backend/port/dynloader/${os}.c, backend/port/dynloader.c) - AC_LINK_FILES(backend/port/dynloader/${os}.h, include/dynloader.h) - AC_LINK_FILES(include/port/${os}.h, include/os.h) - AC_LINK_FILES(makefiles/Makefile.${os}, Makefile.port) - echo "checking echo setting..." if echo '\c' | grep -s c >/dev/null 2>&1 then --- 72,77 ---- *************** *** 169,175 **** INCLUDE_DIRS="$withval" ]) ! if test "$INCLUDE_DIRS"; then for dir in $INCLUDE_DIRS $SRCH_INC; do if test -d "$dir"; then PGSQL_CPPFLAGS="$PGSQL_CPPFLAGS -I$dir" --- 163,169 ---- INCLUDE_DIRS="$withval" ]) ! if test "$INCLUDE_DIRS" -o "$SRCH_INC"; then for dir in $INCLUDE_DIRS $SRCH_INC; do if test -d "$dir"; then PGSQL_CPPFLAGS="$PGSQL_CPPFLAGS -I$dir" *************** *** 201,207 **** LIBRARY_DIRS="$withval" ]) ! if test "$LIBRARY_DIRS"; then for dir in $LIBRARY_DIRS $SRCH_LIB; do if test -d "$dir"; then PGSQL_LDFLAGS="$PGSQL_LDFLAGS -L$dir" --- 195,201 ---- LIBRARY_DIRS="$withval" ]) ! if test "$LIBRARY_DIRS" -o "$SRCH_LIB"; then for dir in $LIBRARY_DIRS $SRCH_LIB; do if test -d "$dir"; then PGSQL_LDFLAGS="$PGSQL_LDFLAGS -L$dir" *************** *** 417,424 **** --- 411,435 ---- LDFLAGS="$LDFLAGS $PGSQL_LDFLAGS" echo "- setting LDFLAGS=$LDFLAGS" + # Assume system is ELF if it predefines __ELF__ as 1, + # otherwise believe "elf" setting from check of host_os above. + AC_EGREP_CPP(yes, + [#if __ELF__ + yes + #endif + ], + ELF_SYS=true, + [if test "X$elf" = "Xyes" + then + ELF_SYS=true + else + ELF_SYS= + fi + ]) + AC_SUBST(ELF_SYS) AC_SUBST(PORTNAME) + AC_SUBST(CPU) AC_SUBST(SRCDIR) AC_SUBST(LDFLAGS) AC_SUBST(CPPFLAGS) *************** *** 576,586 **** dnl Checks for header files. AC_HEADER_STDC AC_HEADER_SYS_WAIT ! AC_CHECK_HEADERS(limits.h unistd.h termios.h values.h sys/select.h) ! AC_CHECK_HEADERS(sys/resource.h netdb.h arpa/inet.h getopt.h) ! AC_CHECK_HEADERS(readline.h history.h dld.h crypt.h endian.h float.h) ! AC_CHECK_HEADERS(readline/readline.h readline/history.h ieeefp.h fp_class.h) ! AC_CHECK_HEADERS(netinet/in.h string.h strings.h) dnl ODBC headers... AC_CHECK_HEADERS(sys/param.h pwd.h) dnl --- 587,611 ---- dnl Checks for header files. AC_HEADER_STDC AC_HEADER_SYS_WAIT ! AC_CHECK_HEADERS(arpa/inet.h) ! AC_CHECK_HEADERS(crypt.h) ! AC_CHECK_HEADERS(dld.h) ! AC_CHECK_HEADERS(endian.h) ! AC_CHECK_HEADERS(float.h) ! AC_CHECK_HEADERS(fp_class.h) ! AC_CHECK_HEADERS(getopt.h) ! AC_CHECK_HEADERS(history.h) ! AC_CHECK_HEADERS(ieeefp.h) ! AC_CHECK_HEADERS(limits.h) ! AC_CHECK_HEADERS(netdb.h) ! AC_CHECK_HEADERS(netinet/in.h) ! AC_CHECK_HEADERS(readline.h) ! AC_CHECK_HEADERS(readline/history.h) ! AC_CHECK_HEADERS(readline/readline.h) ! AC_CHECK_HEADERS(sys/select.h) ! AC_CHECK_HEADERS(termios.h) ! AC_CHECK_HEADERS(unistd.h) ! AC_CHECK_HEADERS(values.h) dnl ODBC headers... AC_CHECK_HEADERS(sys/param.h pwd.h) dnl *************** *** 648,671 **** [AC_DEFINE(HAVE_FCNTL_SETLK) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no)) - AC_MSG_CHECKING(for good DBL_MIN) - AC_TRY_RUN([#include - #include - #ifdef HAVE_FLOAT_H - # include - #endif - main() { double d = DBL_MIN; if (d != DBL_MIN) exit(-1); else exit(0); }], - AC_MSG_RESULT(yes), - [AC_DEFINE(HAVE_DBL_MIN_PROBLEM) AC_MSG_RESULT(no)], - AC_MSG_RESULT(assuming ok on target machine)) - dnl Checks for library functions. AC_FUNC_MEMCMP AC_TYPE_SIGNAL AC_FUNC_VPRINTF ! AC_CHECK_FUNCS(tzset memmove sigsetjmp kill sysconf fpclass) ! AC_CHECK_FUNCS(fp_class fp_class_d class) AC_CHECK_FUNCS(sigprocmask waitpid setsid fcvt) dnl We use our snprintf.c emulation if either snprintf() or vsnprintf() dnl is missing. Yes, there are machines that have only one. dnl We may also decide to use snprintf.c if snprintf() is present but does --- 673,685 ---- [AC_DEFINE(HAVE_FCNTL_SETLK) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no)) dnl Checks for library functions. AC_FUNC_MEMCMP AC_TYPE_SIGNAL AC_FUNC_VPRINTF ! AC_CHECK_FUNCS(memmove sigsetjmp sysconf) AC_CHECK_FUNCS(sigprocmask waitpid setsid fcvt) + AC_CHECK_FUNCS(fpclass fp_class fp_class_d class) dnl We use our snprintf.c emulation if either snprintf() or vsnprintf() dnl is missing. Yes, there are machines that have only one. dnl We may also decide to use snprintf.c if snprintf() is present but does diff -cr --new-file postgresql-6.5.1/src/data/isocz-wincz.tab postgresql-6.5.2/src/data/isocz-wincz.tab *** postgresql-6.5.1/src/data/isocz-wincz.tab Wed Dec 31 19:00:00 1969 --- postgresql-6.5.2/src/data/isocz-wincz.tab Mon Aug 16 16:29:11 1999 *************** *** 0 **** --- 1,12 ---- + # + # Czech ISO-8859-2 -> WIN-1250 translation table + # + 165 188 + 169 138 + 171 141 + 174 142 + 181 190 + 185 154 + 187 157 + 190 158 + diff -cr --new-file postgresql-6.5.1/src/include/access/genam.h postgresql-6.5.2/src/include/access/genam.h *** postgresql-6.5.1/src/include/access/genam.h Sat Feb 13 18:20:50 1999 --- postgresql-6.5.2/src/include/access/genam.h Fri Jul 30 14:26:58 1999 *************** *** 6,22 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: genam.h,v 1.18 1999/02/13 23:20:50 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef GENAM_H #define GENAM_H ! #include ! #include ! #include ! #include /* ---------------- * generalized index_ interface routines --- 6,22 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: genam.h,v 1.18.2.1 1999/07/30 18:26:58 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef GENAM_H #define GENAM_H ! #include "access/funcindex.h" ! #include "access/itup.h" ! #include "access/relscan.h" ! #include "access/sdir.h" /* ---------------- * generalized index_ interface routines diff -cr --new-file postgresql-6.5.1/src/include/access/gist.h postgresql-6.5.2/src/include/access/gist.h *** postgresql-6.5.1/src/include/access/gist.h Sat Feb 13 18:20:51 1999 --- postgresql-6.5.2/src/include/access/gist.h Mon Aug 2 01:25:21 1999 *************** *** 12,27 **** #ifndef GIST_H #define GIST_H ! #include ! #include ! #include ! #include ! #include ! #include ! #include ! #include ! ! #include /* ** You can have as many strategies as you please in GiSTs, as --- 12,21 ---- #ifndef GIST_H #define GIST_H ! #include "access/funcindex.h" ! #include "access/itup.h" ! #include "access/relscan.h" ! #include "access/sdir.h" /* ** You can have as many strategies as you please in GiSTs, as diff -cr --new-file postgresql-6.5.1/src/include/access/gistscan.h postgresql-6.5.2/src/include/access/gistscan.h *** postgresql-6.5.1/src/include/access/gistscan.h Sat Feb 13 18:20:52 1999 --- postgresql-6.5.2/src/include/access/gistscan.h Mon Aug 2 01:25:21 1999 *************** *** 11,20 **** */ #ifndef GISTSCAN_H ! #include ! #include ! #include ! #include extern IndexScanDesc gistbeginscan(Relation r, bool fromEnd, uint16 nkeys, ScanKey key); --- 11,17 ---- */ #ifndef GISTSCAN_H ! #include "access/relscan.h" extern IndexScanDesc gistbeginscan(Relation r, bool fromEnd, uint16 nkeys, ScanKey key); diff -cr --new-file postgresql-6.5.1/src/include/access/giststrat.h postgresql-6.5.2/src/include/access/giststrat.h *** postgresql-6.5.1/src/include/access/giststrat.h Sat Feb 13 18:20:52 1999 --- postgresql-6.5.2/src/include/access/giststrat.h Mon Aug 2 01:25:21 1999 *************** *** 12,19 **** #ifndef GISTSTRAT_H #define GISTSTRAT_H ! #include ! #include extern StrategyNumber RelationGetGISTStrategy(Relation r, AttrNumber attnum, RegProcedure proc); --- 12,18 ---- #ifndef GISTSTRAT_H #define GISTSTRAT_H ! #include "utils/rel.h" extern StrategyNumber RelationGetGISTStrategy(Relation r, AttrNumber attnum, RegProcedure proc); diff -cr --new-file postgresql-6.5.1/src/include/access/hash.h postgresql-6.5.2/src/include/access/hash.h *** postgresql-6.5.1/src/include/access/hash.h Tue May 25 18:42:30 1999 --- postgresql-6.5.2/src/include/access/hash.h Mon Aug 2 01:25:21 1999 *************** *** 6,12 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: hash.h,v 1.24 1999/05/25 22:42:30 momjian Exp $ * * NOTES * modeled after Margo Seltzer's hash implementation for unix. --- 6,12 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: hash.h,v 1.24.2.1 1999/08/02 05:25:21 scrappy Exp $ * * NOTES * modeled after Margo Seltzer's hash implementation for unix. *************** *** 16,27 **** #ifndef HASH_H #define HASH_H ! #include ! #include ! #include ! #include ! #include ! #include /* * An overflow page is a spare page allocated for storing data whose --- 16,26 ---- #ifndef HASH_H #define HASH_H ! #include "access/funcindex.h" ! #include "access/itup.h" ! #include "access/relscan.h" ! #include "access/sdir.h" ! #include "utils/int8.h" /* * An overflow page is a spare page allocated for storing data whose *************** *** 203,209 **** #define BMPGSZ_BYTE(metap) ((metap)->hashm_bmsize) #define BMPGSZ_BIT(metap) ((metap)->hashm_bmsize << BYTE_TO_BIT) #define HashPageGetBitmap(pg) \ ! ((uint32 *) (((char *) (pg)) + DOUBLEALIGN(sizeof(PageHeaderData)))) /* * The number of bits in an ovflpage bitmap which --- 202,208 ---- #define BMPGSZ_BYTE(metap) ((metap)->hashm_bmsize) #define BMPGSZ_BIT(metap) ((metap)->hashm_bmsize << BYTE_TO_BIT) #define HashPageGetBitmap(pg) \ ! ((uint32 *) (((char *) (pg)) + MAXALIGN(sizeof(PageHeaderData)))) /* * The number of bits in an ovflpage bitmap which diff -cr --new-file postgresql-6.5.1/src/include/access/heapam.h postgresql-6.5.2/src/include/access/heapam.h *** postgresql-6.5.1/src/include/access/heapam.h Sat Jul 10 18:06:26 1999 --- postgresql-6.5.2/src/include/access/heapam.h Fri Jul 30 14:26:58 1999 *************** *** 6,25 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: heapam.h,v 1.43 1999/07/10 22:06:26 tgl Exp $ * *------------------------------------------------------------------------- */ #ifndef HEAPAM_H #define HEAPAM_H ! #include "access/tupmacs.h" #include "access/htup.h" #include "access/relscan.h" #include "storage/block.h" #include "utils/rel.h" #include "utils/tqual.h" - #include /* ---------------------------------------------------------------- * heap access method statistics --- 6,25 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: heapam.h,v 1.43.2.1 1999/07/30 18:26:58 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef HEAPAM_H #define HEAPAM_H ! #include #include "access/htup.h" #include "access/relscan.h" + #include "access/tupmacs.h" #include "storage/block.h" #include "utils/rel.h" #include "utils/tqual.h" /* ---------------------------------------------------------------- * heap access method statistics diff -cr --new-file postgresql-6.5.1/src/include/access/ibit.h postgresql-6.5.2/src/include/access/ibit.h *** postgresql-6.5.1/src/include/access/ibit.h Sat Feb 13 18:20:54 1999 --- postgresql-6.5.2/src/include/access/ibit.h Fri Jul 30 14:26:59 1999 *************** *** 6,19 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: ibit.h,v 1.9 1999/02/13 23:20:54 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef IBIT_H #define IBIT_H ! #include typedef struct IndexAttributeBitMapData { --- 6,19 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: ibit.h,v 1.9.2.1 1999/07/30 18:26:59 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef IBIT_H #define IBIT_H ! #include "utils/memutils.h" typedef struct IndexAttributeBitMapData { diff -cr --new-file postgresql-6.5.1/src/include/access/iqual.h postgresql-6.5.2/src/include/access/iqual.h *** postgresql-6.5.1/src/include/access/iqual.h Sat Feb 13 18:20:55 1999 --- postgresql-6.5.2/src/include/access/iqual.h Fri Jul 30 14:26:59 1999 *************** *** 6,20 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: iqual.h,v 1.11 1999/02/13 23:20:55 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef IQUAL_H #define IQUAL_H ! #include ! #include /* ---------------- --- 6,20 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: iqual.h,v 1.11.2.1 1999/07/30 18:26:59 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef IQUAL_H #define IQUAL_H ! #include "access/itup.h" ! #include "access/skey.h" /* ---------------- diff -cr --new-file postgresql-6.5.1/src/include/access/istrat.h postgresql-6.5.2/src/include/access/istrat.h *** postgresql-6.5.1/src/include/access/istrat.h Tue May 25 12:13:32 1999 --- postgresql-6.5.2/src/include/access/istrat.h Mon Aug 2 01:25:21 1999 *************** *** 6,20 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: istrat.h,v 1.13 1999/05/25 16:13:32 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef ISTRAT_H #define ISTRAT_H ! #include ! #include /* * StrategyNumberIsValid --- 6,19 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: istrat.h,v 1.13.2.1 1999/08/02 05:25:21 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef ISTRAT_H #define ISTRAT_H ! #include "utils/rel.h" /* * StrategyNumberIsValid diff -cr --new-file postgresql-6.5.1/src/include/access/itup.h postgresql-6.5.2/src/include/access/itup.h *** postgresql-6.5.1/src/include/access/itup.h Sat Feb 13 18:20:55 1999 --- postgresql-6.5.2/src/include/access/itup.h Mon Aug 2 01:25:22 1999 *************** *** 6,23 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: itup.h,v 1.17 1999/02/13 23:20:55 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef ITUP_H #define ITUP_H ! #include ! #include ! #include ! #include ! #include #define MaxIndexAttributeNumber 7 --- 6,22 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: itup.h,v 1.17.2.1 1999/08/02 05:25:22 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef ITUP_H #define ITUP_H ! #include "access/ibit.h" ! #include "access/tupdesc.h" ! #include "access/tupmacs.h" ! #include "storage/itemptr.h" #define MaxIndexAttributeNumber 7 *************** *** 104,110 **** ) \ : \ ( \ ! (Size)DOUBLEALIGN(sizeof(IndexTupleData) + sizeof(IndexAttributeBitMapData)) \ ) \ ) --- 103,109 ---- ) \ : \ ( \ ! (Size)MAXALIGN(sizeof(IndexTupleData) + sizeof(IndexAttributeBitMapData)) \ ) \ ) diff -cr --new-file postgresql-6.5.1/src/include/access/nbtree.h postgresql-6.5.2/src/include/access/nbtree.h *** postgresql-6.5.1/src/include/access/nbtree.h Tue May 25 18:04:55 1999 --- postgresql-6.5.2/src/include/access/nbtree.h Sun Aug 8 16:24:09 1999 *************** *** 6,12 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: nbtree.h,v 1.27 1999/05/25 22:04:55 momjian Exp $ * *------------------------------------------------------------------------- */ --- 6,12 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: nbtree.h,v 1.27.2.1 1999/08/08 20:24:09 tgl Exp $ * *------------------------------------------------------------------------- */ *************** *** 255,260 **** --- 255,261 ---- extern void _bt_regscan(IndexScanDesc scan); extern void _bt_dropscan(IndexScanDesc scan); extern void _bt_adjscans(Relation rel, ItemPointer tid); + extern void AtEOXact_nbtree(void); /* * prototypes for functions in nbtsearch.c diff -cr --new-file postgresql-6.5.1/src/include/access/printtup.h postgresql-6.5.2/src/include/access/printtup.h *** postgresql-6.5.1/src/include/access/printtup.h Tue May 25 18:42:32 1999 --- postgresql-6.5.2/src/include/access/printtup.h Fri Jul 30 14:26:59 1999 *************** *** 6,19 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: printtup.h,v 1.10 1999/05/25 22:42:32 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef PRINTTUP_H #define PRINTTUP_H ! #include extern DestReceiver *printtup_create_DR(void); extern void showatts(char *name, TupleDesc attinfo); --- 6,19 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: printtup.h,v 1.10.2.1 1999/07/30 18:26:59 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef PRINTTUP_H #define PRINTTUP_H ! #include "tcop/dest.h" extern DestReceiver *printtup_create_DR(void); extern void showatts(char *name, TupleDesc attinfo); diff -cr --new-file postgresql-6.5.1/src/include/access/rtree.h postgresql-6.5.2/src/include/access/rtree.h *** postgresql-6.5.1/src/include/access/rtree.h Sat Feb 13 18:20:57 1999 --- postgresql-6.5.2/src/include/access/rtree.h Mon Aug 2 01:25:22 1999 *************** *** 6,26 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: rtree.h,v 1.14 1999/02/13 23:20:57 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef RTREE_H #define RTREE_H ! #include ! #include ! #include ! #include ! #include ! #include ! #include ! #include /* see rtstrat.c for what all this is about */ #define RTNStrategies 8 --- 6,22 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: rtree.h,v 1.14.2.1 1999/08/02 05:25:22 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef RTREE_H #define RTREE_H ! #include "access/funcindex.h" ! #include "access/itup.h" ! #include "access/relscan.h" ! #include "access/sdir.h" /* see rtstrat.c for what all this is about */ #define RTNStrategies 8 diff -cr --new-file postgresql-6.5.1/src/include/access/rtscan.h postgresql-6.5.2/src/include/access/rtscan.h *** postgresql-6.5.1/src/include/access/rtscan.h Sat Feb 13 18:20:58 1999 --- postgresql-6.5.2/src/include/access/rtscan.h Fri Jul 30 14:26:59 1999 *************** *** 6,21 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: rtscan.h,v 1.6 1999/02/13 23:20:58 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef RTSCAN_H #define RTSCAN_H ! #include ! #include ! #include void rtadjscans(Relation r, int op, BlockNumber blkno, OffsetNumber offnum); --- 6,21 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: rtscan.h,v 1.6.2.1 1999/07/30 18:26:59 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef RTSCAN_H #define RTSCAN_H ! #include "storage/block.h" ! #include "storage/off.h" ! #include "utils/rel.h" void rtadjscans(Relation r, int op, BlockNumber blkno, OffsetNumber offnum); diff -cr --new-file postgresql-6.5.1/src/include/access/rtstrat.h postgresql-6.5.2/src/include/access/rtstrat.h *** postgresql-6.5.1/src/include/access/rtstrat.h Sat Feb 13 18:20:58 1999 --- postgresql-6.5.2/src/include/access/rtstrat.h Mon Aug 2 01:25:22 1999 *************** *** 6,20 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: rtstrat.h,v 1.9 1999/02/13 23:20:58 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef RTSTRAT_H #define RTSTRAT_H ! #include ! #include extern RegProcedure RTMapOperator(Relation r, AttrNumber attnum, RegProcedure proc); --- 6,19 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: rtstrat.h,v 1.9.2.1 1999/08/02 05:25:22 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef RTSTRAT_H #define RTSTRAT_H ! #include "utils/rel.h" extern RegProcedure RTMapOperator(Relation r, AttrNumber attnum, RegProcedure proc); diff -cr --new-file postgresql-6.5.1/src/include/access/skey.h postgresql-6.5.2/src/include/access/skey.h *** postgresql-6.5.1/src/include/access/skey.h Sat Feb 13 18:20:58 1999 --- postgresql-6.5.2/src/include/access/skey.h Fri Jul 30 14:26:59 1999 *************** *** 6,12 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: skey.h,v 1.11 1999/02/13 23:20:58 momjian Exp $ * * * Note: --- 6,12 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: skey.h,v 1.11.2.1 1999/07/30 18:26:59 scrappy Exp $ * * * Note: *************** *** 16,23 **** #ifndef SKEY_H #define SKEY_H ! #include ! #include typedef struct ScanKeyData { --- 16,23 ---- #ifndef SKEY_H #define SKEY_H ! #include "access/attnum.h" ! #include "fmgr.h" typedef struct ScanKeyData { diff -cr --new-file postgresql-6.5.1/src/include/access/strat.h postgresql-6.5.2/src/include/access/strat.h *** postgresql-6.5.1/src/include/access/strat.h Tue May 25 18:42:34 1999 --- postgresql-6.5.2/src/include/access/strat.h Fri Jul 30 14:26:59 1999 *************** *** 7,20 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: strat.h,v 1.15 1999/05/25 22:42:34 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef STRAT_H #define STRAT_H ! #include typedef uint16 StrategyNumber; --- 7,20 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: strat.h,v 1.15.2.1 1999/07/30 18:26:59 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef STRAT_H #define STRAT_H ! #include "access/skey.h" typedef uint16 StrategyNumber; diff -cr --new-file postgresql-6.5.1/src/include/access/transam.h postgresql-6.5.2/src/include/access/transam.h *** postgresql-6.5.1/src/include/access/transam.h Thu Jun 10 10:17:12 1999 --- postgresql-6.5.2/src/include/access/transam.h Fri Jul 30 14:26:59 1999 *************** *** 6,12 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: transam.h,v 1.22 1999/06/10 14:17:12 vadim Exp $ * * NOTES * Transaction System Version 101 now support proper oid --- 6,12 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: transam.h,v 1.22.2.1 1999/07/30 18:26:59 scrappy Exp $ * * NOTES * Transaction System Version 101 now support proper oid *************** *** 17,23 **** #ifndef TRANSAM_H #define TRANSAM_H ! #include /* ---------------- * transaction system version id --- 17,23 ---- #ifndef TRANSAM_H #define TRANSAM_H ! #include "storage/bufmgr.h" /* ---------------- * transaction system version id diff -cr --new-file postgresql-6.5.1/src/include/access/tupdesc.h postgresql-6.5.2/src/include/access/tupdesc.h *** postgresql-6.5.1/src/include/access/tupdesc.h Tue May 25 18:42:36 1999 --- postgresql-6.5.2/src/include/access/tupdesc.h Fri Jul 30 14:27:00 1999 *************** *** 6,21 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: tupdesc.h,v 1.22 1999/05/25 22:42:36 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef TUPDESC_H #define TUPDESC_H ! #include ! #include ! #include typedef struct attrDefault --- 6,21 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: tupdesc.h,v 1.22.2.1 1999/07/30 18:27:00 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef TUPDESC_H #define TUPDESC_H ! #include "access/attnum.h" ! #include "catalog/pg_attribute.h" ! #include "nodes/pg_list.h" typedef struct attrDefault diff -cr --new-file postgresql-6.5.1/src/include/access/tupmacs.h postgresql-6.5.2/src/include/access/tupmacs.h *** postgresql-6.5.1/src/include/access/tupmacs.h Tue May 25 12:13:36 1999 --- postgresql-6.5.2/src/include/access/tupmacs.h Fri Jul 30 14:27:00 1999 *************** *** 6,17 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: tupmacs.h,v 1.10 1999/05/25 16:13:36 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef TUPMACS_H #define TUPMACS_H /* * check to see if the ATT'th bit of an array of 8-bit bytes is set. --- 6,19 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: tupmacs.h,v 1.10.2.1 1999/07/30 18:27:00 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef TUPMACS_H #define TUPMACS_H + + #include "utils/memutils.h" /* * check to see if the ATT'th bit of an array of 8-bit bytes is set. diff -cr --new-file postgresql-6.5.1/src/include/access/xact.h postgresql-6.5.2/src/include/access/xact.h *** postgresql-6.5.1/src/include/access/xact.h Sat Feb 13 18:21:00 1999 --- postgresql-6.5.2/src/include/access/xact.h Fri Jul 30 14:27:00 1999 *************** *** 6,20 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: xact.h,v 1.20 1999/02/13 23:21:00 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef XACT_H #define XACT_H ! #include ! #include /* ---------------- * transaction state structure --- 6,20 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: xact.h,v 1.20.2.1 1999/07/30 18:27:00 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef XACT_H #define XACT_H ! #include "access/transam.h" ! #include "utils/nabstime.h" /* ---------------- * transaction state structure diff -cr --new-file postgresql-6.5.1/src/include/bootstrap/bootstrap.h postgresql-6.5.2/src/include/bootstrap/bootstrap.h *** postgresql-6.5.1/src/include/bootstrap/bootstrap.h Sat Feb 13 18:21:00 1999 --- postgresql-6.5.2/src/include/bootstrap/bootstrap.h Fri Jul 30 14:27:02 1999 *************** *** 6,21 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: bootstrap.h,v 1.14 1999/02/13 23:21:00 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef BOOTSTRAP_H #define BOOTSTRAP_H ! #include ! #include ! #include #define MAXATTR 40 /* max. number of attributes in a relation */ --- 6,21 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: bootstrap.h,v 1.14.2.1 1999/07/30 18:27:02 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef BOOTSTRAP_H #define BOOTSTRAP_H ! #include "access/funcindex.h" ! #include "access/itup.h" ! #include "utils/rel.h" #define MAXATTR 40 /* max. number of attributes in a relation */ diff -cr --new-file postgresql-6.5.1/src/include/c.h postgresql-6.5.2/src/include/c.h *** postgresql-6.5.1/src/include/c.h Thu Jul 1 15:47:25 1999 --- postgresql-6.5.2/src/include/c.h Fri Jul 30 14:26:57 1999 *************** *** 7,13 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: c.h,v 1.58 1999/07/01 19:47:25 momjian Exp $ * *------------------------------------------------------------------------- */ --- 7,13 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: c.h,v 1.58.2.1 1999/07/30 18:26:57 scrappy Exp $ * *------------------------------------------------------------------------- */ *************** *** 46,52 **** --- 46,58 ---- on some platforms, and we only want our definitions used if stdlib.h doesn't have its own. The same goes for stddef and stdarg if present. */ + + #include "config.h" + + + #include #include + #include #ifdef STDC_HEADERS #include #include *************** *** 104,115 **** */ /* - * We used to define const, signed, volatile, and inline as empty - * if __STDC__ wasn't defined. Now we let configure test whether - * those keywords work; config.h defines them as empty if not. - */ - - /* * CppAsString * Convert the argument to a string, using the C preprocessor. * CppConcat --- 110,115 ---- *************** *** 759,765 **** #endif /* hpux */ #endif ! #if defined(sun) && defined(sparc) && !defined(__SVR4) #define memmove(d, s, l) bcopy(s, d, l) #include #include --- 759,765 ---- #endif /* hpux */ #endif ! #if defined(sun) && defined(__sparc__) && !defined(__SVR4) #define memmove(d, s, l) bcopy(s, d, l) #include #include *************** *** 791,802 **** #ifndef HAVE_SNPRINTF extern int snprintf(char *str, size_t count, const char *fmt,...); - #endif #ifndef HAVE_VSNPRINTF extern int vsnprintf(char *str, size_t count, const char *fmt, va_list args); #endif /* ---------------- --- 791,804 ---- #ifndef HAVE_SNPRINTF extern int snprintf(char *str, size_t count, const char *fmt,...); #endif #ifndef HAVE_VSNPRINTF extern int vsnprintf(char *str, size_t count, const char *fmt, va_list args); + #endif + #ifndef HAVE_MEMMOVE + #include #endif /* ---------------- diff -cr --new-file postgresql-6.5.1/src/include/catalog/catalog.h postgresql-6.5.2/src/include/catalog/catalog.h *** postgresql-6.5.1/src/include/catalog/catalog.h Sat Feb 13 18:21:01 1999 --- postgresql-6.5.2/src/include/catalog/catalog.h Fri Jul 30 14:52:53 1999 *************** *** 6,19 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: catalog.h,v 1.7 1999/02/13 23:21:01 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef CATALOG_H #define CATALOG_H ! #include extern char *relpath(char *relname); extern bool IsSystemRelationName(char *relname); --- 6,19 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: catalog.h,v 1.7.2.1 1999/07/30 18:52:53 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef CATALOG_H #define CATALOG_H ! #include "access/tupdesc.h" extern char *relpath(char *relname); extern bool IsSystemRelationName(char *relname); diff -cr --new-file postgresql-6.5.1/src/include/catalog/heap.h postgresql-6.5.2/src/include/catalog/heap.h *** postgresql-6.5.1/src/include/catalog/heap.h Tue May 25 12:13:39 1999 --- postgresql-6.5.2/src/include/catalog/heap.h Fri Jul 30 14:52:53 1999 *************** *** 6,19 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: heap.h,v 1.19 1999/05/25 16:13:39 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef HEAP_H #define HEAP_H ! #include extern Oid RelnameFindRelid(char *relname); extern Relation heap_create(char *relname, TupleDesc att, --- 6,19 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: heap.h,v 1.19.2.1 1999/07/30 18:52:53 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef HEAP_H #define HEAP_H ! #include "utils/rel.h" extern Oid RelnameFindRelid(char *relname); extern Relation heap_create(char *relname, TupleDesc att, diff -cr --new-file postgresql-6.5.1/src/include/catalog/pg_proc.h postgresql-6.5.2/src/include/catalog/pg_proc.h *** postgresql-6.5.1/src/include/catalog/pg_proc.h Tue May 25 12:13:47 1999 --- postgresql-6.5.2/src/include/catalog/pg_proc.h Sat Aug 28 21:39:57 1999 *************** *** 6,12 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: pg_proc.h,v 1.99 1999/05/25 16:13:47 momjian Exp $ * * NOTES * The script catalog/genbki.sh reads this file and generates .bki --- 6,12 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: pg_proc.h,v 1.99.2.2 1999/08/29 01:39:57 tgl Exp $ * * NOTES * The script catalog/genbki.sh reads this file and generates .bki *************** *** 22,28 **** #ifndef PG_PROC_H #define PG_PROC_H ! #include /* ---------------- * postgres.h contains the system type definintions and the --- 22,28 ---- #ifndef PG_PROC_H #define PG_PROC_H ! #include "tcop/dest.h" /* ---------------- * postgres.h contains the system type definintions and the *************** *** 1641,1647 **** DESCR("convert (noop)"); DATA(insert OID = 1363 ( time PGUID 11 f t f 1 f 1083 "1184" 100 0 0 100 datetime_time - )); DESCR("convert datetime to time"); ! DATA(insert OID = 1364 ( time PGUID 14 f t f 1 f 1083 "702" 100 0 0 100 "select abstime_time($1)" - )); DESCR("convert abstime to time"); DATA(insert OID = 1365 ( abstime PGUID 14 f t f 1 f 702 "702" 100 0 0 100 "select $1" - )); DESCR("convert (noop)"); --- 1641,1647 ---- DESCR("convert (noop)"); DATA(insert OID = 1363 ( time PGUID 11 f t f 1 f 1083 "1184" 100 0 0 100 datetime_time - )); DESCR("convert datetime to time"); ! DATA(insert OID = 1364 ( time PGUID 14 f t f 1 f 1083 "702" 100 0 0 100 "select time(datetime($1))" - )); DESCR("convert abstime to time"); DATA(insert OID = 1365 ( abstime PGUID 14 f t f 1 f 702 "702" 100 0 0 100 "select $1" - )); DESCR("convert (noop)"); *************** *** 1653,1659 **** DESCR("convert timespan to reltime"); DATA(insert OID = 1369 ( timestamp PGUID 14 f t f 1 f 1296 "1296" 100 0 0 100 "select $1" - )); DESCR("convert (noop)"); ! DATA(insert OID = 1370 ( timestamp PGUID 14 f t f 1 f 1296 "1184" 100 0 0 100 "select datetime_stamp($1)" - )); DESCR("convert datetime to timestamp"); DATA(insert OID = 1371 ( length PGUID 11 f t f 1 f 23 "25" 100 0 0 100 textlen - )); DESCR("character length"); --- 1653,1659 ---- DESCR("convert timespan to reltime"); DATA(insert OID = 1369 ( timestamp PGUID 14 f t f 1 f 1296 "1296" 100 0 0 100 "select $1" - )); DESCR("convert (noop)"); ! DATA(insert OID = 1370 ( timestamp PGUID 11 f t f 1 f 1296 "1184" 100 0 0 100 datetime_timestamp - )); DESCR("convert datetime to timestamp"); DATA(insert OID = 1371 ( length PGUID 11 f t f 1 f 23 "25" 100 0 0 100 textlen - )); DESCR("character length"); diff -cr --new-file postgresql-6.5.1/src/include/commands/command.h postgresql-6.5.2/src/include/commands/command.h *** postgresql-6.5.1/src/include/commands/command.h Tue May 25 18:42:41 1999 --- postgresql-6.5.2/src/include/commands/command.h Fri Jul 30 14:52:55 1999 *************** *** 6,19 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: command.h,v 1.14 1999/05/25 22:42:41 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef COMMAND_H #define COMMAND_H ! #include extern MemoryContext PortalExecutorHeapMemory; --- 6,19 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: command.h,v 1.14.2.1 1999/07/30 18:52:55 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef COMMAND_H #define COMMAND_H ! #include "utils/portal.h" extern MemoryContext PortalExecutorHeapMemory; diff -cr --new-file postgresql-6.5.1/src/include/commands/dbcommands.h postgresql-6.5.2/src/include/commands/dbcommands.h *** postgresql-6.5.1/src/include/commands/dbcommands.h Mon Mar 15 22:24:18 1999 --- postgresql-6.5.2/src/include/commands/dbcommands.h Fri Jul 30 14:52:55 1999 *************** *** 6,17 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: dbcommands.h,v 1.8 1999/03/16 03:24:18 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef DBCOMMANDS_H #define DBCOMMANDS_H /* * Originally from tmp/daemon.h. The functions declared in daemon.h does not --- 6,20 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: dbcommands.h,v 1.8.2.1 1999/07/30 18:52:55 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef DBCOMMANDS_H #define DBCOMMANDS_H + + #include + #include "tcop/dest.h" /* * Originally from tmp/daemon.h. The functions declared in daemon.h does not diff -cr --new-file postgresql-6.5.1/src/include/commands/defrem.h postgresql-6.5.2/src/include/commands/defrem.h *** postgresql-6.5.1/src/include/commands/defrem.h Sat Feb 13 18:21:18 1999 --- postgresql-6.5.2/src/include/commands/defrem.h Fri Jul 30 14:52:56 1999 *************** *** 6,20 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: defrem.h,v 1.15 1999/02/13 23:21:18 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef DEFREM_H #define DEFREM_H ! #include ! #include /* * prototypes in defind.c --- 6,20 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: defrem.h,v 1.15.2.1 1999/07/30 18:52:56 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef DEFREM_H #define DEFREM_H ! #include "nodes/parsenodes.h" ! #include "tcop/dest.h" /* * prototypes in defind.c diff -cr --new-file postgresql-6.5.1/src/include/commands/explain.h postgresql-6.5.2/src/include/commands/explain.h *** postgresql-6.5.1/src/include/commands/explain.h Sat Feb 13 18:21:19 1999 --- postgresql-6.5.2/src/include/commands/explain.h Fri Jul 30 14:52:56 1999 *************** *** 5,19 **** * * Copyright (c) 1994-5, Regents of the University of California * ! * $Id: explain.h,v 1.8 1999/02/13 23:21:19 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef EXPLAIN_H #define EXPLAIN_H - #include "tcop/dest.h" #include "nodes/parsenodes.h" extern void ExplainQuery(Query *query, bool verbose, CommandDest dest); --- 5,19 ---- * * Copyright (c) 1994-5, Regents of the University of California * ! * $Id: explain.h,v 1.8.2.1 1999/07/30 18:52:56 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef EXPLAIN_H #define EXPLAIN_H #include "nodes/parsenodes.h" + #include "tcop/dest.h" extern void ExplainQuery(Query *query, bool verbose, CommandDest dest); diff -cr --new-file postgresql-6.5.1/src/include/commands/proclang.h postgresql-6.5.2/src/include/commands/proclang.h *** postgresql-6.5.1/src/include/commands/proclang.h Sat Feb 13 18:21:19 1999 --- postgresql-6.5.2/src/include/commands/proclang.h Fri Jul 30 14:52:56 1999 *************** *** 9,15 **** #ifndef PROCLANG_H #define PROCLANG_H ! #include extern void CreateProceduralLanguage(CreatePLangStmt *stmt); extern void DropProceduralLanguage(DropPLangStmt *stmt); --- 9,15 ---- #ifndef PROCLANG_H #define PROCLANG_H ! #include "nodes/parsenodes.h" extern void CreateProceduralLanguage(CreatePLangStmt *stmt); extern void DropProceduralLanguage(DropPLangStmt *stmt); diff -cr --new-file postgresql-6.5.1/src/include/commands/user.h postgresql-6.5.2/src/include/commands/user.h *** postgresql-6.5.1/src/include/commands/user.h Mon Mar 15 22:24:18 1999 --- postgresql-6.5.2/src/include/commands/user.h Fri Jul 30 14:52:56 1999 *************** *** 10,15 **** --- 10,18 ---- #ifndef USER_H #define USER_H + #include "nodes/parsenodes.h" + #include "tcop/dest.h" + extern void DefineUser(CreateUserStmt *stmt, CommandDest); extern void AlterUser(AlterUserStmt *stmt, CommandDest); extern void RemoveUser(char *user, CommandDest); diff -cr --new-file postgresql-6.5.1/src/include/commands/vacuum.h postgresql-6.5.2/src/include/commands/vacuum.h *** postgresql-6.5.1/src/include/commands/vacuum.h Tue May 25 18:42:43 1999 --- postgresql-6.5.2/src/include/commands/vacuum.h Wed Aug 25 07:32:52 1999 *************** *** 6,12 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: vacuum.h,v 1.20 1999/05/25 22:42:43 momjian Exp $ * *------------------------------------------------------------------------- */ --- 6,12 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: vacuum.h,v 1.20.2.1 1999/08/25 11:32:52 ishii Exp $ * *------------------------------------------------------------------------- */ *************** *** 46,51 **** --- 46,52 ---- { int vpl_empty_end_pages; /* Number of "empty" end-pages */ int vpl_num_pages; /* Number of pages in vpl_pagedesc */ + int vpl_num_allocated_pages; /* Number of allocated pages in vpl_pagedesc */ VPageDescr *vpl_pagedesc; /* Descriptions of pages */ } VPageListData; diff -cr --new-file postgresql-6.5.1/src/include/config.h.in postgresql-6.5.2/src/include/config.h.in *** postgresql-6.5.1/src/include/config.h.in Fri Jul 9 12:56:44 1999 --- postgresql-6.5.2/src/include/config.h.in Fri Jul 30 15:13:44 1999 *************** *** 55,126 **** */ #define RELSEG_SIZE (0x40000000 / BLCKSZ) /* ! * The following is set using configure. */ ! /* Set to 1 if you have */ ! #undef HAVE_STRING_H ! /* Set to 1 if you have */ ! #undef HAVE_STRINGS_H ! /* Set to 1 if you have */ ! #undef HAVE_GETOPT_H ! /* Set to 1 if you have */ ! #undef HAVE_FP_CLASS_H ! /* Set to 1 if you have */ ! #undef HAVE_NETINET_IN_H ! /* Set to 1 if you have */ ! #undef HAVE_IEEEFP_H ! /* Set to 1 if you have */ ! #undef HAVE_ARPA_INET_H ! /* Set to 1 if you have */ ! #undef HAVE_NETDB_H ! /* Set to 1 if you have */ ! #undef HAVE_ENDIAN_H /* Set to 1 if you have */ #undef HAVE_CRYPT_H ! /* Set to 1 if you have */ ! #undef HAVE_TERMIOS_H /* Set to 1 if you have */ #undef HAVE_FLOAT_H /* Set to 1 if you have */ #undef HAVE_LIMITS_H ! /* Set to 1 if you have */ ! #undef HAVE_VALUES_H ! /* Set to 1 if you have */ ! #undef HAVE_SYS_SELECT_H /* Set to 1 if you have */ #undef HAVE_READLINE_H - /* Set to 1 if you have */ - #undef HAVE_HISTORY_H - /* Set to 1 if you have */ #undef HAVE_READLINE_HISTORY_H /* Set to 1 if you have */ #undef HAVE_READLINE_READLINE_H ! /* Set to 1 if you have libreadline and it includes history functions */ ! #undef HAVE_HISTORY ! /* Set to 1 if you have */ ! #undef HAVE_DLD_H /* Define if you have the ANSI C header files. */ #undef STDC_HEADERS --- 55,275 ---- */ #define RELSEG_SIZE (0x40000000 / BLCKSZ) + /* Set to 1 if you want to USE_LOCALE */ + #undef USE_LOCALE + + /* Set to 1 if you want CYR_RECODE (cyrillic recode) */ + #undef CYR_RECODE + + /* Set to 1 if you want to Enable ASSERT CHECKING */ + #undef USE_ASSERT_CHECKING + /* ! * DEF_PGPORT is the TCP port number on which the Postmaster listens by ! * default. This can be overriden by command options, environment variables, ! * and the postconfig hook. (set by configure script) ! */ ! ! #undef DEF_PGPORT ! ! /* ! * If you do not plan to use Host based authentication, ! * comment out the following line (set by build script) */ + #undef HBA ! /* ! * As soon as the backend blocks on a lock, it waits this number of seconds ! * before checking for a deadlock. ! * We don't check for deadlocks just before sleeping because a deadlock is ! * a rare event, and checking is an expensive operation. ! */ ! #define DEADLOCK_CHECK_TIMER 1 ! /* ! * This flag enables the use of indexes in plans generated for function ! * executions which normally are always executed with sequential scans. ! */ ! #define INDEXSCAN_PATCH ! /* ! * Enables debugging print statements in the date/time support routines. ! * Particularly useful for porting to a new platform/OS combination. ! */ ! /* #define DATEDEBUG */ ! /* ! * defining unsafe floats's will make float4 and float8 ! * ops faster at the cost of safety, of course! ! */ ! /* #define UNSAFE_FLOATS */ ! /* ! * There is a bug in the function executor. The backend crashes while trying to ! * execute an sql function containing an utility command (create, notify, ...). ! * The bug is part in the planner, which returns a number of plans different ! * than the number of commands if there are utility commands in the query, and ! * in part in the function executor which assumes that all commands are normal ! * query commands and causes a SIGSEGV trying to execute commands without plan. ! */ ! #define FUNC_UTIL_PATCH ! /* ! * Define this to make libpgtcl's "pg_result -assign" command process C-style ! * backslash sequences in returned tuple data and convert Postgres array ! * attributes into Tcl lists. CAUTION: this conversion is *wrong* unless ! * you install the routines in contrib/string/string_io to make the backend ! * produce C-style backslash sequences in the first place. ! */ ! /* #define TCL_ARRAYS */ ! /* ! * The following flag allows copying tables from files with number of columns ! * different than the number of attributes setting missing attributes to NULL ! * and ignoring extra columns. This also avoids the shift of the attributes ! * of the rest of the file if one line has a wrong column count. ! */ ! #define COPY_PATCH ! /* ! * User locks are handled totally on the application side as long term ! * cooperative locks which extend beyond the normal transaction boundaries. ! * Their purpose is to indicate to an application that someone is `working' ! * on an item. Define this flag to enable user locks. You will need the ! * loadable module user-locks.c to use this feature. ! */ ! #define USER_LOCKS ! /* Genetic Query Optimization (GEQO): ! * ! * The GEQO module in PostgreSQL is intended for the solution of the ! * query optimization problem by means of a Genetic Algorithm (GA). ! * It allows the handling of large JOIN queries through non-exhaustive ! * search. ! * For further information see README.GEQO . ! */ ! #define GEQO ! ! /* ! * Define this if you want psql to _always_ ask for a username and a password ! * for password authentication. ! */ ! /* #define PSQL_ALWAYS_GET_PASSWORDS */ ! ! /* ! * Define this if you want to allow the lo_import and lo_export SQL functions ! * to be executed by ordinary users. By default these functions are only ! * available to the Postgres superuser. CAUTION: these functions are ! * SECURITY HOLES since they can read and write any file that the Postgres ! * backend has permission to access. If you turn this on, don't say we ! * didn't warn you. ! */ ! /* #define ALLOW_DANGEROUS_LO_FUNCTIONS */ ! ! /* ! * Use btree bulkload code: ! * this code is moderately slow (~10% slower) compared to the regular ! * btree (insertion) build code on sorted or well-clustered data. on ! * random data, however, the insertion build code is unusable -- the ! * difference on a 60MB heap is a factor of 15 because the random ! * probes into the btree thrash the buffer pool. ! * ! * Great thanks to Paul M. Aoki (aoki@CS.Berkeley.EDU) ! */ ! #define FASTBUILD /* access/nbtree/nbtsort.c */ ! ! /* ! * TBL_FREE_CMD_MEMORY: free memory allocated for an user query inside ! * transaction block after this query is done. ! */ ! #define TBL_FREE_CMD_MEMORY ! ! /* ! * ELOG_TIMESTAMPS: adds a timestamp with the following format to elog ! * messages: yymmdd.hh:mm:ss.mmm [pid] message ! */ ! /* #define ELOG_TIMESTAMPS */ ! ! /* ! * USE_SYSLOG: use syslog for elog and error messages printed by tprintf ! * and eprintf. This must be activated with the syslog flag in pg_options ! * (syslog=0 for stdio, syslog=1 for stdio+syslog, syslog=2 for syslog). ! * For information see backend/utils/misc/trace.c (Massimo Dal Zotto). ! */ ! /* #define USE_SYSLOG */ ! ! /* Debug #defines */ ! /* #define IPORTAL_DEBUG */ ! /* #define HEAPDEBUGALL */ ! /* #define ISTRATDEBUG */ ! /* #define FASTBUILD_DEBUG */ ! /* #define ACLDEBUG */ ! /* #define RTDEBUG */ ! /* #define GISTDEBUG */ ! /* #define OMIT_PARTIAL_INDEX */ ! /* #define NO_BUFFERISVALID */ ! /* #define NO_SECURITY */ ! /* #define OLD_REWRITE */ ! ! /* ! *------------------------------------------------------------------------ ! * The following is set using configure. ! *------------------------------------------------------------------------ ! */ ! ! /* Set to 1 if you have */ ! #undef HAVE_ARPA_INET_H /* Set to 1 if you have */ #undef HAVE_CRYPT_H ! /* Set to 1 if you have */ ! #undef HAVE_DLD_H ! ! /* Set to 1 if you have */ ! #undef HAVE_ENDIAN_H /* Set to 1 if you have */ #undef HAVE_FLOAT_H + /* Set to 1 if you have */ + #undef HAVE_FP_CLASS_H + + /* Set to 1 if you have */ + #undef HAVE_GETOPT_H + + /* Set to 1 if you have */ + #undef HAVE_HISTORY_H + + /* Set to 1 if you have */ + #undef HAVE_IEEEFP_H + /* Set to 1 if you have */ #undef HAVE_LIMITS_H ! /* Set to 1 if you have */ ! #undef HAVE_NETDB_H ! /* Set to 1 if you have */ ! #undef HAVE_NETINET_IN_H /* Set to 1 if you have */ #undef HAVE_READLINE_H /* Set to 1 if you have */ #undef HAVE_READLINE_HISTORY_H /* Set to 1 if you have */ #undef HAVE_READLINE_READLINE_H ! /* Set to 1 if you have */ ! #undef HAVE_SYS_SELECT_H ! /* Set to 1 if you have */ ! #undef HAVE_TERMIOS_H ! ! /* Set to 1 if you have */ ! #undef HAVE_VALUES_H /* Define if you have the ANSI C header files. */ #undef STDC_HEADERS *************** *** 131,136 **** --- 280,288 ---- /* Define if you have the stricmp function. */ #undef HAVE_STRICMP + /* Set to 1 if you have libreadline and it includes history functions */ + #undef HAVE_HISTORY + /* * Block of parameters for the ODBC code. */ *************** *** 141,155 **** /* Define if you have the header file. */ #undef HAVE_SYS_PARAM_H - /* Define if you have the c library (-lc). */ - #undef HAVE_LIBC - /* Define if you have the dl library (-ldl). */ #undef HAVE_LIBDL - /* Define if you have the m library (-lm). */ - #undef HAVE_LIBM - /* * End parameters for ODBC code. */ --- 293,301 ---- *************** *** 163,192 **** /* Set to 1 if you have snprintf() */ #undef HAVE_SNPRINTF /* Set to 1 if you have vsnprintf() */ #undef HAVE_VSNPRINTF ! /* Set to 1 if you have fp_class() */ #undef HAVE_FP_CLASS ! ! /* Set to 1 if you have class() */ ! #undef HAVE_CLASS ! ! /* Set to 1 if you have fp_class_d() */ #undef HAVE_FP_CLASS_D ! ! /* Set to 1 if you have fpclass() */ ! #undef HAVE_FPCLASS ! ! /* Set to 1 if you have isinf() */ #undef HAVE_ISINF #ifndef HAVE_ISINF int isinf(double x); #endif - /* Set to 1 if you have tzset() */ - #undef HAVE_TZSET - /* Set to 1 if you have gethostname() */ #undef HAVE_GETHOSTNAME #ifndef HAVE_GETHOSTNAME --- 309,334 ---- /* Set to 1 if you have snprintf() */ #undef HAVE_SNPRINTF + /* Set to 1 if you have strerror() */ + #undef HAVE_STRERROR + /* Set to 1 if you have vsnprintf() */ #undef HAVE_VSNPRINTF ! /* ! * Set to 1 if you have isinf(). ! * These are all realated to port/isinf.c ! */ ! #undef HAVE_FPCLASS #undef HAVE_FP_CLASS ! #undef HAVE_FP_CLASS_H #undef HAVE_FP_CLASS_D ! #undef HAVE_CLASS #undef HAVE_ISINF #ifndef HAVE_ISINF int isinf(double x); #endif /* Set to 1 if you have gethostname() */ #undef HAVE_GETHOSTNAME #ifndef HAVE_GETHOSTNAME *************** *** 222,230 **** /* Set to 1 if you have fcvt() */ #undef HAVE_FCVT - /* Set to 1 if you have strerror() */ - #undef HAVE_STRERROR - /* Set to 1 if you have rint() */ #undef HAVE_RINT --- 364,369 ---- *************** *** 234,245 **** /* Set to 1 if you have sigsetjmp() */ #undef HAVE_SIGSETJMP - /* Set to 1 if you have kill() */ - #undef HAVE_KILL - - /* Set to 1 if you have vfork() */ - #undef HAVE_VFORK - /* Set to 1 if you have sysconf() */ #undef HAVE_SYSCONF --- 373,378 ---- *************** *** 291,314 **** /* Set to 1 if you have libhistory.a */ #undef HAVE_LIBHISTORY /* Set to 1 if you have union semun */ #undef HAVE_UNION_SEMUN /* Set to 1 if you have F_SETLK option for fcntl() */ #undef HAVE_FCNTL_SETLK - /* Set to 1 if you want to USE_LOCALE */ - #undef USE_LOCALE - - /* Set to 1 if you want CYR_RECODE (cyrillic recode) */ - #undef CYR_RECODE - - /* Set to 1 if you want to Enable ASSERT CHECKING */ - #undef USE_ASSERT_CHECKING - - /* Set to 1 if your DBL_MIN is problematic */ - #undef HAVE_DBL_MIN_PROBLEM - /* Set to 1 if type "long int" works and is 64 bits */ #undef HAVE_LONG_INT_64 --- 424,441 ---- /* Set to 1 if you have libhistory.a */ #undef HAVE_LIBHISTORY + /* + * On architectures for which we have not implemented spinlocks (or + * cannot do so), we use System V semaphores. We also use them for + * long locks. For some reason union semun is never defined in the + * System V header files so we must do it ourselves. + */ /* Set to 1 if you have union semun */ #undef HAVE_UNION_SEMUN /* Set to 1 if you have F_SETLK option for fcntl() */ #undef HAVE_FCNTL_SETLK /* Set to 1 if type "long int" works and is 64 bits */ #undef HAVE_LONG_INT_64 *************** *** 370,549 **** # define SIGNAL_ARGS int postgres_signal_arg #endif - /* - * DEF_PGPORT is the TCP port number on which the Postmaster listens by - * default. This can be overriden by command options, environment variables, - * and the postconfig hook. (set by configure script) - */ - - #undef DEF_PGPORT - - /* - * If you do not plan to use Host based authentication, - * comment out the following line (set by build script) - */ - #undef HBA - - /* - * On architectures for which we have not implemented spinlocks (or - * cannot do so), we use System V semaphores. We also use them for - * long locks. For some reason union semun is never defined in the - * System V header files so we must do it ourselves. - */ - - /* Debug and various "defines" that should be documented */ - - /* found in function aclparse() in src/backend/utils/adt/acl.c */ - /* #define ACLDEBUG */ - - /* found in src/backend/utils/adt/arrayfuncs.c - code seems broken without it, Bruce Momjian */ - /* #define LOARRAY */ - - /* - * As soon as the backend blocks on a lock, it waits this number of seconds - * before checking for a deadlock. - * We don't check for deadlocks just before sleeping because a deadlock is - * a rare event, and checking is an expensive operation. - */ - #define DEADLOCK_CHECK_TIMER 1 - - /* - * This flag enables the use of indexes in plans generated for function - * executions which normally are always executed with sequential scans. - */ - #define INDEXSCAN_PATCH - - /* - * Enables debugging print statements in the date/time support routines. - * Particularly useful for porting to a new platform/OS combination. - */ - /* #define DATEDEBUG */ - - /* - * defining unsafe floats's will make float4 and float8 - * ops faster at the cost of safety, of course! - */ - /* #define UNSAFE_FLOATS */ - - /* - * There is a bug in the function executor. The backend crashes while trying to - * execute an sql function containing an utility command (create, notify, ...). - * The bug is part in the planner, which returns a number of plans different - * than the number of commands if there are utility commands in the query, and - * in part in the function executor which assumes that all commands are normal - * query commands and causes a SIGSEGV trying to execute commands without plan. - */ - #define FUNC_UTIL_PATCH - - /* - * Define this to make libpgtcl's "pg_result -assign" command process C-style - * backslash sequences in returned tuple data and convert Postgres array - * attributes into Tcl lists. CAUTION: this conversion is *wrong* unless - * you install the routines in contrib/string/string_io to make the backend - * produce C-style backslash sequences in the first place. - */ - /* #define TCL_ARRAYS */ - - /* - * The following flag allows limiting the number of rows returned by a query. - * You will need the loadable module utils.c to use this feature. - */ - #define QUERY_LIMIT - - /* - * The following flag allows copying tables from files with number of columns - * different than the number of attributes setting missing attributes to NULL - * and ignoring extra columns. This also avoids the shift of the attributes - * of the rest of the file if one line has a wrong column count. - */ - #define COPY_PATCH - - /* - * User locks are handled totally on the application side as long term - * cooperative locks which extend beyond the normal transaction boundaries. - * Their purpose is to indicate to an application that someone is `working' - * on an item. Define this flag to enable user locks. You will need the - * loadable module user-locks.c to use this feature. - */ - #define USER_LOCKS - - /* Debug #defines */ - /* #define IPORTAL_DEBUG */ - /* #define HEAPDEBUGALL */ - /* #define ISTRATDEBUG */ - /* #define FASTBUILD_DEBUG */ - #define RTDEBUG - #define GISTDEBUG - /* #define DEBUG_RECIPE */ - - /* The following don't have any apparent purpose, but are in the - * code. someday, will take them out altogether, but for now, - * document them here - */ - /* #define OMIT_PARTIAL_INDEX */ - /* #define NO_BUFFERISVALID */ - /* #define NO_SECURITY */ - /* #define TIOGA */ - /* #define OLD_REWRITE */ - /* #define NOTYET */ - - /* Genetic Query Optimization (GEQO): - * - * The GEQO module in PostgreSQL is intended for the solution of the - * query optimization problem by means of a Genetic Algorithm (GA). - * It allows the handling of large JOIN queries through non-exhaustive - * search. - * For further information see README.GEQO . - */ - #define GEQO /* backend/optimizer/path/allpaths.c */ - - /* - * Define this if you want psql to _always_ ask for a username and a password - * for password authentication. - */ - /* #define PSQL_ALWAYS_GET_PASSWORDS */ - - /* - * Define this if you want to allow the lo_import and lo_export SQL functions - * to be executed by ordinary users. By default these functions are only - * available to the Postgres superuser. CAUTION: these functions are - * SECURITY HOLES since they can read and write any file that the Postgres - * backend has permission to access. If you turn this on, don't say we - * didn't warn you. - */ - /* #define ALLOW_DANGEROUS_LO_FUNCTIONS */ - - /* - * Use btree bulkload code: - * this code is moderately slow (~10% slower) compared to the regular - * btree (insertion) build code on sorted or well-clustered data. on - * random data, however, the insertion build code is unusable -- the - * difference on a 60MB heap is a factor of 15 because the random - * probes into the btree thrash the buffer pool. - * - * Great thanks to Paul M. Aoki (aoki@CS.Berkeley.EDU) - */ - #define FASTBUILD /* access/nbtree/nbtsort.c */ - - /* - * TBL_FREE_CMD_MEMORY: free memory allocated for an user query inside - * transaction block after this query is done. - */ - #define TBL_FREE_CMD_MEMORY - - /* - * ELOG_TIMESTAMPS: adds a timestamp with the following format to elog - * messages: yymmdd.hh:mm:ss.mmm [pid] message - */ - /* #define ELOG_TIMESTAMPS */ - - /* - * USE_SYSLOG: use syslog for elog and error messages printed by tprintf - * and eprintf. This must be activated with the syslog flag in pg_options - * (syslog=0 for stdio, syslog=1 for stdio+syslog, syslog=2 for syslog). - * For information see backend/utils/misc/trace.c (Massimo Dal Zotto). - */ - /* #define USE_SYSLOG */ #endif /* CONFIG_H */ --- 497,501 ---- diff -cr --new-file postgresql-6.5.1/src/include/executor/execdesc.h postgresql-6.5.2/src/include/executor/execdesc.h *** postgresql-6.5.1/src/include/executor/execdesc.h Sat Feb 13 18:21:23 1999 --- postgresql-6.5.2/src/include/executor/execdesc.h Fri Jul 30 15:36:30 1999 *************** *** 7,22 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: execdesc.h,v 1.10 1999/02/13 23:21:23 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef EXECDESC_H #define EXECDESC_H ! #include ! #include ! #include /* ---------------- * query descriptor: --- 7,22 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: execdesc.h,v 1.10.2.1 1999/07/30 19:36:30 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef EXECDESC_H #define EXECDESC_H ! #include "nodes/parsenodes.h" ! #include "nodes/plannodes.h" ! #include "tcop/dest.h" /* ---------------- * query descriptor: diff -cr --new-file postgresql-6.5.1/src/include/lib/hasht.h postgresql-6.5.2/src/include/lib/hasht.h *** postgresql-6.5.1/src/include/lib/hasht.h Sat Feb 13 18:21:31 1999 --- postgresql-6.5.2/src/include/lib/hasht.h Fri Jul 30 15:36:31 1999 *************** *** 7,20 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: hasht.h,v 1.7 1999/02/13 23:21:31 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef HASHT_H #define HASHT_H ! #include typedef void (*HashtFunc) (); --- 7,20 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: hasht.h,v 1.7.2.1 1999/07/30 19:36:31 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef HASHT_H #define HASHT_H ! #include "utils/hsearch.h" typedef void (*HashtFunc) (); diff -cr --new-file postgresql-6.5.1/src/include/libpq/crypt.h postgresql-6.5.2/src/include/libpq/crypt.h *** postgresql-6.5.1/src/include/libpq/crypt.h Sat Feb 20 22:49:45 1999 --- postgresql-6.5.2/src/include/libpq/crypt.h Fri Jul 30 15:36:32 1999 *************** *** 9,15 **** #ifndef PG_CRYPT_H #define PG_CRYPT_H ! #include #define CRYPT_PWD_FILE "pg_pwd" #define CRYPT_PWD_FILE_SEPCHAR "'\\t'" --- 9,15 ---- #ifndef PG_CRYPT_H #define PG_CRYPT_H ! #include "libpq/libpq-be.h" #define CRYPT_PWD_FILE "pg_pwd" #define CRYPT_PWD_FILE_SEPCHAR "'\\t'" diff -cr --new-file postgresql-6.5.1/src/include/libpq/hba.h postgresql-6.5.2/src/include/libpq/hba.h *** postgresql-6.5.1/src/include/libpq/hba.h Mon May 10 11:17:17 1999 --- postgresql-6.5.2/src/include/libpq/hba.h Fri Jul 30 15:36:33 1999 *************** *** 4,10 **** * Interface to hba.c * * ! * $Id: hba.h,v 1.13 1999/05/10 15:17:17 momjian Exp $ * *------------------------------------------------------------------------- */ --- 4,10 ---- * Interface to hba.c * * ! * $Id: hba.h,v 1.13.2.1 1999/07/30 19:36:33 scrappy Exp $ * *------------------------------------------------------------------------- */ *************** *** 13,20 **** #include ! #include "libpq/libpq-be.h" ! #define CONF_FILE "pg_hba.conf" /* Name of the config file */ --- 13,19 ---- #include ! #include "libpq/pqcomm.h" #define CONF_FILE "pg_hba.conf" /* Name of the config file */ diff -cr --new-file postgresql-6.5.1/src/include/libpq/libpq-be.h postgresql-6.5.2/src/include/libpq/libpq-be.h *** postgresql-6.5.1/src/include/libpq/libpq-be.h Sat Feb 13 18:21:35 1999 --- postgresql-6.5.2/src/include/libpq/libpq-be.h Fri Jul 30 15:36:33 1999 *************** *** 7,23 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: libpq-be.h,v 1.14 1999/02/13 23:21:35 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef LIBPQ_BE_H #define LIBPQ_BE_H - #include #include - #include "libpq/pqcomm.h" #include "libpq/hba.h" --- 7,21 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: libpq-be.h,v 1.14.2.1 1999/07/30 19:36:33 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef LIBPQ_BE_H #define LIBPQ_BE_H #include #include "libpq/hba.h" diff -cr --new-file postgresql-6.5.1/src/include/libpq/libpq.h postgresql-6.5.2/src/include/libpq/libpq.h *** postgresql-6.5.1/src/include/libpq/libpq.h Wed Jul 7 13:17:50 1999 --- postgresql-6.5.2/src/include/libpq/libpq.h Fri Jul 30 15:36:33 1999 *************** *** 6,12 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: libpq.h,v 1.31 1999/07/07 17:17:50 momjian Exp $ * *------------------------------------------------------------------------- */ --- 6,12 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: libpq.h,v 1.31.2.1 1999/07/30 19:36:33 scrappy Exp $ * *------------------------------------------------------------------------- */ *************** *** 19,25 **** #include "libpq/libpq-be.h" #include "tcop/dest.h" ! /* ---------------- * PQArgBlock --- 19,25 ---- #include "libpq/libpq-be.h" #include "tcop/dest.h" ! #include "utils/exc.h" /* ---------------- * PQArgBlock diff -cr --new-file postgresql-6.5.1/src/include/storage/multilev.h postgresql-6.5.2/src/include/storage/multilev.h *** postgresql-6.5.1/src/include/storage/multilev.h Sat Feb 13 18:22:07 1999 --- postgresql-6.5.2/src/include/storage/multilev.h Fri Jul 30 13:07:16 1999 *************** *** 7,20 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: multilev.h,v 1.15 1999/02/13 23:22:07 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef MULTILEV_H #define MULTILEV_H ! #include #ifdef LowLevelLocking --- 7,20 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: multilev.h,v 1.15.2.1 1999/07/30 17:07:16 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef MULTILEV_H #define MULTILEV_H ! #include "storage/lmgr.h" #ifdef LowLevelLocking diff -cr --new-file postgresql-6.5.1/src/include/storage/off.h postgresql-6.5.2/src/include/storage/off.h *** postgresql-6.5.1/src/include/storage/off.h Tue May 25 12:14:43 1999 --- postgresql-6.5.2/src/include/storage/off.h Fri Jul 30 13:07:16 1999 *************** *** 6,18 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: off.h,v 1.7 1999/05/25 16:14:43 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef OFF_H #define OFF_H /* * OffsetNumber: * --- 6,19 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: off.h,v 1.7.2.1 1999/07/30 17:07:16 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef OFF_H #define OFF_H + #include "storage/itemid.h" /* * OffsetNumber: * diff -cr --new-file postgresql-6.5.1/src/include/storage/pos.h postgresql-6.5.2/src/include/storage/pos.h *** postgresql-6.5.1/src/include/storage/pos.h Tue May 25 12:14:44 1999 --- postgresql-6.5.2/src/include/storage/pos.h Fri Jul 30 13:07:17 1999 *************** *** 6,17 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: pos.h,v 1.7 1999/05/25 16:14:44 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef POS_H #define POS_H /* * a 'position' used to be in postgres. this has --- 6,19 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: pos.h,v 1.7.2.1 1999/07/30 17:07:17 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef POS_H #define POS_H + + #include "storage/off.h" /* * a 'position' used to be in postgres. this has diff -cr --new-file postgresql-6.5.1/src/include/storage/proc.h postgresql-6.5.2/src/include/storage/proc.h *** postgresql-6.5.1/src/include/storage/proc.h Tue May 25 18:43:27 1999 --- postgresql-6.5.2/src/include/storage/proc.h Fri Jul 30 13:07:17 1999 *************** *** 6,19 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: proc.h,v 1.24 1999/05/25 22:43:27 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef _PROC_H_ #define _PROC_H_ ! #include typedef struct { --- 6,19 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: proc.h,v 1.24.2.1 1999/07/30 17:07:17 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef _PROC_H_ #define _PROC_H_ ! #include "storage/lock.h" typedef struct { diff -cr --new-file postgresql-6.5.1/src/include/storage/s_lock.h postgresql-6.5.2/src/include/storage/s_lock.h *** postgresql-6.5.1/src/include/storage/s_lock.h Sat Jun 12 20:07:43 1999 --- postgresql-6.5.2/src/include/storage/s_lock.h Fri Jul 30 13:07:17 1999 *************** *** 7,13 **** * * * IDENTIFICATION ! * $Header: /usr/local/cvsroot/pgsql/src/include/storage/s_lock.h,v 1.61 1999/06/13 00:07:43 ishii Exp $ * *------------------------------------------------------------------------- */ --- 7,13 ---- * * * IDENTIFICATION ! * $Header: /usr/local/cvsroot/pgsql/src/include/storage/s_lock.h,v 1.61.2.1 1999/07/30 17:07:17 scrappy Exp $ * *------------------------------------------------------------------------- */ *************** *** 78,84 **** * All the gcc inlines */ ! #if defined(__alpha) #define TAS(lock) tas(lock) #define S_UNLOCK(lock) { __asm__("mb"); *(lock) = 0; } --- 78,84 ---- * All the gcc inlines */ ! #if defined(__alpha__) #define TAS(lock) tas(lock) #define S_UNLOCK(lock) { __asm__("mb"); *(lock) = 0; } *************** *** 104,114 **** return (int) _res; } ! #endif /* __alpha */ ! #if defined(i386) #define TAS(lock) tas(lock) static __inline__ int --- 104,114 ---- return (int) _res; } ! #endif /* __alpha__ */ ! #if defined(__i386__) #define TAS(lock) tas(lock) static __inline__ int *************** *** 120,126 **** return (int) _res; } ! #endif /* i386 */ --- 120,126 ---- return (int) _res; } ! #endif /* __i386__ */ *************** *** 140,146 **** ! #if defined(sparc) #define TAS(lock) tas(lock) static __inline__ int --- 140,146 ---- ! #if defined(__sparc__) #define TAS(lock) tas(lock) static __inline__ int *************** *** 154,160 **** return (int) _res; } ! #endif /* sparc */ #if defined(__mc68000__) && defined(__linux__) --- 154,160 ---- return (int) _res; } ! #endif /* __sparc__ */ #if defined(__mc68000__) && defined(__linux__) *************** *** 226,232 **** * All non gcc */ ! #if defined(__alpha) /* * OSF/1 (Alpha AXP) * --- 226,232 ---- * All non gcc */ ! #if defined(__alpha__) /* * OSF/1 (Alpha AXP) * *************** *** 237,243 **** #define S_UNLOCK(lock) msem_unlock((lock), 0) #define S_INIT_LOCK(lock) msem_init((lock), MSEM_UNLOCKED) #define S_LOCK_FREE(lock) (!(lock)->msem_state) ! #endif /* __alpha */ --- 237,243 ---- #define S_UNLOCK(lock) msem_unlock((lock), 0) #define S_INIT_LOCK(lock) msem_init((lock), MSEM_UNLOCKED) #define S_LOCK_FREE(lock) (!(lock)->msem_state) ! #endif /* __alpha__ */ *************** *** 307,313 **** * assembly from his NECEWS SVR4 port, but we probably ought to retain this * for the R3000 chips out there. */ ! #include #define TAS(lock) (test_and_set(lock,1)) #define S_UNLOCK(lock) (test_then_and(lock,0)) #define S_INIT_LOCK(lock) (test_then_and(lock,0)) --- 307,313 ---- * assembly from his NECEWS SVR4 port, but we probably ought to retain this * for the R3000 chips out there. */ ! #include "mutex.h" #define TAS(lock) (test_and_set(lock,1)) #define S_UNLOCK(lock) (test_then_and(lock,0)) #define S_INIT_LOCK(lock) (test_then_and(lock,0)) diff -cr --new-file postgresql-6.5.1/src/include/storage/shmem.h postgresql-6.5.2/src/include/storage/shmem.h *** postgresql-6.5.1/src/include/storage/shmem.h Tue May 25 18:43:27 1999 --- postgresql-6.5.2/src/include/storage/shmem.h Fri Jul 30 13:07:17 1999 *************** *** 6,20 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: shmem.h,v 1.18 1999/05/25 22:43:27 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef SHMEM_H #define SHMEM_H ! #include ! #include /* The shared memory region can start at a different address --- 6,20 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: shmem.h,v 1.18.2.1 1999/07/30 17:07:17 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef SHMEM_H #define SHMEM_H ! #include "storage/spin.h" ! #include "utils/hsearch.h" /* The shared memory region can start at a different address diff -cr --new-file postgresql-6.5.1/src/include/storage/sinval.h postgresql-6.5.2/src/include/storage/sinval.h *** postgresql-6.5.1/src/include/storage/sinval.h Fri May 28 13:03:31 1999 --- postgresql-6.5.2/src/include/storage/sinval.h Fri Jul 30 13:07:17 1999 *************** *** 6,20 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: sinval.h,v 1.11 1999/05/28 17:03:31 tgl Exp $ * *------------------------------------------------------------------------- */ #ifndef SINVAL_H #define SINVAL_H ! #include ! #include extern SPINLOCK SInvalLock; --- 6,20 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: sinval.h,v 1.11.2.1 1999/07/30 17:07:17 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef SINVAL_H #define SINVAL_H ! #include "storage/itemptr.h" ! #include "storage/spin.h" extern SPINLOCK SInvalLock; diff -cr --new-file postgresql-6.5.1/src/include/storage/sinvaladt.h postgresql-6.5.2/src/include/storage/sinvaladt.h *** postgresql-6.5.1/src/include/storage/sinvaladt.h Fri May 28 13:03:30 1999 --- postgresql-6.5.2/src/include/storage/sinvaladt.h Fri Jul 30 13:07:18 1999 *************** *** 6,20 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: sinvaladt.h,v 1.14 1999/05/28 17:03:30 tgl Exp $ * *------------------------------------------------------------------------- */ #ifndef SINVALADT_H #define SINVALADT_H ! #include ! #include /* * The structure of the shared cache invaidation segment --- 6,20 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: sinvaladt.h,v 1.14.2.1 1999/07/30 17:07:18 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef SINVALADT_H #define SINVALADT_H ! #include "storage/ipc.h" ! #include "storage/itemptr.h" /* * The structure of the shared cache invaidation segment diff -cr --new-file postgresql-6.5.1/src/include/storage/smgr.h postgresql-6.5.2/src/include/storage/smgr.h *** postgresql-6.5.1/src/include/storage/smgr.h Sat Feb 13 18:22:10 1999 --- postgresql-6.5.2/src/include/storage/smgr.h Fri Jul 30 13:07:18 1999 *************** *** 6,21 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: smgr.h,v 1.14 1999/02/13 23:22:10 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef SMGR_H #define SMGR_H ! #include ! #include ! #include #define SM_FAIL 0 #define SM_SUCCESS 1 --- 6,21 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: smgr.h,v 1.14.2.1 1999/07/30 17:07:18 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef SMGR_H #define SMGR_H ! #include "storage/block.h" ! #include "storage/spin.h" ! #include "utils/rel.h" #define SM_FAIL 0 #define SM_SUCCESS 1 diff -cr --new-file postgresql-6.5.1/src/include/storage/spin.h postgresql-6.5.2/src/include/storage/spin.h *** postgresql-6.5.1/src/include/storage/spin.h Sat Feb 13 18:22:10 1999 --- postgresql-6.5.2/src/include/storage/spin.h Fri Jul 30 13:07:18 1999 *************** *** 6,19 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: spin.h,v 1.8 1999/02/13 23:22:10 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef SPIN_H #define SPIN_H ! #include /* * two implementations of spin locks --- 6,19 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: spin.h,v 1.8.2.1 1999/07/30 17:07:18 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef SPIN_H #define SPIN_H ! #include "storage/ipc.h" /* * two implementations of spin locks diff -cr --new-file postgresql-6.5.1/src/include/tcop/dest.h postgresql-6.5.2/src/include/tcop/dest.h *** postgresql-6.5.1/src/include/tcop/dest.h Tue May 25 18:43:29 1999 --- postgresql-6.5.2/src/include/tcop/dest.h Fri Jul 30 13:07:20 1999 *************** *** 44,58 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: dest.h,v 1.20 1999/05/25 22:43:29 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef DEST_H #define DEST_H ! #include ! #include /* ---------------- * CommandDest is a simplistic means of identifying the desired --- 44,58 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: dest.h,v 1.20.2.1 1999/07/30 17:07:20 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef DEST_H #define DEST_H ! #include "access/htup.h" ! #include "access/tupdesc.h" /* ---------------- * CommandDest is a simplistic means of identifying the desired diff -cr --new-file postgresql-6.5.1/src/include/tcop/pquery.h postgresql-6.5.2/src/include/tcop/pquery.h *** postgresql-6.5.1/src/include/tcop/pquery.h Sat Feb 13 18:22:13 1999 --- postgresql-6.5.2/src/include/tcop/pquery.h Fri Jul 30 13:07:20 1999 *************** *** 6,19 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: pquery.h,v 1.12 1999/02/13 23:22:13 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef PQUERY_H #define PQUERY_H ! #include /* moved to execdesc.h extern QueryDesc *CreateQueryDesc(Query *parsetree, Plan *plantree, --- 6,19 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: pquery.h,v 1.12.2.1 1999/07/30 17:07:20 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef PQUERY_H #define PQUERY_H ! #include "executor/execdesc.h" /* moved to execdesc.h extern QueryDesc *CreateQueryDesc(Query *parsetree, Plan *plantree, diff -cr --new-file postgresql-6.5.1/src/include/tcop/utility.h postgresql-6.5.2/src/include/tcop/utility.h *** postgresql-6.5.1/src/include/tcop/utility.h Sat Feb 13 18:22:13 1999 --- postgresql-6.5.2/src/include/tcop/utility.h Fri Jul 30 13:07:20 1999 *************** *** 6,19 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: utility.h,v 1.7 1999/02/13 23:22:13 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef UTILITY_H #define UTILITY_H ! #include extern void ProcessUtility(Node *parsetree, CommandDest dest); --- 6,19 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: utility.h,v 1.7.2.1 1999/07/30 17:07:20 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef UTILITY_H #define UTILITY_H ! #include "executor/execdesc.h" extern void ProcessUtility(Node *parsetree, CommandDest dest); diff -cr --new-file postgresql-6.5.1/src/include/utils/acl.h postgresql-6.5.2/src/include/utils/acl.h *** postgresql-6.5.1/src/include/utils/acl.h Thu Jul 8 23:28:53 1999 --- postgresql-6.5.2/src/include/utils/acl.h Fri Jul 30 13:07:22 1999 *************** *** 6,12 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: acl.h,v 1.20 1999/07/09 03:28:53 momjian Exp $ * * NOTES * For backward-compatability purposes we have to allow there --- 6,12 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: acl.h,v 1.20.2.1 1999/07/30 17:07:22 scrappy Exp $ * * NOTES * For backward-compatability purposes we have to allow there *************** *** 22,29 **** #ifndef ACL_H #define ACL_H ! #include ! #include /* * AclId system identifier for the user, group, etc. --- 22,30 ---- #ifndef ACL_H #define ACL_H ! #include "nodes/parsenodes.h" ! #include "utils/array.h" ! #include "utils/memutils.h" /* * AclId system identifier for the user, group, etc. diff -cr --new-file postgresql-6.5.1/src/include/utils/array.h postgresql-6.5.2/src/include/utils/array.h *** postgresql-6.5.1/src/include/utils/array.h Tue May 25 12:14:49 1999 --- postgresql-6.5.2/src/include/utils/array.h Mon Aug 2 01:25:24 1999 *************** *** 10,16 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: array.h,v 1.18 1999/05/25 16:14:49 momjian Exp $ * * NOTES * XXX the data array should be LONGALIGN'd -- notice that the array --- 10,16 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: array.h,v 1.18.2.1 1999/08/02 05:25:24 scrappy Exp $ * * NOTES * XXX the data array should be LONGALIGN'd -- notice that the array *************** *** 22,28 **** #ifndef ARRAY_H #define ARRAY_H ! #include typedef struct { --- 22,28 ---- #ifndef ARRAY_H #define ARRAY_H ! #include "utils/memutils.h" typedef struct { *************** *** 84,107 **** */ #define ARR_DATA_PTR(a) \ (((char *) a) + \ ! DOUBLEALIGN(sizeof(ArrayType) + 2 * (sizeof(int) * (a)->ndim))) /* * The total array header size for an array of dimension n (in bytes). */ #define ARR_OVERHEAD(n) \ ! (DOUBLEALIGN(sizeof(ArrayType) + 2 * (n) * sizeof(int))) /*------------------------------------------------------------------------ * Miscellaneous helper definitions and routines for arrayfuncs.c *------------------------------------------------------------------------ */ - /* #if defined(irix5) */ - /* #define RETURN_NULL {*isNull = true; return(0); }*/ - /* #else *//* irix5 */ #define RETURN_NULL {*isNull = true; return(0); } - /* #endif *//* irix5 */ #define NAME_LEN 30 #define MAX_BUFF_SIZE BLCKSZ --- 84,103 ---- */ #define ARR_DATA_PTR(a) \ (((char *) a) + \ ! MAXALIGN(sizeof(ArrayType) + 2 * (sizeof(int) * (a)->ndim))) /* * The total array header size for an array of dimension n (in bytes). */ #define ARR_OVERHEAD(n) \ ! (MAXALIGN(sizeof(ArrayType) + 2 * (n) * sizeof(int))) /*------------------------------------------------------------------------ * Miscellaneous helper definitions and routines for arrayfuncs.c *------------------------------------------------------------------------ */ #define RETURN_NULL {*isNull = true; return(0); } #define NAME_LEN 30 #define MAX_BUFF_SIZE BLCKSZ diff -cr --new-file postgresql-6.5.1/src/include/utils/builtins.h postgresql-6.5.2/src/include/utils/builtins.h *** postgresql-6.5.1/src/include/utils/builtins.h Wed May 26 08:57:03 1999 --- postgresql-6.5.2/src/include/utils/builtins.h Mon Aug 2 01:25:24 1999 *************** *** 6,12 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: builtins.h,v 1.81 1999/05/26 12:57:03 momjian Exp $ * * NOTES * This should normally only be included by fmgr.h. --- 6,12 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: builtins.h,v 1.81.2.1 1999/08/02 05:25:24 scrappy Exp $ * * NOTES * This should normally only be included by fmgr.h. *************** *** 22,37 **** #ifndef BUILTINS_H #define BUILTINS_H ! #include ! #include ! #include ! #include ! #include ! #include ! #include ! #include ! #include ! #include /* * Defined in adt/ --- 22,35 ---- #ifndef BUILTINS_H #define BUILTINS_H ! #include "storage/itemptr.h" ! #include "utils/array.h" ! #include "utils/datetime.h" ! #include "utils/geo_decls.h" ! #include "utils/inet.h" ! #include "utils/int8.h" ! #include "utils/nabstime.h" ! #include "utils/numeric.h" /* * Defined in adt/ diff -cr --new-file postgresql-6.5.1/src/include/utils/datetime.h postgresql-6.5.2/src/include/utils/datetime.h *** postgresql-6.5.1/src/include/utils/datetime.h Sat Feb 13 18:22:16 1999 --- postgresql-6.5.2/src/include/utils/datetime.h Mon Aug 2 01:25:24 1999 *************** *** 6,19 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: datetime.h,v 1.7 1999/02/13 23:22:16 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef DATETIME_H #define DATETIME_H - - #include "utils/dt.h" typedef int32 DateADT; --- 6,17 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: datetime.h,v 1.7.2.1 1999/08/02 05:25:24 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef DATETIME_H #define DATETIME_H typedef int32 DateADT; diff -cr --new-file postgresql-6.5.1/src/include/utils/dt.h postgresql-6.5.2/src/include/utils/dt.h *** postgresql-6.5.1/src/include/utils/dt.h Tue May 25 12:14:53 1999 --- postgresql-6.5.2/src/include/utils/dt.h Mon Aug 2 01:25:24 1999 *************** *** 8,14 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: dt.h,v 1.40 1999/05/25 16:14:53 momjian Exp $ * *------------------------------------------------------------------------- */ --- 8,14 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: dt.h,v 1.40.2.1 1999/08/02 05:25:24 scrappy Exp $ * *------------------------------------------------------------------------- */ *************** *** 17,22 **** --- 17,23 ---- #include #include + #include /* * DateTime represents absolute time. diff -cr --new-file postgresql-6.5.1/src/include/utils/dynamic_loader.h postgresql-6.5.2/src/include/utils/dynamic_loader.h *** postgresql-6.5.1/src/include/utils/dynamic_loader.h Sat Feb 13 18:22:18 1999 --- postgresql-6.5.2/src/include/utils/dynamic_loader.h Mon Aug 2 01:25:24 1999 *************** *** 6,12 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: dynamic_loader.h,v 1.10 1999/02/13 23:22:18 momjian Exp $ * *------------------------------------------------------------------------- */ --- 6,12 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: dynamic_loader.h,v 1.10.2.1 1999/08/02 05:25:24 scrappy Exp $ * *------------------------------------------------------------------------- */ *************** *** 16,22 **** #include #include /* For MAXPATHLEN */ ! #include #ifdef MIN #undef MIN --- 16,23 ---- #include #include /* For MAXPATHLEN */ ! /* we need this include because port files use them */ ! #include "postgres.h" #ifdef MIN #undef MIN diff -cr --new-file postgresql-6.5.1/src/include/utils/elog.h postgresql-6.5.2/src/include/utils/elog.h *** postgresql-6.5.1/src/include/utils/elog.h Sat Feb 13 18:22:18 1999 --- postgresql-6.5.2/src/include/utils/elog.h Mon Aug 2 01:25:24 1999 *************** *** 6,12 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: elog.h,v 1.10 1999/02/13 23:22:18 momjian Exp $ * *------------------------------------------------------------------------- */ --- 6,12 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: elog.h,v 1.10.2.1 1999/08/02 05:25:24 scrappy Exp $ * *------------------------------------------------------------------------- */ *************** *** 29,35 **** #define ABORTX 0x4000 /* abort process after logging */ #endif - /***S*I***/ /* Increase this to be able to use postmaster -d 3 with complex * view definitions (which are transformed to very, very large INSERT statements * and if -d 3 is used the query string of these statements is printed using --- 29,34 ---- diff -cr --new-file postgresql-6.5.1/src/include/utils/fcache.h postgresql-6.5.2/src/include/utils/fcache.h *** postgresql-6.5.1/src/include/utils/fcache.h Sat Feb 13 18:22:19 1999 --- postgresql-6.5.2/src/include/utils/fcache.h Mon Aug 2 01:25:25 1999 *************** *** 6,19 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: fcache.h,v 1.8 1999/02/13 23:22:19 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef FCACHE_H #define FCACHE_H ! #include typedef struct --- 6,19 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: fcache.h,v 1.8.2.1 1999/08/02 05:25:25 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef FCACHE_H #define FCACHE_H ! #include "fmgr.h" typedef struct diff -cr --new-file postgresql-6.5.1/src/include/utils/fcache2.h postgresql-6.5.2/src/include/utils/fcache2.h *** postgresql-6.5.1/src/include/utils/fcache2.h Sat Feb 13 18:22:20 1999 --- postgresql-6.5.2/src/include/utils/fcache2.h Mon Aug 2 01:25:25 1999 *************** *** 6,19 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: fcache2.h,v 1.8 1999/02/13 23:22:20 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef FCACHE2_H #define FCACHE2_H ! #include extern void setFcache(Node *node, Oid foid, List *argList, ExprContext *econtext); --- 6,19 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: fcache2.h,v 1.8.2.1 1999/08/02 05:25:25 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef FCACHE2_H #define FCACHE2_H ! #include "nodes/execnodes.h" extern void setFcache(Node *node, Oid foid, List *argList, ExprContext *econtext); diff -cr --new-file postgresql-6.5.1/src/include/utils/inval.h postgresql-6.5.2/src/include/utils/inval.h *** postgresql-6.5.1/src/include/utils/inval.h Sat Feb 13 18:22:23 1999 --- postgresql-6.5.2/src/include/utils/inval.h Mon Aug 2 01:25:25 1999 *************** *** 6,20 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: inval.h,v 1.11 1999/02/13 23:22:23 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef INVAL_H #define INVAL_H ! #include ! #include extern void InitLocalInvalidateData(void); --- 6,19 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: inval.h,v 1.11.2.1 1999/08/02 05:25:25 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef INVAL_H #define INVAL_H ! #include "access/htup.h" extern void InitLocalInvalidateData(void); diff -cr --new-file postgresql-6.5.1/src/include/utils/lselect.h postgresql-6.5.2/src/include/utils/lselect.h *** postgresql-6.5.1/src/include/utils/lselect.h Sat Feb 13 18:22:24 1999 --- postgresql-6.5.2/src/include/utils/lselect.h Mon Aug 2 01:25:25 1999 *************** *** 6,23 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: lselect.h,v 1.12 1999/02/13 23:22:24 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef LSELECT_H #define LSELECT_H - #include - - #include "access/skey.h" - #include "access/tupdesc.h" - #include "access/htup.h" #include "utils/syscache.h" struct leftist --- 6,18 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: lselect.h,v 1.12.2.1 1999/08/02 05:25:25 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef LSELECT_H #define LSELECT_H #include "utils/syscache.h" struct leftist diff -cr --new-file postgresql-6.5.1/src/include/utils/lsyscache.h postgresql-6.5.2/src/include/utils/lsyscache.h *** postgresql-6.5.1/src/include/utils/lsyscache.h Sat Feb 13 18:22:24 1999 --- postgresql-6.5.2/src/include/utils/lsyscache.h Mon Aug 2 01:25:26 1999 *************** *** 6,20 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: lsyscache.h,v 1.16 1999/02/13 23:22:24 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef LSYSCACHE_H #define LSYSCACHE_H ! #include ! #include extern bool op_class(Oid oprno, int32 opclass, Oid amopid); extern char *get_attname(Oid relid, AttrNumber attnum); --- 6,19 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: lsyscache.h,v 1.16.2.1 1999/08/02 05:25:26 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef LSYSCACHE_H #define LSYSCACHE_H ! #include "access/htup.h" extern bool op_class(Oid oprno, int32 opclass, Oid amopid); extern char *get_attname(Oid relid, AttrNumber attnum); diff -cr --new-file postgresql-6.5.1/src/include/utils/memutils.h postgresql-6.5.2/src/include/utils/memutils.h *** postgresql-6.5.1/src/include/utils/memutils.h Thu Jun 17 11:15:59 1999 --- postgresql-6.5.2/src/include/utils/memutils.h Mon Aug 2 01:25:26 1999 *************** *** 15,21 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: memutils.h,v 1.28 1999/06/17 15:15:59 momjian Exp $ * * NOTES * some of the information in this file will be moved to --- 15,21 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: memutils.h,v 1.28.2.1 1999/08/02 05:25:26 scrappy Exp $ * * NOTES * some of the information in this file will be moved to *************** *** 26,31 **** --- 26,35 ---- #ifndef MEMUTILS_H #define MEMUTILS_H + /* + * This is not needed by this include file, but by almost every file + * that includes this file. + */ /* ---------------- * Alignment macros: align a length or address appropriately for a given type. diff -cr --new-file postgresql-6.5.1/src/include/utils/numeric.h postgresql-6.5.2/src/include/utils/numeric.h *** postgresql-6.5.1/src/include/utils/numeric.h Tue May 25 18:43:37 1999 --- postgresql-6.5.2/src/include/utils/numeric.h Mon Aug 2 01:25:26 1999 *************** *** 5,20 **** * * 1998 Jan Wieck * ! * $Header: /usr/local/cvsroot/pgsql/src/include/utils/numeric.h,v 1.6 1999/05/25 22:43:37 momjian Exp $ * * ---------- */ #ifndef _PG_NUMERIC_H_ #define _PG_NUMERIC_H_ - - #include "postgres.h" - /* ---------- * The hardcoded limits and defaults of the numeric data type --- 5,17 ---- * * 1998 Jan Wieck * ! * $Header: /usr/local/cvsroot/pgsql/src/include/utils/numeric.h,v 1.6.2.1 1999/08/02 05:25:26 scrappy Exp $ * * ---------- */ #ifndef _PG_NUMERIC_H_ #define _PG_NUMERIC_H_ /* ---------- * The hardcoded limits and defaults of the numeric data type diff -cr --new-file postgresql-6.5.1/src/include/utils/portal.h postgresql-6.5.2/src/include/utils/portal.h *** postgresql-6.5.1/src/include/utils/portal.h Sat Jun 12 10:07:32 1999 --- postgresql-6.5.2/src/include/utils/portal.h Thu Sep 9 12:29:10 1999 *************** *** 6,12 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: portal.h,v 1.15 1999/06/12 14:07:32 momjian Exp $ * *------------------------------------------------------------------------- */ --- 6,12 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: portal.h,v 1.15.2.2 1999/09/09 16:29:10 tgl Exp $ * *------------------------------------------------------------------------- */ *************** *** 25,34 **** #ifndef PORTAL_H #define PORTAL_H ! #include ! #include ! #include ! #include typedef struct PortalBlockData { --- 25,32 ---- #ifndef PORTAL_H #define PORTAL_H ! #include "executor/execdesc.h" ! #include "nodes/memnodes.h" typedef struct PortalBlockData { *************** *** 77,82 **** --- 75,81 ---- extern void PortalDestroy(Portal *portalP); extern void StartPortalAllocMode(AllocMode mode, Size limit); extern void EndPortalAllocMode(void); + extern void PortalResetHeapMemory(Portal portal); extern PortalVariableMemory PortalGetVariableMemory(Portal portal); extern PortalHeapMemory PortalGetHeapMemory(Portal portal); diff -cr --new-file postgresql-6.5.1/src/include/utils/psort.h postgresql-6.5.2/src/include/utils/psort.h *** postgresql-6.5.1/src/include/utils/psort.h Tue May 25 12:14:57 1999 --- postgresql-6.5.2/src/include/utils/psort.h Fri Jul 30 13:07:22 1999 *************** *** 6,22 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: psort.h,v 1.19 1999/05/25 16:14:57 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef PSORT_H #define PSORT_H - #include "storage/fd.h" #include "access/relscan.h" - #include "utils/lselect.h" #include "nodes/plannodes.h" #define MAXTAPES 7 /* See Knuth Fig. 70, p273 */ --- 6,22 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: psort.h,v 1.19.2.1 1999/07/30 17:07:22 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef PSORT_H #define PSORT_H #include "access/relscan.h" #include "nodes/plannodes.h" + #include "storage/fd.h" + #include "utils/lselect.h" #define MAXTAPES 7 /* See Knuth Fig. 70, p273 */ *************** *** 66,72 **** } Psortstate; #ifdef EBUG - #include "utils/elog.h" #include "storage/buf.h" #include "storage/bufmgr.h" --- 66,71 ---- diff -cr --new-file postgresql-6.5.1/src/include/utils/rel.h postgresql-6.5.2/src/include/utils/rel.h *** postgresql-6.5.1/src/include/utils/rel.h Tue May 25 12:14:57 1999 --- postgresql-6.5.2/src/include/utils/rel.h Fri Jul 30 13:07:22 1999 *************** *** 6,24 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: rel.h,v 1.23 1999/05/25 16:14:57 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef REL_H #define REL_H ! #include ! #include ! #include ! #include ! #include ! #include typedef struct Trigger { --- 6,24 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: rel.h,v 1.23.2.1 1999/07/30 17:07:22 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef REL_H #define REL_H ! #include "access/strat.h" ! #include "access/tupdesc.h" ! #include "catalog/pg_am.h" ! #include "catalog/pg_class.h" ! #include "rewrite/prs2lock.h" ! #include "storage/fd.h" typedef struct Trigger { diff -cr --new-file postgresql-6.5.1/src/include/utils/rel2.h postgresql-6.5.2/src/include/utils/rel2.h *** postgresql-6.5.1/src/include/utils/rel2.h Sat Feb 13 18:22:30 1999 --- postgresql-6.5.2/src/include/utils/rel2.h Fri Jul 30 13:07:22 1999 *************** *** 6,19 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: rel2.h,v 1.8 1999/02/13 23:22:30 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef TMP_REL2_H #define TMP_REL2_H ! #include extern IndexStrategy RelationGetIndexStrategy(Relation relation); --- 6,19 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: rel2.h,v 1.8.2.1 1999/07/30 17:07:22 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef TMP_REL2_H #define TMP_REL2_H ! #include "utils/rel.h" extern IndexStrategy RelationGetIndexStrategy(Relation relation); diff -cr --new-file postgresql-6.5.1/src/include/utils/relcache.h postgresql-6.5.2/src/include/utils/relcache.h *** postgresql-6.5.1/src/include/utils/relcache.h Sat May 1 15:09:43 1999 --- postgresql-6.5.2/src/include/utils/relcache.h Fri Jul 30 13:07:23 1999 *************** *** 6,19 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: relcache.h,v 1.12 1999/05/01 19:09:43 tgl Exp $ * *------------------------------------------------------------------------- */ #ifndef RELCACHE_H #define RELCACHE_H ! #include /* * relation lookup routines --- 6,19 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: relcache.h,v 1.12.2.1 1999/07/30 17:07:23 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef RELCACHE_H #define RELCACHE_H ! #include "utils/rel.h" /* * relation lookup routines diff -cr --new-file postgresql-6.5.1/src/include/utils/temprel.h postgresql-6.5.2/src/include/utils/temprel.h *** postgresql-6.5.1/src/include/utils/temprel.h Tue May 25 12:14:57 1999 --- postgresql-6.5.2/src/include/utils/temprel.h Mon Aug 2 01:25:26 1999 *************** *** 6,12 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: temprel.h,v 1.3 1999/05/25 16:14:57 momjian Exp $ * *------------------------------------------------------------------------- */ --- 6,12 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: temprel.h,v 1.3.2.1 1999/08/02 05:25:26 scrappy Exp $ * *------------------------------------------------------------------------- */ *************** *** 14,20 **** #define TEMPREL_H #include "access/htup.h" - #include "access/attnum.h" void create_temp_relation(char *relname, HeapTuple pg_class_tuple); void remove_all_temp_relations(void); --- 14,19 ---- diff -cr --new-file postgresql-6.5.1/src/include/utils/tqual.h postgresql-6.5.2/src/include/utils/tqual.h *** postgresql-6.5.1/src/include/utils/tqual.h Tue May 25 18:43:39 1999 --- postgresql-6.5.2/src/include/utils/tqual.h Mon Aug 2 01:25:26 1999 *************** *** 7,20 **** * * Copyright (c) 1994, Regents of the University of California * ! * $Id: tqual.h,v 1.22 1999/05/25 22:43:39 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef TQUAL_H #define TQUAL_H ! #include typedef struct SnapshotData { --- 7,21 ---- * * Copyright (c) 1994, Regents of the University of California * ! * $Id: tqual.h,v 1.22.2.1 1999/08/02 05:25:26 scrappy Exp $ * *------------------------------------------------------------------------- */ #ifndef TQUAL_H #define TQUAL_H ! #include "access/htup.h" ! #include "access/xact.h" typedef struct SnapshotData { diff -cr --new-file postgresql-6.5.1/src/include/utils/trace.h postgresql-6.5.2/src/include/utils/trace.h *** postgresql-6.5.1/src/include/utils/trace.h Sat Jun 12 10:07:33 1999 --- postgresql-6.5.2/src/include/utils/trace.h Mon Aug 2 01:25:27 1999 *************** *** 12,23 **** #ifndef TRACE_H #define TRACE_H - #include #include #include - #include - - #include "postgres.h" #ifdef ELOG_TIMESTAMPS char *tprintf_timestamp(void); --- 12,19 ---- diff -cr --new-file postgresql-6.5.1/src/include/version.h.in postgresql-6.5.2/src/include/version.h.in *** postgresql-6.5.1/src/include/version.h.in Sat Jul 10 12:28:01 1999 --- postgresql-6.5.2/src/include/version.h.in Sun Sep 12 20:13:19 1999 *************** *** 4,10 **** * this file contains the interface to version.c. * Also some parameters. * ! * $Header: /usr/local/cvsroot/pgsql/src/include/version.h.in,v 1.6 1999/07/10 16:28:01 momjian Exp $ * *------------------------------------------------------------------------- */ --- 4,10 ---- * this file contains the interface to version.c. * Also some parameters. * ! * $Header: /usr/local/cvsroot/pgsql/src/include/version.h.in,v 1.6.2.1 1999/09/13 00:13:19 momjian Exp $ * *------------------------------------------------------------------------- */ *************** *** 16,22 **** #define PG_RELEASE "6" #define PG_VERSION "5" ! #define PG_SUBVERSION "1" #define PG_VERFILE "PG_VERSION" --- 16,22 ---- #define PG_RELEASE "6" #define PG_VERSION "5" ! #define PG_SUBVERSION "2" #define PG_VERFILE "PG_VERSION" diff -cr --new-file postgresql-6.5.1/src/interfaces/Makefile postgresql-6.5.2/src/interfaces/Makefile *** postgresql-6.5.1/src/interfaces/Makefile Fri May 21 15:03:48 1999 --- postgresql-6.5.2/src/interfaces/Makefile Mon Aug 16 16:10:25 1999 *************** *** 7,13 **** # # # IDENTIFICATION ! # $Header: /usr/local/cvsroot/pgsql/src/interfaces/Makefile,v 1.23 1999/05/21 19:03:48 momjian Exp $ # #------------------------------------------------------------------------- --- 7,13 ---- # # # IDENTIFICATION ! # $Header: /usr/local/cvsroot/pgsql/src/interfaces/Makefile,v 1.23.2.1 1999/08/16 20:10:25 momjian Exp $ # #------------------------------------------------------------------------- *************** *** 46,56 **** endif perl5/Makefile: perl5/Makefile.PL ! cd perl5 && perl Makefile.PL install-perl5: perl5/Makefile $(MAKE) -C perl5 clean ! cd perl5 && POSTGRES_HOME="$(POSTGRESDIR)" perl Makefile.PL $(MAKE) -C perl5 all @if [ -w `sed -n -e 's/^ *INSTALLSITELIB *= *//p' perl5/Makefile` ]; then \ $(MAKE) $(MFLAGS) -C perl5 install; \ --- 46,56 ---- endif perl5/Makefile: perl5/Makefile.PL ! cd perl5 && perl5 Makefile.PL install-perl5: perl5/Makefile $(MAKE) -C perl5 clean ! cd perl5 && POSTGRES_HOME="$(POSTGRESDIR)" perl5 Makefile.PL $(MAKE) -C perl5 all @if [ -w `sed -n -e 's/^ *INSTALLSITELIB *= *//p' perl5/Makefile` ]; then \ $(MAKE) $(MFLAGS) -C perl5 install; \ diff -cr --new-file postgresql-6.5.1/src/interfaces/ecpg/preproc/pgc.c postgresql-6.5.2/src/interfaces/ecpg/preproc/pgc.c *** postgresql-6.5.1/src/interfaces/ecpg/preproc/pgc.c Tue Jul 20 08:28:03 1999 --- postgresql-6.5.2/src/interfaces/ecpg/preproc/pgc.c Wed Sep 15 20:23:41 1999 *************** *** 1,7 **** /* A lexical scanner generated by flex */ /* Scanner skeleton version: ! * $Header: /home/ncvs/src/usr.bin/lex/skel.c,v 1.2 1996/12/14 05:48:48 steve Exp $ */ #define FLEX_SCANNER --- 1,7 ---- /* A lexical scanner generated by flex */ /* Scanner skeleton version: ! * $FreeBSD: src/usr.bin/lex/skel.c,v 1.2.2.1 1999/08/29 15:29:33 peter Exp $ */ #define FLEX_SCANNER diff -cr --new-file postgresql-6.5.1/src/interfaces/ecpg/preproc/preproc.c postgresql-6.5.2/src/interfaces/ecpg/preproc/preproc.c *** postgresql-6.5.1/src/interfaces/ecpg/preproc/preproc.c Tue Jul 20 08:28:03 1999 --- postgresql-6.5.2/src/interfaces/ecpg/preproc/preproc.c Wed Sep 15 20:23:40 1999 *************** *** 1,300 **** /* A Bison parser, made from preproc.y ! by GNU Bison version 1.25 ! */ #define YYBISON 1 /* Identify Bison output. */ ! #define SQL_AT 258 ! #define SQL_AUTOCOMMIT 259 ! #define SQL_BOOL 260 ! #define SQL_BREAK 261 ! #define SQL_CALL 262 ! #define SQL_CONNECT 263 ! #define SQL_CONNECTION 264 ! #define SQL_CONTINUE 265 ! #define SQL_DEALLOCATE 266 ! #define SQL_DISCONNECT 267 ! #define SQL_ENUM 268 ! #define SQL_FOUND 269 ! #define SQL_FREE 270 ! #define SQL_GO 271 ! #define SQL_GOTO 272 ! #define SQL_IDENTIFIED 273 ! #define SQL_IMMEDIATE 274 ! #define SQL_INDICATOR 275 ! #define SQL_INT 276 ! #define SQL_LONG 277 ! #define SQL_OFF 278 ! #define SQL_OPEN 279 ! #define SQL_PREPARE 280 ! #define SQL_RELEASE 281 ! #define SQL_REFERENCE 282 ! #define SQL_SECTION 283 ! #define SQL_SHORT 284 ! #define SQL_SIGNED 285 ! #define SQL_SQLERROR 286 ! #define SQL_SQLPRINT 287 ! #define SQL_SQLWARNING 288 ! #define SQL_START 289 ! #define SQL_STOP 290 ! #define SQL_STRUCT 291 ! #define SQL_UNSIGNED 292 ! #define SQL_VAR 293 ! #define SQL_WHENEVER 294 ! #define S_ANYTHING 295 ! #define S_AUTO 296 ! #define S_BOOL 297 ! #define S_CHAR 298 ! #define S_CONST 299 ! #define S_DOUBLE 300 ! #define S_ENUM 301 ! #define S_EXTERN 302 ! #define S_FLOAT 303 ! #define S_INT 304 ! #define S 305 ! #define S_LONG 306 ! #define S_REGISTER 307 ! #define S_SHORT 308 ! #define S_SIGNED 309 ! #define S_STATIC 310 ! #define S_STRUCT 311 ! #define S_UNION 312 ! #define S_UNSIGNED 313 ! #define S_VARCHAR 314 ! #define TYPECAST 315 ! #define ABSOLUTE 316 ! #define ACTION 317 ! #define ADD 318 ! #define ALL 319 ! #define ALTER 320 ! #define AND 321 ! #define ANY 322 ! #define AS 323 ! #define ASC 324 ! #define BEGIN_TRANS 325 ! #define BETWEEN 326 ! #define BOTH 327 ! #define BY 328 ! #define CASCADE 329 ! #define CASE 330 ! #define CAST 331 ! #define CHAR 332 ! #define CHARACTER 333 ! #define CHECK 334 ! #define CLOSE 335 ! #define COALESCE 336 ! #define COLLATE 337 ! #define COLUMN 338 ! #define COMMIT 339 ! #define CONSTRAINT 340 ! #define CREATE 341 ! #define CROSS 342 ! #define CURRENT 343 ! #define CURRENT_DATE 344 ! #define CURRENT_TIME 345 ! #define CURRENT_TIMESTAMP 346 ! #define CURRENT_USER 347 ! #define CURSOR 348 ! #define DAY_P 349 ! #define DECIMAL 350 ! #define DECLARE 351 ! #define DEFAULT 352 ! #define DELETE 353 ! #define DESC 354 ! #define DISTINCT 355 ! #define DOUBLE 356 ! #define DROP 357 ! #define ELSE 358 ! #define END_TRANS 359 ! #define EXCEPT 360 ! #define EXECUTE 361 ! #define EXISTS 362 ! #define EXTRACT 363 ! #define FALSE_P 364 ! #define FETCH 365 ! #define FLOAT 366 ! #define FOR 367 ! #define FOREIGN 368 ! #define FROM 369 ! #define FULL 370 ! #define GLOBAL 371 ! #define GRANT 372 ! #define GROUP 373 ! #define HAVING 374 ! #define HOUR_P 375 ! #define IN 376 ! #define INNER_P 377 ! #define INSENSITIVE 378 ! #define INSERT 379 ! #define INTERSECT 380 ! #define INTERVAL 381 ! #define INTO 382 ! #define IS 383 ! #define ISOLATION 384 ! #define JOIN 385 ! #define KEY 386 ! #define LANGUAGE 387 ! #define LEADING 388 ! #define LEFT 389 ! #define LEVEL 390 ! #define LIKE 391 ! #define LOCAL 392 ! #define MATCH 393 ! #define MINUTE_P 394 ! #define MONTH_P 395 ! #define NAMES 396 ! #define NATIONAL 397 ! #define NATURAL 398 ! #define NCHAR 399 ! #define NEXT 400 ! #define NO 401 ! #define NOT 402 ! #define NULLIF 403 ! #define NULL_P 404 ! #define NUMERIC 405 ! #define OF 406 ! #define ON 407 ! #define ONLY 408 ! #define OPTION 409 ! #define OR 410 ! #define ORDER 411 ! #define OUTER_P 412 ! #define PARTIAL 413 ! #define POSITION 414 ! #define PRECISION 415 ! #define PRIMARY 416 ! #define PRIOR 417 ! #define PRIVILEGES 418 ! #define PROCEDURE 419 ! #define PUBLIC 420 ! #define READ 421 ! #define REFERENCES 422 ! #define RELATIVE 423 ! #define REVOKE 424 ! #define RIGHT 425 ! #define ROLLBACK 426 ! #define SCROLL 427 ! #define SECOND_P 428 ! #define SELECT 429 ! #define SET 430 ! #define SUBSTRING 431 ! #define TABLE 432 ! #define TEMP 433 ! #define TEMPORARY 434 ! #define THEN 435 ! #define TIME 436 ! #define TIMESTAMP 437 ! #define TIMEZONE_HOUR 438 ! #define TIMEZONE_MINUTE 439 ! #define TO 440 ! #define TRAILING 441 ! #define TRANSACTION 442 ! #define TRIM 443 ! #define TRUE_P 444 ! #define UNION 445 ! #define UNIQUE 446 ! #define UPDATE 447 ! #define USER 448 ! #define USING 449 ! #define VALUES 450 ! #define VARCHAR 451 ! #define VARYING 452 ! #define VIEW 453 ! #define WHEN 454 ! #define WHERE 455 ! #define WITH 456 ! #define WORK 457 ! #define YEAR_P 458 ! #define ZONE 459 ! #define TRIGGER 460 ! #define COMMITTED 461 ! #define SERIALIZABLE 462 ! #define TYPE_P 463 ! #define ABORT_TRANS 464 ! #define ACCESS 465 ! #define AFTER 466 ! #define AGGREGATE 467 ! #define ANALYZE 468 ! #define BACKWARD 469 ! #define BEFORE 470 ! #define BINARY 471 ! #define CACHE 472 ! #define CLUSTER 473 ! #define COPY 474 ! #define CREATEDB 475 ! #define CREATEUSER 476 ! #define CYCLE 477 ! #define DATABASE 478 ! #define DELIMITERS 479 ! #define DO 480 ! #define EACH 481 ! #define ENCODING 482 ! #define EXCLUSIVE 483 ! #define EXPLAIN 484 ! #define EXTEND 485 ! #define FORWARD 486 ! #define FUNCTION 487 ! #define HANDLER 488 ! #define INCREMENT 489 ! #define INDEX 490 ! #define INHERITS 491 ! #define INSTEAD 492 ! #define ISNULL 493 ! #define LANCOMPILER 494 ! #define LIMIT 495 ! #define LISTEN 496 ! #define UNLISTEN 497 ! #define LOAD 498 ! #define LOCATION 499 ! #define LOCK_P 500 ! #define MAXVALUE 501 ! #define MINVALUE 502 ! #define MODE 503 ! #define MOVE 504 ! #define NEW 505 ! #define NOCREATEDB 506 ! #define NOCREATEUSER 507 ! #define NONE 508 ! #define NOTHING 509 ! #define NOTIFY 510 ! #define NOTNULL 511 ! #define OFFSET 512 ! #define OIDS 513 ! #define OPERATOR 514 ! #define PASSWORD 515 ! #define PROCEDURAL 516 ! #define RENAME 517 ! #define RESET 518 ! #define RETURNS 519 ! #define ROW 520 ! #define RULE 521 ! #define SERIAL 522 ! #define SEQUENCE 523 ! #define SETOF 524 ! #define SHARE 525 ! #define SHOW 526 ! #define START 527 ! #define STATEMENT 528 ! #define STDIN 529 ! #define STDOUT 530 ! #define TRUSTED 531 ! #define UNTIL 532 ! #define VACUUM 533 ! #define VALID 534 ! #define VERBOSE 535 ! #define VERSION 536 ! #define IDENT 537 ! #define SCONST 538 ! #define Op 539 ! #define CSTRING 540 ! #define CVARIABLE 541 ! #define CPP_LINE 542 ! #define ICONST 543 ! #define PARAM 544 ! #define FCONST 545 ! #define OP 546 ! #define UMINUS 547 #line 2 "preproc.y" --- 1,299 ---- /* A Bison parser, made from preproc.y ! by GNU Bison version 1.28 */ #define YYBISON 1 /* Identify Bison output. */ ! #define SQL_AT 257 ! #define SQL_AUTOCOMMIT 258 ! #define SQL_BOOL 259 ! #define SQL_BREAK 260 ! #define SQL_CALL 261 ! #define SQL_CONNECT 262 ! #define SQL_CONNECTION 263 ! #define SQL_CONTINUE 264 ! #define SQL_DEALLOCATE 265 ! #define SQL_DISCONNECT 266 ! #define SQL_ENUM 267 ! #define SQL_FOUND 268 ! #define SQL_FREE 269 ! #define SQL_GO 270 ! #define SQL_GOTO 271 ! #define SQL_IDENTIFIED 272 ! #define SQL_IMMEDIATE 273 ! #define SQL_INDICATOR 274 ! #define SQL_INT 275 ! #define SQL_LONG 276 ! #define SQL_OFF 277 ! #define SQL_OPEN 278 ! #define SQL_PREPARE 279 ! #define SQL_RELEASE 280 ! #define SQL_REFERENCE 281 ! #define SQL_SECTION 282 ! #define SQL_SHORT 283 ! #define SQL_SIGNED 284 ! #define SQL_SQLERROR 285 ! #define SQL_SQLPRINT 286 ! #define SQL_SQLWARNING 287 ! #define SQL_START 288 ! #define SQL_STOP 289 ! #define SQL_STRUCT 290 ! #define SQL_UNSIGNED 291 ! #define SQL_VAR 292 ! #define SQL_WHENEVER 293 ! #define S_ANYTHING 294 ! #define S_AUTO 295 ! #define S_BOOL 296 ! #define S_CHAR 297 ! #define S_CONST 298 ! #define S_DOUBLE 299 ! #define S_ENUM 300 ! #define S_EXTERN 301 ! #define S_FLOAT 302 ! #define S_INT 303 ! #define S 304 ! #define S_LONG 305 ! #define S_REGISTER 306 ! #define S_SHORT 307 ! #define S_SIGNED 308 ! #define S_STATIC 309 ! #define S_STRUCT 310 ! #define S_UNION 311 ! #define S_UNSIGNED 312 ! #define S_VARCHAR 313 ! #define TYPECAST 314 ! #define ABSOLUTE 315 ! #define ACTION 316 ! #define ADD 317 ! #define ALL 318 ! #define ALTER 319 ! #define AND 320 ! #define ANY 321 ! #define AS 322 ! #define ASC 323 ! #define BEGIN_TRANS 324 ! #define BETWEEN 325 ! #define BOTH 326 ! #define BY 327 ! #define CASCADE 328 ! #define CASE 329 ! #define CAST 330 ! #define CHAR 331 ! #define CHARACTER 332 ! #define CHECK 333 ! #define CLOSE 334 ! #define COALESCE 335 ! #define COLLATE 336 ! #define COLUMN 337 ! #define COMMIT 338 ! #define CONSTRAINT 339 ! #define CREATE 340 ! #define CROSS 341 ! #define CURRENT 342 ! #define CURRENT_DATE 343 ! #define CURRENT_TIME 344 ! #define CURRENT_TIMESTAMP 345 ! #define CURRENT_USER 346 ! #define CURSOR 347 ! #define DAY_P 348 ! #define DECIMAL 349 ! #define DECLARE 350 ! #define DEFAULT 351 ! #define DELETE 352 ! #define DESC 353 ! #define DISTINCT 354 ! #define DOUBLE 355 ! #define DROP 356 ! #define ELSE 357 ! #define END_TRANS 358 ! #define EXCEPT 359 ! #define EXECUTE 360 ! #define EXISTS 361 ! #define EXTRACT 362 ! #define FALSE_P 363 ! #define FETCH 364 ! #define FLOAT 365 ! #define FOR 366 ! #define FOREIGN 367 ! #define FROM 368 ! #define FULL 369 ! #define GLOBAL 370 ! #define GRANT 371 ! #define GROUP 372 ! #define HAVING 373 ! #define HOUR_P 374 ! #define IN 375 ! #define INNER_P 376 ! #define INSENSITIVE 377 ! #define INSERT 378 ! #define INTERSECT 379 ! #define INTERVAL 380 ! #define INTO 381 ! #define IS 382 ! #define ISOLATION 383 ! #define JOIN 384 ! #define KEY 385 ! #define LANGUAGE 386 ! #define LEADING 387 ! #define LEFT 388 ! #define LEVEL 389 ! #define LIKE 390 ! #define LOCAL 391 ! #define MATCH 392 ! #define MINUTE_P 393 ! #define MONTH_P 394 ! #define NAMES 395 ! #define NATIONAL 396 ! #define NATURAL 397 ! #define NCHAR 398 ! #define NEXT 399 ! #define NO 400 ! #define NOT 401 ! #define NULLIF 402 ! #define NULL_P 403 ! #define NUMERIC 404 ! #define OF 405 ! #define ON 406 ! #define ONLY 407 ! #define OPTION 408 ! #define OR 409 ! #define ORDER 410 ! #define OUTER_P 411 ! #define PARTIAL 412 ! #define POSITION 413 ! #define PRECISION 414 ! #define PRIMARY 415 ! #define PRIOR 416 ! #define PRIVILEGES 417 ! #define PROCEDURE 418 ! #define PUBLIC 419 ! #define READ 420 ! #define REFERENCES 421 ! #define RELATIVE 422 ! #define REVOKE 423 ! #define RIGHT 424 ! #define ROLLBACK 425 ! #define SCROLL 426 ! #define SECOND_P 427 ! #define SELECT 428 ! #define SET 429 ! #define SUBSTRING 430 ! #define TABLE 431 ! #define TEMP 432 ! #define TEMPORARY 433 ! #define THEN 434 ! #define TIME 435 ! #define TIMESTAMP 436 ! #define TIMEZONE_HOUR 437 ! #define TIMEZONE_MINUTE 438 ! #define TO 439 ! #define TRAILING 440 ! #define TRANSACTION 441 ! #define TRIM 442 ! #define TRUE_P 443 ! #define UNION 444 ! #define UNIQUE 445 ! #define UPDATE 446 ! #define USER 447 ! #define USING 448 ! #define VALUES 449 ! #define VARCHAR 450 ! #define VARYING 451 ! #define VIEW 452 ! #define WHEN 453 ! #define WHERE 454 ! #define WITH 455 ! #define WORK 456 ! #define YEAR_P 457 ! #define ZONE 458 ! #define TRIGGER 459 ! #define COMMITTED 460 ! #define SERIALIZABLE 461 ! #define TYPE_P 462 ! #define ABORT_TRANS 463 ! #define ACCESS 464 ! #define AFTER 465 ! #define AGGREGATE 466 ! #define ANALYZE 467 ! #define BACKWARD 468 ! #define BEFORE 469 ! #define BINARY 470 ! #define CACHE 471 ! #define CLUSTER 472 ! #define COPY 473 ! #define CREATEDB 474 ! #define CREATEUSER 475 ! #define CYCLE 476 ! #define DATABASE 477 ! #define DELIMITERS 478 ! #define DO 479 ! #define EACH 480 ! #define ENCODING 481 ! #define EXCLUSIVE 482 ! #define EXPLAIN 483 ! #define EXTEND 484 ! #define FORWARD 485 ! #define FUNCTION 486 ! #define HANDLER 487 ! #define INCREMENT 488 ! #define INDEX 489 ! #define INHERITS 490 ! #define INSTEAD 491 ! #define ISNULL 492 ! #define LANCOMPILER 493 ! #define LIMIT 494 ! #define LISTEN 495 ! #define UNLISTEN 496 ! #define LOAD 497 ! #define LOCATION 498 ! #define LOCK_P 499 ! #define MAXVALUE 500 ! #define MINVALUE 501 ! #define MODE 502 ! #define MOVE 503 ! #define NEW 504 ! #define NOCREATEDB 505 ! #define NOCREATEUSER 506 ! #define NONE 507 ! #define NOTHING 508 ! #define NOTIFY 509 ! #define NOTNULL 510 ! #define OFFSET 511 ! #define OIDS 512 ! #define OPERATOR 513 ! #define PASSWORD 514 ! #define PROCEDURAL 515 ! #define RENAME 516 ! #define RESET 517 ! #define RETURNS 518 ! #define ROW 519 ! #define RULE 520 ! #define SERIAL 521 ! #define SEQUENCE 522 ! #define SETOF 523 ! #define SHARE 524 ! #define SHOW 525 ! #define START 526 ! #define STATEMENT 527 ! #define STDIN 528 ! #define STDOUT 529 ! #define TRUSTED 530 ! #define UNTIL 531 ! #define VACUUM 532 ! #define VALID 533 ! #define VERBOSE 534 ! #define VERSION 535 ! #define IDENT 536 ! #define SCONST 537 ! #define Op 538 ! #define CSTRING 539 ! #define CVARIABLE 540 ! #define CPP_LINE 541 ! #define ICONST 542 ! #define PARAM 543 ! #define FCONST 544 ! #define OP 545 ! #define UMINUS 546 #line 2 "preproc.y" *************** *** 970,976 **** #define YYFLAG -32768 #define YYNTBASE 313 ! #define YYTRANSLATE(x) ((unsigned)(x) <= 548 ? yytranslate[x] : 683) static const short yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, --- 969,975 ---- #define YYFLAG -32768 #define YYNTBASE 313 ! #define YYTRANSLATE(x) ((unsigned)(x) <= 547 ? yytranslate[x] : 683) static const short yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, *************** *** 998,1033 **** 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, ! 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, ! 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, ! 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, ! 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, ! 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, ! 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, ! 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ! 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, ! 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, ! 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, ! 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, ! 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, ! 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, ! 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, ! 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, ! 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, ! 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, ! 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, ! 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, ! 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, ! 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, ! 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, ! 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, ! 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, ! 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, ! 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, ! 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, ! 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, ! 286, 287, 288, 289, 290, 291, 303, 312 }; #if YYDEBUG != 0 --- 997,1032 ---- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 1, 3, 4, 5, 6, ! 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, ! 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, ! 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, ! 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, ! 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, ! 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, ! 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ! 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, ! 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, ! 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, ! 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, ! 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, ! 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, ! 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, ! 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, ! 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, ! 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, ! 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, ! 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, ! 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, ! 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, ! 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, ! 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, ! 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, ! 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, ! 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, ! 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, ! 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, ! 287, 288, 289, 290, 291, 303, 312 }; #if YYDEBUG != 0 *************** *** 8977,8982 **** --- 8976,8982 ---- }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/share/misc/bison.simple" + /* This file comes from bison-1.28. */ /* Skeleton output parser for bison, Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. *************** *** 8993,9038 **** You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software ! Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* As a special exception, when this file is copied by Bison into a Bison output file, you may use that output file without restriction. This special exception was added by the Free Software Foundation in version 1.24 of Bison. */ ! #ifndef alloca #ifdef __GNUC__ #define alloca __builtin_alloca #else /* not GNU C. */ ! #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) #include #else /* not sparc */ ! #if defined (MSDOS) && !defined (__TURBOC__) #include #else /* not MSDOS, or __TURBOC__ */ #if defined(_AIX) ! #include #pragma alloca ! #else /* not MSDOS, __TURBOC__, or _AIX */ ! #ifdef __hpux ! #ifdef __cplusplus ! extern "C" { ! void *alloca (unsigned int); ! }; ! #else /* not __cplusplus */ ! void *alloca (); ! #endif /* not __cplusplus */ #endif /* __hpux */ #endif /* not _AIX */ #endif /* not MSDOS, or __TURBOC__ */ ! #endif /* not sparc. */ ! #endif /* not GNU C. */ ! #endif /* alloca not defined. */ ! /* This is the parser code that is written into each bison parser ! when the %semantic_parser declaration is not specified in the grammar. ! It was written by Richard Stallman by simplifying the hairy parser ! used when %semantic_parser is specified. */ /* Note: there must be only one dollar sign in this file. It is replaced by the list of actions, each action --- 8993,9058 ---- You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software ! Foundation, Inc., 59 Temple Place - Suite 330, ! Boston, MA 02111-1307, USA. */ /* As a special exception, when this file is copied by Bison into a Bison output file, you may use that output file without restriction. This special exception was added by the Free Software Foundation in version 1.24 of Bison. */ ! /* This is the parser code that is written into each bison parser ! when the %semantic_parser declaration is not specified in the grammar. ! It was written by Richard Stallman by simplifying the hairy parser ! used when %semantic_parser is specified. */ ! ! #ifndef YYSTACK_USE_ALLOCA ! #ifdef alloca ! #define YYSTACK_USE_ALLOCA ! #else /* alloca not defined */ #ifdef __GNUC__ + #define YYSTACK_USE_ALLOCA #define alloca __builtin_alloca #else /* not GNU C. */ ! #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) ! #define YYSTACK_USE_ALLOCA #include #else /* not sparc */ ! /* We think this test detects Watcom and Microsoft C. */ ! /* This used to test MSDOS, but that is a bad idea ! since that symbol is in the user namespace. */ ! #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) ! #if 0 /* No need for malloc.h, which pollutes the namespace; ! instead, just don't use alloca. */ #include + #endif #else /* not MSDOS, or __TURBOC__ */ #if defined(_AIX) ! /* I don't know what this was needed for, but it pollutes the namespace. ! So I turned it off. rms, 2 May 1997. */ ! /* #include */ #pragma alloca ! #define YYSTACK_USE_ALLOCA ! #else /* not MSDOS, or __TURBOC__, or _AIX */ ! #if 0 ! #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up, ! and on HPUX 10. Eventually we can turn this on. */ ! #define YYSTACK_USE_ALLOCA ! #define alloca __builtin_alloca #endif /* __hpux */ + #endif #endif /* not _AIX */ #endif /* not MSDOS, or __TURBOC__ */ ! #endif /* not sparc */ ! #endif /* not GNU C */ ! #endif /* alloca not defined */ ! #endif /* YYSTACK_USE_ALLOCA not defined */ ! #ifdef YYSTACK_USE_ALLOCA ! #define YYSTACK_ALLOC alloca ! #else ! #define YYSTACK_ALLOC malloc ! #endif /* Note: there must be only one dollar sign in this file. It is replaced by the list of actions, each action *************** *** 9042,9049 **** #define yyclearin (yychar = YYEMPTY) #define YYEMPTY -2 #define YYEOF 0 ! #define YYACCEPT return(0) ! #define YYABORT return(1) #define YYERROR goto yyerrlab1 /* Like YYERROR except do call yyerror. This remains here temporarily to ease the --- 9062,9069 ---- #define yyclearin (yychar = YYEMPTY) #define YYEMPTY -2 #define YYEOF 0 ! #define YYACCEPT goto yyacceptlab ! #define YYABORT goto yyabortlab #define YYERROR goto yyerrlab1 /* Like YYERROR except do call yyerror. This remains here temporarily to ease the *************** *** 9124,9135 **** #ifndef YYMAXDEPTH #define YYMAXDEPTH 10000 #endif - - /* Prevent warning if -Wstrict-prototypes. */ - #ifdef __GNUC__ - int yyparse (void); - #endif #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) #else /* not GNU C or C++ */ --- 9144,9155 ---- #ifndef YYMAXDEPTH #define YYMAXDEPTH 10000 #endif + /* Define __yy_memcpy. Note that the size argument + should be passed with type unsigned int, because that is what the non-GCC + definitions require. With GCC, __builtin_memcpy takes an arg + of type size_t, but it can handle unsigned int. */ + #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) #else /* not GNU C or C++ */ *************** *** 9141,9147 **** __yy_memcpy (to, from, count) char *to; char *from; ! int count; { register char *f = from; register char *t = to; --- 9161,9167 ---- __yy_memcpy (to, from, count) char *to; char *from; ! unsigned int count; { register char *f = from; register char *t = to; *************** *** 9156,9165 **** /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void ! __yy_memcpy (char *to, char *from, int count) { - register char *f = from; register char *t = to; register int i = count; while (i-- > 0) --- 9176,9185 ---- /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void ! __yy_memcpy (char *to, char *from, unsigned int count) { register char *t = to; + register char *f = from; register int i = count; while (i-- > 0) *************** *** 9169,9175 **** #endif #endif ! #line 196 "/usr/share/misc/bison.simple" /* The user can define YYPARSE_PARAM as the name of an argument to be passed into yyparse. The argument should have type void *. --- 9189,9195 ---- #endif #endif ! #line 217 "/usr/share/misc/bison.simple" /* The user can define YYPARSE_PARAM as the name of an argument to be passed into yyparse. The argument should have type void *. *************** *** 9190,9195 **** --- 9210,9224 ---- #define YYPARSE_PARAM_DECL #endif /* not YYPARSE_PARAM */ + /* Prevent warning if -Wstrict-prototypes. */ + #ifdef __GNUC__ + #ifdef YYPARSE_PARAM + int yyparse (void *); + #else + int yyparse (void); + #endif + #endif + int yyparse(YYPARSE_PARAM_ARG) YYPARSE_PARAM_DECL *************** *** 9218,9223 **** --- 9247,9253 ---- #endif int yystacksize = YYINITDEPTH; + int yyfree_stacks = 0; #ifdef YYPURE int yychar; *************** *** 9302,9319 **** if (yystacksize >= YYMAXDEPTH) { yyerror("parser stack overflow"); return 2; } yystacksize *= 2; if (yystacksize > YYMAXDEPTH) yystacksize = YYMAXDEPTH; ! yyss = (short *) alloca (yystacksize * sizeof (*yyssp)); ! __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp)); ! yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp)); ! __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp)); #ifdef YYLSP_NEEDED ! yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp)); ! __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp)); #endif #endif /* no yyoverflow */ --- 9332,9363 ---- if (yystacksize >= YYMAXDEPTH) { yyerror("parser stack overflow"); + if (yyfree_stacks) + { + free (yyss); + free (yyvs); + #ifdef YYLSP_NEEDED + free (yyls); + #endif + } return 2; } yystacksize *= 2; if (yystacksize > YYMAXDEPTH) yystacksize = YYMAXDEPTH; ! #ifndef YYSTACK_USE_ALLOCA ! yyfree_stacks = 1; ! #endif ! yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); ! __yy_memcpy ((char *)yyss, (char *)yyss1, ! size * (unsigned int) sizeof (*yyssp)); ! yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); ! __yy_memcpy ((char *)yyvs, (char *)yyvs1, ! size * (unsigned int) sizeof (*yyvsp)); #ifdef YYLSP_NEEDED ! yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); ! __yy_memcpy ((char *)yyls, (char *)yyls1, ! size * (unsigned int) sizeof (*yylsp)); #endif #endif /* no yyoverflow */ *************** *** 16785,16791 **** break;} } /* the action file gets copied in in place of this dollarsign */ ! #line 498 "/usr/share/misc/bison.simple" yyvsp -= yylen; yyssp -= yylen; --- 16829,16835 ---- break;} } /* the action file gets copied in in place of this dollarsign */ ! #line 543 "/usr/share/misc/bison.simple" yyvsp -= yylen; yyssp -= yylen; *************** *** 16980,16985 **** --- 17024,17053 ---- yystate = yyn; goto yynewstate; + + yyacceptlab: + /* YYACCEPT comes here. */ + if (yyfree_stacks) + { + free (yyss); + free (yyvs); + #ifdef YYLSP_NEEDED + free (yyls); + #endif + } + return 0; + + yyabortlab: + /* YYABORT comes here. */ + if (yyfree_stacks) + { + free (yyss); + free (yyvs); + #ifdef YYLSP_NEEDED + free (yyls); + #endif + } + return 1; } #line 6005 "preproc.y" diff -cr --new-file postgresql-6.5.1/src/interfaces/ecpg/preproc/preproc.h postgresql-6.5.2/src/interfaces/ecpg/preproc/preproc.h *** postgresql-6.5.1/src/interfaces/ecpg/preproc/preproc.h Tue Jul 20 08:28:03 1999 --- postgresql-6.5.2/src/interfaces/ecpg/preproc/preproc.h Wed Sep 15 20:23:40 1999 *************** *** 8,303 **** struct this_type type; enum ECPGttype type_enum; } YYSTYPE; ! #define SQL_AT 258 ! #define SQL_AUTOCOMMIT 259 ! #define SQL_BOOL 260 ! #define SQL_BREAK 261 ! #define SQL_CALL 262 ! #define SQL_CONNECT 263 ! #define SQL_CONNECTION 264 ! #define SQL_CONTINUE 265 ! #define SQL_DEALLOCATE 266 ! #define SQL_DISCONNECT 267 ! #define SQL_ENUM 268 ! #define SQL_FOUND 269 ! #define SQL_FREE 270 ! #define SQL_GO 271 ! #define SQL_GOTO 272 ! #define SQL_IDENTIFIED 273 ! #define SQL_IMMEDIATE 274 ! #define SQL_INDICATOR 275 ! #define SQL_INT 276 ! #define SQL_LONG 277 ! #define SQL_OFF 278 ! #define SQL_OPEN 279 ! #define SQL_PREPARE 280 ! #define SQL_RELEASE 281 ! #define SQL_REFERENCE 282 ! #define SQL_SECTION 283 ! #define SQL_SHORT 284 ! #define SQL_SIGNED 285 ! #define SQL_SQLERROR 286 ! #define SQL_SQLPRINT 287 ! #define SQL_SQLWARNING 288 ! #define SQL_START 289 ! #define SQL_STOP 290 ! #define SQL_STRUCT 291 ! #define SQL_UNSIGNED 292 ! #define SQL_VAR 293 ! #define SQL_WHENEVER 294 ! #define S_ANYTHING 295 ! #define S_AUTO 296 ! #define S_BOOL 297 ! #define S_CHAR 298 ! #define S_CONST 299 ! #define S_DOUBLE 300 ! #define S_ENUM 301 ! #define S_EXTERN 302 ! #define S_FLOAT 303 ! #define S_INT 304 ! #define S 305 ! #define S_LONG 306 ! #define S_REGISTER 307 ! #define S_SHORT 308 ! #define S_SIGNED 309 ! #define S_STATIC 310 ! #define S_STRUCT 311 ! #define S_UNION 312 ! #define S_UNSIGNED 313 ! #define S_VARCHAR 314 ! #define TYPECAST 315 ! #define ABSOLUTE 316 ! #define ACTION 317 ! #define ADD 318 ! #define ALL 319 ! #define ALTER 320 ! #define AND 321 ! #define ANY 322 ! #define AS 323 ! #define ASC 324 ! #define BEGIN_TRANS 325 ! #define BETWEEN 326 ! #define BOTH 327 ! #define BY 328 ! #define CASCADE 329 ! #define CASE 330 ! #define CAST 331 ! #define CHAR 332 ! #define CHARACTER 333 ! #define CHECK 334 ! #define CLOSE 335 ! #define COALESCE 336 ! #define COLLATE 337 ! #define COLUMN 338 ! #define COMMIT 339 ! #define CONSTRAINT 340 ! #define CREATE 341 ! #define CROSS 342 ! #define CURRENT 343 ! #define CURRENT_DATE 344 ! #define CURRENT_TIME 345 ! #define CURRENT_TIMESTAMP 346 ! #define CURRENT_USER 347 ! #define CURSOR 348 ! #define DAY_P 349 ! #define DECIMAL 350 ! #define DECLARE 351 ! #define DEFAULT 352 ! #define DELETE 353 ! #define DESC 354 ! #define DISTINCT 355 ! #define DOUBLE 356 ! #define DROP 357 ! #define ELSE 358 ! #define END_TRANS 359 ! #define EXCEPT 360 ! #define EXECUTE 361 ! #define EXISTS 362 ! #define EXTRACT 363 ! #define FALSE_P 364 ! #define FETCH 365 ! #define FLOAT 366 ! #define FOR 367 ! #define FOREIGN 368 ! #define FROM 369 ! #define FULL 370 ! #define GLOBAL 371 ! #define GRANT 372 ! #define GROUP 373 ! #define HAVING 374 ! #define HOUR_P 375 ! #define IN 376 ! #define INNER_P 377 ! #define INSENSITIVE 378 ! #define INSERT 379 ! #define INTERSECT 380 ! #define INTERVAL 381 ! #define INTO 382 ! #define IS 383 ! #define ISOLATION 384 ! #define JOIN 385 ! #define KEY 386 ! #define LANGUAGE 387 ! #define LEADING 388 ! #define LEFT 389 ! #define LEVEL 390 ! #define LIKE 391 ! #define LOCAL 392 ! #define MATCH 393 ! #define MINUTE_P 394 ! #define MONTH_P 395 ! #define NAMES 396 ! #define NATIONAL 397 ! #define NATURAL 398 ! #define NCHAR 399 ! #define NEXT 400 ! #define NO 401 ! #define NOT 402 ! #define NULLIF 403 ! #define NULL_P 404 ! #define NUMERIC 405 ! #define OF 406 ! #define ON 407 ! #define ONLY 408 ! #define OPTION 409 ! #define OR 410 ! #define ORDER 411 ! #define OUTER_P 412 ! #define PARTIAL 413 ! #define POSITION 414 ! #define PRECISION 415 ! #define PRIMARY 416 ! #define PRIOR 417 ! #define PRIVILEGES 418 ! #define PROCEDURE 419 ! #define PUBLIC 420 ! #define READ 421 ! #define REFERENCES 422 ! #define RELATIVE 423 ! #define REVOKE 424 ! #define RIGHT 425 ! #define ROLLBACK 426 ! #define SCROLL 427 ! #define SECOND_P 428 ! #define SELECT 429 ! #define SET 430 ! #define SUBSTRING 431 ! #define TABLE 432 ! #define TEMP 433 ! #define TEMPORARY 434 ! #define THEN 435 ! #define TIME 436 ! #define TIMESTAMP 437 ! #define TIMEZONE_HOUR 438 ! #define TIMEZONE_MINUTE 439 ! #define TO 440 ! #define TRAILING 441 ! #define TRANSACTION 442 ! #define TRIM 443 ! #define TRUE_P 444 ! #define UNION 445 ! #define UNIQUE 446 ! #define UPDATE 447 ! #define USER 448 ! #define USING 449 ! #define VALUES 450 ! #define VARCHAR 451 ! #define VARYING 452 ! #define VIEW 453 ! #define WHEN 454 ! #define WHERE 455 ! #define WITH 456 ! #define WORK 457 ! #define YEAR_P 458 ! #define ZONE 459 ! #define TRIGGER 460 ! #define COMMITTED 461 ! #define SERIALIZABLE 462 ! #define TYPE_P 463 ! #define ABORT_TRANS 464 ! #define ACCESS 465 ! #define AFTER 466 ! #define AGGREGATE 467 ! #define ANALYZE 468 ! #define BACKWARD 469 ! #define BEFORE 470 ! #define BINARY 471 ! #define CACHE 472 ! #define CLUSTER 473 ! #define COPY 474 ! #define CREATEDB 475 ! #define CREATEUSER 476 ! #define CYCLE 477 ! #define DATABASE 478 ! #define DELIMITERS 479 ! #define DO 480 ! #define EACH 481 ! #define ENCODING 482 ! #define EXCLUSIVE 483 ! #define EXPLAIN 484 ! #define EXTEND 485 ! #define FORWARD 486 ! #define FUNCTION 487 ! #define HANDLER 488 ! #define INCREMENT 489 ! #define INDEX 490 ! #define INHERITS 491 ! #define INSTEAD 492 ! #define ISNULL 493 ! #define LANCOMPILER 494 ! #define LIMIT 495 ! #define LISTEN 496 ! #define UNLISTEN 497 ! #define LOAD 498 ! #define LOCATION 499 ! #define LOCK_P 500 ! #define MAXVALUE 501 ! #define MINVALUE 502 ! #define MODE 503 ! #define MOVE 504 ! #define NEW 505 ! #define NOCREATEDB 506 ! #define NOCREATEUSER 507 ! #define NONE 508 ! #define NOTHING 509 ! #define NOTIFY 510 ! #define NOTNULL 511 ! #define OFFSET 512 ! #define OIDS 513 ! #define OPERATOR 514 ! #define PASSWORD 515 ! #define PROCEDURAL 516 ! #define RENAME 517 ! #define RESET 518 ! #define RETURNS 519 ! #define ROW 520 ! #define RULE 521 ! #define SERIAL 522 ! #define SEQUENCE 523 ! #define SETOF 524 ! #define SHARE 525 ! #define SHOW 526 ! #define START 527 ! #define STATEMENT 528 ! #define STDIN 529 ! #define STDOUT 530 ! #define TRUSTED 531 ! #define UNTIL 532 ! #define VACUUM 533 ! #define VALID 534 ! #define VERBOSE 535 ! #define VERSION 536 ! #define IDENT 537 ! #define SCONST 538 ! #define Op 539 ! #define CSTRING 540 ! #define CVARIABLE 541 ! #define CPP_LINE 542 ! #define ICONST 543 ! #define PARAM 544 ! #define FCONST 545 ! #define OP 546 ! #define UMINUS 547 extern YYSTYPE yylval; --- 8,303 ---- struct this_type type; enum ECPGttype type_enum; } YYSTYPE; ! #define SQL_AT 257 ! #define SQL_AUTOCOMMIT 258 ! #define SQL_BOOL 259 ! #define SQL_BREAK 260 ! #define SQL_CALL 261 ! #define SQL_CONNECT 262 ! #define SQL_CONNECTION 263 ! #define SQL_CONTINUE 264 ! #define SQL_DEALLOCATE 265 ! #define SQL_DISCONNECT 266 ! #define SQL_ENUM 267 ! #define SQL_FOUND 268 ! #define SQL_FREE 269 ! #define SQL_GO 270 ! #define SQL_GOTO 271 ! #define SQL_IDENTIFIED 272 ! #define SQL_IMMEDIATE 273 ! #define SQL_INDICATOR 274 ! #define SQL_INT 275 ! #define SQL_LONG 276 ! #define SQL_OFF 277 ! #define SQL_OPEN 278 ! #define SQL_PREPARE 279 ! #define SQL_RELEASE 280 ! #define SQL_REFERENCE 281 ! #define SQL_SECTION 282 ! #define SQL_SHORT 283 ! #define SQL_SIGNED 284 ! #define SQL_SQLERROR 285 ! #define SQL_SQLPRINT 286 ! #define SQL_SQLWARNING 287 ! #define SQL_START 288 ! #define SQL_STOP 289 ! #define SQL_STRUCT 290 ! #define SQL_UNSIGNED 291 ! #define SQL_VAR 292 ! #define SQL_WHENEVER 293 ! #define S_ANYTHING 294 ! #define S_AUTO 295 ! #define S_BOOL 296 ! #define S_CHAR 297 ! #define S_CONST 298 ! #define S_DOUBLE 299 ! #define S_ENUM 300 ! #define S_EXTERN 301 ! #define S_FLOAT 302 ! #define S_INT 303 ! #define S 304 ! #define S_LONG 305 ! #define S_REGISTER 306 ! #define S_SHORT 307 ! #define S_SIGNED 308 ! #define S_STATIC 309 ! #define S_STRUCT 310 ! #define S_UNION 311 ! #define S_UNSIGNED 312 ! #define S_VARCHAR 313 ! #define TYPECAST 314 ! #define ABSOLUTE 315 ! #define ACTION 316 ! #define ADD 317 ! #define ALL 318 ! #define ALTER 319 ! #define AND 320 ! #define ANY 321 ! #define AS 322 ! #define ASC 323 ! #define BEGIN_TRANS 324 ! #define BETWEEN 325 ! #define BOTH 326 ! #define BY 327 ! #define CASCADE 328 ! #define CASE 329 ! #define CAST 330 ! #define CHAR 331 ! #define CHARACTER 332 ! #define CHECK 333 ! #define CLOSE 334 ! #define COALESCE 335 ! #define COLLATE 336 ! #define COLUMN 337 ! #define COMMIT 338 ! #define CONSTRAINT 339 ! #define CREATE 340 ! #define CROSS 341 ! #define CURRENT 342 ! #define CURRENT_DATE 343 ! #define CURRENT_TIME 344 ! #define CURRENT_TIMESTAMP 345 ! #define CURRENT_USER 346 ! #define CURSOR 347 ! #define DAY_P 348 ! #define DECIMAL 349 ! #define DECLARE 350 ! #define DEFAULT 351 ! #define DELETE 352 ! #define DESC 353 ! #define DISTINCT 354 ! #define DOUBLE 355 ! #define DROP 356 ! #define ELSE 357 ! #define END_TRANS 358 ! #define EXCEPT 359 ! #define EXECUTE 360 ! #define EXISTS 361 ! #define EXTRACT 362 ! #define FALSE_P 363 ! #define FETCH 364 ! #define FLOAT 365 ! #define FOR 366 ! #define FOREIGN 367 ! #define FROM 368 ! #define FULL 369 ! #define GLOBAL 370 ! #define GRANT 371 ! #define GROUP 372 ! #define HAVING 373 ! #define HOUR_P 374 ! #define IN 375 ! #define INNER_P 376 ! #define INSENSITIVE 377 ! #define INSERT 378 ! #define INTERSECT 379 ! #define INTERVAL 380 ! #define INTO 381 ! #define IS 382 ! #define ISOLATION 383 ! #define JOIN 384 ! #define KEY 385 ! #define LANGUAGE 386 ! #define LEADING 387 ! #define LEFT 388 ! #define LEVEL 389 ! #define LIKE 390 ! #define LOCAL 391 ! #define MATCH 392 ! #define MINUTE_P 393 ! #define MONTH_P 394 ! #define NAMES 395 ! #define NATIONAL 396 ! #define NATURAL 397 ! #define NCHAR 398 ! #define NEXT 399 ! #define NO 400 ! #define NOT 401 ! #define NULLIF 402 ! #define NULL_P 403 ! #define NUMERIC 404 ! #define OF 405 ! #define ON 406 ! #define ONLY 407 ! #define OPTION 408 ! #define OR 409 ! #define ORDER 410 ! #define OUTER_P 411 ! #define PARTIAL 412 ! #define POSITION 413 ! #define PRECISION 414 ! #define PRIMARY 415 ! #define PRIOR 416 ! #define PRIVILEGES 417 ! #define PROCEDURE 418 ! #define PUBLIC 419 ! #define READ 420 ! #define REFERENCES 421 ! #define RELATIVE 422 ! #define REVOKE 423 ! #define RIGHT 424 ! #define ROLLBACK 425 ! #define SCROLL 426 ! #define SECOND_P 427 ! #define SELECT 428 ! #define SET 429 ! #define SUBSTRING 430 ! #define TABLE 431 ! #define TEMP 432 ! #define TEMPORARY 433 ! #define THEN 434 ! #define TIME 435 ! #define TIMESTAMP 436 ! #define TIMEZONE_HOUR 437 ! #define TIMEZONE_MINUTE 438 ! #define TO 439 ! #define TRAILING 440 ! #define TRANSACTION 441 ! #define TRIM 442 ! #define TRUE_P 443 ! #define UNION 444 ! #define UNIQUE 445 ! #define UPDATE 446 ! #define USER 447 ! #define USING 448 ! #define VALUES 449 ! #define VARCHAR 450 ! #define VARYING 451 ! #define VIEW 452 ! #define WHEN 453 ! #define WHERE 454 ! #define WITH 455 ! #define WORK 456 ! #define YEAR_P 457 ! #define ZONE 458 ! #define TRIGGER 459 ! #define COMMITTED 460 ! #define SERIALIZABLE 461 ! #define TYPE_P 462 ! #define ABORT_TRANS 463 ! #define ACCESS 464 ! #define AFTER 465 ! #define AGGREGATE 466 ! #define ANALYZE 467 ! #define BACKWARD 468 ! #define BEFORE 469 ! #define BINARY 470 ! #define CACHE 471 ! #define CLUSTER 472 ! #define COPY 473 ! #define CREATEDB 474 ! #define CREATEUSER 475 ! #define CYCLE 476 ! #define DATABASE 477 ! #define DELIMITERS 478 ! #define DO 479 ! #define EACH 480 ! #define ENCODING 481 ! #define EXCLUSIVE 482 ! #define EXPLAIN 483 ! #define EXTEND 484 ! #define FORWARD 485 ! #define FUNCTION 486 ! #define HANDLER 487 ! #define INCREMENT 488 ! #define INDEX 489 ! #define INHERITS 490 ! #define INSTEAD 491 ! #define ISNULL 492 ! #define LANCOMPILER 493 ! #define LIMIT 494 ! #define LISTEN 495 ! #define UNLISTEN 496 ! #define LOAD 497 ! #define LOCATION 498 ! #define LOCK_P 499 ! #define MAXVALUE 500 ! #define MINVALUE 501 ! #define MODE 502 ! #define MOVE 503 ! #define NEW 504 ! #define NOCREATEDB 505 ! #define NOCREATEUSER 506 ! #define NONE 507 ! #define NOTHING 508 ! #define NOTIFY 509 ! #define NOTNULL 510 ! #define OFFSET 511 ! #define OIDS 512 ! #define OPERATOR 513 ! #define PASSWORD 514 ! #define PROCEDURAL 515 ! #define RENAME 516 ! #define RESET 517 ! #define RETURNS 518 ! #define ROW 519 ! #define RULE 520 ! #define SERIAL 521 ! #define SEQUENCE 522 ! #define SETOF 523 ! #define SHARE 524 ! #define SHOW 525 ! #define START 526 ! #define STATEMENT 527 ! #define STDIN 528 ! #define STDOUT 529 ! #define TRUSTED 530 ! #define UNTIL 531 ! #define VACUUM 532 ! #define VALID 533 ! #define VERBOSE 534 ! #define VERSION 535 ! #define IDENT 536 ! #define SCONST 537 ! #define Op 538 ! #define CSTRING 539 ! #define CVARIABLE 540 ! #define CPP_LINE 541 ! #define ICONST 542 ! #define PARAM 543 ! #define FCONST 544 ! #define OP 545 ! #define UMINUS 546 extern YYSTYPE yylval; diff -cr --new-file postgresql-6.5.1/src/interfaces/libpq/libpq.rc postgresql-6.5.2/src/interfaces/libpq/libpq.rc *** postgresql-6.5.1/src/interfaces/libpq/libpq.rc Sat Jul 10 12:28:02 1999 --- postgresql-6.5.2/src/interfaces/libpq/libpq.rc Sun Sep 12 20:13:24 1999 *************** *** 1,8 **** ! #include VS_VERSION_INFO VERSIONINFO ! FILEVERSION 6,5,1,0 ! PRODUCTVERSION 6,5,1,0 FILEFLAGSMASK 0x3fL FILEFLAGS 0 FILEOS VOS__WINDOWS32 --- 1,8 ---- ! v#include VS_VERSION_INFO VERSIONINFO ! FILEVERSION 6,5,2,0 ! PRODUCTVERSION 6,5,2,0 FILEFLAGSMASK 0x3fL FILEFLAGS 0 FILEOS VOS__WINDOWS32 *************** *** 15,27 **** BEGIN VALUE "CompanyName", "\0" VALUE "FileDescription", "PostgreSQL Access Library\0" ! VALUE "FileVersion", "6, 5, 1, 0\0" VALUE "InternalName", "libpq\0" VALUE "LegalCopyright", "Copyright (C) 1999\0" VALUE "LegalTrademarks", "\0" VALUE "OriginalFilename", "libpq.dll\0" VALUE "ProductName", "PostgreSQL\0" ! VALUE "ProductVersion", "6, 5, 1, 0\0" END END BLOCK "VarFileInfo" --- 15,27 ---- BEGIN VALUE "CompanyName", "\0" VALUE "FileDescription", "PostgreSQL Access Library\0" ! VALUE "FileVersion", "6, 5, 2, 0\0" VALUE "InternalName", "libpq\0" VALUE "LegalCopyright", "Copyright (C) 1999\0" VALUE "LegalTrademarks", "\0" VALUE "OriginalFilename", "libpq.dll\0" VALUE "ProductName", "PostgreSQL\0" ! VALUE "ProductVersion", "6, 5, 2, 0\0" END END BLOCK "VarFileInfo" diff -cr --new-file postgresql-6.5.1/src/interfaces/libpq/win32.h postgresql-6.5.2/src/interfaces/libpq/win32.h *** postgresql-6.5.1/src/interfaces/libpq/win32.h Mon Jun 7 10:29:20 1999 --- postgresql-6.5.2/src/interfaces/libpq/win32.h Fri Jul 30 00:26:51 1999 *************** *** 5,13 **** */ #define strcasecmp(a,b) stricmp(a,b) - - - #define NO_UNISTD_H #define SOCKET_SIZE_TYPE int /* --- 5,10 ---- *************** *** 22,29 **** * crypt not available (yet) */ #define crypt(a,b) a - - /* * Parts of config.h that you get with autoconf on other systems --- 19,24 ---- diff -cr --new-file postgresql-6.5.1/src/interfaces/libpq/win32.mak postgresql-6.5.2/src/interfaces/libpq/win32.mak *** postgresql-6.5.1/src/interfaces/libpq/win32.mak Mon Jun 7 10:29:20 1999 --- postgresql-6.5.2/src/interfaces/libpq/win32.mak Sun Aug 15 22:01:53 1999 *************** *** 37,42 **** --- 37,48 ---- -@erase "$(OUTDIR)\libpq.pch" -@erase "$(OUTDIR)\libpqdll.exp" -@erase "$(OUTDIR)\libpqdll.lib" + !IFDEF MULTIBYTE + -@erase "$(INTDIR)\common.obj" + -@erase "$(INTDIR)\wchar.obj" + -@erase "$(INTDIR)\conv.obj" + -@erase "$(INTDIR)\big5.obj" + !ENDIF "$(OUTDIR)" : if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" *************** *** 67,73 **** "$(INTDIR)\fe-print.obj" !IFDEF MULTIBYTE ! LIB32_OBJS = $(LIB32_OBJS) $(INTDIR)\common.obj $(INTDIR)\wchar.obj $(INTDIR)\conv.obj !ENDIF RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libpq.res" --- 73,79 ---- "$(INTDIR)\fe-print.obj" !IFDEF MULTIBYTE ! LIB32_OBJS = $(LIB32_OBJS) "$(INTDIR)\common.obj" "$(INTDIR)\wchar.obj" "$(INTDIR)\conv.obj" "$(INTDIR)\big5.obj" !ENDIF RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libpq.res" *************** *** 103,109 **** --- 109,138 ---- $(CPP) @<< $(CPP_PROJ) ..\..\backend\lib\dllist.c << + + !IFDEF MULTIBYTE + "$(INTDIR)\common.obj" : ..\..\backend\utils\mb\common.c + $(CPP) @<< + $(CPP_PROJ) /I "." ..\..\backend\utils\mb\common.c + << + + "$(INTDIR)\wchar.obj" : ..\..\backend\utils\mb\wchar.c + $(CPP) @<< + $(CPP_PROJ) /I "." ..\..\backend\utils\mb\wchar.c + << + + "$(INTDIR)\conv.obj" : ..\..\backend\utils\mb\conv.c + $(CPP) @<< + $(CPP_PROJ) /I "." ..\..\backend\utils\mb\conv.c + << + + "$(INTDIR)\big5.obj" : ..\..\backend\utils\mb\big5.c + $(CPP) @<< + $(CPP_PROJ) /I "." ..\..\backend\utils\mb\big5.c + << + !ENDIF + .c{$(CPP_OBJS)}.obj:: $(CPP) @<< diff -cr --new-file postgresql-6.5.1/src/interfaces/libpq++/Makefile.in postgresql-6.5.2/src/interfaces/libpq++/Makefile.in *** postgresql-6.5.1/src/interfaces/libpq++/Makefile.in Wed Jul 7 23:30:16 1999 --- postgresql-6.5.2/src/interfaces/libpq++/Makefile.in Tue Sep 7 14:11:35 1999 *************** *** 6,12 **** # Copyright (c) 1994, Regents of the University of California # # IDENTIFICATION ! # $Header: /usr/local/cvsroot/pgsql/src/interfaces/libpq++/Makefile.in,v 1.16 1999/07/08 03:30:16 momjian Exp $ # #------------------------------------------------------------------------- --- 6,12 ---- # Copyright (c) 1994, Regents of the University of California # # IDENTIFICATION ! # $Header: /usr/local/cvsroot/pgsql/src/interfaces/libpq++/Makefile.in,v 1.16.2.1 1999/09/07 18:11:35 tgl Exp $ # #------------------------------------------------------------------------- *************** *** 46,51 **** --- 46,60 ---- SHLIB_LINK+= --driver-name g++ -L../libpq -lpq else SHLIB_LINK= -L../libpq -lpq + endif + + # For CC on IRIX, must use CC as linker/archiver of C++ libraries + ifeq ($(PORTNAME), irix5) + ifeq ($(CXX), CC) + AR = CC + AROPT = -ar -o + LD = CC + endif endif # Shared library stuff, also default 'all' target diff -cr --new-file postgresql-6.5.1/src/man/Makefile postgresql-6.5.2/src/man/Makefile *** postgresql-6.5.1/src/man/Makefile Sat Jun 5 00:15:09 1999 --- postgresql-6.5.2/src/man/Makefile Sat Jun 5 00:15:09 1999 *************** *** 8,14 **** # # # IDENTIFICATION ! # $Header: /usr/local/cvsroot/pgsql/src/man/Makefile,v 1.8 1999/06/05 04:15:09 scrappy Exp $ # #------------------------------------------------------------------------- --- 8,14 ---- # # # IDENTIFICATION ! # $Header: /usr/local/cvsroot/pgsql/src/man/Attic/Makefile,v 1.8 1999/06/05 04:15:09 scrappy Exp $ # #------------------------------------------------------------------------- diff -cr --new-file postgresql-6.5.1/src/man/abort.l postgresql-6.5.2/src/man/abort.l *** postgresql-6.5.1/src/man/abort.l Mon Mar 23 10:09:22 1998 --- postgresql-6.5.2/src/man/abort.l Mon Mar 23 10:09:22 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/abort.l,v 1.4 1998/03/23 15:09:22 momjian Exp $ .TH ABORT SQL 01/23/93 PostgreSQL PostgreSQL .\" XXX This .XA has to go after the .TH so that the index page number goes .\" in the right place... --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/abort.l,v 1.4 1998/03/23 15:09:22 momjian Exp $ .TH ABORT SQL 01/23/93 PostgreSQL PostgreSQL .\" XXX This .XA has to go after the .TH so that the index page number goes .\" in the right place... diff -cr --new-file postgresql-6.5.1/src/man/alter_table.l postgresql-6.5.2/src/man/alter_table.l *** postgresql-6.5.1/src/man/alter_table.l Wed Jun 24 09:21:23 1998 --- postgresql-6.5.2/src/man/alter_table.l Wed Jun 24 09:21:23 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/alter_table.l,v 1.7 1998/06/24 13:21:23 momjian Exp $ .TH "ALTER TABLE" SQL 09/25/97 PostgreSQL .SH NAME alter table - add attributes to a class, or rename an attribute or class --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/alter_table.l,v 1.7 1998/06/24 13:21:23 momjian Exp $ .TH "ALTER TABLE" SQL 09/25/97 PostgreSQL .SH NAME alter table - add attributes to a class, or rename an attribute or class diff -cr --new-file postgresql-6.5.1/src/man/alter_user.l postgresql-6.5.2/src/man/alter_user.l *** postgresql-6.5.1/src/man/alter_user.l Fri Mar 6 13:02:49 1998 --- postgresql-6.5.2/src/man/alter_user.l Fri Mar 6 13:02:49 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/alter_user.l,v 1.2 1998/03/06 18:02:49 momjian Exp $ .TH "ALTER USER" SQL 01/26/98 PostgreSQL PostgreSQL .SH NAME alter user -- alter user account information within a PostgreSQL instance --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/alter_user.l,v 1.2 1998/03/06 18:02:49 momjian Exp $ .TH "ALTER USER" SQL 01/26/98 PostgreSQL PostgreSQL .SH NAME alter user -- alter user account information within a PostgreSQL instance diff -cr --new-file postgresql-6.5.1/src/man/begin.l postgresql-6.5.2/src/man/begin.l *** postgresql-6.5.1/src/man/begin.l Fri Jun 11 01:40:18 1999 --- postgresql-6.5.2/src/man/begin.l Fri Jun 11 01:40:18 1999 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/begin.l,v 1.6 1999/06/11 05:40:18 vadim Exp $ .TH BEGIN SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME begin - begins a transaction in chained mode --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/begin.l,v 1.6 1999/06/11 05:40:18 vadim Exp $ .TH BEGIN SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME begin - begins a transaction in chained mode diff -cr --new-file postgresql-6.5.1/src/man/catalogs.3 postgresql-6.5.2/src/man/catalogs.3 *** postgresql-6.5.1/src/man/catalogs.3 Wed May 19 22:44:53 1999 --- postgresql-6.5.2/src/man/catalogs.3 Wed May 19 22:44:53 1999 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/catalogs.3,v 1.6 1999/05/20 02:44:53 tgl Exp $ .TH "SYSTEM CATALOGS" INTRO 03/13/94 PostgreSQL PostgreSQL .SH "Section 7 - System Catalogs" .de LS --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/catalogs.3,v 1.6 1999/05/20 02:44:53 tgl Exp $ .TH "SYSTEM CATALOGS" INTRO 03/13/94 PostgreSQL PostgreSQL .SH "Section 7 - System Catalogs" .de LS diff -cr --new-file postgresql-6.5.1/src/man/cleardbdir.1 postgresql-6.5.2/src/man/cleardbdir.1 *** postgresql-6.5.1/src/man/cleardbdir.1 Wed Jun 24 09:21:23 1998 --- postgresql-6.5.2/src/man/cleardbdir.1 Wed Jun 24 09:21:23 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/cleardbdir.1,v 1.4 1998/06/24 13:21:23 momjian Exp $ .TH CLEARDBDIR UNIX 11/05/95 PostgreSQL PostgreSQL .SH NAME cleardbdir - completely destroys all database files --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/cleardbdir.1,v 1.4 1998/06/24 13:21:23 momjian Exp $ .TH CLEARDBDIR UNIX 11/05/95 PostgreSQL PostgreSQL .SH NAME cleardbdir - completely destroys all database files diff -cr --new-file postgresql-6.5.1/src/man/close.l postgresql-6.5.2/src/man/close.l *** postgresql-6.5.1/src/man/close.l Sun Jan 11 17:17:09 1998 --- postgresql-6.5.2/src/man/close.l Sun Jan 11 17:17:09 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/close.l,v 1.3 1998/01/11 22:17:09 momjian Exp $ .TH CLOSE SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME close - close a cursor --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/close.l,v 1.3 1998/01/11 22:17:09 momjian Exp $ .TH CLOSE SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME close - close a cursor diff -cr --new-file postgresql-6.5.1/src/man/cluster.l postgresql-6.5.2/src/man/cluster.l *** postgresql-6.5.1/src/man/cluster.l Sat Mar 14 21:13:23 1998 --- postgresql-6.5.2/src/man/cluster.l Sat Mar 14 21:13:23 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/cluster.l,v 1.7 1998/03/15 02:13:23 momjian Exp $ .TH CLUSTER SQL 01/23/93 PostgreSQL PostgreSQL .SH NAME cluster - give storage clustering advice to Postgres --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/cluster.l,v 1.7 1998/03/15 02:13:23 momjian Exp $ .TH CLUSTER SQL 01/23/93 PostgreSQL PostgreSQL .SH NAME cluster - give storage clustering advice to Postgres diff -cr --new-file postgresql-6.5.1/src/man/commit.l postgresql-6.5.2/src/man/commit.l *** postgresql-6.5.1/src/man/commit.l Tue Mar 24 20:54:51 1998 --- postgresql-6.5.2/src/man/commit.l Tue Mar 24 20:54:51 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/commit.l,v 1.5 1998/03/25 01:54:51 momjian Exp $ .TH COMMIT SQL 01/23/93 PostgreSQL PostgreSQL .SH NAME commit - commit the current transaction --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/commit.l,v 1.5 1998/03/25 01:54:51 momjian Exp $ .TH COMMIT SQL 01/23/93 PostgreSQL PostgreSQL .SH NAME commit - commit the current transaction diff -cr --new-file postgresql-6.5.1/src/man/copy.l postgresql-6.5.2/src/man/copy.l *** postgresql-6.5.1/src/man/copy.l Mon Feb 1 22:45:31 1999 --- postgresql-6.5.2/src/man/copy.l Mon Feb 1 22:45:31 1999 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/copy.l,v 1.7 1999/02/02 03:45:31 momjian Exp $ .TH COPY SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME copy - copy data to or from a class from or to a Unix file. --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/copy.l,v 1.7 1999/02/02 03:45:31 momjian Exp $ .TH COPY SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME copy - copy data to or from a class from or to a Unix file. diff -cr --new-file postgresql-6.5.1/src/man/create_aggregate.l postgresql-6.5.2/src/man/create_aggregate.l *** postgresql-6.5.1/src/man/create_aggregate.l Tue Jun 23 13:52:31 1998 --- postgresql-6.5.2/src/man/create_aggregate.l Tue Jun 23 13:52:31 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/create_aggregate.l,v 1.6 1998/06/23 17:52:31 momjian Exp $ .TH "CREATE AGGREGATE" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME create aggregate - define a new aggregate --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/create_aggregate.l,v 1.6 1998/06/23 17:52:31 momjian Exp $ .TH "CREATE AGGREGATE" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME create aggregate - define a new aggregate diff -cr --new-file postgresql-6.5.1/src/man/create_database.l postgresql-6.5.2/src/man/create_database.l *** postgresql-6.5.1/src/man/create_database.l Tue Jun 23 13:52:31 1998 --- postgresql-6.5.2/src/man/create_database.l Tue Jun 23 13:52:31 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/create_database.l,v 1.6 1998/06/23 17:52:31 momjian Exp $ .TH "CREATE DATABASE" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME create database - create a new database --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/create_database.l,v 1.6 1998/06/23 17:52:31 momjian Exp $ .TH "CREATE DATABASE" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME create database - create a new database diff -cr --new-file postgresql-6.5.1/src/man/create_function.l postgresql-6.5.2/src/man/create_function.l *** postgresql-6.5.1/src/man/create_function.l Wed May 19 22:44:53 1999 --- postgresql-6.5.2/src/man/create_function.l Wed May 19 22:44:53 1999 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/create_function.l,v 1.11 1999/05/20 02:44:53 tgl Exp $ .TH "CREATE FUNCTION" SQL 11/05/95 PostgreSQL PostgreSQL .SH "NAME" create function - define a new function --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/create_function.l,v 1.11 1999/05/20 02:44:53 tgl Exp $ .TH "CREATE FUNCTION" SQL 11/05/95 PostgreSQL PostgreSQL .SH "NAME" create function - define a new function diff -cr --new-file postgresql-6.5.1/src/man/create_index.l postgresql-6.5.2/src/man/create_index.l *** postgresql-6.5.1/src/man/create_index.l Tue Aug 18 22:04:12 1998 --- postgresql-6.5.2/src/man/create_index.l Tue Aug 18 22:04:12 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/create_index.l,v 1.12 1998/08/19 02:04:12 momjian Exp $ .TH "CREATE INDEX" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME create index - construct a secondary index --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/create_index.l,v 1.12 1998/08/19 02:04:12 momjian Exp $ .TH "CREATE INDEX" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME create index - construct a secondary index diff -cr --new-file postgresql-6.5.1/src/man/create_language.l postgresql-6.5.2/src/man/create_language.l *** postgresql-6.5.1/src/man/create_language.l Tue Jun 23 13:52:31 1998 --- postgresql-6.5.2/src/man/create_language.l Tue Jun 23 13:52:31 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/create_language.l,v 1.3 1998/06/23 17:52:31 momjian Exp $ .TH "CREATE LANGUAGE" SQL 11/05/95 PostgreSQL PostgreSQL .SH "NAME" create language - define a new language for functions --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/create_language.l,v 1.3 1998/06/23 17:52:31 momjian Exp $ .TH "CREATE LANGUAGE" SQL 11/05/95 PostgreSQL PostgreSQL .SH "NAME" create language - define a new language for functions diff -cr --new-file postgresql-6.5.1/src/man/create_operator.l postgresql-6.5.2/src/man/create_operator.l *** postgresql-6.5.1/src/man/create_operator.l Wed May 19 23:21:02 1999 --- postgresql-6.5.2/src/man/create_operator.l Wed May 19 23:21:02 1999 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/create_operator.l,v 1.9 1999/05/20 03:21:02 tgl Exp $ .TH "CREATE OPERATOR" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME create operator - define a new user operator --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/create_operator.l,v 1.9 1999/05/20 03:21:02 tgl Exp $ .TH "CREATE OPERATOR" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME create operator - define a new user operator diff -cr --new-file postgresql-6.5.1/src/man/create_rule.l postgresql-6.5.2/src/man/create_rule.l *** postgresql-6.5.1/src/man/create_rule.l Sun Feb 7 17:10:09 1999 --- postgresql-6.5.2/src/man/create_rule.l Sun Feb 7 17:10:09 1999 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/create_rule.l,v 1.11 1999/02/07 22:10:09 wieck Exp $ .TH "CREATE RULE" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME create rule - define a new rule --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/create_rule.l,v 1.11 1999/02/07 22:10:09 wieck Exp $ .TH "CREATE RULE" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME create rule - define a new rule diff -cr --new-file postgresql-6.5.1/src/man/create_sequence.l postgresql-6.5.2/src/man/create_sequence.l *** postgresql-6.5.1/src/man/create_sequence.l Sun Aug 30 17:03:19 1998 --- postgresql-6.5.2/src/man/create_sequence.l Sun Aug 30 17:03:19 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/create_sequence.l,v 1.6 1998/08/30 21:03:19 scrappy Exp $ .TH "CREATE SEQUENCE" SQL 07/13/98 PostgreSQL PostgreSQL .SH NAME create sequence - create a new sequence number generator --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/create_sequence.l,v 1.6 1998/08/30 21:03:19 scrappy Exp $ .TH "CREATE SEQUENCE" SQL 07/13/98 PostgreSQL PostgreSQL .SH NAME create sequence - create a new sequence number generator diff -cr --new-file postgresql-6.5.1/src/man/create_table.l postgresql-6.5.2/src/man/create_table.l *** postgresql-6.5.1/src/man/create_table.l Mon Feb 1 22:45:32 1999 --- postgresql-6.5.2/src/man/create_table.l Mon Feb 1 22:45:32 1999 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/create_table.l,v 1.23 1999/02/02 03:45:32 momjian Exp $ .TH "CREATE TABLE" SQL 09/25/97 PostgreSQL .SH NAME create table - create a new class --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/create_table.l,v 1.23 1999/02/02 03:45:32 momjian Exp $ .TH "CREATE TABLE" SQL 09/25/97 PostgreSQL .SH NAME create table - create a new class diff -cr --new-file postgresql-6.5.1/src/man/create_trigger.l postgresql-6.5.2/src/man/create_trigger.l *** postgresql-6.5.1/src/man/create_trigger.l Tue Jun 23 13:52:33 1998 --- postgresql-6.5.2/src/man/create_trigger.l Tue Jun 23 13:52:33 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/create_trigger.l,v 1.4 1998/06/23 17:52:33 momjian Exp $ .TH "CREATE TRIGGER" SQL 09/25/97 PostgreSQL .SH NAME create trigger - create a new trigger --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/create_trigger.l,v 1.4 1998/06/23 17:52:33 momjian Exp $ .TH "CREATE TRIGGER" SQL 09/25/97 PostgreSQL .SH NAME create trigger - create a new trigger diff -cr --new-file postgresql-6.5.1/src/man/create_type.l postgresql-6.5.2/src/man/create_type.l *** postgresql-6.5.1/src/man/create_type.l Wed Jun 24 09:21:24 1998 --- postgresql-6.5.2/src/man/create_type.l Wed Jun 24 09:21:24 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/create_type.l,v 1.6 1998/06/24 13:21:24 momjian Exp $ .TH "CREATE TYPE" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME create type - define a new base data type --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/create_type.l,v 1.6 1998/06/24 13:21:24 momjian Exp $ .TH "CREATE TYPE" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME create type - define a new base data type diff -cr --new-file postgresql-6.5.1/src/man/create_user.l postgresql-6.5.2/src/man/create_user.l *** postgresql-6.5.1/src/man/create_user.l Wed Jun 24 09:21:24 1998 --- postgresql-6.5.2/src/man/create_user.l Wed Jun 24 09:21:24 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/create_user.l,v 1.3 1998/06/24 13:21:24 momjian Exp $ .TH "CREATE USER" SQL 01/26/98 PostgreSQL PostgreSQL .SH NAME create user -- create a new user within a PostgreSQL instance --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/create_user.l,v 1.3 1998/06/24 13:21:24 momjian Exp $ .TH "CREATE USER" SQL 01/26/98 PostgreSQL PostgreSQL .SH NAME create user -- create a new user within a PostgreSQL instance diff -cr --new-file postgresql-6.5.1/src/man/create_version.l postgresql-6.5.2/src/man/create_version.l *** postgresql-6.5.1/src/man/create_version.l Wed Jun 24 09:21:25 1998 --- postgresql-6.5.2/src/man/create_version.l Wed Jun 24 09:21:25 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/create_version.l,v 1.5 1998/06/24 13:21:25 momjian Exp $ .TH "CREATE VERSION" SQL 01/23/93 PostgreSQL PostgreSQL .SH NAME create version - construct a version class --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/create_version.l,v 1.5 1998/06/24 13:21:25 momjian Exp $ .TH "CREATE VERSION" SQL 01/23/93 PostgreSQL PostgreSQL .SH NAME create version - construct a version class diff -cr --new-file postgresql-6.5.1/src/man/create_view.l postgresql-6.5.2/src/man/create_view.l *** postgresql-6.5.1/src/man/create_view.l Tue Jun 23 13:52:34 1998 --- postgresql-6.5.2/src/man/create_view.l Tue Jun 23 13:52:34 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/create_view.l,v 1.4 1998/06/23 17:52:34 momjian Exp $ .TH "CREATE VIEW" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME create view - construct a virtual class --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/create_view.l,v 1.4 1998/06/23 17:52:34 momjian Exp $ .TH "CREATE VIEW" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME create view - construct a virtual class diff -cr --new-file postgresql-6.5.1/src/man/createdb.1 postgresql-6.5.2/src/man/createdb.1 *** postgresql-6.5.1/src/man/createdb.1 Tue Oct 13 22:54:30 1998 --- postgresql-6.5.2/src/man/createdb.1 Tue Oct 13 22:54:30 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/createdb.1,v 1.13 1998/10/14 02:54:30 momjian Exp $ .TH CREATEDB UNIX 11/05/95 PostgreSQL PostgreSQL .SH NAME createdb - create a database --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/createdb.1,v 1.13 1998/10/14 02:54:30 momjian Exp $ .TH CREATEDB UNIX 11/05/95 PostgreSQL PostgreSQL .SH NAME createdb - create a database diff -cr --new-file postgresql-6.5.1/src/man/createuser.1 postgresql-6.5.2/src/man/createuser.1 *** postgresql-6.5.1/src/man/createuser.1 Tue Oct 13 22:54:31 1998 --- postgresql-6.5.2/src/man/createuser.1 Tue Oct 13 22:54:31 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/createuser.1,v 1.13 1998/10/14 02:54:31 momjian Exp $ .TH CREATEUSER UNIX 11/05/95 PostgreSQL PostgreSQL .SH NAME createuser - create a Postgres user --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/createuser.1,v 1.13 1998/10/14 02:54:31 momjian Exp $ .TH CREATEUSER UNIX 11/05/95 PostgreSQL PostgreSQL .SH NAME createuser - create a Postgres user diff -cr --new-file postgresql-6.5.1/src/man/declare.l postgresql-6.5.2/src/man/declare.l *** postgresql-6.5.1/src/man/declare.l Tue Apr 28 14:39:11 1998 --- postgresql-6.5.2/src/man/declare.l Tue Apr 28 14:39:11 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/declare.l,v 1.5 1998/04/28 18:39:11 momjian Exp $ .TH FETCH SQL 01/23/93 PostgreSQL PostgreSQL .SH NAME declare - declare a cursor --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/declare.l,v 1.5 1998/04/28 18:39:11 momjian Exp $ .TH FETCH SQL 01/23/93 PostgreSQL PostgreSQL .SH NAME declare - declare a cursor diff -cr --new-file postgresql-6.5.1/src/man/delete.l postgresql-6.5.2/src/man/delete.l *** postgresql-6.5.1/src/man/delete.l Wed Jun 24 09:21:25 1998 --- postgresql-6.5.2/src/man/delete.l Wed Jun 24 09:21:25 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/delete.l,v 1.4 1998/06/24 13:21:25 momjian Exp $ .TH DELETE SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME delete - delete instances from a class --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/delete.l,v 1.4 1998/06/24 13:21:25 momjian Exp $ .TH DELETE SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME delete - delete instances from a class diff -cr --new-file postgresql-6.5.1/src/man/destroydb.1 postgresql-6.5.2/src/man/destroydb.1 *** postgresql-6.5.1/src/man/destroydb.1 Tue Oct 13 22:54:32 1998 --- postgresql-6.5.2/src/man/destroydb.1 Tue Oct 13 22:54:32 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/destroydb.1,v 1.12 1998/10/14 02:54:32 momjian Exp $ .TH DESTROYDB UNIX 11/05/95 PostgreSQL PostgreSQL .SH NAME destroydb - destroy an existing database --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/destroydb.1,v 1.12 1998/10/14 02:54:32 momjian Exp $ .TH DESTROYDB UNIX 11/05/95 PostgreSQL PostgreSQL .SH NAME destroydb - destroy an existing database diff -cr --new-file postgresql-6.5.1/src/man/destroyuser.1 postgresql-6.5.2/src/man/destroyuser.1 *** postgresql-6.5.1/src/man/destroyuser.1 Tue Oct 13 22:54:33 1998 --- postgresql-6.5.2/src/man/destroyuser.1 Tue Oct 13 22:54:33 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/destroyuser.1,v 1.12 1998/10/14 02:54:33 momjian Exp $ .TH DESTROYUSER UNIX 11/05/95 PostgreSQL PostgreSQL .SH NAME destroyuser - destroy a Postgres user and associated databases --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/destroyuser.1,v 1.12 1998/10/14 02:54:33 momjian Exp $ .TH DESTROYUSER UNIX 11/05/95 PostgreSQL PostgreSQL .SH NAME destroyuser - destroy a Postgres user and associated databases diff -cr --new-file postgresql-6.5.1/src/man/drop.l postgresql-6.5.2/src/man/drop.l *** postgresql-6.5.1/src/man/drop.l Tue Jun 23 13:52:34 1998 --- postgresql-6.5.2/src/man/drop.l Tue Jun 23 13:52:34 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/drop.l,v 1.6 1998/06/23 17:52:34 momjian Exp $ .TH "DROP ATTRIBUTE" SQL 09/26/97 PostgreSQL .SH NAME drop - destroy existing attributes --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/drop.l,v 1.6 1998/06/23 17:52:34 momjian Exp $ .TH "DROP ATTRIBUTE" SQL 09/26/97 PostgreSQL .SH NAME drop - destroy existing attributes diff -cr --new-file postgresql-6.5.1/src/man/drop_aggregate.l postgresql-6.5.2/src/man/drop_aggregate.l *** postgresql-6.5.1/src/man/drop_aggregate.l Tue Jun 23 13:52:35 1998 --- postgresql-6.5.2/src/man/drop_aggregate.l Tue Jun 23 13:52:35 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/drop_aggregate.l,v 1.5 1998/06/23 17:52:35 momjian Exp $ .TH "DROP AGGREGATE" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME drop aggregate - remove the definition of an aggregate --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/drop_aggregate.l,v 1.5 1998/06/23 17:52:35 momjian Exp $ .TH "DROP AGGREGATE" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME drop aggregate - remove the definition of an aggregate diff -cr --new-file postgresql-6.5.1/src/man/drop_database.l postgresql-6.5.2/src/man/drop_database.l *** postgresql-6.5.1/src/man/drop_database.l Wed Jun 24 09:21:26 1998 --- postgresql-6.5.2/src/man/drop_database.l Wed Jun 24 09:21:26 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/drop_database.l,v 1.4 1998/06/24 13:21:26 momjian Exp $ .TH "DROP DATABASE" SQL 01/23/93 PostgreSQL PostgreSQL .SH NAME drop database - destroy an existing database --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/drop_database.l,v 1.4 1998/06/24 13:21:26 momjian Exp $ .TH "DROP DATABASE" SQL 01/23/93 PostgreSQL PostgreSQL .SH NAME drop database - destroy an existing database diff -cr --new-file postgresql-6.5.1/src/man/drop_function.l postgresql-6.5.2/src/man/drop_function.l *** postgresql-6.5.1/src/man/drop_function.l Tue Jun 23 13:52:35 1998 --- postgresql-6.5.2/src/man/drop_function.l Tue Jun 23 13:52:35 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/drop_function.l,v 1.4 1998/06/23 17:52:35 momjian Exp $ .TH "DROP FUNCTION" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME drop function - remove a user-defined C function --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/drop_function.l,v 1.4 1998/06/23 17:52:35 momjian Exp $ .TH "DROP FUNCTION" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME drop function - remove a user-defined C function diff -cr --new-file postgresql-6.5.1/src/man/drop_index.l postgresql-6.5.2/src/man/drop_index.l *** postgresql-6.5.1/src/man/drop_index.l Tue Jun 23 13:52:35 1998 --- postgresql-6.5.2/src/man/drop_index.l Tue Jun 23 13:52:35 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/drop_index.l,v 1.4 1998/06/23 17:52:35 momjian Exp $ .TH "DROP INDEX" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME drop index - removes an index from Postgres --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/drop_index.l,v 1.4 1998/06/23 17:52:35 momjian Exp $ .TH "DROP INDEX" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME drop index - removes an index from Postgres diff -cr --new-file postgresql-6.5.1/src/man/drop_language.l postgresql-6.5.2/src/man/drop_language.l *** postgresql-6.5.1/src/man/drop_language.l Tue Jun 23 13:52:35 1998 --- postgresql-6.5.2/src/man/drop_language.l Tue Jun 23 13:52:35 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/drop_language.l,v 1.3 1998/06/23 17:52:35 momjian Exp $ .TH "DROP LANGUAGE" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME drop language - remove a user-defined procedural language --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/drop_language.l,v 1.3 1998/06/23 17:52:35 momjian Exp $ .TH "DROP LANGUAGE" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME drop language - remove a user-defined procedural language diff -cr --new-file postgresql-6.5.1/src/man/drop_operator.l postgresql-6.5.2/src/man/drop_operator.l *** postgresql-6.5.1/src/man/drop_operator.l Tue Jun 23 13:52:36 1998 --- postgresql-6.5.2/src/man/drop_operator.l Tue Jun 23 13:52:36 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/drop_operator.l,v 1.4 1998/06/23 17:52:36 momjian Exp $ .TH "DROP OPERATOR" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME drop operator - remove an operator from the system --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/drop_operator.l,v 1.4 1998/06/23 17:52:36 momjian Exp $ .TH "DROP OPERATOR" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME drop operator - remove an operator from the system diff -cr --new-file postgresql-6.5.1/src/man/drop_rule.l postgresql-6.5.2/src/man/drop_rule.l *** postgresql-6.5.1/src/man/drop_rule.l Sun Feb 7 17:10:10 1999 --- postgresql-6.5.2/src/man/drop_rule.l Sun Feb 7 17:10:10 1999 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/drop_rule.l,v 1.4 1999/02/07 22:10:10 wieck Exp $ .TH "DROP RULE" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME drop rule \- removes a current rule from Postgres --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/drop_rule.l,v 1.4 1999/02/07 22:10:10 wieck Exp $ .TH "DROP RULE" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME drop rule \- removes a current rule from Postgres diff -cr --new-file postgresql-6.5.1/src/man/drop_sequence.l postgresql-6.5.2/src/man/drop_sequence.l *** postgresql-6.5.1/src/man/drop_sequence.l Sun Jan 11 17:17:31 1998 --- postgresql-6.5.2/src/man/drop_sequence.l Sun Jan 11 17:17:31 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/drop_sequence.l,v 1.2 1998/01/11 22:17:31 momjian Exp $ .TH "DROP TABLE" SQL 04/01/97 PostgreSQL PostgreSQL .SH NAME drop sequence - destroy existing sequence --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/drop_sequence.l,v 1.2 1998/01/11 22:17:31 momjian Exp $ .TH "DROP TABLE" SQL 04/01/97 PostgreSQL PostgreSQL .SH NAME drop sequence - destroy existing sequence diff -cr --new-file postgresql-6.5.1/src/man/drop_table.l postgresql-6.5.2/src/man/drop_table.l *** postgresql-6.5.1/src/man/drop_table.l Wed Jun 24 09:21:26 1998 --- postgresql-6.5.2/src/man/drop_table.l Wed Jun 24 09:21:26 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/drop_table.l,v 1.4 1998/06/24 13:21:26 momjian Exp $ .TH "DROP TABLE" SQL 09/26/97 PostgreSQL .SH NAME drop table - destroy existing classes --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/drop_table.l,v 1.4 1998/06/24 13:21:26 momjian Exp $ .TH "DROP TABLE" SQL 09/26/97 PostgreSQL .SH NAME drop table - destroy existing classes diff -cr --new-file postgresql-6.5.1/src/man/drop_trigger.l postgresql-6.5.2/src/man/drop_trigger.l *** postgresql-6.5.1/src/man/drop_trigger.l Tue Jun 23 13:52:36 1998 --- postgresql-6.5.2/src/man/drop_trigger.l Tue Jun 23 13:52:36 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/drop_trigger.l,v 1.4 1998/06/23 17:52:36 momjian Exp $ .TH "DROP TRIGGER" SQL 09/26/97 PostgreSQL .SH NAME drop trigger - destroy existing trigger --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/drop_trigger.l,v 1.4 1998/06/23 17:52:36 momjian Exp $ .TH "DROP TRIGGER" SQL 09/26/97 PostgreSQL .SH NAME drop trigger - destroy existing trigger diff -cr --new-file postgresql-6.5.1/src/man/drop_type.l postgresql-6.5.2/src/man/drop_type.l *** postgresql-6.5.1/src/man/drop_type.l Tue Oct 13 22:54:35 1998 --- postgresql-6.5.2/src/man/drop_type.l Tue Oct 13 22:54:35 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/drop_type.l,v 1.7 1998/10/14 02:54:35 momjian Exp $ .TH "DROP TYPE" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME drop type - remove a user-defined type from the system catalogs --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/drop_type.l,v 1.7 1998/10/14 02:54:35 momjian Exp $ .TH "DROP TYPE" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME drop type - remove a user-defined type from the system catalogs diff -cr --new-file postgresql-6.5.1/src/man/drop_user.l postgresql-6.5.2/src/man/drop_user.l *** postgresql-6.5.1/src/man/drop_user.l Wed Jun 24 09:21:26 1998 --- postgresql-6.5.2/src/man/drop_user.l Wed Jun 24 09:21:26 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/drop_user.l,v 1.2 1998/06/24 13:21:26 momjian Exp $ .TH "DROP USER" SQL 01/26/98 PostgreSQL PostgreSQL .SH NAME drop user -- drop user from within a PostgreSQL instance --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/drop_user.l,v 1.2 1998/06/24 13:21:26 momjian Exp $ .TH "DROP USER" SQL 01/26/98 PostgreSQL PostgreSQL .SH NAME drop user -- drop user from within a PostgreSQL instance diff -cr --new-file postgresql-6.5.1/src/man/drop_view.l postgresql-6.5.2/src/man/drop_view.l *** postgresql-6.5.1/src/man/drop_view.l Wed Jun 24 09:21:26 1998 --- postgresql-6.5.2/src/man/drop_view.l Wed Jun 24 09:21:26 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/drop_view.l,v 1.4 1998/06/24 13:21:26 momjian Exp $ .TH "DROP VIEW" SQL 04/25/94 PostgreSQL PostgreSQL .SH NAME drop view - removes a view from Postgres --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/drop_view.l,v 1.4 1998/06/24 13:21:26 momjian Exp $ .TH "DROP VIEW" SQL 04/25/94 PostgreSQL PostgreSQL .SH NAME drop view - removes a view from Postgres diff -cr --new-file postgresql-6.5.1/src/man/end.l postgresql-6.5.2/src/man/end.l *** postgresql-6.5.1/src/man/end.l Tue Mar 24 20:54:52 1998 --- postgresql-6.5.2/src/man/end.l Tue Mar 24 20:54:52 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/end.l,v 1.4 1998/03/25 01:54:52 momjian Exp $ .TH END SQL 01/23/93 PostgreSQL PostgreSQL .SH NAME end - commit the current transaction --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/end.l,v 1.4 1998/03/25 01:54:52 momjian Exp $ .TH END SQL 01/23/93 PostgreSQL PostgreSQL .SH NAME end - commit the current transaction diff -cr --new-file postgresql-6.5.1/src/man/explain.l postgresql-6.5.2/src/man/explain.l *** postgresql-6.5.1/src/man/explain.l Mon May 17 13:03:51 1999 --- postgresql-6.5.2/src/man/explain.l Mon May 17 13:03:51 1999 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/explain.l,v 1.12 1999/05/17 17:03:51 momjian Exp $ .TH EXPLAIN SQL 06/12/97 PostgreSQL PostgreSQL .SH NAME explain - explains statement execution details --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/explain.l,v 1.12 1999/05/17 17:03:51 momjian Exp $ .TH EXPLAIN SQL 06/12/97 PostgreSQL PostgreSQL .SH NAME explain - explains statement execution details diff -cr --new-file postgresql-6.5.1/src/man/fetch.l postgresql-6.5.2/src/man/fetch.l *** postgresql-6.5.1/src/man/fetch.l Wed Jun 24 09:21:26 1998 --- postgresql-6.5.2/src/man/fetch.l Wed Jun 24 09:21:26 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/fetch.l,v 1.7 1998/06/24 13:21:26 momjian Exp $ .TH FETCH SQL 01/23/93 PostgreSQL PostgreSQL .SH NAME fetch - fetch instance(s) from a cursor --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/fetch.l,v 1.7 1998/06/24 13:21:26 momjian Exp $ .TH FETCH SQL 01/23/93 PostgreSQL PostgreSQL .SH NAME fetch - fetch instance(s) from a cursor diff -cr --new-file postgresql-6.5.1/src/man/grant.l postgresql-6.5.2/src/man/grant.l *** postgresql-6.5.1/src/man/grant.l Wed Jun 24 09:21:26 1998 --- postgresql-6.5.2/src/man/grant.l Wed Jun 24 09:21:26 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/grant.l,v 1.5 1998/06/24 13:21:26 momjian Exp $ .TH GRANT SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME grant - grant access control to a user or group --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/grant.l,v 1.5 1998/06/24 13:21:26 momjian Exp $ .TH GRANT SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME grant - grant access control to a user or group diff -cr --new-file postgresql-6.5.1/src/man/initdb.1 postgresql-6.5.2/src/man/initdb.1 *** postgresql-6.5.1/src/man/initdb.1 Wed Jun 24 09:21:26 1998 --- postgresql-6.5.2/src/man/initdb.1 Wed Jun 24 09:21:26 1998 *************** *** 1,5 **** .\" This is -*-nroff-*- ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/initdb.1,v 1.4 1998/06/24 13:21:26 momjian Exp $ .TH INITDB UNIX 11/29/96 PostgreSQL PostgreSQL .SH NAME initdb - create a new Postgres database system --- 1,5 ---- .\" This is -*-nroff-*- ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/initdb.1,v 1.4 1998/06/24 13:21:26 momjian Exp $ .TH INITDB UNIX 11/29/96 PostgreSQL PostgreSQL .SH NAME initdb - create a new Postgres database system diff -cr --new-file postgresql-6.5.1/src/man/initlocation.1 postgresql-6.5.2/src/man/initlocation.1 *** postgresql-6.5.1/src/man/initlocation.1 Sun Jan 11 17:17:38 1998 --- postgresql-6.5.2/src/man/initlocation.1 Sun Jan 11 17:17:38 1998 *************** *** 1,5 **** .\" This is -*-nroff-*- ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/initlocation.1,v 1.2 1998/01/11 22:17:38 momjian Exp $ .TH INITDB UNIX 11/05/97 PostgreSQL .SH NAME initlocation - create a new Postgres storage area --- 1,5 ---- .\" This is -*-nroff-*- ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/initlocation.1,v 1.2 1998/01/11 22:17:38 momjian Exp $ .TH INITDB UNIX 11/05/97 PostgreSQL .SH NAME initlocation - create a new Postgres storage area diff -cr --new-file postgresql-6.5.1/src/man/insert.l postgresql-6.5.2/src/man/insert.l *** postgresql-6.5.1/src/man/insert.l Tue Oct 13 22:54:36 1998 --- postgresql-6.5.2/src/man/insert.l Tue Oct 13 22:54:36 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/insert.l,v 1.12 1998/10/14 02:54:36 momjian Exp $ .TH INSERT SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME insert - insert tuples to a relation --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/insert.l,v 1.12 1998/10/14 02:54:36 momjian Exp $ .TH INSERT SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME insert - insert tuples to a relation diff -cr --new-file postgresql-6.5.1/src/man/ipcclean.1 postgresql-6.5.2/src/man/ipcclean.1 *** postgresql-6.5.1/src/man/ipcclean.1 Sun Jan 11 17:17:40 1998 --- postgresql-6.5.2/src/man/ipcclean.1 Sun Jan 11 17:17:40 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/ipcclean.1,v 1.3 1998/01/11 22:17:40 momjian Exp $ .TH IPCCLEAN UNIX 11/05/95 PostgreSQL PostgreSQL .SH NAME ipcclean - clean up shared memory and semaphores from aborted backends --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/ipcclean.1,v 1.3 1998/01/11 22:17:40 momjian Exp $ .TH IPCCLEAN UNIX 11/05/95 PostgreSQL PostgreSQL .SH NAME ipcclean - clean up shared memory and semaphores from aborted backends diff -cr --new-file postgresql-6.5.1/src/man/libpq.3 postgresql-6.5.2/src/man/libpq.3 *** postgresql-6.5.1/src/man/libpq.3 Thu May 20 20:36:01 1999 --- postgresql-6.5.2/src/man/libpq.3 Thu May 20 20:36:01 1999 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/libpq.3,v 1.27 1999/05/21 00:36:01 tgl Exp $ .TH LIBPQ INTRO 08/08/98 PostgreSQL PostgreSQL .SH DESCRIPTION Current documentation for this topic is available in the new Programmer's Guide --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/libpq.3,v 1.27 1999/05/21 00:36:01 tgl Exp $ .TH LIBPQ INTRO 08/08/98 PostgreSQL PostgreSQL .SH DESCRIPTION Current documentation for this topic is available in the new Programmer's Guide diff -cr --new-file postgresql-6.5.1/src/man/listen.l postgresql-6.5.2/src/man/listen.l *** postgresql-6.5.1/src/man/listen.l Wed Oct 7 21:16:17 1998 --- postgresql-6.5.2/src/man/listen.l Wed Oct 7 21:16:17 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/listen.l,v 1.9 1998/10/08 01:16:17 tgl Exp $ .TH "LISTEN" SQL 03/12/94 PostgreSQL PostgreSQL .SH NAME listen - listen for notification on a relation --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/listen.l,v 1.9 1998/10/08 01:16:17 tgl Exp $ .TH "LISTEN" SQL 03/12/94 PostgreSQL PostgreSQL .SH NAME listen - listen for notification on a relation diff -cr --new-file postgresql-6.5.1/src/man/load.l postgresql-6.5.2/src/man/load.l *** postgresql-6.5.1/src/man/load.l Fri Jul 24 20:17:30 1998 --- postgresql-6.5.2/src/man/load.l Fri Jul 24 20:17:30 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/load.l,v 1.4 1998/07/25 00:17:30 momjian Exp $ .TH LOAD SQL 01/23/93 PostgreSQL PostgreSQL .SH NAME load - dynamically load an object file --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/load.l,v 1.4 1998/07/25 00:17:30 momjian Exp $ .TH LOAD SQL 01/23/93 PostgreSQL PostgreSQL .SH NAME load - dynamically load an object file diff -cr --new-file postgresql-6.5.1/src/man/lock.l postgresql-6.5.2/src/man/lock.l *** postgresql-6.5.1/src/man/lock.l Tue Jun 8 23:51:40 1999 --- postgresql-6.5.2/src/man/lock.l Tue Jun 8 23:51:40 1999 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/lock.l,v 1.9 1999/06/09 03:51:40 vadim Exp $ .TH LOCK SQL 01/23/93 PostgreSQL PostgreSQL .SH NAME lock - Explicit lock of a table inside a transaction --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/lock.l,v 1.9 1999/06/09 03:51:40 vadim Exp $ .TH LOCK SQL 01/23/93 PostgreSQL PostgreSQL .SH NAME lock - Explicit lock of a table inside a transaction diff -cr --new-file postgresql-6.5.1/src/man/move.l postgresql-6.5.2/src/man/move.l *** postgresql-6.5.1/src/man/move.l Mon Mar 23 10:09:41 1998 --- postgresql-6.5.2/src/man/move.l Mon Mar 23 10:09:41 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/move.l,v 1.3 1998/03/23 15:09:41 momjian Exp $ .TH MOVE SQL 01/23/93 PostgreSQL PostgreSQL .SH NAME move - move cursor position --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/move.l,v 1.3 1998/03/23 15:09:41 momjian Exp $ .TH MOVE SQL 01/23/93 PostgreSQL PostgreSQL .SH NAME move - move cursor position diff -cr --new-file postgresql-6.5.1/src/man/notify.l postgresql-6.5.2/src/man/notify.l *** postgresql-6.5.1/src/man/notify.l Wed Oct 7 21:16:18 1998 --- postgresql-6.5.2/src/man/notify.l Wed Oct 7 21:16:18 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/notify.l,v 1.6 1998/10/08 01:16:18 tgl Exp $ .TH "NOTIFY" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME notify - signal all frontends and backends listening on a class --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/notify.l,v 1.6 1998/10/08 01:16:18 tgl Exp $ .TH "NOTIFY" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME notify - signal all frontends and backends listening on a class diff -cr --new-file postgresql-6.5.1/src/man/pg_dump.1 postgresql-6.5.2/src/man/pg_dump.1 *** postgresql-6.5.1/src/man/pg_dump.1 Thu May 27 12:29:05 1999 --- postgresql-6.5.2/src/man/pg_dump.1 Thu May 27 12:29:05 1999 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/pg_dump.1,v 1.17 1999/05/27 16:29:05 momjian Exp $ .TH PG_DUMP UNIX 7/15/98 PostgreSQL PostgreSQL .SH NAME pg_dump - dumps out a Postgres database into a script file --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/pg_dump.1,v 1.17 1999/05/27 16:29:05 momjian Exp $ .TH PG_DUMP UNIX 7/15/98 PostgreSQL PostgreSQL .SH NAME pg_dump - dumps out a Postgres database into a script file diff -cr --new-file postgresql-6.5.1/src/man/pg_dumpall.1 postgresql-6.5.2/src/man/pg_dumpall.1 *** postgresql-6.5.1/src/man/pg_dumpall.1 Wed Jun 24 09:21:28 1998 --- postgresql-6.5.2/src/man/pg_dumpall.1 Wed Jun 24 09:21:28 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/pg_dumpall.1,v 1.5 1998/06/24 13:21:28 momjian Exp $ .TH pg_dumpall UNIX 1/20/96 PostgreSQL PostgreSQL .SH NAME pg_dumpall - dumps out all Postgres databases into a script file --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/pg_dumpall.1,v 1.5 1998/06/24 13:21:28 momjian Exp $ .TH pg_dumpall UNIX 1/20/96 PostgreSQL PostgreSQL .SH NAME pg_dumpall - dumps out all Postgres databases into a script file diff -cr --new-file postgresql-6.5.1/src/man/pg_hba.conf.5 postgresql-6.5.2/src/man/pg_hba.conf.5 *** postgresql-6.5.1/src/man/pg_hba.conf.5 Tue Oct 13 22:54:37 1998 --- postgresql-6.5.2/src/man/pg_hba.conf.5 Tue Oct 13 22:54:37 1998 *************** *** 1,5 **** .\" This is -*-nroff-*- ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/pg_hba.conf.5,v 1.7 1998/10/14 02:54:37 momjian Exp $ .TH pg_hba.conf 5 1/26/98 PostgreSQL PostgreSQL .SH NAME $PGDATA/pg_hba.conf --- 1,5 ---- .\" This is -*-nroff-*- ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/pg_hba.conf.5,v 1.7 1998/10/14 02:54:37 momjian Exp $ .TH pg_hba.conf 5 1/26/98 PostgreSQL PostgreSQL .SH NAME $PGDATA/pg_hba.conf diff -cr --new-file postgresql-6.5.1/src/man/pg_passwd.1 postgresql-6.5.2/src/man/pg_passwd.1 *** postgresql-6.5.1/src/man/pg_passwd.1 Wed Jun 24 09:21:28 1998 --- postgresql-6.5.2/src/man/pg_passwd.1 Wed Jun 24 09:21:28 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/pg_passwd.1,v 1.4 1998/06/24 13:21:28 momjian Exp $ .TH PG_PASSWD UNIX 11/05/95 PostgreSQL PostgreSQL .SH NAME pg_passwd - manipulate the flat password file --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/pg_passwd.1,v 1.4 1998/06/24 13:21:28 momjian Exp $ .TH PG_PASSWD UNIX 11/05/95 PostgreSQL PostgreSQL .SH NAME pg_passwd - manipulate the flat password file diff -cr --new-file postgresql-6.5.1/src/man/pg_upgrade.1 postgresql-6.5.2/src/man/pg_upgrade.1 *** postgresql-6.5.1/src/man/pg_upgrade.1 Sat Oct 24 22:47:38 1998 --- postgresql-6.5.2/src/man/pg_upgrade.1 Sat Oct 24 22:47:38 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/pg_upgrade.1,v 1.5 1998/10/25 02:47:38 momjian Exp $ .TH pg_upgrade UNIX 1/20/96 PostgreSQL PostgreSQL .SH NAME pg_upgrade - allows upgrade from a previous release without reloading data --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/pg_upgrade.1,v 1.5 1998/10/25 02:47:38 momjian Exp $ .TH pg_upgrade UNIX 1/20/96 PostgreSQL PostgreSQL .SH NAME pg_upgrade - allows upgrade from a previous release without reloading data diff -cr --new-file postgresql-6.5.1/src/man/postgres.1 postgresql-6.5.2/src/man/postgres.1 *** postgresql-6.5.1/src/man/postgres.1 Sat May 22 13:47:47 1999 --- postgresql-6.5.2/src/man/postgres.1 Sat May 22 13:47:47 1999 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/postgres.1,v 1.16 1999/05/22 17:47:47 tgl Exp $ .TH POSTGRESQL UNIX 05/19/99 PostgreSQL PostgreSQL .SH NAME postgres - the Postgres backend server --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/postgres.1,v 1.16 1999/05/22 17:47:47 tgl Exp $ .TH POSTGRESQL UNIX 05/19/99 PostgreSQL PostgreSQL .SH NAME postgres - the Postgres backend server diff -cr --new-file postgresql-6.5.1/src/man/postmaster.1 postgresql-6.5.2/src/man/postmaster.1 *** postgresql-6.5.1/src/man/postmaster.1 Sat May 22 13:47:48 1999 --- postgresql-6.5.2/src/man/postmaster.1 Sat May 22 13:47:48 1999 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/postmaster.1,v 1.17 1999/05/22 17:47:48 tgl Exp $ .TH POSTMASTER UNIX 05/19/99 PostgreSQL PostgreSQL .SH "NAME" postmaster - run the Postgres postmaster --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/postmaster.1,v 1.17 1999/05/22 17:47:48 tgl Exp $ .TH POSTMASTER UNIX 05/19/99 PostgreSQL PostgreSQL .SH "NAME" postmaster - run the Postgres postmaster diff -cr --new-file postgresql-6.5.1/src/man/psql.1 postgresql-6.5.2/src/man/psql.1 *** postgresql-6.5.1/src/man/psql.1 Tue Mar 30 00:14:03 1999 --- postgresql-6.5.2/src/man/psql.1 Tue Mar 30 00:14:03 1999 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/psql.1,v 1.30 1999/03/30 05:14:03 ishii Exp $ .TH PSQL UNIX 1/20/96 PostgreSQL PostgreSQL .SH NAME psql - run the interactive query front-end --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/psql.1,v 1.30 1999/03/30 05:14:03 ishii Exp $ .TH PSQL UNIX 1/20/96 PostgreSQL PostgreSQL .SH NAME psql - run the interactive query front-end diff -cr --new-file postgresql-6.5.1/src/man/reset.l postgresql-6.5.2/src/man/reset.l *** postgresql-6.5.1/src/man/reset.l Tue Oct 13 22:36:43 1998 --- postgresql-6.5.2/src/man/reset.l Tue Oct 13 22:36:43 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/reset.l,v 1.5 1998/10/14 02:36:43 momjian Exp $ .TH RESET SQL 05/14/97 PostgreSQL PostgreSQL .SH NAME reset - restore run-time parameters for session to default values --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/reset.l,v 1.5 1998/10/14 02:36:43 momjian Exp $ .TH RESET SQL 05/14/97 PostgreSQL PostgreSQL .SH NAME reset - restore run-time parameters for session to default values diff -cr --new-file postgresql-6.5.1/src/man/revoke.l postgresql-6.5.2/src/man/revoke.l *** postgresql-6.5.1/src/man/revoke.l Wed Jun 24 09:21:29 1998 --- postgresql-6.5.2/src/man/revoke.l Wed Jun 24 09:21:29 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/revoke.l,v 1.4 1998/06/24 13:21:29 momjian Exp $ .TH REVOKE SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME revoke - revoke access privileges --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/revoke.l,v 1.4 1998/06/24 13:21:29 momjian Exp $ .TH REVOKE SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME revoke - revoke access privileges diff -cr --new-file postgresql-6.5.1/src/man/rollback.l postgresql-6.5.2/src/man/rollback.l *** postgresql-6.5.1/src/man/rollback.l Mon Mar 23 10:09:43 1998 --- postgresql-6.5.2/src/man/rollback.l Mon Mar 23 10:09:43 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/rollback.l,v 1.4 1998/03/23 15:09:43 momjian Exp $ .TH ROLLBACK SQL 01/20/96 PostgreSQL PostgreSQL .\" XXX This .XA has to go after the .TH so that the index page number goes .\" in the right place... --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/rollback.l,v 1.4 1998/03/23 15:09:43 momjian Exp $ .TH ROLLBACK SQL 01/20/96 PostgreSQL PostgreSQL .\" XXX This .XA has to go after the .TH so that the index page number goes .\" in the right place... diff -cr --new-file postgresql-6.5.1/src/man/select.l postgresql-6.5.2/src/man/select.l *** postgresql-6.5.1/src/man/select.l Thu Jun 3 15:52:09 1999 --- postgresql-6.5.2/src/man/select.l Thu Jun 3 15:52:09 1999 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/select.l,v 1.13 1999/06/03 19:52:09 momjian Exp $ .TH SELECT SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME select - retrieve instances from a class --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/select.l,v 1.13 1999/06/03 19:52:09 momjian Exp $ .TH SELECT SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME select - retrieve instances from a class diff -cr --new-file postgresql-6.5.1/src/man/set.l postgresql-6.5.2/src/man/set.l *** postgresql-6.5.1/src/man/set.l Thu Jun 17 11:16:06 1999 --- postgresql-6.5.2/src/man/set.l Thu Jun 17 11:16:06 1999 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/set.l,v 1.23 1999/06/17 15:16:06 momjian Exp $ .TH SET SQL 05/14/97 PostgreSQL PostgreSQL .SH NAME set - set run-time parameters for session --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/set.l,v 1.23 1999/06/17 15:16:06 momjian Exp $ .TH SET SQL 05/14/97 PostgreSQL PostgreSQL .SH NAME set - set run-time parameters for session diff -cr --new-file postgresql-6.5.1/src/man/show.l postgresql-6.5.2/src/man/show.l *** postgresql-6.5.1/src/man/show.l Tue Oct 13 22:36:45 1998 --- postgresql-6.5.2/src/man/show.l Tue Oct 13 22:36:45 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/show.l,v 1.5 1998/10/14 02:36:45 momjian Exp $ .TH SHOW SQL 05/14/97 PostgreSQL PostgreSQL .SH NAME show - show run-time parameters for session --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/show.l,v 1.5 1998/10/14 02:36:45 momjian Exp $ .TH SHOW SQL 05/14/97 PostgreSQL PostgreSQL .SH NAME show - show run-time parameters for session diff -cr --new-file postgresql-6.5.1/src/man/sql.l postgresql-6.5.2/src/man/sql.l *** postgresql-6.5.1/src/man/sql.l Thu Jul 16 11:54:39 1998 --- postgresql-6.5.2/src/man/sql.l Thu Jul 16 11:54:39 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/sql.l,v 1.13 1998/07/16 15:54:39 momjian Exp $ .TH INTRODUCTION SQL 11/5/95 PostgreSQL PostgreSQL .SH "Section 4 - SQL Commands (COMMANDS)" .SH "General Information" --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/sql.l,v 1.13 1998/07/16 15:54:39 momjian Exp $ .TH INTRODUCTION SQL 11/5/95 PostgreSQL PostgreSQL .SH "Section 4 - SQL Commands (COMMANDS)" .SH "General Information" diff -cr --new-file postgresql-6.5.1/src/man/update.l postgresql-6.5.2/src/man/update.l *** postgresql-6.5.1/src/man/update.l Tue Jun 23 13:52:38 1998 --- postgresql-6.5.2/src/man/update.l Tue Jun 23 13:52:38 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/update.l,v 1.5 1998/06/23 17:52:38 momjian Exp $ .TH UPDATE SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME update - replace values of attributes in a class --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/update.l,v 1.5 1998/06/23 17:52:38 momjian Exp $ .TH UPDATE SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME update - replace values of attributes in a class diff -cr --new-file postgresql-6.5.1/src/man/vacuum.l postgresql-6.5.2/src/man/vacuum.l *** postgresql-6.5.1/src/man/vacuum.l Tue Mar 24 20:54:53 1998 --- postgresql-6.5.2/src/man/vacuum.l Tue Mar 24 20:54:53 1998 *************** *** 1,6 **** .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/vacuum.l,v 1.9 1998/03/25 01:54:53 momjian Exp $ .TH VACUUM SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME vacuum - vacuum a database --- 1,6 ---- .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... ! .\" $Header: /usr/local/cvsroot/pgsql/src/man/Attic/vacuum.l,v 1.9 1998/03/25 01:54:53 momjian Exp $ .TH VACUUM SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME vacuum - vacuum a database diff -cr --new-file postgresql-6.5.1/src/pl/plpgsql/src/gram.y postgresql-6.5.2/src/pl/plpgsql/src/gram.y *** postgresql-6.5.1/src/pl/plpgsql/src/gram.y Sat Mar 20 21:27:47 1999 --- postgresql-6.5.2/src/pl/plpgsql/src/gram.y Mon Aug 16 15:55:46 1999 *************** *** 4,10 **** * procedural language * * IDENTIFICATION ! * $Header: /usr/local/cvsroot/pgsql/src/pl/plpgsql/src/gram.y,v 1.4 1999/03/21 02:27:47 tgl Exp $ * * This software is copyrighted by Jan Wieck - Hamburg. * --- 4,10 ---- * procedural language * * IDENTIFICATION ! * $Header: /usr/local/cvsroot/pgsql/src/pl/plpgsql/src/gram.y,v 1.4.2.1 1999/08/16 19:55:46 momjian Exp $ * * This software is copyrighted by Jan Wieck - Hamburg. * *************** *** 40,46 **** #include "string.h" #include "plpgsql.h" ! #include "pl_scan.c" static PLpgSQL_expr *read_sqlstmt(int until, char *s, char *sqlstart); static PLpgSQL_stmt *make_select_stmt(void); --- 40,48 ---- #include "string.h" #include "plpgsql.h" ! #ifdef YYBISON ! #include "pl_scan.c" /* GNU bison wants it here */ ! #endif static PLpgSQL_expr *read_sqlstmt(int until, char *s, char *sqlstart); static PLpgSQL_stmt *make_select_stmt(void); *************** *** 1079,1084 **** --- 1081,1091 ---- ; %% + + #ifndef YYBISON + #include "pl_scan.c" /* BSD yacc wants it here */ + #endif + PLpgSQL_expr * plpgsql_read_expression (int until, char *s) diff -cr --new-file postgresql-6.5.1/src/pl/tcl/mkMakefile.tcldefs.sh.in postgresql-6.5.2/src/pl/tcl/mkMakefile.tcldefs.sh.in *** postgresql-6.5.1/src/pl/tcl/mkMakefile.tcldefs.sh.in Mon Oct 12 00:45:22 1998 --- postgresql-6.5.2/src/pl/tcl/mkMakefile.tcldefs.sh.in Sun Aug 29 16:11:49 1999 *************** *** 1,16 **** ! if [ ! -f @TCL_CONFIG_SH@ ]; then echo "@TCL_CONFIG_SH@ not found" echo "I need this file! Please make a symbolic link to this file" echo "and start make again." exit 1 fi cat @TCL_CONFIG_SH@ | egrep '^TCL_|^TK_' | ! while read inp do ! eval eval echo $inp done >Makefile.tcldefs exit 0 --- 1,23 ---- + #! /bin/sh ! if [ ! -r @TCL_CONFIG_SH@ ]; then echo "@TCL_CONFIG_SH@ not found" echo "I need this file! Please make a symbolic link to this file" echo "and start make again." exit 1 fi + # Source the file to obtain the correctly expanded variable definitions + . @TCL_CONFIG_SH@ + + # Read the file a second time as an easy way of getting the list of variable + # definitions to output. cat @TCL_CONFIG_SH@ | egrep '^TCL_|^TK_' | ! sed 's/^\([^=]*\)=.*$/\1/' | ! while read var do ! eval echo "\"$var = \$$var\"" done >Makefile.tcldefs exit 0 diff -cr --new-file postgresql-6.5.1/src/template/linux_alpha postgresql-6.5.2/src/template/linux_alpha *** postgresql-6.5.1/src/template/linux_alpha Wed Jun 9 08:39:46 1999 --- postgresql-6.5.2/src/template/linux_alpha Thu Jul 29 23:26:29 1999 *************** *** 1,5 **** AROPT:crs ! CFLAGS:-O -mieee # optimization -O2 removed because of egcs problem SHARED_LIB:-fpic ALL: SRCH_INC: --- 1,5 ---- AROPT:crs ! CFLAGS:-O2 SHARED_LIB:-fpic ALL: SRCH_INC: diff -cr --new-file postgresql-6.5.1/src/test/regress/expected/rules.out postgresql-6.5.2/src/test/regress/expected/rules.out *** postgresql-6.5.1/src/test/regress/expected/rules.out Wed Jun 2 07:52:29 1999 --- postgresql-6.5.2/src/test/regress/expected/rules.out Sun Aug 29 15:22:28 1999 *************** *** 1065,1124 **** (9 rows) QUERY: SELECT viewname, definition FROM pg_views ORDER BY viewname; ! viewname |definition ! ------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ! iexit |SELECT "ih"."name", "ih"."thepath", "interpt_pp"("ih"."thepath", "r"."thepath") AS "exit" FROM "ihighway" "ih", "ramp" "r" WHERE "ih"."thepath" ## "r"."thepath"; ! pg_indexes |SELECT "c"."relname" AS "tablename", "i"."relname" AS "indexname", "pg_get_indexdef"("x"."indexrelid") AS "indexdef" FROM "pg_index" "x", "pg_class" "c", "pg_class" "i" WHERE ("c"."oid" = "x"."indrelid") AND ("i"."oid" = "x"."indexrelid"); ! pg_rules |SELECT "c"."relname" AS "tablename", "r"."rulename", "pg_get_ruledef"("r"."rulename") AS "definition" FROM "pg_rewrite" "r", "pg_class" "c" WHERE ("r"."rulename" !~ '^_RET'::"text") AND ("c"."oid" = "r"."ev_class"); ! pg_tables |SELECT "c"."relname" AS "tablename", "pg_get_userbyid"("c"."relowner") AS "tableowner", "c"."relhasindex" AS "hasindexes", "c"."relhasrules" AS "hasrules", "c"."reltriggers" > '0'::"int4" AS "hastriggers" FROM "pg_class" "c" WHERE (("c"."relkind" = 'r'::"char") OR ("c"."relkind" = 's'::"char")) AND (NOT (EXISTS (SELECT "rulename" FROM "pg_rewrite" WHERE ("ev_class" = "c"."oid") AND ("ev_type" = '1'::"char")))); ! pg_user |SELECT "usename", "usesysid", "usecreatedb", "usetrace", "usesuper", "usecatupd", '********'::"text" AS "passwd", "valuntil" FROM "pg_shadow"; ! pg_views |SELECT "c"."relname" AS "viewname", "pg_get_userbyid"("c"."relowner") AS "viewowner", "pg_get_viewdef"("c"."relname") AS "definition" FROM "pg_class" "c" WHERE ("c"."relhasrules") AND (EXISTS (SELECT "r"."rulename" FROM "pg_rewrite" "r" WHERE ("r"."ev_class" = "c"."oid") AND ("r"."ev_type" = '1'::"char"))); ! rtest_v1 |SELECT "a", "b" FROM "rtest_t1"; ! rtest_vcomp |SELECT "x"."part", "x"."size" * "y"."factor" AS "size_in_cm" FROM "rtest_comp" "x", "rtest_unitfact" "y" WHERE "x"."unit" = "y"."unit"; ! rtest_vview1 |SELECT "x"."a", "x"."b" FROM "rtest_view1" "x" WHERE '0'::"int4" < (SELECT "count"("y"."a") AS "count" FROM "rtest_view2" "y" WHERE "y"."a" = "x"."a"); ! rtest_vview2 |SELECT "a", "b" FROM "rtest_view1" WHERE "v"; ! rtest_vview3 |SELECT "x"."a", "x"."b" FROM "rtest_vview2" "x" WHERE '0'::"int4" < (SELECT "count"("y"."a") AS "count" FROM "rtest_view2" "y" WHERE "y"."a" = "x"."a"); ! rtest_vview4 |SELECT "x"."a", "x"."b", "count"("y"."a") AS "refcount" FROM "rtest_view1" "x", "rtest_view2" "y" WHERE "x"."a" = "y"."a" GROUP BY "x"."a", "x"."b"; ! rtest_vview5 |SELECT "a", "b", "rtest_viewfunc1"("a") AS "refcount" FROM "rtest_view1"; ! shoe |SELECT "sh"."shoename", "sh"."sh_avail", "sh"."slcolor", "sh"."slminlen", "sh"."slminlen" * "un"."un_fact" AS "slminlen_cm", "sh"."slmaxlen", "sh"."slmaxlen" * "un"."un_fact" AS "slmaxlen_cm", "sh"."slunit" FROM "shoe_data" "sh", "unit" "un" WHERE "sh"."slunit" = "un"."un_name"; ! shoe_ready |SELECT "rsh"."shoename", "rsh"."sh_avail", "rsl"."sl_name", "rsl"."sl_avail", "int4smaller"("rsh"."sh_avail", "rsl"."sl_avail") AS "total_avail" FROM "shoe" "rsh", "shoelace" "rsl" WHERE (("rsl"."sl_color" = "rsh"."slcolor") AND ("rsl"."sl_len_cm" >= "rsh"."slminlen_cm")) AND ("rsl"."sl_len_cm" <= "rsh"."slmaxlen_cm"); ! shoelace |SELECT "s"."sl_name", "s"."sl_avail", "s"."sl_color", "s"."sl_len", "s"."sl_unit", "s"."sl_len" * "u"."un_fact" AS "sl_len_cm" FROM "shoelace_data" "s", "unit" "u" WHERE "s"."sl_unit" = "u"."un_name"; ! shoelace_candelete|SELECT "sl_name", "sl_avail", "sl_color", "sl_len", "sl_unit", "sl_len_cm" FROM "shoelace_obsolete" WHERE "sl_avail" = '0'::"int4"; ! shoelace_obsolete |SELECT "sl_name", "sl_avail", "sl_color", "sl_len", "sl_unit", "sl_len_cm" FROM "shoelace" WHERE NOT (EXISTS (SELECT "shoename" FROM "shoe" WHERE "slcolor" = "sl_color")); ! street |SELECT "r"."name", "r"."thepath", "c"."cname" FROM "road" "r", "real_city" "c" WHERE "c"."outline" ## "r"."thepath"; ! toyemp |SELECT "name", "age", "location", '12'::"int4" * "salary" AS "annualsal" FROM "emp"; (20 rows) QUERY: SELECT tablename, rulename, definition FROM pg_rules ORDER BY tablename, rulename; ! tablename |rulename |definition ! -------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ! rtest_emp |rtest_emp_del |CREATE RULE "rtest_emp_del" AS ON DELETE TO "rtest_emp" DO INSERT INTO "rtest_emplog" ("ename", "who", "action", "newsal", "oldsal") VALUES (old."ename", "getpgusername"(), 'fired'::"bpchar", '$0.00'::"money", old."salary"); ! rtest_emp |rtest_emp_ins |CREATE RULE "rtest_emp_ins" AS ON INSERT TO "rtest_emp" DO INSERT INTO "rtest_emplog" ("ename", "who", "action", "newsal", "oldsal") VALUES (new."ename", "getpgusername"(), 'hired'::"bpchar", new."salary", '$0.00'::"money"); ! rtest_emp |rtest_emp_upd |CREATE RULE "rtest_emp_upd" AS ON UPDATE TO "rtest_emp" WHERE new."salary" <> old."salary" DO INSERT INTO "rtest_emplog" ("ename", "who", "action", "newsal", "oldsal") VALUES (new."ename", "getpgusername"(), 'honored'::"bpchar", new."salary", old."salary"); ! rtest_nothn1 |rtest_nothn_r1 |CREATE RULE "rtest_nothn_r1" AS ON INSERT TO "rtest_nothn1" WHERE (new."a" >= '10'::"int4") AND (new."a" < '20'::"int4") DO INSTEAD SELECT '1'::"int4"; ! rtest_nothn1 |rtest_nothn_r2 |CREATE RULE "rtest_nothn_r2" AS ON INSERT TO "rtest_nothn1" WHERE (new."a" >= '30'::"int4") AND (new."a" < '40'::"int4") DO INSTEAD NOTHING; ! rtest_nothn2 |rtest_nothn_r3 |CREATE RULE "rtest_nothn_r3" AS ON INSERT TO "rtest_nothn2" WHERE new."a" >= '100'::"int4" DO INSTEAD INSERT INTO "rtest_nothn3" ("a", "b") VALUES (new."a", new."b"); ! rtest_nothn2 |rtest_nothn_r4 |CREATE RULE "rtest_nothn_r4" AS ON INSERT TO "rtest_nothn2" DO INSTEAD NOTHING; ! rtest_order1 |rtest_order_r1 |CREATE RULE "rtest_order_r1" AS ON INSERT TO "rtest_order1" DO INSTEAD INSERT INTO "rtest_order2" ("a", "b", "c") VALUES (new."a", "nextval"('rtest_seq'::"text"), 'rule 1 - this should run 3rd or 4th'::"text"); ! rtest_order1 |rtest_order_r2 |CREATE RULE "rtest_order_r2" AS ON INSERT TO "rtest_order1" DO INSERT INTO "rtest_order2" ("a", "b", "c") VALUES (new."a", "nextval"('rtest_seq'::"text"), 'rule 2 - this should run 1st'::"text"); ! rtest_order1 |rtest_order_r3 |CREATE RULE "rtest_order_r3" AS ON INSERT TO "rtest_order1" DO INSTEAD INSERT INTO "rtest_order2" ("a", "b", "c") VALUES (new."a", "nextval"('rtest_seq'::"text"), 'rule 3 - this should run 3rd or 4th'::"text"); ! rtest_order1 |rtest_order_r4 |CREATE RULE "rtest_order_r4" AS ON INSERT TO "rtest_order1" WHERE "a" < '100'::"int4" DO INSTEAD INSERT INTO "rtest_order2" ("a", "b", "c") VALUES (new."a", "nextval"('rtest_seq'::"text"), 'rule 4 - this should run 2nd'::"text"); ! rtest_person |rtest_pers_del |CREATE RULE "rtest_pers_del" AS ON DELETE TO "rtest_person" DO DELETE FROM "rtest_admin" WHERE "pname" = old."pname"; ! rtest_person |rtest_pers_upd |CREATE RULE "rtest_pers_upd" AS ON UPDATE TO "rtest_person" DO UPDATE rtest_admin SET "pname" = new."pname" WHERE "pname" = old."pname"; ! rtest_system |rtest_sys_del |CREATE RULE "rtest_sys_del" AS ON DELETE TO "rtest_system" DO (DELETE FROM "rtest_interface" WHERE "sysname" = old."sysname"; DELETE FROM "rtest_admin" WHERE "sysname" = old."sysname"; ); ! rtest_system |rtest_sys_upd |CREATE RULE "rtest_sys_upd" AS ON UPDATE TO "rtest_system" DO (UPDATE rtest_interface SET "sysname" = new."sysname" WHERE "sysname" = old."sysname"; UPDATE rtest_admin SET "sysname" = new."sysname" WHERE "sysname" = old."sysname"; ); ! rtest_t4 |rtest_t4_ins1 |CREATE RULE "rtest_t4_ins1" AS ON INSERT TO "rtest_t4" WHERE (new."a" >= '10'::"int4") AND (new."a" < '20'::"int4") DO INSTEAD INSERT INTO "rtest_t5" ("a", "b") VALUES (new."a", new."b"); ! rtest_t4 |rtest_t4_ins2 |CREATE RULE "rtest_t4_ins2" AS ON INSERT TO "rtest_t4" WHERE (new."a" >= '20'::"int4") AND (new."a" < '30'::"int4") DO INSERT INTO "rtest_t6" ("a", "b") VALUES (new."a", new."b"); ! rtest_t5 |rtest_t5_ins |CREATE RULE "rtest_t5_ins" AS ON INSERT TO "rtest_t5" WHERE new."a" > '15'::"int4" DO INSERT INTO "rtest_t7" ("a", "b") VALUES (new."a", new."b"); ! rtest_t6 |rtest_t6_ins |CREATE RULE "rtest_t6_ins" AS ON INSERT TO "rtest_t6" WHERE new."a" > '25'::"int4" DO INSTEAD INSERT INTO "rtest_t8" ("a", "b") VALUES (new."a", new."b"); ! rtest_v1 |rtest_v1_del |CREATE RULE "rtest_v1_del" AS ON DELETE TO "rtest_v1" DO INSTEAD DELETE FROM "rtest_t1" WHERE "a" = old."a"; ! rtest_v1 |rtest_v1_ins |CREATE RULE "rtest_v1_ins" AS ON INSERT TO "rtest_v1" DO INSTEAD INSERT INTO "rtest_t1" ("a", "b") VALUES (new."a", new."b"); ! rtest_v1 |rtest_v1_upd |CREATE RULE "rtest_v1_upd" AS ON UPDATE TO "rtest_v1" DO INSTEAD UPDATE rtest_t1 SET "a" = new."a", "b" = new."b" WHERE "a" = old."a"; ! shoelace |shoelace_del |CREATE RULE "shoelace_del" AS ON DELETE TO "shoelace" DO INSTEAD DELETE FROM "shoelace_data" WHERE "sl_name" = old."sl_name"; ! shoelace |shoelace_ins |CREATE RULE "shoelace_ins" AS ON INSERT TO "shoelace" DO INSTEAD INSERT INTO "shoelace_data" ("sl_name", "sl_avail", "sl_color", "sl_len", "sl_unit") VALUES (new."sl_name", new."sl_avail", new."sl_color", new."sl_len", new."sl_unit"); ! shoelace |shoelace_upd |CREATE RULE "shoelace_upd" AS ON UPDATE TO "shoelace" DO INSTEAD UPDATE shoelace_data SET "sl_name" = new."sl_name", "sl_avail" = new."sl_avail", "sl_color" = new."sl_color", "sl_len" = new."sl_len", "sl_unit" = new."sl_unit" WHERE "sl_name" = old."sl_name"; ! shoelace_data|log_shoelace |CREATE RULE "log_shoelace" AS ON UPDATE TO "shoelace_data" WHERE new."sl_avail" <> old."sl_avail" DO INSERT INTO "shoelace_log" ("sl_name", "sl_avail", "log_who", "log_when") VALUES (new."sl_name", new."sl_avail", 'Al Bundy'::"name", "datetime"('epoch'::"text")); ! shoelace_ok |shoelace_ok_ins|CREATE RULE "shoelace_ok_ins" AS ON INSERT TO "shoelace_ok" DO INSTEAD UPDATE shoelace SET "sl_avail" = "sl_avail" + new."ok_quant" WHERE "sl_name" = new."ok_name"; (27 rows) --- 1065,1124 ---- (9 rows) QUERY: SELECT viewname, definition FROM pg_views ORDER BY viewname; ! viewname |definition ! ------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ! iexit |SELECT "ih"."name", "ih"."thepath", "interpt_pp"("ih"."thepath", "r"."thepath") AS "exit" FROM "ihighway" "ih", "ramp" "r" WHERE ("ih"."thepath" ## "r"."thepath"); ! pg_indexes |SELECT "c"."relname" AS "tablename", "i"."relname" AS "indexname", "pg_get_indexdef"("x"."indexrelid") AS "indexdef" FROM "pg_index" "x", "pg_class" "c", "pg_class" "i" WHERE (("c"."oid" = "x"."indrelid") AND ("i"."oid" = "x"."indexrelid")); ! pg_rules |SELECT "c"."relname" AS "tablename", "r"."rulename", "pg_get_ruledef"("r"."rulename") AS "definition" FROM "pg_rewrite" "r", "pg_class" "c" WHERE (("r"."rulename" !~ '^_RET'::"text") AND ("c"."oid" = "r"."ev_class")); ! pg_tables |SELECT "c"."relname" AS "tablename", "pg_get_userbyid"("c"."relowner") AS "tableowner", "c"."relhasindex" AS "hasindexes", "c"."relhasrules" AS "hasrules", ("c"."reltriggers" > '0'::"int4") AS "hastriggers" FROM "pg_class" "c" WHERE ((("c"."relkind" = 'r'::"char") OR ("c"."relkind" = 's'::"char")) AND (NOT (EXISTS (SELECT "pg_rewrite"."rulename" FROM "pg_rewrite" WHERE (("pg_rewrite"."ev_class" = "c"."oid") AND ("pg_rewrite"."ev_type" = '1'::"char")))))); ! pg_user |SELECT "pg_shadow"."usename", "pg_shadow"."usesysid", "pg_shadow"."usecreatedb", "pg_shadow"."usetrace", "pg_shadow"."usesuper", "pg_shadow"."usecatupd", '********'::"text" AS "passwd", "pg_shadow"."valuntil" FROM "pg_shadow"; ! pg_views |SELECT "c"."relname" AS "viewname", "pg_get_userbyid"("c"."relowner") AS "viewowner", "pg_get_viewdef"("c"."relname") AS "definition" FROM "pg_class" "c" WHERE ("c"."relhasrules" AND (EXISTS (SELECT "r"."rulename" FROM "pg_rewrite" "r" WHERE (("r"."ev_class" = "c"."oid") AND ("r"."ev_type" = '1'::"char"))))); ! rtest_v1 |SELECT "rtest_t1"."a", "rtest_t1"."b" FROM "rtest_t1"; ! rtest_vcomp |SELECT "x"."part", ("x"."size" * "y"."factor") AS "size_in_cm" FROM "rtest_comp" "x", "rtest_unitfact" "y" WHERE ("x"."unit" = "y"."unit"); ! rtest_vview1 |SELECT "x"."a", "x"."b" FROM "rtest_view1" "x" WHERE ('0'::"int4" < (SELECT "count"("y"."a") AS "count" FROM "rtest_view2" "y" WHERE ("y"."a" = "x"."a"))); ! rtest_vview2 |SELECT "rtest_view1"."a", "rtest_view1"."b" FROM "rtest_view1" WHERE "rtest_view1"."v"; ! rtest_vview3 |SELECT "x"."a", "x"."b" FROM "rtest_vview2" "x" WHERE ('0'::"int4" < (SELECT "count"("y"."a") AS "count" FROM "rtest_view2" "y" WHERE ("y"."a" = "x"."a"))); ! rtest_vview4 |SELECT "x"."a", "x"."b", "count"("y"."a") AS "refcount" FROM "rtest_view1" "x", "rtest_view2" "y" WHERE ("x"."a" = "y"."a") GROUP BY "x"."a", "x"."b"; ! rtest_vview5 |SELECT "rtest_view1"."a", "rtest_view1"."b", "rtest_viewfunc1"("rtest_view1"."a") AS "refcount" FROM "rtest_view1"; ! shoe |SELECT "sh"."shoename", "sh"."sh_avail", "sh"."slcolor", "sh"."slminlen", ("sh"."slminlen" * "un"."un_fact") AS "slminlen_cm", "sh"."slmaxlen", ("sh"."slmaxlen" * "un"."un_fact") AS "slmaxlen_cm", "sh"."slunit" FROM "shoe_data" "sh", "unit" "un" WHERE ("sh"."slunit" = "un"."un_name"); ! shoe_ready |SELECT "rsh"."shoename", "rsh"."sh_avail", "rsl"."sl_name", "rsl"."sl_avail", "int4smaller"("rsh"."sh_avail", "rsl"."sl_avail") AS "total_avail" FROM "shoe" "rsh", "shoelace" "rsl" WHERE ((("rsl"."sl_color" = "rsh"."slcolor") AND ("rsl"."sl_len_cm" >= "rsh"."slminlen_cm")) AND ("rsl"."sl_len_cm" <= "rsh"."slmaxlen_cm")); ! shoelace |SELECT "s"."sl_name", "s"."sl_avail", "s"."sl_color", "s"."sl_len", "s"."sl_unit", ("s"."sl_len" * "u"."un_fact") AS "sl_len_cm" FROM "shoelace_data" "s", "unit" "u" WHERE ("s"."sl_unit" = "u"."un_name"); ! shoelace_candelete|SELECT "shoelace_obsolete"."sl_name", "shoelace_obsolete"."sl_avail", "shoelace_obsolete"."sl_color", "shoelace_obsolete"."sl_len", "shoelace_obsolete"."sl_unit", "shoelace_obsolete"."sl_len_cm" FROM "shoelace_obsolete" WHERE ("shoelace_obsolete"."sl_avail" = '0'::"int4"); ! shoelace_obsolete |SELECT "shoelace"."sl_name", "shoelace"."sl_avail", "shoelace"."sl_color", "shoelace"."sl_len", "shoelace"."sl_unit", "shoelace"."sl_len_cm" FROM "shoelace" WHERE (NOT (EXISTS (SELECT "shoe"."shoename" FROM "shoe" WHERE ("shoe"."slcolor" = "shoelace"."sl_color")))); ! street |SELECT "r"."name", "r"."thepath", "c"."cname" FROM "road" "r", "real_city" "c" WHERE ("c"."outline" ## "r"."thepath"); ! toyemp |SELECT "emp"."name", "emp"."age", "emp"."location", ('12'::"int4" * "emp"."salary") AS "annualsal" FROM "emp"; (20 rows) QUERY: SELECT tablename, rulename, definition FROM pg_rules ORDER BY tablename, rulename; ! tablename |rulename |definition ! -------------+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ! rtest_emp |rtest_emp_del |CREATE RULE "rtest_emp_del" AS ON DELETE TO "rtest_emp" DO INSERT INTO "rtest_emplog" ("ename", "who", "action", "newsal", "oldsal") VALUES (old."ename", "getpgusername"(), 'fired'::"bpchar", '$0.00'::"money", old."salary"); ! rtest_emp |rtest_emp_ins |CREATE RULE "rtest_emp_ins" AS ON INSERT TO "rtest_emp" DO INSERT INTO "rtest_emplog" ("ename", "who", "action", "newsal", "oldsal") VALUES (new."ename", "getpgusername"(), 'hired'::"bpchar", new."salary", '$0.00'::"money"); ! rtest_emp |rtest_emp_upd |CREATE RULE "rtest_emp_upd" AS ON UPDATE TO "rtest_emp" WHERE (new."salary" <> old."salary") DO INSERT INTO "rtest_emplog" ("ename", "who", "action", "newsal", "oldsal") VALUES (new."ename", "getpgusername"(), 'honored'::"bpchar", new."salary", old."salary"); ! rtest_nothn1 |rtest_nothn_r1 |CREATE RULE "rtest_nothn_r1" AS ON INSERT TO "rtest_nothn1" WHERE ((new."a" >= '10'::"int4") AND (new."a" < '20'::"int4")) DO INSTEAD SELECT '1'::"int4"; ! rtest_nothn1 |rtest_nothn_r2 |CREATE RULE "rtest_nothn_r2" AS ON INSERT TO "rtest_nothn1" WHERE ((new."a" >= '30'::"int4") AND (new."a" < '40'::"int4")) DO INSTEAD NOTHING; ! rtest_nothn2 |rtest_nothn_r3 |CREATE RULE "rtest_nothn_r3" AS ON INSERT TO "rtest_nothn2" WHERE (new."a" >= '100'::"int4") DO INSTEAD INSERT INTO "rtest_nothn3" ("a", "b") VALUES (new."a", new."b"); ! rtest_nothn2 |rtest_nothn_r4 |CREATE RULE "rtest_nothn_r4" AS ON INSERT TO "rtest_nothn2" DO INSTEAD NOTHING; ! rtest_order1 |rtest_order_r1 |CREATE RULE "rtest_order_r1" AS ON INSERT TO "rtest_order1" DO INSTEAD INSERT INTO "rtest_order2" ("a", "b", "c") VALUES (new."a", "nextval"('rtest_seq'::"text"), 'rule 1 - this should run 3rd or 4th'::"text"); ! rtest_order1 |rtest_order_r2 |CREATE RULE "rtest_order_r2" AS ON INSERT TO "rtest_order1" DO INSERT INTO "rtest_order2" ("a", "b", "c") VALUES (new."a", "nextval"('rtest_seq'::"text"), 'rule 2 - this should run 1st'::"text"); ! rtest_order1 |rtest_order_r3 |CREATE RULE "rtest_order_r3" AS ON INSERT TO "rtest_order1" DO INSTEAD INSERT INTO "rtest_order2" ("a", "b", "c") VALUES (new."a", "nextval"('rtest_seq'::"text"), 'rule 3 - this should run 3rd or 4th'::"text"); ! rtest_order1 |rtest_order_r4 |CREATE RULE "rtest_order_r4" AS ON INSERT TO "rtest_order1" WHERE ("rtest_order2"."a" < '100'::"int4") DO INSTEAD INSERT INTO "rtest_order2" ("a", "b", "c") VALUES (new."a", "nextval"('rtest_seq'::"text"), 'rule 4 - this should run 2nd'::"text"); ! rtest_person |rtest_pers_del |CREATE RULE "rtest_pers_del" AS ON DELETE TO "rtest_person" DO DELETE FROM "rtest_admin" WHERE ("rtest_admin"."pname" = old."pname"); ! rtest_person |rtest_pers_upd |CREATE RULE "rtest_pers_upd" AS ON UPDATE TO "rtest_person" DO UPDATE rtest_admin SET "pname" = new."pname" WHERE ("rtest_admin"."pname" = old."pname"); ! rtest_system |rtest_sys_del |CREATE RULE "rtest_sys_del" AS ON DELETE TO "rtest_system" DO (DELETE FROM "rtest_interface" WHERE ("rtest_interface"."sysname" = old."sysname"); DELETE FROM "rtest_admin" WHERE ("rtest_admin"."sysname" = old."sysname"); ); ! rtest_system |rtest_sys_upd |CREATE RULE "rtest_sys_upd" AS ON UPDATE TO "rtest_system" DO (UPDATE rtest_interface SET "sysname" = new."sysname" WHERE ("rtest_interface"."sysname" = old."sysname"); UPDATE rtest_admin SET "sysname" = new."sysname" WHERE ("rtest_admin"."sysname" = old."sysname"); ); ! rtest_t4 |rtest_t4_ins1 |CREATE RULE "rtest_t4_ins1" AS ON INSERT TO "rtest_t4" WHERE ((new."a" >= '10'::"int4") AND (new."a" < '20'::"int4")) DO INSTEAD INSERT INTO "rtest_t5" ("a", "b") VALUES (new."a", new."b"); ! rtest_t4 |rtest_t4_ins2 |CREATE RULE "rtest_t4_ins2" AS ON INSERT TO "rtest_t4" WHERE ((new."a" >= '20'::"int4") AND (new."a" < '30'::"int4")) DO INSERT INTO "rtest_t6" ("a", "b") VALUES (new."a", new."b"); ! rtest_t5 |rtest_t5_ins |CREATE RULE "rtest_t5_ins" AS ON INSERT TO "rtest_t5" WHERE (new."a" > '15'::"int4") DO INSERT INTO "rtest_t7" ("a", "b") VALUES (new."a", new."b"); ! rtest_t6 |rtest_t6_ins |CREATE RULE "rtest_t6_ins" AS ON INSERT TO "rtest_t6" WHERE (new."a" > '25'::"int4") DO INSTEAD INSERT INTO "rtest_t8" ("a", "b") VALUES (new."a", new."b"); ! rtest_v1 |rtest_v1_del |CREATE RULE "rtest_v1_del" AS ON DELETE TO "rtest_v1" DO INSTEAD DELETE FROM "rtest_t1" WHERE ("rtest_t1"."a" = old."a"); ! rtest_v1 |rtest_v1_ins |CREATE RULE "rtest_v1_ins" AS ON INSERT TO "rtest_v1" DO INSTEAD INSERT INTO "rtest_t1" ("a", "b") VALUES (new."a", new."b"); ! rtest_v1 |rtest_v1_upd |CREATE RULE "rtest_v1_upd" AS ON UPDATE TO "rtest_v1" DO INSTEAD UPDATE rtest_t1 SET "a" = new."a", "b" = new."b" WHERE ("rtest_t1"."a" = old."a"); ! shoelace |shoelace_del |CREATE RULE "shoelace_del" AS ON DELETE TO "shoelace" DO INSTEAD DELETE FROM "shoelace_data" WHERE ("shoelace_data"."sl_name" = old."sl_name"); ! shoelace |shoelace_ins |CREATE RULE "shoelace_ins" AS ON INSERT TO "shoelace" DO INSTEAD INSERT INTO "shoelace_data" ("sl_name", "sl_avail", "sl_color", "sl_len", "sl_unit") VALUES (new."sl_name", new."sl_avail", new."sl_color", new."sl_len", new."sl_unit"); ! shoelace |shoelace_upd |CREATE RULE "shoelace_upd" AS ON UPDATE TO "shoelace" DO INSTEAD UPDATE shoelace_data SET "sl_name" = new."sl_name", "sl_avail" = new."sl_avail", "sl_color" = new."sl_color", "sl_len" = new."sl_len", "sl_unit" = new."sl_unit" WHERE ("shoelace_data"."sl_name" = old."sl_name"); ! shoelace_data|log_shoelace |CREATE RULE "log_shoelace" AS ON UPDATE TO "shoelace_data" WHERE (new."sl_avail" <> old."sl_avail") DO INSERT INTO "shoelace_log" ("sl_name", "sl_avail", "log_who", "log_when") VALUES (new."sl_name", new."sl_avail", 'Al Bundy'::"name", "datetime"('epoch'::"text")); ! shoelace_ok |shoelace_ok_ins|CREATE RULE "shoelace_ok_ins" AS ON INSERT TO "shoelace_ok" DO INSTEAD UPDATE shoelace SET "sl_avail" = ("shoelace"."sl_avail" + new."ok_quant") WHERE ("shoelace"."sl_name" = new."ok_name"); (27 rows) diff -cr --new-file postgresql-6.5.1/src/test/regress/expected/select_implicit.out postgresql-6.5.2/src/test/regress/expected/select_implicit.out *** postgresql-6.5.1/src/test/regress/expected/select_implicit.out Tue Feb 23 02:31:02 1999 --- postgresql-6.5.2/src/test/regress/expected/select_implicit.out Sun Aug 8 17:39:34 1999 *************** *** 176,187 **** 1| 5 (2 rows) ! QUERY: /* ! NOTE: as of 1998-08-01 a bug was detected unrelated to this feature which ! requires the aggragate function argument to be the same as some non-agragate ! in the target list. (i.e. count(*) and count(b) crash the backend.) ! */ ! SELECT count(c) FROM test_missing_target GROUP BY lower(test_missing_target.c); count ----- 2 --- 176,182 ---- 1| 5 (2 rows) ! QUERY: SELECT count(c) FROM test_missing_target GROUP BY lower(test_missing_target.c); count ----- 2 diff -cr --new-file postgresql-6.5.1/src/test/regress/sql/select_implicit.sql postgresql-6.5.2/src/test/regress/sql/select_implicit.sql *** postgresql-6.5.1/src/test/regress/sql/select_implicit.sql Sat Aug 29 00:10:40 1998 --- postgresql-6.5.2/src/test/regress/sql/select_implicit.sql Fri Jul 30 00:23:23 1999 *************** *** 53,90 **** -- failure expected SELECT c, count(*) FROM test_missing_target GROUP BY 3; ! -- group w/o existing GROUP BY and ORDER BY target under ambigious condition -- failure expected SELECT count(*) FROM test_missing_target x, test_missing_target y WHERE x.a = y.a GROUP BY b ORDER BY b; ! -- order w/ target under ambigious condition -- failure NOT expected SELECT a, a FROM test_missing_target ORDER BY a; ! -- order expression w/ target under ambigious condition -- failure NOT expected SELECT a/2, a/2 FROM test_missing_target ORDER BY a/2; ! -- group expression w/ target under ambigious condition ! -- failure expected SELECT a/2, a/2 FROM test_missing_target GROUP BY a/2; ! -- group w/ existing GROUP BY target under ambigious condition SELECT x.b, count(*) FROM test_missing_target x, test_missing_target y WHERE x.a = y.a GROUP BY x.b; ! -- group w/o existing GROUP BY target under ambigious condition SELECT count(*) FROM test_missing_target x, test_missing_target y WHERE x.a = y.a GROUP BY x.b; ! -- group w/o existing GROUP BY target under ambigious condition -- into a table SELECT count(*) INTO TABLE test_missing_target2 FROM test_missing_target x, test_missing_target y --- 53,90 ---- -- failure expected SELECT c, count(*) FROM test_missing_target GROUP BY 3; ! -- group w/o existing GROUP BY and ORDER BY target under ambiguous condition -- failure expected SELECT count(*) FROM test_missing_target x, test_missing_target y WHERE x.a = y.a GROUP BY b ORDER BY b; ! -- order w/ target under ambiguous condition -- failure NOT expected SELECT a, a FROM test_missing_target ORDER BY a; ! -- order expression w/ target under ambiguous condition -- failure NOT expected SELECT a/2, a/2 FROM test_missing_target ORDER BY a/2; ! -- group expression w/ target under ambiguous condition ! -- failure NOT expected SELECT a/2, a/2 FROM test_missing_target GROUP BY a/2; ! -- group w/ existing GROUP BY target under ambiguous condition SELECT x.b, count(*) FROM test_missing_target x, test_missing_target y WHERE x.a = y.a GROUP BY x.b; ! -- group w/o existing GROUP BY target under ambiguous condition SELECT count(*) FROM test_missing_target x, test_missing_target y WHERE x.a = y.a GROUP BY x.b; ! -- group w/o existing GROUP BY target under ambiguous condition -- into a table SELECT count(*) INTO TABLE test_missing_target2 FROM test_missing_target x, test_missing_target y *************** *** 97,107 **** -- w/ existing GROUP BY target SELECT a%2, count(a) FROM test_missing_target GROUP BY test_missing_target.a%2; - /* - NOTE: as of 1998-08-01 a bug was detected unrelated to this feature which - requires the aggragate function argument to be the same as some non-agragate - in the target list. (i.e. count(*) and count(b) crash the backend.) - */ -- w/o existing GROUP BY target using a relation name in GROUP BY clause SELECT count(c) FROM test_missing_target GROUP BY lower(test_missing_target.c); --- 97,102 ---- *************** *** 124,146 **** SELECT count(b) FROM test_missing_target GROUP BY (b + 1) / 2 ORDER BY (b + 1) / 2 desc; ! -- group w/o existing GROUP BY and ORDER BY target under ambigious condition -- failure expected SELECT count(x.a) FROM test_missing_target x, test_missing_target y WHERE x.a = y.a GROUP BY b/2 ORDER BY b/2; ! -- group w/ existing GROUP BY target under ambigious condition SELECT x.b/2, count(x.b) FROM test_missing_target x, test_missing_target y WHERE x.a = y.a GROUP BY x.b/2; ! -- group w/o existing GROUP BY target under ambigious condition SELECT count(b) FROM test_missing_target x, test_missing_target y WHERE x.a = y.a GROUP BY x.b/2; ! -- group w/o existing GROUP BY target under ambigious condition -- into a table SELECT count(x.b) INTO TABLE test_missing_target3 FROM test_missing_target x, test_missing_target y --- 119,142 ---- SELECT count(b) FROM test_missing_target GROUP BY (b + 1) / 2 ORDER BY (b + 1) / 2 desc; ! -- group w/o existing GROUP BY and ORDER BY target under ambiguous condition -- failure expected SELECT count(x.a) FROM test_missing_target x, test_missing_target y WHERE x.a = y.a GROUP BY b/2 ORDER BY b/2; ! -- group w/ existing GROUP BY target under ambiguous condition SELECT x.b/2, count(x.b) FROM test_missing_target x, test_missing_target y WHERE x.a = y.a GROUP BY x.b/2; ! -- group w/o existing GROUP BY target under ambiguous condition ! -- failure expected due to ambiguous b in count(b) SELECT count(b) FROM test_missing_target x, test_missing_target y WHERE x.a = y.a GROUP BY x.b/2; ! -- group w/o existing GROUP BY target under ambiguous condition -- into a table SELECT count(x.b) INTO TABLE test_missing_target3 FROM test_missing_target x, test_missing_target y