From 4c4bc9a95c7a96831bf36a5856e438c95f9eedcc Mon Sep 17 00:00:00 2001 From: skywalker Date: Sun, 29 Jul 2001 23:43:24 +0000 Subject: [PATCH] Global changes for new Makefile and firebird2 compile on linux --- src/alice/alice.cpp | 10 +- src/alice/alice.h | 4 +- src/alice/alice_meta.epp | 5 +- src/alice/aliceswi.h | 170 +- src/alice/all.cpp | 3 +- src/alice/exe.cpp | 7 +- src/alice/tdr.cpp | 5 +- src/burp/backup.epp | 3 +- src/burp/burp.cpp | 1 + src/burp/burp.h | 2 +- src/burp/canonical.cpp | 3 +- src/burp/misc.cpp | 1 + src/burp/mvol.cpp | 1 + src/burp/restore.epp | 3 +- src/burp/spit.cpp | 3 +- src/csv/csi.cpp | 4 +- src/csv/css.cpp | 3 +- src/csv/csu.cpp | 5 +- src/csv/csv.cpp | 5 +- src/csv/print.cpp | 1 + src/dsql/alld.cpp | 9 +- src/dsql/array.epp | 3 +- src/dsql/blob.epp | 3 +- src/dsql/ddl.cpp | 221 +- src/dsql/dsql.cpp | 7 +- src/dsql/errd.cpp | 5 +- src/dsql/gen.cpp | 7 +- src/dsql/hsh.cpp | 3 +- src/dsql/keywords.h | 449 +- src/dsql/make.cpp | 3 +- src/dsql/metd.epp | 3 +- src/dsql/movd.cpp | 7 +- src/dsql/parse.cpp | 12696 ++++++++++++------------ src/dsql/parse.y | 5 +- src/dsql/pass1.cpp | 237 +- src/dsql/preparse.cpp | 3 +- src/dsql/user_dsql.cpp | 18 +- src/dsql/utld.cpp | 59 +- src/dudley/ddl.cpp | 5 +- src/dudley/exe.epp | 1 + src/dudley/expand.cpp | 3 +- src/dudley/expr.cpp | 3 +- src/dudley/extract.epp | 1 + src/dudley/generate.cpp | 3 +- src/dudley/hsh.cpp | 423 +- src/dudley/lex.cpp | 3 +- src/dudley/parse.cpp | 3 +- src/dudley/trn.cpp | 3 +- src/extlib/ib_udf.c | 1 + src/extlib/ib_util.c | 1 + src/gpre/ada.cpp | 5 +- src/gpre/c_cxx.cpp | 5 +- src/gpre/cmd.cpp | 5 +- src/gpre/cme.cpp | 5 +- src/gpre/cmp.cpp | 5 +- src/gpre/cob.cpp | 7 +- src/gpre/dyntable.cpp | 5 +- src/gpre/exp.cpp | 5 +- src/gpre/form.cpp | 5 +- src/gpre/form_trn.cpp | 7 +- src/gpre/ftn.cpp | 5 +- src/gpre/gpre.cpp | 5 +- src/gpre/gpre_meta.epp | 9 +- src/gpre/gpre_meta_boot.cpp | 5 +- src/gpre/hsh.cpp | 8 +- src/gpre/hsh.h | 860 +- src/gpre/int.cpp | 5 +- src/gpre/int_cxx.cpp | 5 +- src/gpre/jrdmet.cpp | 5 +- src/gpre/movg.cpp | 5 +- src/gpre/msc.cpp | 5 +- src/gpre/noform.cpp | 3 +- src/gpre/par.cpp | 7 +- src/gpre/pas.cpp | 5 +- src/gpre/pat.cpp | 3 +- src/gpre/pretty.cpp | 8 +- src/gpre/sqe.cpp | 5 +- src/gpre/sql.cpp | 5 +- src/intl/cs_big5.c | 1 + src/intl/cs_gb2312.c | 1 + src/intl/cs_jis.c | 1 + src/intl/cs_jis_20208_1990.c | 1 + src/intl/cs_ksc.c | 1 + src/intl/cs_narrow.c | 1 + src/intl/cs_unicode.c | 1 + src/intl/cs_utffss.c | 1 + src/intl/cv_big5.c | 1 + src/intl/cv_gb2312.c | 1 + src/intl/cv_jis.c | 1 + src/intl/cv_ksc.c | 1 + src/intl/cv_narrow.c | 1 + src/intl/dtest.c | 1 + src/intl/dtest2.c | 1 + src/intl/lc_ascii.c | 1 + src/intl/lc_big5.c | 1 + src/intl/lc_dos.c | 1 + src/intl/lc_gb2312.c | 1 + src/intl/lc_jis.c | 1 + src/intl/lc_ksc.c | 1 + src/intl/lc_latin1.c | 1 + src/intl/lc_narrow.c | 1 + src/intl/lc_unicode.c | 1 + src/intl/ld.c | 5 +- src/intl/ld2.c | 95 +- src/intl/ld_proto.h | 6 +- src/intl/mapcompare.cpp | 1 + src/intl/mapdump.c | 1 + src/intl/mapgen4.c | 1 + src/intl/maptest.cpp | 1 + src/intl/maptest2.c | 1 + src/ipserver/alli.cpp | 1 + src/ipserver/ipcevent.cpp | 1 + src/ipserver/ipclient.cpp | 3 +- src/ipserver/ipserver.cpp | 3 +- src/iscguard/cntl_guard.cpp | 1 + src/iscguard/iscguard.cpp | 1 + src/iscguard/iscguard_utils.cpp | 1 + src/isql/extract.epp | 21 +- src/isql/isql.epp | 5 +- src/isql/isql_win.cpp | 5 +- src/isql/show.epp | 13 +- src/journal/archive.cpp | 1 + src/journal/console.cpp | 1 + src/journal/gjrn.cpp | 3 +- src/journal/misc.cpp | 3 +- src/journal/oldr.cpp | 1 + src/lock/driver.cpp | 3 +- src/lock/lock.cpp | 39 +- src/lock/manager.cpp | 3 +- src/lock/pls.cpp | 1 + src/lock/plserver.cpp | 1 + src/lock/print.cpp | 1 + src/lock/printv3.cpp | 1 + src/lock/printv3s4.cpp | 1 + src/lock/reset.cpp | 1 + src/lock/ulimit.cpp | 1 + src/make.new/Makefile.in.alice | 72 + src/make.new/Makefile.in.burp | 224 + src/make.new/Makefile.in.client | 231 + src/make.new/Makefile.in.csv | 133 + src/make.new/Makefile.in.dsql | 85 + src/make.new/Makefile.in.dudley | 209 + src/make.new/Makefile.in.example5 | 198 + src/make.new/Makefile.in.extlib | 75 + src/make.new/Makefile.in.firebird | 1142 +++ src/make.new/Makefile.in.gpre | 100 + src/make.new/Makefile.in.intl | 77 + src/make.new/Makefile.in.isql | 107 + src/make.new/Makefile.in.journal | 171 + src/make.new/Makefile.in.jrd | 757 ++ src/make.new/Makefile.in.lock | 140 + src/make.new/Makefile.in.msgs | 187 + src/make.new/Makefile.in.pipe | 75 + src/make.new/Makefile.in.qli | 83 + src/make.new/Makefile.in.refDatabases | 106 + src/make.new/Makefile.in.remote | 312 + src/make.new/Makefile.in.utilities | 253 + src/make.new/Makefile.in.wal | 141 + src/make.new/README.makefiles | 105 + src/make.new/config/config.guess | 1371 +++ src/make.new/config/config.h.in | 69 + src/make.new/config/config.log | 3 + src/make.new/config/config.sub | 1362 +++ src/make.new/config/install-sh | 251 + src/make.new/make.defaults | 135 + src/make.new/make.rules | 230 + src/make.new/make.shared.variables | 149 + src/make.new/prefix.darwin | 220 + src/make.new/prefix.example | 10 + src/make.new/prefix.linux | 142 + src/misc/fb_boilerplate.h | 33 + src/misc/gds_header.txt | 11 + src/misc/metadata.sql | 55 + src/misc/status.cpp | 3 +- src/msgs/build_file.epp | 1 + src/msgs/change_msgs.epp | 1 + src/msgs/check_msgs.epp | 1 + src/msgs/enter_msgs.epp | 1 + src/msgs/include.epp | 1 + src/msgs/load.epp | 1 + src/msgs/modify_msgs.epp | 1 + src/msgs/msg.gbak | Bin 2067456 -> 2068480 bytes src/pipe/allp.cpp | 9 +- src/pipe/foot.cpp | 3 +- src/pipe/head.cpp | 248 +- src/pipe/head5.cpp | 7 + src/qli/all.cpp | 7 +- src/qli/command.cpp | 3 +- src/qli/compile.cpp | 1 + src/qli/dtr.cpp | 11 +- src/qli/err.cpp | 1 + src/qli/eval.cpp | 3 +- src/qli/exe.cpp | 12 +- src/qli/expand.cpp | 1 + src/qli/form.cpp | 3 +- src/qli/format.cpp | 3 +- src/qli/format.h | 8 + src/qli/gener.cpp | 5 +- src/qli/help.epp | 1 + src/qli/hsh.cpp | 4 +- src/qli/lex.cpp | 3 +- src/qli/meta.epp | 3 +- src/qli/mov.cpp | 1 + src/qli/noform.cpp | 1 + src/qli/nounix.cpp | 2 + src/qli/parse.cpp | 1 + src/qli/picstr.cpp | 1 + src/qli/proc.epp | 1 + src/qli/report.cpp | 1 + src/qli/show.epp | 7 +- src/qli/words.h | 528 +- src/remote/allr.cpp | 11 +- src/remote/chop.cpp | 1 + src/remote/chuser.cpp | 1 + src/remote/cntl.cpp | 1 + src/remote/decnet.cpp | 3 +- src/remote/decnet_server.cpp | 1 + src/remote/divorce.cpp | 1 + src/remote/dllshell.cpp | 1 + src/remote/dnet.cpp | 3 +- src/remote/dnet_server.cpp | 1 + src/remote/faux.cpp | 3 +- src/remote/ibconfig.cpp | 1 + src/remote/inet.cpp | 29 +- src/remote/inet_server.cpp | 38 +- src/remote/interface.cpp | 3 +- src/remote/ipc.cpp | 3 +- src/remote/ipc_server.cpp | 1 + src/remote/merge.cpp | 3 +- src/remote/mgr.cpp | 3 +- src/remote/multivx.cpp | 1 + src/remote/netwcon.cpp | 1 + src/remote/nt_server.cpp | 3 +- src/remote/ntoh.cpp | 3 +- src/remote/nwserv.cpp | 1 + src/remote/parser.cpp | 5 +- src/remote/property.cpp | 1 + src/remote/protocol.cpp | 3 +- src/remote/remote.cpp | 3 +- src/remote/remote_def.h | 13 +- src/remote/server.cpp | 3 +- src/remote/spxesr.cpp | 1 + src/remote/spxnet.cpp | 3 +- src/remote/spxnet32.cpp | 3 +- src/remote/spxwin.cpp | 3 +- src/remote/srvr_w32.cpp | 3 +- src/remote/ucx.cpp | 1 + src/remote/wfwnp.cpp | 1 + src/remote/window.cpp | 1 + src/remote/winmain.cpp | 1 + src/remote/winvx.cpp | 1 + src/remote/wnet.cpp | 3 +- src/remote/xdr.cpp | 1 + src/remote/xnet.cpp | 3 +- src/utilities/analyse.cpp | 3 +- src/utilities/cache.cpp | 3 +- src/utilities/cmd_util.cpp | 3 +- src/utilities/create_db.cpp | 5 +- src/utilities/dba.epp | 3 +- src/utilities/dba_full.epp | 1 + src/utilities/drop.cpp | 27 +- src/utilities/dropv3.cpp | 1 + src/utilities/gsec.cpp | 5 +- src/utilities/gsecswi.h | 50 +- src/utilities/guard.cpp | 3 +- src/utilities/ibmgr.cpp | 5 +- src/utilities/install_reg.cpp | 1 + src/utilities/install_svc.cpp | 1 + src/utilities/ppg.cpp | 3 +- src/utilities/print_pool.cpp | 1 + src/utilities/rebuild.cpp | 3 +- src/utilities/registry.cpp | 11 +- src/utilities/relay.cpp | 5 + src/utilities/rmet.epp | 3 +- src/utilities/rstore.epp | 3 +- src/utilities/run_service.cpp | 3 +- src/utilities/sbc_print.cpp | 1 + src/utilities/security.epp | 3 +- src/utilities/services.cpp | 1 + src/utilities/srvrmgr.cpp | 5 +- src/utilities/util.cpp | 3 +- src/utilities/v2_dmp.cpp | 1 + src/v5_examples/empbld.sql | 3 +- src/v5_examples/empbuild.c | 15 +- src/v5_examples/intlbld.sql | 3 +- src/v5_examples/intlddl.sql | 1 + src/wal/driver.cpp | 1 + src/wal/wal.cpp | 7 +- src/wal/wal.h | 6 +- src/wal/wal_prnt.cpp | 1 + src/wal/walc.cpp | 15 +- src/wal/walf.cpp | 3 +- src/wal/walr.cpp | 11 +- src/wal/walw.cpp | 45 +- src/wal/walw_main.cpp | Bin 358 -> 382 bytes src/wal/wstatus.cpp | 1 + 296 files changed, 17736 insertions(+), 8301 deletions(-) create mode 100644 src/make.new/Makefile.in.alice create mode 100644 src/make.new/Makefile.in.burp create mode 100644 src/make.new/Makefile.in.client create mode 100644 src/make.new/Makefile.in.csv create mode 100644 src/make.new/Makefile.in.dsql create mode 100644 src/make.new/Makefile.in.dudley create mode 100644 src/make.new/Makefile.in.example5 create mode 100644 src/make.new/Makefile.in.extlib create mode 100644 src/make.new/Makefile.in.firebird create mode 100644 src/make.new/Makefile.in.gpre create mode 100644 src/make.new/Makefile.in.intl create mode 100644 src/make.new/Makefile.in.isql create mode 100644 src/make.new/Makefile.in.journal create mode 100644 src/make.new/Makefile.in.jrd create mode 100644 src/make.new/Makefile.in.lock create mode 100644 src/make.new/Makefile.in.msgs create mode 100644 src/make.new/Makefile.in.pipe create mode 100644 src/make.new/Makefile.in.qli create mode 100644 src/make.new/Makefile.in.refDatabases create mode 100644 src/make.new/Makefile.in.remote create mode 100644 src/make.new/Makefile.in.utilities create mode 100644 src/make.new/Makefile.in.wal create mode 100644 src/make.new/README.makefiles create mode 100755 src/make.new/config/config.guess create mode 100644 src/make.new/config/config.h.in create mode 100644 src/make.new/config/config.log create mode 100755 src/make.new/config/config.sub create mode 100755 src/make.new/config/install-sh create mode 100755 src/make.new/make.defaults create mode 100644 src/make.new/make.rules create mode 100644 src/make.new/make.shared.variables create mode 100644 src/make.new/prefix.darwin create mode 100644 src/make.new/prefix.example create mode 100644 src/make.new/prefix.linux create mode 100644 src/misc/fb_boilerplate.h create mode 100644 src/misc/gds_header.txt create mode 100644 src/misc/metadata.sql create mode 100644 src/pipe/head5.cpp diff --git a/src/alice/alice.cpp b/src/alice/alice.cpp index e4846c6d4f..73cbf596ef 100644 --- a/src/alice/alice.cpp +++ b/src/alice/alice.cpp @@ -24,13 +24,14 @@ // //____________________________________________________________ // -// $Id: alice.cpp,v 1.3 2001-07-12 05:46:03 bellardo Exp $ +// $Id: alice.cpp,v 1.4 2001-07-29 23:43:20 skywalker Exp $ // // 2001.07.06 Sean Leyne - Code Cleanup, removed "#ifdef READONLY_DATABASE" // conditionals, as the engine now fully supports // readonly databases. // +#include "firebird.h" #include #include #include @@ -38,7 +39,7 @@ #define FB_FROM_ALICE_CPP #include "../jrd/ib_stdio.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/common.h" #include "../jrd/license.h" #include "../jrd/ibsetjmp.h" @@ -71,9 +72,6 @@ #endif -extern "C" { - - #ifndef MAXPATHLEN #define MAXPATHLEN 1024 #endif @@ -745,5 +743,3 @@ static void expand_filename(TEXT * filename, TEXT * expanded_name) strcpy(expanded_name, filename); } - -} // extern "C" diff --git a/src/alice/alice.h b/src/alice/alice.h index 34dba90612..b3ef89f921 100644 --- a/src/alice/alice.h +++ b/src/alice/alice.h @@ -34,7 +34,7 @@ #ifdef __cplusplus -extern "C" { +//extern "C" { #endif #ifndef MAXPATHLEN @@ -222,7 +222,7 @@ extern struct tgbl *gdgbl; #define NOOUTPUT 2 #ifdef __cplusplus -} /* extern "C" */ +//} /* extern "C" */ #endif #endif /* _ALICE_ALICE_H_ */ diff --git a/src/alice/alice_meta.epp b/src/alice/alice_meta.epp index da79ac3ac5..20f77b9181 100644 --- a/src/alice/alice_meta.epp +++ b/src/alice/alice_meta.epp @@ -27,13 +27,14 @@ * *____________________________________________________________ * - * $Id: alice_meta.epp,v 1.1 2001-07-12 06:32:01 bellardo Exp $ + * $Id: alice_meta.epp,v 1.2 2001-07-29 23:43:20 skywalker Exp $ */ +#include "firebird.h" #include #include "../jrd/common.h" #include "../jrd/ibsetjmp.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/license.h" #include "../alice/alice.h" #include "../alice/all.h" diff --git a/src/alice/aliceswi.h b/src/alice/aliceswi.h index 1a41c4608d..86dacb33a8 100644 --- a/src/alice/aliceswi.h +++ b/src/alice/aliceswi.h @@ -116,77 +116,77 @@ /* Switch table */ static struct in_sw_tab_t alice_in_sw_table[] = { - IN_SW_ALICE_ACTIVATE, isc_spb_prp_activate, "activate", sw_activate, - 0, ~sw_activate, FALSE, 25, 0, NULL, + {IN_SW_ALICE_ACTIVATE, isc_spb_prp_activate, "activate", sw_activate, + 0, ~sw_activate, FALSE, 25, 0, NULL}, /* msg 25: \t-activate shadow file for database usage */ - IN_SW_ALICE_ATTACH, 0, "attach", sw_attach, - sw_shut, 0, FALSE, 26, 0, NULL, + {IN_SW_ALICE_ATTACH, 0, "attach", sw_attach, + sw_shut, 0, FALSE, 26, 0, NULL}, /* msg 26: \t-attach\tshutdown new database attachments */ #ifdef DEV_BUILD - IN_SW_ALICE_BEGIN_LOG, 0, "begin_log", sw_begin_log, - 0, ~sw_begin_log, FALSE, 27, 0, NULL, + {IN_SW_ALICE_BEGIN_LOG, 0, "begin_log", sw_begin_log, + 0, ~sw_begin_log, FALSE, 27, 0, NULL}, /* msg 27: \t-begin_log\tbegin logging for replay utility */ #endif - IN_SW_ALICE_BUFFERS, isc_spb_prp_page_buffers, "buffers", sw_buffers, - 0, 0, FALSE, 28, 0, NULL, + {IN_SW_ALICE_BUFFERS, isc_spb_prp_page_buffers, "buffers", sw_buffers, + 0, 0, FALSE, 28, 0, NULL}, /* msg 28: \t-buffers\tset page buffers */ - IN_SW_ALICE_COMMIT, isc_spb_rpr_commit_trans, "commit", sw_commit, - 0, ~sw_commit, FALSE, 29, 0, NULL, + {IN_SW_ALICE_COMMIT, isc_spb_rpr_commit_trans, "commit", sw_commit, + 0, ~sw_commit, FALSE, 29, 0, NULL}, /* msg 29: \t-commit\t\tcommit transaction */ - IN_SW_ALICE_CACHE, 0, "cache", sw_cache, - sw_shut, 0, FALSE, 30, 0, NULL, + {IN_SW_ALICE_CACHE, 0, "cache", sw_cache, + sw_shut, 0, FALSE, 30, 0, NULL}, /* msg 30: \t-cache\t\tshutdown cache manager */ #ifdef DEV_BUILD - IN_SW_ALICE_DISABLE, 0, "disable", sw_disable, - 0, 0, FALSE, 31, 0, NULL, + {IN_SW_ALICE_DISABLE, 0, "disable", sw_disable, + 0, 0, FALSE, 31, 0, NULL}, /* msg 31: \t-disable\tdisable WAL */ #endif - IN_SW_ALICE_FULL, isc_spb_rpr_full, "full", sw_full, - sw_validate, 0, FALSE, 32, 0, NULL, + {IN_SW_ALICE_FULL, isc_spb_rpr_full, "full", sw_full, + sw_validate, 0, FALSE, 32, 0, NULL}, /* msg 32: \t-full\t\tvalidate record fragments (-v) */ - IN_SW_ALICE_FORCE, 0, "force", sw_force, - sw_shut, 0, FALSE, 33, 0, NULL, + {IN_SW_ALICE_FORCE, 0, "force", sw_force, + sw_shut, 0, FALSE, 33, 0, NULL}, /* msg 33: \t-force\t\tforce database shutdown */ - IN_SW_ALICE_HOUSEKEEPING, isc_spb_prp_sweep_interval, "housekeeping", + {IN_SW_ALICE_HOUSEKEEPING, isc_spb_prp_sweep_interval, "housekeeping", sw_housekeeping, - 0, 0, FALSE, 34, 0, NULL, + 0, 0, FALSE, 34, 0, NULL}, /* msg 34: \t-housekeeping\tset sweep interval */ - IN_SW_ALICE_IGNORE, isc_spb_rpr_ignore_checksum, "ignore", sw_ignore, - 0, 0, FALSE, 35, 0, NULL, + {IN_SW_ALICE_IGNORE, isc_spb_rpr_ignore_checksum, "ignore", sw_ignore, + 0, 0, FALSE, 35, 0, NULL}, /* msg 35: \t-ignore\t\tignore checksum errors */ - IN_SW_ALICE_KILL, isc_spb_rpr_kill_shadows, "kill", sw_kill, - 0, 0, FALSE, 36, 0, NULL, + {IN_SW_ALICE_KILL, isc_spb_rpr_kill_shadows, "kill", sw_kill, + 0, 0, FALSE, 36, 0, NULL}, /* msg 36: \t-kill\t\tkill all unavailable shadow files */ - IN_SW_ALICE_LIST, isc_spb_rpr_list_limbo_trans, "list", sw_list, - 0, ~sw_list, FALSE, 37, 0, NULL, + {IN_SW_ALICE_LIST, isc_spb_rpr_list_limbo_trans, "list", sw_list, + 0, ~sw_list, FALSE, 37, 0, NULL}, /* msg 37: \t-list\t\tshow limbo transactions */ - IN_SW_ALICE_MEND, isc_spb_rpr_mend_db, "mend", SW_MEND, - 0, ~sw_no_update, FALSE, 38, 0, NULL, + {IN_SW_ALICE_MEND, isc_spb_rpr_mend_db, "mend", SW_MEND, + 0, ~sw_no_update, FALSE, 38, 0, NULL}, /* msg 38: \t-mend\t\tprepare corrupt database for backup */ - IN_SW_ALICE_MODE, 0, "mode", sw_mode, - 0, ~sw_mode, FALSE, 109, 0, NULL, + {IN_SW_ALICE_MODE, 0, "mode", sw_mode, + 0, ~sw_mode, FALSE, 109, 0, NULL}, /* msg 109: \t-mode\t\tread_only or read_write */ - IN_SW_ALICE_NO_UPDATE, isc_spb_rpr_check_db, "no_update", sw_no_update, - sw_validate, 0, FALSE, 39, 0, NULL, + {IN_SW_ALICE_NO_UPDATE, isc_spb_rpr_check_db, "no_update", sw_no_update, + sw_validate, 0, FALSE, 39, 0, NULL}, /* msg 39: \t-no_update\tread-only validation (-v) */ - IN_SW_ALICE_ONLINE, isc_spb_prp_db_online, "online", sw_online, - 0, 0, FALSE, 40, 0, NULL, + {IN_SW_ALICE_ONLINE, isc_spb_prp_db_online, "online", sw_online, + 0, 0, FALSE, 40, 0, NULL}, /* msg 40: \t-online\t\tdatabase online */ - IN_SW_ALICE_PROMPT, 0, "prompt", sw_prompt, - sw_list, 0, FALSE, 41, 0, NULL, + {IN_SW_ALICE_PROMPT, 0, "prompt", sw_prompt, + sw_list, 0, FALSE, 41, 0, NULL}, /* msg 41: \t-prompt\t\tprompt for commit/rollback (-l) */ - IN_SW_ALICE_PASSWORD, 0, "password", sw_password, - 0, 0, FALSE, 42, 0, NULL, + {IN_SW_ALICE_PASSWORD, 0, "password", sw_password, + 0, 0, FALSE, 42, 0, NULL}, /* msg 42: \t-password\tdefault password */ #ifdef DEV_BUILD - IN_SW_ALICE_QUIT_LOG, 0, "quit_log", sw_quit_log, - 0, ~sw_quit_log, FALSE, 43, 0, NULL, + {IN_SW_ALICE_QUIT_LOG, 0, "quit_log", sw_quit_log, + 0, ~sw_quit_log, FALSE, 43, 0, NULL}, /* msg 43: \t-quit_log\tquit logging for replay utility */ #endif - IN_SW_ALICE_ROLLBACK, isc_spb_rpr_rollback_trans, "rollback", sw_rollback, - 0, ~sw_rollback, FALSE, 44, 0, NULL, + {IN_SW_ALICE_ROLLBACK, isc_spb_rpr_rollback_trans, "rollback", sw_rollback, + 0, ~sw_rollback, FALSE, 44, 0, NULL}, /* msg 44: \t-rollback\trollback transaction */ - IN_SW_ALICE_SET_DB_SQL_DIALECT, + {IN_SW_ALICE_SET_DB_SQL_DIALECT, isc_spb_prp_set_sql_dialect, "sql_dialect", sw_set_db_dialect, @@ -195,41 +195,41 @@ static struct in_sw_tab_t alice_in_sw_table[] = FALSE, 111, 0, - NULL, + NULL}, /* msg 111: \t-SQL_dialect\t\set dataabse dialect n */ - IN_SW_ALICE_SWEEP, isc_spb_rpr_sweep_db, "sweep", sw_sweep, - 0, ~sw_sweep, FALSE, 45, 0, NULL, + {IN_SW_ALICE_SWEEP, isc_spb_rpr_sweep_db, "sweep", sw_sweep, + 0, ~sw_sweep, FALSE, 45, 0, NULL}, /* msg 45: \t-sweep\t\tforce garbage collection */ - IN_SW_ALICE_SHUT, 0, "shut", sw_shut, + {IN_SW_ALICE_SHUT, 0, "shut", sw_shut, 0, ~(sw_shut | - sw_attach | sw_cache | sw_force | sw_tran), FALSE, 46, 0, NULL, + sw_attach | sw_cache | sw_force | sw_tran), FALSE, 46, 0, NULL}, /* msg 46: \t-shut\t\tshutdown */ - IN_SW_ALICE_TWO_PHASE, isc_spb_rpr_recover_two_phase, "two_phase", + {IN_SW_ALICE_TWO_PHASE, isc_spb_rpr_recover_two_phase, "two_phase", sw_two_phase, - 0, ~sw_two_phase, FALSE, 47, 0, NULL, + 0, ~sw_two_phase, FALSE, 47, 0, NULL}, /* msg 47: \t-two_phase\tperform automated two-phase recovery */ - IN_SW_ALICE_TRAN, 0, "tran", sw_tran, - sw_shut, 0, FALSE, 48, 0, NULL, + {IN_SW_ALICE_TRAN, 0, "tran", sw_tran, + sw_shut, 0, FALSE, 48, 0, NULL}, /* msg 48: \t-tran\t\tshutdown transaction startup */ - IN_SW_ALICE_USE, 0, "use", sw_use, - 0, ~sw_use, FALSE, 49, 0, NULL, + {IN_SW_ALICE_USE, 0, "use", sw_use, + 0, ~sw_use, FALSE, 49, 0, NULL}, /* msg 49: \t-use\t\tuse full or reserve space for versions */ - IN_SW_ALICE_USER, 0, "user", sw_user, - 0, 0, FALSE, 50, 0, NULL, + {IN_SW_ALICE_USER, 0, "user", sw_user, + 0, 0, FALSE, 50, 0, NULL}, /* msg 50: \t-user\t\tdefault user name */ - IN_SW_ALICE_VALIDATE, isc_spb_rpr_validate_db, "validate", sw_validate, - 0, ~sw_validate, FALSE, 51, 0, NULL, + {IN_SW_ALICE_VALIDATE, isc_spb_rpr_validate_db, "validate", sw_validate, + 0, ~sw_validate, FALSE, 51, 0, NULL}, /* msg 51: \t-validate\tvalidate database structure */ - IN_SW_ALICE_WRITE, 0, "write", sw_write, - 0, ~sw_write, FALSE, 52, 0, NULL, + {IN_SW_ALICE_WRITE, 0, "write", sw_write, + 0, ~sw_write, FALSE, 52, 0, NULL}, /* msg 52: \t-write\t\twrite synchronously or asynchronously */ #ifdef DEV_BUILD - IN_SW_ALICE_X, 0, "x", 0, - 0, 0, FALSE, 53, 0, NULL, + {IN_SW_ALICE_X, 0, "x", 0, + 0, 0, FALSE, 53, 0, NULL}, /* msg 53: \t-x\t\tset debug on */ #endif - IN_SW_ALICE_Z, 0, "z", sw_z, - 0, 0, FALSE, 54, 0, NULL, + {IN_SW_ALICE_Z, 0, "z", sw_z, + 0, 0, FALSE, 54, 0, NULL}, /* msg 54: \t-z\t\tprint software version number */ /************************************************************************/ /* WARNING: All new switches should be added right before this comments */ @@ -237,27 +237,27 @@ static struct in_sw_tab_t alice_in_sw_table[] = /* The next nine 'virtual' switches are hidden from user and are needed for services API ************************************************************************/ - IN_SW_ALICE_HIDDEN_ASYNC, isc_spb_prp_wm_async, "write async", 0, 0, 0, - FALSE, 0, 0, NULL, - IN_SW_ALICE_HIDDEN_SYNC, isc_spb_prp_wm_sync, "write sync", 0, 0, 0, - FALSE, 0, 0, NULL, - IN_SW_ALICE_HIDDEN_USEALL, isc_spb_prp_res_use_full, "use full", 0, 0, 0, - FALSE, 0, 0, NULL, - IN_SW_ALICE_HIDDEN_RESERVE, isc_spb_prp_res, "use reserve", 0, 0, 0, - FALSE, 0, 0, NULL, - IN_SW_ALICE_HIDDEN_FORCE, isc_spb_prp_shutdown_db, "shut -force", 0, 0, 0, - FALSE, 0, 0, NULL, - IN_SW_ALICE_HIDDEN_TRAN, isc_spb_prp_deny_new_transactions, "shut -tran", - 0, 0, 0, FALSE, 0, 0, NULL, - IN_SW_ALICE_HIDDEN_ATTACH, isc_spb_prp_deny_new_attachments, - "shut -attach", 0, 0, 0, FALSE, 0, 0, NULL, - IN_SW_ALICE_HIDDEN_RDONLY, isc_spb_prp_am_readonly, "mode read_only", 0, - 0, 0, FALSE, 0, 0, NULL, - IN_SW_ALICE_HIDDEN_RDWRITE, isc_spb_prp_am_readwrite, "mode read_write", - 0, 0, 0, FALSE, 0, 0, NULL, + {IN_SW_ALICE_HIDDEN_ASYNC, isc_spb_prp_wm_async, "write async", 0, 0, 0, + FALSE, 0, 0, NULL}, + {IN_SW_ALICE_HIDDEN_SYNC, isc_spb_prp_wm_sync, "write sync", 0, 0, 0, + FALSE, 0, 0, NULL}, + {IN_SW_ALICE_HIDDEN_USEALL, isc_spb_prp_res_use_full, "use full", 0, 0, 0, + FALSE, 0, 0, NULL}, + {IN_SW_ALICE_HIDDEN_RESERVE, isc_spb_prp_res, "use reserve", 0, 0, 0, + FALSE, 0, 0, NULL}, + {IN_SW_ALICE_HIDDEN_FORCE, isc_spb_prp_shutdown_db, "shut -force", 0, 0, 0, + FALSE, 0, 0, NULL}, + {IN_SW_ALICE_HIDDEN_TRAN, isc_spb_prp_deny_new_transactions, "shut -tran", + 0, 0, 0, FALSE, 0, 0, NULL}, + {IN_SW_ALICE_HIDDEN_ATTACH, isc_spb_prp_deny_new_attachments, + "shut -attach", 0, 0, 0, FALSE, 0, 0, NULL}, + {IN_SW_ALICE_HIDDEN_RDONLY, isc_spb_prp_am_readonly, "mode read_only", 0, + 0, 0, FALSE, 0, 0, NULL}, + {IN_SW_ALICE_HIDDEN_RDWRITE, isc_spb_prp_am_readwrite, "mode read_write", + 0, 0, 0, FALSE, 0, 0, NULL}, /************************************************************************/ - IN_SW_ALICE_0, 0, NULL, 0, - 0, 0, FALSE, 0, 0, NULL + {IN_SW_ALICE_0, 0, NULL, 0, + 0, 0, FALSE, 0, 0, NULL} }; -#endif /* ALICE_ALICESWI_H */ \ No newline at end of file +#endif /* ALICE_ALICESWI_H */ diff --git a/src/alice/all.cpp b/src/alice/all.cpp index 4c65a93b60..ec703a0b13 100644 --- a/src/alice/all.cpp +++ b/src/alice/all.cpp @@ -24,9 +24,10 @@ // //____________________________________________________________ // -// $Id: all.cpp,v 1.1.1.1 2001-05-23 13:25:33 tamlin Exp $ +// $Id: all.cpp,v 1.2 2001-07-29 23:43:20 skywalker Exp $ // +#include "firebird.h" #include "../jrd/ib_stdio.h" #include "../jrd/common.h" #include "../jrd/ibsetjmp.h" diff --git a/src/alice/exe.cpp b/src/alice/exe.cpp index 2106a39c21..fa2479d572 100644 --- a/src/alice/exe.cpp +++ b/src/alice/exe.cpp @@ -24,17 +24,18 @@ // //____________________________________________________________ // -// $Id: exe.cpp,v 1.2 2001-07-10 17:35:12 awharrison Exp $ +// $Id: exe.cpp,v 1.3 2001-07-29 23:43:21 skywalker Exp $ // // 2001.07.06 Sean Leyne - Code Cleanup, removed "#ifdef READONLY_DATABASE" // conditionals, as the engine now fully supports // readonly databases. // +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/common.h" #include "../jrd/ibsetjmp.h" #include "../alice/alice.h" @@ -447,4 +448,4 @@ static void extract_db_info(UCHAR * db_info_buffer) } -} // extern "C" \ No newline at end of file +} // extern "C" diff --git a/src/alice/tdr.cpp b/src/alice/tdr.cpp index 7b45c7b528..ffc30d5eb5 100644 --- a/src/alice/tdr.cpp +++ b/src/alice/tdr.cpp @@ -24,12 +24,13 @@ // //____________________________________________________________ // -// $Id: tdr.cpp,v 1.2 2001-05-24 14:54:25 tamlin Exp $ +// $Id: tdr.cpp,v 1.3 2001-07-29 23:43:21 skywalker Exp $ // +#include "firebird.h" #include "../jrd/ib_stdio.h" #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/common.h" #include "../alice/alice.h" #include "../alice/aliceswi.h" diff --git a/src/burp/backup.epp b/src/burp/backup.epp index 70e6798f73..220de6233b 100644 --- a/src/burp/backup.epp +++ b/src/burp/backup.epp @@ -22,9 +22,10 @@ * Toni Martir: Added verbose backup records as BACKUP_VERBOSE_INTERVAL */ /* -$Id: backup.epp,v 1.1 2001-07-12 06:32:01 bellardo Exp $ +$Id: backup.epp,v 1.2 2001-07-29 23:43:21 skywalker Exp $ */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include diff --git a/src/burp/burp.cpp b/src/burp/burp.cpp index 4c71dd5dec..107463cd0b 100644 --- a/src/burp/burp.cpp +++ b/src/burp/burp.cpp @@ -24,6 +24,7 @@ * readonly databases. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include diff --git a/src/burp/burp.h b/src/burp/burp.h index d0e476775f..92cbdb4ade 100644 --- a/src/burp/burp.h +++ b/src/burp/burp.h @@ -26,7 +26,7 @@ #include "../jrd/ib_stdio.h" #include "../jrd/common.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/dsc.h" #include "../burp/burp_proto.h" #include "../burp/misc_proto.h" diff --git a/src/burp/canonical.cpp b/src/burp/canonical.cpp index a7f34f1c30..1b307cbe7c 100644 --- a/src/burp/canonical.cpp +++ b/src/burp/canonical.cpp @@ -21,9 +21,10 @@ * Contributor(s): ______________________________________. */ /* -$Id: canonical.cpp,v 1.1.1.1 2001-05-23 13:26:05 tamlin Exp $ +$Id: canonical.cpp,v 1.2 2001-07-29 23:43:21 skywalker Exp $ */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../remote/remote.h" diff --git a/src/burp/misc.cpp b/src/burp/misc.cpp index bcae8a7ddf..ddb3da96f6 100644 --- a/src/burp/misc.cpp +++ b/src/burp/misc.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #ifdef UNIXWARE diff --git a/src/burp/mvol.cpp b/src/burp/mvol.cpp index 3963810fa6..79e3b4a21f 100644 --- a/src/burp/mvol.cpp +++ b/src/burp/mvol.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include diff --git a/src/burp/restore.epp b/src/burp/restore.epp index 04028dba82..45500915ab 100644 --- a/src/burp/restore.epp +++ b/src/burp/restore.epp @@ -23,9 +23,10 @@ * also verbose restoring indexes as DEFERRED when verbose */ /* -$Id: restore.epp,v 1.1 2001-07-12 06:32:02 bellardo Exp $ +$Id: restore.epp,v 1.2 2001-07-29 23:43:21 skywalker Exp $ */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include diff --git a/src/burp/spit.cpp b/src/burp/spit.cpp index a970f7db5b..6973e0a628 100644 --- a/src/burp/spit.cpp +++ b/src/burp/spit.cpp @@ -25,6 +25,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include @@ -138,7 +139,7 @@ static int write_header(B_FIL, HEADER_REC, FILE_DESC, TEXT *); ****************************************************** */ -SLONG main( int argc, char *argv[]) +int main( int argc, char *argv[]) { SCHAR **end, *prog_name, *string; diff --git a/src/csv/csi.cpp b/src/csv/csi.cpp index 4b34d7e912..2628d62034 100644 --- a/src/csv/csi.cpp +++ b/src/csv/csi.cpp @@ -20,12 +20,12 @@ * All Rights Reserved. * Contributor(s): ______________________________________. */ - +#include "firebird.h" #include "../jrd/common.h" #include #include "../csv/csi.h" #include "../jrd/license.h" -#include "../jrd/codes.h" +#include "gen/codes.h" #include "../jrd/inf.h" #include "../jrd/thd.h" #include "../csv/csi_proto.h" diff --git a/src/csv/css.cpp b/src/csv/css.cpp index 37e335cb48..a3c9b7b99b 100644 --- a/src/csv/css.cpp +++ b/src/csv/css.cpp @@ -21,9 +21,10 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include "../csv/csi.h" -#include "../jrd/codes.h" +#include "gen/codes.h" #include "../jrd/thd.h" #include "../csv/css_proto.h" #include "../jrd/gds_proto.h" diff --git a/src/csv/csu.cpp b/src/csv/csu.cpp index 564ad696aa..a2f60d6aa5 100644 --- a/src/csv/csu.cpp +++ b/src/csv/csu.cpp @@ -21,12 +21,13 @@ * Contributor(s): ______________________________________. */ /* -$Id: csu.cpp,v 1.1.1.1 2001-05-23 13:25:33 tamlin Exp $ +$Id: csu.cpp,v 1.2 2001-07-29 23:43:21 skywalker Exp $ */ +#include "firebird.h" #include "../csv/csi.h" #include "../jrd/license.h" -#include "../jrd/codes.h" +#include "gen/codes.h" #include "../jrd/thd.h" #include "../csv/css_proto.h" #include "../jrd/gds_proto.h" diff --git a/src/csv/csv.cpp b/src/csv/csv.cpp index 4714f53700..71cfec2b98 100644 --- a/src/csv/csv.cpp +++ b/src/csv/csv.cpp @@ -21,12 +21,13 @@ * Contributor(s): ______________________________________. */ /* -$Id: csv.cpp,v 1.1.1.1 2001-05-23 13:25:34 tamlin Exp $ +$Id: csv.cpp,v 1.2 2001-07-29 23:43:21 skywalker Exp $ */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include "../csv/csi.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/license.h" #include "../csv/css_proto.h" #include "../jrd/gds_proto.h" diff --git a/src/csv/print.cpp b/src/csv/print.cpp index f52fe45acc..38a557cc3c 100644 --- a/src/csv/print.cpp +++ b/src/csv/print.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../csv/csi.h" #include "../csv/css_proto.h" #include "../jrd/gds_proto.h" diff --git a/src/dsql/alld.cpp b/src/dsql/alld.cpp index ad9f5a15ac..998ffb8d4d 100644 --- a/src/dsql/alld.cpp +++ b/src/dsql/alld.cpp @@ -68,12 +68,13 @@ nested FOR loops are added. THREAD_ENTER; // First statment after FOR loop ***************************************************************/ +#include "firebird.h" #include #include "../jrd/ib_stdio.h" #include "../dsql/dsql.h" #include "../dsql/node.h" #include "../dsql/sym.h" -#include "../jrd/codes.h" +#include "gen/codes.h" #include "../dsql/alld_proto.h" #include "../dsql/errd_proto.h" #include "../jrd/gds_proto.h" @@ -95,7 +96,7 @@ extern "C" { #define BLOCK_ROUNDUP(size) ROUNDUP (size, MAX(BLOCK_FACTOR,ALIGNMENT)) #define EXPAND_BLOCKSIZE(b) (BLOCKS_TO_SIZE ((b)->blk_length)) -#define BLKDEF(type, root, tail) sizeof (struct root), tail, +#define BLKDEF(type, root, tail) { sizeof (struct root), tail }, static CONST struct { USHORT typ_root_length; USHORT typ_tail_length; @@ -442,8 +443,8 @@ void* ALLD_malloc(ULONG size) if (tdsql && tdsql->tsql_setjmp) { - ERRD_post(gds__sys_request, gds_arg_string, "gds__alloc", gds_arg_gds, - gds__virmemexh, gds_arg_end); + ERRD_post(gds_sys_request, gds_arg_string, "gds__alloc", gds_arg_gds, + gds_virmemexh, gds_arg_end); } /* Commentary: This expands out to a call to ERRD_error - which diff --git a/src/dsql/array.epp b/src/dsql/array.epp index 8e661ab52c..0e8e7097d0 100644 --- a/src/dsql/array.epp +++ b/src/dsql/array.epp @@ -21,10 +21,11 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include "../jrd/common.h" #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../dsql/array_proto.h" #include "../jrd/gds_proto.h" diff --git a/src/dsql/blob.epp b/src/dsql/blob.epp index 9f34b40952..c072bc0dd6 100644 --- a/src/dsql/blob.epp +++ b/src/dsql/blob.epp @@ -21,9 +21,10 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/common.h" #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/intl.h" #include "../jrd/constants.h" #include "../dsql/blob_proto.h" diff --git a/src/dsql/ddl.cpp b/src/dsql/ddl.cpp index b63de6c10c..7d59443b67 100644 --- a/src/dsql/ddl.cpp +++ b/src/dsql/ddl.cpp @@ -20,7 +20,7 @@ * All Rights Reserved. * Contributor(s): ______________________________________. * - * $Id: ddl.cpp,v 1.3 2001-07-12 05:46:04 bellardo Exp $ + * $Id: ddl.cpp,v 1.4 2001-07-29 23:43:21 skywalker Exp $ * 2001.5.20 Claudio Valderrama: Stop null pointer that leads to a crash, * caused by incomplete yacc syntax that allows ALTER DOMAIN dom SET; * @@ -29,16 +29,17 @@ * readonly databases. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../dsql/dsql.h" #include "../dsql/node.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/thd.h" #include "../jrd/intl.h" #include "../jrd/flags.h" #include "../jrd/constants.h" -#include "../jrd/codes.h" +#include "gen/codes.h" #include "../dsql/alld_proto.h" #include "../dsql/errd_proto.h" #include "../dsql/ddl_proto.h" @@ -366,9 +367,9 @@ void DDL_resolve_intl_type( REQ request, FLD field, STR collation_name) if ((field->fld_dtype > dtype_any_text) && field->fld_dtype != dtype_blob) { if (field->fld_character_set || collation_name || field->fld_flags & FLD_national) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 204, - gds_arg_gds, gds__dsql_datatype_err, - gds_arg_gds, gds__collation_requires_text, 0); + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 204, + gds_arg_gds, gds_dsql_datatype_err, + gds_arg_gds, gds_collation_requires_text, 0); return; } @@ -382,13 +383,13 @@ void DDL_resolve_intl_type( REQ request, FLD field, STR collation_name) (UCHAR *)("RDB$FIELD_SUB_TYPE"), &blob_sub_type)) { - ERRD_post( gds__sqlerr, + ERRD_post( gds_sqlerr, gds_arg_number, (SLONG) - 204, gds_arg_gds, - gds__dsql_datatype_err, + gds_dsql_datatype_err, gds_arg_gds, - gds__dsql_blob_type_unknown, + gds_dsql_blob_type_unknown, gds_arg_string, ((STR) field->fld_sub_type_name)->str_data, 0); @@ -401,24 +402,24 @@ void DDL_resolve_intl_type( REQ request, FLD field, STR collation_name) } if (field->fld_character_set && (field->fld_sub_type != BLOB_text)) { - ERRD_post( gds__sqlerr, + ERRD_post( gds_sqlerr, gds_arg_number, (SLONG) - 204, gds_arg_gds, - gds__dsql_datatype_err, + gds_dsql_datatype_err, gds_arg_gds, - gds__collation_requires_text, + gds_collation_requires_text, 0); } if (collation_name) { - ERRD_post( gds__sqlerr, + ERRD_post( gds_sqlerr, gds_arg_number, (SLONG) - 204, gds_arg_gds, - gds__dsql_datatype_err, + gds_dsql_datatype_err, gds_arg_gds, - gds__collation_requires_text, + gds_collation_requires_text, 0); } if (field->fld_sub_type != BLOB_text) { @@ -450,10 +451,10 @@ void DDL_resolve_intl_type( REQ request, FLD field, STR collation_name) if (field->fld_dtype == dtype_varying) field_length += sizeof(USHORT); if (field_length > (ULONG) MAX_COLUMN_SIZE) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 204, - gds_arg_gds, gds__dsql_datatype_err, - gds_arg_gds, gds__imp_exc, - gds_arg_gds, gds__field_name, gds_arg_string, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 204, + gds_arg_gds, gds_dsql_datatype_err, + gds_arg_gds, gds_imp_exc, + gds_arg_gds, gds_field_name, gds_arg_string, field->fld_name, 0); field->fld_length = (USHORT) field_length; }; @@ -484,9 +485,9 @@ void DDL_resolve_intl_type( REQ request, FLD field, STR collation_name) /* Error code -204 (IBM's DB2 manual) is close enough */ if (!resolved_charset) /* specified character set not found */ - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 204, - gds_arg_gds, gds__dsql_datatype_err, - gds_arg_gds, gds__charset_not_found, gds_arg_string, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 204, + gds_arg_gds, gds_dsql_datatype_err, + gds_arg_gds, gds_charset_not_found, gds_arg_string, charset_name, 0); field->fld_character_set_id = resolved_charset->intlsym_charset_id; resolved_type = resolved_charset; @@ -497,9 +498,9 @@ void DDL_resolve_intl_type( REQ request, FLD field, STR collation_name) resolved_collation = METD_get_collation(request, collation_name); if (!resolved_collation) /* Specified collation not found */ - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 204, - gds_arg_gds, gds__dsql_datatype_err, - gds_arg_gds, gds__collation_not_found, gds_arg_string, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 204, + gds_arg_gds, gds_dsql_datatype_err, + gds_arg_gds, gds_collation_not_found, gds_arg_string, collation_name->str_data, 0); /* If both specified, must be for same character set */ @@ -508,9 +509,9 @@ void DDL_resolve_intl_type( REQ request, FLD field, STR collation_name) resolved_type = resolved_collation; if ((field->fld_character_set_id != resolved_type->intlsym_charset_id) && (field->fld_character_set_id != ttype_dynamic)) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 204, gds_arg_gds, - gds__dsql_datatype_err, gds_arg_gds, - gds__collation_not_for_charset, gds_arg_string, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 204, gds_arg_gds, + gds_dsql_datatype_err, gds_arg_gds, + gds_collation_not_for_charset, gds_arg_string, collation_name->str_data, 0); } @@ -522,10 +523,10 @@ void DDL_resolve_intl_type( REQ request, FLD field, STR collation_name) if (field->fld_dtype == dtype_varying) field_length += sizeof(USHORT); if (field_length > (ULONG) MAX_COLUMN_SIZE) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 204, - gds_arg_gds, gds__dsql_datatype_err, - gds_arg_gds, gds__imp_exc, - gds_arg_gds, gds__field_name, gds_arg_string, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 204, + gds_arg_gds, gds_dsql_datatype_err, + gds_arg_gds, gds_imp_exc, + gds_arg_gds, gds_field_name, gds_arg_string, field->fld_name, 0); field->fld_length = (USHORT) field_length; }; @@ -843,8 +844,8 @@ static void define_computed( /* check if array or blobs are used in expression */ if (check_array_or_blob(input)) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 607, - gds_arg_gds, gds__dsql_no_blob_array, 0); + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 607, + gds_arg_gds, gds_dsql_no_blob_array, 0); /* generate the blr expression */ @@ -1471,8 +1472,8 @@ static void define_dimensions( REQ request, FLD field) if (dims > MAX_ARRAY_DIMENSIONS) { - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 604, - gds_arg_gds, gds__dsql_max_arr_dim_exceeded, 0); + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 604, + gds_arg_gds, gds_dsql_max_arr_dim_exceeded, 0); } put_number(request, gds_dyn_fld_dimensions, (SSHORT) dims); @@ -1496,8 +1497,8 @@ static void define_dimensions( REQ request, FLD field) STUFF(gds_dyn_end); if (lrange >= hrange) { - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 604, - gds_arg_gds, gds__dsql_arr_range_error, 0); + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 604, + gds_arg_gds, gds_dsql_arr_range_error, 0); } } } @@ -1575,8 +1576,8 @@ static void define_domain( REQ request) } else { - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 637, - gds_arg_gds, gds__dsql_duplicate_spec, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 637, + gds_arg_gds, gds_dsql_duplicate_spec, gds_arg_string, "NOT NULL", 0); } } @@ -1584,8 +1585,8 @@ static void define_domain( REQ request) { if (check_flag) { - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 637, - gds_arg_gds, gds__dsql_duplicate_spec, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 637, + gds_arg_gds, gds_dsql_duplicate_spec, gds_arg_string, "DOMAIN CHECK CONSTRAINT", 0); } @@ -1716,9 +1717,9 @@ static void define_field( /* Get the domain information */ if (!(METD_get_domain(request, field, domain_name->str_data))) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 607, - gds_arg_gds, gds__dsql_command_err, - gds_arg_gds, gds__dsql_domain_not_found, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 607, + gds_arg_gds, gds_dsql_command_err, + gds_arg_gds, gds_dsql_domain_not_found, /* Specified domain or source field does not exist */ 0); @@ -1782,7 +1783,7 @@ static void define_field( if (node1->nod_type == nod_null) { if (default_null_flag == TRUE) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 204, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 204, gds_arg_gds, isc_bad_default_value, gds_arg_gds, isc_invalid_clause, gds_arg_string, "default null not null", 0); @@ -2511,9 +2512,9 @@ static void define_shadow( REQ request) shadow_node = request->req_ddl_node; ptr = shadow_node->nod_arg; if (!ptr[e_shadow_number]) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 607, - gds_arg_gds, gds__dsql_command_err, - gds_arg_gds, gds__dsql_shadow_number_err, 0); + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 607, + gds_arg_gds, gds_dsql_command_err, + gds_arg_gds, gds_dsql_shadow_number_err, 0); put_number(request, gds_dyn_def_shadow, (SSHORT) (ptr[e_shadow_number])); put_cstring(request, gds_dyn_def_file, @@ -2544,9 +2545,9 @@ static void define_shadow( REQ request) reinterpret_cast(file->fil_name->str_data)); if (!length && !file->fil_start) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 607, - gds_arg_gds, gds__dsql_command_err, - gds_arg_gds, gds__dsql_file_length_err, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 607, + gds_arg_gds, gds_dsql_command_err, + gds_arg_gds, gds_dsql_file_length_err, gds_arg_number, (SLONG) file->fil_name->str_data, /* Preceding file did not specify length, so %s must include starting page number */ 0); @@ -2618,9 +2619,9 @@ static void define_trigger( REQ request, NOD node) (relation_name = METD_get_trigger_relation(request, trigger_name, &trig_type))) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 204, - gds_arg_gds, gds__dsql_trigger_err, gds_arg_gds, - gds__random, gds_arg_string, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 204, + gds_arg_gds, gds_dsql_trigger_err, gds_arg_gds, + gds_random, gds_arg_string, trigger_name->str_data, 0); relation_node = (NOD) ALLOCDV(type_nod, e_rln_count); node->nod_arg[e_trg_table] = relation_node; @@ -2776,9 +2777,9 @@ static void define_udf( REQ request) field->fld_dtype == dtype_cstring || field->fld_dtype == dtype_blob || field->fld_dtype == dtype_timestamp)) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 607, - gds_arg_gds, gds__dsql_command_err, - gds_arg_gds, gds__return_mode_err, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 607, + gds_arg_gds, gds_dsql_command_err, + gds_arg_gds, gds_return_mode_err, /* Return mode by value not allowed for this data type */ 0); @@ -2788,9 +2789,9 @@ static void define_udf( REQ request) if (field->fld_dtype == dtype_blob) { blob_position = (arguments) ? arguments->nod_count + 1 : 1; if (blob_position > MAX_UDF_ARGUMENTS) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 607, - gds_arg_gds, gds__dsql_command_err, - gds_arg_gds, gds__extern_func_err, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 607, + gds_arg_gds, gds_dsql_command_err, + gds_arg_gds, gds_extern_func_err, /* External functions can not have more than 10 parameters */ /* Or 9 if the function returns a BLOB */ 0); @@ -2807,9 +2808,9 @@ static void define_udf( REQ request) /* Function modifies an argument whose value is the function return value */ if (!arguments || position > arguments->nod_count || position < 1) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 607, - gds_arg_gds, gds__dsql_command_err, - gds_arg_gds, gds__extern_func_err, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 607, + gds_arg_gds, gds_dsql_command_err, + gds_arg_gds, gds_extern_func_err, /* External functions can not have more than 10 parameters */ /* Not strictly correct -- return position error */ 0); @@ -2847,9 +2848,9 @@ static void define_udf( REQ request) for (ptr = arguments->nod_arg, end = ptr + arguments->nod_count; ptr < end; ptr++, position++) { if (position > MAX_UDF_ARGUMENTS) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 607, - gds_arg_gds, gds__dsql_command_err, - gds_arg_gds, gds__extern_func_err, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 607, + gds_arg_gds, gds_dsql_command_err, + gds_arg_gds, gds_extern_func_err, /* External functions can not have more than 10 parameters */ 0); @@ -3235,9 +3236,9 @@ static void define_view( REQ request) /* if this is an expression, check to make sure there is a name specified */ if (!ptr && !field) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 607, - gds_arg_gds, gds__dsql_command_err, - gds_arg_gds, gds__specify_field_err, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 607, + gds_arg_gds, gds_dsql_command_err, + gds_arg_gds, gds_specify_field_err, /* must specify field name for view select expression */ 0); @@ -3276,9 +3277,9 @@ static void define_view( REQ request) } if (ptr != end) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 607, - gds_arg_gds, gds__dsql_command_err, - gds_arg_gds, gds__num_field_err, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 607, + gds_arg_gds, gds_dsql_command_err, + gds_arg_gds, gds_num_field_err, /* number of fields does not match select list */ 0); @@ -3286,16 +3287,16 @@ static void define_view( REQ request) if ((check = node->nod_arg[e_view_check]) != NULL) { if (!updatable) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 607, - gds_arg_gds, gds__dsql_command_err, - gds_arg_gds, gds__col_name_err, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 607, + gds_arg_gds, gds_dsql_command_err, + gds_arg_gds, gds_col_name_err, /* Only simple column names permitted for VIEW WITH CHECK OPTION */ 0); if (select_expr->nod_count != 1) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 607, - gds_arg_gds, gds__dsql_command_err, - gds_arg_gds, gds__table_view_err, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 607, + gds_arg_gds, gds_dsql_command_err, + gds_arg_gds, gds_table_view_err, /* Only one table allowed for VIEW WITH CHECK OPTION */ 0); /* @@ -3303,9 +3304,9 @@ static void define_view( REQ request) which in turn points to nod_select_expr */ else if (select_expr->nod_arg[0]->nod_arg[e_sel_from]->nod_count != 1) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 607, - gds_arg_gds, gds__dsql_command_err, - gds_arg_gds, gds__table_view_err, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 607, + gds_arg_gds, gds_dsql_command_err, + gds_arg_gds, gds_table_view_err, /* Only one table allowed for VIEW WITH CHECK OPTION */ 0); @@ -3315,9 +3316,9 @@ static void define_view( REQ request) */ select_expr = select_expr->nod_arg[0]; if (!(select_expr->nod_arg[e_sel_where])) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 607, - gds_arg_gds, gds__dsql_command_err, - gds_arg_gds, gds__where_err, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 607, + gds_arg_gds, gds_dsql_command_err, + gds_arg_gds, gds_where_err, /* No where clause for VIEW WITH CHECK OPTION */ 0); @@ -3325,9 +3326,9 @@ static void define_view( REQ request) if (select_expr->nod_arg[e_sel_distinct] || select_expr->nod_arg[e_sel_group] || select_expr->nod_arg[e_sel_having]) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 607, - gds_arg_gds, gds__dsql_command_err, - gds_arg_gds, gds__distinct_err, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 607, + gds_arg_gds, gds_dsql_command_err, + gds_arg_gds, gds_distinct_err, /* DISTINCT, GROUP or HAVING not permitted for VIEW WITH CHECK OPTION */ 0); @@ -3598,18 +3599,18 @@ static void foreign_key( REQ request, NOD element) the referenced table have a primary key to serve as the implicitly referenced field, fail. */ if (!columns2) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 607, - gds_arg_gds, gds__dsql_command_err, - gds_arg_gds, gds__reftable_requires_pk, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 607, + gds_arg_gds, gds_dsql_command_err, + gds_arg_gds, gds_reftable_requires_pk, /* "REFERENCES table" without "(column)" requires PRIMARY KEY on referenced table */ 0); } if (columns2 && (columns1->nod_count != columns2->nod_count)) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 607, - gds_arg_gds, gds__dsql_command_err, - gds_arg_gds, gds__key_field_count_err, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 607, + gds_arg_gds, gds_dsql_command_err, + gds_arg_gds, gds_key_field_count_err, /* foreign key field count does not match primary key */ 0); @@ -4255,8 +4256,8 @@ static void modify_domain( REQ request) /* CVC: So do you want to crash me with ALTER DOMAIN dom SET; ??? */ if (!element->nod_arg[e_dft_default]) { - ERRD_post (gds__sqlerr, gds_arg_number, (SLONG) -104, - gds_arg_gds, gds__command_end_err, /* Unexpected end of command */ + ERRD_post (gds_sqlerr, gds_arg_number, (SLONG) -104, + gds_arg_gds, gds_command_end_err, /* Unexpected end of command */ 0); } /* CVC End modification. */ @@ -4282,9 +4283,9 @@ static void modify_domain( REQ request) correct type, length, scale, etc. */ if (!METD_get_domain(request, &local_field, domain_name->str_data)) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 607, - gds_arg_gds, gds__dsql_command_err, - gds_arg_gds, gds__dsql_domain_not_found, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 607, + gds_arg_gds, gds_dsql_command_err, + gds_arg_gds, gds_dsql_domain_not_found, /* Specified domain or source field does not exist */ 0); if (element->nod_arg[e_cnstr_condition]) @@ -4675,9 +4676,9 @@ static void modify_relation( REQ request) if ((element->nod_arg[1])->nod_type == nod_cascade) /* Unsupported DSQL construct */ - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 901, - gds_arg_gds, gds__dsql_command_err, - gds_arg_gds, gds__dsql_construct_err, 0); + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 901, + gds_arg_gds, gds_dsql_command_err, + gds_arg_gds, gds_dsql_construct_err, 0); assert((element->nod_arg[1])->nod_type == nod_restrict); put_cstring(request, gds_dyn_delete_local_fld, @@ -4954,8 +4955,8 @@ static SSHORT put_local_variables( REQ request, NOD parameters, SSHORT locals) while ((++rest) != end) { rest_field = (FLD) (*rest)->nod_arg[e_dfl_field]; if (!strcmp(field->fld_name, rest_field->fld_name)) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 637, - gds_arg_gds, gds__dsql_duplicate_spec, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 637, + gds_arg_gds, gds_dsql_duplicate_spec, gds_arg_string, field->fld_name, 0); } *ptr = var_node = @@ -5105,9 +5106,9 @@ static NOD replace_field_names( ptr++) { if ((*ptr)->nod_type == nod_select_expr) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 607, - gds_arg_gds, gds__dsql_command_err, - gds_arg_gds, gds__subquery_err, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 607, + gds_arg_gds, gds_dsql_command_err, + gds_arg_gds, gds_subquery_err, /* No subqueries permitted for VIEW WITH CHECK OPTION */ 0); @@ -5462,9 +5463,9 @@ static void modify_field( /* Get the domain information */ if (!(METD_get_domain(request, field, domain_name->str_data))) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 607, - gds_arg_gds, gds__dsql_command_err, - gds_arg_gds, gds__dsql_domain_not_found, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 607, + gds_arg_gds, gds_dsql_command_err, + gds_arg_gds, gds_dsql_domain_not_found, /* Specified domain or source field does not exist */ 0); DDL_resolve_intl_type(request, field, NULL); diff --git a/src/dsql/dsql.cpp b/src/dsql/dsql.cpp index af9f31fa72..08aa473a31 100644 --- a/src/dsql/dsql.cpp +++ b/src/dsql/dsql.cpp @@ -24,7 +24,7 @@ * readonly databases. */ /* -$Id: dsql.cpp,v 1.5 2001-07-14 00:44:14 skywalker Exp $ +$Id: dsql.cpp,v 1.6 2001-07-29 23:43:21 skywalker Exp $ */ /************************************************************** V4 Multi-threading changes. @@ -56,13 +56,14 @@ nested FOR loops are added. #define DSQL_MAIN +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include #include "../dsql/dsql.h" #include "../dsql/node.h" #include "../dsql/sym.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/thd.h" #include "../jrd/align.h" #include "../jrd/intl.h" @@ -82,7 +83,7 @@ nested FOR loops are added. #include "../jrd/sch_proto.h" #include "../jrd/thd_proto.h" #include "../jrd/why_proto.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" ASSERT_FILENAME #ifdef VMS diff --git a/src/dsql/errd.cpp b/src/dsql/errd.cpp index 435f979ba2..2bb251b8d3 100644 --- a/src/dsql/errd.cpp +++ b/src/dsql/errd.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../jrd/common.h" @@ -30,7 +31,7 @@ #include "../dsql/dsql.h" #include "../dsql/sqlda.h" -#include "../jrd/codes.h" +#include "gen/codes.h" #include "../jrd/iberr.h" #include "../dsql/errd_proto.h" #include "../dsql/utld_proto.h" @@ -244,7 +245,7 @@ void ERRD_post( STATUS status, ...) status_vector[2] != gds_arg_warning)) { /* this is a blank status vector */ status_vector[0] = gds_arg_gds; - status_vector[1] = gds__dsql_error; + status_vector[1] = gds_dsql_error; status_vector[2] = gds_arg_end; } diff --git a/src/dsql/gen.cpp b/src/dsql/gen.cpp index 04b7a56e3b..f02295fe9d 100644 --- a/src/dsql/gen.cpp +++ b/src/dsql/gen.cpp @@ -21,13 +21,14 @@ * Contributor(s): ______________________________________. */ /* -$Id: gen.cpp,v 1.1.1.1 2001-05-23 13:25:34 tamlin Exp $ +$Id: gen.cpp,v 1.2 2001-07-29 23:43:21 skywalker Exp $ */ +#include "firebird.h" #include #include #include "../dsql/dsql.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/align.h" #include "../dsql/node.h" #include "../jrd/intl.h" @@ -40,7 +41,7 @@ $Id: gen.cpp,v 1.1.1.1 2001-05-23 13:25:34 tamlin Exp $ #include "../dsql/metd_proto.h" #include "../jrd/thd_proto.h" #include "../jrd/dsc_proto.h" -#include "../include/iberror.h" +#include "gen/iberror.h" ASSERT_FILENAME static void gen_aggregate(REQ, NOD); static void gen_cast(REQ, NOD); diff --git a/src/dsql/hsh.cpp b/src/dsql/hsh.cpp index ef3b47b36d..84beccef8f 100644 --- a/src/dsql/hsh.cpp +++ b/src/dsql/hsh.cpp @@ -21,10 +21,11 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include "../dsql/dsql.h" #include "../dsql/sym.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../dsql/alld_proto.h" #include "../dsql/errd_proto.h" #include "../dsql/hsh_proto.h" diff --git a/src/dsql/keywords.h b/src/dsql/keywords.h index 3b3ac9fc58..6fd70af1b0 100644 --- a/src/dsql/keywords.h +++ b/src/dsql/keywords.h @@ -18,218 +18,237 @@ * All Rights Reserved. * Contributor(s): ______________________________________. See dsql/parse.y for a chronological list. */ -NOT_LSS, "!<", 1, - NEQ, "!=", 1, - NOT_GTR, "!>", 1, - LPAREN, "(", 1, - RPAREN, ")", 1, COMMA, ",", 1, LSS, "<", 1, LEQ, "<=", 1, NEQ, "<>", 1, /* Alias of != */ - EQL, "=", 1, - GTR, ">", 1, - GEQ, ">=", 1, - ACTION, "ACTION", 1, - ACTIVE, "ACTIVE", 1, - ADD, "ADD", 1, - ADMIN, "ADMIN", 1, - AFTER, "AFTER", 1, - ALL, "ALL", 1, - ALTER, "ALTER", 1, AND, "AND", 1, ANY, "ANY", 1, AS, "AS", 1, ASC, "ASC", 1, /* Alias of ASCENDING */ - ASC, "ASCENDING", 1, - AT, "AT", 1, - AUTO, "AUTO", 1, - AVG, "AVG", 1, - BASENAME, "BASE_NAME", 1, - BEFORE, "BEFORE", 1, - BEGIN, "BEGIN", 1, - BETWEEN, "BETWEEN", 1, - BLOB, "BLOB", 1, - BY, "BY", 1, - CACHE, "CACHE", 1, - CASCADE, "CASCADE", 1, - CAST, "CAST", 1, - KW_CHAR, "CHAR", 1, - CHARACTER, "CHARACTER", 1, - CHECK, "CHECK", 1, - CHECK_POINT_LEN, "CHECK_POINT_LENGTH", 1, - COLLATE, "COLLATE", 1, - COLUMN, "COLUMN", 2, - COMMIT, "COMMIT", 1, - COMMITTED, "COMMITTED", 1, - COMPUTED, "COMPUTED", 1, - CONDITIONAL, "CONDITIONAL", 1, - CONSTRAINT, "CONSTRAINT", 1, - CONTAINING, "CONTAINING", 1, - COUNT, "COUNT", 1, - CREATE, "CREATE", 1, - CSTRING, "CSTRING", 1, - CURRENT, "CURRENT", 1, - CURRENT_DATE, "CURRENT_DATE", 2, - CURRENT_TIME, "CURRENT_TIME", 2, - CURRENT_TIMESTAMP, "CURRENT_TIMESTAMP", 2, - CURSOR, "CURSOR", 1, - DATABASE, "DATABASE", 1, - DATE, "DATE", 1, - DAY, "DAY", 2, - DEBUG, "DEBUG", 1, - KW_DEC, "DEC", 1, - DECIMAL, "DECIMAL", 1, - DECLARE, "DECLARE", 1, - DEFAULT, "DEFAULT", 1, DELETE, "DELETE", 1, DESC, "DESC", 1, /* Alias of DESCENDING */ - DESC, "DESCENDING", 1, - DISTINCT, "DISTINCT", 1, - DO, "DO", 1, - DOMAIN, "DOMAIN", 1, - KW_DOUBLE, "DOUBLE", 1, - DROP, "DROP", 1, - ELSE, "ELSE", 1, - END, "END", 1, - ENTRY_POINT, "ENTRY_POINT", 1, - ESCAPE, "ESCAPE", 1, - EXCEPTION, "EXCEPTION", 1, - EXECUTE, "EXECUTE", 1, - EXISTS, "EXISTS", 1, - EXIT, "EXIT", 1, - EXTERNAL, "EXTERNAL", 1, - EXTRACT, "EXTRACT", 2, - KW_FILE, "FILE", 1, - FILTER, "FILTER", 1, - KW_FLOAT, "FLOAT", 1, - FOR, "FOR", 1, - FOREIGN, "FOREIGN", 1, - FREE_IT, "FREE_IT", 1, - FROM, "FROM", 1, - FULL, "FULL", 1, - FUNCTION, "FUNCTION", 1, - GDSCODE, "GDSCODE", 1, - GENERATOR, "GENERATOR", 1, - GEN_ID, "GEN_ID", 1, - GRANT, "GRANT", 1, - GROUP, "GROUP", 1, - GROUP_COMMIT_WAIT, "GROUP_COMMIT_WAIT_TIME", 1, - HAVING, "HAVING", 1, - HOUR, "HOUR", 2, - IF, "IF", 1, - IN, "IN", 1, - INACTIVE, "INACTIVE", 1, - INDEX, "INDEX", 1, - INNER, "INNER", 1, - INPUT_TYPE, "INPUT_TYPE", 1, - INSERT, "INSERT", 1, - KW_INT, "INT", 1, - INTEGER, "INTEGER", 1, - INTO, "INTO", 1, - IS, "IS", 1, - ISOLATION, "ISOLATION", 1, - JOIN, "JOIN", 1, - KEY, "KEY", 1, - LEFT, "LEFT", 1, - LENGTH, "LENGTH", 1, - LEVEL, "LEVEL", 1, - LIKE, "LIKE", 1, - LOGFILE, "LOGFILE", 1, - LOG_BUF_SIZE, "LOG_BUFFER_SIZE", 1, - KW_LONG, "LONG", 1, - MANUAL, "MANUAL", 1, - MAXIMUM, "MAX", 1, - MAX_SEGMENT, "MAXIMUM_SEGMENT", 1, - MERGE, "MERGE", 1, - MESSAGE, "MESSAGE", 1, - MINIMUM, "MIN", 1, - MINUTE, "MINUTE", 2, - MODULE_NAME, "MODULE_NAME", 1, - MONTH, "MONTH", 2, - NAMES, "NAMES", 1, - NATIONAL, "NATIONAL", 1, - NATURAL, "NATURAL", 1, - NCHAR, "NCHAR", 1, - NO, "NO", 1, - NOT, "NOT", 1, - KW_NULL, "NULL", 1, - KW_NUMERIC, "NUMERIC", 1, - NUM_LOG_BUFS, "NUM_LOG_BUFFERS", 1, - OF, "OF", 1, - ON, "ON", 1, - ONLY, "ONLY", 1, - OPTION, "OPTION", 1, - OR, "OR", 1, - ORDER, "ORDER", 1, - OUTER, "OUTER", 1, - OUTPUT_TYPE, "OUTPUT_TYPE", 1, - OVERFLOW, "OVERFLOW", 1, - PAGE, "PAGE", 1, - PAGES, "PAGES", 1, - PAGE_SIZE, "PAGE_SIZE", 1, - PARAMETER, "PARAMETER", 1, - PASSWORD, "PASSWORD", 1, - PLAN, "PLAN", 1, - POSITION, "POSITION", 1, - POST_EVENT, "POST_EVENT", 1, - PRECISION, "PRECISION", 1, - PRIMARY, "PRIMARY", 1, - PRIVILEGES, "PRIVILEGES", 1, - PROCEDURE, "PROCEDURE", 1, - PROTECTED, "PROTECTED", 1, - RAW_PARTITIONS, "RAW_PARTITIONS", 1, - DB_KEY, "RDB$DB_KEY", 1, - READ, "READ", 1, - REAL, "REAL", 1, - VERSION, "RECORD_VERSION", 1, - REFERENCES, "REFERENCES", 1, RESERVING, "RESERV", 1, /* Alias of RESERVING */ - RESERVING, "RESERVING", 1, - RESTRICT, "RESTRICT", 1, - RETAIN, "RETAIN", 1, - RETURNING_VALUES, "RETURNING_VALUES", 1, - RETURNS, "RETURNS", 1, - REVOKE, "REVOKE", 1, - RIGHT, "RIGHT", 1, - ROLE, "ROLE", 1, ROLLBACK, "ROLLBACK", 1, DATABASE, "SCHEMA", 1, /* Alias of DATABASE */ - SECOND, "SECOND", 2, - SEGMENT, "SEGMENT", 1, - SELECT, "SELECT", 1, - SET, "SET", 1, - SHADOW, "SHADOW", 1, - SHARED, "SHARED", 1, - SINGULAR, "SINGULAR", 1, - SIZE, "SIZE", 1, - SMALLINT, "SMALLINT", 1, - SNAPSHOT, "SNAPSHOT", 1, - SOME, "SOME", 1, - SORT, "SORT", 1, - SQLCODE, "SQLCODE", 1, - STABILITY, "STABILITY", 1, STARTING, "STARTING", 1, STARTING, "STARTS", 1, /* Alias of STARTING */ - STATISTICS, "STATISTICS", 1, - SUB_TYPE, "SUB_TYPE", 1, - SUM, "SUM", 1, - SUSPEND, "SUSPEND", 1, - TABLE, "TABLE", 1, - THEN, "THEN", 1, - TIME, "TIME", 2, - TIMESTAMP, "TIMESTAMP", 2, - TO, "TO", 1, - TRANSACTION, "TRANSACTION", 1, - TRIGGER, "TRIGGER", 1, - TYPE, "TYPE", 2, - UNCOMMITTED, "UNCOMMITTED", 1, - UNION, "UNION", 1, - UNIQUE, "UNIQUE", 1, - UPDATE, "UPDATE", 1, - KW_UPPER, "UPPER", 1, - USER, "USER", 1, - KW_VALUE, "VALUE", 1, - VALUES, "VALUES", 1, - VARCHAR, "VARCHAR", 1, - VARIABLE, "VARIABLE", 1, - VARYING, "VARYING", 1, - VIEW, "VIEW", 1, - WAIT, "WAIT", 1, - WEEKDAY, "WEEKDAY", 2, - WHEN, "WHEN", 1, - WHERE, "WHERE", 1, - WHILE, "WHILE", 1, - WITH, "WITH", 1, - WORK, "WORK", 1, - WRITE, "WRITE", 1, YEAR, "YEAR", 2, YEARDAY, "YEARDAY", 2, NOT_LSS, "^<", 1, /* Alias of !< */ - NEQ, "^=", 1, /* Alias of != */ - NOT_GTR, "^>", 1, /* Alias of !> */ - CONCATENATE, "||", 1, NOT_LSS, "~<", 1, /* Alias of !< */ - NEQ, "~=", 1, /* Alias of != */ - NOT_GTR, "~>", 1, /* Alias of !> */ + {NOT_LSS, "!<", 1}, + {NEQ, "!=", 1}, + {NOT_GTR, "!>", 1}, + {LPAREN, "(", 1}, + {RPAREN, ")", 1}, + {COMMA, ",", 1}, + {LSS, "<", 1}, + {LEQ, "<=", 1}, + {NEQ, "<>", 1}, /* Alias of != */ + {EQL, "=", 1}, + {GTR, ">", 1}, + {GEQ, ">=", 1}, + {ACTION, "ACTION", 1}, + {ACTIVE, "ACTIVE", 1}, + {ADD, "ADD", 1}, + {ADMIN, "ADMIN", 1}, + {AFTER, "AFTER", 1}, + {ALL, "ALL", 1}, + {ALTER, "ALTER", 1}, + {AND, "AND", 1}, + {ANY, "ANY", 1}, + {AS, "AS", 1}, + {ASC, "ASC", 1}, /* Alias of ASCENDING */ + {ASC, "ASCENDING", 1}, + {AT, "AT", 1}, + {AUTO, "AUTO", 1}, + {AVG, "AVG", 1}, + {BASENAME, "BASE_NAME", 1}, + {BEFORE, "BEFORE", 1}, + {BEGIN, "BEGIN", 1}, + {BETWEEN, "BETWEEN", 1}, + {BLOB, "BLOB", 1}, + {BY, "BY", 1}, + {CACHE, "CACHE", 1}, + {CASCADE, "CASCADE", 1}, + {CAST, "CAST", 1}, + {KW_CHAR, "CHAR", 1}, + {CHARACTER, "CHARACTER", 1}, + {CHECK, "CHECK", 1}, + {CHECK_POINT_LEN, "CHECK_POINT_LENGTH", 1}, + {COLLATE, "COLLATE", 1}, + {COLUMN, "COLUMN", 2}, + {COMMIT, "COMMIT", 1}, + {COMMITTED, "COMMITTED", 1}, + {COMPUTED, "COMPUTED", 1}, + {CONDITIONAL, "CONDITIONAL", 1}, + {CONSTRAINT, "CONSTRAINT", 1}, + {CONTAINING, "CONTAINING", 1}, + {COUNT, "COUNT", 1}, + {CREATE, "CREATE", 1}, + {CSTRING, "CSTRING", 1}, + {CURRENT, "CURRENT", 1}, + {CURRENT_DATE, "CURRENT_DATE", 2}, + {CURRENT_TIME, "CURRENT_TIME", 2}, + {CURRENT_TIMESTAMP, "CURRENT_TIMESTAMP", 2}, + {CURSOR, "CURSOR", 1}, + {DATABASE, "DATABASE", 1}, + {DATE, "DATE", 1}, + {DAY, "DAY", 2}, + {DEBUG, "DEBUG", 1}, + {KW_DEC, "DEC", 1}, + {DECIMAL, "DECIMAL", 1}, + {DECLARE, "DECLARE", 1}, + {DEFAULT, "DEFAULT", 1}, + {DELETE, "DELETE", 1}, + {DESC, "DESC", 1}, /* Alias of DESCENDING */ + {DESC, "DESCENDING", 1}, + {DISTINCT, "DISTINCT", 1}, + {DO, "DO", 1}, + {DOMAIN, "DOMAIN", 1}, + {KW_DOUBLE, "DOUBLE", 1}, + {DROP, "DROP", 1}, + {ELSE, "ELSE", 1}, + {END, "END", 1}, + {ENTRY_POINT, "ENTRY_POINT", 1}, + {ESCAPE, "ESCAPE", 1}, + {EXCEPTION, "EXCEPTION", 1}, + {EXECUTE, "EXECUTE", 1}, + {EXISTS, "EXISTS", 1}, + {EXIT, "EXIT", 1}, + {EXTERNAL, "EXTERNAL", 1}, + {EXTRACT, "EXTRACT", 2}, + {KW_FILE, "FILE", 1}, + {FILTER, "FILTER", 1}, + {KW_FLOAT, "FLOAT", 1}, + {FOR, "FOR", 1}, + {FOREIGN, "FOREIGN", 1}, + {FREE_IT, "FREE_IT", 1}, + {FROM, "FROM", 1}, + {FULL, "FULL", 1}, + {FUNCTION, "FUNCTION", 1}, + {GDSCODE, "GDSCODE", 1}, + {GENERATOR, "GENERATOR", 1}, + {GEN_ID, "GEN_ID", 1}, + {GRANT, "GRANT", 1}, + {GROUP, "GROUP", 1}, + {GROUP_COMMIT_WAIT, "GROUP_COMMIT_WAIT_TIME", 1}, + {HAVING, "HAVING", 1}, + {HOUR, "HOUR", 2}, + {IF, "IF", 1}, + {IN, "IN", 1}, + {INACTIVE, "INACTIVE", 1}, + {INDEX, "INDEX", 1}, + {INNER, "INNER", 1}, + {INPUT_TYPE, "INPUT_TYPE", 1}, + {INSERT, "INSERT", 1}, + {KW_INT, "INT", 1}, + {INTEGER, "INTEGER", 1}, + {INTO, "INTO", 1}, + {IS, "IS", 1}, + {ISOLATION, "ISOLATION", 1}, + {JOIN, "JOIN", 1}, + {KEY, "KEY", 1}, + {LEFT, "LEFT", 1}, + {LENGTH, "LENGTH", 1}, + {LEVEL, "LEVEL", 1}, + {LIKE, "LIKE", 1}, + {LOGFILE, "LOGFILE", 1}, + {LOG_BUF_SIZE, "LOG_BUFFER_SIZE", 1}, + {KW_LONG, "LONG", 1}, + {MANUAL, "MANUAL", 1}, + {MAXIMUM, "MAX", 1}, + {MAX_SEGMENT, "MAXIMUM_SEGMENT", 1}, + {MERGE, "MERGE", 1}, + {MESSAGE, "MESSAGE", 1}, + {MINIMUM, "MIN", 1}, + {MINUTE, "MINUTE", 2}, + {MODULE_NAME, "MODULE_NAME", 1}, + {MONTH, "MONTH", 2}, + {NAMES, "NAMES", 1}, + {NATIONAL, "NATIONAL", 1}, + {NATURAL, "NATURAL", 1}, + {NCHAR, "NCHAR", 1}, + {NO, "NO", 1}, + {NOT, "NOT", 1}, + {KW_NULL, "NULL", 1}, + {KW_NUMERIC, "NUMERIC", 1}, + {NUM_LOG_BUFS, "NUM_LOG_BUFFERS", 1}, + {OF, "OF", 1}, + {ON, "ON", 1}, + {ONLY, "ONLY", 1}, + {OPTION, "OPTION", 1}, + {OR, "OR", 1}, + {ORDER, "ORDER", 1}, + {OUTER, "OUTER", 1}, + {OUTPUT_TYPE, "OUTPUT_TYPE", 1}, + {OVERFLOW, "OVERFLOW", 1}, + {PAGE, "PAGE", 1}, + {PAGES, "PAGES", 1}, + {PAGE_SIZE, "PAGE_SIZE", 1}, + {PARAMETER, "PARAMETER", 1}, + {PASSWORD, "PASSWORD", 1}, + {PLAN, "PLAN", 1}, + {POSITION, "POSITION", 1}, + {POST_EVENT, "POST_EVENT", 1}, + {PRECISION, "PRECISION", 1}, + {PRIMARY, "PRIMARY", 1}, + {PRIVILEGES, "PRIVILEGES", 1}, + {PROCEDURE, "PROCEDURE", 1}, + {PROTECTED, "PROTECTED", 1}, + {RAW_PARTITIONS, "RAW_PARTITIONS", 1}, + {DB_KEY, "RDB$DB_KEY", 1}, + {READ, "READ", 1}, + {REAL, "REAL", 1}, + {VERSION, "RECORD_VERSION", 1}, + {REFERENCES, "REFERENCES", 1}, + {RESERVING, "RESERV", 1}, /* Alias of RESERVING */ + {RESERVING, "RESERVING", 1}, + {RESTRICT, "RESTRICT", 1}, + {RETAIN, "RETAIN", 1}, + {RETURNING_VALUES, "RETURNING_VALUES", 1}, + {RETURNS, "RETURNS", 1}, + {REVOKE, "REVOKE", 1}, + {RIGHT, "RIGHT", 1}, + {ROLE, "ROLE", 1}, + {ROLLBACK, "ROLLBACK", 1}, + {DATABASE, "SCHEMA", 1}, /* Alias of DATABASE */ + {SECOND, "SECOND", 2}, + {SEGMENT, "SEGMENT", 1}, + {SELECT, "SELECT", 1}, + {SET, "SET", 1}, + {SHADOW, "SHADOW", 1}, + {SHARED, "SHARED", 1}, + {SINGULAR, "SINGULAR", 1}, + {SIZE, "SIZE", 1}, + {SMALLINT, "SMALLINT", 1}, + {SNAPSHOT, "SNAPSHOT", 1}, + {SOME, "SOME", 1}, + {SORT, "SORT", 1}, + {SQLCODE, "SQLCODE", 1}, + {STABILITY, "STABILITY", 1}, + {STARTING, "STARTING", 1}, + {STARTING, "STARTS", 1}, /* Alias of STARTING */ + {STATISTICS, "STATISTICS", 1}, + {SUB_TYPE, "SUB_TYPE", 1}, + {SUM, "SUM", 1}, + {SUSPEND, "SUSPEND", 1}, + {TABLE, "TABLE", 1}, + {THEN, "THEN", 1}, + {TIME, "TIME", 2}, + {TIMESTAMP, "TIMESTAMP", 2}, + {TO, "TO", 1}, + {TRANSACTION, "TRANSACTION", 1}, + {TRIGGER, "TRIGGER", 1}, + {TYPE, "TYPE", 2}, + {UNCOMMITTED, "UNCOMMITTED", 1}, + {UNION, "UNION", 1}, + {UNIQUE, "UNIQUE", 1}, + {UPDATE, "UPDATE", 1}, + {KW_UPPER, "UPPER", 1}, + {USER, "USER", 1}, + {KW_VALUE, "VALUE", 1}, + {VALUES, "VALUES", 1}, + {VARCHAR, "VARCHAR", 1}, + {VARIABLE, "VARIABLE", 1}, + {VARYING, "VARYING", 1}, + {VIEW, "VIEW", 1}, + {WAIT, "WAIT", 1}, + {WEEKDAY, "WEEKDAY", 2}, + {WHEN, "WHEN", 1}, + {WHERE, "WHERE", 1}, + {WHILE, "WHILE", 1}, + {WITH, "WITH", 1}, + {WORK, "WORK", 1}, + {WRITE, "WRITE", 1}, + {YEAR, "YEAR", 2}, + {YEARDAY, "YEARDAY", 2}, + {NOT_LSS, "^<", 1}, /* Alias of !< */ + {NEQ, "^=", 1}, /* Alias of != */ + {NOT_GTR, "^>", 1}, /* Alias of !> */ + {CONCATENATE, "||", 1}, + {NOT_LSS, "~<", 1}, /* Alias of !< */ + {NEQ, "~=", 1}, /* Alias of != */ + {NOT_GTR, "~>", 1}, /* Alias of !> */ diff --git a/src/dsql/make.cpp b/src/dsql/make.cpp index 2d053f4cb6..4485828809 100644 --- a/src/dsql/make.cpp +++ b/src/dsql/make.cpp @@ -21,12 +21,13 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include #include "../dsql/dsql.h" #include "../dsql/node.h" #include "../dsql/sym.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/intl.h" #include "../jrd/constants.h" #include "../jrd/align.h" diff --git a/src/dsql/metd.epp b/src/dsql/metd.epp index 258272177d..4ca6228724 100644 --- a/src/dsql/metd.epp +++ b/src/dsql/metd.epp @@ -21,11 +21,12 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include "../dsql/dsql.h" #include "../dsql/node.h" #include "../dsql/sym.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/align.h" #include "../jrd/intl.h" #include "../jrd/thd.h" diff --git a/src/dsql/movd.cpp b/src/dsql/movd.cpp index f698befd24..b470cd68e5 100644 --- a/src/dsql/movd.cpp +++ b/src/dsql/movd.cpp @@ -21,13 +21,14 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/common.h" #include "../jrd/ib_stdio.h" #include #include #include "../dsql/dsql.h" -#include "../jrd/codes.h" +#include "gen/codes.h" #include "../jrd/iberr.h" #include "../dsql/errd_proto.h" #include "../dsql/movd_proto.h" @@ -81,9 +82,9 @@ static void post_error( STATUS status, ...) v = tdsql->tsql_status; v_end = v + 20; *v++ = gds_arg_gds; - *v++ = gds__dsql_error; + *v++ = gds_dsql_error; *v++ = gds_arg_gds; - *v++ = gds__sqlerr; + *v++ = gds_sqlerr; *v++ = gds_arg_number; *v++ = -303; diff --git a/src/dsql/parse.cpp b/src/dsql/parse.cpp index 1b11af83ce..0381acc41c 100644 --- a/src/dsql/parse.cpp +++ b/src/dsql/parse.cpp @@ -1,3 +1,13 @@ +#ifndef lint +static char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93"; +#endif +#define YYBYACC 1 +#define YYMAJOR 1 +#define YYMINOR 9 +#define yyclearin (DSQL_yychar=(-1)) +#define yyerrok (DSQL_yyerrflag=0) +#define YYRECOVERING (DSQL_yyerrflag!=0) +#define YYPREFIX "yy" /* * PROGRAM: Dynamic SQL runtime support * MODULE: parse.y @@ -21,17 +31,18 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include #include #include "../jrd/common.h" #include -#include "../include/iberror.h" +#include "gen/iberror.h" #include "../dsql/dsql.h" #include "../dsql/node.h" #include "../dsql/sym.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/flags.h" #include "../dsql/alld_proto.h" #include "../dsql/errd_proto.h" @@ -40,17 +51,27 @@ #include "../dsql/parse_proto.h" #include "../jrd/gds_proto.h" #include "../jrd/thd_proto.h" +/* #include "../jrd/err_proto.h" */ +#ifndef WINDOWS_ONLY #include "../wal/wal.h" +#endif -// fwd. decl. - NOTE! We can't currently include jrd/err_proto.h into -// this file to get the real declaration (try and you'll see why). :-( -extern "C" TEXT* DLL_EXPORT ERR_string(TEXT*, int); +extern "C" TEXT *DLL_EXPORT ERR_string(CONST TEXT*, int); ASSERT_FILENAME -extern "C" { + +static void yyerror (TEXT *); + +/* Remove compiler warning produced by redef of WRITE & READ from WINDOWS.H */ +#ifdef WINDOWS_ONLY +#undef READ +#undef WRITE +#endif + /* since UNIX isn't standard, we have to define stuff which is in (which isn't available on all UNIXes... */ + #define SHRT_POS_MAX 32767 #define SHRT_UNSIGNED_MAX 65535 #define SHRT_NEG_MAX 32768 @@ -58,316 +79,3291 @@ extern "C" { #define POSITIVE 0 #define NEGATIVE 1 #define UNSIGNED 2 + #define MIN_CACHE_BUFFERS 250 #define DEF_CACHE_BUFFERS 1000 + #define YYSTYPE NOD -#if defined(DEBUG) || defined(_DEBUG) +#ifdef DEBUG #define YYDEBUG 1 #endif -static CONST UCHAR INTERNAL_FIELD_NAME[] = "DSQL internal"; /* NTX: placeholder */ -static CONST UCHAR NULL_STRING[] = ""; + +static CONST UCHAR + INTERNAL_FIELD_NAME [] = "DSQL internal"; /* NTX: placeholder */ +static CONST UCHAR + NULL_STRING [] = ""; #ifndef SHLIB_DEFS -NOD DSQL_parse; +NOD DSQL_parse; #else -extern NOD DSQL_parse; +extern NOD DSQL_parse; #endif -static FLD field; -static FIL file; -static NOD field_name; -static TEXT *beginning; -static SSHORT log_defined, cache_defined; +static FLD field; +static FIL file; +static NOD field_name; +static TEXT *beginning; +static SSHORT log_defined, cache_defined; -# define ACTIVE 257 -# define ADD 258 -# define AFTER 259 -# define ALL 260 -# define ALTER 261 -# define AND 262 -# define ANY 263 -# define AS 264 -# define ASC 265 -# define AT 266 -# define AVG 267 -# define AUTO 268 -# define BASENAME 269 -# define BEFORE 270 -# define BEGIN 271 -# define BETWEEN 272 -# define BLOB 273 -# define BY 274 -# define CACHE 275 -# define CAST 276 -# define CHARACTER 277 -# define CHECK 278 -# define CHECK_POINT_LEN 279 -# define COLLATE 280 -# define COLLATION 281 -# define COMMA 282 -# define COMMIT 283 -# define COMMITTED 284 -# define COMPUTED 285 -# define CONCATENATE 286 -# define CONDITIONAL 287 -# define CONSTRAINT 288 -# define CONTAINING 289 -# define COUNT 290 -# define CREATE 291 -# define CSTRING 292 -# define CURRENT 293 -# define CURSOR 294 -# define DATABASE 295 -# define DATE 296 -# define DB_KEY 297 -#ifdef DEBUG -#undef DEBUG +#define ACTIVE 257 +#define ADD 258 +#define AFTER 259 +#define ALL 260 +#define ALTER 261 +#define AND 262 +#define ANY 263 +#define AS 264 +#define ASC 265 +#define AT 266 +#define AVG 267 +#define AUTO 268 +#define BASENAME 269 +#define BEFORE 270 +#define BEGIN 271 +#define BETWEEN 272 +#define BLOB 273 +#define BY 274 +#define CACHE 275 +#define CAST 276 +#define CHARACTER 277 +#define CHECK 278 +#define CHECK_POINT_LEN 279 +#define COLLATE 280 +#define COLLATION 281 +#define COMMA 282 +#define COMMIT 283 +#define COMMITTED 284 +#define COMPUTED 285 +#define CONCATENATE 286 +#define CONDITIONAL 287 +#define CONSTRAINT 288 +#define CONTAINING 289 +#define COUNT 290 +#define CREATE 291 +#define CSTRING 292 +#define CURRENT 293 +#define CURSOR 294 +#define DATABASE 295 +#define DATE 296 +#define DB_KEY 297 +#define DEBUG 298 +#define DECIMAL 299 +#define DECLARE 300 +#define DEFAULT 301 +#define DELETE 302 +#define DESC 303 +#define DISTINCT 304 +#define DO 305 +#define DOMAIN 306 +#define DROP 307 +#define ELSE 308 +#define END 309 +#define ENTRY_POINT 310 +#define EQL 311 +#define ESCAPE 312 +#define EXCEPTION 313 +#define EXECUTE 314 +#define EXISTS 315 +#define EXIT 316 +#define EXTERNAL 317 +#define FILTER 318 +#define FOR 319 +#define FOREIGN 320 +#define FROM 321 +#define FULL 322 +#define FUNCTION 323 +#define GDSCODE 324 +#define GEQ 325 +#define GENERATOR 326 +#define GEN_ID 327 +#define GRANT 328 +#define GROUP 329 +#define GROUP_COMMIT_WAIT 330 +#define GTR 331 +#define HAVING 332 +#define IF 333 +#define IN 334 +#define INACTIVE 335 +#define INNER 336 +#define INPUT_TYPE 337 +#define INDEX 338 +#define INSERT 339 +#define INTEGER 340 +#define INTO 341 +#define IS 342 +#define ISOLATION 343 +#define JOIN 344 +#define KEY 345 +#define KW_CHAR 346 +#define KW_DEC 347 +#define KW_DOUBLE 348 +#define KW_FILE 349 +#define KW_FLOAT 350 +#define KW_INT 351 +#define KW_LONG 352 +#define KW_NULL 353 +#define KW_NUMERIC 354 +#define KW_UPPER 355 +#define KW_VALUE 356 +#define LENGTH 357 +#define LOGFILE 358 +#define LPAREN 359 +#define LEFT 360 +#define LEQ 361 +#define LEVEL 362 +#define LIKE 363 +#define LOG_BUF_SIZE 364 +#define LSS 365 +#define MANUAL 366 +#define MAXIMUM 367 +#define MAX_SEGMENT 368 +#define MERGE 369 +#define MESSAGE 370 +#define MINIMUM 371 +#define MODULE_NAME 372 +#define NAMES 373 +#define NATIONAL 374 +#define NATURAL 375 +#define NCHAR 376 +#define NEQ 377 +#define NO 378 +#define NOT 379 +#define NOT_GTR 380 +#define NOT_LSS 381 +#define NUM_LOG_BUFS 382 +#define OF 383 +#define ON 384 +#define ONLY 385 +#define OPTION 386 +#define OR 387 +#define ORDER 388 +#define OUTER 389 +#define OUTPUT_TYPE 390 +#define OVERFLOW 391 +#define PAGE 392 +#define PAGES 393 +#define PAGE_SIZE 394 +#define PARAMETER 395 +#define PASSWORD 396 +#define PLAN 397 +#define POSITION 398 +#define POST_EVENT 399 +#define PRECISION 400 +#define PRIMARY 401 +#define PRIVILEGES 402 +#define PROCEDURE 403 +#define PROTECTED 404 +#define RAW_PARTITIONS 405 +#define READ 406 +#define REAL 407 +#define REFERENCES 408 +#define RESERVING 409 +#define RETAIN 410 +#define RETURNING_VALUES 411 +#define RETURNS 412 +#define REVOKE 413 +#define RIGHT 414 +#define RPAREN 415 +#define ROLLBACK 416 +#define SEGMENT 417 +#define SELECT 418 +#define SET 419 +#define SHADOW 420 +#define SHARED 421 +#define SINGULAR 422 +#define SIZE 423 +#define SMALLINT 424 +#define SNAPSHOT 425 +#define SOME 426 +#define SORT 427 +#define SQLCODE 428 +#define STABILITY 429 +#define STARTING 430 +#define STATISTICS 431 +#define SUB_TYPE 432 +#define SUSPEND 433 +#define SUM 434 +#define TABLE 435 +#define THEN 436 +#define TO 437 +#define TRANSACTION 438 +#define TRIGGER 439 +#define UNCOMMITTED 440 +#define UNION 441 +#define UNIQUE 442 +#define UPDATE 443 +#define USER 444 +#define VALUES 445 +#define VARCHAR 446 +#define VARIABLE 447 +#define VARYING 448 +#define VERSION 449 +#define VIEW 450 +#define WAIT 451 +#define WHEN 452 +#define WHERE 453 +#define WHILE 454 +#define WITH 455 +#define WORK 456 +#define WRITE 457 +#define FLOAT 458 +#define NUMBER 459 +#define NUMERIC 460 +#define SYMBOL 461 +#define STRING 462 +#define INTRODUCER 463 +#define ACTION 464 +#define ADMIN 465 +#define CASCADE 466 +#define FREE_IT 467 +#define RESTRICT 468 +#define ROLE 469 +#define COLUMN 470 +#define TYPE 471 +#define EXTRACT 472 +#define YEAR 473 +#define MONTH 474 +#define DAY 475 +#define HOUR 476 +#define MINUTE 477 +#define SECOND 478 +#define WEEKDAY 479 +#define YEARDAY 480 +#define TIME 481 +#define TIMESTAMP 482 +#define CURRENT_DATE 483 +#define CURRENT_TIME 484 +#define CURRENT_TIMESTAMP 485 +#define NUMBER64BIT 486 +#define SCALEDINT 487 +#define LIMIT 488 +#define INT64 489 +#define SUBSTRING 490 +#define YYERRCODE 256 +static short yylhs[] = { -1, + 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 9, 9, + 9, 9, 9, 19, 19, 18, 18, 18, 29, 29, + 22, 30, 30, 30, 30, 30, 21, 21, 27, 27, + 23, 12, 12, 12, 12, 12, 12, 12, 33, 24, + 24, 24, 24, 34, 34, 34, 20, 20, 35, 35, + 35, 25, 25, 39, 26, 26, 41, 41, 6, 42, + 42, 44, 49, 49, 49, 46, 46, 46, 53, 53, + 54, 47, 47, 56, 56, 56, 56, 43, 5, 59, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, + 61, 61, 64, 64, 64, 72, 80, 80, 80, 81, + 81, 82, 82, 83, 83, 87, 87, 71, 90, 90, + 92, 92, 93, 93, 96, 96, 97, 98, 98, 99, + 100, 69, 73, 70, 84, 84, 103, 104, 104, 106, + 106, 107, 107, 107, 107, 107, 105, 105, 108, 108, + 109, 109, 109, 109, 111, 111, 111, 111, 110, 110, + 115, 115, 114, 88, 116, 116, 117, 120, 121, 121, + 122, 118, 119, 119, 123, 123, 124, 124, 125, 125, + 125, 86, 86, 86, 66, 126, 126, 126, 127, 127, + 128, 128, 129, 129, 129, 135, 76, 76, 131, 131, + 94, 94, 89, 140, 141, 55, 132, 132, 95, 95, + 95, 95, 133, 133, 145, 145, 146, 148, 148, 148, + 148, 148, 130, 147, 147, 151, 151, 151, 151, 153, + 154, 155, 150, 149, 149, 149, 149, 149, 156, 157, + 158, 158, 158, 158, 65, 163, 159, 159, 160, 160, + 164, 164, 165, 161, 161, 166, 166, 167, 168, 168, + 162, 162, 170, 170, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 173, 174, 175, + 175, 176, 182, 178, 178, 178, 179, 179, 179, 184, + 184, 184, 184, 184, 184, 184, 184, 180, 180, 180, + 180, 177, 181, 181, 171, 171, 186, 187, 187, 188, + 188, 188, 188, 11, 190, 190, 190, 191, 191, 191, + 191, 191, 191, 68, 193, 196, 196, 196, 197, 200, + 205, 205, 206, 206, 207, 207, 137, 195, 77, 79, + 194, 194, 67, 210, 210, 210, 211, 211, 211, 211, + 211, 211, 212, 212, 213, 2, 215, 215, 215, 215, + 215, 215, 215, 221, 221, 223, 223, 223, 223, 223, + 223, 223, 216, 216, 224, 224, 224, 224, 224, 224, + 224, 220, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 226, + 226, 228, 228, 227, 225, 225, 225, 222, 222, 218, + 219, 219, 230, 230, 230, 230, 231, 231, 217, 232, + 232, 233, 233, 8, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 91, 91, 134, 134, 237, + 237, 240, 240, 242, 242, 50, 50, 239, 239, 239, + 239, 239, 239, 239, 239, 247, 247, 238, 238, 238, + 238, 248, 248, 58, 58, 58, 52, 52, 244, 244, + 244, 241, 241, 241, 252, 252, 252, 251, 251, 250, + 250, 250, 245, 245, 255, 253, 253, 253, 254, 254, + 246, 246, 246, 246, 256, 256, 15, 15, 15, 258, + 258, 258, 4, 13, 260, 260, 261, 261, 262, 262, + 257, 263, 263, 264, 264, 265, 265, 265, 265, 266, + 266, 267, 267, 268, 268, 270, 270, 270, 271, 271, + 271, 272, 272, 272, 269, 274, 274, 274, 275, 275, + 273, 273, 276, 278, 278, 277, 277, 259, 14, 279, + 279, 279, 280, 280, 283, 283, 284, 284, 62, 62, + 62, 281, 281, 285, 285, 282, 198, 198, 199, 199, + 289, 289, 290, 290, 290, 286, 293, 293, 294, 294, + 295, 295, 296, 296, 297, 297, 299, 299, 300, 300, + 208, 208, 28, 209, 209, 209, 209, 209, 209, 209, + 209, 202, 202, 301, 301, 302, 302, 302, 203, 203, + 201, 201, 287, 287, 304, 304, 304, 204, 204, 305, + 306, 306, 306, 306, 306, 307, 307, 308, 308, 309, + 309, 310, 310, 310, 311, 311, 10, 10, 312, 312, + 7, 7, 313, 314, 315, 16, 16, 316, 317, 318, + 318, 172, 291, 291, 3, 3, 319, 319, 319, 321, + 321, 58, 320, 320, 322, 322, 31, 31, 75, 74, + 74, 139, 139, 139, 136, 101, 101, 101, 101, 324, + 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, + 325, 325, 325, 325, 325, 325, 325, 325, 330, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 330, 336, 336, 326, 326, 327, 327, + 327, 327, 328, 328, 332, 332, 333, 333, 333, 333, + 331, 334, 329, 329, 337, 337, 335, 339, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, + 144, 144, 144, 340, 343, 343, 142, 142, 344, 344, + 344, 344, 344, 342, 342, 342, 342, 342, 338, 338, + 338, 338, 338, 338, 192, 345, 48, 48, 17, 17, + 214, 346, 51, 113, 243, 243, 85, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 303, 303, 347, 347, 347, 347, 347, 347, + 347, 347, 288, 288, 143, 45, 249, 112, 138, 323, + 152, 185, 236, 60, 57, 189, 102, 63, 292, 32, + 40, 298, 235, 36, 38, 183, 37, +}; +static short yylen[] = { 2, + 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 7, 8, + 6, 7, 5, 1, 2, 1, 2, 1, 1, 3, + 1, 1, 1, 1, 2, 2, 3, 0, 3, 0, + 1, 7, 8, 6, 7, 6, 7, 4, 3, 1, + 3, 3, 3, 2, 2, 2, 1, 3, 1, 2, + 2, 1, 3, 1, 1, 3, 1, 2, 2, 2, + 3, 8, 1, 1, 5, 0, 1, 3, 1, 3, + 2, 1, 3, 2, 3, 4, 2, 9, 2, 3, + 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 0, 1, 1, 6, 6, 1, 1, 0, 0, + 1, 0, 4, 0, 1, 1, 2, 8, 1, 0, + 3, 0, 0, 1, 1, 2, 1, 1, 1, 2, + 6, 1, 1, 3, 0, 1, 1, 0, 1, 1, + 2, 3, 4, 2, 2, 3, 0, 1, 1, 2, + 1, 1, 1, 4, 3, 3, 3, 3, 1, 1, + 6, 3, 1, 3, 1, 3, 2, 1, 0, 2, + 3, 1, 0, 1, 1, 2, 3, 4, 0, 1, + 2, 0, 1, 1, 5, 3, 2, 0, 1, 3, + 1, 1, 6, 3, 2, 6, 2, 1, 2, 2, + 2, 0, 1, 1, 2, 0, 2, 0, 1, 1, + 1, 1, 0, 1, 1, 2, 2, 2, 4, 1, + 1, 2, 2, 2, 0, 1, 1, 1, 1, 2, + 3, 7, 6, 1, 1, 2, 2, 0, 3, 3, + 1, 2, 2, 2, 8, 8, 3, 0, 2, 0, + 1, 3, 2, 1, 0, 1, 2, 5, 1, 1, + 3, 4, 1, 2, 2, 2, 3, 1, 1, 1, + 2, 3, 1, 2, 1, 2, 2, 6, 7, 8, + 6, 4, 2, 1, 3, 0, 2, 4, 0, 1, + 1, 1, 1, 3, 3, 3, 3, 1, 1, 3, + 3, 6, 3, 0, 1, 2, 4, 1, 3, 2, + 2, 2, 1, 4, 1, 3, 0, 1, 1, 1, + 3, 3, 3, 7, 1, 1, 3, 4, 8, 2, + 1, 3, 1, 1, 6, 3, 0, 0, 0, 0, + 3, 0, 9, 1, 1, 0, 2, 2, 2, 2, + 2, 2, 2, 0, 4, 2, 3, 3, 2, 2, + 3, 3, 2, 1, 2, 4, 3, 2, 2, 2, + 2, 3, 1, 3, 3, 3, 2, 2, 4, 4, + 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 1, 1, 1, 0, 2, 2, 0, + 1, 2, 2, 2, 2, 2, 1, 3, 7, 1, + 0, 1, 0, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 3, 2, 2, 1, 1, 1, 1, 4, + 5, 1, 3, 1, 3, 1, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 4, 4, 6, + 5, 3, 0, 2, 2, 0, 3, 0, 4, 1, + 5, 4, 1, 4, 1, 2, 2, 1, 1, 1, + 2, 2, 2, 2, 1, 0, 3, 5, 1, 1, + 2, 3, 1, 2, 3, 0, 1, 1, 1, 5, + 5, 6, 3, 2, 1, 0, 2, 0, 1, 0, + 3, 1, 0, 1, 2, 1, 1, 1, 1, 2, + 2, 1, 2, 3, 1, 1, 3, 3, 1, 2, + 3, 1, 2, 0, 2, 1, 1, 0, 1, 1, + 1, 3, 2, 3, 0, 1, 3, 4, 3, 1, + 3, 4, 3, 0, 1, 3, 3, 3, 1, 1, + 0, 3, 0, 2, 0, 9, 1, 1, 1, 1, + 1, 3, 1, 2, 3, 2, 1, 3, 1, 1, + 6, 3, 3, 2, 3, 0, 1, 3, 1, 1, + 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, + 0, 3, 0, 1, 3, 1, 1, 3, 2, 0, + 2, 0, 2, 0, 3, 5, 0, 2, 0, 4, + 1, 2, 1, 1, 0, 1, 3, 2, 1, 1, + 2, 1, 4, 2, 1, 3, 8, 5, 1, 3, + 1, 1, 4, 4, 4, 1, 1, 5, 5, 1, + 3, 3, 1, 1, 7, 7, 5, 3, 0, 1, + 1, 1, 2, 0, 1, 1, 1, 0, 3, 1, + 3, 1, 3, 3, 1, 1, 3, 3, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 1, 1, 5, 6, 3, 4, + 5, 6, 3, 4, 3, 4, 3, 4, 4, 5, + 4, 4, 3, 4, 3, 3, 8, 8, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 3, 3, 3, + 3, 3, 3, 3, 3, 1, 1, 3, 1, 1, + 1, 1, 1, 4, 1, 3, 1, 2, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, + 1, 3, 3, 3, 1, 1, 1, 2, 1, 2, + 1, 1, 1, 1, 1, 2, 1, 4, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 6, 4, + 6, 6, 4, 3, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, +}; +static short yydefred[] = { 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 497, 498, 499, 0, 550, 641, 642, + 646, 647, 410, 0, 0, 0, 0, 0, 0, 356, + 505, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 101, 0, 0, 89, 0, 791, 0, 18, 789, 0, + 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 424, 0, 0, 34, 31, 33, + 0, 32, 0, 841, 0, 0, 0, 0, 29, 62, + 64, 0, 0, 0, 0, 0, 0, 0, 0, 504, + 823, 567, 0, 568, 0, 0, 0, 843, 591, 0, + 0, 2, 0, 0, 0, 0, 399, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 0, 382, 834, 0, 838, 0, 363, + 840, 0, 360, 0, 593, 844, 0, 359, 0, 503, + 787, 0, 137, 97, 0, 0, 98, 0, 672, 203, + 0, 675, 0, 837, 96, 132, 0, 92, 0, 99, + 793, 0, 93, 0, 94, 847, 0, 95, 133, 100, + 559, 560, 0, 792, 790, 0, 835, 70, 0, 0, + 833, 432, 425, 0, 431, 426, 427, 434, 428, 429, + 430, 435, 0, 27, 0, 36, 667, 35, 0, 0, + 0, 0, 0, 830, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 757, 0, 825, + 0, 759, 0, 0, 0, 756, 771, 770, 769, 0, + 0, 0, 0, 761, 762, 763, 772, 773, 0, 0, + 570, 0, 0, 785, 0, 775, 0, 0, 654, 760, + 744, 743, 0, 0, 571, 0, 0, 745, 740, 741, + 742, 774, 0, 0, 0, 0, 0, 0, 0, 522, + 511, 0, 514, 516, 517, 518, 519, 525, 526, 0, + 842, 592, 0, 0, 551, 0, 549, 0, 0, 0, + 0, 411, 0, 0, 337, 0, 206, 0, 364, 357, + 408, 409, 0, 0, 0, 0, 0, 0, 373, 0, + 344, 345, 0, 509, 507, 788, 0, 0, 0, 0, + 0, 0, 0, 140, 119, 0, 0, 90, 0, 108, + 107, 0, 0, 0, 0, 0, 0, 826, 71, 0, + 0, 0, 643, 644, 433, 0, 0, 319, 320, 314, + 0, 318, 767, 0, 670, 0, 0, 24, 0, 0, + 845, 0, 67, 65, 63, 30, 0, 0, 0, 49, + 0, 0, 0, 0, 0, 0, 0, 0, 776, 0, + 0, 0, 0, 0, 0, 777, 778, 0, 0, 0, + 0, 0, 846, 283, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 839, 574, 0, 0, + 548, 0, 523, 0, 520, 0, 521, 546, 0, 541, + 0, 0, 515, 0, 650, 0, 485, 0, 0, 0, + 555, 552, 0, 172, 0, 0, 116, 416, 159, 160, + 0, 414, 0, 0, 0, 0, 417, 0, 412, 339, + 0, 368, 370, 369, 0, 371, 0, 365, 204, 0, + 0, 251, 0, 0, 0, 0, 377, 378, 0, 401, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 420, + 0, 136, 0, 0, 145, 0, 144, 0, 151, 134, + 0, 149, 152, 153, 141, 0, 0, 453, 489, 456, + 0, 490, 0, 0, 457, 0, 0, 0, 480, 493, + 452, 475, 454, 455, 438, 339, 436, 437, 439, 0, + 0, 448, 449, 450, 451, 0, 0, 0, 0, 674, + 673, 0, 111, 0, 0, 187, 0, 0, 337, 0, + 206, 0, 0, 79, 0, 0, 662, 0, 0, 0, + 0, 0, 0, 0, 0, 676, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 768, 0, 0, 0, + 669, 25, 0, 0, 41, 68, 0, 0, 23, 0, + 0, 638, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 815, 816, 817, 818, 819, 820, 821, 822, 0, + 0, 754, 755, 814, 0, 0, 829, 750, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 579, 580, + 0, 0, 572, 575, 758, 797, 501, 0, 795, 500, + 0, 524, 0, 532, 528, 527, 0, 0, 0, 543, + 531, 0, 0, 648, 649, 0, 0, 0, 0, 0, + 562, 0, 0, 117, 0, 0, 0, 0, 0, 0, + 367, 0, 0, 340, 372, 446, 0, 253, 0, 247, + 249, 337, 831, 224, 0, 0, 339, 0, 0, 195, + 337, 0, 0, 0, 0, 229, 223, 226, 227, 228, + 376, 406, 405, 375, 374, 0, 0, 0, 352, 348, + 350, 351, 347, 349, 0, 339, 0, 142, 146, 0, + 150, 0, 0, 476, 477, 494, 0, 491, 0, 0, + 483, 481, 482, 0, 0, 0, 0, 447, 0, 0, + 0, 0, 484, 337, 0, 186, 0, 189, 191, 192, + 0, 0, 0, 0, 0, 206, 74, 0, 81, 73, + 827, 464, 465, 0, 0, 0, 679, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 316, 322, 323, + 321, 671, 0, 0, 0, 0, 0, 0, 0, 50, + 57, 59, 0, 0, 66, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 206, 0, 798, 0, + 0, 810, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 813, 764, 0, 0, 0, 0, 0, 0, 594, + 0, 0, 0, 0, 0, 502, 796, 533, 542, 537, + 536, 0, 547, 652, 651, 201, 557, 558, 556, 0, + 168, 162, 169, 0, 165, 0, 0, 164, 0, 175, + 156, 155, 794, 158, 157, 418, 0, 210, 207, 209, + 211, 212, 366, 252, 0, 197, 339, 199, 340, 194, + 200, 0, 0, 230, 0, 379, 380, 339, 337, 340, + 353, 0, 183, 184, 143, 0, 0, 0, 0, 0, + 0, 492, 0, 0, 339, 340, 0, 442, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, + 0, 0, 0, 0, 326, 0, 78, 0, 0, 0, + 0, 82, 80, 0, 0, 832, 645, 0, 0, 690, + 0, 0, 0, 716, 715, 0, 0, 0, 723, 733, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 678, 0, 61, 54, 55, 60, 56, 0, 0, 19, + 0, 0, 0, 39, 0, 0, 0, 656, 639, 0, + 655, 0, 0, 0, 0, 804, 803, 0, 0, 800, + 799, 0, 808, 807, 806, 805, 802, 801, 0, 0, + 0, 582, 0, 589, 0, 587, 583, 0, 600, 596, + 598, 0, 0, 0, 0, 539, 540, 544, 0, 0, + 0, 0, 0, 0, 176, 0, 0, 0, 0, 256, + 0, 0, 0, 231, 0, 402, 403, 381, 339, 422, + 340, 828, 154, 0, 0, 459, 0, 458, 495, 0, + 487, 0, 0, 0, 440, 0, 467, 0, 0, 469, + 472, 474, 0, 0, 106, 0, 190, 339, 0, 0, + 338, 0, 91, 0, 104, 0, 87, 0, 0, 0, + 0, 0, 731, 732, 0, 0, 0, 0, 786, 779, + 780, 0, 0, 781, 734, 0, 0, 0, 0, 0, + 0, 0, 724, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 53, 58, + 51, 52, 20, 660, 661, 0, 658, 665, 666, 663, + 0, 637, 0, 0, 205, 809, 811, 812, 0, 0, + 585, 0, 0, 0, 604, 607, 0, 0, 0, 0, + 170, 166, 0, 0, 181, 177, 340, 0, 0, 340, + 257, 0, 0, 0, 215, 0, 0, 0, 0, 419, + 461, 0, 462, 0, 121, 0, 0, 0, 125, 127, + 128, 129, 443, 445, 441, 471, 340, 0, 0, 0, + 0, 324, 0, 327, 339, 83, 0, 0, 85, 0, + 0, 0, 0, 0, 0, 736, 0, 735, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 37, 0, 640, 0, + 588, 0, 0, 0, 0, 613, 0, 566, 0, 161, + 178, 131, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 260, 263, 259, 0, + 0, 268, 269, 270, 273, 275, 246, 0, 193, 216, + 0, 0, 0, 221, 217, 220, 0, 340, 0, 460, + 488, 130, 118, 126, 245, 113, 340, 0, 0, 341, + 328, 0, 0, 86, 75, 0, 702, 710, 0, 782, + 783, 784, 703, 711, 706, 714, 0, 0, 704, 712, + 705, 713, 699, 707, 700, 708, 701, 709, 657, 0, + 0, 608, 605, 0, 621, 623, 0, 618, 0, 171, + 0, 0, 0, 277, 0, 0, 0, 276, 0, 266, + 271, 0, 274, 261, 0, 264, 0, 305, 265, 196, + 218, 222, 0, 0, 233, 355, 343, 0, 0, 0, + 333, 334, 0, 0, 72, 88, 0, 738, 615, 0, + 622, 0, 258, 267, 0, 0, 0, 272, 0, 299, + 0, 298, 313, 0, 0, 0, 0, 308, 262, 306, + 0, 0, 232, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 629, 0, 0, 0, 0, 292, + 291, 293, 0, 290, 0, 0, 0, 0, 282, 0, + 312, 836, 311, 310, 0, 0, 219, 0, 0, 0, + 237, 0, 236, 336, 0, 0, 0, 105, 0, 616, + 631, 620, 0, 0, 632, 0, 628, 0, 0, 0, + 0, 0, 0, 0, 0, 300, 301, 307, 309, 0, + 0, 241, 240, 239, 0, 329, 0, 627, 0, 634, + 285, 0, 0, 278, 296, 295, 297, 294, 0, 0, + 0, 302, 244, 242, 243, 0, 737, 0, 0, 0, + 303, 279, 0, 0, 0, 633, 288, 280, 636, +}; +static short yydgoto[] = { 17, + 18, 19, 20, 21, 22, 23, 1303, 25, 26, 1304, + 28, 29, 30, 1305, 32, 1306, 567, 95, 377, 818, + 1020, 96, 594, 819, 97, 382, 599, 119, 98, 99, + 216, 646, 109, 820, 821, 157, 187, 822, 100, 101, + 384, 72, 198, 359, 265, 562, 960, 266, 779, 535, + 447, 758, 563, 564, 565, 962, 199, 1174, 64, 147, + 65, 193, 1538, 1123, 178, 183, 185, 188, 175, 164, + 167, 180, 190, 374, 217, 706, 471, 574, 903, 352, + 554, 948, 1115, 503, 659, 925, 456, 457, 486, 346, + 536, 936, 1227, 677, 899, 1228, 1229, 1230, 1231, 1232, + 575, 176, 165, 342, 510, 343, 344, 511, 512, 513, + 514, 1093, 894, 459, 460, 884, 882, 461, 888, 883, + 1069, 1201, 889, 890, 1074, 354, 767, 768, 769, 770, + 708, 694, 1213, 537, 710, 169, 475, 638, 268, 480, + 1039, 368, 269, 270, 1214, 1215, 489, 1325, 1443, 716, + 717, 704, 718, 719, 720, 1444, 1445, 1513, 324, 484, + 1078, 1307, 153, 481, 482, 1079, 1080, 1308, 1309, 1310, + 1397, 1311, 1312, 1313, 1314, 1315, 1316, 1463, 1500, 1431, + 1503, 271, 414, 1465, 967, 1398, 1437, 1438, 1473, 370, + 371, 272, 953, 1121, 1242, 954, 955, 113, 273, 1339, + 363, 865, 1065, 1288, 1409, 1410, 1411, 1412, 863, 333, + 500, 736, 1090, 181, 50, 328, 158, 126, 311, 144, + 318, 150, 319, 329, 724, 330, 497, 920, 145, 312, + 468, 501, 1091, 85, 155, 202, 538, 539, 696, 937, + 697, 938, 939, 542, 543, 544, 545, 930, 783, 546, + 547, 548, 751, 549, 449, 748, 34, 35, 36, 52, + 160, 335, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 665, 439, 872, 1068, 440, 441, 670, 37, 125, + 307, 38, 450, 451, 681, 424, 1199, 114, 274, 275, + 276, 428, 647, 648, 649, 650, 857, 277, 1055, 1056, + 1194, 1195, 278, 1286, 1455, 1379, 1456, 1457, 1458, 1497, + 1539, 1030, 39, 40, 364, 41, 42, 446, 827, 1028, + 1176, 1180, 172, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 1142, 977, 979, 1143, 412, 279, + 280, 281, 636, 282, 1144, 195, 630, +}; +static short yysindex[] = { 5716, + 1361, -212, 2352, 28, 918, -91, 3437, 15, 554, 449, + 157, 2081, -212, 524, -97, -19, 0, 403, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -153, 0, 0, 0, + 0, 0, 0, 4173, 197, 227, 258, -19, 341, 0, + 0, 409, 1050, 510, 197, 529, 258, 547, -19, 341, + 0, 580, 596, 0, -39, 0, 634, 0, 0, 801, + 668, 0, -19, 739, 197, 884, 668, 227, 258, 547, + -19, 341, 580, 596, 0, 258, 812, 0, 0, 0, + 1215, 0, 1215, 0, 858, 924, 42, 1258, 0, 0, + 0, 860, -19, 860, 951, 962, 966, 52, 774, 0, + 0, 0, 5299, 0, 529, 1041, 905, 0, 0, 968, + 930, 0, 1123, -104, 1098, -66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 508, 0, 0, 1050, 0, -38, 0, + 0, 1386, 0, 1108, 0, 0, 453, 0, 1011, 0, + 0, 980, 0, 0, 436, 0, 0, 1184, 0, 0, + 1409, 0, 1050, 0, 0, 0, 1386, 0, -74, 0, + 0, 1171, 0, 1154, 0, 0, 1215, 0, 0, 0, + 0, 0, 1158, 0, 0, 1044, 0, 0, 1191, 1080, + 0, 0, 0, 1044, 0, 0, 0, 0, 0, 0, + 0, 0, 1797, 0, 510, 0, 0, 0, 266, 1135, + -210, 596, 1049, 0, 1198, 1215, 1223, 1226, 266, 1139, + -210, 1162, 1163, 1512, 1513, 1516, 1105, 0, 1528, 0, + 1532, 0, 1542, 1543, 1546, 0, 0, 0, 0, 0, + 1547, 1112, 1133, 0, 0, 0, 0, 0, 5866, 5866, + 0, 5396, 1146, 0, 1560, 0, 1725, 1520, 0, 0, + 0, 0, 1291, 1571, 0, -129, 1575, 0, 0, 0, + 0, 0, 1185, 227, 1262, 1174, 492, -19, 1194, 0, + 0, 905, 0, 0, 0, 0, 0, 0, 0, 510, + 0, 0, 699, 1213, 0, 1189, 0, 776, 1275, 701, + -66, 0, 1346, 394, 0, 860, 0, 508, 0, 0, + 0, 0, 860, 1230, -106, 1179, -46, 1600, 0, 4543, + 0, 0, 407, 0, 0, 0, 1590, 1590, 1050, 1280, + 1050, 1692, 436, 0, 0, 4883, 56, 0, 1230, 0, + 0, 1368, 455, 1621, -19, 1398, 227, 0, 0, 1623, + 159, 4248, 0, 0, 0, 1160, 2500, 0, 0, 0, + 1622, 0, 0, 845, 0, -19, 1231, 0, 258, 1208, + 0, 58, 0, 0, 0, 0, -19, -195, -19, 0, + 1350, 258, 1628, 266, 1270, 948, 5478, 601, 0, 529, + 5866, 1036, 1064, 1104, 3046, 0, 0, 628, 628, 524, + 960, 1639, 0, 0, 5576, 1227, 5866, 5866, 5866, 5866, + 5866, 5866, 25, 1241, 5478, 1237, 0, 0, 43, 14, + 0, -173, 0, -131, 0, -131, 0, 0, 1657, 0, + 80, 1276, 0, 1650, 0, 116, 0, 1434, 1434, 1674, + 0, 0, 1337, 0, 60, 1372, 0, 0, 0, 0, + 1050, 0, 1590, 1590, 1590, 1590, 0, 1678, 0, 0, + 1450, 0, 0, 0, 1428, 0, 4883, 0, 0, 4883, + 855, 0, 1386, 1467, 1272, 5118, 0, 0, 393, 0, + 1272, 816, 1108, 0, 1345, 1298, 1273, 405, 426, 0, + 1347, 0, 1290, 547, 0, 1050, 0, 1474, 0, 0, + 1692, 0, 0, 0, 0, 156, 1305, 0, 0, 0, + 1307, 0, 1352, 1716, 0, 1412, 1719, -61, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1670, + 35, 0, 0, 0, 0, 21, 1723, 1733, 1719, 0, + 0, 1501, 0, 1050, 1050, 0, -106, 453, 0, 1391, + 0, 1362, 1732, 0, 6082, 99, 0, 1388, 1397, 1741, + 4399, 1745, 4345, 6235, 400, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1082, 2500, 510, + 0, 0, 611, 1349, 0, 0, 1329, -210, 0, 1480, + 1759, 0, 1480, 611, 1485, 1492, 258, 5866, 5866, 1537, + 5866, 1761, 5866, 1771, 1534, 5866, 5866, 5866, 5866, 5866, + 5866, 0, 0, 0, 0, 0, 0, 0, 0, 1495, + 5866, 0, 0, 0, 1725, 1203, 0, 0, 1541, 628, + 628, 578, 578, 704, 25, 1783, 1780, 853, 0, 0, + 4399, 1496, 0, 0, 0, 0, 0, -221, 0, 0, + -110, 0, 1379, 0, 0, 0, -19, 656, -19, 0, + 0, 5478, 510, 0, 0, 1227, -39, -39, 699, 510, + 0, 1050, 1050, 0, 307, 1290, 1290, 1374, 547, 701, + 0, 1789, 2023, 0, 0, 0, 1554, 0, 860, 0, + 0, 0, 0, 0, 1558, 1796, 0, 1428, 1555, 0, + 0, 1498, 1503, 1215, 1568, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 547, 860, 6243, 0, 0, + 0, 0, 0, 0, 547, 0, 1020, 0, 0, 1430, + 0, 72, 1435, 0, 0, 0, 547, 0, 1716, 48, + 0, 0, 0, 1552, 48, 1436, 48, 0, 1818, 547, + 547, 547, 0, 0, 1502, 0, 1304, 0, 0, 0, + 407, 1446, -19, 1354, 41, 0, 0, 1825, 0, 0, + 0, 0, 0, 159, 1407, 1213, 0, 1213, 6123, 354, + 5866, 5866, 4485, 1827, 647, 4628, 5866, 4713, 944, 4865, + 4948, 5631, 5016, 5100, 5253, 4399, 4399, 0, 0, 0, + 0, 0, 1208, 258, 341, 1208, 580, 93, 1826, 0, + 0, 0, 611, 1486, 0, -134, 1505, 5478, 1505, 1837, + 1826, 611, -151, 1550, 1644, 2141, 0, 2186, 0, 2322, + 5866, 0, 2330, 2413, 2577, 2597, 2898, 3343, 5866, 829, + 5866, 0, 0, 853, 1842, 5478, 930, 25, 1497, 0, + 1499, 1500, 1548, 1624, 1567, 0, 0, 0, 0, 0, + 0, 440, 0, 0, 0, 0, 0, 0, 0, 1857, + 0, 0, 0, 1399, 0, 1590, 1636, 0, 307, 0, + 0, 0, 0, 0, 0, 0, 4399, 0, 0, 0, + 0, 0, 0, 0, 1603, 0, 0, 0, 0, 0, + 0, 1215, 1215, 0, 1865, 0, 0, 0, 0, 0, + 0, 1642, 0, 0, 0, 1449, 28, 1420, 1493, 1554, + 1874, 0, 1290, 1422, 0, 0, 767, 0, 1859, 1449, + 798, 547, 1877, 1878, 1879, 1603, 1590, 1372, -106, 0, + 1347, 524, 1466, 1482, 0, 17, 0, 547, 1531, 1625, + 6082, 0, 0, 547, 1626, 0, 0, 1891, 1893, 0, + 1461, 1725, 1898, 0, 0, 1725, 1900, 1862, 0, 0, + 1588, 1902, 1725, 1904, 899, 1906, 1725, 1907, 5866, 5866, + 1827, 5866, 5831, 1908, 1725, 1910, 1916, 1725, 1917, 5866, + 1725, 1918, 1725, 1919, 1921, 1725, 1922, 1924, 1725, 1925, + 0, 1705, 0, 0, 0, 0, 0, 1640, 611, 0, + 611, 93, 1826, 0, 161, 161, 112, 0, 0, 1431, + 0, 1837, 1826, 1926, -151, 0, 0, 4883, 1928, 0, + 0, 3462, 0, 0, 0, 0, 0, 0, 3492, 1241, + 1725, 0, 1725, 0, 1438, 0, 0, 853, 0, 0, + 0, 25, 1511, 4399, 1504, 0, 0, 0, 1551, 1050, + 1592, 1290, 1587, 1290, 0, 362, 1544, 1717, 1603, 0, + 5866, 1701, 1594, 0, 4399, 0, 0, 0, 0, 0, + 0, 0, 0, 1954, 28, 0, 1374, 0, 0, 48, + 0, 2023, 1617, 48, 0, 48, 0, 1554, 1959, 0, + 0, 0, 1717, 1290, 0, 1372, 0, 0, 5299, 1726, + 0, -57, 0, 1857, 0, 1963, 0, 1967, 1050, -119, + 1974, 1050, 0, 0, 5866, 1601, 1601, 524, 0, 0, + 0, 1980, 1470, 0, 0, 1601, 1601, 5866, 1601, 1601, + 1517, 1725, 0, 1106, 5866, 1725, 1601, 1601, 1601, 1601, + 1725, 1601, 1601, 1601, 1601, 1601, 1601, 1637, 0, 0, + 0, 0, 0, 0, 0, 1593, 0, 0, 0, 0, + 5478, 0, -151, 1926, 0, 0, 0, 0, 1496, 5478, + 0, 1005, 1744, 1983, 0, 0, 400, 1989, 1634, 1590, + 0, 0, 1050, 1020, 0, 0, 0, 510, 4062, 0, + 0, 1725, 1434, 1701, 0, 954, -19, 551, 1603, 0, + 0, 1995, 0, 1997, 0, 1686, 1434, 1617, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1020, 1642, 1722, + 1654, 0, 1446, 0, 0, 0, 1676, 1691, 0, 1554, + 1679, 1725, 2014, 2017, 5866, 0, 2978, 0, 2018, 2020, + 1725, 2022, 2024, 5866, 5866, 1725, 2030, 2031, 2034, 2037, + 2040, 2044, 2045, 2047, 2050, 2061, 0, 161, 0, 1567, + 0, 4399, 1227, 1511, 1290, 0, 452, 0, 1290, 0, + 0, 0, 4883, 197, 1661, 2051, 1213, 2073, 1773, 5866, + 2056, 2076, 2060, 2062, 1782, 2071, 0, 0, 0, 6359, + 2072, 0, 0, 0, 0, 0, 0, 2092, 0, 0, + 1781, 1792, -19, 0, 0, 0, 1215, 0, 1717, 0, + 0, 0, 0, 0, 0, 0, 0, 29, 1241, 0, + 0, 5866, 1050, 0, 0, 1050, 0, 0, 829, 0, + 0, 0, 0, 0, 0, 0, 1725, 1725, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1634, + 400, 0, 0, 391, 0, 0, 1769, 0, 2099, 0, + 2082, 2084, 258, 0, 1799, 4399, 1695, 0, 4399, 0, + 0, 96, 0, 0, -111, 0, -32, 0, 0, 0, + 0, 0, 1215, 1760, 0, 0, 0, 29, 2104, 853, + 0, 0, 1496, 1725, 0, 0, 1241, 0, 0, 1290, + 0, 506, 0, 0, 941, 96, 582, 0, 604, 0, + 766, 0, 0, 197, 1688, 28, 75, 0, 0, 0, + 1760, -117, 0, 1767, 1768, 853, 2114, 29, 1815, 1567, + 2124, 1496, 2127, -19, 0, 2129, 2128, 790, 2168, 0, + 0, 0, 1762, 0, 2130, 85, 1739, 1875, 0, 96, + 0, 0, 0, 0, 4062, -111, 0, -183, -183, 1883, + 0, 1747, 0, 0, 853, 29, 1634, 0, 1567, 0, + 0, 0, 506, 2147, 0, 227, 0, 1478, 37, 2132, + 2168, 1899, 1887, 4062, 4062, 0, 0, 0, 0, 1730, + 731, 0, 0, 0, 1318, 0, 1634, 0, 227, 0, + 0, 96, 2153, 0, 0, 0, 0, 0, 1407, 4062, + 1892, 0, 0, 0, 0, 4399, 0, 2155, 2163, 1483, + 0, 0, 4062, 400, 227, 0, 0, 0, 0, +}; +static short yyrindex[] = { 0, + 0, 109, 413, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 640, 5335, 0, 0, 0, 2206, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 367, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 831, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1870, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1833, 0, 0, 0, + 59, 0, 59, 0, 0, 0, 0, 1834, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 915, 0, 0, 0, + 1102, 0, 0, 0, 82, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -43, 0, 0, 0, 0, 320, 0, 936, 0, + 0, 0, 0, 0, 985, 3723, 0, 6305, 0, 0, + 0, 0, 0, 0, 0, 0, -43, 0, 460, 0, + 0, 2170, 0, 0, 0, 0, 1947, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 937, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 939, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -175, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 63, 1316, 0, 0, + 0, 0, 0, 1903, 0, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 208, 0, + 0, 953, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1021, 0, 1943, 0, 0, 0, 0, 1042, 0, 0, + 0, 0, 0, 1961, 16, 4789, 0, 1058, 0, 0, + 0, 0, 180, 0, 0, 0, 1775, 1775, 0, 0, + 0, 1103, 1526, 0, 0, 0, 0, 0, 1961, 0, + 0, 1074, 0, 0, 0, 0, 0, 0, 0, 5827, + 1840, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1145, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1156, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1172, 0, 0, 6009, 0, 6009, 0, 0, + 0, 6009, 6009, 6009, 0, 0, 0, 1973, 2207, 6009, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 750, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 768, 0, 768, 0, 0, 287, 0, + 639, 661, 0, 0, 0, 937, 0, 994, 994, 778, + 0, 0, 309, 0, 3093, 163, 0, 0, 0, 0, + 0, 0, 1775, 1775, 1775, 1775, 0, 295, 0, 0, + 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, + 0, 0, 1975, 0, 0, 0, 0, 0, 1943, 0, + 0, 934, 0, 345, 1770, 0, 0, 0, 0, 0, + 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1173, 0, 0, 0, 0, 4085, 1675, 0, 0, 0, + 3771, 0, 0, 3875, 0, 0, 3940, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1222, + 2991, 0, 0, 0, 0, 4046, 3858, 0, 3940, 0, + 0, 0, 0, 0, 0, 0, 16, 863, 0, 0, + 0, 0, 1828, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 365, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 207, + 0, 0, 207, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 996, 0, 0, 0, 1665, 2345, + 2432, 1748, 1835, 0, 0, 865, 522, 215, 0, 0, + 0, 186, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 571, 0, 0, + 0, 0, 0, 0, 0, 0, 646, 646, 0, 0, + 0, 0, 0, 0, 4002, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 118, 0, 0, 0, + 0, 0, 0, 0, 2198, 0, 0, 284, 2122, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1998, 0, 0, 0, + 0, 0, 4152, 0, 0, 0, 0, 0, 3875, 0, + 0, 0, 0, 173, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6259, 0, 0, 0, 0, 0, + 0, 0, 0, 1932, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1202, 1221, 0, + 0, 0, 0, 0, 0, 0, 1228, 0, 1228, 1251, + 1285, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1909, 691, 0, 3506, 0, 1914, 0, + 1920, 1927, 0, 0, 92, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, + 0, 0, 0, 0, 0, 1775, 1784, 0, 4092, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1976, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1293, 0, 0, 0, 0, 0, 0, 0, 2161, + 0, 0, 0, 0, 0, 0, 0, 0, 940, 0, + 0, 0, 0, 0, 0, 1976, 1775, 1325, 16, 0, + 1982, 5335, 1370, 83, 0, 0, 0, 0, 6259, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 53, 0, 0, 0, 632, 0, 0, 0, 0, + 0, 0, 1525, 0, 2515, 0, 2592, 0, 0, 0, + 0, 0, 0, 0, 2656, 0, 0, 2676, 0, 0, + 2740, 0, 2763, 0, 0, 2827, 0, 0, 2850, 0, + 0, 3472, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1202, 1373, 0, 1807, 237, 0, 0, 0, 0, + 0, 1382, 1385, 1390, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 275, + 1066, 0, 1491, 0, 0, 0, 0, 730, 0, 0, + 0, 0, 0, 0, 398, 0, 0, 0, 3759, 0, + 0, 0, 1795, 0, 0, 0, 0, 0, 1990, 0, + 0, 2905, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 130, 0, 0, 0, 0, 2381, 0, 0, + 0, 0, 0, 0, 0, 1394, 0, 0, 0, 0, + 0, 0, 0, 1406, 0, 0, 0, 0, 0, 97, + 0, 0, 0, 0, 0, 0, 0, 6009, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2913, 0, 2990, 0, 3074, 0, 0, 0, 0, + 3158, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1410, 0, 0, 0, 0, 69, 0, + 0, 1909, 711, 1295, 0, 0, 404, 857, 862, 1775, + 0, 0, 0, 1481, 0, 0, 0, 0, 0, 0, + 0, 2222, 1022, 3323, 0, 1943, 0, 0, 1976, 0, + 0, 0, 0, 0, 0, 0, 1411, 134, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, + 0, 3222, 0, 0, 0, 0, 0, 0, 0, 0, + 3298, 0, 0, 0, 0, 3321, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 237, 0, 49, + 0, 0, 0, 0, 0, 0, 2230, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 337, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 132, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3332, 3408, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2231, + 3548, 0, 0, 0, 0, 0, 2233, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 826, 1260, 0, 0, 0, 0, 214, 87, + 0, 0, 68, 2222, 0, 0, 275, 0, 0, 0, + 0, 2230, 0, 0, 189, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2459, 0, 0, 3075, 3299, 1909, 756, 0, 0, 84, + 0, 69, 0, 1142, 0, 0, 2234, 0, 0, 0, + 0, 0, 2215, 0, 202, 1977, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 153, 0, 55, 0, 49, 0, + 0, 0, 2230, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1909, 0, 2231, 0, 0, 0, + 0, 0, 2227, 0, 0, 0, 0, 0, 0, 0, + 6400, 0, 0, 0, 0, 0, 0, 2240, 0, 0, + 0, 0, 0, 1490, 0, 0, 0, 0, 0, +}; +static short yygindex[] = { 0, + 0, 0, 0, 0, 0, 0, 2287, 0, 0, 2289, + 0, 0, 0, 8, 0, 2291, 1, 167, -93, -533, + 1271, 257, -284, 6, 2285, 2070, 0, -31, 0, 2080, + -86, -41, 0, 476, -850, -35, -50, -169, 2086, 984, + 1706, 0, 0, 0, 1016, 0, 0, -34, 1351, -485, + -29, -802, 1749, 1535, -276, 1357, 2236, -291, 0, -51, + 0, 806, -44, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -565, -25, 1371, -447, 339, -860, 0, + 0, 0, 0, -316, -477, -976, 1378, -311, -40, 0, + -442, 0, 0, -428, 1216, 0, 1101, 0, 0, -108, + -553, -10, 0, 0, 0, 0, 1987, 0, 1820, 2027, + -235, 1392, -663, 0, 0, 0, -635, 0, 0, 0, + 0, 0, 0, 1448, 0, 0, 0, 1389, 2015, 2021, + 0, 1631, 0, -450, 1633, -48, 70, -630, -45, 0, + 0, -576, -202, -526, 0, 1137, -906, 0, 917, 1143, + 0, 1888, 0, 0, 0, 921, 938, 889, -78, 2025, + -826, -456, 0, 0, 1685, 0, 1299, -623, 0, 0, + 0, -226, 0, 0, 0, 0, 0, 0, 0,-1236, + 0, 392, 0, 926, 864, 999, 0, 922, 0, 0, + 2032, -203, 0, 0, 0, 0, -904, -375, 1278, 0, + -409,-1078, -671, -670, 0, -608, 983, 950, -289, 1843, + 1641, 1457, 1176, -1, 0, 0, 0, 0, 0, 2083, + 0, 0, 2093, 1923, 0, 0, 0, 0, 0, 2107, + 0, 0, 0, 0, -15, 0, 0, 0, -314, 1667, + -303, 1326, -391, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1880, 0, 0, 1682, 0, 0, 0, 2420, + 0, 0, 0, 0, 2143, 0, 0, 0, 0, 2004, + 0, 2001, 0, 0, 0, 1776, 0, 0, 0, 0, + 0, -84, 0, 1765, 0, -800, 0, 1195, 0, 2026, + -374, 2019, 0, -567, 1802, 0, 0, -54, 0, 1263, + 0, 1164, -942, 0, 1165, 0, 957, 0, 1003, 0, + 920, 0, 0, 0, 2028, 0, 0, 0, 1860, 1649, + -869, 0, -148, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3433, 1300, 1479, 0, 0, 0, + 0, -201, 2058, 2118, 1233, 0, 0, +}; +#define YYTABLESIZE 6861 +static short yytable[] = { 171, + 121, 149, 69, 173, 68, 152, 218, 31, 170, 372, + 369, 373, 809, 168, 652, 177, 154, 787, 163, 790, + 678, 504, 610, 203, 184, 737, 695, 182, 179, 698, + 509, 540, 211, 206, 631, 709, 674, 207, 660, 305, + 477, 715, 541, 707, 213, 876, 210, 885, 1082, 1050, + 208, 383, 725, 225, 619, 227, 215, 121, 658, 1088, + 760, 383, 653, 208, 645, 209, 302, 603, 1408, 568, + 830, 226, 67, 445, 467, 1103, 1522, 854, 928, 780, + 959, 563, 325, 610, 550, 222, 331, 468, 754, 610, + 468, 610, 933, 725, 263, 222, 725, 550, 349, 683, + 356, 598, 668, 653, 283, 573, 653, 605, 506, 603, + 1280, 725, 320, 619, 880, 927, 900, 468, 1476, 1113, + 1196, 653, 208, 669, 112, 757, 603, 1098, 1470, 123, + 331, 612, 610, 124, 426, 391, 1019, 84, 348, 388, + 563, 325, 610, 67, 684, 331, 686, 687, 688, 689, + 610, 1433, 332, 263, 1248, 304, 1177, 354, 468, 673, + 171, 468, 413, 372, 369, 373, 902, 506, 1170, 375, + 1172, 540, 122, 434, 264, 1216, 468, 813, 106, 421, + 867, 485, 541, 112, 1478, 603, 1025, 378, 123, 1466, + 612, 308, 124, 350, 1510, 742, 332, 378, 551, 509, + 67, 1434, 1243, 67, 472, 67, 659, 529, 891, 892, + 596, 332, 1435, 330, 577, 752, 354, 1244, 321, 452, + 248, 413, 14, 264, 743, 191, 603, 1291, 115, 73, + 1220, 122, 661, 380, 123, 1511, 466, 656, 421, 431, + 309, 491, 668, 51, 603, 171, 663, 286, 171, 601, + 381, 289, 1011, 1012, 444, 577, 438, 448, 577, 908, + 284, 1336, 1523, 192, 866, 659, 529, 476, 107, 668, + 171, 182, 330, 577, 479, 232, 1439, 918, 492, 170, + 551, 495, 1512, 208, 753, 1540, 535, 124, 922, 1022, + 1058, 351, 816, 225, 415, 466, 322, 874, 1032, 1034, + 606, 705, 1026, 602, 505, 1235, 507, 1216, 565, 381, + 564, 756, 560, 14, 725, 612, 1436, 664, 556, 346, + 468, 208, 834, 558, 208, 1479, 653, 208, 682, 436, + 182, 427, 1170, 116, 1450, 225, 668, 595, 1341, 655, + 117, 1196, 208, 1076, 592, 535, 1292, 1249, 1502, 1317, + 595, 1318, 310, 415, 166, 600, 468, 603, 934, 69, + 952, 691, 378, 1178, 611, 233, 554, 565, 248, 564, + 208, 725, 231, 1489, 725, 468, 1335, 668, 346, 1475, + 668, 725, 573, 653, 725, 811, 810, 373, 725, 614, + 1124, 468, 1329, 725, 970, 668, 725, 614, 668, 603, + 603, 1140, 1207, 609, 701, 611, 84, 339, 1369, 123, + 610, 339, 725, 124, 224, 331, 225, 86, 331, 1395, + 413, 354, 563, 611, 468, 554, 685, 468, 383, 104, + 601, 1419, 610, 1223, 1202, 958, 725, 711, 614, 725, + 725, 118, 668, 421, 609, 610, 875, 1345, 1420, 725, + 122, 267, 122, 1029, 896, 867, 614, 225, 468, 1081, + 612, 122, 609, 612, 603, 603, 725, 1405, 759, 413, + 1086, 739, 656, 112, 738, 780, 1407, 166, 221, 610, + 610, 332, 208, 331, 332, 151, 66, 1102, 610, 118, + 901, 373, 965, 725, 1192, 619, 601, 166, 961, 657, + 208, 1184, 171, 224, 603, 725, 656, 725, 603, 619, + 1197, 170, 597, 468, 69, 653, 224, 603, 506, 765, + 766, 576, 603, 653, 610, 900, 603, 331, 612, 468, + 893, 1218, 610, 577, 208, 171, 468, 325, 610, 331, + 725, 331, 330, 577, 812, 330, 577, 1018, 1417, 332, + 529, 122, 415, 1451, 468, 577, 166, 66, 601, 781, + 1038, 208, 576, 208, 69, 595, 782, 1290, 362, 1072, + 893, 208, 612, 603, 659, 902, 1119, 421, 346, 610, + 576, 413, 603, 346, 468, 529, 612, 566, 468, 346, + 566, 1328, 566, 332, 1204, 1185, 1206, 408, 409, 286, + 411, 415, 577, 612, 466, 332, 612, 332, 1370, 831, + 330, 577, 284, 529, 66, 806, 529, 66, 171, 66, + 182, 1210, 1467, 806, 171, 171, 603, 444, 772, 535, + 1114, 694, 529, 448, 375, 438, 1238, 873, 545, 506, + 1189, 1219, 612, 1013, 1468, 561, 1016, 881, 881, 565, + 479, 564, 1372, 1054, 330, 577, 1237, 146, 529, 895, + 530, 806, 208, 886, 535, 498, 330, 577, 330, 420, + 1239, 612, 694, 603, 421, 694, 499, 102, 917, 919, + 1350, 473, 961, 611, 208, 554, 1396, 148, 914, 561, + 694, 208, 535, 611, 474, 535, 611, 545, 506, 1418, + 376, 968, 577, 969, 561, 611, 729, 554, 1224, 331, + 606, 535, 712, 415, 1234, 102, 614, 346, 151, 530, + 668, 102, 609, 540, 916, 208, 118, 732, 1371, 578, + 943, 944, 945, 921, 541, 267, 887, 535, 614, 615, + 807, 956, 830, 730, 609, 931, 109, 851, 807, 612, + 102, 606, 611, 635, 606, 639, 640, 641, 642, 643, + 635, 611, 1255, 267, 733, 313, 1017, 534, 715, 606, + 578, 905, 1014, 578, 1141, 434, 373, 553, 1487, 1015, + 911, 399, 69, 111, 1319, 614, 807, 332, 578, 103, + 612, 609, 337, 713, 614, 1375, 853, 1342, 1333, 1446, + 609, 156, 1057, 555, 684, 611, 1279, 1374, 612, 1470, + 1104, 1380, 806, 87, 314, 830, 1516, 1517, 159, 611, + 1376, 1175, 1175, 1179, 1469, 668, 534, 112, 1023, 338, + 508, 339, 1427, 946, 714, 1429, 553, 1033, 614, 1485, + 576, 1104, 1381, 806, 609, 1066, 1537, 731, 1461, 1375, + 576, 1508, 611, 576, 340, 88, 617, 416, 609, 1105, + 111, 619, 576, 417, 586, 806, 668, 89, 734, 668, + 420, 418, 1406, 419, 1376, 421, 435, 1515, 1377, 341, + 1531, 1532, 1461, 1289, 668, 591, 1083, 1084, 590, 508, + 1108, 609, 90, 694, 171, 700, 1067, 617, 699, 901, + 373, 171, 619, 170, 611, 586, 1542, 416, 586, 576, + 375, 789, 1109, 417, 513, 617, 161, 162, 576, 1548, + 619, 109, 109, 586, 1526, 69, 315, 1094, 1127, 1413, + 1125, 436, 1377, 407, 1131, 510, 612, 807, 317, 813, + 420, 418, 1453, 419, 316, 421, 835, 836, 437, 838, + 694, 840, 512, 694, 843, 844, 845, 846, 847, 848, + 694, 91, 576, 694, 561, 120, 118, 694, 807, 850, + 166, 92, 694, 513, 576, 694, 538, 407, 317, 463, + 1459, 545, 1544, 444, 138, 366, 561, 1054, 1087, 174, + 807, 694, 407, 202, 510, 612, 93, 317, 263, 980, + 632, 420, 418, 530, 419, 66, 421, 1452, 171, 576, + 267, 512, 579, 814, 94, 694, 545, 1193, 694, 694, + 361, 202, 200, 69, 69, 981, 579, 538, 694, 606, + 464, 1534, 444, 87, 579, 881, 765, 202, 530, 765, + 186, 362, 606, 138, 545, 694, 189, 545, 578, 815, + 579, 606, 202, 1351, 816, 373, 94, 358, 578, 870, + 817, 578, 202, 545, 465, 202, 530, 212, 612, 530, + 578, 381, 694, 601, 1175, 88, 871, 333, 612, 361, + 202, 612, 466, 1535, 694, 530, 694, 89, 765, 545, + 612, 333, 194, 69, 1247, 1222, 553, 1251, 606, 333, + 362, 593, 147, 668, 579, 668, 766, 606, 416, 766, + 534, 530, 90, 668, 417, 333, 358, 578, 553, 694, + 1449, 346, 808, 196, 454, 589, 578, 1494, 197, 971, + 972, 976, 346, 455, 983, 985, 987, 612, 995, 998, + 1001, 1003, 1006, 1009, 315, 593, 612, 420, 418, 423, + 419, 606, 421, 171, 171, 40, 1449, 66, 766, 166, + 593, 147, 170, 444, 1495, 606, 267, 1293, 881, 333, + 578, 48, 148, 534, 859, 617, 534, 1496, 416, 1042, + 619, 91, 578, 586, 417, 1327, 586, 1049, 860, 1051, + 612, 92, 534, 586, 1053, 1449, 586, 617, 606, 201, + 586, 38, 619, 315, 668, 586, 204, 111, 586, 668, + 1148, 360, 861, 214, 40, 989, 93, 578, 534, 365, + 21, 446, 1462, 373, 586, 1449, 668, 664, 830, 171, + 48, 148, 990, 668, 70, 71, 237, 612, 1193, 416, + 1404, 219, 1382, 852, 617, 417, 851, 285, 586, 619, + 44, 608, 586, 617, 215, 171, 1462, 373, 202, 238, + 38, 586, 446, 138, 444, 446, 862, 668, 826, 830, + 830, 830, 830, 830, 842, 830, 69, 991, 586, 21, + 446, 722, 286, 723, 46, 138, 664, 830, 830, 830, + 830, 1403, 423, 240, 602, 111, 202, 617, 1527, 373, + 238, 223, 619, 238, 1385, 586, 992, 220, 1415, 44, + 287, 1416, 202, 288, 138, 739, 1441, 586, 238, 830, + 224, 830, 121, 111, 114, 586, 859, 1151, 1152, 289, + 1154, 1156, 1321, 138, 202, 602, 228, 171, 1161, 616, + 860, 1425, 138, 46, 950, 229, 1430, 949, 138, 230, + 88, 423, 586, 602, 1322, 290, 739, 739, 739, 739, + 739, 1323, 739, 111, 861, 325, 138, 618, 326, 342, + 171, 171, 22, 993, 739, 739, 739, 739, 284, 1460, + 1430, 45, 1471, 114, 47, 416, 300, 90, 1282, 42, + 301, 417, 121, 115, 957, 1324, 303, 776, 247, 248, + 249, 166, 161, 162, 171, 103, 1454, 620, 739, 43, + 202, 923, 924, 1460, 327, 171, 306, 1265, 862, 1212, + 171, 252, 253, 593, 1506, 323, 257, 258, 342, 444, + 593, 22, 121, 593, 69, 334, 1474, 593, 1454, 1071, + 45, 336, 1070, 47, 171, 593, 171, 345, 42, 171, + 171, 1520, 115, 1430, 347, 1525, 91, 267, 444, 444, + 1096, 593, 1101, 1095, 103, 1100, 92, 171, 43, 202, + 121, 1182, 355, 1252, 1181, 171, 1430, 1454, 1191, 630, + 182, 1190, 877, 878, 444, 593, 1261, 353, 171, 335, + 830, 93, 830, 1266, 1169, 357, 1171, 444, 593, 446, + 830, 446, 420, 418, 358, 419, 446, 421, 830, 446, + 1258, 161, 162, 1257, 830, 593, 630, 830, 1521, 267, + 593, 1501, 446, 1547, 695, 139, 1470, 361, 1053, 630, + 335, 590, 362, 335, 590, 110, 110, 379, 387, 182, + 830, 392, 593, 389, 390, 394, 395, 830, 335, 830, + 830, 396, 397, 830, 593, 398, 593, 830, 420, 418, + 830, 419, 830, 421, 830, 695, 399, 400, 695, 830, + 830, 401, 830, 406, 842, 420, 418, 739, 419, 739, + 421, 402, 403, 695, 139, 404, 405, 739, 830, 830, + 609, 830, 613, 1349, 407, 739, 617, 619, 621, 415, + 446, 739, 1357, 1358, 739, 830, 413, 830, 830, 830, + 422, 423, 830, 602, 425, 830, 830, 247, 248, 249, + 429, 430, 446, 432, 433, 830, 602, 739, 442, 446, + 14, 453, 462, 470, 739, 602, 739, 739, 1387, 859, + 739, 483, 830, 493, 739, 257, 258, 739, 490, 739, + 502, 739, 506, 860, 553, 43, 739, 739, 830, 739, + 557, 559, 561, 446, 749, 589, 44, 593, 381, 830, + 604, 598, 607, 45, 478, 739, 739, 861, 739, 633, + 1414, 830, 602, 830, 1036, 420, 418, 637, 419, 830, + 421, 602, 739, 651, 739, 739, 739, 427, 46, 739, + 667, 1536, 739, 739, 671, 749, 749, 749, 749, 749, + 672, 749, 739, 676, 478, 478, 830, 679, 478, 680, + 454, 690, 1135, 749, 749, 749, 749, 692, 693, 739, + 702, 862, 703, 478, 727, 602, 420, 418, 182, 419, + 416, 421, 726, 728, 735, 739, 417, 752, 656, 602, + 740, 746, 744, 1428, 745, 747, 739, 749, 750, 182, + 755, 749, 761, 47, 764, 478, 420, 418, 739, 419, + 739, 421, 762, 775, 773, 776, 739, 784, 1264, 785, + 786, 182, 602, 1432, 788, 823, 695, 182, 752, 752, + 752, 752, 752, 824, 752, 48, 416, 826, 828, 49, + 837, 839, 417, 739, 139, 832, 752, 752, 752, 752, + 182, 335, 833, 416, 841, 849, 1464, 1432, 335, 417, + 416, 335, 856, 858, 864, 335, 139, 868, 897, 182, + 756, 906, 893, 335, 753, 907, 367, 182, 182, 705, + 752, 366, 912, 695, 182, 915, 695, 913, 926, 335, + 1464, 929, 935, 695, 940, 139, 695, 942, 947, 264, + 695, 1507, 182, 952, 964, 695, 978, 966, 695, 1021, + 1035, 1024, 1027, 335, 139, 753, 753, 753, 753, 753, + 1019, 753, 1052, 139, 695, 1059, 335, 1060, 1061, 139, + 1432, 1062, 1528, 753, 753, 753, 753, 1063, 1064, 182, + 590, 1073, 1077, 335, 1085, 1089, 366, 139, 695, 1092, + 182, 695, 695, 1432, 1099, 1097, 1106, 1110, 1111, 1112, + 1120, 695, 1122, 416, 264, 958, 749, 753, 749, 417, + 335, 1133, 478, 1134, 1129, 1132, 749, 1136, 695, 1137, + 1145, 1146, 335, 1147, 335, 1149, 1150, 1157, 478, 1158, + 749, 478, 478, 749, 478, 1159, 1160, 1162, 1163, 478, + 1164, 1165, 478, 1166, 1167, 695, 806, 1168, 1186, 1183, + 463, 250, 747, 1200, 416, 478, 749, 695, 1205, 695, + 417, 478, 1203, 749, 478, 749, 749, 1209, 485, 749, + 1208, 1198, 508, 749, 1221, 1226, 749, 182, 749, 1236, + 749, 1217, 1245, 1241, 416, 749, 749, 1246, 749, 752, + 417, 752, 695, 747, 1250, 747, 747, 747, 1138, 752, + 1256, 464, 1277, 1283, 749, 749, 1284, 749, 1285, 1278, + 1287, 747, 747, 747, 747, 1330, 752, 1331, 1332, 1340, + 454, 749, 1338, 749, 749, 749, 1344, 1343, 749, 455, + 1346, 749, 749, 478, 1347, 465, 182, 1348, 1353, 752, + 1354, 749, 1355, 1383, 1356, 747, 752, 366, 752, 752, + 1359, 1360, 752, 466, 1361, 478, 752, 1362, 749, 752, + 1363, 752, 478, 752, 1364, 1365, 478, 1366, 752, 752, + 1367, 752, 237, 478, 749, 984, 753, 988, 753, 996, + 999, 1368, 1004, 1007, 1010, 749, 753, 752, 752, 1384, + 752, 478, 1386, 103, 1388, 1389, 478, 749, 1390, 749, + 1391, 436, 1392, 753, 752, 749, 752, 752, 752, 1393, + 1399, 752, 1400, 1401, 752, 752, 1402, 1421, 1422, 1426, + 1423, 478, 1424, 1442, 752, 478, 753, 1448, 1472, 240, + 1480, 1482, 749, 753, 1484, 753, 753, 237, 1486, 753, + 468, 752, 436, 753, 1488, 436, 753, 1490, 753, 1492, + 753, 1493, 1499, 1501, 1504, 753, 753, 752, 753, 1505, + 436, 1037, 420, 418, 1478, 419, 1519, 421, 752, 1479, + 1524, 1530, 1529, 1533, 753, 753, 1470, 753, 1545, 1543, + 752, 468, 752, 1546, 468, 1, 746, 561, 752, 188, + 668, 753, 366, 753, 753, 753, 26, 28, 753, 468, + 339, 753, 753, 569, 250, 263, 1040, 420, 418, 466, + 419, 753, 421, 135, 747, 752, 747, 198, 248, 77, + 404, 466, 179, 466, 747, 354, 255, 746, 753, 746, + 746, 746, 601, 180, 247, 248, 249, 599, 161, 162, + 254, 747, 340, 595, 753, 746, 746, 746, 746, 625, + 597, 619, 624, 289, 626, 753, 182, 252, 253, 1138, + 635, 304, 257, 258, 747, 287, 24, 753, 27, 753, + 33, 747, 1173, 747, 747, 753, 108, 747, 182, 746, + 393, 747, 386, 825, 747, 1139, 747, 385, 747, 774, + 963, 1130, 205, 747, 747, 1128, 747, 1225, 237, 247, + 248, 249, 753, 161, 162, 1116, 1126, 182, 1334, 515, + 741, 1107, 747, 747, 458, 747, 1075, 1117, 909, 487, + 87, 910, 252, 253, 748, 488, 182, 257, 258, 747, + 1320, 747, 747, 747, 182, 182, 747, 1477, 1326, 747, + 747, 182, 1041, 420, 418, 1483, 419, 1514, 421, 747, + 1043, 420, 418, 552, 419, 240, 421, 1211, 721, 182, + 468, 1481, 88, 904, 1498, 748, 747, 748, 748, 748, + 1447, 182, 1541, 182, 89, 1440, 1240, 1509, 588, 436, + 771, 436, 747, 748, 748, 748, 748, 1118, 105, 436, + 478, 951, 496, 747, 1337, 725, 182, 469, 468, 90, + 416, 468, 436, 941, 468, 747, 417, 747, 763, 1233, + 932, 751, 110, 747, 443, 662, 666, 748, 468, 468, + 468, 182, 869, 879, 654, 468, 855, 1373, 468, 1518, + 653, 1378, 1281, 1044, 420, 418, 1491, 419, 238, 421, + 747, 468, 829, 237, 1549, 416, 898, 468, 746, 1153, + 746, 417, 751, 675, 751, 751, 751, 1031, 746, 644, + 247, 248, 249, 587, 161, 162, 0, 0, 91, 1352, + 751, 751, 751, 751, 0, 746, 0, 0, 92, 238, + 436, 0, 238, 252, 253, 254, 255, 256, 257, 258, + 0, 0, 0, 0, 719, 0, 0, 238, 746, 0, + 240, 0, 436, 93, 751, 746, 0, 746, 746, 436, + 0, 746, 0, 0, 0, 746, 0, 0, 746, 468, + 746, 94, 746, 0, 366, 0, 0, 746, 746, 0, + 746, 0, 0, 0, 0, 719, 0, 0, 719, 0, + 0, 468, 264, 436, 0, 0, 746, 746, 468, 746, + 0, 0, 0, 719, 0, 0, 0, 0, 0, 468, + 0, 0, 0, 746, 0, 746, 746, 746, 0, 0, + 746, 698, 0, 746, 746, 0, 0, 468, 0, 0, + 0, 416, 468, 746, 0, 0, 748, 417, 748, 416, + 0, 0, 0, 0, 0, 417, 748, 1045, 420, 418, + 746, 419, 0, 421, 0, 247, 248, 249, 166, 161, + 162, 468, 698, 748, 0, 698, 746, 1046, 420, 418, + 0, 419, 0, 421, 0, 0, 53, 746, 252, 253, + 698, 0, 0, 257, 258, 696, 748, 54, 468, 746, + 468, 746, 0, 748, 55, 748, 748, 746, 468, 748, + 0, 0, 0, 748, 0, 697, 748, 56, 748, 0, + 748, 468, 0, 0, 0, 748, 748, 0, 748, 0, + 0, 0, 416, 751, 746, 751, 696, 0, 417, 696, + 0, 0, 0, 751, 748, 748, 0, 748, 0, 0, + 0, 0, 0, 0, 696, 0, 697, 0, 0, 697, + 751, 748, 0, 748, 748, 748, 0, 0, 748, 0, + 0, 748, 748, 0, 697, 0, 238, 0, 238, 727, + 0, 748, 0, 751, 0, 0, 238, 0, 0, 0, + 751, 0, 751, 751, 57, 0, 751, 0, 748, 468, + 751, 0, 691, 751, 0, 751, 0, 751, 0, 0, + 0, 58, 751, 751, 748, 751, 719, 0, 0, 0, + 727, 468, 0, 727, 0, 748, 59, 0, 468, 0, + 60, 751, 751, 61, 751, 237, 0, 748, 727, 748, + 0, 62, 0, 691, 0, 748, 691, 0, 751, 0, + 751, 751, 751, 0, 0, 751, 0, 0, 751, 751, + 63, 691, 468, 0, 0, 0, 692, 0, 751, 0, + 0, 0, 748, 719, 0, 0, 719, 238, 0, 0, + 0, 0, 0, 719, 0, 751, 719, 0, 0, 693, + 719, 0, 240, 698, 0, 719, 416, 0, 719, 238, + 0, 751, 417, 0, 0, 0, 238, 692, 0, 0, + 692, 0, 751, 0, 719, 0, 416, 0, 0, 0, + 0, 0, 417, 0, 751, 692, 751, 0, 0, 0, + 693, 0, 751, 693, 0, 0, 0, 0, 719, 0, + 238, 719, 719, 0, 213, 0, 0, 0, 693, 0, + 698, 719, 726, 698, 0, 0, 0, 696, 0, 751, + 698, 0, 0, 698, 0, 0, 0, 698, 719, 0, + 0, 0, 698, 0, 0, 698, 0, 697, 1047, 420, + 418, 0, 419, 0, 421, 213, 0, 0, 213, 0, + 0, 698, 0, 726, 0, 719, 726, 247, 248, 249, + 0, 161, 162, 213, 0, 0, 0, 719, 0, 719, + 0, 726, 0, 0, 696, 698, 0, 696, 698, 698, + 252, 253, 0, 0, 696, 257, 258, 696, 698, 720, + 468, 696, 0, 0, 697, 0, 696, 697, 0, 696, + 0, 727, 719, 0, 697, 698, 0, 697, 0, 0, + 0, 697, 0, 0, 0, 696, 697, 0, 0, 697, + 0, 0, 366, 0, 691, 0, 0, 0, 0, 0, + 720, 468, 698, 720, 468, 697, 0, 0, 0, 696, + 264, 0, 696, 696, 698, 0, 698, 0, 720, 468, + 0, 0, 696, 0, 0, 0, 0, 0, 727, 697, + 0, 727, 697, 697, 0, 0, 0, 0, 727, 696, + 0, 727, 697, 728, 234, 727, 0, 0, 0, 698, + 727, 691, 0, 727, 691, 0, 0, 0, 692, 697, + 0, 691, 163, 0, 691, 0, 696, 0, 691, 727, + 0, 0, 0, 691, 0, 0, 691, 0, 696, 0, + 696, 693, 0, 0, 728, 234, 697, 728, 234, 0, + 0, 0, 691, 727, 0, 0, 727, 727, 697, 0, + 697, 0, 728, 234, 0, 0, 727, 0, 0, 0, + 0, 0, 0, 696, 0, 692, 691, 0, 692, 691, + 691, 163, 0, 727, 0, 692, 0, 729, 692, 691, + 0, 0, 692, 697, 0, 0, 0, 692, 693, 0, + 692, 693, 0, 0, 726, 0, 691, 416, 693, 0, + 727, 693, 225, 417, 213, 693, 692, 0, 0, 0, + 693, 0, 727, 693, 727, 0, 0, 0, 729, 0, + 0, 729, 0, 691, 0, 0, 0, 0, 0, 693, + 692, 0, 0, 692, 692, 691, 729, 691, 0, 0, + 0, 717, 0, 692, 0, 0, 0, 727, 0, 0, + 0, 726, 0, 693, 726, 0, 693, 693, 0, 0, + 692, 726, 0, 0, 726, 0, 693, 0, 726, 0, + 691, 720, 0, 726, 0, 0, 726, 0, 0, 0, + 0, 0, 717, 693, 0, 717, 0, 692, 468, 0, + 468, 0, 726, 237, 0, 468, 0, 0, 468, 692, + 717, 692, 0, 225, 0, 0, 0, 0, 0, 0, + 693, 468, 0, 0, 0, 0, 726, 721, 235, 726, + 726, 0, 693, 0, 693, 225, 0, 0, 720, 726, + 0, 720, 225, 0, 692, 0, 0, 0, 720, 0, + 730, 720, 214, 0, 0, 720, 726, 0, 0, 0, + 720, 718, 0, 720, 0, 728, 0, 693, 721, 235, + 0, 721, 235, 0, 0, 0, 225, 0, 0, 720, + 163, 0, 234, 726, 234, 0, 721, 235, 0, 0, + 0, 730, 234, 214, 730, 726, 214, 726, 0, 468, + 0, 163, 718, 720, 0, 718, 720, 720, 0, 730, + 0, 214, 0, 1048, 420, 418, 720, 419, 0, 421, + 718, 468, 728, 163, 0, 728, 0, 0, 468, 163, + 726, 0, 728, 720, 0, 728, 0, 722, 0, 728, + 0, 0, 0, 0, 728, 0, 0, 728, 0, 729, + 0, 1139, 163, 0, 0, 0, 0, 0, 0, 0, + 720, 0, 468, 728, 0, 247, 248, 249, 0, 161, + 162, 163, 720, 0, 720, 0, 0, 0, 722, 0, + 163, 722, 0, 234, 0, 0, 163, 728, 252, 253, + 728, 728, 0, 257, 258, 0, 722, 0, 0, 0, + 728, 677, 0, 0, 163, 234, 729, 720, 0, 729, + 0, 0, 234, 717, 0, 0, 729, 728, 0, 729, + 0, 0, 0, 729, 0, 0, 0, 0, 729, 0, + 0, 729, 1187, 420, 418, 584, 419, 0, 421, 0, + 0, 163, 677, 0, 728, 677, 234, 729, 622, 623, + 624, 625, 626, 627, 628, 629, 728, 0, 728, 0, + 677, 0, 1188, 420, 418, 0, 419, 0, 421, 0, + 717, 729, 0, 717, 729, 729, 584, 581, 0, 584, + 717, 0, 0, 717, 729, 0, 0, 717, 0, 721, + 0, 728, 717, 0, 584, 717, 0, 0, 0, 0, + 0, 729, 0, 0, 0, 0, 235, 0, 235, 0, + 0, 717, 730, 0, 0, 0, 235, 0, 581, 0, + 0, 581, 0, 718, 0, 0, 0, 0, 729, 0, + 225, 0, 214, 0, 0, 717, 581, 0, 717, 717, + 729, 0, 729, 0, 0, 0, 721, 0, 717, 721, + 0, 0, 416, 0, 0, 0, 721, 0, 417, 721, + 0, 0, 0, 721, 0, 717, 0, 0, 721, 730, + 0, 721, 730, 0, 0, 729, 0, 0, 0, 730, + 718, 0, 730, 718, 0, 0, 730, 721, 0, 0, + 718, 730, 717, 718, 730, 0, 0, 718, 0, 722, + 0, 0, 718, 0, 717, 718, 717, 235, 0, 0, + 730, 721, 0, 0, 721, 721, 0, 0, 0, 0, + 0, 718, 0, 0, 721, 0, 0, 0, 0, 235, + 0, 225, 0, 0, 730, 0, 235, 730, 730, 717, + 0, 721, 0, 0, 0, 718, 0, 730, 718, 718, + 0, 0, 830, 225, 0, 0, 722, 0, 718, 722, + 225, 0, 0, 0, 730, 0, 722, 0, 721, 722, + 235, 416, 74, 722, 0, 718, 0, 417, 722, 75, + 721, 722, 721, 76, 77, 0, 0, 0, 167, 0, + 0, 730, 0, 830, 225, 0, 830, 722, 842, 0, + 479, 416, 718, 730, 78, 730, 0, 417, 0, 0, + 0, 830, 0, 830, 718, 721, 718, 0, 0, 0, + 677, 722, 0, 677, 722, 722, 0, 0, 0, 167, + 677, 0, 167, 677, 722, 0, 0, 677, 730, 0, + 479, 479, 677, 0, 479, 677, 0, 167, 0, 718, + 0, 722, 0, 0, 584, 0, 0, 584, 0, 479, + 0, 677, 0, 0, 584, 0, 0, 584, 0, 79, + 0, 584, 0, 0, 0, 0, 584, 0, 722, 584, + 0, 0, 0, 0, 0, 677, 80, 473, 677, 677, + 722, 479, 722, 0, 0, 584, 581, 0, 677, 581, + 0, 81, 0, 0, 496, 82, 581, 0, 0, 581, + 0, 0, 0, 581, 0, 677, 83, 0, 581, 584, + 0, 581, 0, 584, 0, 722, 0, 0, 473, 0, + 0, 473, 584, 0, 0, 84, 0, 581, 0, 0, + 0, 0, 677, 0, 0, 496, 473, 0, 496, 584, + 0, 0, 0, 0, 677, 0, 677, 0, 0, 0, + 0, 581, 0, 496, 0, 581, 0, 0, 0, 486, + 0, 0, 0, 0, 581, 0, 584, 0, 473, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 584, 677, + 0, 581, 0, 0, 0, 496, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 486, 0, 0, 486, 0, 0, 830, 830, 581, 0, + 0, 0, 0, 584, 0, 830, 0, 0, 486, 830, + 581, 173, 830, 0, 0, 0, 0, 830, 0, 0, + 0, 0, 0, 0, 0, 0, 167, 0, 830, 0, + 0, 830, 0, 0, 0, 830, 0, 830, 479, 0, + 486, 0, 0, 0, 0, 581, 0, 167, 0, 0, + 0, 830, 0, 0, 479, 470, 0, 479, 479, 0, + 479, 0, 0, 0, 0, 479, 0, 0, 479, 167, + 173, 0, 830, 830, 0, 167, 0, 0, 830, 830, + 830, 479, 830, 830, 830, 0, 830, 479, 0, 0, + 479, 0, 0, 0, 466, 0, 470, 0, 167, 470, + 0, 174, 0, 0, 0, 0, 830, 0, 830, 0, + 0, 0, 0, 0, 470, 0, 0, 167, 0, 0, + 0, 0, 0, 0, 0, 473, 167, 0, 0, 0, + 0, 0, 167, 0, 0, 466, 0, 0, 466, 830, + 0, 473, 496, 830, 473, 473, 470, 473, 0, 0, + 167, 0, 473, 466, 0, 473, 830, 0, 496, 479, + 174, 463, 496, 0, 496, 0, 0, 0, 473, 496, + 0, 0, 496, 0, 473, 0, 0, 473, 830, 0, + 0, 479, 0, 0, 0, 496, 0, 167, 479, 0, + 0, 496, 479, 830, 496, 0, 0, 0, 0, 479, + 0, 0, 463, 0, 0, 463, 0, 486, 0, 0, + 0, 0, 0, 830, 830, 0, 0, 479, 0, 0, + 463, 0, 479, 486, 0, 0, 0, 486, 0, 486, + 0, 0, 0, 0, 486, 0, 0, 486, 0, 0, + 0, 0, 0, 0, 0, 0, 473, 479, 0, 0, + 486, 479, 0, 0, 0, 0, 486, 0, 0, 486, + 0, 0, 0, 496, 0, 0, 0, 0, 473, 173, + 0, 0, 0, 0, 0, 473, 0, 0, 0, 473, + 0, 0, 0, 0, 0, 496, 473, 0, 0, 0, + 173, 0, 496, 0, 0, 0, 496, 573, 0, 0, + 259, 0, 260, 496, 473, 0, 0, 0, 0, 473, + 0, 0, 173, 470, 0, 263, 0, 0, 173, 0, + 264, 496, 0, 0, 0, 0, 496, 0, 486, 470, + 0, 0, 0, 470, 473, 470, 0, 0, 473, 0, + 470, 173, 1209, 470, 0, 0, 0, 0, 0, 0, + 486, 496, 466, 0, 0, 496, 470, 486, 0, 174, + 173, 486, 470, 0, 0, 470, 0, 0, 486, 173, + 0, 466, 466, 6, 466, 173, 0, 0, 0, 466, + 174, 0, 466, 0, 1294, 1295, 486, 1296, 0, 0, + 1297, 486, 0, 173, 573, 466, 0, 259, 0, 260, + 0, 466, 174, 0, 1298, 0, 0, 0, 174, 0, + 1299, 0, 263, 0, 0, 0, 486, 264, 0, 463, + 486, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 173, 174, 0, 0, 470, 0, 0, 0, 463, 463, + 0, 463, 0, 0, 0, 0, 463, 0, 573, 463, + 174, 259, 0, 260, 0, 0, 470, 0, 0, 174, + 0, 0, 463, 470, 0, 174, 263, 470, 463, 0, + 1300, 264, 0, 466, 470, 0, 0, 0, 0, 0, + 0, 0, 0, 174, 0, 0, 0, 0, 0, 14, + 0, 0, 470, 0, 0, 466, 0, 470, 0, 0, + 0, 0, 466, 0, 1301, 0, 0, 0, 0, 0, + 0, 466, 0, 466, 16, 0, 0, 0, 0, 0, + 174, 0, 470, 0, 234, 1302, 470, 0, 0, 0, + 0, 466, 166, 235, 262, 0, 466, 259, 0, 260, + 463, 0, 0, 0, 0, 0, 0, 236, 0, 0, + 569, 0, 263, 237, 238, 0, 0, 264, 0, 0, + 0, 0, 463, 0, 0, 466, 0, 0, 0, 463, + 0, 0, 570, 0, 0, 0, 0, 0, 1253, 1254, + 463, 0, 0, 0, 239, 0, 0, 0, 1259, 1260, + 0, 1262, 1263, 0, 0, 0, 0, 0, 463, 1267, + 1268, 1269, 1270, 463, 1271, 1272, 1273, 1274, 1275, 1276, + 0, 0, 241, 242, 0, 0, 0, 0, 0, 0, + 0, 234, 0, 0, 243, 0, 0, 0, 244, 0, + 235, 0, 463, 0, 0, 0, 571, 0, 0, 0, + 0, 0, 0, 127, 236, 0, 0, 0, 0, 0, + 237, 238, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 0, 570, + 0, 0, 0, 0, 0, 234, 0, 262, 0, 572, + 259, 239, 260, 0, 235, 0, 0, 0, 0, 0, + 0, 245, 0, 0, 0, 263, 0, 0, 236, 0, + 264, 246, 0, 0, 237, 238, 0, 0, 0, 241, + 242, 0, 0, 0, 0, 247, 248, 249, 250, 161, + 162, 243, 0, 570, 0, 244, 0, 0, 0, 251, + 0, 0, 0, 571, 0, 239, 0, 0, 252, 253, + 254, 255, 256, 257, 258, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 973, 0, 0, 974, 0, 0, + 0, 234, 262, 241, 242, 259, 0, 260, 0, 0, + 235, 0, 410, 0, 0, 243, 572, 0, 0, 244, + 263, 0, 0, 0, 236, 264, 0, 571, 245, 0, + 237, 238, 0, 0, 0, 0, 0, 0, 246, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 247, 248, 249, 250, 161, 162, 0, 0, + 0, 239, 0, 0, 0, 0, 251, 0, 0, 0, + 572, 0, 0, 0, 0, 252, 253, 254, 255, 256, + 257, 258, 245, 0, 0, 0, 0, 0, 0, 241, + 242, 0, 246, 0, 0, 0, 0, 0, 0, 0, + 0, 243, 0, 0, 0, 244, 247, 248, 249, 250, + 161, 162, 0, 0, 0, 0, 0, 0, 0, 0, + 251, 0, 0, 0, 0, 0, 0, 0, 0, 252, + 253, 254, 255, 256, 257, 258, 0, 982, 0, 0, + 974, 0, 0, 0, 234, 0, 0, 0, 0, 0, + 0, 0, 0, 235, 262, 0, 0, 259, 0, 260, + 975, 0, 0, 0, 0, 0, 0, 236, 245, 0, + 0, 0, 263, 237, 238, 0, 0, 264, 246, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 247, 248, 249, 250, 161, 162, 0, 0, + 0, 0, 0, 0, 239, 0, 251, 0, 0, 0, + 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, + 257, 258, 986, 0, 0, 974, 0, 0, 0, 234, + 0, 0, 241, 242, 0, 0, 0, 262, 235, 0, + 259, 0, 260, 0, 243, 0, 0, 0, 244, 0, + 0, 0, 236, 494, 0, 263, 0, 0, 237, 238, + 264, 0, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 239, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 975, 0, 262, 0, 0, 259, 0, + 260, 245, 0, 0, 0, 0, 0, 241, 242, 0, + 0, 246, 0, 263, 0, 0, 0, 0, 264, 243, + 0, 0, 0, 244, 0, 247, 248, 249, 250, 161, + 162, 0, 0, 0, 0, 0, 0, 0, 0, 251, + 0, 0, 0, 0, 0, 0, 0, 0, 252, 253, + 254, 255, 256, 257, 258, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 994, 0, 0, 974, 0, 0, + 0, 234, 0, 0, 0, 0, 0, 0, 975, 262, + 235, 0, 259, 0, 260, 0, 245, 0, 0, 0, + 0, 0, 0, 0, 236, 516, 246, 263, 0, 517, + 237, 238, 264, 0, 0, 0, 0, 0, 0, 0, + 247, 248, 249, 250, 161, 162, 0, 0, 518, 0, + 0, 519, 0, 0, 251, 0, 0, 0, 0, 0, + 0, 239, 0, 252, 253, 254, 255, 256, 257, 258, + 0, 0, 0, 0, 0, 0, 0, 997, 0, 0, + 974, 0, 0, 0, 234, 0, 0, 0, 0, 241, + 242, 0, 520, 235, 0, 0, 0, 0, 521, 522, + 523, 243, 524, 525, 526, 244, 527, 236, 0, 0, + 0, 0, 0, 237, 238, 0, 0, 0, 0, 400, + 0, 0, 0, 0, 0, 0, 528, 0, 529, 400, + 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, + 400, 400, 400, 400, 239, 1002, 0, 0, 974, 0, + 0, 0, 234, 0, 0, 0, 0, 0, 0, 530, + 975, 235, 262, 0, 0, 259, 0, 260, 245, 0, + 0, 0, 241, 242, 0, 236, 531, 0, 246, 0, + 263, 237, 238, 0, 243, 264, 0, 0, 244, 0, + 0, 0, 247, 248, 249, 250, 161, 162, 532, 0, + 0, 0, 0, 0, 0, 0, 251, 0, 262, 0, + 261, 259, 239, 260, 0, 252, 253, 254, 255, 256, + 257, 258, 0, 0, 0, 0, 263, 0, 0, 1005, + 0, 264, 974, 533, 534, 0, 234, 0, 0, 0, + 241, 242, 0, 975, 824, 235, 824, 824, 0, 824, + 0, 245, 243, 0, 0, 0, 244, 0, 0, 236, + 516, 246, 824, 0, 517, 237, 238, 824, 0, 0, + 0, 0, 705, 0, 0, 247, 248, 249, 250, 161, + 162, 0, 0, 518, 0, 0, 519, 0, 0, 251, + 0, 0, 0, 0, 0, 0, 239, 0, 252, 253, + 254, 255, 256, 257, 258, 262, 0, 0, 259, 0, + 260, 975, 0, 0, 0, 0, 0, 0, 0, 245, + 0, 0, 0, 263, 241, 242, 0, 520, 264, 246, + 0, 0, 0, 521, 522, 523, 243, 524, 525, 526, + 244, 527, 0, 247, 248, 249, 250, 161, 162, 0, + 0, 0, 0, 0, 0, 0, 0, 251, 0, 0, + 0, 528, 0, 529, 0, 0, 252, 253, 254, 255, + 256, 257, 258, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1008, 0, 0, 974, 0, 262, 0, 234, + 259, 0, 260, 0, 530, 975, 0, 0, 235, 0, + 0, 0, 0, 245, 0, 263, 0, 0, 0, 0, + 264, 531, 236, 246, 0, 0, 0, 0, 237, 238, + 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, + 250, 161, 162, 532, 0, 234, 0, 0, 0, 0, + 0, 251, 0, 0, 235, 0, 0, 0, 224, 239, + 252, 253, 254, 255, 256, 257, 258, 0, 236, 0, + 0, 0, 0, 0, 237, 238, 0, 0, 533, 534, + 0, 824, 0, 0, 0, 0, 0, 241, 242, 0, + 824, 0, 0, 0, 0, 262, 634, 0, 259, 243, + 260, 0, 0, 244, 824, 239, 0, 0, 0, 0, + 824, 824, 0, 263, 0, 0, 0, 0, 264, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 240, 0, 241, 242, 0, 0, 0, 0, 0, + 0, 824, 234, 0, 0, 243, 0, 0, 0, 244, + 262, 235, 0, 259, 0, 260, 0, 0, 975, 0, + 0, 0, 0, 0, 0, 236, 245, 824, 263, 824, + 824, 237, 238, 264, 0, 0, 246, 0, 0, 0, + 0, 824, 0, 0, 0, 824, 0, 0, 0, 0, + 247, 248, 249, 250, 161, 162, 0, 0, 0, 0, + 0, 0, 239, 0, 251, 0, 0, 0, 0, 0, + 0, 0, 245, 252, 253, 254, 255, 256, 257, 258, + 0, 0, 246, 0, 234, 0, 0, 0, 0, 0, + 241, 242, 0, 235, 0, 0, 247, 248, 249, 250, + 161, 162, 243, 0, 0, 0, 244, 236, 824, 0, + 251, 0, 0, 237, 238, 0, 0, 0, 824, 252, + 253, 254, 255, 256, 257, 258, 0, 0, 0, 0, + 0, 0, 824, 824, 824, 824, 824, 824, 0, 0, + 0, 0, 0, 0, 239, 0, 824, 0, 0, 0, + 0, 0, 0, 410, 0, 824, 824, 824, 824, 824, + 824, 824, 0, 0, 0, 0, 0, 0, 0, 245, + 240, 0, 241, 242, 0, 0, 0, 0, 0, 246, + 0, 0, 234, 0, 243, 0, 0, 0, 244, 0, + 0, 235, 0, 247, 248, 249, 250, 161, 162, 0, + 0, 0, 0, 0, 0, 236, 0, 251, 0, 0, + 262, 237, 238, 259, 0, 260, 252, 253, 254, 255, + 256, 257, 258, 0, 0, 0, 0, 0, 263, 0, + 0, 0, 0, 264, 0, 0, 0, 234, 0, 0, + 0, 0, 239, 0, 0, 262, 235, 0, 259, 0, + 260, 245, 0, 0, 0, 0, 0, 0, 0, 0, + 236, 246, 0, 263, 0, 0, 237, 238, 264, 0, + 241, 242, 0, 0, 0, 247, 248, 249, 250, 161, + 162, 0, 243, 0, 0, 0, 244, 0, 0, 251, + 0, 0, 0, 0, 0, 0, 0, 239, 252, 253, + 254, 255, 256, 257, 258, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 241, 242, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 243, 2, 0, + 0, 244, 0, 0, 0, 0, 3, 0, 0, 245, + 0, 0, 0, 4, 0, 5, 0, 6, 0, 246, + 0, 0, 7, 0, 0, 0, 0, 0, 0, 8, + 0, 0, 0, 247, 248, 249, 250, 161, 162, 0, + 0, 0, 0, 9, 0, 0, 0, 251, 824, 0, + 0, 824, 0, 824, 10, 0, 252, 253, 254, 255, + 256, 257, 258, 0, 245, 0, 824, 0, 0, 0, + 0, 824, 0, 0, 246, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1000, 0, 0, 247, 248, + 249, 250, 161, 162, 0, 0, 0, 234, 0, 206, + 0, 0, 251, 206, 0, 0, 235, 0, 0, 0, + 0, 252, 253, 254, 255, 256, 257, 258, 206, 0, + 236, 11, 206, 0, 0, 206, 237, 238, 12, 0, + 0, 13, 234, 14, 15, 0, 0, 0, 0, 0, + 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 236, 0, 239, 16, 0, + 0, 237, 238, 632, 420, 418, 206, 419, 0, 421, + 0, 0, 206, 206, 206, 0, 206, 206, 206, 0, + 206, 0, 804, 803, 805, 241, 242, 0, 0, 0, + 0, 0, 239, 0, 0, 0, 0, 243, 0, 0, + 206, 244, 206, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 241, 242, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 243, 206, 0, 0, 244, 0, 76, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 245, 0, 0, 0, 0, 0, + 0, 0, 206, 0, 246, 824, 420, 418, 0, 419, + 0, 421, 0, 0, 824, 1155, 0, 0, 247, 248, + 249, 250, 161, 162, 804, 803, 805, 0, 824, 245, + 0, 0, 251, 0, 824, 824, 0, 206, 206, 246, + 0, 252, 253, 254, 255, 256, 257, 258, 0, 0, + 0, 0, 0, 247, 248, 249, 250, 161, 162, 0, + 0, 0, 0, 0, 0, 824, 0, 251, 0, 0, + 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, + 256, 257, 258, 0, 777, 0, 0, 0, 517, 0, + 0, 0, 0, 824, 824, 0, 0, 0, 0, 0, + 0, 0, 0, 778, 0, 824, 0, 518, 0, 824, + 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 791, 0, 0, 0, 0, 0, + 0, 0, 416, 0, 0, 0, 0, 0, 417, 0, + 0, 792, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 520, 0, 0, 0, 0, 0, 521, 522, 523, + 0, 524, 525, 526, 0, 527, 0, 0, 0, 0, + 0, 0, 824, 0, 0, 0, 0, 793, 0, 0, + 0, 0, 824, 0, 0, 528, 794, 529, 0, 0, + 0, 0, 0, 0, 795, 0, 824, 824, 824, 824, + 824, 824, 0, 0, 0, 0, 0, 0, 0, 0, + 824, 0, 0, 796, 0, 797, 0, 0, 530, 824, + 824, 824, 824, 824, 824, 824, 0, 0, 0, 798, + 0, 799, 800, 801, 0, 531, 791, 0, 0, 0, + 0, 0, 0, 0, 416, 516, 0, 0, 0, 517, + 417, 0, 0, 792, 0, 0, 0, 532, 0, 0, + 0, 206, 0, 0, 0, 206, 0, 0, 518, 0, + 0, 519, 0, 0, 0, 0, 0, 0, 0, 0, + 206, 0, 802, 0, 206, 0, 0, 206, 0, 793, + 0, 0, 533, 534, 0, 0, 0, 0, 794, 0, + 0, 0, 0, 0, 0, 0, 795, 120, 0, 0, + 0, 120, 520, 0, 0, 0, 0, 0, 521, 522, + 523, 0, 524, 525, 526, 796, 527, 797, 206, 0, + 120, 0, 0, 120, 206, 206, 206, 0, 206, 206, + 206, 798, 206, 799, 800, 801, 528, 0, 529, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1209, + 0, 0, 206, 0, 206, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 120, 0, 0, 0, 0, 530, + 120, 120, 120, 0, 120, 120, 120, 0, 120, 0, + 6, 0, 0, 0, 802, 206, 531, 1394, 0, 0, + 281, 1294, 1295, 0, 1296, 0, 0, 1297, 120, 0, + 120, 0, 206, 0, 0, 0, 0, 0, 532, 0, + 0, 1298, 0, 0, 0, 0, 0, 1299, 0, 0, + 0, 281, 0, 224, 206, 0, 0, 0, 281, 0, + 0, 120, 281, 281, 0, 281, 0, 0, 281, 0, + 0, 0, 0, 533, 534, 0, 0, 0, 120, 0, + 0, 0, 281, 0, 0, 0, 0, 0, 281, 206, + 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 120, 0, 0, 0, 0, 0, 0, 1300, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, + 0, 0, 0, 0, 0, 120, 120, 0, 0, 0, + 0, 1301, 0, 0, 0, 0, 0, 0, 281, 0, + 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 1395, 0, 1302, 0, 0, 0, 0, 281, 0, 166, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 281, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 281, 0, 0, 0, 0, 0, 0, 0, + 0, 281, 0, 281, 0, 0, 0, 0, 0, 0, + 281, +}; +static short yycheck[] = { 54, + 16, 46, 4, 55, 4, 47, 93, 0, 54, 213, + 213, 213, 589, 54, 424, 57, 48, 571, 53, 573, + 449, 338, 397, 75, 60, 503, 477, 59, 58, 480, + 342, 346, 83, 78, 410, 486, 446, 79, 430, 124, + 317, 489, 346, 486, 86, 676, 82, 683, 909, 850, + 80, 221, 0, 102, 0, 104, 40, 73, 45, 920, + 40, 231, 0, 0, 40, 81, 121, 0, 40, 361, + 604, 103, 45, 300, 310, 936, 40, 645, 742, 565, + 40, 0, 0, 0, 42, 44, 0, 41, 536, 41, + 44, 0, 45, 41, 58, 44, 44, 42, 177, 40, + 187, 44, 44, 41, 115, 44, 44, 392, 0, 41, + 1189, 59, 147, 59, 680, 44, 693, 0, 44, 946, + 1063, 59, 59, 44, 0, 91, 59, 930, 44, 0, + 44, 0, 41, 0, 264, 229, 44, 41, 173, 226, + 59, 59, 59, 45, 456, 59, 463, 464, 465, 466, + 59, 263, 0, 58, 274, 260, 1026, 0, 41, 44, + 215, 44, 0, 367, 367, 367, 693, 59, 1019, 215, + 1021, 486, 0, 284, 63, 1082, 59, 329, 12, 0, + 658, 288, 486, 59, 302, 0, 321, 219, 59, 1426, + 59, 258, 59, 268, 378, 40, 44, 229, 347, 511, + 45, 313, 260, 45, 313, 45, 0, 0, 686, 687, + 380, 59, 324, 0, 0, 277, 59, 1122, 257, 304, + 264, 59, 418, 63, 516, 265, 41, 1204, 326, 321, + 1091, 59, 406, 444, 388, 419, 0, 459, 59, 284, + 307, 288, 418, 456, 59, 300, 378, 59, 303, 445, + 461, 425, 806, 807, 300, 41, 288, 303, 44, 707, + 59, 1238, 1499, 303, 486, 59, 59, 316, 12, 445, + 325, 0, 59, 59, 323, 109, 309, 728, 327, 325, + 429, 330, 466, 0, 346, 1522, 0, 441, 736, 823, + 858, 366, 444, 278, 0, 59, 335, 672, 832, 833, + 394, 285, 437, 388, 339, 1108, 341, 1214, 0, 461, + 0, 277, 357, 418, 262, 41, 428, 449, 353, 0, + 274, 258, 607, 355, 41, 443, 264, 44, 269, 440, + 59, 461, 1183, 431, 1413, 320, 0, 379, 1243, 297, + 438, 1284, 59, 897, 376, 59, 1207, 467, 264, 1210, + 392, 1212, 419, 59, 461, 387, 310, 389, 750, 361, + 418, 470, 394, 1027, 0, 109, 0, 59, 412, 59, + 307, 319, 321, 1452, 322, 258, 1237, 41, 59, 305, + 44, 329, 321, 321, 332, 589, 589, 589, 336, 400, + 956, 274, 1219, 341, 41, 59, 344, 0, 319, 332, + 332, 978, 41, 0, 483, 41, 310, 278, 1278, 280, + 319, 278, 360, 280, 461, 329, 401, 403, 332, 452, + 258, 264, 341, 59, 307, 59, 461, 310, 598, 273, + 344, 41, 341, 1097, 1070, 395, 384, 486, 41, 387, + 388, 461, 384, 264, 41, 397, 673, 1250, 58, 397, + 278, 113, 280, 828, 690, 933, 59, 442, 412, 907, + 329, 59, 59, 332, 397, 397, 414, 1328, 448, 307, + 918, 506, 459, 349, 504, 961, 1337, 461, 437, 388, + 397, 329, 419, 397, 332, 461, 459, 935, 397, 461, + 693, 693, 784, 441, 1062, 441, 344, 461, 775, 486, + 437, 1035, 557, 461, 319, 453, 459, 455, 441, 455, + 1064, 557, 455, 467, 516, 453, 461, 332, 410, 554, + 555, 0, 455, 461, 441, 1102, 341, 441, 397, 412, + 459, 1085, 441, 319, 471, 590, 419, 455, 455, 453, + 488, 455, 329, 329, 590, 332, 332, 455, 1349, 397, + 343, 379, 258, 1414, 437, 341, 461, 459, 344, 461, + 837, 278, 41, 280, 566, 607, 566, 1203, 453, 886, + 459, 288, 441, 388, 368, 1102, 952, 398, 259, 488, + 59, 419, 397, 264, 467, 378, 455, 432, 471, 270, + 432, 41, 432, 441, 1072, 1038, 1074, 259, 260, 411, + 262, 307, 388, 329, 368, 453, 332, 455, 1280, 604, + 397, 397, 411, 406, 459, 262, 409, 459, 673, 459, + 349, 1078, 41, 262, 679, 680, 441, 673, 559, 343, + 947, 0, 425, 679, 680, 667, 1114, 669, 0, 0, + 1050, 1089, 42, 813, 41, 0, 816, 682, 683, 341, + 699, 341, 1283, 856, 441, 441, 1113, 461, 451, 689, + 0, 262, 379, 357, 378, 259, 453, 453, 455, 42, + 1118, 397, 41, 488, 47, 44, 270, 265, 727, 728, + 1257, 288, 959, 319, 401, 319, 1310, 461, 714, 44, + 59, 408, 406, 329, 301, 409, 332, 59, 59, 1370, + 435, 786, 488, 788, 59, 341, 302, 341, 1100, 257, + 0, 425, 320, 419, 1106, 303, 319, 398, 461, 59, + 384, 273, 319, 1038, 726, 442, 461, 302, 1282, 0, + 760, 761, 762, 735, 1038, 397, 430, 451, 341, 401, + 387, 773, 398, 339, 341, 747, 287, 44, 387, 0, + 338, 41, 388, 415, 44, 417, 418, 419, 420, 421, + 422, 397, 1138, 425, 339, 258, 817, 0, 1216, 59, + 41, 702, 814, 44, 978, 284, 978, 0, 1450, 815, + 711, 437, 784, 260, 1213, 388, 387, 335, 59, 341, + 41, 388, 357, 401, 397, 344, 93, 1245, 1227, 1408, + 397, 461, 857, 349, 1116, 441, 1181, 1285, 59, 44, + 44, 1289, 262, 260, 307, 471, 1487, 1489, 410, 455, + 369, 1025, 1026, 1027, 59, 0, 59, 304, 823, 394, + 0, 396, 1386, 764, 442, 1389, 59, 832, 441, 1448, + 319, 44, 1293, 262, 441, 406, 1517, 443, 1425, 344, + 329, 1475, 488, 332, 419, 302, 0, 280, 455, 93, + 260, 0, 341, 286, 0, 262, 41, 314, 443, 44, + 42, 43, 1329, 45, 369, 47, 385, 1486, 427, 444, + 1504, 1505, 1459, 1200, 59, 41, 912, 913, 44, 59, + 93, 488, 339, 262, 949, 41, 457, 41, 44, 1102, + 1102, 956, 41, 949, 304, 41, 1530, 280, 44, 388, + 956, 573, 942, 286, 0, 59, 462, 463, 397, 1543, + 59, 462, 463, 59, 1501, 927, 419, 927, 958, 1339, + 956, 440, 427, 0, 964, 0, 0, 387, 0, 329, + 42, 43, 1420, 45, 437, 47, 608, 609, 457, 611, + 319, 613, 0, 322, 616, 617, 618, 619, 620, 621, + 329, 408, 441, 332, 319, 16, 461, 336, 387, 631, + 461, 418, 341, 59, 453, 344, 406, 44, 471, 279, + 40, 343, 1536, 44, 0, 45, 341, 1190, 919, 461, + 387, 360, 59, 0, 59, 59, 443, 59, 58, 353, + 41, 42, 43, 343, 45, 459, 47, 1417, 1063, 488, + 672, 59, 322, 403, 461, 384, 378, 1063, 387, 388, + 0, 0, 73, 1025, 1026, 379, 336, 457, 397, 319, + 330, 301, 93, 260, 344, 1070, 41, 44, 378, 44, + 461, 0, 332, 59, 406, 414, 63, 409, 319, 439, + 360, 341, 59, 1257, 444, 1257, 461, 0, 329, 404, + 450, 332, 41, 425, 364, 44, 406, 84, 319, 409, + 341, 461, 441, 344, 1278, 302, 421, 322, 329, 59, + 59, 332, 382, 353, 453, 425, 455, 314, 93, 451, + 341, 336, 459, 1095, 1129, 1095, 319, 1132, 388, 344, + 59, 0, 0, 278, 414, 280, 41, 397, 280, 44, + 343, 451, 339, 288, 286, 360, 59, 388, 341, 488, + 1410, 259, 41, 323, 349, 44, 397, 338, 461, 791, + 792, 793, 270, 358, 796, 797, 798, 388, 800, 801, + 802, 803, 804, 805, 0, 44, 397, 42, 43, 321, + 45, 441, 47, 1208, 1209, 0, 1446, 459, 93, 461, + 59, 59, 1208, 1209, 375, 455, 828, 1208, 1203, 414, + 441, 0, 0, 406, 322, 319, 409, 388, 280, 841, + 319, 408, 453, 319, 286, 1217, 322, 849, 336, 851, + 441, 418, 425, 329, 856, 1485, 332, 341, 488, 461, + 336, 0, 341, 59, 379, 341, 323, 260, 344, 384, + 312, 196, 360, 402, 59, 272, 443, 488, 451, 204, + 0, 0, 1425, 1425, 360, 1515, 401, 0, 0, 1284, + 59, 59, 289, 408, 317, 318, 296, 488, 1284, 280, + 1327, 384, 1294, 41, 388, 286, 44, 343, 384, 388, + 0, 304, 388, 397, 40, 1310, 1459, 1459, 265, 0, + 59, 397, 41, 279, 1310, 44, 414, 442, 40, 41, + 42, 43, 44, 45, 46, 47, 1278, 334, 414, 59, + 59, 466, 378, 468, 0, 301, 59, 59, 60, 61, + 62, 1323, 0, 353, 0, 260, 303, 441, 1501, 1501, + 41, 44, 441, 44, 1297, 441, 363, 384, 1343, 59, + 406, 1346, 319, 409, 330, 0, 1403, 453, 59, 91, + 461, 93, 1338, 260, 0, 461, 322, 989, 990, 425, + 992, 993, 379, 349, 341, 41, 386, 1392, 1000, 304, + 336, 1383, 358, 59, 41, 384, 1392, 44, 364, 384, + 302, 59, 488, 59, 401, 451, 41, 42, 43, 44, + 45, 408, 47, 260, 360, 258, 382, 304, 261, 0, + 1425, 1426, 0, 430, 59, 60, 61, 62, 338, 1425, + 1426, 0, 1434, 59, 0, 280, 419, 339, 384, 0, + 461, 286, 1408, 0, 41, 442, 274, 44, 458, 459, + 460, 461, 462, 463, 1459, 0, 1422, 304, 93, 0, + 0, 392, 393, 1459, 307, 1470, 319, 312, 414, 1081, + 1475, 481, 482, 322, 1470, 40, 486, 487, 59, 1475, + 329, 59, 1448, 332, 1436, 425, 1436, 336, 1454, 41, + 59, 462, 44, 59, 1499, 344, 1501, 264, 59, 1504, + 1505, 1496, 59, 1499, 46, 1501, 408, 1119, 1504, 1505, + 41, 360, 41, 44, 59, 44, 418, 1522, 59, 59, + 1486, 41, 319, 1135, 44, 1530, 1522, 1493, 41, 338, + 0, 44, 677, 678, 1530, 384, 1148, 317, 1543, 0, + 262, 443, 264, 1155, 1019, 338, 1021, 1543, 397, 278, + 272, 280, 42, 43, 461, 45, 285, 47, 280, 288, + 41, 462, 463, 44, 286, 414, 375, 289, 41, 1181, + 419, 44, 301, 41, 0, 0, 44, 337, 1190, 388, + 41, 41, 453, 44, 44, 462, 463, 403, 341, 59, + 312, 403, 441, 321, 319, 384, 384, 319, 59, 321, + 322, 40, 40, 325, 453, 40, 455, 329, 42, 43, + 332, 45, 334, 47, 336, 41, 462, 40, 44, 341, + 342, 40, 344, 462, 41, 42, 43, 262, 45, 264, + 47, 40, 40, 59, 59, 40, 40, 272, 360, 361, + 396, 363, 398, 1255, 462, 280, 402, 403, 404, 40, + 379, 286, 1264, 1265, 289, 377, 461, 379, 380, 381, + 91, 321, 384, 319, 44, 387, 388, 458, 459, 460, + 46, 437, 401, 362, 451, 397, 332, 312, 435, 408, + 418, 443, 358, 288, 319, 341, 321, 322, 1300, 322, + 325, 412, 414, 44, 329, 486, 487, 332, 470, 334, + 61, 336, 373, 336, 287, 295, 341, 342, 430, 344, + 40, 264, 40, 442, 0, 44, 306, 437, 461, 441, + 321, 44, 403, 313, 0, 360, 361, 360, 363, 41, + 1342, 453, 388, 455, 41, 42, 43, 461, 45, 461, + 47, 397, 377, 453, 379, 380, 381, 461, 338, 384, + 44, 384, 387, 388, 429, 41, 42, 43, 44, 45, + 61, 47, 397, 280, 40, 41, 488, 44, 44, 383, + 349, 44, 262, 59, 60, 61, 62, 278, 301, 414, + 264, 414, 461, 59, 437, 441, 42, 43, 258, 45, + 280, 47, 398, 471, 398, 430, 286, 0, 459, 455, + 277, 400, 448, 59, 448, 40, 441, 93, 40, 279, + 91, 350, 40, 403, 264, 91, 42, 43, 453, 45, + 455, 47, 40, 412, 384, 44, 461, 390, 262, 383, + 40, 301, 488, 1392, 40, 437, 262, 307, 41, 42, + 43, 44, 45, 465, 47, 435, 280, 318, 40, 439, + 264, 41, 286, 488, 279, 321, 59, 60, 61, 62, + 330, 322, 321, 280, 44, 321, 1425, 1426, 329, 286, + 280, 332, 40, 44, 329, 336, 301, 449, 40, 349, + 277, 274, 459, 344, 0, 40, 40, 357, 358, 285, + 93, 45, 345, 319, 364, 278, 322, 345, 419, 360, + 1459, 417, 301, 329, 419, 330, 332, 40, 357, 63, + 336, 1470, 382, 418, 40, 341, 40, 461, 344, 44, + 321, 386, 368, 384, 349, 41, 42, 43, 44, 45, + 44, 47, 41, 358, 360, 389, 397, 389, 389, 364, + 1499, 344, 1501, 59, 60, 61, 62, 274, 332, 419, + 44, 266, 300, 414, 40, 264, 45, 382, 384, 461, + 430, 387, 388, 1522, 41, 423, 58, 41, 41, 41, + 455, 397, 441, 280, 63, 395, 262, 93, 264, 286, + 441, 41, 258, 41, 310, 310, 272, 40, 414, 40, + 353, 40, 453, 40, 455, 40, 40, 40, 274, 40, + 286, 277, 278, 289, 280, 40, 40, 40, 40, 285, + 40, 40, 288, 40, 40, 441, 262, 328, 41, 44, + 279, 461, 0, 423, 280, 301, 312, 453, 392, 455, + 286, 307, 391, 319, 310, 321, 322, 271, 288, 325, + 447, 488, 301, 329, 41, 379, 332, 0, 334, 41, + 336, 408, 40, 278, 280, 341, 342, 41, 344, 262, + 286, 264, 488, 41, 41, 43, 44, 45, 418, 272, + 41, 330, 386, 280, 360, 361, 44, 363, 40, 437, + 397, 59, 60, 61, 62, 41, 289, 41, 353, 386, + 349, 377, 321, 379, 380, 381, 356, 372, 384, 358, + 372, 387, 388, 379, 41, 364, 59, 41, 41, 312, + 41, 397, 41, 403, 41, 93, 319, 45, 321, 322, + 41, 41, 325, 382, 41, 401, 329, 41, 414, 332, + 41, 334, 408, 336, 41, 41, 412, 41, 341, 342, + 41, 344, 296, 419, 430, 796, 262, 798, 264, 800, + 801, 41, 803, 804, 805, 441, 272, 360, 361, 59, + 363, 437, 40, 341, 59, 40, 442, 453, 59, 455, + 59, 0, 341, 289, 377, 461, 379, 380, 381, 59, + 59, 384, 41, 353, 387, 388, 345, 369, 40, 341, + 59, 467, 59, 384, 397, 471, 312, 44, 461, 353, + 384, 384, 488, 319, 41, 321, 322, 296, 344, 325, + 0, 414, 41, 329, 41, 44, 332, 41, 334, 41, + 336, 44, 411, 44, 436, 341, 342, 430, 344, 305, + 59, 41, 42, 43, 302, 45, 40, 47, 441, 443, + 59, 305, 294, 464, 360, 361, 44, 363, 44, 308, + 453, 41, 455, 41, 44, 0, 0, 338, 461, 40, + 264, 377, 45, 379, 380, 381, 384, 384, 384, 59, + 278, 387, 388, 321, 264, 58, 41, 42, 43, 390, + 45, 397, 47, 459, 262, 488, 264, 40, 264, 412, + 471, 310, 459, 437, 272, 264, 271, 41, 414, 43, + 44, 45, 344, 459, 458, 459, 460, 344, 462, 463, + 271, 289, 41, 344, 430, 59, 60, 61, 62, 40, + 344, 41, 40, 59, 41, 441, 279, 481, 482, 418, + 41, 305, 486, 487, 312, 59, 0, 453, 0, 455, + 0, 319, 1022, 321, 322, 461, 12, 325, 301, 93, + 231, 329, 223, 598, 332, 444, 334, 222, 336, 561, + 776, 961, 77, 341, 342, 959, 344, 1102, 296, 458, + 459, 460, 488, 462, 463, 948, 956, 330, 1228, 343, + 511, 940, 360, 361, 308, 363, 889, 949, 708, 325, + 260, 709, 481, 482, 0, 325, 349, 486, 487, 377, + 1214, 379, 380, 381, 357, 358, 384, 1441, 1216, 387, + 388, 364, 41, 42, 43, 1445, 45, 1479, 47, 397, + 41, 42, 43, 349, 45, 353, 47, 1079, 491, 382, + 0, 1444, 302, 699, 1459, 41, 414, 43, 44, 45, + 1408, 394, 1529, 396, 314, 1397, 1119, 1476, 367, 278, + 558, 280, 430, 59, 60, 61, 62, 951, 328, 288, + 318, 771, 330, 441, 1239, 493, 419, 311, 258, 339, + 280, 41, 301, 757, 44, 453, 286, 455, 549, 1104, + 749, 0, 13, 461, 292, 432, 436, 93, 278, 59, + 280, 444, 667, 679, 426, 285, 645, 1284, 288, 1493, + 425, 1287, 1190, 41, 42, 43, 1454, 45, 0, 47, + 488, 301, 603, 296, 1545, 280, 444, 307, 262, 991, + 264, 286, 41, 446, 43, 44, 45, 829, 272, 422, + 458, 459, 460, 366, 462, 463, -1, -1, 408, 1257, + 59, 60, 61, 62, -1, 289, -1, -1, 418, 41, + 379, -1, 44, 481, 482, 483, 484, 485, 486, 487, + -1, -1, -1, -1, 0, -1, -1, 59, 312, -1, + 353, -1, 401, 443, 93, 319, -1, 321, 322, 408, + -1, 325, -1, -1, -1, 329, -1, -1, 332, 379, + 334, 461, 336, -1, 45, -1, -1, 341, 342, -1, + 344, -1, -1, -1, -1, 41, -1, -1, 44, -1, + -1, 401, 63, 442, -1, -1, 360, 361, 408, 363, + -1, -1, -1, 59, -1, -1, -1, -1, -1, 419, + -1, -1, -1, 377, -1, 379, 380, 381, -1, -1, + 384, 0, -1, 387, 388, -1, -1, 437, -1, -1, + -1, 280, 442, 397, -1, -1, 262, 286, 264, 280, + -1, -1, -1, -1, -1, 286, 272, 41, 42, 43, + 414, 45, -1, 47, -1, 458, 459, 460, 461, 462, + 463, 471, 41, 289, -1, 44, 430, 41, 42, 43, + -1, 45, -1, 47, -1, -1, 295, 441, 481, 482, + 59, -1, -1, 486, 487, 0, 312, 306, 278, 453, + 280, 455, -1, 319, 313, 321, 322, 461, 288, 325, + -1, -1, -1, 329, -1, 0, 332, 326, 334, -1, + 336, 301, -1, -1, -1, 341, 342, -1, 344, -1, + -1, -1, 280, 262, 488, 264, 41, -1, 286, 44, + -1, -1, -1, 272, 360, 361, -1, 363, -1, -1, + -1, -1, -1, -1, 59, -1, 41, -1, -1, 44, + 289, 377, -1, 379, 380, 381, -1, -1, 384, -1, + -1, 387, 388, -1, 59, -1, 278, -1, 280, 0, + -1, 397, -1, 312, -1, -1, 288, -1, -1, -1, + 319, -1, 321, 322, 403, -1, 325, -1, 414, 379, + 329, -1, 0, 332, -1, 334, -1, 336, -1, -1, + -1, 420, 341, 342, 430, 344, 262, -1, -1, -1, + 41, 401, -1, 44, -1, 441, 435, -1, 408, -1, + 439, 360, 361, 442, 363, 296, -1, 453, 59, 455, + -1, 450, -1, 41, -1, 461, 44, -1, 377, -1, + 379, 380, 381, -1, -1, 384, -1, -1, 387, 388, + 469, 59, 442, -1, -1, -1, 0, -1, 397, -1, + -1, -1, 488, 319, -1, -1, 322, 379, -1, -1, + -1, -1, -1, 329, -1, 414, 332, -1, -1, 0, + 336, -1, 353, 262, -1, 341, 280, -1, 344, 401, + -1, 430, 286, -1, -1, -1, 408, 41, -1, -1, + 44, -1, 441, -1, 360, -1, 280, -1, -1, -1, + -1, -1, 286, -1, 453, 59, 455, -1, -1, -1, + 41, -1, 461, 44, -1, -1, -1, -1, 384, -1, + 442, 387, 388, -1, 0, -1, -1, -1, 59, -1, + 319, 397, 0, 322, -1, -1, -1, 262, -1, 488, + 329, -1, -1, 332, -1, -1, -1, 336, 414, -1, + -1, -1, 341, -1, -1, 344, -1, 262, 41, 42, + 43, -1, 45, -1, 47, 41, -1, -1, 44, -1, + -1, 360, -1, 41, -1, 441, 44, 458, 459, 460, + -1, 462, 463, 59, -1, -1, -1, 453, -1, 455, + -1, 59, -1, -1, 319, 384, -1, 322, 387, 388, + 481, 482, -1, -1, 329, 486, 487, 332, 397, 0, + 0, 336, -1, -1, 319, -1, 341, 322, -1, 344, + -1, 262, 488, -1, 329, 414, -1, 332, -1, -1, + -1, 336, -1, -1, -1, 360, 341, -1, -1, 344, + -1, -1, 45, -1, 262, -1, -1, -1, -1, -1, + 41, 41, 441, 44, 44, 360, -1, -1, -1, 384, + 63, -1, 387, 388, 453, -1, 455, -1, 59, 59, + -1, -1, 397, -1, -1, -1, -1, -1, 319, 384, + -1, 322, 387, 388, -1, -1, -1, -1, 329, 414, + -1, 332, 397, 0, 0, 336, -1, -1, -1, 488, + 341, 319, -1, 344, 322, -1, -1, -1, 262, 414, + -1, 329, 0, -1, 332, -1, 441, -1, 336, 360, + -1, -1, -1, 341, -1, -1, 344, -1, 453, -1, + 455, 262, -1, -1, 41, 41, 441, 44, 44, -1, + -1, -1, 360, 384, -1, -1, 387, 388, 453, -1, + 455, -1, 59, 59, -1, -1, 397, -1, -1, -1, + -1, -1, -1, 488, -1, 319, 384, -1, 322, 387, + 388, 59, -1, 414, -1, 329, -1, 0, 332, 397, + -1, -1, 336, 488, -1, -1, -1, 341, 319, -1, + 344, 322, -1, -1, 262, -1, 414, 280, 329, -1, + 441, 332, 278, 286, 280, 336, 360, -1, -1, -1, + 341, -1, 453, 344, 455, -1, -1, -1, 41, -1, + -1, 44, -1, 441, -1, -1, -1, -1, -1, 360, + 384, -1, -1, 387, 388, 453, 59, 455, -1, -1, + -1, 0, -1, 397, -1, -1, -1, 488, -1, -1, + -1, 319, -1, 384, 322, -1, 387, 388, -1, -1, + 414, 329, -1, -1, 332, -1, 397, -1, 336, -1, + 488, 262, -1, 341, -1, -1, 344, -1, -1, -1, + -1, -1, 41, 414, -1, 44, -1, 441, 278, -1, + 280, -1, 360, 296, -1, 285, -1, -1, 288, 453, + 59, 455, -1, 379, -1, -1, -1, -1, -1, -1, + 441, 301, -1, -1, -1, -1, 384, 0, 0, 387, + 388, -1, 453, -1, 455, 401, -1, -1, 319, 397, + -1, 322, 408, -1, 488, -1, -1, -1, 329, -1, + 0, 332, 0, -1, -1, 336, 414, -1, -1, -1, + 341, 0, -1, 344, -1, 262, -1, 488, 41, 41, + -1, 44, 44, -1, -1, -1, 442, -1, -1, 360, + 258, -1, 278, 441, 280, -1, 59, 59, -1, -1, + -1, 41, 288, 41, 44, 453, 44, 455, -1, 379, + -1, 279, 41, 384, -1, 44, 387, 388, -1, 59, + -1, 59, -1, 41, 42, 43, 397, 45, -1, 47, + 59, 401, 319, 301, -1, 322, -1, -1, 408, 307, + 488, -1, 329, 414, -1, 332, -1, 0, -1, 336, + -1, -1, -1, -1, 341, -1, -1, 344, -1, 262, + -1, 444, 330, -1, -1, -1, -1, -1, -1, -1, + 441, -1, 442, 360, -1, 458, 459, 460, -1, 462, + 463, 349, 453, -1, 455, -1, -1, -1, 41, -1, + 358, 44, -1, 379, -1, -1, 364, 384, 481, 482, + 387, 388, -1, 486, 487, -1, 59, -1, -1, -1, + 397, 0, -1, -1, 382, 401, 319, 488, -1, 322, + -1, -1, 408, 262, -1, -1, 329, 414, -1, 332, + -1, -1, -1, 336, -1, -1, -1, -1, 341, -1, + -1, 344, 41, 42, 43, 0, 45, -1, 47, -1, + -1, 419, 41, -1, 441, 44, 442, 360, 473, 474, + 475, 476, 477, 478, 479, 480, 453, -1, 455, -1, + 59, -1, 41, 42, 43, -1, 45, -1, 47, -1, + 319, 384, -1, 322, 387, 388, 41, 0, -1, 44, + 329, -1, -1, 332, 397, -1, -1, 336, -1, 262, + -1, 488, 341, -1, 59, 344, -1, -1, -1, -1, + -1, 414, -1, -1, -1, -1, 278, -1, 280, -1, + -1, 360, 262, -1, -1, -1, 288, -1, 41, -1, + -1, 44, -1, 262, -1, -1, -1, -1, 441, -1, + 278, -1, 280, -1, -1, 384, 59, -1, 387, 388, + 453, -1, 455, -1, -1, -1, 319, -1, 397, 322, + -1, -1, 280, -1, -1, -1, 329, -1, 286, 332, + -1, -1, -1, 336, -1, 414, -1, -1, 341, 319, + -1, 344, 322, -1, -1, 488, -1, -1, -1, 329, + 319, -1, 332, 322, -1, -1, 336, 360, -1, -1, + 329, 341, 441, 332, 344, -1, -1, 336, -1, 262, + -1, -1, 341, -1, 453, 344, 455, 379, -1, -1, + 360, 384, -1, -1, 387, 388, -1, -1, -1, -1, + -1, 360, -1, -1, 397, -1, -1, -1, -1, 401, + -1, 379, -1, -1, 384, -1, 408, 387, 388, 488, + -1, 414, -1, -1, -1, 384, -1, 397, 387, 388, + -1, -1, 0, 401, -1, -1, 319, -1, 397, 322, + 408, -1, -1, -1, 414, -1, 329, -1, 441, 332, + 442, 280, 306, 336, -1, 414, -1, 286, 341, 313, + 453, 344, 455, 317, 318, -1, -1, -1, 0, -1, + -1, 441, -1, 41, 442, -1, 44, 360, 46, -1, + 0, 280, 441, 453, 338, 455, -1, 286, -1, -1, + -1, 59, -1, 61, 453, 488, 455, -1, -1, -1, + 319, 384, -1, 322, 387, 388, -1, -1, -1, 41, + 329, -1, 44, 332, 397, -1, -1, 336, 488, -1, + 40, 41, 341, -1, 44, 344, -1, 59, -1, 488, + -1, 414, -1, -1, 319, -1, -1, 322, -1, 59, + -1, 360, -1, -1, 329, -1, -1, 332, -1, 403, + -1, 336, -1, -1, -1, -1, 341, -1, 441, 344, + -1, -1, -1, -1, -1, 384, 420, 0, 387, 388, + 453, 91, 455, -1, -1, 360, 319, -1, 397, 322, + -1, 435, -1, -1, 0, 439, 329, -1, -1, 332, + -1, -1, -1, 336, -1, 414, 450, -1, 341, 384, + -1, 344, -1, 388, -1, 488, -1, -1, 41, -1, + -1, 44, 397, -1, -1, 469, -1, 360, -1, -1, + -1, -1, 441, -1, -1, 41, 59, -1, 44, 414, + -1, -1, -1, -1, 453, -1, 455, -1, -1, -1, + -1, 384, -1, 59, -1, 388, -1, -1, -1, 0, + -1, -1, -1, -1, 397, -1, 441, -1, 91, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 453, 488, + -1, 414, -1, -1, -1, 91, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 41, -1, -1, 44, -1, -1, 264, 265, 441, -1, + -1, -1, -1, 488, -1, 273, -1, -1, 59, 277, + 453, 0, 280, -1, -1, -1, -1, 285, -1, -1, + -1, -1, -1, -1, -1, -1, 258, -1, 296, -1, + -1, 299, -1, -1, -1, 303, -1, 305, 258, -1, + 91, -1, -1, -1, -1, 488, -1, 279, -1, -1, + -1, 319, -1, -1, 274, 0, -1, 277, 278, -1, + 280, -1, -1, -1, -1, 285, -1, -1, 288, 301, + 59, -1, 340, 341, -1, 307, -1, -1, 346, 347, + 348, 301, 350, 351, 352, -1, 354, 307, -1, -1, + 310, -1, -1, -1, 0, -1, 41, -1, 330, 44, + -1, 0, -1, -1, -1, -1, 374, -1, 376, -1, + -1, -1, -1, -1, 59, -1, -1, 349, -1, -1, + -1, -1, -1, -1, -1, 258, 358, -1, -1, -1, + -1, -1, 364, -1, -1, 41, -1, -1, 44, 407, + -1, 274, 258, 411, 277, 278, 91, 280, -1, -1, + 382, -1, 285, 59, -1, 288, 424, -1, 274, 379, + 59, 0, 278, -1, 280, -1, -1, -1, 301, 285, + -1, -1, 288, -1, 307, -1, -1, 310, 446, -1, + -1, 401, -1, -1, -1, 301, -1, 419, 408, -1, + -1, 307, 412, 461, 310, -1, -1, -1, -1, 419, + -1, -1, 41, -1, -1, 44, -1, 258, -1, -1, + -1, -1, -1, 481, 482, -1, -1, 437, -1, -1, + 59, -1, 442, 274, -1, -1, -1, 278, -1, 280, + -1, -1, -1, -1, 285, -1, -1, 288, -1, -1, + -1, -1, -1, -1, -1, -1, 379, 467, -1, -1, + 301, 471, -1, -1, -1, -1, 307, -1, -1, 310, + -1, -1, -1, 379, -1, -1, -1, -1, 401, 258, + -1, -1, -1, -1, -1, 408, -1, -1, -1, 412, + -1, -1, -1, -1, -1, 401, 419, -1, -1, -1, + 279, -1, 408, -1, -1, -1, 412, 40, -1, -1, + 43, -1, 45, 419, 437, -1, -1, -1, -1, 442, + -1, -1, 301, 258, -1, 58, -1, -1, 307, -1, + 63, 437, -1, -1, -1, -1, 442, -1, 379, 274, + -1, -1, -1, 278, 467, 280, -1, -1, 471, -1, + 285, 330, 271, 288, -1, -1, -1, -1, -1, -1, + 401, 467, 258, -1, -1, 471, 301, 408, -1, 258, + 349, 412, 307, -1, -1, 310, -1, -1, 419, 358, + -1, 277, 278, 302, 280, 364, -1, -1, -1, 285, + 279, -1, 288, -1, 313, 314, 437, 316, -1, -1, + 319, 442, -1, 382, 40, 301, -1, 43, -1, 45, + -1, 307, 301, -1, 333, -1, -1, -1, 307, -1, + 339, -1, 58, -1, -1, -1, 467, 63, -1, 258, + 471, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 419, 330, -1, -1, 379, -1, -1, -1, 277, 278, + -1, 280, -1, -1, -1, -1, 285, -1, 40, 288, + 349, 43, -1, 45, -1, -1, 401, -1, -1, 358, + -1, -1, 301, 408, -1, 364, 58, 412, 307, -1, + 399, 63, -1, 379, 419, -1, -1, -1, -1, -1, + -1, -1, -1, 382, -1, -1, -1, -1, -1, 418, + -1, -1, 437, -1, -1, 401, -1, 442, -1, -1, + -1, -1, 408, -1, 433, -1, -1, -1, -1, -1, + -1, 417, -1, 419, 443, -1, -1, -1, -1, -1, + 419, -1, 467, -1, 267, 454, 471, -1, -1, -1, + -1, 437, 461, 276, 40, -1, 442, 43, -1, 45, + 379, -1, -1, -1, -1, -1, -1, 290, -1, -1, + 293, -1, 58, 296, 297, -1, -1, 63, -1, -1, + -1, -1, 401, -1, -1, 471, -1, -1, -1, 408, + -1, -1, 315, -1, -1, -1, -1, -1, 1136, 1137, + 419, -1, -1, -1, 327, -1, -1, -1, 1146, 1147, + -1, 1149, 1150, -1, -1, -1, -1, -1, 437, 1157, + 1158, 1159, 1160, 442, 1162, 1163, 1164, 1165, 1166, 1167, + -1, -1, 355, 356, -1, -1, -1, -1, -1, -1, + -1, 267, -1, -1, 367, -1, -1, -1, 371, -1, + 276, -1, 471, -1, -1, -1, 379, -1, -1, -1, + -1, -1, -1, 461, 290, -1, -1, -1, -1, -1, + 296, 297, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, -1, 315, + -1, -1, -1, -1, -1, 267, -1, 40, -1, 422, + 43, 327, 45, -1, 276, -1, -1, -1, -1, -1, + -1, 434, -1, -1, -1, 58, -1, -1, 290, -1, + 63, 444, -1, -1, 296, 297, -1, -1, -1, 355, + 356, -1, -1, -1, -1, 458, 459, 460, 461, 462, + 463, 367, -1, 315, -1, 371, -1, -1, -1, 472, + -1, -1, -1, 379, -1, 327, -1, -1, 481, 482, + 483, 484, 485, 486, 487, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, + -1, 267, 40, 355, 356, 43, -1, 45, -1, -1, + 276, -1, 418, -1, -1, 367, 422, -1, -1, 371, + 58, -1, -1, -1, 290, 63, -1, 379, 434, -1, + 296, 297, -1, -1, -1, -1, -1, -1, 444, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 458, 459, 460, 461, 462, 463, -1, -1, + -1, 327, -1, -1, -1, -1, 472, -1, -1, -1, + 422, -1, -1, -1, -1, 481, 482, 483, 484, 485, + 486, 487, 434, -1, -1, -1, -1, -1, -1, 355, + 356, -1, 444, -1, -1, -1, -1, -1, -1, -1, + -1, 367, -1, -1, -1, 371, 458, 459, 460, 461, + 462, 463, -1, -1, -1, -1, -1, -1, -1, -1, + 472, -1, -1, -1, -1, -1, -1, -1, -1, 481, + 482, 483, 484, 485, 486, 487, -1, 260, -1, -1, + 263, -1, -1, -1, 267, -1, -1, -1, -1, -1, + -1, -1, -1, 276, 40, -1, -1, 43, -1, 45, + 426, -1, -1, -1, -1, -1, -1, 290, 434, -1, + -1, -1, 58, 296, 297, -1, -1, 63, 444, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 458, 459, 460, 461, 462, 463, -1, -1, + -1, -1, -1, -1, 327, -1, 472, -1, -1, -1, + -1, -1, -1, -1, -1, 481, 482, 483, 484, 485, + 486, 487, 260, -1, -1, 263, -1, -1, -1, 267, + -1, -1, 355, 356, -1, -1, -1, 40, 276, -1, + 43, -1, 45, -1, 367, -1, -1, -1, 371, -1, + -1, -1, 290, 461, -1, 58, -1, -1, 296, 297, + 63, -1, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 327, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 426, -1, 40, -1, -1, 43, -1, + 45, 434, -1, -1, -1, -1, -1, 355, 356, -1, + -1, 444, -1, 58, -1, -1, -1, -1, 63, 367, + -1, -1, -1, 371, -1, 458, 459, 460, 461, 462, + 463, -1, -1, -1, -1, -1, -1, -1, -1, 472, + -1, -1, -1, -1, -1, -1, -1, -1, 481, 482, + 483, 484, 485, 486, 487, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, + -1, 267, -1, -1, -1, -1, -1, -1, 426, 40, + 276, -1, 43, -1, 45, -1, 434, -1, -1, -1, + -1, -1, -1, -1, 290, 273, 444, 58, -1, 277, + 296, 297, 63, -1, -1, -1, -1, -1, -1, -1, + 458, 459, 460, 461, 462, 463, -1, -1, 296, -1, + -1, 299, -1, -1, 472, -1, -1, -1, -1, -1, + -1, 327, -1, 481, 482, 483, 484, 485, 486, 487, + -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, + 263, -1, -1, -1, 267, -1, -1, -1, -1, 355, + 356, -1, 340, 276, -1, -1, -1, -1, 346, 347, + 348, 367, 350, 351, 352, 371, 354, 290, -1, -1, + -1, -1, -1, 296, 297, -1, -1, -1, -1, 461, + -1, -1, -1, -1, -1, -1, 374, -1, 376, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 327, 260, -1, -1, 263, -1, + -1, -1, 267, -1, -1, -1, -1, -1, -1, 407, + 426, 276, 40, -1, -1, 43, -1, 45, 434, -1, + -1, -1, 355, 356, -1, 290, 424, -1, 444, -1, + 58, 296, 297, -1, 367, 63, -1, -1, 371, -1, + -1, -1, 458, 459, 460, 461, 462, 463, 446, -1, + -1, -1, -1, -1, -1, -1, 472, -1, 40, -1, + 42, 43, 327, 45, -1, 481, 482, 483, 484, 485, + 486, 487, -1, -1, -1, -1, 58, -1, -1, 260, + -1, 63, 263, 481, 482, -1, 267, -1, -1, -1, + 355, 356, -1, 426, 40, 276, 42, 43, -1, 45, + -1, 434, 367, -1, -1, -1, 371, -1, -1, 290, + 273, 444, 58, -1, 277, 296, 297, 63, -1, -1, + -1, -1, 285, -1, -1, 458, 459, 460, 461, 462, + 463, -1, -1, 296, -1, -1, 299, -1, -1, 472, + -1, -1, -1, -1, -1, -1, 327, -1, 481, 482, + 483, 484, 485, 486, 487, 40, -1, -1, 43, -1, + 45, 426, -1, -1, -1, -1, -1, -1, -1, 434, + -1, -1, -1, 58, 355, 356, -1, 340, 63, 444, + -1, -1, -1, 346, 347, 348, 367, 350, 351, 352, + 371, 354, -1, 458, 459, 460, 461, 462, 463, -1, + -1, -1, -1, -1, -1, -1, -1, 472, -1, -1, + -1, 374, -1, 376, -1, -1, 481, 482, 483, 484, + 485, 486, 487, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 260, -1, -1, 263, -1, 40, -1, 267, + 43, -1, 45, -1, 407, 426, -1, -1, 276, -1, + -1, -1, -1, 434, -1, 58, -1, -1, -1, -1, + 63, 424, 290, 444, -1, -1, -1, -1, 296, 297, + -1, -1, -1, -1, -1, -1, -1, 458, 459, 460, + 461, 462, 463, 446, -1, 267, -1, -1, -1, -1, + -1, 472, -1, -1, 276, -1, -1, -1, 461, 327, + 481, 482, 483, 484, 485, 486, 487, -1, 290, -1, + -1, -1, -1, -1, 296, 297, -1, -1, 481, 482, + -1, 267, -1, -1, -1, -1, -1, 355, 356, -1, + 276, -1, -1, -1, -1, 40, 41, -1, 43, 367, + 45, -1, -1, 371, 290, 327, -1, -1, -1, -1, + 296, 297, -1, 58, -1, -1, -1, -1, 63, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 353, -1, 355, 356, -1, -1, -1, -1, -1, + -1, 327, 267, -1, -1, 367, -1, -1, -1, 371, + 40, 276, -1, 43, -1, 45, -1, -1, 426, -1, + -1, -1, -1, -1, -1, 290, 434, 353, 58, 355, + 356, 296, 297, 63, -1, -1, 444, -1, -1, -1, + -1, 367, -1, -1, -1, 371, -1, -1, -1, -1, + 458, 459, 460, 461, 462, 463, -1, -1, -1, -1, + -1, -1, 327, -1, 472, -1, -1, -1, -1, -1, + -1, -1, 434, 481, 482, 483, 484, 485, 486, 487, + -1, -1, 444, -1, 267, -1, -1, -1, -1, -1, + 355, 356, -1, 276, -1, -1, 458, 459, 460, 461, + 462, 463, 367, -1, -1, -1, 371, 290, 434, -1, + 472, -1, -1, 296, 297, -1, -1, -1, 444, 481, + 482, 483, 484, 485, 486, 487, -1, -1, -1, -1, + -1, -1, 458, 459, 460, 461, 462, 463, -1, -1, + -1, -1, -1, -1, 327, -1, 472, -1, -1, -1, + -1, -1, -1, 418, -1, 481, 482, 483, 484, 485, + 486, 487, -1, -1, -1, -1, -1, -1, -1, 434, + 353, -1, 355, 356, -1, -1, -1, -1, -1, 444, + -1, -1, 267, -1, 367, -1, -1, -1, 371, -1, + -1, 276, -1, 458, 459, 460, 461, 462, 463, -1, + -1, -1, -1, -1, -1, 290, -1, 472, -1, -1, + 40, 296, 297, 43, -1, 45, 481, 482, 483, 484, + 485, 486, 487, -1, -1, -1, -1, -1, 58, -1, + -1, -1, -1, 63, -1, -1, -1, 267, -1, -1, + -1, -1, 327, -1, -1, 40, 276, -1, 43, -1, + 45, 434, -1, -1, -1, -1, -1, -1, -1, -1, + 290, 444, -1, 58, -1, -1, 296, 297, 63, -1, + 355, 356, -1, -1, -1, 458, 459, 460, 461, 462, + 463, -1, 367, -1, -1, -1, 371, -1, -1, 472, + -1, -1, -1, -1, -1, -1, -1, 327, 481, 482, + 483, 484, 485, 486, 487, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 261, -1, -1, -1, + -1, -1, -1, -1, -1, 355, 356, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 367, 283, -1, + -1, 371, -1, -1, -1, -1, 291, -1, -1, 434, + -1, -1, -1, 298, -1, 300, -1, 302, -1, 444, + -1, -1, 307, -1, -1, -1, -1, -1, -1, 314, + -1, -1, -1, 458, 459, 460, 461, 462, 463, -1, + -1, -1, -1, 328, -1, -1, -1, 472, 40, -1, + -1, 43, -1, 45, 339, -1, 481, 482, 483, 484, + 485, 486, 487, -1, 434, -1, 58, -1, -1, -1, + -1, 63, -1, -1, 444, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 455, -1, -1, 458, 459, + 460, 461, 462, 463, -1, -1, -1, 267, -1, 273, + -1, -1, 472, 277, -1, -1, 276, -1, -1, -1, + -1, 481, 482, 483, 484, 485, 486, 487, 292, -1, + 290, 406, 296, -1, -1, 299, 296, 297, 413, -1, + -1, 416, 267, 418, 419, -1, -1, -1, -1, -1, + -1, 276, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 290, -1, 327, 443, -1, + -1, 296, 297, 41, 42, 43, 340, 45, -1, 47, + -1, -1, 346, 347, 348, -1, 350, 351, 352, -1, + 354, -1, 60, 61, 62, 355, 356, -1, -1, -1, + -1, -1, 327, -1, -1, -1, -1, 367, -1, -1, + 374, 371, 376, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 355, 356, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 367, 407, -1, -1, 371, -1, 412, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 424, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 434, -1, -1, -1, -1, -1, + -1, -1, 446, -1, 444, 267, 42, 43, -1, 45, + -1, 47, -1, -1, 276, 455, -1, -1, 458, 459, + 460, 461, 462, 463, 60, 61, 62, -1, 290, 434, + -1, -1, 472, -1, 296, 297, -1, 481, 482, 444, + -1, 481, 482, 483, 484, 485, 486, 487, -1, -1, + -1, -1, -1, 458, 459, 460, 461, 462, 463, -1, + -1, -1, -1, -1, -1, 327, -1, 472, -1, -1, + -1, -1, -1, -1, -1, -1, 481, 482, 483, 484, + 485, 486, 487, -1, 273, -1, -1, -1, 277, -1, + -1, -1, -1, 355, 356, -1, -1, -1, -1, -1, + -1, -1, -1, 292, -1, 367, -1, 296, -1, 371, + 299, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 272, -1, -1, -1, -1, -1, + -1, -1, 280, -1, -1, -1, -1, -1, 286, -1, + -1, 289, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 340, -1, -1, -1, -1, -1, 346, 347, 348, + -1, 350, 351, 352, -1, 354, -1, -1, -1, -1, + -1, -1, 434, -1, -1, -1, -1, 325, -1, -1, + -1, -1, 444, -1, -1, 374, 334, 376, -1, -1, + -1, -1, -1, -1, 342, -1, 458, 459, 460, 461, + 462, 463, -1, -1, -1, -1, -1, -1, -1, -1, + 472, -1, -1, 361, -1, 363, -1, -1, 407, 481, + 482, 483, 484, 485, 486, 487, -1, -1, -1, 377, + -1, 379, 380, 381, -1, 424, 272, -1, -1, -1, + -1, -1, -1, -1, 280, 273, -1, -1, -1, 277, + 286, -1, -1, 289, -1, -1, -1, 446, -1, -1, + -1, 273, -1, -1, -1, 277, -1, -1, 296, -1, + -1, 299, -1, -1, -1, -1, -1, -1, -1, -1, + 292, -1, 430, -1, 296, -1, -1, 299, -1, 325, + -1, -1, 481, 482, -1, -1, -1, -1, 334, -1, + -1, -1, -1, -1, -1, -1, 342, 273, -1, -1, + -1, 277, 340, -1, -1, -1, -1, -1, 346, 347, + 348, -1, 350, 351, 352, 361, 354, 363, 340, -1, + 296, -1, -1, 299, 346, 347, 348, -1, 350, 351, + 352, 377, 354, 379, 380, 381, 374, -1, 376, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, + -1, -1, 374, -1, 376, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 340, -1, -1, -1, -1, 407, + 346, 347, 348, -1, 350, 351, 352, -1, 354, -1, + 302, -1, -1, -1, 430, 407, 424, 309, -1, -1, + 271, 313, 314, -1, 316, -1, -1, 319, 374, -1, + 376, -1, 424, -1, -1, -1, -1, -1, 446, -1, + -1, 333, -1, -1, -1, -1, -1, 339, -1, -1, + -1, 302, -1, 461, 446, -1, -1, -1, 309, -1, + -1, 407, 313, 314, -1, 316, -1, -1, 319, -1, + -1, -1, -1, 481, 482, -1, -1, -1, 424, -1, + -1, -1, 333, -1, -1, -1, -1, -1, 339, 481, + 482, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 446, -1, -1, -1, -1, -1, -1, 399, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 418, -1, -1, -1, + -1, -1, -1, -1, -1, 481, 482, -1, -1, -1, + -1, 433, -1, -1, -1, -1, -1, -1, 399, -1, + -1, 443, -1, -1, -1, -1, -1, -1, -1, -1, + 452, -1, 454, -1, -1, -1, -1, 418, -1, 461, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 433, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 443, -1, -1, -1, -1, -1, -1, -1, + -1, 452, -1, 454, -1, -1, -1, -1, -1, -1, + 461, +}; +#define YYFINAL 17 +#ifndef YYDEBUG +#define YYDEBUG 0 #endif -# define DEBUG 298 -# define DECIMAL 299 -# define DECLARE 300 -# define DEFAULT 301 -# define DELETE 302 -# define DESC 303 -# define DISTINCT 304 -# define DO 305 -# define DOMAIN 306 -# define DROP 307 -# define ELSE 308 -# define END 309 -# define ENTRY_POINT 310 -# define EQL 311 -# define ESCAPE 312 -# define EXCEPTION 313 -# define EXECUTE 314 -# define EXISTS 315 -# define EXIT 316 -# define EXTERNAL 317 -# define FILTER 318 -# define FOR 319 -# define FOREIGN 320 -# define FROM 321 -# define FULL 322 -# define FUNCTION 323 -# define GDSCODE 324 -# define GEQ 325 -# define GENERATOR 326 -# define GEN_ID 327 -# define GRANT 328 -# define GROUP 329 -# define GROUP_COMMIT_WAIT 330 -# define GTR 331 -# define HAVING 332 -# define IF 333 -# define IN 334 -# define INACTIVE 335 -# define INNER 336 -# define INPUT_TYPE 337 -# define INDEX 338 -# define INSERT 339 -# define INTEGER 340 -# define INTO 341 -# define IS 342 -# define ISOLATION 343 -# define JOIN 344 -# define KEY 345 -# define KW_CHAR 346 -# define KW_DEC 347 -# define KW_DOUBLE 348 -# define KW_FILE 349 -# define KW_FLOAT 350 -# define KW_INT 351 -# define KW_LONG 352 -# define KW_NULL 353 -# define KW_NUMERIC 354 -# define KW_UPPER 355 -# define KW_VALUE 356 -# define LENGTH 357 -# define LOGFILE 358 -# define LPAREN 359 -# define LEFT 360 -# define LEQ 361 -# define LEVEL 362 -# define LIKE 363 -# define LOG_BUF_SIZE 364 -# define LSS 365 -# define MANUAL 366 -# define MAXIMUM 367 -# define MAX_SEGMENT 368 -# define MERGE 369 -# define MESSAGE 370 -# define MINIMUM 371 -# define MODULE_NAME 372 -# define NAMES 373 -# define NATIONAL 374 -# define NATURAL 375 -# define NCHAR 376 -# define NEQ 377 -# define NO 378 -# define NOT 379 -# define NOT_GTR 380 -# define NOT_LSS 381 -# define NUM_LOG_BUFS 382 -# define OF 383 -# define ON 384 -# define ONLY 385 -# define OPTION 386 -# define OR 387 -# define ORDER 388 -# define OUTER 389 -# define OUTPUT_TYPE 390 -# define OVERFLOW 391 -# define PAGE 392 -# define PAGES 393 -# define PAGE_SIZE 394 -# define PARAMETER 395 -# define PASSWORD 396 -# define PLAN 397 -# define POSITION 398 -# define POST_EVENT 399 -# define PRECISION 400 -# define PRIMARY 401 -# define PRIVILEGES 402 -# define PROCEDURE 403 -# define PROTECTED 404 -# define RAW_PARTITIONS 405 -# define READ 406 -# define REAL 407 -# define REFERENCES 408 -# define RESERVING 409 -# define RETAIN 410 -# define RETURNING_VALUES 411 -# define RETURNS 412 -# define REVOKE 413 -# define RIGHT 414 -# define RPAREN 415 -# define ROLLBACK 416 -# define SEGMENT 417 -# define SELECT 418 -# define SET 419 -# define SHADOW 420 -# define SHARED 421 -# define SINGULAR 422 -# define SIZE 423 -# define SMALLINT 424 -# define SNAPSHOT 425 -# define SOME 426 -# define SORT 427 -# define SQLCODE 428 -# define STABILITY 429 -# define STARTING 430 -# define STATISTICS 431 -# define SUB_TYPE 432 -# define SUSPEND 433 -# define SUM 434 -# define TABLE 435 -# define THEN 436 -# define TO 437 -# define TRANSACTION 438 -# define TRIGGER 439 -# define UNCOMMITTED 440 -# define UNION 441 -# define UNIQUE 442 -# define UPDATE 443 -# define USER 444 -# define VALUES 445 -# define VARCHAR 446 -# define VARIABLE 447 -# define VARYING 448 -# define VERSION 449 -# define VIEW 450 -# define WAIT 451 -# define WHEN 452 -# define WHERE 453 -# define WHILE 454 -# define WITH 455 -# define WORK 456 -# define WRITE 457 -# define FLOAT 458 -# define NUMBER 459 -# define NUMERIC 460 -# define SYMBOL 461 -# define STRING 462 -# define INTRODUCER 463 -# define ACTION 464 -# define ADMIN 465 -# define CASCADE 466 -# define FREE_IT 467 -# define RESTRICT 468 -# define ROLE 469 -# define COLUMN 470 -# define TYPE 471 -# define EXTRACT 472 -# define YEAR 473 -# define MONTH 474 -# define DAY 475 -# define HOUR 476 -# define MINUTE 477 -# define SECOND 478 -# define WEEKDAY 479 -# define YEARDAY 480 -# define TIME 481 -# define TIMESTAMP 482 -# define CURRENT_DATE 483 -# define CURRENT_TIME 484 -# define CURRENT_TIMESTAMP 485 -# define NUMBER64BIT 486 -# define SCALEDINT 487 - -#ifdef __STDC__ -#include -#include -#else -#include -#include +#define YYMAXTOKEN 490 +#if YYDEBUG +char *yyname[] = { +"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,"'('","')'","'*'","'+'","','","'-'","'.'","'/'",0,0,0,0,0,0,0,0,0,0, +"':'","';'","'<'","'='","'>'","'?'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,"'['",0,"']'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"ACTIVE","ADD","AFTER","ALL","ALTER","AND","ANY", +"AS","ASC","AT","AVG","AUTO","BASENAME","BEFORE","BEGIN","BETWEEN","BLOB","BY", +"CACHE","CAST","CHARACTER","CHECK","CHECK_POINT_LEN","COLLATE","COLLATION", +"COMMA","COMMIT","COMMITTED","COMPUTED","CONCATENATE","CONDITIONAL", +"CONSTRAINT","CONTAINING","COUNT","CREATE","CSTRING","CURRENT","CURSOR", +"DATABASE","DATE","DB_KEY","DEBUG","DECIMAL","DECLARE","DEFAULT","DELETE", +"DESC","DISTINCT","DO","DOMAIN","DROP","ELSE","END","ENTRY_POINT","EQL", +"ESCAPE","EXCEPTION","EXECUTE","EXISTS","EXIT","EXTERNAL","FILTER","FOR", +"FOREIGN","FROM","FULL","FUNCTION","GDSCODE","GEQ","GENERATOR","GEN_ID","GRANT", +"GROUP","GROUP_COMMIT_WAIT","GTR","HAVING","IF","IN","INACTIVE","INNER", +"INPUT_TYPE","INDEX","INSERT","INTEGER","INTO","IS","ISOLATION","JOIN","KEY", +"KW_CHAR","KW_DEC","KW_DOUBLE","KW_FILE","KW_FLOAT","KW_INT","KW_LONG", +"KW_NULL","KW_NUMERIC","KW_UPPER","KW_VALUE","LENGTH","LOGFILE","LPAREN","LEFT", +"LEQ","LEVEL","LIKE","LOG_BUF_SIZE","LSS","MANUAL","MAXIMUM","MAX_SEGMENT", +"MERGE","MESSAGE","MINIMUM","MODULE_NAME","NAMES","NATIONAL","NATURAL","NCHAR", +"NEQ","NO","NOT","NOT_GTR","NOT_LSS","NUM_LOG_BUFS","OF","ON","ONLY","OPTION", +"OR","ORDER","OUTER","OUTPUT_TYPE","OVERFLOW","PAGE","PAGES","PAGE_SIZE", +"PARAMETER","PASSWORD","PLAN","POSITION","POST_EVENT","PRECISION","PRIMARY", +"PRIVILEGES","PROCEDURE","PROTECTED","RAW_PARTITIONS","READ","REAL", +"REFERENCES","RESERVING","RETAIN","RETURNING_VALUES","RETURNS","REVOKE","RIGHT", +"RPAREN","ROLLBACK","SEGMENT","SELECT","SET","SHADOW","SHARED","SINGULAR", +"SIZE","SMALLINT","SNAPSHOT","SOME","SORT","SQLCODE","STABILITY","STARTING", +"STATISTICS","SUB_TYPE","SUSPEND","SUM","TABLE","THEN","TO","TRANSACTION", +"TRIGGER","UNCOMMITTED","UNION","UNIQUE","UPDATE","USER","VALUES","VARCHAR", +"VARIABLE","VARYING","VERSION","VIEW","WAIT","WHEN","WHERE","WHILE","WITH", +"WORK","WRITE","FLOAT","NUMBER","NUMERIC","SYMBOL","STRING","INTRODUCER", +"ACTION","ADMIN","CASCADE","FREE_IT","RESTRICT","ROLE","COLUMN","TYPE", +"EXTRACT","YEAR","MONTH","DAY","HOUR","MINUTE","SECOND","WEEKDAY","YEARDAY", +"TIME","TIMESTAMP","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP", +"NUMBER64BIT","SCALEDINT","LIMIT","INT64","SUBSTRING", +}; +char *yyrule[] = { +"$accept : top", +"top : statement", +"top : statement ';'", +"statement : alter", +"statement : blob", +"statement : commit", +"statement : create", +"statement : declare", +"statement : delete", +"statement : drop", +"statement : grant", +"statement : insert", +"statement : invoke_procedure", +"statement : revoke", +"statement : rollback", +"statement : select", +"statement : set", +"statement : update", +"statement : DEBUG signed_short_integer", +"grant : GRANT privileges ON prot_table_name TO user_grantee_list grant_option", +"grant : GRANT proc_privileges ON PROCEDURE simple_proc_name TO user_grantee_list grant_option", +"grant : GRANT privileges ON prot_table_name TO grantee_list", +"grant : GRANT proc_privileges ON PROCEDURE simple_proc_name TO grantee_list", +"grant : GRANT role_name_list TO role_grantee_list role_admin_option", +"prot_table_name : simple_table_name", +"prot_table_name : TABLE simple_table_name", +"privileges : ALL", +"privileges : ALL PRIVILEGES", +"privileges : privilege_list", +"privilege_list : privilege", +"privilege_list : privilege_list ',' privilege", +"proc_privileges : EXECUTE", +"privilege : SELECT", +"privilege : INSERT", +"privilege : DELETE", +"privilege : UPDATE column_parens_opt", +"privilege : REFERENCES column_parens_opt", +"grant_option : WITH GRANT OPTION", +"grant_option :", +"role_admin_option : WITH ADMIN OPTION", +"role_admin_option :", +"simple_proc_name : symbol_procedure_name", +"revoke : REVOKE rev_grant_option privileges ON prot_table_name FROM user_grantee_list", +"revoke : REVOKE rev_grant_option proc_privileges ON PROCEDURE simple_proc_name FROM user_grantee_list", +"revoke : REVOKE privileges ON prot_table_name FROM user_grantee_list", +"revoke : REVOKE proc_privileges ON PROCEDURE simple_proc_name FROM user_grantee_list", +"revoke : REVOKE privileges ON prot_table_name FROM grantee_list", +"revoke : REVOKE proc_privileges ON PROCEDURE simple_proc_name FROM grantee_list", +"revoke : REVOKE role_name_list FROM role_grantee_list", +"rev_grant_option : GRANT OPTION FOR", +"grantee_list : grantee", +"grantee_list : grantee_list ',' grantee", +"grantee_list : grantee_list ',' user_grantee", +"grantee_list : user_grantee_list ',' grantee", +"grantee : PROCEDURE symbol_procedure_name", +"grantee : TRIGGER symbol_trigger_name", +"grantee : VIEW symbol_view_name", +"user_grantee_list : user_grantee", +"user_grantee_list : user_grantee_list ',' user_grantee", +"user_grantee : symbol_user_name", +"user_grantee : USER symbol_user_name", +"user_grantee : GROUP symbol_user_name", +"role_name_list : role_name", +"role_name_list : role_name_list ',' role_name", +"role_name : symbol_role_name", +"role_grantee_list : role_grantee", +"role_grantee_list : role_grantee_list ',' role_grantee", +"role_grantee : symbol_user_name", +"role_grantee : USER symbol_user_name", +"declare : DECLARE declare_clause", +"declare_clause : FILTER filter_decl_clause", +"declare_clause : EXTERNAL FUNCTION udf_decl_clause", +"udf_decl_clause : symbol_UDF_name arg_desc_list1 RETURNS return_value1 ENTRY_POINT sql_string MODULE_NAME sql_string", +"udf_data_type : simple_type", +"udf_data_type : BLOB", +"udf_data_type : CSTRING '(' pos_short_integer ')' charset_clause", +"arg_desc_list1 :", +"arg_desc_list1 : arg_desc_list", +"arg_desc_list1 : '(' arg_desc_list ')'", +"arg_desc_list : arg_desc", +"arg_desc_list : arg_desc_list ',' arg_desc", +"arg_desc : init_data_type udf_data_type", +"return_value1 : return_value", +"return_value1 : '(' return_value ')'", +"return_value : init_data_type udf_data_type", +"return_value : init_data_type udf_data_type FREE_IT", +"return_value : init_data_type udf_data_type BY KW_VALUE", +"return_value : PARAMETER pos_short_integer", +"filter_decl_clause : symbol_filter_name INPUT_TYPE blob_subtype OUTPUT_TYPE blob_subtype ENTRY_POINT sql_string MODULE_NAME sql_string", +"create : CREATE create_clause", +"create_clause : EXCEPTION symbol_exception_name sql_string", +"create_clause : unique_opt order_direction INDEX symbol_index_name ON simple_table_name index_definition", +"create_clause : PROCEDURE procedure_clause", +"create_clause : TABLE table_clause", +"create_clause : TRIGGER def_trigger_clause", +"create_clause : VIEW view_clause", +"create_clause : GENERATOR generator_clause", +"create_clause : DATABASE db_clause", +"create_clause : DOMAIN domain_clause", +"create_clause : SHADOW shadow_clause", +"create_clause : ROLE role_clause", +"unique_opt : UNIQUE", +"unique_opt :", +"index_definition : column_list", +"index_definition : column_parens", +"index_definition : computed_by '(' begin_trigger value end_trigger ')'", +"shadow_clause : pos_short_integer manual_auto conditional sql_string first_file_length sec_shadow_files", +"manual_auto : MANUAL", +"manual_auto : AUTO", +"manual_auto :", +"conditional :", +"conditional : CONDITIONAL", +"first_file_length :", +"first_file_length : LENGTH equals long_integer page_noise", +"sec_shadow_files :", +"sec_shadow_files : db_file_list", +"db_file_list : db_file", +"db_file_list : db_file_list db_file", +"domain_clause : column_def_name as_opt data_type begin_trigger domain_default_opt end_trigger domain_constraint_clause collate_clause", +"as_opt : AS", +"as_opt :", +"domain_default_opt : DEFAULT begin_trigger default_value", +"domain_default_opt :", +"domain_constraint_clause :", +"domain_constraint_clause : domain_constraint_list", +"domain_constraint_list : domain_constraint_def", +"domain_constraint_list : domain_constraint_list domain_constraint_def", +"domain_constraint_def : domain_constraint", +"domain_constraint : null_constraint", +"domain_constraint : domain_check_constraint", +"null_constraint : NOT KW_NULL", +"domain_check_constraint : begin_trigger CHECK '(' search_condition ')' end_trigger", +"generator_clause : symbol_generator_name", +"role_clause : symbol_role_name", +"db_clause : db_name db_initial_desc1 db_rem_desc1", +"equals :", +"equals : '='", +"db_name : sql_string", +"db_initial_desc1 :", +"db_initial_desc1 : db_initial_desc", +"db_initial_desc : db_initial_option", +"db_initial_desc : db_initial_desc db_initial_option", +"db_initial_option : PAGE_SIZE equals pos_short_integer", +"db_initial_option : LENGTH equals long_integer page_noise", +"db_initial_option : USER sql_string", +"db_initial_option : PASSWORD sql_string", +"db_initial_option : SET NAMES sql_string", +"db_rem_desc1 :", +"db_rem_desc1 : db_rem_desc", +"db_rem_desc : db_rem_option", +"db_rem_desc : db_rem_desc db_rem_option", +"db_rem_option : db_file", +"db_rem_option : db_log", +"db_rem_option : db_log_option", +"db_rem_option : DEFAULT CHARACTER SET symbol_character_set_name", +"db_log_option : GROUP_COMMIT_WAIT equals long_integer", +"db_log_option : CHECK_POINT_LEN equals long_integer", +"db_log_option : NUM_LOG_BUFS equals pos_short_integer", +"db_log_option : LOG_BUF_SIZE equals unsigned_short_integer", +"db_log : db_default_log_spec", +"db_log : db_rem_log_spec", +"db_rem_log_spec : LOGFILE '(' logfiles ')' OVERFLOW logfile_desc", +"db_rem_log_spec : LOGFILE BASENAME logfile_desc", +"db_default_log_spec : LOGFILE", +"db_file : file1 sql_string file_desc1", +"logfiles : logfile_desc", +"logfiles : logfiles ',' logfile_desc", +"logfile_desc : logfile_name logfile_attrs", +"logfile_name : sql_string", +"logfile_attrs :", +"logfile_attrs : logfile_attrs logfile_attr", +"logfile_attr : SIZE equals long_integer", +"file1 : KW_FILE", +"file_desc1 :", +"file_desc1 : file_desc", +"file_desc : file_clause", +"file_desc : file_desc file_clause", +"file_clause : STARTING file_clause_noise long_integer", +"file_clause : LENGTH equals long_integer page_noise", +"file_clause_noise :", +"file_clause_noise : AT", +"file_clause_noise : AT PAGE", +"page_noise :", +"page_noise : PAGE", +"page_noise : PAGES", +"table_clause : simple_table_name external_file '(' table_elements ')'", +"external_file : EXTERNAL KW_FILE sql_string", +"external_file : EXTERNAL sql_string", +"external_file :", +"table_elements : table_element", +"table_elements : table_elements ',' table_element", +"table_element : column_def", +"table_element : table_constraint_definition", +"column_def : column_def_name data_type_or_domain default_opt end_trigger column_constraint_clause collate_clause", +"column_def : column_def_name non_array_type def_computed", +"column_def : column_def_name def_computed", +"def_computed : computed_by '(' begin_trigger value end_trigger ')'", +"computed_by : COMPUTED BY", +"computed_by : COMPUTED", +"data_type_or_domain : data_type begin_trigger", +"data_type_or_domain : simple_column_name begin_string", +"collate_clause : COLLATE symbol_collation_name", +"collate_clause :", +"column_def_name : column_name", +"simple_column_def_name : simple_column_name", +"data_type_descriptor : init_data_type data_type", +"init_data_type :", +"default_opt : DEFAULT default_value", +"default_opt :", +"default_value : constant", +"default_value : USER", +"default_value : null_value", +"default_value : datetime_value_expression", +"column_constraint_clause :", +"column_constraint_clause : column_constraint_list", +"column_constraint_list : column_constraint_def", +"column_constraint_list : column_constraint_list column_constraint_def", +"column_constraint_def : constraint_name_opt column_constraint", +"column_constraint : NOT KW_NULL", +"column_constraint : REFERENCES simple_table_name column_parens_opt referential_trigger_action", +"column_constraint : check_constraint", +"column_constraint : UNIQUE", +"column_constraint : PRIMARY KEY", +"table_constraint_definition : constraint_name_opt table_constraint", +"constraint_name_opt : CONSTRAINT symbol_constraint_name", +"constraint_name_opt :", +"table_constraint : unique_constraint", +"table_constraint : primary_constraint", +"table_constraint : referential_constraint", +"table_constraint : check_constraint", +"unique_constraint : UNIQUE column_parens", +"primary_constraint : PRIMARY KEY column_parens", +"referential_constraint : FOREIGN KEY column_parens REFERENCES simple_table_name column_parens_opt referential_trigger_action", +"check_constraint : begin_trigger CHECK '(' search_condition ')' end_trigger", +"referential_trigger_action : update_rule", +"referential_trigger_action : delete_rule", +"referential_trigger_action : delete_rule update_rule", +"referential_trigger_action : update_rule delete_rule", +"referential_trigger_action :", +"update_rule : ON UPDATE referential_action", +"delete_rule : ON DELETE referential_action", +"referential_action : CASCADE", +"referential_action : SET DEFAULT", +"referential_action : SET KW_NULL", +"referential_action : NO ACTION", +"procedure_clause : symbol_procedure_name input_parameters output_parameters AS begin_string var_declaration_list full_proc_block end_trigger", +"alter_procedure_clause : symbol_procedure_name input_parameters output_parameters AS begin_string var_declaration_list full_proc_block end_trigger", +"input_parameters : '(' proc_parameters ')'", +"input_parameters :", +"output_parameters : RETURNS input_parameters", +"output_parameters :", +"proc_parameters : proc_parameter", +"proc_parameters : proc_parameters ',' proc_parameter", +"proc_parameter : simple_column_def_name non_array_type", +"var_declaration_list : var_declarations", +"var_declaration_list :", +"var_declarations : var_declaration", +"var_declarations : var_declarations var_declaration", +"var_declaration : DECLARE VARIABLE column_def_name non_array_type ';'", +"proc_block : proc_statement", +"proc_block : full_proc_block", +"full_proc_block : BEGIN proc_statements END", +"full_proc_block : BEGIN proc_statements excp_statements END", +"proc_statements : proc_block", +"proc_statements : proc_statements proc_block", +"proc_statement : assignment ';'", +"proc_statement : delete ';'", +"proc_statement : EXCEPTION symbol_exception_name ';'", +"proc_statement : exec_procedure", +"proc_statement : for_select", +"proc_statement : if_then_else", +"proc_statement : insert ';'", +"proc_statement : POST_EVENT value ';'", +"proc_statement : singleton_select", +"proc_statement : update ';'", +"proc_statement : while", +"proc_statement : SUSPEND ';'", +"proc_statement : EXIT ';'", +"exec_procedure : EXECUTE PROCEDURE symbol_procedure_name proc_inputs proc_outputs ';'", +"for_select : FOR select INTO variable_list cursor_def DO proc_block", +"if_then_else : IF '(' search_condition ')' THEN proc_block ELSE proc_block", +"if_then_else : IF '(' search_condition ')' THEN proc_block", +"singleton_select : select INTO variable_list ';'", +"variable : ':' symbol_variable_name", +"proc_inputs : var_const_list", +"proc_inputs : '(' var_const_list ')'", +"proc_inputs :", +"proc_outputs : RETURNING_VALUES variable_list", +"proc_outputs : RETURNING_VALUES '(' variable_list ')'", +"proc_outputs :", +"var_const_list : variable", +"var_const_list : constant", +"var_const_list : column_name", +"var_const_list : null_value", +"var_const_list : var_const_list ',' variable", +"var_const_list : var_const_list ',' constant", +"var_const_list : var_const_list ',' column_name", +"var_const_list : var_const_list ',' null_value", +"variable_list : variable", +"variable_list : column_name", +"variable_list : variable_list ',' column_name", +"variable_list : variable_list ',' variable", +"while : WHILE '(' search_condition ')' DO proc_block", +"cursor_def : AS CURSOR symbol_cursor_name", +"cursor_def :", +"excp_statements : excp_statement", +"excp_statements : excp_statements excp_statement", +"excp_statement : WHEN errors DO proc_block", +"errors : err", +"errors : errors ',' err", +"err : SQLCODE signed_short_integer", +"err : GDSCODE symbol_gdscode_name", +"err : EXCEPTION symbol_exception_name", +"err : ANY", +"invoke_procedure : EXECUTE PROCEDURE symbol_procedure_name prc_inputs", +"prc_inputs : prm_const_list", +"prc_inputs : '(' prm_const_list ')'", +"prc_inputs :", +"prm_const_list : parameter", +"prm_const_list : constant", +"prm_const_list : null_value", +"prm_const_list : prm_const_list ',' parameter", +"prm_const_list : prm_const_list ',' constant", +"prm_const_list : prm_const_list ',' null_value", +"view_clause : symbol_view_name column_parens_opt AS begin_string union_view check_opt end_string", +"union_view : union_view_expr", +"union_view_expr : select_view_expr", +"union_view_expr : union_view_expr UNION select_view_expr", +"union_view_expr : union_view_expr UNION ALL select_view_expr", +"select_view_expr : SELECT distinct_clause select_list from_view_clause where_clause group_clause having_clause plan_clause", +"from_view_clause : FROM from_view_list", +"from_view_list : view_table", +"from_view_list : from_view_list ',' view_table", +"view_table : joined_view_table", +"view_table : table_name", +"joined_view_table : view_table join_type JOIN view_table ON search_condition", +"joined_view_table : '(' joined_view_table ')'", +"begin_string :", +"end_string :", +"begin_trigger :", +"end_trigger :", +"check_opt : WITH CHECK OPTION", +"check_opt :", +"def_trigger_clause : symbol_trigger_name FOR simple_table_name trigger_active trigger_type trigger_position begin_trigger trigger_action end_trigger", +"trigger_active : ACTIVE", +"trigger_active : INACTIVE", +"trigger_active :", +"trigger_type : BEFORE INSERT", +"trigger_type : AFTER INSERT", +"trigger_type : BEFORE UPDATE", +"trigger_type : AFTER UPDATE", +"trigger_type : BEFORE DELETE", +"trigger_type : AFTER DELETE", +"trigger_position : POSITION nonneg_short_integer", +"trigger_position :", +"trigger_action : AS begin_trigger var_declaration_list full_proc_block", +"alter : ALTER alter_clause", +"alter_clause : EXCEPTION symbol_exception_name sql_string", +"alter_clause : TABLE simple_table_name alter_ops", +"alter_clause : TRIGGER alter_trigger_clause", +"alter_clause : PROCEDURE alter_procedure_clause", +"alter_clause : DATABASE init_alter_db alter_db", +"alter_clause : DOMAIN alter_column_name alter_domain_ops", +"alter_clause : INDEX alter_index_clause", +"alter_domain_ops : alter_domain_op", +"alter_domain_ops : alter_domain_ops alter_domain_op", +"alter_domain_op : SET begin_string default_opt end_trigger", +"alter_domain_op : ADD CONSTRAINT domain_check_constraint", +"alter_domain_op : ADD domain_check_constraint", +"alter_domain_op : DROP DEFAULT", +"alter_domain_op : DROP CONSTRAINT", +"alter_domain_op : TO simple_column_name", +"alter_domain_op : TYPE init_data_type non_array_type", +"alter_ops : alter_op", +"alter_ops : alter_ops ',' alter_op", +"alter_op : DROP simple_column_name drop_behaviour", +"alter_op : DROP CONSTRAINT symbol_constraint_name", +"alter_op : ADD column_def", +"alter_op : ADD table_constraint_definition", +"alter_op : col_opt simple_column_name POSITION nonneg_short_integer", +"alter_op : col_opt alter_column_name TO simple_column_name", +"alter_op : col_opt alter_col_name TYPE alter_data_type_or_domain end_trigger", +"alter_column_name : keyword_or_column", +"keyword_or_column : COLUMN", +"keyword_or_column : TYPE", +"keyword_or_column : EXTRACT", +"keyword_or_column : YEAR", +"keyword_or_column : MONTH", +"keyword_or_column : DAY", +"keyword_or_column : HOUR", +"keyword_or_column : MINUTE", +"keyword_or_column : SECOND", +"keyword_or_column : WEEKDAY", +"keyword_or_column : YEARDAY", +"keyword_or_column : TIME", +"keyword_or_column : TIMESTAMP", +"keyword_or_column : CURRENT_DATE", +"keyword_or_column : CURRENT_TIME", +"keyword_or_column : CURRENT_TIMESTAMP", +"keyword_or_column : SYMBOL", +"col_opt : ALTER", +"col_opt : ALTER COLUMN", +"alter_data_type_or_domain : non_array_type begin_trigger", +"alter_data_type_or_domain : simple_column_name begin_string", +"alter_col_name : simple_column_name", +"drop_behaviour : RESTRICT", +"drop_behaviour : CASCADE", +"drop_behaviour :", +"alter_index_clause : symbol_index_name ACTIVE", +"alter_index_clause : symbol_index_name INACTIVE", +"init_alter_db :", +"alter_db : db_alter_clause", +"alter_db : alter_db db_alter_clause", +"db_alter_clause : ADD db_file_list", +"db_alter_clause : DROP LOGFILE", +"db_alter_clause : SET db_log_option_list", +"db_alter_clause : ADD db_log", +"db_log_option_list : db_log_option", +"db_log_option_list : db_log_option_list ',' db_log_option", +"alter_trigger_clause : symbol_trigger_name trigger_active new_trigger_type trigger_position begin_trigger new_trigger_action end_trigger", +"new_trigger_type : trigger_type", +"new_trigger_type :", +"new_trigger_action : trigger_action", +"new_trigger_action :", +"drop : DROP drop_clause", +"drop_clause : EXCEPTION symbol_exception_name", +"drop_clause : INDEX symbol_index_name", +"drop_clause : PROCEDURE symbol_procedure_name", +"drop_clause : TABLE symbol_table_name", +"drop_clause : TRIGGER symbol_trigger_name", +"drop_clause : VIEW symbol_view_name", +"drop_clause : FILTER symbol_filter_name", +"drop_clause : DOMAIN symbol_domain_name", +"drop_clause : EXTERNAL FUNCTION symbol_UDF_name", +"drop_clause : SHADOW pos_short_integer", +"drop_clause : ROLE symbol_role_name", +"data_type : non_array_type", +"data_type : array_type", +"non_array_type : simple_type", +"non_array_type : blob_type", +"array_type : non_charset_simple_type '[' array_spec ']'", +"array_type : character_type '[' array_spec ']' charset_clause", +"array_spec : array_range", +"array_spec : array_spec ',' array_range", +"array_range : signed_long_integer", +"array_range : signed_long_integer ':' signed_long_integer", +"simple_type : non_charset_simple_type", +"simple_type : character_type charset_clause", +"non_charset_simple_type : national_character_type", +"non_charset_simple_type : numeric_type", +"non_charset_simple_type : float_type", +"non_charset_simple_type : integer_keyword", +"non_charset_simple_type : SMALLINT", +"non_charset_simple_type : DATE", +"non_charset_simple_type : TIME", +"non_charset_simple_type : TIMESTAMP", +"integer_keyword : INTEGER", +"integer_keyword : KW_INT", +"blob_type : BLOB blob_subtype blob_segsize charset_clause", +"blob_type : BLOB '(' unsigned_short_integer ')'", +"blob_type : BLOB '(' unsigned_short_integer ',' signed_short_integer ')'", +"blob_type : BLOB '(' ',' signed_short_integer ')'", +"blob_segsize : SEGMENT SIZE unsigned_short_integer", +"blob_segsize :", +"blob_subtype : SUB_TYPE signed_short_integer", +"blob_subtype : SUB_TYPE symbol_blob_subtype_name", +"blob_subtype :", +"charset_clause : CHARACTER SET symbol_character_set_name", +"charset_clause :", +"national_character_type : national_character_keyword '(' pos_short_integer ')'", +"national_character_type : national_character_keyword", +"national_character_type : national_character_keyword VARYING '(' pos_short_integer ')'", +"character_type : character_keyword '(' pos_short_integer ')'", +"character_type : character_keyword", +"character_type : varying_keyword '(' pos_short_integer ')'", +"varying_keyword : VARCHAR", +"varying_keyword : CHARACTER VARYING", +"varying_keyword : KW_CHAR VARYING", +"character_keyword : CHARACTER", +"character_keyword : KW_CHAR", +"national_character_keyword : NCHAR", +"national_character_keyword : NATIONAL CHARACTER", +"national_character_keyword : NATIONAL KW_CHAR", +"numeric_type : KW_NUMERIC prec_scale", +"numeric_type : decimal_keyword prec_scale", +"ordinal : pos_short_integer", +"prec_scale :", +"prec_scale : '(' signed_long_integer ')'", +"prec_scale : '(' signed_long_integer ',' signed_long_integer ')'", +"decimal_keyword : DECIMAL", +"decimal_keyword : KW_DEC", +"float_type : KW_FLOAT precision_opt", +"float_type : KW_LONG KW_FLOAT precision_opt", +"float_type : REAL", +"float_type : KW_DOUBLE PRECISION", +"precision_opt : '(' nonneg_short_integer ')'", +"precision_opt :", +"set : set_transaction", +"set : set_generator", +"set : set_statistics", +"set_generator : SET GENERATOR symbol_generator_name TO signed_long_integer", +"set_generator : SET GENERATOR symbol_generator_name TO NUMBER64BIT", +"set_generator : SET GENERATOR symbol_generator_name TO '-' NUMBER64BIT", +"commit : COMMIT optional_work optional_retain", +"rollback : ROLLBACK optional_work", +"optional_work : WORK", +"optional_work :", +"optional_retain : RETAIN opt_snapshot", +"optional_retain :", +"opt_snapshot : SNAPSHOT", +"opt_snapshot :", +"set_transaction : SET TRANSACTION tran_opt_list_m", +"tran_opt_list_m : tran_opt_list", +"tran_opt_list_m :", +"tran_opt_list : tran_opt", +"tran_opt_list : tran_opt_list tran_opt", +"tran_opt : access_mode", +"tran_opt : lock_wait", +"tran_opt : isolation_mode", +"tran_opt : tbl_reserve_options", +"access_mode : READ ONLY", +"access_mode : READ WRITE", +"lock_wait : WAIT", +"lock_wait : NO WAIT", +"isolation_mode : ISOLATION LEVEL iso_mode", +"isolation_mode : iso_mode", +"iso_mode : snap_shot", +"iso_mode : READ UNCOMMITTED version_mode", +"iso_mode : READ COMMITTED version_mode", +"snap_shot : SNAPSHOT", +"snap_shot : SNAPSHOT TABLE", +"snap_shot : SNAPSHOT TABLE STABILITY", +"version_mode : VERSION", +"version_mode : NO VERSION", +"version_mode :", +"tbl_reserve_options : RESERVING restr_list", +"lock_type : SHARED", +"lock_type : PROTECTED", +"lock_type :", +"lock_mode : READ", +"lock_mode : WRITE", +"restr_list : restr_option", +"restr_list : restr_list ',' restr_option", +"restr_option : table_list table_lock", +"table_lock : FOR lock_type lock_mode", +"table_lock :", +"table_list : simple_table_name", +"table_list : table_list ',' simple_table_name", +"set_statistics : SET STATISTICS INDEX symbol_index_name", +"select : union_expr order_clause for_update_clause", +"union_expr : select_expr", +"union_expr : union_expr UNION select_expr", +"union_expr : union_expr UNION ALL select_expr", +"order_clause : ORDER BY order_list", +"order_clause :", +"order_list : order_item", +"order_list : order_list ',' order_item", +"order_item : column_name collate_clause order_direction", +"order_item : ordinal collate_clause order_direction", +"order_direction : ASC", +"order_direction : DESC", +"order_direction :", +"for_update_clause : FOR UPDATE for_update_list", +"for_update_clause :", +"for_update_list : OF column_list", +"for_update_list :", +"select_expr : SELECT distinct_clause select_list from_clause where_clause group_clause having_clause limit_clause plan_clause", +"distinct_clause : DISTINCT", +"distinct_clause : all_noise", +"select_list : select_items", +"select_list : '*'", +"select_items : select_item", +"select_items : select_items ',' select_item", +"select_item : rhs", +"select_item : rhs symbol_item_alias_name", +"select_item : rhs AS symbol_item_alias_name", +"from_clause : FROM from_list", +"from_list : table_reference", +"from_list : from_list ',' table_reference", +"table_reference : joined_table", +"table_reference : table_proc", +"joined_table : table_reference join_type JOIN table_reference ON search_condition", +"joined_table : '(' joined_table ')'", +"table_proc : symbol_procedure_name proc_table_inputs symbol_table_alias_name", +"table_proc : symbol_procedure_name proc_table_inputs", +"proc_table_inputs : '(' null_or_value_list ')'", +"proc_table_inputs :", +"null_or_value_list : null_or_value", +"null_or_value_list : null_or_value_list ',' null_or_value", +"null_or_value : null_value", +"null_or_value : value", +"table_name : simple_table_name", +"table_name : symbol_table_name symbol_table_alias_name", +"simple_table_name : symbol_table_name", +"join_type : INNER", +"join_type : LEFT", +"join_type : LEFT OUTER", +"join_type : RIGHT", +"join_type : RIGHT OUTER", +"join_type : FULL", +"join_type : FULL OUTER", +"join_type :", +"group_clause : GROUP BY grp_column_list", +"group_clause :", +"grp_column_list : grp_column_elem", +"grp_column_list : grp_column_list ',' grp_column_elem", +"grp_column_elem : column_name", +"grp_column_elem : udf", +"grp_column_elem : column_name COLLATE symbol_collation_name", +"having_clause : HAVING search_condition", +"having_clause :", +"where_clause : WHERE search_condition", +"where_clause :", +"limit_clause : LIMIT limit_range", +"limit_clause :", +"limit_range : '(' long_integer ')'", +"limit_range : '(' long_integer ':' long_integer ')'", +"limit_range :", +"plan_clause : PLAN plan_expression", +"plan_clause :", +"plan_expression : plan_type '(' plan_item_list ')'", +"plan_type : JOIN", +"plan_type : SORT MERGE", +"plan_type : MERGE", +"plan_type : SORT", +"plan_type :", +"plan_item_list : plan_item", +"plan_item_list : plan_item ',' plan_item_list", +"plan_item : table_or_alias_list access_type", +"plan_item : plan_expression", +"table_or_alias_list : symbol_table_name", +"table_or_alias_list : symbol_table_name table_or_alias_list", +"access_type : NATURAL", +"access_type : INDEX '(' index_list ')'", +"access_type : ORDER symbol_index_name", +"index_list : symbol_index_name", +"index_list : symbol_index_name ',' index_list", +"insert : INSERT INTO simple_table_name column_parens_opt VALUES '(' insert_value_list ')'", +"insert : INSERT INTO simple_table_name column_parens_opt select_expr", +"insert_value_list : rhs", +"insert_value_list : insert_value_list ',' rhs", +"delete : delete_searched", +"delete : delete_positioned", +"delete_searched : DELETE FROM table_name where_clause", +"delete_positioned : DELETE FROM table_name cursor_clause", +"cursor_clause : WHERE CURRENT OF symbol_cursor_name", +"update : update_searched", +"update : update_positioned", +"update_searched : UPDATE table_name SET assignments where_clause", +"update_positioned : UPDATE table_name SET assignments cursor_clause", +"assignments : assignment", +"assignments : assignments ',' assignment", +"assignment : column_name '=' rhs", +"rhs : value", +"rhs : null_value", +"blob : READ BLOB simple_column_name FROM simple_table_name filter_clause segment_clause", +"blob : INSERT BLOB simple_column_name INTO simple_table_name filter_clause segment_clause", +"filter_clause : FILTER FROM blob_subtype_value TO blob_subtype_value", +"filter_clause : FILTER TO blob_subtype_value", +"filter_clause :", +"blob_subtype_value : blob_subtype", +"blob_subtype_value : parameter", +"blob_subtype : signed_short_integer", +"segment_clause : MAX_SEGMENT segment_length", +"segment_clause :", +"segment_length : unsigned_short_integer", +"segment_length : parameter", +"column_parens_opt : column_parens", +"column_parens_opt :", +"column_parens : '(' column_list ')'", +"column_list : column_name", +"column_list : column_list ',' column_name", +"column_name : simple_column_name", +"column_name : symbol_table_alias_name '.' symbol_column_name", +"column_name : symbol_table_alias_name '.' '*'", +"simple_column_name : symbol_column_name", +"search_condition : predicate", +"search_condition : search_condition OR search_condition", +"search_condition : search_condition AND search_condition", +"search_condition : NOT search_condition", +"predicate : comparison_predicate", +"predicate : between_predicate", +"predicate : like_predicate", +"predicate : in_predicate", +"predicate : null_predicate", +"predicate : quantified_predicate", +"predicate : exists_predicate", +"predicate : containing_predicate", +"predicate : starting_predicate", +"predicate : unique_predicate", +"predicate : '(' search_condition ')'", +"comparison_predicate : value '=' value", +"comparison_predicate : value '<' value", +"comparison_predicate : value '>' value", +"comparison_predicate : value GEQ value", +"comparison_predicate : value LEQ value", +"comparison_predicate : value NOT_GTR value", +"comparison_predicate : value NOT_LSS value", +"comparison_predicate : value NEQ value", +"quantified_predicate : value '=' ALL '(' column_select ')'", +"quantified_predicate : value '<' ALL '(' column_select ')'", +"quantified_predicate : value '>' ALL '(' column_select ')'", +"quantified_predicate : value GEQ ALL '(' column_select ')'", +"quantified_predicate : value LEQ ALL '(' column_select ')'", +"quantified_predicate : value NOT_GTR ALL '(' column_select ')'", +"quantified_predicate : value NOT_LSS ALL '(' column_select ')'", +"quantified_predicate : value NEQ ALL '(' column_select ')'", +"quantified_predicate : value '=' some '(' column_select ')'", +"quantified_predicate : value '<' some '(' column_select ')'", +"quantified_predicate : value '>' some '(' column_select ')'", +"quantified_predicate : value GEQ some '(' column_select ')'", +"quantified_predicate : value LEQ some '(' column_select ')'", +"quantified_predicate : value NOT_GTR some '(' column_select ')'", +"quantified_predicate : value NOT_LSS some '(' column_select ')'", +"quantified_predicate : value NEQ some '(' column_select ')'", +"some : SOME", +"some : ANY", +"between_predicate : value BETWEEN value AND value", +"between_predicate : value NOT BETWEEN value AND value", +"like_predicate : value LIKE value", +"like_predicate : value NOT LIKE value", +"like_predicate : value LIKE value ESCAPE value", +"like_predicate : value NOT LIKE value ESCAPE value", +"in_predicate : value IN scalar_set", +"in_predicate : value NOT IN scalar_set", +"containing_predicate : value CONTAINING value", +"containing_predicate : value NOT CONTAINING value", +"starting_predicate : value STARTING value", +"starting_predicate : value NOT STARTING value", +"starting_predicate : value STARTING WITH value", +"starting_predicate : value NOT STARTING WITH value", +"exists_predicate : EXISTS '(' select_expr ')'", +"unique_predicate : SINGULAR '(' select_expr ')'", +"null_predicate : value IS KW_NULL", +"null_predicate : value IS NOT KW_NULL", +"scalar_set : '(' constant_list ')'", +"scalar_set : '(' column_select ')'", +"column_select : SELECT distinct_clause value from_clause where_clause group_clause having_clause plan_clause", +"column_singleton : SELECT distinct_clause value from_clause where_clause group_clause having_clause plan_clause", +"value : column_name", +"value : array_element", +"value : function", +"value : u_constant", +"value : parameter", +"value : variable", +"value : udf", +"value : '-' value", +"value : '+' value", +"value : value '+' value", +"value : value CONCATENATE value", +"value : value COLLATE symbol_collation_name", +"value : value '-' value", +"value : value '*' value", +"value : value '/' value", +"value : '(' value ')'", +"value : '(' column_singleton ')'", +"value : USER", +"value : DB_KEY", +"value : symbol_table_alias_name '.' DB_KEY", +"value : KW_VALUE", +"value : datetime_value_expression", +"datetime_value_expression : CURRENT_DATE", +"datetime_value_expression : CURRENT_TIME", +"datetime_value_expression : CURRENT_TIMESTAMP", +"array_element : column_name '[' value_list ']'", +"value_list : value", +"value_list : value_list ',' value", +"constant : u_constant", +"constant : '-' u_numeric_constant", +"u_numeric_constant : NUMERIC", +"u_numeric_constant : NUMBER", +"u_numeric_constant : FLOAT", +"u_numeric_constant : NUMBER64BIT", +"u_numeric_constant : SCALEDINT", +"u_constant : u_numeric_constant", +"u_constant : sql_string", +"u_constant : DATE STRING", +"u_constant : TIME STRING", +"u_constant : TIMESTAMP STRING", +"constant_list : constant", +"constant_list : parameter", +"constant_list : current_user", +"constant_list : constant_list ',' constant", +"constant_list : constant_list ',' parameter", +"constant_list : constant_list ',' current_user", +"parameter : '?'", +"current_user : USER", +"sql_string : STRING", +"sql_string : INTRODUCER STRING", +"signed_short_integer : nonneg_short_integer", +"signed_short_integer : '-' neg_short_integer", +"nonneg_short_integer : NUMBER", +"neg_short_integer : NUMBER", +"pos_short_integer : nonneg_short_integer", +"unsigned_short_integer : NUMBER", +"signed_long_integer : long_integer", +"signed_long_integer : '-' long_integer", +"long_integer : NUMBER", +"function : COUNT '(' '*' ')'", +"function : COUNT '(' all_noise value ')'", +"function : COUNT '(' DISTINCT value ')'", +"function : SUM '(' all_noise value ')'", +"function : SUM '(' DISTINCT value ')'", +"function : AVG '(' all_noise value ')'", +"function : AVG '(' DISTINCT value ')'", +"function : MINIMUM '(' all_noise value ')'", +"function : MINIMUM '(' DISTINCT value ')'", +"function : MAXIMUM '(' all_noise value ')'", +"function : MAXIMUM '(' DISTINCT value ')'", +"function : CAST '(' rhs AS data_type_descriptor ')'", +"function : KW_UPPER '(' value ')'", +"function : GEN_ID '(' symbol_generator_name ',' value ')'", +"function : EXTRACT '(' timestamp_part FROM value ')'", +"udf : symbol_UDF_name '(' value_list ')'", +"udf : symbol_UDF_name '(' ')'", +"timestamp_part : YEAR", +"timestamp_part : MONTH", +"timestamp_part : DAY", +"timestamp_part : HOUR", +"timestamp_part : MINUTE", +"timestamp_part : SECOND", +"timestamp_part : WEEKDAY", +"timestamp_part : YEARDAY", +"all_noise : ALL", +"all_noise :", +"null_value : KW_NULL", +"symbol_UDF_name : SYMBOL", +"symbol_blob_subtype_name : SYMBOL", +"symbol_character_set_name : SYMBOL", +"symbol_collation_name : SYMBOL", +"symbol_column_name : SYMBOL", +"symbol_constraint_name : SYMBOL", +"symbol_cursor_name : SYMBOL", +"symbol_domain_name : SYMBOL", +"symbol_exception_name : SYMBOL", +"symbol_filter_name : SYMBOL", +"symbol_gdscode_name : SYMBOL", +"symbol_generator_name : SYMBOL", +"symbol_index_name : SYMBOL", +"symbol_item_alias_name : SYMBOL", +"symbol_procedure_name : SYMBOL", +"symbol_role_name : SYMBOL", +"symbol_table_alias_name : SYMBOL", +"symbol_table_name : SYMBOL", +"symbol_trigger_name : SYMBOL", +"symbol_user_name : SYMBOL", +"symbol_variable_name : SYMBOL", +"symbol_view_name : SYMBOL", +}; #endif - - - -#ifdef __cplusplus - -#ifndef yyerror -static void yyerror(TEXT *); -#endif - -#ifndef yylex -#ifdef __EXTERN_C__ -extern "C" { - int yylex(USHORT, USHORT, USHORT, BOOLEAN *); -} -#else -int yylex(USHORT, USHORT, USHORT, BOOLEAN *); -#endif -#endif -int dsql_yyparse(USHORT, USHORT, USHORT, BOOLEAN *); - -#endif // __cplusplus - - -#define yyclearin DSQL_yychar = -1 -#define yyerrok DSQL_yyerrflag = 0 -extern int DSQL_yychar; -extern int DSQL_yyerrflag; #ifndef YYSTYPE -#define YYSTYPE int +typedef int YYSTYPE; #endif -static YYSTYPE yylval; +#ifdef YYSTACKSIZE +#undef YYMAXDEPTH +#define YYMAXDEPTH YYSTACKSIZE +#else +#ifdef YYMAXDEPTH +#define YYSTACKSIZE YYMAXDEPTH +#else +#define YYSTACKSIZE 500 +#define YYMAXDEPTH 500 +#endif +#endif +static int yydebug; +static int yynerrs; +#ifndef SHLIB_DEFS +int DSQL_yyerrflag; +#endif +#ifndef SHLIB_DEFS +int DSQL_yychar; +#endif +short *DSQL_DSQL_yyssp; +static YYSTYPE *yyvsp; static YYSTYPE yyval; -typedef int yytabelem; -#ifndef YYMAXDEPTH -#define YYMAXDEPTH 150 -#endif -#if YYMAXDEPTH > 0 -static int yy_yys[YYMAXDEPTH], *yys = yy_yys; -static YYSTYPE yy_yyv[YYMAXDEPTH], *yyv = yy_yyv; -#else /* user does initial allocation */ -static int *yys; -static YYSTYPE *yyv; -#endif -static int yymaxdepth = YYMAXDEPTH; -# define YYERRCODE 256 - +static YYSTYPE yylval; +static short DSQL_yyss[YYSTACKSIZE]; +static YYSTYPE yyvs[YYSTACKSIZE]; +#define yystacksize YYSTACKSIZE /* @@ -388,37 +3384,38 @@ static int yymaxdepth = YYMAXDEPTH; #define CHECK_COPY_INCR(to,ch){CHECK_BOUND(to); *to++=ch;} -static TEXT *lex_position(void); -static BOOLEAN long_int(NOD, SLONG *); -static FLD make_field(NOD); -static FIL make_file(void); -static NOD make_list(NOD); -static NOD make_node(NOD_TYPE, int, ...); -static NOD make_flag_node(NOD_TYPE, SSHORT, int, ...); -static BOOLEAN short_int(NOD, SLONG *, SSHORT); -static void stack_nodes(NOD, LLS *); -static int yylex(USHORT, USHORT, USHORT, BOOLEAN *); -static void yyerror(TEXT *); -static void yyabandon(SSHORT, STATUS); -static void check_log_file_attrs(); +static TEXT *lex_position (void); +static BOOLEAN long_int (NOD, SLONG *); +static FLD make_field (NOD); +static FIL make_file (void); +static NOD make_list (NOD); +static NOD make_node (NOD_TYPE, int, ...); +static NOD make_flag_node (NOD_TYPE, SSHORT, int, ...); +static BOOLEAN short_int (NOD, SLONG *, SSHORT); +static void stack_nodes (NOD, LLS *); +static int yylex (USHORT, USHORT, USHORT, BOOLEAN *); +static void yyerror (TEXT *); +static void yyabandon (SSHORT, STATUS); +#ifndef WINDOWS_ONLY +static void check_log_file_attrs (void); +#endif -static TEXT *ptr, *end, *last_token, *line_start; -static SSHORT lines, att_charset; +static TEXT *ptr, *end, *last_token, *line_start; +static SSHORT lines, att_charset; -struct TOK { - USHORT tok_ident; - const char *tok_string; - USHORT tok_version; -}; +typedef struct tok { + USHORT tok_ident; + CONST SCHAR *tok_string; + CONST USHORT tok_version; +} TOK; - -const TOK tokens[] = { +static CONST TOK tokens [] = { #include "../dsql/keywords.h" - {0, 0, 0} -}; + {0, 0, 0} + }; -void LEX_dsql_init(void) +void LEX_dsql_init (void) { /************************************** * @@ -431,28 +3428,33 @@ void LEX_dsql_init(void) * per session. * **************************************/ +CONST TOK *token; - for (const TOK * token = tokens; token->tok_string; ++token) { - SYM symbol; - STR str; +for (token = tokens; token->tok_string; ++token) + { + SYM symbol; + STR str; + + symbol = (SYM) ALLOCPV (type_sym, 0); + symbol->sym_string = (TEXT *) token->tok_string; + symbol->sym_length = strlen (token->tok_string); + symbol->sym_type = SYM_keyword; + symbol->sym_keyword = token->tok_ident; + symbol->sym_version = token->tok_version; + str = (STR) ALLOCPV (type_str, symbol->sym_length); + str->str_length = symbol->sym_length; + strncpy ((char*)str->str_data, (char*)symbol->sym_string, symbol->sym_length); + symbol->sym_object = (void *) str; + HSHD_insert (symbol); + } - symbol = (SYM) ALLOCPV(type_sym, 0); - symbol->sym_string = (TEXT *) token->tok_string; - symbol->sym_length = strlen(token->tok_string); - symbol->sym_type = SYM_keyword; - symbol->sym_keyword = token->tok_ident; - symbol->sym_version = token->tok_version; - str = (STR) ALLOCPV(type_str, symbol->sym_length); - str->str_length = symbol->sym_length; - strncpy(reinterpret_cast < char *>(str->str_data), symbol->sym_string, - symbol->sym_length); - symbol->sym_object = (void *) str; - HSHD_insert(symbol); - } } -void LEX_string( TEXT * string, USHORT length, SSHORT character_set) +void LEX_string ( + TEXT *string, + USHORT length, + SSHORT character_set) { /************************************** * @@ -465,14 +3467,15 @@ void LEX_string( TEXT * string, USHORT length, SSHORT character_set) * **************************************/ - line_start = ptr = string; - end = string + length; - lines = 1; - att_charset = character_set; +line_start = ptr = string; +end = string + length; +lines = 1; +att_charset = character_set; } -static void check_log_file_attrs(void) +#ifndef WINDOWS_ONLY +static void check_log_file_attrs (void) { /********************************************** * @@ -485,27 +3488,33 @@ static void check_log_file_attrs(void) * *********************************************/ - if (file->fil_partitions) { - if (!file->fil_length) { - yyabandon(-261, isc_log_length_spec); - /* Total length of a partitioned log must be specified */ - } +if (file->fil_partitions) + { + if (!file->fil_length) + { + yyabandon (-261, isc_log_length_spec); + /* Total length of a partitioned log must be specified */ + } - if (PARTITION_SIZE(OneK * file->fil_length, file->fil_partitions) < - (OneK * MIN_LOG_LENGTH)) { - yyabandon(-239, isc_partition_too_small); - /* Log partition size too small */ - } + if (PARTITION_SIZE (OneK*file->fil_length,file->fil_partitions) < + (OneK*MIN_LOG_LENGTH)) + { + yyabandon (-239, isc_partition_too_small); + /* Log partition size too small */ } - else { - if ((file->fil_length) && (file->fil_length < MIN_LOG_LENGTH)) { - yyabandon(-239, isc_log_too_small); /* Log size too small */ - } + } +else + { + if ((file->fil_length) && (file->fil_length < MIN_LOG_LENGTH)) + { + yyabandon (-239, isc_log_too_small); /* Log size too small */ } + } } +#endif -static TEXT *lex_position(void) +static TEXT *lex_position (void) { /************************************** * @@ -519,11 +3528,13 @@ static TEXT *lex_position(void) * **************************************/ - return ptr; +return ptr; } -static BOOLEAN long_int( NOD string, SLONG * long_value) +static BOOLEAN long_int ( + NOD string, + SLONG *long_value) { /************************************* * @@ -536,19 +3547,20 @@ static BOOLEAN long_int( NOD string, SLONG * long_value) * number and return an atol(). * *************************************/ - UCHAR *p; +UCHAR *p; - for (p = ((STR) string)->str_data; classes[*p] & CHR_DIGIT; p++) - if (!(classes[*p] & CHR_DIGIT)) - return FALSE; +for (p = ((STR) string)->str_data; classes [*p] & CHR_DIGIT; p++) + if (!(classes [*p] & CHR_DIGIT)) + return FALSE; - *long_value = atol((char *) ((STR) string)->str_data); +*long_value = atol ((char *)((STR) string)->str_data); - return TRUE; +return TRUE; } -static FLD make_field( NOD field_name) +static FLD make_field ( + NOD field_name) { /************************************** * @@ -560,26 +3572,27 @@ static FLD make_field( NOD field_name) * Make a field block of given name. * **************************************/ - FLD field; - STR string; - TSQL tdsql; +FLD field; +STR string; +TSQL tdsql; - tdsql = GET_THREAD_DATA; +tdsql = GET_THREAD_DATA; + +if (field_name == NULL) + { + field = (FLD) ALLOCDV (type_fld, sizeof (INTERNAL_FIELD_NAME)); + strcpy (field->fld_name, (TEXT*) INTERNAL_FIELD_NAME); + return field; + } +string = (STR) field_name->nod_arg [1]; +field = (FLD) ALLOCDV (type_fld, strlen ((SCHAR*) string->str_data)); +strcpy (field->fld_name, (TEXT*) string->str_data); - if (field_name == NULL) { - field = (FLD) ALLOCDV(type_fld, sizeof(INTERNAL_FIELD_NAME)); - strcpy(field->fld_name, (TEXT *) INTERNAL_FIELD_NAME); - return field; - } - string = (STR) field_name->nod_arg[1]; - field = (FLD) ALLOCDV(type_fld, strlen((SCHAR *) string->str_data)); - strcpy(field->fld_name, (TEXT *) string->str_data); - - return field; +return field; } -static FIL make_file(void) +static FIL make_file (void) { /************************************** * @@ -591,18 +3604,19 @@ static FIL make_file(void) * Make a file block * **************************************/ - FIL temp_file; - TSQL tdsql; +FIL temp_file; +TSQL tdsql; - tdsql = GET_THREAD_DATA; +tdsql = GET_THREAD_DATA; + +temp_file = (FIL) ALLOCD (type_fil); - temp_file = (FIL) ALLOCD(type_fil); - - return temp_file; +return temp_file; } -static NOD make_list( NOD node) +static NOD make_list ( + NOD node) { /************************************** * @@ -614,37 +3628,40 @@ static NOD make_list( NOD node) * Collapse nested list nodes into single list. * **************************************/ - NOD *ptr; - LLS stack, temp; - USHORT l; - NOD old; - TSQL tdsql; +NOD *ptr; +LLS stack, temp; +USHORT l; +NOD old; +TSQL tdsql; - tdsql = GET_THREAD_DATA; +tdsql = GET_THREAD_DATA; - if (!node) - return node; +if (!node) + return node; - stack = 0; - stack_nodes(node, &stack); - for (l = 0, temp = stack; temp; temp = temp->lls_next) - l++; +stack = 0; +stack_nodes (node, &stack); +for (l = 0, temp = stack; temp; temp = temp->lls_next) + l++; - old = node; - node = (NOD) ALLOCDV(type_nod, l); - node->nod_count = l; - node->nod_type = nod_list; - node->nod_flags = old->nod_flags; - ptr = node->nod_arg + node->nod_count; +old = node; +node = (NOD) ALLOCDV (type_nod, l); +node->nod_count = l; +node->nod_type = nod_list; +node->nod_flags = old->nod_flags; +ptr = node->nod_arg + node->nod_count; - while (stack) - *--ptr = (NOD) LLS_POP(&stack); +while (stack) + *--ptr = (NOD) LLS_POP (&stack); - return node; +return node; } -static NOD make_node( NOD_TYPE type, int count, ...) +static NOD make_node ( + NOD_TYPE type, + int count, + ...) { /************************************** * @@ -657,26 +3674,30 @@ static NOD make_node( NOD_TYPE type, int count, ...) * Any change should also be made to function below * **************************************/ - NOD node, *p; - va_list ptr; - TSQL tdsql; +NOD node, *p; +va_list ptr; +TSQL tdsql; - tdsql = GET_THREAD_DATA; +tdsql = GET_THREAD_DATA; - node = (NOD) ALLOCDV(type_nod, count); - node->nod_type = type; - node->nod_count = count; - p = node->nod_arg; - VA_START(ptr, count); +node = (NOD) ALLOCDV (type_nod, count); +node->nod_type = type; +node->nod_count = count; +p = node->nod_arg; +VA_START (ptr, count); - while (--count >= 0) - *p++ = va_arg(ptr, NOD); +while (--count >= 0) + *p++ = va_arg (ptr, NOD); - return node; +return node; } -static NOD make_flag_node( NOD_TYPE type, SSHORT flag, int count, ...) +static NOD make_flag_node ( + NOD_TYPE type, + SSHORT flag, + int count, + ...) { /************************************** * @@ -688,27 +3709,30 @@ static NOD make_flag_node( NOD_TYPE type, SSHORT flag, int count, ...) * Make a node of given type. Set flag field * **************************************/ - NOD node, *p; - va_list ptr; - TSQL tdsql; +NOD node, *p; +va_list ptr; +TSQL tdsql; - tdsql = GET_THREAD_DATA; +tdsql = GET_THREAD_DATA; - node = (NOD) ALLOCDV(type_nod, count); - node->nod_type = type; - node->nod_flags = flag; - node->nod_count = count; - p = node->nod_arg; - VA_START(ptr, count); +node = (NOD) ALLOCDV (type_nod, count); +node->nod_type = type; +node->nod_flags = flag; +node->nod_count = count; +p = node->nod_arg; +VA_START (ptr, count); - while (--count >= 0) - *p++ = va_arg(ptr, NOD); +while (--count >= 0) + *p++ = va_arg (ptr, NOD); - return node; +return node; } -static BOOLEAN short_int( NOD string, SLONG * long_value, SSHORT range) +static BOOLEAN short_int ( + NOD string, + SLONG *long_value, + SSHORT range) { /************************************* * @@ -721,45 +3745,48 @@ static BOOLEAN short_int( NOD string, SLONG * long_value, SSHORT range) * of a positive short int? * *************************************/ - UCHAR *p; - SCHAR buf[10]; - BOOLEAN return_value; +UCHAR *p; +SCHAR buf [10]; +BOOLEAN return_value; - if (((STR) string)->str_length > 5) - return FALSE; +if (((STR) string)->str_length > 5) + return FALSE; - for (p = ((STR) string)->str_data; classes[*p] & CHR_DIGIT; p++) - if (!(classes[*p] & CHR_DIGIT)) - return FALSE; +for (p = ((STR) string)->str_data; classes [*p] & CHR_DIGIT; p++) + if (!(classes [*p] & CHR_DIGIT)) + return FALSE; /* there are 5 or fewer digits, it's value may still be greater * than 32767... */ - buf[0] = ((STR) string)->str_data[0]; - buf[1] = ((STR) string)->str_data[1]; - buf[2] = ((STR) string)->str_data[2]; - buf[3] = ((STR) string)->str_data[3]; - buf[4] = ((STR) string)->str_data[4]; - buf[5] = '\0'; +buf [0] = ((STR) string)->str_data[0]; +buf [1] = ((STR) string)->str_data[1]; +buf [2] = ((STR) string)->str_data[2]; +buf [3] = ((STR) string)->str_data[3]; +buf [4] = ((STR) string)->str_data[4]; +buf [5] = '\0'; - *long_value = atoi(buf); +*long_value = atoi (buf); - switch (range) { - case POSITIVE: - return_value = *long_value > SHRT_POS_MAX; - break; - case NEGATIVE: - return_value = *long_value > SHRT_NEG_MAX; - break; - case UNSIGNED: - return_value = *long_value > SHRT_UNSIGNED_MAX; - break; - } - return !return_value; +switch (range) + { + case POSITIVE: + return_value = *long_value > SHRT_POS_MAX; + break; + case NEGATIVE: + return_value = *long_value > SHRT_NEG_MAX; + break; + case UNSIGNED: + return_value = *long_value > SHRT_UNSIGNED_MAX; + break; + } +return !return_value; } -static void stack_nodes( NOD node, LLS * stack) +static void stack_nodes ( + NOD node, + LLS *stack) { /************************************** * @@ -771,13 +3798,14 @@ static void stack_nodes( NOD node, LLS * stack) * Assist in turning a tree of misc nodes into a clean list. * **************************************/ - NOD *ptr, *end; - NOD curr_node, next_node, start_chain, end_chain, save_link; +NOD *ptr, *end; +NOD curr_node, next_node, start_chain, end_chain, save_link; - if (node->nod_type != nod_list) { - LLS_PUSH(node, stack); - return; - } +if (node->nod_type != nod_list) + { + LLS_PUSH (node, stack); + return; + } /* To take care of cases where long lists of nodes are in a chain of list nodes with exactly one entry, this algorithm will look @@ -787,58 +3815,62 @@ static void stack_nodes( NOD node, LLS * stack) non-list nodes in the process. The purpose of this is to avoid massive recursion of this function. */ - start_chain = node; - end_chain = (NOD) NULL; - curr_node = node; - next_node = node->nod_arg[0]; - while (curr_node->nod_count == 2 && - curr_node->nod_arg[0]->nod_type == nod_list && - curr_node->nod_arg[1]->nod_type != nod_list && - next_node->nod_arg[0]->nod_type == nod_list && - next_node->nod_arg[1]->nod_type != nod_list) { +start_chain = node; +end_chain = (NOD) NULL; +curr_node = node; +next_node = node->nod_arg[0]; +while ( curr_node->nod_count == 2 && + curr_node->nod_arg[0]->nod_type == nod_list && + curr_node->nod_arg[1]->nod_type != nod_list && + next_node->nod_arg[0]->nod_type == nod_list && + next_node->nod_arg[1]->nod_type != nod_list) + { - /* pattern was found so reverse the links and go to next node */ + /* pattern was found so reverse the links and go to next node */ - save_link = next_node->nod_arg[0]; - next_node->nod_arg[0] = curr_node; - curr_node = next_node; - next_node = save_link; - end_chain = curr_node; - } + save_link = next_node->nod_arg[0]; + next_node->nod_arg[0] = curr_node; + curr_node = next_node; + next_node = save_link; + end_chain = curr_node; + } /* see if any chain was found */ - if (end_chain) { +if ( end_chain) + { - /* first, handle the rest of the nodes */ - /* note that next_node still points to the first non-pattern node */ + /* first, handle the rest of the nodes */ + /* note that next_node still points to the first non-pattern node */ - stack_nodes(next_node, stack); + stack_nodes( next_node, stack); - /* stack the non-list nodes and reverse the chain on the way back */ + /* stack the non-list nodes and reverse the chain on the way back */ + + curr_node = end_chain; + while ( TRUE) + { + LLS_PUSH( curr_node->nod_arg[1], stack); + if ( curr_node == start_chain) + break; + save_link = curr_node->nod_arg[0]; + curr_node->nod_arg[0] = next_node; + next_node = curr_node; + curr_node = save_link; + } + return; + } - curr_node = end_chain; - while (TRUE) { - LLS_PUSH(curr_node->nod_arg[1], stack); - if (curr_node == start_chain) - break; - save_link = curr_node->nod_arg[0]; - curr_node->nod_arg[0] = next_node; - next_node = curr_node; - curr_node = save_link; - } - return; - } - - for (ptr = node->nod_arg, end = ptr + node->nod_count; ptr < end; ptr++) - stack_nodes(*ptr, stack); +for (ptr = node->nod_arg, end = ptr + node->nod_count; ptr < end; ptr++) + stack_nodes (*ptr, stack); } -static int yylex( - USHORT client_dialect, - USHORT db_dialect, - USHORT parser_version, BOOLEAN * stmt_ambiguous) +static int yylex ( + USHORT client_dialect, + USHORT db_dialect, + USHORT parser_version, + BOOLEAN *stmt_ambiguous) { /************************************** * @@ -849,145 +3881,161 @@ static int yylex( * Functional description * **************************************/ - UCHAR *p, class_, string[MAX_TOKEN_LEN], *buffer, *buffer_end, - *new_buffer; - SYM sym; - SSHORT c; - USHORT buffer_len; +UCHAR *p, tok_class, string [MAX_TOKEN_LEN], *buffer, *buffer_end, *new_buffer; +SYM sym; +SSHORT c; +USHORT buffer_len; - STR delimited_id_str; +STR delimited_id_str; /* Find end of white space and skip comments */ - for (;;) { - if (ptr >= end) - return -1; +for (;;) + { + if (ptr >= end) + return -1; + + c = *ptr++; - c = *ptr++; + if (c == '\n') + { + lines++; + line_start = ptr + 1; + } - if (c == '\n') { - lines++; - line_start = ptr + 1; + if ((c == '/') && (*ptr == '*')) + { + ptr++; + while (ptr < end) + { + if ((c = *ptr++) == '*') + { + if (*ptr == '/') + break; } - - if ((c == '/') && (*ptr == '*')) { - ptr++; - while (ptr < end) { - if ((c = *ptr++) == '*') { - if (*ptr == '/') - break; - } - if (c == '\n') { - lines++; - line_start = ptr + 1; - } - } - if (ptr >= end) - return -1; - ptr++; - continue; + if (c == '\n') + { + lines++; + line_start = ptr + 1; } + } + if (ptr >= end) + return -1; + ptr++; + continue; + } #if (! ( defined JPN_SJIS || defined JPN_EUC) ) - class_ = classes[c]; + tok_class = classes [c]; #else - c = c & 0xff; - class_ = (JPN1_CHAR(c) ? CHR_LETTER : classes[c]); + c = c & 0xff; + tok_class = (JPN1_CHAR(c) ? CHR_LETTER : classes[c]); #endif /*JPN_SJIS || JPN_EUC */ - if (!(class_ & CHR_WHITE)) - break; + if (!(tok_class & CHR_WHITE)) + break; + } + +/* Depending on tok_class of token, parse token */ + +last_token = ptr - 1; + +if (tok_class & CHR_INTRODUCER) + { + /* The Introducer (_) is skipped, all other idents are copied + * to become the name of the character set + */ + p = string; + for (; ptr < end && classes [*ptr] & CHR_IDENT; ptr++) + { + if (ptr >= end) + return -1; + CHECK_COPY_INCR(p, UPPER7(*ptr)); } + + CHECK_BOUND(p); + *p = 0; -/* Depending on class of token, parse token */ + /* make a string value to hold the name, the name + * is resolved in pass1_constant */ - last_token = ptr - 1; + yylval = (NOD) (MAKE_string (string, p - string))->str_data; - if (class_ & CHR_INTRODUCER) { - /* The Introducer (_) is skipped, all other idents are copied - * to become the name of the character set - */ - p = string; - for (; ptr < end && classes[*ptr] & CHR_IDENT; ptr++) { - if (ptr >= end) - return -1; - CHECK_COPY_INCR(p, UPPER7(*ptr)); - } - - CHECK_BOUND(p); - *p = 0; - - /* make a string value to hold the name, the name - * is resolved in pass1_constant */ - - yylval = (NOD) (MAKE_string(string, p - string))->str_data; - - return INTRODUCER; - } + return INTRODUCER; + } /* parse a quoted string, being sure to look for double quotes */ - if (class_ & CHR_QUOTE) { - buffer = string; - buffer_len = sizeof(string); - buffer_end = buffer + buffer_len - 1; - for (p = buffer;; p++) { - if (ptr >= end) { - if (buffer != string) - gds__free(buffer); - return -1; - } - /* *ptr is quote - if next != quote we're at the end */ - if ((*ptr == c) && ((++ptr == end) || (*ptr != c))) - break; - if (p > buffer_end) { - new_buffer = (UCHAR *) gds__alloc(2 * buffer_len); - /* FREE: at outer block */ - if (!new_buffer) { /* NOMEM: */ - if (buffer != string) - gds__free(buffer); - return -1; - } - memcpy(new_buffer, buffer, buffer_len); - if (buffer != string) - gds__free(buffer); - buffer = new_buffer; - p = buffer + buffer_len; - buffer_len = 2 * buffer_len; - buffer_end = buffer + buffer_len - 1; - } - *p = *ptr++; - } - if (c == '"') { - *stmt_ambiguous = TRUE; /* string delimited by double quotes could be - ** either a string constant or a SQL delimited - ** identifier, therefore marks the SQL - ** statement as ambiguous */ - if (client_dialect == SQL_DIALECT_V6_TRANSITION) { - if (buffer != string) - gds__free(buffer); - yyabandon(-104, isc_invalid_string_constant); - } - else if (client_dialect >= SQL_DIALECT_V6) { - if ((p - buffer) >= MAX_TOKEN_LEN) { - if (buffer != string) - gds__free(buffer); - yyabandon(-104, isc_token_too_long); - } - yylval = (NOD) MAKE_string(buffer, p - buffer); - delimited_id_str = (STR) yylval; - delimited_id_str->str_flags |= STR_delimited_id; - if (buffer != string) - gds__free(buffer); - return SYMBOL; - } - } - yylval = (NOD) MAKE_string(buffer, p - buffer); +if (tok_class & CHR_QUOTE) + { + buffer = string; + buffer_len = sizeof (string); + buffer_end = buffer + buffer_len - 1; + for (p = buffer; ; p++) + { + if (ptr >= end) + { + if (buffer != string) + gds__free (buffer); + return -1; + } + /* *ptr is quote - if next != quote we're at the end */ + if ((*ptr == c) && ((++ptr == end) || (*ptr != c))) + break; + if (p > buffer_end) + { + new_buffer = (UCHAR *) gds__alloc (2 * buffer_len); + /* FREE: at outer block */ + if (!new_buffer) /* NOMEM: */ + { if (buffer != string) - gds__free(buffer); - return STRING; + gds__free (buffer); + return -1; + } + memcpy (new_buffer, buffer, buffer_len); + if (buffer != string) + gds__free (buffer); + buffer = new_buffer; + p = buffer + buffer_len; + buffer_len = 2 * buffer_len; + buffer_end = buffer + buffer_len - 1; + } + *p = *ptr++; } - + if (c == '"') + { + *stmt_ambiguous = TRUE; /* string delimited by double quotes could be + ** either a string constant or a SQL delimited + ** identifier, therefore marks the SQL + ** statement as ambiguous */ + if (client_dialect == SQL_DIALECT_V6_TRANSITION) + { + if (buffer != string) + gds__free (buffer); + yyabandon (-104, isc_invalid_string_constant); + } + else if (client_dialect >= SQL_DIALECT_V6) + { + if ((p - buffer) >= MAX_TOKEN_LEN) + { + if (buffer != string) + gds__free (buffer); + yyabandon (-104, isc_token_too_long); + } + yylval = (NOD) MAKE_string (buffer, p - buffer); + delimited_id_str = (STR) yylval; + delimited_id_str->str_flags |= STR_delimited_id; + if (buffer != string) + gds__free (buffer); + return SYMBOL; + } + } + yylval = (NOD) MAKE_string (buffer, p - buffer); + if (buffer != string) + gds__free (buffer); + return STRING; + } + /* * Check for a numeric constant, which starts either with a digit or with * a decimal point followed by a digit. @@ -1014,219 +4062,243 @@ static int yylex( * ptr points to the next character. */ - assert(ptr <= end); +assert(ptr <= end); - if ((class_ & CHR_DIGIT) || - ((c == '.') && (ptr < end) && (classes[*ptr] & CHR_DIGIT))) { - /* The following variables are used to recognize kinds of numbers. */ +if ((tok_class & CHR_DIGIT) || + ((c == '.') && (ptr < end) && (classes [*ptr] & CHR_DIGIT))) + { + /* The following variables are used to recognize kinds of numbers. */ - BOOLEAN have_error = FALSE; /* syntax error or value too large */ - BOOLEAN have_digit = FALSE; /* we've seen a digit */ - BOOLEAN have_decimal = FALSE; /* we've seen a '.' */ - BOOLEAN have_exp = FALSE; /* digit ... [eE] */ - BOOLEAN have_exp_sign = FALSE; /* digit ... [eE] {+-] */ - BOOLEAN have_exp_digit = FALSE; /* digit ... [eE] ... digit */ - UINT64 number = 0; - UINT64 limit_by_10 = MAX_SINT64 / 10; + BOOLEAN have_error = FALSE; /* syntax error or value too large */ + BOOLEAN have_digit = FALSE; /* we've seen a digit */ + BOOLEAN have_decimal = FALSE; /* we've seen a '.' */ + BOOLEAN have_exp = FALSE; /* digit ... [eE] */ + BOOLEAN have_exp_sign = FALSE; /* digit ... [eE] {+-] */ + BOOLEAN have_exp_digit = FALSE; /* digit ... [eE] ... digit */ + UINT64 number = 0; + UINT64 limit_by_10 = MAX_SINT64 / 10; - for (--ptr; ptr < end; ptr++) { - c = *ptr; - if (have_exp_digit && (!(classes[c] & CHR_DIGIT))) - /* First non-digit after exponent and digit terminates - the token. */ - break; - else if (have_exp_sign && (!(classes[c] & CHR_DIGIT))) { - /* only digits can be accepted after "1E-" */ - have_error = TRUE; - break; - } - else if (have_exp) { - /* We've seen e or E, but nothing beyond that. */ - if (('-' == c) || ('+' == c)) - have_exp_sign = TRUE; - else if (classes[c] & CHR_DIGIT) - /* We have a digit: we haven't seen a sign yet, - but it's too late now. */ - have_exp_digit = have_exp_sign = TRUE; - else { - /* end of the token */ - have_error = TRUE; - break; - } - } - else if ('.' == c) { - if (!have_decimal) - have_decimal = TRUE; - else { - have_error = TRUE; - break; - } - } - else if (classes[c] & CHR_DIGIT) { - /* Before computing the next value, make sure there will be - no overflow. */ - - have_digit = TRUE; - - if (number >= limit_by_10) - /* possibility of an overflow */ - if ((number > limit_by_10) || (c > '8')) { - have_error = TRUE; - break; - } - number = number * 10 + (c - '0'); - } - else if ((('E' == c) || ('e' == c)) && have_digit) - have_exp = TRUE; - else - /* Unexpected character: this is the end of the number. */ - break; + for (--ptr ; ptr < end ; ptr++) + { + c = *ptr; + if (have_exp_digit && (! (classes [c] & CHR_DIGIT))) + /* First non-digit after exponent and digit terminates + the token. */ + break; + else if (have_exp_sign && (! (classes [c] & CHR_DIGIT))) + { + /* only digits can be accepted after "1E-" */ + have_error = TRUE; + break; + } + else if (have_exp) + { + /* We've seen e or E, but nothing beyond that. */ + if ( ('-' == c) || ('+' == c) ) + have_exp_sign = TRUE; + else if ( classes [c] & CHR_DIGIT ) + /* We have a digit: we haven't seen a sign yet, + but it's too late now. */ + have_exp_digit = have_exp_sign = TRUE; + else + { + /* end of the token */ + have_error = TRUE; + break; } + } + else if ('.' == c) + { + if (!have_decimal) + have_decimal = TRUE; + else + { + have_error = TRUE; + break; + } + } + else if (classes [c] & CHR_DIGIT) + { + /* Before computing the next value, make sure there will be + no overflow. */ - /* We're done scanning the characters: now return the right kind - of number token, if any fits the bill. */ + have_digit = TRUE; - if (!have_error) { - assert(have_digit); + if (number >= limit_by_10) + /* possibility of an overflow */ + if ((number > limit_by_10) || (c > '8')) + { + have_error = TRUE; + break; + } + number = number * 10 + (c - '0'); + } + else if ( (('E' == c) || ('e' == c)) && have_digit ) + have_exp = TRUE; + else + /* Unexpected character: this is the end of the number. */ + break; + } - if (have_exp_digit) { - yylval = (NOD) MAKE_string((UCHAR *) last_token, - ptr - last_token); - return FLOAT; - } - else if (!have_exp) { + /* We're done scanning the characters: now return the right kind + of number token, if any fits the bill. */ - /* We should return some kind (scaled-) integer type - except perhaps in dialect 1. */ + if (!have_error) + { + assert(have_digit); - if (!have_decimal && (number <= MAX_SLONG)) { - yylval = (NOD) number; - return NUMBER; - } - else { - /* We have either a decimal point with no exponent - or a string of digits whose value exceeds MAX_SLONG: - the returned type depends on the client dialect, - so warn of the difference if the client dialect is - SQL_DIALECT_V6_TRANSITION. - */ + if (have_exp_digit) + { + yylval = (NOD) MAKE_string ((UCHAR *) last_token, + ptr - last_token); + return FLOAT; + } + else if (!have_exp) + { - if (SQL_DIALECT_V6_TRANSITION == client_dialect) { - /* Issue a warning about the ambiguity of the numeric - * numeric literal. There are multiple calls because - * the message text exceeds the 119-character limit - * of our message database. - */ - ERRD_post_warning(isc_dsql_warning_number_ambiguous, - gds_arg_string, - ERR_string(last_token, - ptr - last_token), - gds_arg_end); - ERRD_post_warning(isc_dsql_warning_number_ambiguous1, - gds_arg_end); - } + /* We should return some kind (scaled-) integer type + except perhaps in dialect 1. */ - yylval = (NOD) MAKE_string((UCHAR *) last_token, - ptr - last_token); + if (!have_decimal && (number <= MAX_SLONG)) + { + yylval = (NOD) number; + return NUMBER; + } + else + { + /* We have either a decimal point with no exponent + or a string of digits whose value exceeds MAX_SLONG: + the returned type depends on the client dialect, + so warn of the difference if the client dialect is + SQL_DIALECT_V6_TRANSITION. + */ - if (client_dialect < SQL_DIALECT_V6_TRANSITION) - return FLOAT; - else if (have_decimal) - return SCALEDINT; - else - return NUMBER64BIT; - } - } /* else if (!have_exp) */ - } /* if (!have_error) */ + if (SQL_DIALECT_V6_TRANSITION == client_dialect) + { + /* Issue a warning about the ambiguity of the numeric + * numeric literal. There are multiple calls because + * the message text exceeds the 119-character limit + * of our message database. + */ + ERRD_post_warning( isc_dsql_warning_number_ambiguous, + gds_arg_string, + ERR_string( last_token, + ptr - last_token ), + gds_arg_end ); + ERRD_post_warning( isc_dsql_warning_number_ambiguous1, + gds_arg_end ); + } - /* we got some kind of error or overflow, so don't recognize this - * as a number: just pass it through to the next part of the lexer. - */ - } + yylval = (NOD) MAKE_string ((UCHAR *) last_token, + ptr - last_token); + + if (client_dialect < SQL_DIALECT_V6_TRANSITION) + return FLOAT; + else if (have_decimal) + return SCALEDINT; + else + return NUMBER64BIT; + } + } /* else if (!have_exp) */ + } /* if (!have_error) */ + + /* we got some kind of error or overflow, so don't recognize this + * as a number: just pass it through to the next part of the lexer. + */ + } /* Restore the status quo ante, before we started our unsuccessful attempt to recognize a number. */ - ptr = last_token; - c = *ptr++; -/* We never touched class, so it doesn't need to be restored. */ +ptr = last_token; +c = *ptr++; +/* We never touched tok_class, so it doesn't need to be restored. */ /* end of number-recognition code */ - if (class_ & CHR_LETTER) { +if (tok_class & CHR_LETTER) + { #if (! ( defined JPN_SJIS || defined JPN_EUC) ) - p = string; - CHECK_COPY_INCR(p, UPPER(c)); - for (; ptr < end && classes[*ptr] & CHR_IDENT; ptr++) { - if (ptr >= end) - return -1; - CHECK_COPY_INCR(p, UPPER(*ptr)); - } + p = string; + CHECK_COPY_INCR(p,UPPER (c)); + for (; ptr < end && classes [*ptr] & CHR_IDENT; ptr++) + { + if (ptr >= end) + return -1; + CHECK_COPY_INCR(p, UPPER (*ptr)); + } #else - for (; ptr <= end; c = *ptr++, c = c & 0xff) { - if (KANJI1(c)) { - CHECK_COPY_INCR(p, UPPER(c)); - if (ptr >= end) - break; - - c = *ptr++; - c = c & 0xff; - if (!KANJI2(c)) { - ptr--; - break; - } - else - CHECK_COPY_INCR(p, c); - } - else { + for (; ptr <= end ; c = *ptr++ , c = c & 0xff) + { + if (KANJI1(c)) + { + CHECK_COPY_INCR(p, UPPER (c)); + if (ptr >= end) + break; + + c = *ptr++; + c = c & 0xff; + if (!KANJI2(c)) + { + ptr--; + break; + } + else + CHECK_COPY_INCR(p,c); + } + else + { #ifdef JPN_SJIS - if ((SJIS_SINGLE(c)) || (classes[c] & CHR_IDENT)) + if ((SJIS_SINGLE(c)) || (classes[c] & CHR_IDENT) ) #else - if (classes[c] & CHR_IDENT) -#endif - { - CHECK_COPY_INCR(p, UPPER(c)); - if (ptr >= end) - break; - } - else { - ptr--; - break; - } - } + if (classes[c] & CHR_IDENT) +#endif + { + CHECK_COPY_INCR(p, UPPER(c)); + if (ptr >= end) + break; } + else + { + ptr--; + break; + } + } + } #endif /* JPN_SJIS || JPN_EUC */ - CHECK_BOUND(p); - *p = 0; - sym = - HSHD_lookup(0, (TEXT *) string, p - string, SYM_keyword, - parser_version); - if (sym) { - yylval = (NOD) sym->sym_object; - return sym->sym_keyword; - }; - yylval = (NOD) MAKE_string(string, p - string); - return SYMBOL; - } + CHECK_BOUND(p); + *p = 0; + sym = HSHD_lookup (NULL_PTR, (TEXT *) string, (SSHORT)(p - string), SYM_keyword, parser_version); + if (sym) + { + yylval = (NOD) sym->sym_object; + return sym->sym_keyword; + }; + yylval = (NOD) MAKE_string (string, p - string); + return SYMBOL; + } /* Must be punctuation -- test for double character punctuation */ - if (last_token + 1 < end) { - sym = HSHD_lookup(0, last_token, 2, SYM_keyword, parser_version); - if (sym) { - ++ptr; - return sym->sym_keyword; - } +if (last_token + 1 < end) + { + sym = HSHD_lookup (NULL_PTR, last_token, (SSHORT) 2, SYM_keyword, (USHORT) parser_version); + if (sym) + { + ++ptr; + return sym->sym_keyword; } + } /* Single character punctuation are simply passed on */ - return c; +return c; } -static void yyerror(TEXT * error_string) +static void yyerror ( + TEXT *error_string) { /************************************** * @@ -1239,22 +4311,27 @@ static void yyerror(TEXT * error_string) * **************************************/ - if (DSQL_yychar < 1) - ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, gds_arg_gds, gds_command_end_err, /* Unexpected end of command */ - 0); - else { - ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, gds_dsql_token_unk_err, - gds_arg_number, (SLONG) lines, - gds_arg_number, (SLONG) (last_token - line_start), - /* Token unknown - line %d, char %d */ - gds_arg_gds, gds_random, - gds_arg_cstring, (int) (ptr - last_token), last_token, 0); - } +if (DSQL_yychar < 1) + ERRD_post (gds_sqlerr, gds_arg_number, (SLONG) -104, + gds_arg_gds, gds_command_end_err, /* Unexpected end of command */ + 0); +else + { + ERRD_post (gds_sqlerr, gds_arg_number, (SLONG) -104, + gds_arg_gds, gds_dsql_token_unk_err, + gds_arg_number, (SLONG) lines, + gds_arg_number, (SLONG) (last_token - line_start), + /* Token unknown - line %d, char %d */ + gds_arg_gds, gds_random, + gds_arg_cstring, (int) (ptr - last_token), last_token, + 0); + } } -static void yyabandon( SSHORT sql_code, STATUS error_symbol) +static void yyabandon ( + SSHORT sql_code, + STATUS error_symbol) { /************************************** * @@ -1267,5530 +4344,2539 @@ static void yyabandon( SSHORT sql_code, STATUS error_symbol) * **************************************/ - ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) sql_code, - gds_arg_gds, error_symbol, 0); +ERRD_post (gds_sqlerr, gds_arg_number, (SLONG) sql_code, + gds_arg_gds, error_symbol, 0); } -static const yytabelem yyexca[] = { - -1, 1, - 0, -1, - -2, 0, - -1, 194, - 46, 836, - -2, 824, - -1, 299, - 40, 820, - 46, 836, - -2, 824, - -1, 363, - 412, 76, - -2, 206, - -1, 465, - 437, 399, - -2, 824, - -1, 637, - 344, 601, - -2, 577, - -1, 1042, - 344, 601, - -2, 578, - -1, 1069, - 278, 225, - 379, 225, - 401, 225, - 408, 225, - 442, 225, - -2, 213, - -1, 1114, - 278, 339, - -2, 123, - -1, 1200, - 278, 225, - 379, 225, - 401, 225, - 408, 225, - 442, 225, - -2, 214, - -1, 1231, - 278, 339, - -2, 124, - -1, 1407, - 344, 601, - -2, 331, - -1, 1484, - 344, 601, - -2, 332, -}; -# define YYNPROD 842 -# define YYLAST 3728 -static const yytabelem yyact[] = { - - 278, 1511, 1303, 596, 991, 269, 1471, 1185, 131, 1438, - 1428, 1039, 266, 853, 1512, 271, 1491, 1407, 850, 1414, - 567, 1422, 1421, 197, 1423, 128, 400, 916, 1408, 1386, - 222, 646, 641, 420, 528, 1305, 1416, 617, 265, 44, - 1189, 119, 45, 1178, 292, 758, 1323, 15, 940, 1232, - 120, 383, 593, 521, 1095, 937, 497, 906, 459, 699, - 611, 1078, 1050, 1080, 1201, 460, 270, 947, 1417, 122, - 159, 193, 791, 946, 914, 259, 280, 917, 263, 722, - 1082, 480, 721, 191, 1027, 136, 973, 792, 168, 527, - 207, 530, 130, 399, 205, 637, 785, 173, 478, 164, - 572, 708, 789, 966, 204, 1112, 744, 175, 377, 902, - 693, 494, 179, 206, 186, 223, 39, 790, 133, 571, - 1096, 257, 945, 120, 793, 468, 923, 474, 732, 190, - 690, 518, 769, 225, 996, 638, 1306, 226, 412, 396, - 569, 169, 575, 515, 766, 315, 737, 1235, 305, 304, - 303, 618, 371, 616, 707, 318, 466, 685, 192, 684, - 801, 1251, 1515, 1494, 509, 196, 187, 188, 47, 297, - 194, 461, 795, 308, 456, 160, 306, 307, 840, 1518, - 562, 214, 795, 264, 1281, 177, 672, 673, 674, 675, - 676, 677, 678, 679, 450, 335, 209, 297, 328, 449, - 562, 208, 368, 373, 1493, 448, 1410, 534, 224, 1283, - 345, 554, 424, 339, 354, 161, 640, 165, 46, 694, - 374, 686, 46, 992, 129, 193, 1468, 121, 121, 235, - 540, 137, 385, 559, 647, 194, 1113, 378, 193, 258, - 296, 92, 180, 134, 374, 163, 618, 329, 386, 787, - 397, 1492, 687, 554, 46, 1472, 796, 193, 367, 183, - 386, 761, 425, 452, 103, 384, 46, 1282, 788, 419, - 416, 367, 540, 297, 552, 559, 296, 187, 188, 364, - 555, 560, 551, 100, 548, 553, 549, 794, 546, 212, - 202, 46, 797, 382, 414, 94, 948, 794, 954, 1109, - 915, 121, 310, 798, 374, 47, 127, 974, 558, 109, - 557, 60, 635, 193, 374, 402, 552, 1425, 409, 651, - 99, 621, 555, 560, 551, 191, 548, 553, 549, 341, - 546, 1037, 578, 842, 433, 434, 435, 632, 124, 408, - 774, 550, 764, 372, 194, 773, 182, 163, 1211, 1462, - 558, 465, 557, 394, 1250, 506, 372, 42, 539, 327, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 502, 330, 505, 1463, - 556, 715, 1038, 550, 503, 45, 511, 385, 510, 102, - 712, 1110, 620, 418, 393, 163, 524, 525, 162, 98, - 539, 113, 576, 1175, 523, 702, 408, 1220, 799, 425, - 574, 331, 219, 115, 925, 541, 542, 706, 713, 573, - 384, 403, 556, 576, 101, 1504, 415, 710, 516, 367, - 904, 629, 501, 1218, 338, 533, 1281, 423, 532, 1122, - 405, 262, 103, 950, 630, 1292, 847, 634, 382, 939, - 256, 595, 504, 694, 112, 656, 488, 541, 542, 92, - 1387, 1283, 239, 846, 42, 1432, 69, 1296, 85, 250, - 455, 614, 462, 952, 1293, 78, 496, 70, 476, 86, - 84, 938, 565, 264, 62, 322, 701, 644, 645, 500, - 648, 649, 650, 652, 689, 407, 1179, 68, 580, 293, - 79, 100, 782, 903, 249, 264, 669, 655, 1295, 193, - 720, 293, 406, 94, 652, 1431, 472, 703, 117, 1282, - 1462, 191, 714, 668, 1228, 116, 1430, 700, 724, 624, - 926, 711, 247, 589, 323, 252, 736, 236, 99, 533, - 1499, 251, 532, 728, 729, 730, 731, 167, 254, 691, - 401, 254, 1204, 1396, 747, 587, 281, 619, 45, 390, - 723, 753, 407, 369, 857, 80, 104, 618, 281, 220, - 772, 754, 194, 709, 64, 969, 705, 248, 854, 1186, - 967, 1213, 87, 193, 755, 941, 942, 779, 1215, 385, - 45, 71, 193, 193, 615, 802, 516, 81, 778, 163, - 194, 82, 855, 820, 378, 397, 65, 102, 777, 566, - 66, 1046, 83, 73, 821, 752, 291, 98, 692, 163, - 576, 67, 805, 1481, 749, 1045, 815, 121, 717, 194, - 1429, 88, 47, 193, 781, 804, 47, 137, 1044, 1478, - 72, 566, 101, 734, 1334, 419, 324, 919, 1253, 366, - 803, 984, 740, 566, 841, 760, 856, 748, 750, 232, - 103, 305, 304, 303, 786, 187, 188, 414, 47, 844, - 818, 822, 915, 305, 304, 303, 194, 187, 188, 1461, - 47, 1459, 938, 704, 294, 295, 300, 301, 302, 306, - 307, 809, 768, 1424, 264, 42, 294, 295, 741, 388, - 812, 306, 307, 372, 1454, 47, 810, 387, 230, 229, - 618, 784, 849, 915, 217, 216, 864, 819, 975, 866, - 867, 868, 869, 870, 871, 872, 873, 874, 875, 891, - 808, 800, 813, 897, 591, 814, 859, 816, 380, 385, - 490, 1453, 894, 579, 1236, 526, 402, 92, 883, 1345, - 765, 350, 1344, 1371, 1455, 1299, 561, 682, 1219, 924, - 1032, 857, 410, 993, 843, 896, 911, 912, 485, 848, - 908, 908, 920, 680, 360, 854, 858, 484, 658, 660, - 662, 664, 666, 930, 909, 918, 1033, 486, 349, 100, - 352, 489, 963, 670, 960, 817, 1346, 1376, 1513, 855, - 264, 94, 45, 1340, 884, 218, 1182, 771, 485, 348, - 921, 1378, 100, 353, 889, 1021, 887, 881, 928, 888, - 882, 989, 990, 1528, 913, 492, 99, 1485, 898, 979, - 53, 857, 1024, 1043, 471, 959, 953, 561, 351, 775, - 1436, 54, 1399, 491, 818, 854, 57, 899, 49, 99, - 1514, 340, 336, 856, 931, 255, 955, 956, 957, 910, - 818, 1048, 643, 361, 642, 892, 895, 929, 58, 855, - 1040, 851, 359, 55, 934, 1144, 316, 1023, 476, 389, - 949, 326, 213, 968, 994, 999, 1002, 1005, 1008, 1011, - 1014, 1017, 1020, 1286, 1026, 102, 1029, 1030, 1054, 964, - 1051, 203, 982, 970, 961, 98, 1022, 517, 776, 1069, - 985, 981, 332, 219, 987, 1337, 980, 983, 102, 977, - 978, 1074, 1052, 856, 1053, 986, 1091, 879, 98, 988, - 101, 193, 811, 807, 193, 969, 57, 588, 52, 1067, - 1068, 421, 1070, 378, 334, 114, 191, 321, 1042, 45, - 45, 1075, 623, 101, 317, 1034, 1035, 392, 1087, 1001, - 1004, 1007, 1010, 1013, 1016, 1019, 622, 627, 631, 817, - 50, 1114, 344, 1025, 51, 1125, 818, 1066, 45, 818, - 234, 1098, 76, 75, 818, 817, 841, 738, 343, 746, - 333, 1094, 1097, 1097, 139, 1105, 1137, 1121, 745, 1093, - 1136, 1115, 1535, 585, 1071, 1072, 1465, 1076, 1111, 157, - 312, 1084, 1524, 314, 1507, 1463, 944, 1135, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 385, 125, 1107, 586, 170, 1102, - 1106, 1104, 193, 125, 1187, 733, 1103, 1143, 490, 1146, - 1083, 657, 1129, 125, 1190, 1525, 1120, 564, 125, 311, - 786, 1134, 1142, 1140, 1145, 1139, 1141, 125, 968, 1147, - 519, 1138, 461, 495, 694, 499, 171, 1205, 1226, 123, - 1176, 1194, 1167, 1168, 428, 1170, 1171, 667, 498, 1149, - 427, 594, 1181, 430, 426, 1177, 429, 665, 431, 489, - 1285, 817, 663, 428, 817, 1206, 890, 430, 1169, 817, - 735, 661, 431, 757, 759, 751, 1208, 1041, 485, 886, - 584, 385, 237, 1212, 56, 1214, 1209, 484, 725, 470, - 1086, 1203, 1079, 492, 908, 1202, 1207, 876, 1480, 1191, - 469, 1223, 742, 716, 512, 1242, 533, 1216, 45, 532, - 356, 491, 818, 242, 920, 370, 1196, 520, 96, 1117, - 1117, 264, 1210, 756, 1224, 1240, 1227, 918, 95, 863, - 432, 386, 264, 1246, 522, 97, 507, 1516, 1409, 1221, - 298, 1247, 1248, 90, 633, 1118, 1239, 1229, 1442, 296, - 231, 1238, 921, 1237, 1433, 89, 1480, 1241, 1395, 1245, - 430, 426, 1394, 429, 1393, 431, 1391, 493, 1119, 1116, - 193, 1479, 193, 1288, 107, 1389, 723, 1434, 862, 201, - 118, 1143, 419, 1388, 191, 43, 106, 1270, 438, 357, - 479, 1297, 1051, 1273, 1274, 1538, 1301, 1523, 1480, 1480, - 1500, 1531, 628, 1500, 45, 1451, 1298, 1329, 199, 1278, - 1275, 1332, 1289, 1276, 1052, 1279, 1287, 1445, 1192, 703, - 908, 1193, 1294, 1326, 215, 1290, 1202, 1464, 477, 125, - 1325, 1300, 1328, 1327, 1130, 1330, 1284, 1131, 1148, 1331, - 582, 1339, 385, 1338, 1335, 193, 1333, 1097, 976, 228, - 1374, 430, 426, 238, 429, 1343, 431, 1190, 1347, 759, - 1375, 227, 458, 193, 210, 1385, 974, 878, 463, 430, - 426, 457, 429, 659, 431, 419, 1123, 1373, 852, 1124, - 1368, 1099, 386, 1088, 1100, 1372, 1089, 1381, 1366, 1380, - 783, 428, 1364, 1365, 1390, 1377, 1382, 427, 971, 1369, - 296, 783, 727, 1367, 625, 428, 120, 610, 592, 578, - 274, 427, 273, 932, 381, 583, 933, 726, 1503, 386, - 1401, 1404, 454, 1405, 422, 297, 1402, 1397, 386, 221, - 296, 1530, 421, 880, 1392, 806, 863, 296, 583, 1418, - 376, 297, 718, 1419, 363, 719, 1486, 391, 375, 1411, - 1412, 1482, 1403, 610, 365, 404, 274, 1450, 273, 1379, - 193, 1363, 1437, 1413, 1441, 1362, 581, 1361, 1420, 582, - 1360, 297, 1440, 1359, 1426, 1439, 296, 1358, 1357, 120, - 1356, 1446, 293, 1355, 1444, 1354, 1353, 1418, 1448, 1435, - 1352, 1443, 1351, 1350, 1349, 1348, 193, 193, 428, 1447, - 1449, 385, 1342, 1457, 427, 1460, 1477, 1458, 1475, 1440, - 1466, 1473, 1439, 45, 120, 1456, 1483, 1469, 1341, 1277, - 1418, 1252, 1446, 1484, 1249, 193, 1244, 1496, 1487, 1243, - 1490, 1488, 1195, 193, 1476, 1184, 1497, 419, 385, 1501, - 1495, 193, 1183, 1132, 1128, 1475, 1127, 1474, 1473, 1126, - 1047, 1508, 865, 1505, 120, 654, 1506, 1489, 1446, 1510, - 193, 193, 224, 1509, 1400, 193, 385, 1526, 193, 1517, - 1527, 1476, 1440, 1521, 1398, 1439, 1519, 419, 1529, 193, - 419, 1370, 1222, 1446, 1474, 193, 1028, 1533, 1532, 428, - 1534, 1440, 1536, 1537, 1439, 427, 193, 419, 1539, 1522, - 1165, 1164, 1163, 1162, 1179, 1161, 1160, 428, 419, 1159, - 1158, 1157, 1520, 427, 1254, 1255, 1256, 1257, 1258, 1259, - 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, - 1180, 1156, 610, 293, 284, 274, 1155, 273, 1154, 1272, - 1153, 1152, 1151, 287, 305, 304, 303, 1150, 187, 188, - 297, 1073, 972, 770, 958, 296, 922, 282, 885, 861, - 839, 838, 767, 293, 277, 763, 762, 294, 295, 671, - 293, 739, 306, 307, 386, 319, 570, 508, 453, 293, - 284, 91, 612, 430, 426, 447, 429, 446, 431, 287, - 445, 444, 296, 59, 289, 430, 426, 443, 429, 442, - 431, 441, 440, 282, 439, 126, 597, 272, 275, 293, - 277, 274, 108, 273, 268, 1198, 430, 426, 267, 429, - 436, 431, 288, 279, 1174, 110, 297, 281, 612, 1315, - 17, 296, 1312, 11, 286, 609, 281, 608, 285, 607, - 289, 1307, 8, 606, 605, 604, 599, 603, 1197, 430, - 426, 602, 429, 275, 431, 601, 274, 600, 273, 598, - 1092, 1064, 430, 426, 417, 429, 37, 431, 288, 279, - 36, 297, 26, 25, 430, 426, 296, 429, 927, 431, - 286, 1180, 1452, 1415, 285, 437, 1280, 1188, 1049, 613, - 860, 639, 599, 636, 260, 305, 304, 303, 590, 187, - 188, 283, 1063, 430, 426, 395, 429, 233, 431, 111, - 32, 276, 626, 413, 1036, 845, 411, 253, 294, 295, - 246, 245, 244, 306, 307, 305, 304, 303, 299, 187, - 188, 243, 305, 304, 303, 613, 187, 188, 241, 290, - 240, 305, 304, 303, 194, 187, 188, 283, 294, 295, - 300, 301, 302, 306, 307, 294, 295, 276, 337, 284, - 306, 307, 166, 35, 294, 295, 34, 33, 287, 306, - 307, 305, 304, 303, 299, 187, 188, 398, 547, 544, - 543, 545, 282, 780, 951, 290, 538, 537, 293, 277, - 536, 535, 531, 529, 294, 295, 300, 301, 302, 306, - 307, 211, 77, 1077, 467, 487, 140, 612, 893, 464, - 313, 683, 158, 325, 320, 1271, 138, 132, 309, 289, - 48, 428, 1406, 1336, 936, 293, 1225, 427, 1018, 1108, - 935, 998, 379, 428, 1467, 284, 1427, 451, 1502, 427, - 1498, 1470, 1316, 1314, 287, 1311, 1310, 288, 279, 1309, - 1384, 1302, 1304, 1173, 428, 1081, 473, 135, 282, 286, - 427, 698, 697, 285, 293, 277, 1062, 430, 426, 696, - 429, 599, 431, 1015, 695, 1291, 998, 1200, 1065, 475, - 284, 275, 281, 1199, 274, 688, 273, 428, 743, 287, - 342, 1085, 901, 427, 1166, 289, 1217, 1090, 907, 297, - 428, 900, 483, 282, 296, 905, 427, 482, 481, 293, - 277, 514, 428, 347, 613, 1061, 430, 426, 427, 429, - 513, 431, 346, 288, 279, 185, 283, 1234, 1060, 430, - 426, 1233, 429, 1231, 431, 286, 276, 1230, 943, 285, - 289, 428, 355, 275, 1133, 962, 274, 427, 273, 563, - 305, 304, 303, 299, 187, 188, 358, 198, 195, 189, - 184, 297, 181, 178, 290, 176, 296, 174, 288, 279, - 172, 1101, 63, 294, 295, 300, 301, 302, 306, 307, - 286, 61, 965, 568, 285, 362, 200, 305, 304, 303, - 74, 187, 188, 105, 997, 1059, 430, 426, 93, 429, - 577, 431, 283, 16, 14, 13, 12, 10, 9, 7, - 294, 295, 276, 6, 5, 306, 307, 1058, 430, 426, - 4, 429, 3, 431, 2, 1, 305, 304, 303, 299, - 187, 188, 1057, 430, 426, 0, 429, 0, 431, 997, - 290, 0, 1056, 430, 426, 0, 429, 283, 431, 294, - 295, 300, 301, 302, 306, 307, 0, 276, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 305, 304, 303, 299, 187, 188, 0, 0, 0, - 0, 0, 0, 0, 0, 290, 0, 0, 0, 0, - 0, 0, 0, 0, 294, 295, 300, 301, 302, 306, - 307, 1012, 0, 0, 998, 428, 0, 0, 284, 0, - 0, 427, 0, 0, 1055, 430, 426, 287, 429, 0, - 431, 275, 0, 0, 274, 0, 273, 0, 877, 430, - 426, 282, 429, 0, 431, 0, 0, 293, 277, 297, - 0, 0, 0, 0, 296, 0, 534, 0, 0, 0, - 554, 0, 0, 0, 428, 653, 430, 426, 0, 429, - 427, 431, 0, 1009, 0, 0, 998, 428, 289, 540, - 284, 0, 559, 427, 0, 0, 0, 0, 0, 287, - 0, 0, 0, 275, 0, 0, 274, 0, 273, 0, - 0, 0, 0, 282, 0, 0, 288, 279, 0, 293, - 277, 297, 0, 0, 0, 0, 296, 0, 286, 0, - 0, 0, 285, 552, 0, 0, 0, 0, 0, 555, - 560, 551, 0, 548, 553, 549, 0, 546, 0, 0, - 289, 0, 0, 0, 428, 0, 0, 0, 0, 0, - 427, 0, 0, 0, 0, 275, 0, 558, 274, 557, - 273, 0, 0, 0, 0, 0, 428, 0, 288, 279, - 0, 0, 427, 297, 0, 0, 0, 997, 296, 0, - 286, 428, 0, 0, 285, 283, 0, 427, 0, 0, - 550, 428, 0, 0, 0, 276, 0, 427, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 539, 0, 305, - 304, 303, 299, 187, 188, 0, 0, 0, 0, 0, - 0, 0, 0, 290, 0, 0, 0, 0, 0, 556, - 0, 0, 294, 295, 300, 301, 302, 306, 307, 997, - 0, 0, 0, 0, 163, 0, 0, 283, 0, 0, - 0, 1006, 0, 0, 998, 0, 0, 276, 284, 0, - 0, 0, 0, 428, 541, 542, 0, 287, 0, 427, - 0, 305, 304, 303, 299, 187, 188, 428, 0, 0, - 0, 282, 0, 427, 0, 290, 0, 293, 277, 0, - 0, 0, 0, 0, 294, 295, 300, 301, 302, 306, - 307, 0, 0, 0, 428, 0, 0, 0, 0, 0, - 427, 0, 0, 1003, 0, 0, 998, 0, 289, 0, - 284, 0, 0, 0, 0, 0, 0, 0, 0, 287, - 0, 0, 0, 275, 0, 0, 274, 0, 273, 0, - 0, 0, 0, 282, 0, 0, 288, 279, 0, 293, - 277, 297, 0, 0, 0, 0, 296, 0, 286, 0, - 0, 0, 285, 0, 0, 0, 0, 275, 0, 261, - 274, 1209, 273, 0, 0, 1000, 0, 0, 998, 0, - 289, 0, 284, 0, 0, 297, 0, 0, 0, 0, - 296, 287, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 38, 0, 0, 282, 0, 0, 288, 279, - 0, 293, 277, 1308, 1319, 0, 1318, 997, 0, 1320, - 286, 0, 0, 0, 285, 283, 0, 0, 0, 0, - 0, 0, 0, 1321, 0, 276, 0, 0, 0, 1322, - 0, 0, 289, 0, 0, 0, 0, 0, 0, 305, - 304, 303, 299, 187, 188, 0, 0, 0, 0, 0, - 0, 0, 0, 290, 0, 0, 0, 0, 0, 0, - 288, 279, 294, 295, 300, 301, 302, 306, 307, 997, - 0, 0, 286, 0, 0, 0, 285, 283, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 276, 0, 1313, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 305, 304, 303, 299, 187, 188, 0, 42, 0, - 0, 0, 0, 0, 0, 290, 0, 0, 0, 0, - 0, 0, 0, 1317, 294, 295, 300, 301, 302, 306, - 307, 997, 0, 41, 0, 275, 0, 0, 274, 283, - 273, 0, 0, 995, 1324, 0, 998, 0, 0, 276, - 284, 194, 0, 297, 0, 0, 0, 0, 296, 287, - 0, 0, 0, 305, 304, 303, 299, 187, 188, 0, - 0, 0, 0, 282, 0, 0, 0, 290, 0, 293, - 277, 0, 0, 0, 284, 0, 294, 295, 300, 301, - 302, 306, 307, 287, 0, 0, 0, 275, 430, 426, - 274, 429, 273, 431, 0, 0, 0, 282, 0, 0, - 289, 0, 0, 293, 277, 297, 824, 823, 825, 0, - 296, 0, 534, 0, 0, 0, 554, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 288, 279, - 0, 0, 0, 0, 289, 540, 0, 0, 559, 0, - 286, 0, 0, 0, 285, 0, 0, 0, 275, 0, - 0, 274, 0, 273, 0, 0, 0, 0, 0, 0, - 281, 0, 288, 279, 0, 0, 297, 0, 0, 0, - 0, 296, 0, 0, 286, 0, 0, 0, 285, 552, - 0, 0, 0, 0, 0, 555, 560, 551, 0, 548, - 553, 549, 0, 546, 0, 0, 0, 0, 0, 997, - 0, 0, 0, 0, 0, 0, 0, 283, 0, 0, - 0, 0, 0, 558, 0, 557, 0, 276, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 305, 304, 303, 299, 187, 188, 0, 0, 0, - 0, 283, 0, 0, 0, 290, 550, 0, 0, 0, - 0, 276, 284, 0, 294, 295, 300, 301, 302, 306, - 307, 287, 0, 539, 0, 305, 304, 303, 299, 187, - 188, 0, 0, 0, 0, 282, 0, 0, 0, 290, - 0, 293, 277, 0, 0, 556, 0, 0, 294, 295, - 300, 301, 302, 306, 307, 0, 0, 0, 0, 275, - 681, 0, 274, 0, 273, 0, 0, 0, 0, 0, - 0, 0, 289, 0, 284, 0, 0, 297, 831, 0, - 541, 542, 296, 287, 0, 0, 428, 0, 0, 0, - 0, 0, 427, 0, 0, 835, 0, 282, 281, 0, - 288, 279, 0, 293, 277, 0, 0, 0, 0, 0, - 0, 0, 286, 0, 0, 0, 285, 0, 0, 0, - 275, 0, 0, 274, 0, 273, 0, 0, 0, 0, - 0, 826, 0, 0, 289, 284, 0, 0, 297, 0, - 834, 0, 0, 296, 287, 0, 0, 0, 837, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 282, 0, - 0, 0, 288, 279, 293, 277, 0, 827, 0, 833, - 0, 0, 0, 0, 286, 0, 0, 0, 285, 283, - 0, 0, 0, 830, 0, 832, 828, 829, 0, 276, - 0, 0, 0, 0, 0, 289, 0, 0, 0, 0, - 0, 0, 0, 305, 304, 303, 299, 187, 188, 0, - 0, 0, 0, 0, 0, 0, 1209, 290, 0, 0, - 0, 0, 0, 288, 279, 0, 294, 295, 300, 301, - 302, 306, 307, 0, 0, 286, 836, 0, 0, 285, - 0, 283, 0, 0, 0, 0, 0, 38, 0, 0, - 0, 276, 0, 0, 1383, 0, 0, 0, 1308, 1319, - 0, 1318, 1172, 0, 1320, 305, 304, 303, 299, 187, - 188, 0, 0, 0, 0, 0, 0, 0, 1321, 290, - 0, 0, 0, 0, 1322, 0, 284, 0, 294, 295, - 300, 301, 302, 306, 307, 287, 0, 0, 0, 0, - 0, 275, 283, 0, 274, 0, 273, 0, 0, 282, - 0, 0, 276, 0, 0, 293, 277, 0, 0, 297, - 0, 0, 0, 1031, 296, 0, 305, 304, 303, 299, - 187, 188, 0, 0, 0, 0, 0, 0, 0, 0, - 290, 0, 0, 0, 1313, 0, 289, 284, 0, 294, - 295, 300, 301, 302, 306, 307, 287, 0, 0, 0, - 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, - 282, 0, 0, 0, 288, 279, 293, 277, 1317, 0, - 0, 0, 0, 0, 0, 0, 286, 0, 41, 0, - 285, 0, 0, 0, 0, 0, 0, 1387, 0, 1324, - 0, 0, 0, 0, 0, 0, 194, 289, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 288, 279, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 286, 653, 430, - 426, 285, 429, 283, 431, 0, 0, 0, 0, 0, - 0, 0, 0, 276, 0, 0, 0, 824, 823, 825, - 0, 0, 0, 0, 0, 0, 0, 305, 304, 303, - 299, 187, 188, 0, 0, 0, 0, 0, 0, 0, - 0, 290, 0, 0, 0, 0, 0, 0, 437, 0, - 294, 295, 300, 301, 302, 306, 307, 0, 0, 0, - 0, 0, 0, 0, 283, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 276, 0, 0, 0, 284, 0, - 0, 0, 0, 0, 0, 0, 0, 287, 305, 304, - 303, 299, 187, 188, 0, 0, 19, 0, 0, 0, - 0, 282, 290, 0, 0, 0, 0, 293, 277, 0, - 0, 294, 295, 300, 301, 302, 306, 307, 22, 0, - 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, - 0, 0, 0, 18, 0, 24, 0, 38, 289, 0, - 0, 0, 27, 0, 0, 0, 0, 0, 0, 29, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 28, 0, 0, 288, 279, 0, 0, - 0, 0, 0, 0, 21, 0, 0, 0, 286, 0, - 0, 0, 285, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 831, - 0, 0, 0, 0, 0, 0, 0, 428, 0, 0, - 0, 20, 0, 427, 0, 283, 835, 0, 30, 0, - 0, 31, 0, 42, 40, 276, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 305, - 304, 303, 299, 187, 188, 0, 0, 0, 41, 0, - 0, 0, 826, 290, 0, 0, 0, 0, 0, 0, - 0, 834, 294, 295, 300, 301, 302, 306, 307, 837, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 827, 0, - 833, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 830, 0, 832, 828, 829, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 836 -}; -static const yytabelem yypact[] = { - - 3175, -10000000, 1166, -10000000, -10000000, -10000000, -10000000, - -10000000, -10000000, -10000000, - -10000000, -10000000, -10000000, -10000000, -10000000, -10000000, - -10000000, -10000000, 246, 535, - 851, 595, -145, 171, 665, -10000000, -10000000, 162, 199, 163, - -19, -145, 13, -10000000, -10000000, -10000000, -10000000, -10000000, 624, - -10000000, - 87, -234, 775, -10000000, -10000000, -10000000, -153, -10000000, - -10000000, -237, - -234, -218, -230, -10000000, 548, -286, -216, -234, -216, 137, - -10000000, -10000000, -237, 773, -230, -234, -218, -219, -202, -296, - -226, -154, -197, -10000000, -10000000, -171, 578, -10000000, -237, -286, - -230, -234, -218, -219, -171, -172, 559, -154, -197, 331, - 330, 368, 167, 1325, -10000000, -10000000, -10000000, -10000000, - -10000000, -10000000, - -10000000, 1462, 1462, -10000000, -230, 487, 325, 324, 869, 273, - -10000000, 661, 277, 848, -234, -202, 126, 517, 31, -10000000, - -222, -10000000, 2457, -10000000, -10000000, -10000000, -10000000, - -10000000, -296, -10000000, - 752, -10000000, -10000000, 619, -10000000, -10000000, 1575, -10000000, - 227, -60, - -10000000, -10000000, -10000000, -10000000, -10000000, -10000000, - -10000000, -10000000, -10000000, -10000000, - -10000000, -10000000, -10000000, -10000000, -10000000, -10000000, - -10000000, -10000000, -10000000, 655, - -10000000, 623, -10000000, -10000000, 1462, 511, -10000000, 9, -296, 513, - -10000000, -10000000, -10000000, 1575, -10000000, 671, -10000000, 653, - -10000000, 1462, - -10000000, -10000000, -10000000, -10000000, -10000000, 394, -10000000, - -10000000, -248, -10000000, - 886, -10000000, -10000000, 1183, -10000000, -10000000, 506, -10000000, - -10000000, -10000000, - -10000000, 526, -10000000, -182, -10000000, -10000000, -10000000, - -10000000, -10000000, -10000000, - -10000000, -10000000, -10000000, -182, -10000000, -10000000, -233, 160, - -241, -197, - -10000000, 510, -10000000, -10000000, -226, -10000000, 1314, 323, 315, - -233, - 156, -241, 638, -10000000, -49, -10000000, 46, -291, -138, -16, - -10000000, 126, -10000000, -10000000, -10000000, -10000000, -10000000, 55, - -10000000, -133, - 400, -10000000, -234, -10000000, -9, -286, -226, -10000000, -10000000, - 620, - 1320, -10000000, -10000000, -52, 1249, -10000000, 1079, -10000000, - -10000000, -10000000, - -10000000, -10000000, -10000000, 3151, 3151, 2970, -10000000, -10000000, - 1182, -10000000, - -10000000, -10000000, 1604, 1602, 1601, 1599, 1597, 1591, 1590, 1587, - 1585, -10000000, -10000000, -257, -263, -268, -10000000, -198, 1578, - -10000000, - -10000000, -10000000, -10000000, -10000000, -10000000, -10000000, - -10000000, -10000000, -10000000, 1318, - -10000000, -114, -117, -110, -314, 870, -10000000, -10000000, 104, -216, - 227, -10000000, 419, 429, 461, -60, -10000000, -10000000, 785, 787, - -216, -10000000, -10000000, -10000000, -234, -61, -234, -10000000, - -10000000, -10000000, - -286, 104, 1577, -185, -234, 880, 769, 394, -10000000, 1113, - 1113, -296, -296, 372, -10000000, 2489, -10000000, 138, 770, -10000000, - -10000000, 209, -10000000, 1576, -10000000, -10000000, -18, -10000000, - -234, -230, - 288, -10000000, -10000000, -217, -10000000, -10000000, -10000000, 1365, - -10000000, -10000000, - 1311, 1569, -10000000, -10000000, -10000000, -10000000, -310, -233, 152, - 616, - -230, 1305, -10000000, 351, -10000000, 1304, -10000000, 811, 811, - -10000000, - -10000000, -10000000, 1353, 108, -10000000, -10000000, -10000000, -57, - -57, -10000000, - 123, 1300, -10000000, 923, -10000000, 2, -10000000, 293, -10000000, 1123, - -141, 176, 2635, -10000000, -199, -10000000, 3151, 3151, -227, 3151, - 3151, 3151, 3151, 1065, 1065, 2154, 1454, 775, 158, 1009, - 807, 798, 793, 783, 2635, 3151, -202, -287, -10000000, -10000000, - -10000000, -10000000, -10000000, 2909, 752, -309, -209, -10000000, - -10000000, -66, - 85, -209, 178, -20, -317, -10000000, -10000000, 175, -10000000, 88, - 79, 879, 1575, 1341, -10000000, 2489, -10000000, -10000000, 459, - -10000000, - -10000000, -10000000, -10000000, -296, 1088, -10000000, -10000000, 1298, - -10000000, 1113, - 1113, 1113, 1113, -10000000, 744, -10000000, -10000000, 832, -10000000, - -10000000, - -10000000, 2489, 669, 1571, -10000000, 669, 314, 878, -117, -296, - -10000000, 619, -10000000, -10000000, 769, -10000000, -10000000, - -10000000, -10000000, 838, - -10000000, -154, -10000000, -213, -10000000, -10000000, -296, -10000000, - -10000000, -10000000, - -10000000, -10000000, 1072, 1022, 221, -10000000, -10000000, -10000000, - -10000000, -10000000, - -10000000, -10000000, -10000000, 1566, 1565, 302, 1562, 1562, 1553, 457, - -10000000, 170, -10000000, -10000000, -103, -108, -10000000, -10000000, - 562, -10000000, - -10000000, -10000000, -10000000, -296, -10000000, 208, 173, -10000000, 90, - 1286, - -10000000, -10000000, -24, -147, -10000000, -29, -10000000, -10000000, - -241, -305, - -10000000, -10000000, -226, 1569, 1334, -10000000, 612, -230, -147, 611, - -10000000, -226, -291, 773, -227, 773, 408, 334, -10000000, 1532, - -10000000, -10000000, -10000000, -10000000, -10000000, -10000000, - -10000000, -10000000, -10000000, -10000000, - 1307, 2696, 1561, 1560, -10000000, -10000000, -308, -10000000, -10000000, - -10000000, - -10000000, -116, -10000000, -10000000, 122, -234, -10000000, -234, 42, - -10000000, - -10000000, -10000000, -226, 2635, 542, 1532, 1274, 242, -10000000, - -10000000, - 176, 1559, -10000000, -10000000, 1065, 823, -10000000, -10000000, 1065, - 804, - 804, 1125, 1249, -10000000, -10000000, 3151, -10000000, 1451, 3151, 3151, - 3151, 3151, 3151, 3151, 3151, 3151, 3151, 3151, 873, 2127, - 1263, 606, -10000000, -10000000, -10000000, -10000000, -10000000, - -10000000, -10000000, -10000000, - 1332, -10000000, -10000000, -10000000, -10000000, -10000000, -10000000, - -10000000, 744, 789, - -10000000, -10000000, -10000000, 1558, 845, -10000000, -10000000, - -10000000, -10000000, -10000000, - 1462, 474, 469, 828, -10000000, -154, -216, 1913, -10000000, -154, - -10000000, -10000000, -10000000, -10000000, -10000000, -10000000, - -10000000, -10000000, -10000000, -216, - -10000000, -10000000, 837, -10000000, 73, -296, -296, 461, -213, -213, - -154, -159, -10000000, 203, -10000000, 1556, -10000000, 391, 93, 2635, - 391, -234, -10000000, 1312, -10000000, -10000000, -10000000, -10000000, - 870, 63, - -10000000, 30, -10000000, 193, -10000000, 715, 251, 251, -10000000, 24, - 56, 254, -154, -154, -154, 1554, -10000000, 251, -10000000, -10000000, - -154, 1553, -10000000, -10000000, -10000000, -10000000, -10000000, 435, - 209, -10000000, - -10000000, -10000000, 540, -10000000, 1297, -10000000, -10000000, - -10000000, 1552, 263, - 1244, -10000000, -10000000, -10000000, -217, -217, -230, -218, -219, -147, - -10000000, 265, -10000000, -10000000, -10000000, -10000000, -10000000, - -157, 604, 1262, - 1244, -147, 1236, -10000000, -10000000, -10000000, -10000000, 1532, 1532, - -238, - -10000000, 722, 3297, 2423, 2245, 2183, 2121, 1943, 1881, 1653, - 1608, 3151, 543, 3151, 1486, 3151, 2758, 407, 46, 46, - -10000000, -10000000, -10000000, -10000000, -10000000, -75, -10000000, - -10000000, -10000000, -10000000, - 538, 843, 176, 489, -10000000, 249, 236, 222, 1449, 242, - -222, 2635, -10000000, 3151, 1051, -10000000, 2113, 2041, 2031, 2016, - 1994, 1927, 1914, 1865, 1701, 1660, -10000000, -10000000, 3151, 3151, - -10000000, -10000000, -10000000, -10000000, -10000000, -10000000, - -10000000, -10000000, 1462, 1462, - 1551, -10000000, -10000000, -10000000, -10000000, -10000000, 868, - -10000000, 750, -10000000, - -10000000, 73, -10000000, 864, 1113, 1282, -10000000, -10000000, - -10000000, -10000000, - -10000000, -10000000, -10000000, -10000000, -10000000, -10000000, - -10000000, -10000000, -10000000, -10000000, - -10000000, -10000000, 1532, -10000000, 213, 177, 177, 1280, -10000000, - -10000000, - 168, 750, -10000000, -117, 175, -156, -50, -10000000, 775, -225, - -10000000, -10000000, -10000000, -10000000, -10000000, 1116, -10000000, - 1127, -213, 1115, - -225, 837, 16, 1275, 246, 1448, 1445, 1443, -154, 1233, - 1442, -10000000, 459, 1113, 690, 686, -10000000, 180, -24, -154, - -10000000, -10000000, -154, -10000000, -147, 547, -147, -10000000, - -10000000, -10000000, - -10000000, -10000000, 263, 1244, -10000000, 1234, -157, 1262, 1244, 890, - -10000000, -10000000, -10000000, -10000000, 1249, 1547, 1542, -10000000, - -10000000, 1249, - 1541, 1540, 1249, 1538, 1536, 1249, 1531, 1511, 1249, 1510, - 1509, 1249, 1506, 1505, 1249, 1503, 1502, 1249, 1501, 1500, - 1672, 3151, 3151, 1486, 3151, 2697, 1581, -10000000, 1126, 1249, - 1249, 3151, -10000000, 453, 1441, 1434, -10000000, -10000000, -10000000, - 182, - 1532, -226, 242, 176, -10000000, -10000000, -10000000, -10000000, - -10000000, 1217, - -10000000, -10000000, 1249, 1249, -141, -10000000, -10000000, -10000000, - -10000000, -10000000, - -10000000, -10000000, -10000000, -10000000, -10000000, 1431, 2489, 1647, - 1614, 784, - 3151, -10000000, 144, 1532, -10000000, -10000000, -10000000, -10000000, - -10000000, -10000000, - 855, 750, -10000000, -99, -10000000, -213, 189, -213, 197, -296, - 10, 717, -10000000, -10000000, -10000000, -30, -10000000, -10000000, - -10000000, -10000000, - 2635, -10000000, 1236, -10000000, 1482, 855, -10000000, -10000000, - -10000000, 800, - 264, 2457, -10000000, -10000000, 365, 203, -10000000, 251, 251, 837, - -10000000, -10000000, -159, -10000000, 246, 1428, -10000000, -10000000, - -10000000, 1425, - -10000000, 251, -10000000, -10000000, 459, -213, -296, -296, 1423, -113, - -10000000, 1420, -10000000, -10000000, 262, -10000000, -10000000, - -10000000, -157, 1234, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 3151, 1593, 1267, -10000000, - 1249, 1249, 3151, 3151, 1209, 1418, -10000000, -10000000, -10000000, 775, - -10000000, 1249, -10000000, -10000000, -10000000, -10000000, 92, 408, - 1232, -10000000, - 820, 509, -10000000, 2635, 542, -10000000, -10000000, -10000000, - -10000000, 811, - 784, -10000000, 66, 1249, -234, 714, -10000000, 750, -10000000, 2230, - -10000000, -226, -10000000, -10000000, 193, -296, -10000000, -10000000, - 1113, -10000000, - 177, -10000000, -10000000, -10000000, 868, -10000000, 258, -10000000, 63, - 594, - 811, 365, -10000000, -10000000, -10000000, -10000000, 450, -10000000, - -10000000, -10000000, - -10000000, -10000000, 1417, -10000000, -10000000, 1401, 193, 380, 377, - -10000000, - -10000000, 440, 837, -10000000, 1394, 1393, 1392, 1391, 1389, 1385, - 1384, 1382, 1379, 1377, 1376, 1372, 1369, 1366, 1364, 1360, - 1249, 3151, 3151, 1249, 1249, -10000000, 1277, -10000000, 3151, -10000000, - 1481, -10000000, 384, -10000000, -226, -227, 1532, -10000000, 538, - -10000000, - -10000000, -10000000, 444, -234, -10000000, -10000000, 466, 1358, 1462, - -10000000, - 855, -10000000, 2835, -10000000, -10000000, -10000000, 1164, 1156, -237, - -10000000, - -10000000, -10000000, 1147, 3151, -10000000, 1145, -10000000, 1143, 1139, - 150, - 46, 1474, 505, 501, 1464, 2489, -10000000, -10000000, -213, -10000000, - -10000000, 3151, -10000000, -10000000, -10000000, -10000000, -141, 166, - -10000000, -10000000, - -10000000, -10000000, -10000000, -10000000, -296, -296, -10000000, - -10000000, -10000000, -10000000, - -10000000, -10000000, -10000000, -10000000, -10000000, -10000000, - -10000000, -10000000, -10000000, -10000000, - -10000000, -10000000, -10000000, -10000000, 1249, 1249, -10000000, - -10000000, -10000000, 1051, - -160, -10000000, -10000000, -10000000, 408, 182, -10000000, 1462, - -10000000, -10000000, - 309, -10000000, -10000000, -10000000, 8, -10000000, -10000000, 202, - -10000000, -10000000, - 1135, -10000000, 1158, -10000000, -10000000, -10000000, -230, 499, 1532, - 111, - 1532, 1129, -10000000, 1249, -10000000, 542, 1213, 242, -10000000, - -10000000, - 166, -10000000, -10000000, -141, 1356, 1201, 366, -10000000, -234, - -10000000, - 309, -10000000, 297, 295, 77, -10000000, -10000000, 962, -10000000, 246, - -235, -237, -10000000, -10000000, -10000000, 215, 111, 598, 1152, - -10000000, - -10000000, 582, -10000000, 1350, 538, 166, 483, 1345, 242, 542, - -10000000, -160, -10000000, -10000000, 1457, -286, -10000000, -10000000, - -10000000, 713, - -10000000, -94, -215, -215, 2230, 202, -10000000, -10000000, -10000000, - -10000000, - 129, 1199, 1323, -10000000, -10000000, -10000000, -10000000, 1094, -11, - -10000000, - 111, 709, -10000000, 182, 242, 166, -10000000, 538, -10000000, -286, - -10000000, -10000000, -10000000, 497, -302, -10000000, -10000000, - -10000000, 1118, 139, - 1323, 1196, 707, 761, 2230, -10000000, -10000000, 2230, -10000000, 439, - 182, 1330, 1197, -10000000, -10000000, -10000000, -10000000, 1195, 111, - -10000000, - -10000000, -10000000, -10000000, -10000000, 2230, -238, 694, -10000000, - 1532, -10000000, - -10000000, -286, 1194, -10000000, -10000000, 2230, 408, -10000000, - -10000000, -10000000 -}; -static const yytabelem yypgo[] = { - - 0, 2065, 2064, 2062, 2060, 2054, 2053, 2049, 1681, 2048, - 2047, 1672, 2046, 2045, 2044, 46, 2043, 1669, 20, 1195, - 649, 102, 86, 1183, 142, 117, 1621, 1155, 2040, 41, - 2038, 1158, 30, 32, 2033, 87, 72, 118, 112, 124, - 1168, 1175, 152, 2030, 2026, 2025, 1180, 2023, 2022, 44, - 96, 91, 93, 45, 140, 119, 100, 103, 1219, 120, - 2021, 25, 2012, 141, 14, 2011, 2010, 2007, 2005, 2003, - 2002, 2000, 1999, 1998, 1997, 108, 115, 110, 56, 60, - 27, 1996, 1989, 1985, 1984, 53, 37, 48, 98, 81, - 58, 1982, 89, 1978, 1977, 52, 77, 1973, 49, 1971, - 1967, 147, 3, 346, 1965, 1962, 1960, 1953, 809, 1951, - 143, 907, 131, 105, 74, 1948, 1947, 1945, 57, 1942, - 1941, 1938, 1937, 1936, 1932, 109, 1931, 1930, 1928, 106, - 998, 989, 1925, 128, 1923, 34, 130, 158, 111, 31, - 12, 1919, 1918, 51, 38, 76, 1917, 64, 65, 1915, - 22, 59, 1914, 221, 1909, 1902, 1901, 21, 24, 16, - 155, 834, 63, 35, 1897, 1896, 127, 1895, 80, 2, - 1892, 1891, 1890, 136, 1889, 1886, 1885, 1883, 1882, 1881, - 1880, 9, 1878, 15, 1877, 6, 4, 29, 1876, 10, - 1874, 1872, 738, 66, 1870, 1869, 1866, 1864, 55, 69, - 75, 1863, 26, 18, 11, 7, 1862, 17, 28, 1178, - 13, 145, 125, 101, 61, 23, 1860, 1858, 1857, 1856, - 1854, 994, 1853, 1852, 881, 302, 1851, 1850, 1849, 1848, - 1846, 947, 1845, 1844, 1843, 1842, 8, 1841, 1833, 1832, - 82, 122, 79, 73, 67, 1831, 1830, 1827, 1826, 1824, - 1823, 1821, 1820, 1819, 144, 1818, 1817, 132, 1807, 1806, - 1803, 1633, 1802, 1798, 1780, 1778, 1153, 1771, 1762, 1761, - 1760, 541, 1757, 557, 1756, 1755, 1754, 138, 1753, 1752, - 1750, 1749, 1747, 116, 1745, 139, 1738, 33, 338, 1734, - 441, 78, 437, 1733, 95, 135, 1731, 1730, 0, 1728, - 62, 1727, 40, 68, 1726, 19, 1723, 36, 1722, 1, - 1718, 1713, 1712, 550, 1710, 1706, 1704, 146, 126, 54, - 1700, 398, 1699, 1697, 1695, 1691, 1687, 1685, 1684, 1683, - 1679, 1677, 1675, 403, 134, 84, 1664, 1660, 1658, 1654, - 5, 1647, 319, 616, 43, 1645, 1609 -}; -static const yytabelem yyr1[] = { - - 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 10, - 10, 10, 10, 10, 20, 20, 19, 19, 19, 30, - 30, 23, 31, 31, 31, 31, 31, 22, 22, 28, - 28, 24, 13, 13, 13, 13, 13, 13, 13, 34, - 25, 25, 25, 25, 35, 35, 35, 21, 21, 36, - 36, 36, 26, 26, 40, 27, 27, 42, 42, 7, - 43, 43, 45, 50, 50, 50, 47, 47, 47, 54, - 54, 55, 48, 48, 57, 57, 57, 57, 44, 6, - 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, - 60, 62, 62, 65, 65, 65, 73, 81, 81, 81, - 82, 82, 83, 83, 84, 84, 88, 88, 72, 91, - 91, 93, 93, 94, 94, 97, 97, 98, 99, 99, - 100, 101, 70, 74, 71, 85, 85, 104, 105, 105, - 107, 107, 108, 108, 108, 108, 108, 106, 106, 109, - 109, 110, 110, 110, 110, 112, 112, 112, 112, 111, - 111, 116, 116, 115, 89, 117, 117, 118, 121, 122, - 122, 123, 119, 120, 120, 124, 124, 125, 125, 126, - 126, 126, 87, 87, 87, 67, 127, 127, 127, 128, - 128, 129, 129, 130, 130, 130, 136, 77, 77, 132, - 132, 95, 95, 90, 141, 142, 56, 133, 133, 96, - 96, 96, 96, 134, 134, 146, 146, 147, 149, 149, - 149, 149, 149, 131, 148, 148, 152, 152, 152, 152, - 154, 155, 156, 151, 150, 150, 150, 150, 150, 157, - 158, 159, 159, 159, 159, 66, 164, 160, 160, 161, - 161, 165, 165, 166, 162, 162, 167, 167, 168, 169, - 169, 163, 163, 171, 171, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 174, 175, - 176, 176, 177, 183, 179, 179, 179, 180, 180, 180, - 185, 185, 185, 185, 185, 185, 185, 185, 181, 181, - 181, 181, 178, 182, 182, 172, 172, 187, 188, 188, - 189, 189, 189, 189, 12, 191, 191, 191, 192, 192, - 192, 192, 192, 192, 69, 194, 197, 197, 197, 198, - 201, 206, 206, 207, 207, 208, 208, 138, 196, 78, - 80, 195, 195, 68, 211, 211, 211, 212, 212, 212, - 212, 212, 212, 213, 213, 214, 3, 216, 216, 216, - 216, 216, 216, 216, 222, 222, 224, 224, 224, 224, - 224, 224, 224, 217, 217, 225, 225, 225, 225, 225, - 225, 225, 221, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, - 227, 227, 229, 229, 228, 226, 226, 226, 223, 223, - 219, 220, 220, 231, 231, 231, 231, 232, 232, 218, - 233, 233, 234, 234, 9, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 92, 92, 135, 135, - 238, 238, 241, 241, 243, 243, 51, 51, 240, 240, - 240, 240, 240, 240, 240, 240, 248, 248, 239, 239, - 239, 239, 249, 249, 59, 59, 59, 53, 53, 245, - 245, 245, 242, 242, 242, 253, 253, 253, 252, 252, - 251, 251, 251, 246, 246, 256, 254, 254, 254, 255, - 255, 247, 247, 247, 247, 257, 257, 16, 16, 16, - 259, 259, 259, 5, 14, 261, 261, 262, 262, 263, - 263, 258, 264, 264, 265, 265, 266, 266, 266, 266, - 267, 267, 268, 268, 269, 269, 271, 271, 271, 272, - 272, 272, 273, 273, 273, 270, 275, 275, 275, 276, - 276, 274, 274, 277, 279, 279, 278, 278, 260, 15, - 280, 280, 280, 281, 281, 284, 284, 285, 285, 63, - 63, 63, 282, 282, 286, 286, 283, 199, 199, 200, - 200, 289, 289, 290, 290, 290, 287, 293, 293, 294, - 294, 295, 295, 296, 296, 297, 297, 299, 299, 300, - 300, 209, 209, 29, 210, 210, 210, 210, 210, 210, - 210, 210, 203, 203, 301, 301, 302, 302, 204, 204, - 202, 202, 205, 205, 303, 304, 304, 304, 304, 304, - 305, 305, 306, 306, 307, 307, 308, 308, 308, 309, - 309, 11, 11, 310, 310, 8, 8, 311, 312, 313, - 17, 17, 314, 315, 316, 316, 173, 291, 291, 4, - 4, 317, 317, 317, 319, 319, 59, 318, 318, 320, - 320, 32, 32, 76, 75, 75, 140, 140, 140, 137, - 102, 102, 102, 102, 322, 322, 322, 322, 322, 322, - 322, 322, 322, 322, 322, 323, 323, 323, 323, 323, - 323, 323, 323, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 334, - 334, 324, 324, 325, 325, 325, 325, 326, 326, 330, - 330, 331, 331, 331, 331, 329, 332, 327, 327, 335, - 335, 333, 337, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 79, 145, 145, 145, 338, 342, - 342, 143, 143, 343, 343, 343, 343, 343, 340, 340, - 340, 340, 340, 336, 336, 336, 336, 336, 336, 193, - 344, 49, 49, 18, 18, 215, 345, 52, 114, 244, - 244, 86, 339, 339, 339, 339, 339, 339, 339, 339, - 339, 339, 339, 339, 339, 339, 339, 341, 341, 346, - 346, 346, 346, 346, 346, 346, 346, 288, 288, 144, - 46, 250, 113, 139, 321, 153, 186, 237, 61, 58, - 190, 103, 64, 292, 33, 41, 298, 236, 37, 39, - 184, 38 -}; -static const yytabelem yyr2[] = { - - 0, 3, 5, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 5, 15, - 17, 13, 15, 11, 2, 5, 3, 5, 3, 2, - 7, 3, 3, 3, 3, 5, 5, 7, 1, 7, - 1, 3, 15, 17, 13, 15, 13, 15, 9, 7, - 2, 7, 7, 7, 5, 5, 5, 2, 7, 3, - 5, 5, 2, 7, 3, 2, 7, 3, 5, 5, - 5, 7, 17, 2, 3, 11, 1, 2, 7, 2, - 7, 5, 2, 7, 5, 7, 9, 5, 19, 5, - 7, 15, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 3, 1, 3, 2, 13, 13, 3, 3, 1, - 1, 3, 1, 9, 1, 2, 2, 5, 17, 3, - 1, 7, 1, 1, 2, 2, 5, 3, 2, 2, - 5, 13, 3, 3, 7, 0, 2, 3, 1, 2, - 2, 5, 7, 9, 5, 5, 7, 1, 2, 2, - 5, 2, 2, 2, 9, 7, 7, 7, 7, 3, - 3, 13, 7, 3, 7, 2, 7, 5, 3, 0, - 4, 7, 3, 0, 2, 2, 4, 7, 9, 0, - 2, 4, 0, 2, 2, 11, 7, 5, 1, 2, - 7, 2, 2, 13, 7, 5, 13, 4, 2, 5, - 5, 5, 1, 3, 3, 5, 1, 5, 1, 3, - 3, 3, 3, 1, 2, 2, 5, 5, 5, 9, - 2, 3, 5, 5, 5, 1, 2, 2, 2, 2, - 5, 7, 15, 13, 3, 3, 5, 5, 1, 7, - 7, 3, 5, 5, 5, 17, 17, 7, 1, 5, - 1, 2, 7, 5, 3, 1, 2, 5, 11, 2, - 2, 7, 9, 2, 5, 4, 4, 7, 2, 2, - 2, 4, 7, 2, 4, 2, 5, 5, 13, 15, - 17, 13, 9, 5, 3, 7, 1, 5, 9, 1, - 2, 2, 2, 2, 7, 7, 7, 7, 2, 2, - 7, 7, 13, 7, 1, 2, 5, 9, 2, 7, - 5, 5, 5, 3, 9, 3, 7, 1, 2, 2, - 2, 7, 7, 7, 15, 3, 3, 7, 9, 17, - 5, 2, 7, 2, 2, 13, 7, 1, 1, 1, - 1, 7, 1, 19, 3, 3, 1, 5, 5, 5, - 5, 5, 5, 5, 1, 9, 5, 7, 7, 5, - 5, 7, 7, 5, 2, 5, 9, 7, 5, 5, - 5, 5, 7, 2, 7, 7, 7, 5, 5, 9, - 9, 11, 3, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 3, 5, 5, 5, 3, 3, 3, 1, 5, 5, - 1, 2, 5, 5, 5, 5, 5, 2, 7, 15, - 2, 1, 2, 1, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 7, 5, 5, 2, 2, 2, 2, - 9, 11, 2, 7, 3, 7, 2, 4, 2, 2, - 2, 3, 3, 3, 3, 3, 2, 2, 9, 9, - 13, 11, 7, 1, 5, 5, 1, 7, 0, 9, - 3, 11, 9, 3, 9, 2, 4, 4, 2, 2, - 2, 4, 4, 5, 5, 3, 1, 7, 11, 2, - 2, 5, 7, 3, 5, 7, 1, 2, 2, 2, - 11, 11, 13, 7, 5, 2, 0, 5, 1, 2, - 1, 7, 2, 1, 2, 5, 2, 2, 2, 2, - 5, 5, 3, 5, 7, 2, 3, 7, 7, 3, - 5, 7, 3, 5, 1, 5, 3, 3, 1, 3, - 3, 2, 7, 5, 7, 1, 2, 7, 9, 7, - 3, 7, 9, 7, 1, 2, 7, 7, 7, 3, - 3, 1, 7, 1, 5, 1, 17, 3, 3, 3, - 3, 2, 7, 2, 5, 7, 5, 2, 7, 2, - 2, 13, 7, 7, 5, 7, 1, 2, 7, 2, - 2, 2, 5, 3, 3, 3, 5, 3, 5, 3, - 5, 1, 7, 1, 2, 7, 2, 7, 5, 1, - 5, 1, 5, 1, 9, 3, 5, 3, 3, 1, - 2, 7, 5, 2, 2, 5, 3, 9, 5, 2, - 7, 17, 11, 2, 7, 2, 2, 9, 9, 9, - 2, 2, 11, 11, 2, 7, 7, 2, 2, 15, - 15, 11, 7, 0, 2, 2, 3, 5, 0, 3, - 2, 2, 1, 7, 2, 7, 2, 7, 7, 3, - 2, 7, 7, 5, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 2, - 2, 11, 13, 7, 9, 11, 13, 7, 9, 7, - 9, 7, 9, 9, 11, 9, 9, 7, 9, 7, - 7, 17, 17, 2, 2, 2, 2, 2, 2, 2, - 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, - 3, 3, 7, 3, 3, 3, 3, 3, 9, 2, - 7, 2, 5, 3, 3, 3, 3, 3, 2, 3, - 5, 5, 5, 2, 2, 2, 7, 7, 7, 3, - 3, 3, 5, 2, 5, 3, 3, 3, 3, 2, - 5, 3, 9, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 13, 9, 13, 13, 9, 7, 3, - 3, 3, 3, 3, 3, 3, 3, 2, 0, 3, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2 -}; -static const yytabelem yychk[] = { - - -10000000, -1, -2, -3, -4, -5, -6, -7, -8, -9, - -10, -11, -12, -13, -14, -15, -16, -17, 298, 261, - 406, 339, 283, 291, 300, -311, -312, 307, 328, 314, - 413, 416, -280, -258, -259, -260, -314, -315, 302, -283, - 419, 443, 418, 59, -18, -215, 45, 459, -216, 313, - 435, 439, 403, 295, 306, 338, 273, 341, 273, -261, - 456, -60, 313, -62, 403, 435, 439, 450, 326, 295, - 306, 420, 469, 442, -43, 318, 317, -235, 313, 338, - 403, 435, 439, 450, 318, 306, 317, 420, 469, -19, - -23, -26, 260, -30, 314, -40, -31, -41, 418, 339, - 302, 443, 408, 461, 403, -34, -19, -23, -26, 328, - -261, -281, 441, 388, 321, 326, 438, 431, -209, -29, - -236, 461, -199, 304, -288, 260, -345, 459, -61, 461, - -29, -236, -218, -37, 461, -164, -33, 461, -219, -221, - -230, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 483, 484, 485, 461, -223, -64, - 461, -137, -321, 461, -29, -137, -262, 410, -61, -63, - 265, 303, -66, -33, -67, -29, -68, -37, -69, -38, - 461, -70, -103, 461, -71, -104, -49, 462, 463, -72, - -90, -140, -137, -298, 461, -73, -52, -215, -74, -41, - -44, -58, 461, 323, -61, -64, -33, -236, -37, -38, - -58, -237, 461, 323, -52, -41, 384, 384, 437, 44, - 402, 44, -32, -76, 40, -32, -33, -19, -23, 384, - 384, 321, 386, -282, 319, -283, 260, 274, -209, -103, - -264, -265, -266, -267, -268, -269, -270, 406, 451, 378, - 343, -271, 409, -272, 425, 338, 419, -298, 461, -200, - -289, 42, -290, -291, -79, -144, -140, -338, -339, -340, - -193, -183, -341, 45, 43, 40, 444, 297, -298, 356, - -145, 353, 290, 434, 267, 371, 367, 276, 355, 327, - 472, -343, -49, 296, 481, 482, 63, 58, -46, 461, - 483, 484, 485, 460, 459, 458, 486, 487, -49, -217, - -225, 307, 258, -227, 261, -211, 257, 335, -160, 40, - -220, -231, 258, 307, 419, -222, -224, 419, 258, 307, - 437, 471, 257, 335, 321, -32, 341, -263, 425, -49, - 338, -160, -127, 317, 319, -32, -105, -107, -108, 394, - 357, 444, 396, 419, 462, -91, 264, 46, -81, 366, - 268, 337, -45, -46, 461, -46, -20, -29, 435, 403, - -27, -42, -39, 444, 461, -40, -31, -75, -140, -191, - -192, 40, -193, -143, -144, -340, 45, 384, 384, -20, - 403, -27, 319, 443, -283, -284, -285, -140, -256, -52, - -202, -313, 453, 437, -266, 385, 457, 440, 284, 451, - 362, -274, -277, -278, -29, 435, -64, -316, -173, -140, - -287, 321, 44, -292, 264, 461, 43, 286, 280, 45, - 42, 47, 91, -79, -79, -79, -337, 418, 46, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 462, 462, - 462, -184, 461, 40, 44, -137, 288, -130, -131, -90, - -148, 288, -137, -221, -228, 461, 470, -233, -212, 270, - 259, -161, 412, -165, -166, -141, -137, -231, -88, -111, - -89, -115, -116, -119, 358, 349, 358, -232, -112, 330, - 279, 382, 364, -224, -138, 288, -101, -78, 301, 288, - -137, -56, -29, 445, -283, -29, -64, -161, 40, 349, - -49, -29, 264, -106, -109, -110, -89, -111, -112, 301, - -108, -85, 61, -85, -49, -49, 373, -92, -135, -238, - -51, -239, -240, -242, 273, -245, -246, -247, -248, 424, - 296, 481, 482, -252, -253, -251, 354, -255, 350, 352, - 407, 348, 340, 351, 277, 346, 446, 376, 374, 299, - 347, -321, 42, -82, 287, -59, 432, -18, -47, -54, - 40, -55, -56, 437, -29, -24, -33, -28, 44, 455, - -39, 41, 44, 44, -192, -343, -20, 403, 321, -24, - -286, 383, 44, -95, 280, -95, -102, 293, -322, 379, - -323, -324, -325, -326, -327, -328, -329, -330, -331, -332, - 40, -79, 315, 422, -244, 486, 45, -86, 459, -273, - 449, 378, -273, -271, 406, 44, -279, 44, 319, 429, - -202, -313, 44, 61, -202, 453, -293, -294, -295, -296, - 40, -33, -290, -292, -79, -79, -139, 461, -79, -79, - -79, -342, -79, 41, 41, -199, 297, 42, -288, 304, - -288, 304, -288, 304, -288, 304, -288, 304, -291, -79, - -103, -346, 473, 474, 475, 476, 477, 478, 479, 480, - -342, 41, -225, -226, 468, 466, -153, 461, -132, -135, - -136, -92, -137, -77, 285, -152, -154, -155, -156, -151, - 442, 401, 320, -78, -153, 398, 437, 471, -213, 398, - 339, 443, 302, 339, 443, 302, 264, -160, 41, 44, - -135, -240, -242, -89, -49, 40, 269, 44, -85, -85, - -85, -85, -133, 301, -101, 278, -135, -317, 318, 40, - -317, 384, 264, -128, -129, -130, -131, -49, -211, -138, - -110, 277, -52, -86, -49, -78, 91, 91, -53, 277, - -59, 40, 40, 40, 40, 448, -254, 40, -254, -257, - 40, 350, 400, 448, 448, 277, 346, -49, 390, -18, - -250, 461, 412, 44, -54, -50, -51, 273, 292, -21, - -25, -36, -35, -39, 444, 329, 403, 439, 450, 437, - -42, 465, -140, -193, -143, -144, 41, 321, -24, -21, - -25, 321, -75, -285, -63, -139, -63, 387, 262, 383, - -102, -102, -79, 61, 60, 62, 325, 361, 380, 381, - 377, 272, 379, 363, 334, 289, 430, 342, 40, 40, - 486, -86, 449, -277, -29, -275, 421, 404, -173, -291, - -203, 329, 44, -210, 336, 360, 414, 322, -295, -294, - -297, 40, 93, 44, -79, 41, -79, -79, -79, -79, - -79, -79, -79, -79, -79, -79, 264, 41, 44, 321, - 41, -133, -136, -78, -138, 40, 274, -76, 345, 345, - 278, -215, -137, -229, -135, -137, -78, -215, -138, -166, - -120, -124, -125, 430, 357, -117, -118, -121, -49, -118, - -112, -86, -86, -52, -114, 459, -80, -96, -143, 444, - -144, -145, 40, -318, 368, 321, 437, -310, -291, -318, - -29, -138, 41, 44, -212, -194, -197, -198, 418, 419, - -87, 392, 393, -93, 301, -241, -243, -244, 45, -241, - 419, -249, 417, -114, 44, -52, -52, -52, 40, -244, - -215, -257, -83, 357, -59, -48, -57, 40, -56, 395, - -55, 41, 40, -22, 44, 455, 44, -39, -39, -33, - -37, -38, -21, -25, 386, -21, 321, -21, -25, -102, - -102, -186, 461, 41, -79, 260, -334, 426, 263, -79, - 260, -334, -79, 260, -334, -79, 260, -334, -79, 260, - -334, -79, 260, -334, -79, 260, -334, -79, 260, -334, - -79, 272, 363, 334, 289, 430, -79, -335, 40, -79, - -79, 455, 353, 379, -283, -283, -276, 406, 457, -204, - 332, 274, -294, 344, 389, 389, 389, 41, -298, -299, - -300, -144, -79, -79, -287, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, -142, -56, -79, -79, -80, - -78, -76, -76, 40, -80, -78, -138, -234, -214, 264, - -162, -167, -168, 300, -125, -126, 266, -85, 41, 44, - -122, -102, -320, -114, -193, -319, -59, -193, -319, 41, - 44, -65, -75, -76, -77, -162, -129, -213, -195, 455, - 441, -199, -113, 461, -80, -78, 93, 44, 58, 93, - -113, -53, 423, 41, 44, -18, 41, 41, 41, -52, - 41, 44, 41, -84, -88, -85, 310, 310, -57, -50, - -52, -52, -35, -36, 328, -35, -36, -22, 44, -21, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 262, -79, -79, -335, - -79, -79, 455, 312, -336, -333, -143, -193, -344, 418, - 444, -79, 353, 41, 41, -205, 397, -102, -301, -302, - -140, -294, 41, 44, -202, 41, -92, 41, 41, -134, - -146, -147, -148, -79, 408, -102, -80, -78, -163, 271, - -168, 447, -86, 392, -86, 391, -118, -123, 423, 41, - 437, -291, 40, -163, -78, -196, 278, -198, 260, -200, - -94, -97, -98, -99, -100, -101, 379, -96, -243, -244, - -53, -114, -18, 41, 41, -244, -86, -49, -49, 41, - 467, 274, 41, 386, -333, -333, -333, -333, -333, -333, - -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, - -79, 262, 312, -79, -79, 41, 44, 41, -199, -303, - -304, 344, 427, 369, 44, 280, 384, -300, -203, -95, - -147, -149, 379, 408, -151, 442, 401, -80, -29, 41, - -162, -80, -171, -169, -170, -163, -173, -8, 313, -174, - -175, -176, -11, 399, -177, -17, -178, 433, 316, 314, - 319, 333, 339, -15, 454, -90, -87, -118, -85, -80, - -319, -78, -80, -214, 386, -198, -201, 321, -95, -98, - 353, 41, 41, -87, 372, 372, 356, -53, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, -79, -79, -143, -193, -344, -79, - 40, 369, -302, -139, -102, -204, 353, -29, 345, 41, - -32, -80, -163, 309, -172, -169, -187, 452, 59, 59, - -61, 59, -79, 59, 59, 59, 403, -15, 40, 341, - 40, -135, -86, -79, -80, -202, -206, -207, -208, -209, - 40, -49, -49, -287, -305, -306, -307, -303, -236, -205, - -32, -150, -157, -158, 384, 309, -187, -188, -189, 428, - 324, 313, 263, 59, 59, -33, 341, -102, -181, -183, - -140, -102, 59, -80, -203, 44, -210, -208, -207, -202, - 41, 44, -308, 375, 338, 388, -307, -150, -158, 384, - -157, 384, 443, 302, 305, 44, -18, -190, 461, -61, - -179, -185, 40, -183, -143, -140, -144, -181, 41, 59, - 44, 41, 41, -204, -207, 344, 41, -203, -305, 40, - -64, -159, 466, 419, 378, -159, -169, -189, -180, 411, - 44, -185, -182, 264, 436, -140, -183, 305, -205, -207, - -204, -309, -64, 301, 353, 464, 59, -181, 40, -183, - -143, -140, -144, 41, 305, 294, -169, -169, 384, -205, - 41, 44, -181, -169, -186, 308, -102, -309, 41, -169 -}; -static const yytabelem yydef[] = { - - 0, -2, 1, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, 15, 16, 17, 0, 0, - 0, 0, 506, 102, 0, 635, 636, 0, 0, 0, - 0, 506, 554, 497, 498, 499, 640, 641, 0, 550, - 0, 0, 818, 2, 18, 783, 0, 785, 356, 0, - 0, 0, 0, 410, 0, 0, 0, 0, 0, 508, - 505, 89, 0, 561, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 101, 69, 0, 0, 424, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 26, 28, 31, 62, 29, 64, 32, 33, - 34, 662, 662, 835, 0, 0, 0, 0, 0, 0, - 504, 563, 0, 0, 0, 0, 513, 0, 0, 591, - 593, 837, 0, 567, 568, 817, 784, 786, 0, 828, - 0, 593, 359, 346, 838, 360, 248, 834, 0, 0, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 363, 0, - 832, 0, 669, 824, 662, 0, 503, 510, 0, 0, - 559, 560, 92, 248, 93, 188, 94, 0, 95, 662, - 841, 96, 132, 831, 97, 138, 137, 781, 0, 98, - 120, 203, 666, 0, -2, 99, 109, 787, 100, 133, - 70, 0, 829, 0, 425, 426, 427, 428, 429, 430, - 431, 432, 827, 0, 434, 435, 0, 0, 0, 0, - 27, 0, 35, 661, 0, 36, 317, 0, 0, 0, - 0, 0, 0, 549, 0, 551, 0, 0, 611, 0, - 511, 512, 514, 516, 517, 518, 519, 0, 522, 0, - 0, 525, 0, 526, 529, 0, 0, 592, 836, 0, - 569, 570, 571, 573, 647, 648, 733, 734, 735, 736, - 737, 738, 739, 0, 0, 0, 750, 751, 0, 753, - 754, 819, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 768, 769, 0, 0, 0, 779, 0, 0, -2, - 755, 756, 757, 763, 764, 765, 766, 767, 357, 358, - 373, 0, 225, 0, 400, 421, 344, 345, 250, 0, - 361, 411, 0, 0, 0, 362, 364, 337, 339, 0, - 0, 206, 408, 409, 0, 0, 0, 507, 509, 90, - 0, 250, 0, 0, 0, 0, 147, 139, 140, 135, - 135, 0, 0, 0, 782, 0, 119, 0, 110, 107, - 108, 466, 71, -2, 820, 433, 0, 24, 0, 0, - 40, 65, 67, 0, 839, 63, 30, 0, 664, 314, - 315, 0, 318, 319, 320, 761, 0, 0, 0, 0, - 0, 48, 49, 565, 552, 553, 555, 202, 202, 485, - 637, 638, 0, 0, 515, 520, 521, 534, 534, 523, - 0, 535, 541, 545, 546, 530, 548, 611, 644, 0, - 611, 0, 0, 574, 0, 833, 0, 0, 0, 0, - 0, 0, 0, 740, 741, 0, 0, 818, 0, 818, - 818, 818, 818, 818, 0, 0, 0, 0, 770, 771, - 772, 283, 840, 0, 0, 407, 0, 377, 378, 0, - 339, 0, 404, 0, 0, -2, 401, 354, 420, 0, - 0, 0, 248, 0, 251, 0, 204, 412, 413, 416, - 116, 159, 160, 0, 163, 172, 414, 415, 417, 135, - 135, 135, 135, 365, 208, 339, 368, 0, 369, 370, - 371, 0, 653, 0, 632, 653, 0, 0, 225, 0, - 187, 346, 337, 134, 148, 149, 151, 152, 153, 0, - 141, 0, 136, 0, 144, 145, 0, 339, 436, 437, - 438, 439, 446, 468, 466, 448, 449, 450, 451, 452, - 453, 454, 455, 473, 0, 470, 486, 486, 496, 0, - 493, 0, 456, 457, 478, 479, 475, 480, 0, 489, - 490, 667, 668, 0, 111, 0, 0, 656, 0, 77, - 206, 79, 0, 0, 25, 0, 41, 23, 0, 0, - 68, 663, 0, 0, 0, 762, 0, 0, 0, 0, - 562, 0, 0, 561, 0, 561, 610, 0, 670, 0, - 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, - 0, 0, 0, 0, 500, 501, 0, 789, 791, 527, - 532, 0, 528, 524, 0, 0, 543, 0, 538, 531, - 642, 643, 0, 0, 603, 0, 576, -2, 579, 580, - 0, 586, 572, 575, 742, 743, 744, 823, 745, 746, - 747, 0, 759, 748, 749, 0, 752, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 809, 810, 811, 812, 813, 814, 815, 816, - 0, 808, 374, 375, 405, 406, 376, 825, 208, 436, - 195, 339, 337, 0, 198, 223, 226, 227, 228, 229, - 0, 0, 0, 0, 224, 0, 0, 0, 339, 0, - 347, 349, 351, 348, 350, 352, 337, 249, 247, 0, - 253, 446, 468, 117, 173, 0, 0, 0, 0, 0, - 0, 0, 340, 0, 367, 0, 372, 658, 0, 0, - 658, 0, 337, 0, 189, 191, 192, 186, 0, 0, - 150, 0, 142, 182, 146, 122, 0, 0, 447, 0, - 463, 0, 0, 0, 0, 0, 483, 0, 484, 491, - 0, 496, 494, 476, 477, 481, 482, 112, 466, 464, - 465, 821, 206, 206, 0, 81, 73, 74, 0, 38, - 21, 57, 50, 59, 0, 0, 0, 0, 0, 0, - 66, 0, 665, 321, 322, 323, 316, 0, 0, 44, - 46, 0, 564, 556, 557, 201, 558, 0, 0, 0, - 673, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 502, 790, 533, 542, 547, 0, 536, 537, 645, 646, - 609, 0, 0, 0, 594, 595, 597, 599, 579, 601, - 584, 0, 758, 0, 0, 792, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 206, 804, 0, 0, - 807, 340, 194, 199, 200, 339, 197, 230, 0, 0, - 0, 379, 380, 340, 339, 337, 423, 353, 255, 252, - 164, 174, 175, 179, 135, 0, 165, 169, 168, 162, - 418, 155, 156, 157, 158, 788, 366, 207, 209, 210, - 211, 212, 0, 649, 0, 466, 466, 0, 633, 650, - 0, 255, 185, 225, 354, 342, 325, 326, 818, 0, - 143, 183, 184, 340, 339, 0, 442, 444, 0, 0, - 0, 468, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 492, 114, 135, 0, 0, 82, 206, 0, 0, - 80, 78, 0, 19, 0, 0, 0, 60, 61, 54, - 55, 56, 38, 22, 39, 42, 0, 45, 47, 671, - 672, 639, 826, 684, 685, 0, 0, 709, 710, 686, - 0, 0, 687, 0, 0, 688, 0, 0, 689, 0, - 0, 690, 0, 0, 691, 0, 0, 692, 0, 0, - 0, 0, 0, 0, 0, 0, 713, 717, 0, 719, - 721, 0, 727, 0, 0, 0, 544, 539, 540, 613, - 0, 0, -2, 0, 596, 598, 600, 582, 583, 0, - 587, 589, 590, 760, 611, 793, 794, 795, 796, 797, - 798, 799, 800, 801, 802, 0, 0, 0, 0, -2, - 0, 231, 0, 0, 381, 402, 403, 340, 422, 339, - 0, 254, 256, 0, 176, 0, 180, 0, 0, 0, - 167, 0, 657, 659, 660, 0, 654, 655, 652, 631, - 0, 91, 103, 104, 0, 0, 190, 339, 338, 0, - 0, 0, 154, 822, -2, 0, 440, 0, 0, 468, - 467, 458, 0, 459, 0, 0, 472, 474, 469, 0, - 487, 0, 495, 106, 115, 0, 0, 0, 0, 84, - 87, 0, 53, 58, 0, 51, 52, 20, 0, 43, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 714, 718, - 720, 722, 0, 0, 0, 0, 773, 774, 775, 818, - 780, 723, 728, 725, 726, 566, 619, 608, 602, 604, - 606, 601, 585, 0, 603, 803, 205, 805, 806, 202, - -2, 215, 339, 340, 0, 0, 419, 255, 340, 0, - 257, 0, 177, 181, 182, 0, 166, 170, 135, 340, - 466, 634, 339, 340, 0, 324, 0, 327, 0, 0, - 202, -2, 125, 127, 128, 129, 0, 121, 443, 445, - 441, 462, 0, 461, 471, 0, 182, 0, 0, 83, - 85, 0, 468, 37, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 711, 0, 0, 724, 715, 729, 0, 730, 0, 612, - 0, 615, 618, 617, 0, 0, 0, 588, 609, 193, - 216, 217, 0, 0, 220, 221, 0, 0, 662, 340, - 0, 246, 0, 263, 259, 260, 0, 0, 0, 268, - 269, 270, 0, 0, 273, 0, 275, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 178, 161, 0, 131, - 651, 0, 245, 340, 341, 328, 611, 0, 118, 126, - 130, 460, 488, 113, 0, 0, 86, 75, 693, 701, - 694, 702, 695, 703, 696, 704, 697, 705, 698, 706, - 699, 707, 700, 708, 712, 716, 776, 777, 778, 0, - 619, 616, 605, 607, 581, 613, 218, 662, 222, 196, - 238, 233, 355, 261, 0, 264, 305, 0, 265, 266, - 0, 271, 0, 274, 276, 277, 0, 0, 0, 0, - 0, 0, 171, 340, 343, 603, 330, -2, 333, 334, - 0, 88, 72, 611, 0, 620, 0, 623, 624, 732, - 238, 232, 234, 235, 0, 262, 306, 0, 308, 0, - 0, 0, 313, 267, 272, 286, 0, 0, 0, 298, - 299, 0, 258, 0, 609, 0, 0, 333, 601, 603, - 614, 619, 622, 626, 0, 0, 625, 219, 237, 0, - 236, 0, 0, 0, 0, 0, 310, 311, 830, 312, - 289, 284, 0, 290, 291, 292, 293, 304, 0, 282, - 0, 0, 105, 613, -2, 0, 336, 609, 621, 0, - 628, 239, 241, 0, 0, 240, 307, 309, 0, 0, - 0, 0, 0, 0, 0, 300, 301, 0, 329, 601, - 613, 0, 629, 242, 243, 244, 278, 287, 0, 294, - 295, 296, 297, 285, 0, 0, 281, 302, 0, 731, - 627, 0, 0, 279, 303, 0, 335, 630, 288, 280 -}; -typedef struct -#ifdef __cplusplus - yytoktype -#endif +#define YYABORT goto yyabort +#define YYREJECT goto yyabort +#define YYACCEPT goto yyaccept +#define YYERROR goto yyerrlab +int +dsql_yyparse(USHORT client_dialect, USHORT db_dialect, USHORT parser_version, BOOLEAN *stmt_ambiguous) { - char *t_name; - int t_val; -} yytoktype; -#ifndef YYDEBUG -# define YYDEBUG 0 /* don't allow debugging */ -#endif - + register int yym, yyn, yystate; #if YYDEBUG + register char *yys; + extern char *getenv(); -static CONST yytoktype yytoks[] = { - "ACTIVE", 257, - "ADD", 258, - "AFTER", 259, - "ALL", 260, - "ALTER", 261, - "AND", 262, - "ANY", 263, - "AS", 264, - "ASC", 265, - "AT", 266, - "AVG", 267, - "AUTO", 268, - "BASENAME", 269, - "BEFORE", 270, - "BEGIN", 271, - "BETWEEN", 272, - "BLOB", 273, - "BY", 274, - "CACHE", 275, - "CAST", 276, - "CHARACTER", 277, - "CHECK", 278, - "CHECK_POINT_LEN", 279, - "COLLATE", 280, - "COLLATION", 281, - "COMMA", 282, - "COMMIT", 283, - "COMMITTED", 284, - "COMPUTED", 285, - "CONCATENATE", 286, - "CONDITIONAL", 287, - "CONSTRAINT", 288, - "CONTAINING", 289, - "COUNT", 290, - "CREATE", 291, - "CSTRING", 292, - "CURRENT", 293, - "CURSOR", 294, - "DATABASE", 295, - "DATE", 296, - "DB_KEY", 297, - "DEBUG", 298, - "DECIMAL", 299, - "DECLARE", 300, - "DEFAULT", 301, - "DELETE", 302, - "DESC", 303, - "DISTINCT", 304, - "DO", 305, - "DOMAIN", 306, - "DROP", 307, - "ELSE", 308, - "END", 309, - "ENTRY_POINT", 310, - "EQL", 311, - "ESCAPE", 312, - "EXCEPTION", 313, - "EXECUTE", 314, - "EXISTS", 315, - "EXIT", 316, - "EXTERNAL", 317, - "FILTER", 318, - "FOR", 319, - "FOREIGN", 320, - "FROM", 321, - "FULL", 322, - "FUNCTION", 323, - "GDSCODE", 324, - "GEQ", 325, - "GENERATOR", 326, - "GEN_ID", 327, - "GRANT", 328, - "GROUP", 329, - "GROUP_COMMIT_WAIT", 330, - "GTR", 331, - "HAVING", 332, - "IF", 333, - "IN", 334, - "INACTIVE", 335, - "INNER", 336, - "INPUT_TYPE", 337, - "INDEX", 338, - "INSERT", 339, - "INTEGER", 340, - "INTO", 341, - "IS", 342, - "ISOLATION", 343, - "JOIN", 344, - "KEY", 345, - "KW_CHAR", 346, - "KW_DEC", 347, - "KW_DOUBLE", 348, - "KW_FILE", 349, - "KW_FLOAT", 350, - "KW_INT", 351, - "KW_LONG", 352, - "KW_NULL", 353, - "KW_NUMERIC", 354, - "KW_UPPER", 355, - "KW_VALUE", 356, - "LENGTH", 357, - "LOGFILE", 358, - "LPAREN", 359, - "LEFT", 360, - "LEQ", 361, - "LEVEL", 362, - "LIKE", 363, - "LOG_BUF_SIZE", 364, - "LSS", 365, - "MANUAL", 366, - "MAXIMUM", 367, - "MAX_SEGMENT", 368, - "MERGE", 369, - "MESSAGE", 370, - "MINIMUM", 371, - "MODULE_NAME", 372, - "NAMES", 373, - "NATIONAL", 374, - "NATURAL", 375, - "NCHAR", 376, - "NEQ", 377, - "NO", 378, - "NOT", 379, - "NOT_GTR", 380, - "NOT_LSS", 381, - "NUM_LOG_BUFS", 382, - "OF", 383, - "ON", 384, - "ONLY", 385, - "OPTION", 386, - "OR", 387, - "ORDER", 388, - "OUTER", 389, - "OUTPUT_TYPE", 390, - "OVERFLOW", 391, - "PAGE", 392, - "PAGES", 393, - "PAGE_SIZE", 394, - "PARAMETER", 395, - "PASSWORD", 396, - "PLAN", 397, - "POSITION", 398, - "POST_EVENT", 399, - "PRECISION", 400, - "PRIMARY", 401, - "PRIVILEGES", 402, - "PROCEDURE", 403, - "PROTECTED", 404, - "RAW_PARTITIONS", 405, - "READ", 406, - "REAL", 407, - "REFERENCES", 408, - "RESERVING", 409, - "RETAIN", 410, - "RETURNING_VALUES", 411, - "RETURNS", 412, - "REVOKE", 413, - "RIGHT", 414, - "RPAREN", 415, - "ROLLBACK", 416, - "SEGMENT", 417, - "SELECT", 418, - "SET", 419, - "SHADOW", 420, - "SHARED", 421, - "SINGULAR", 422, - "SIZE", 423, - "SMALLINT", 424, - "SNAPSHOT", 425, - "SOME", 426, - "SORT", 427, - "SQLCODE", 428, - "STABILITY", 429, - "STARTING", 430, - "STATISTICS", 431, - "SUB_TYPE", 432, - "SUSPEND", 433, - "SUM", 434, - "TABLE", 435, - "THEN", 436, - "TO", 437, - "TRANSACTION", 438, - "TRIGGER", 439, - "UNCOMMITTED", 440, - "UNION", 441, - "UNIQUE", 442, - "UPDATE", 443, - "USER", 444, - "VALUES", 445, - "VARCHAR", 446, - "VARIABLE", 447, - "VARYING", 448, - "VERSION", 449, - "VIEW", 450, - "WAIT", 451, - "WHEN", 452, - "WHERE", 453, - "WHILE", 454, - "WITH", 455, - "WORK", 456, - "WRITE", 457, - "FLOAT", 458, - "NUMBER", 459, - "NUMERIC", 460, - "SYMBOL", 461, - "STRING", 462, - "INTRODUCER", 463, - "ACTION", 464, - "ADMIN", 465, - "CASCADE", 466, - "FREE_IT", 467, - "RESTRICT", 468, - "ROLE", 469, - "COLUMN", 470, - "TYPE", 471, - "EXTRACT", 472, - "YEAR", 473, - "MONTH", 474, - "DAY", 475, - "HOUR", 476, - "MINUTE", 477, - "SECOND", 478, - "WEEKDAY", 479, - "YEARDAY", 480, - "TIME", 481, - "TIMESTAMP", 482, - "CURRENT_DATE", 483, - "CURRENT_TIME", 484, - "CURRENT_TIMESTAMP", 485, - "NUMBER64BIT", 486, - "SCALEDINT", 487, - "=", 61, - "<", 60, - ">", 62, - "+", 43, - "-", 45, - "*", 42, - "/", 47, - "-unknown-", -1 /* ends search */ -}; - -static char *yyreds[] = { - "-no such reduction-", - "top : statement", - "top : statement ';'", - "statement : alter", - "statement : blob", - "statement : commit", - "statement : create", - "statement : declare", - "statement : delete", - "statement : drop", - "statement : grant", - "statement : insert", - "statement : invoke_procedure", - "statement : revoke", - "statement : rollback", - "statement : select", - "statement : set", - "statement : update", - "statement : DEBUG signed_short_integer", - "grant : GRANT privileges ON prot_table_name TO user_grantee_list grant_option", - "grant : GRANT proc_privileges ON PROCEDURE simple_proc_name TO user_grantee_list grant_option", - "grant : GRANT privileges ON prot_table_name TO grantee_list", - "grant : GRANT proc_privileges ON PROCEDURE simple_proc_name TO grantee_list", - "grant : GRANT role_name_list TO role_grantee_list role_admin_option", - "prot_table_name : simple_table_name", - "prot_table_name : TABLE simple_table_name", - "privileges : ALL", - "privileges : ALL PRIVILEGES", - "privileges : privilege_list", - "privilege_list : privilege", - "privilege_list : privilege_list ',' privilege", - "proc_privileges : EXECUTE", - "privilege : SELECT", - "privilege : INSERT", - "privilege : DELETE", - "privilege : UPDATE column_parens_opt", - "privilege : REFERENCES column_parens_opt", - "grant_option : WITH GRANT OPTION", - "grant_option : /* empty */", - "role_admin_option : WITH ADMIN OPTION", - "role_admin_option : /* empty */", - "simple_proc_name : symbol_procedure_name", - "revoke : REVOKE rev_grant_option privileges ON prot_table_name FROM user_grantee_list", - "revoke : REVOKE rev_grant_option proc_privileges ON PROCEDURE simple_proc_name FROM user_grantee_list", - "revoke : REVOKE privileges ON prot_table_name FROM user_grantee_list", - "revoke : REVOKE proc_privileges ON PROCEDURE simple_proc_name FROM user_grantee_list", - "revoke : REVOKE privileges ON prot_table_name FROM grantee_list", - "revoke : REVOKE proc_privileges ON PROCEDURE simple_proc_name FROM grantee_list", - "revoke : REVOKE role_name_list FROM role_grantee_list", - "rev_grant_option : GRANT OPTION FOR", - "grantee_list : grantee", - "grantee_list : grantee_list ',' grantee", - "grantee_list : grantee_list ',' user_grantee", - "grantee_list : user_grantee_list ',' grantee", - "grantee : PROCEDURE symbol_procedure_name", - "grantee : TRIGGER symbol_trigger_name", - "grantee : VIEW symbol_view_name", - "user_grantee_list : user_grantee", - "user_grantee_list : user_grantee_list ',' user_grantee", - "user_grantee : symbol_user_name", - "user_grantee : USER symbol_user_name", - "user_grantee : GROUP symbol_user_name", - "role_name_list : role_name", - "role_name_list : role_name_list ',' role_name", - "role_name : symbol_role_name", - "role_grantee_list : role_grantee", - "role_grantee_list : role_grantee_list ',' role_grantee", - "role_grantee : symbol_user_name", - "role_grantee : USER symbol_user_name", - "declare : DECLARE declare_clause", - "declare_clause : FILTER filter_decl_clause", - "declare_clause : EXTERNAL FUNCTION udf_decl_clause", - "udf_decl_clause : symbol_UDF_name arg_desc_list1 RETURNS return_value1 ENTRY_POINT sql_string MODULE_NAME sql_string", - "udf_data_type : simple_type", - "udf_data_type : BLOB", - "udf_data_type : CSTRING '(' pos_short_integer ')' charset_clause", - "arg_desc_list1 : /* empty */", - "arg_desc_list1 : arg_desc_list", - "arg_desc_list1 : '(' arg_desc_list ')'", - "arg_desc_list : arg_desc", - "arg_desc_list : arg_desc_list ',' arg_desc", - "arg_desc : init_data_type udf_data_type", - "return_value1 : return_value", - "return_value1 : '(' return_value ')'", - "return_value : init_data_type udf_data_type", - "return_value : init_data_type udf_data_type FREE_IT", - "return_value : init_data_type udf_data_type BY KW_VALUE", - "return_value : PARAMETER pos_short_integer", - "filter_decl_clause : symbol_filter_name INPUT_TYPE blob_subtype OUTPUT_TYPE blob_subtype ENTRY_POINT sql_string MODULE_NAME sql_string", - "create : CREATE create_clause", - "create_clause : EXCEPTION symbol_exception_name sql_string", - "create_clause : unique_opt order_direction INDEX symbol_index_name ON simple_table_name index_definition", - "create_clause : PROCEDURE procedure_clause", - "create_clause : TABLE table_clause", - "create_clause : TRIGGER def_trigger_clause", - "create_clause : VIEW view_clause", - "create_clause : GENERATOR generator_clause", - "create_clause : DATABASE db_clause", - "create_clause : DOMAIN domain_clause", - "create_clause : SHADOW shadow_clause", - "create_clause : ROLE role_clause", - "unique_opt : UNIQUE", - "unique_opt : /* empty */", - "index_definition : column_list", - "index_definition : column_parens", - "index_definition : computed_by '(' begin_trigger value end_trigger ')'", - "shadow_clause : pos_short_integer manual_auto conditional sql_string first_file_length sec_shadow_files", - "manual_auto : MANUAL", - "manual_auto : AUTO", - "manual_auto : /* empty */", - "conditional : /* empty */", - "conditional : CONDITIONAL", - "first_file_length : /* empty */", - "first_file_length : LENGTH equals long_integer page_noise", - "sec_shadow_files : /* empty */", - "sec_shadow_files : db_file_list", - "db_file_list : db_file", - "db_file_list : db_file_list db_file", - "domain_clause : column_def_name as_opt data_type begin_trigger domain_default_opt end_trigger domain_constraint_clause collate_clause", - "as_opt : AS", - "as_opt : /* empty */", - "domain_default_opt : DEFAULT begin_trigger default_value", - "domain_default_opt : /* empty */", - "domain_constraint_clause : /* empty */", - "domain_constraint_clause : domain_constraint_list", - "domain_constraint_list : domain_constraint_def", - "domain_constraint_list : domain_constraint_list domain_constraint_def", - "domain_constraint_def : domain_constraint", - "domain_constraint : null_constraint", - "domain_constraint : domain_check_constraint", - "null_constraint : NOT KW_NULL", - "domain_check_constraint : begin_trigger CHECK '(' search_condition ')' end_trigger", - "generator_clause : symbol_generator_name", - "role_clause : symbol_role_name", - "db_clause : db_name db_initial_desc1 db_rem_desc1", - "equals : /* empty */", - "equals : '='", - "db_name : sql_string", - "db_initial_desc1 : /* empty */", - "db_initial_desc1 : db_initial_desc", - "db_initial_desc : db_initial_option", - "db_initial_desc : db_initial_desc db_initial_option", - "db_initial_option : PAGE_SIZE equals pos_short_integer", - "db_initial_option : LENGTH equals long_integer page_noise", - "db_initial_option : USER sql_string", - "db_initial_option : PASSWORD sql_string", - "db_initial_option : SET NAMES sql_string", - "db_rem_desc1 : /* empty */", - "db_rem_desc1 : db_rem_desc", - "db_rem_desc : db_rem_option", - "db_rem_desc : db_rem_desc db_rem_option", - "db_rem_option : db_file", - "db_rem_option : db_log", - "db_rem_option : db_log_option", - "db_rem_option : DEFAULT CHARACTER SET symbol_character_set_name", - "db_log_option : GROUP_COMMIT_WAIT equals long_integer", - "db_log_option : CHECK_POINT_LEN equals long_integer", - "db_log_option : NUM_LOG_BUFS equals pos_short_integer", - "db_log_option : LOG_BUF_SIZE equals unsigned_short_integer", - "db_log : db_default_log_spec", - "db_log : db_rem_log_spec", - "db_rem_log_spec : LOGFILE '(' logfiles ')' OVERFLOW logfile_desc", - "db_rem_log_spec : LOGFILE BASENAME logfile_desc", - "db_default_log_spec : LOGFILE", - "db_file : file1 sql_string file_desc1", - "logfiles : logfile_desc", - "logfiles : logfiles ',' logfile_desc", - "logfile_desc : logfile_name logfile_attrs", - "logfile_name : sql_string", - "logfile_attrs : /* empty */", - "logfile_attrs : logfile_attrs logfile_attr", - "logfile_attr : SIZE equals long_integer", - "file1 : KW_FILE", - "file_desc1 : /* empty */", - "file_desc1 : file_desc", - "file_desc : file_clause", - "file_desc : file_desc file_clause", - "file_clause : STARTING file_clause_noise long_integer", - "file_clause : LENGTH equals long_integer page_noise", - "file_clause_noise : /* empty */", - "file_clause_noise : AT", - "file_clause_noise : AT PAGE", - "page_noise : /* empty */", - "page_noise : PAGE", - "page_noise : PAGES", - "table_clause : simple_table_name external_file '(' table_elements ')'", - "external_file : EXTERNAL KW_FILE sql_string", - "external_file : EXTERNAL sql_string", - "external_file : /* empty */", - "table_elements : table_element", - "table_elements : table_elements ',' table_element", - "table_element : column_def", - "table_element : table_constraint_definition", - "column_def : column_def_name data_type_or_domain default_opt end_trigger column_constraint_clause collate_clause", - "column_def : column_def_name non_array_type def_computed", - "column_def : column_def_name def_computed", - "def_computed : computed_by '(' begin_trigger value end_trigger ')'", - "computed_by : COMPUTED BY", - "computed_by : COMPUTED", - "data_type_or_domain : data_type begin_trigger", - "data_type_or_domain : simple_column_name begin_string", - "collate_clause : COLLATE symbol_collation_name", - "collate_clause : /* empty */", - "column_def_name : column_name", - "simple_column_def_name : simple_column_name", - "data_type_descriptor : init_data_type data_type", - "init_data_type : /* empty */", - "default_opt : DEFAULT default_value", - "default_opt : /* empty */", - "default_value : constant", - "default_value : USER", - "default_value : null_value", - "default_value : datetime_value_expression", - "column_constraint_clause : /* empty */", - "column_constraint_clause : column_constraint_list", - "column_constraint_list : column_constraint_def", - "column_constraint_list : column_constraint_list column_constraint_def", - "column_constraint_def : constraint_name_opt column_constraint", - "column_constraint : NOT KW_NULL", - "column_constraint : REFERENCES simple_table_name column_parens_opt referential_trigger_action", - "column_constraint : check_constraint", - "column_constraint : UNIQUE", - "column_constraint : PRIMARY KEY", - "table_constraint_definition : constraint_name_opt table_constraint", - "constraint_name_opt : CONSTRAINT symbol_constraint_name", - "constraint_name_opt : /* empty */", - "table_constraint : unique_constraint", - "table_constraint : primary_constraint", - "table_constraint : referential_constraint", - "table_constraint : check_constraint", - "unique_constraint : UNIQUE column_parens", - "primary_constraint : PRIMARY KEY column_parens", - "referential_constraint : FOREIGN KEY column_parens REFERENCES simple_table_name column_parens_opt referential_trigger_action", - "check_constraint : begin_trigger CHECK '(' search_condition ')' end_trigger", - "referential_trigger_action : update_rule", - "referential_trigger_action : delete_rule", - "referential_trigger_action : delete_rule update_rule", - "referential_trigger_action : update_rule delete_rule", - "referential_trigger_action : /* empty */", - "update_rule : ON UPDATE referential_action", - "delete_rule : ON DELETE referential_action", - "referential_action : CASCADE", - "referential_action : SET DEFAULT", - "referential_action : SET KW_NULL", - "referential_action : NO ACTION", - "procedure_clause : symbol_procedure_name input_parameters output_parameters AS begin_string var_declaration_list full_proc_block end_trigger", - "alter_procedure_clause : symbol_procedure_name input_parameters output_parameters AS begin_string var_declaration_list full_proc_block end_trigger", - "input_parameters : '(' proc_parameters ')'", - "input_parameters : /* empty */", - "output_parameters : RETURNS input_parameters", - "output_parameters : /* empty */", - "proc_parameters : proc_parameter", - "proc_parameters : proc_parameters ',' proc_parameter", - "proc_parameter : simple_column_def_name non_array_type", - "var_declaration_list : var_declarations", - "var_declaration_list : /* empty */", - "var_declarations : var_declaration", - "var_declarations : var_declarations var_declaration", - "var_declaration : DECLARE VARIABLE column_def_name non_array_type ';'", - "proc_block : proc_statement", - "proc_block : full_proc_block", - "full_proc_block : BEGIN proc_statements END", - "full_proc_block : BEGIN proc_statements excp_statements END", - "proc_statements : proc_block", - "proc_statements : proc_statements proc_block", - "proc_statement : assignment ';'", - "proc_statement : delete ';'", - "proc_statement : EXCEPTION symbol_exception_name ';'", - "proc_statement : exec_procedure", - "proc_statement : for_select", - "proc_statement : if_then_else", - "proc_statement : insert ';'", - "proc_statement : POST_EVENT value ';'", - "proc_statement : singleton_select", - "proc_statement : update ';'", - "proc_statement : while", - "proc_statement : SUSPEND ';'", - "proc_statement : EXIT ';'", - "exec_procedure : EXECUTE PROCEDURE symbol_procedure_name proc_inputs proc_outputs ';'", - "for_select : FOR select INTO variable_list cursor_def DO proc_block", - "if_then_else : IF '(' search_condition ')' THEN proc_block ELSE proc_block", - "if_then_else : IF '(' search_condition ')' THEN proc_block", - "singleton_select : select INTO variable_list ';'", - "variable : ':' symbol_variable_name", - "proc_inputs : var_const_list", - "proc_inputs : '(' var_const_list ')'", - "proc_inputs : /* empty */", - "proc_outputs : RETURNING_VALUES variable_list", - "proc_outputs : RETURNING_VALUES '(' variable_list ')'", - "proc_outputs : /* empty */", - "var_const_list : variable", - "var_const_list : constant", - "var_const_list : column_name", - "var_const_list : null_value", - "var_const_list : var_const_list ',' variable", - "var_const_list : var_const_list ',' constant", - "var_const_list : var_const_list ',' column_name", - "var_const_list : var_const_list ',' null_value", - "variable_list : variable", - "variable_list : column_name", - "variable_list : variable_list ',' column_name", - "variable_list : variable_list ',' variable", - "while : WHILE '(' search_condition ')' DO proc_block", - "cursor_def : AS CURSOR symbol_cursor_name", - "cursor_def : /* empty */", - "excp_statements : excp_statement", - "excp_statements : excp_statements excp_statement", - "excp_statement : WHEN errors DO proc_block", - "errors : err", - "errors : errors ',' err", - "err : SQLCODE signed_short_integer", - "err : GDSCODE symbol_gdscode_name", - "err : EXCEPTION symbol_exception_name", - "err : ANY", - "invoke_procedure : EXECUTE PROCEDURE symbol_procedure_name prc_inputs", - "prc_inputs : prm_const_list", - "prc_inputs : '(' prm_const_list ')'", - "prc_inputs : /* empty */", - "prm_const_list : parameter", - "prm_const_list : constant", - "prm_const_list : null_value", - "prm_const_list : prm_const_list ',' parameter", - "prm_const_list : prm_const_list ',' constant", - "prm_const_list : prm_const_list ',' null_value", - "view_clause : symbol_view_name column_parens_opt AS begin_string union_view check_opt end_string", - "union_view : union_view_expr", - "union_view_expr : select_view_expr", - "union_view_expr : union_view_expr UNION select_view_expr", - "union_view_expr : union_view_expr UNION ALL select_view_expr", - "select_view_expr : SELECT distinct_clause select_list from_view_clause where_clause group_clause having_clause plan_clause", - "from_view_clause : FROM from_view_list", - "from_view_list : view_table", - "from_view_list : from_view_list ',' view_table", - "view_table : joined_view_table", - "view_table : table_name", - "joined_view_table : view_table join_type JOIN view_table ON search_condition", - "joined_view_table : '(' joined_view_table ')'", - "begin_string : /* empty */", - "end_string : /* empty */", - "begin_trigger : /* empty */", - "end_trigger : /* empty */", - "check_opt : WITH CHECK OPTION", - "check_opt : /* empty */", - "def_trigger_clause : symbol_trigger_name FOR simple_table_name trigger_active trigger_type trigger_position begin_trigger trigger_action end_trigger", - "trigger_active : ACTIVE", - "trigger_active : INACTIVE", - "trigger_active : /* empty */", - "trigger_type : BEFORE INSERT", - "trigger_type : AFTER INSERT", - "trigger_type : BEFORE UPDATE", - "trigger_type : AFTER UPDATE", - "trigger_type : BEFORE DELETE", - "trigger_type : AFTER DELETE", - "trigger_position : POSITION nonneg_short_integer", - "trigger_position : /* empty */", - "trigger_action : AS begin_trigger var_declaration_list full_proc_block", - "alter : ALTER alter_clause", - "alter_clause : EXCEPTION symbol_exception_name sql_string", - "alter_clause : TABLE simple_table_name alter_ops", - "alter_clause : TRIGGER alter_trigger_clause", - "alter_clause : PROCEDURE alter_procedure_clause", - "alter_clause : DATABASE init_alter_db alter_db", - "alter_clause : DOMAIN alter_column_name alter_domain_ops", - "alter_clause : INDEX alter_index_clause", - "alter_domain_ops : alter_domain_op", - "alter_domain_ops : alter_domain_ops alter_domain_op", - "alter_domain_op : SET begin_string default_opt end_trigger", - "alter_domain_op : ADD CONSTRAINT domain_check_constraint", - "alter_domain_op : ADD domain_check_constraint", - "alter_domain_op : DROP DEFAULT", - "alter_domain_op : DROP CONSTRAINT", - "alter_domain_op : TO simple_column_name", - "alter_domain_op : TYPE init_data_type non_array_type", - "alter_ops : alter_op", - "alter_ops : alter_ops ',' alter_op", - "alter_op : DROP simple_column_name drop_behaviour", - "alter_op : DROP CONSTRAINT symbol_constraint_name", - "alter_op : ADD column_def", - "alter_op : ADD table_constraint_definition", - "alter_op : col_opt simple_column_name POSITION nonneg_short_integer", - "alter_op : col_opt alter_column_name TO simple_column_name", - "alter_op : col_opt alter_col_name TYPE alter_data_type_or_domain end_trigger", - "alter_column_name : keyword_or_column", - "keyword_or_column : COLUMN", - "keyword_or_column : TYPE", - "keyword_or_column : EXTRACT", - "keyword_or_column : YEAR", - "keyword_or_column : MONTH", - "keyword_or_column : DAY", - "keyword_or_column : HOUR", - "keyword_or_column : MINUTE", - "keyword_or_column : SECOND", - "keyword_or_column : WEEKDAY", - "keyword_or_column : YEARDAY", - "keyword_or_column : TIME", - "keyword_or_column : TIMESTAMP", - "keyword_or_column : CURRENT_DATE", - "keyword_or_column : CURRENT_TIME", - "keyword_or_column : CURRENT_TIMESTAMP", - "keyword_or_column : SYMBOL", - "col_opt : ALTER", - "col_opt : ALTER COLUMN", - "alter_data_type_or_domain : non_array_type begin_trigger", - "alter_data_type_or_domain : simple_column_name begin_string", - "alter_col_name : simple_column_name", - "drop_behaviour : RESTRICT", - "drop_behaviour : CASCADE", - "drop_behaviour : /* empty */", - "alter_index_clause : symbol_index_name ACTIVE", - "alter_index_clause : symbol_index_name INACTIVE", - "init_alter_db : /* empty */", - "alter_db : db_alter_clause", - "alter_db : alter_db db_alter_clause", - "db_alter_clause : ADD db_file_list", - "db_alter_clause : DROP LOGFILE", - "db_alter_clause : SET db_log_option_list", - "db_alter_clause : ADD db_log", - "db_log_option_list : db_log_option", - "db_log_option_list : db_log_option_list ',' db_log_option", - "alter_trigger_clause : symbol_trigger_name trigger_active new_trigger_type trigger_position begin_trigger new_trigger_action end_trigger", - "new_trigger_type : trigger_type", - "new_trigger_type : /* empty */", - "new_trigger_action : trigger_action", - "new_trigger_action : /* empty */", - "drop : DROP drop_clause", - "drop_clause : EXCEPTION symbol_exception_name", - "drop_clause : INDEX symbol_index_name", - "drop_clause : PROCEDURE symbol_procedure_name", - "drop_clause : TABLE symbol_table_name", - "drop_clause : TRIGGER symbol_trigger_name", - "drop_clause : VIEW symbol_view_name", - "drop_clause : FILTER symbol_filter_name", - "drop_clause : DOMAIN symbol_domain_name", - "drop_clause : EXTERNAL FUNCTION symbol_UDF_name", - "drop_clause : SHADOW pos_short_integer", - "drop_clause : ROLE symbol_role_name", - "data_type : non_array_type", - "data_type : array_type", - "non_array_type : simple_type", - "non_array_type : blob_type", - "array_type : non_charset_simple_type '[' array_spec ']'", - "array_type : character_type '[' array_spec ']' charset_clause", - "array_spec : array_range", - "array_spec : array_spec ',' array_range", - "array_range : signed_long_integer", - "array_range : signed_long_integer ':' signed_long_integer", - "simple_type : non_charset_simple_type", - "simple_type : character_type charset_clause", - "non_charset_simple_type : national_character_type", - "non_charset_simple_type : numeric_type", - "non_charset_simple_type : float_type", - "non_charset_simple_type : integer_keyword", - "non_charset_simple_type : SMALLINT", - "non_charset_simple_type : DATE", - "non_charset_simple_type : TIME", - "non_charset_simple_type : TIMESTAMP", - "integer_keyword : INTEGER", - "integer_keyword : KW_INT", - "blob_type : BLOB blob_subtype blob_segsize charset_clause", - "blob_type : BLOB '(' unsigned_short_integer ')'", - "blob_type : BLOB '(' unsigned_short_integer ',' signed_short_integer ')'", - "blob_type : BLOB '(' ',' signed_short_integer ')'", - "blob_segsize : SEGMENT SIZE unsigned_short_integer", - "blob_segsize : /* empty */", - "blob_subtype : SUB_TYPE signed_short_integer", - "blob_subtype : SUB_TYPE symbol_blob_subtype_name", - "blob_subtype : /* empty */", - "charset_clause : CHARACTER SET symbol_character_set_name", - "charset_clause : /* empty */", - "national_character_type : national_character_keyword '(' pos_short_integer ')'", - "national_character_type : national_character_keyword", - "national_character_type : national_character_keyword VARYING '(' pos_short_integer ')'", - "character_type : character_keyword '(' pos_short_integer ')'", - "character_type : character_keyword", - "character_type : varying_keyword '(' pos_short_integer ')'", - "varying_keyword : VARCHAR", - "varying_keyword : CHARACTER VARYING", - "varying_keyword : KW_CHAR VARYING", - "character_keyword : CHARACTER", - "character_keyword : KW_CHAR", - "national_character_keyword : NCHAR", - "national_character_keyword : NATIONAL CHARACTER", - "national_character_keyword : NATIONAL KW_CHAR", - "numeric_type : KW_NUMERIC prec_scale", - "numeric_type : decimal_keyword prec_scale", - "ordinal : pos_short_integer", - "prec_scale : /* empty */", - "prec_scale : '(' signed_long_integer ')'", - "prec_scale : '(' signed_long_integer ',' signed_long_integer ')'", - "decimal_keyword : DECIMAL", - "decimal_keyword : KW_DEC", - "float_type : KW_FLOAT precision_opt", - "float_type : KW_LONG KW_FLOAT precision_opt", - "float_type : REAL", - "float_type : KW_DOUBLE PRECISION", - "precision_opt : '(' nonneg_short_integer ')'", - "precision_opt : /* empty */", - "set : set_transaction", - "set : set_generator", - "set : set_statistics", - "set_generator : SET GENERATOR symbol_generator_name TO signed_long_integer", - "set_generator : SET GENERATOR symbol_generator_name TO NUMBER64BIT", - "set_generator : SET GENERATOR symbol_generator_name TO '-' NUMBER64BIT", - "commit : COMMIT optional_work optional_retain", - "rollback : ROLLBACK optional_work", - "optional_work : WORK", - "optional_work : /* empty */", - "optional_retain : RETAIN opt_snapshot", - "optional_retain : /* empty */", - "opt_snapshot : SNAPSHOT", - "opt_snapshot : /* empty */", - "set_transaction : SET TRANSACTION tran_opt_list_m", - "tran_opt_list_m : tran_opt_list", - "tran_opt_list_m : /* empty */", - "tran_opt_list : tran_opt", - "tran_opt_list : tran_opt_list tran_opt", - "tran_opt : access_mode", - "tran_opt : lock_wait", - "tran_opt : isolation_mode", - "tran_opt : tbl_reserve_options", - "access_mode : READ ONLY", - "access_mode : READ WRITE", - "lock_wait : WAIT", - "lock_wait : NO WAIT", - "isolation_mode : ISOLATION LEVEL iso_mode", - "isolation_mode : iso_mode", - "iso_mode : snap_shot", - "iso_mode : READ UNCOMMITTED version_mode", - "iso_mode : READ COMMITTED version_mode", - "snap_shot : SNAPSHOT", - "snap_shot : SNAPSHOT TABLE", - "snap_shot : SNAPSHOT TABLE STABILITY", - "version_mode : VERSION", - "version_mode : NO VERSION", - "version_mode : /* empty */", - "tbl_reserve_options : RESERVING restr_list", - "lock_type : SHARED", - "lock_type : PROTECTED", - "lock_type : /* empty */", - "lock_mode : READ", - "lock_mode : WRITE", - "restr_list : restr_option", - "restr_list : restr_list ',' restr_option", - "restr_option : table_list table_lock", - "table_lock : FOR lock_type lock_mode", - "table_lock : /* empty */", - "table_list : simple_table_name", - "table_list : table_list ',' simple_table_name", - "set_statistics : SET STATISTICS INDEX symbol_index_name", - "select : union_expr order_clause for_update_clause", - "union_expr : select_expr", - "union_expr : union_expr UNION select_expr", - "union_expr : union_expr UNION ALL select_expr", - "order_clause : ORDER BY order_list", - "order_clause : /* empty */", - "order_list : order_item", - "order_list : order_list ',' order_item", - "order_item : column_name collate_clause order_direction", - "order_item : ordinal collate_clause order_direction", - "order_direction : ASC", - "order_direction : DESC", - "order_direction : /* empty */", - "for_update_clause : FOR UPDATE for_update_list", - "for_update_clause : /* empty */", - "for_update_list : OF column_list", - "for_update_list : /* empty */", - "select_expr : SELECT distinct_clause select_list from_clause where_clause group_clause having_clause plan_clause", - "distinct_clause : DISTINCT", - "distinct_clause : all_noise", - "select_list : select_items", - "select_list : '*'", - "select_items : select_item", - "select_items : select_items ',' select_item", - "select_item : rhs", - "select_item : rhs symbol_item_alias_name", - "select_item : rhs AS symbol_item_alias_name", - "from_clause : FROM from_list", - "from_list : table_reference", - "from_list : from_list ',' table_reference", - "table_reference : joined_table", - "table_reference : table_proc", - "joined_table : table_reference join_type JOIN table_reference ON search_condition", - "joined_table : '(' joined_table ')'", - "table_proc : symbol_procedure_name proc_table_inputs symbol_table_alias_name", - "table_proc : symbol_procedure_name proc_table_inputs", - "proc_table_inputs : '(' null_or_value_list ')'", - "proc_table_inputs : /* empty */", - "null_or_value_list : null_or_value", - "null_or_value_list : null_or_value_list ',' null_or_value", - "null_or_value : null_value", - "null_or_value : value", - "table_name : simple_table_name", - "table_name : symbol_table_name symbol_table_alias_name", - "simple_table_name : symbol_table_name", - "join_type : INNER", - "join_type : LEFT", - "join_type : LEFT OUTER", - "join_type : RIGHT", - "join_type : RIGHT OUTER", - "join_type : FULL", - "join_type : FULL OUTER", - "join_type : /* empty */", - "group_clause : GROUP BY grp_column_list", - "group_clause : /* empty */", - "grp_column_list : grp_column_elem", - "grp_column_list : grp_column_list ',' grp_column_elem", - "grp_column_elem : column_name", - "grp_column_elem : column_name COLLATE symbol_collation_name", - "having_clause : HAVING search_condition", - "having_clause : /* empty */", - "where_clause : WHERE search_condition", - "where_clause : /* empty */", - "plan_clause : PLAN plan_expression", - "plan_clause : /* empty */", - "plan_expression : plan_type '(' plan_item_list ')'", - "plan_type : JOIN", - "plan_type : SORT MERGE", - "plan_type : MERGE", - "plan_type : SORT", - "plan_type : /* empty */", - "plan_item_list : plan_item", - "plan_item_list : plan_item ',' plan_item_list", - "plan_item : table_or_alias_list access_type", - "plan_item : plan_expression", - "table_or_alias_list : symbol_table_name", - "table_or_alias_list : symbol_table_name table_or_alias_list", - "access_type : NATURAL", - "access_type : INDEX '(' index_list ')'", - "access_type : ORDER symbol_index_name", - "index_list : symbol_index_name", - "index_list : symbol_index_name ',' index_list", - "insert : INSERT INTO simple_table_name column_parens_opt VALUES '(' insert_value_list ')'", - "insert : INSERT INTO simple_table_name column_parens_opt select_expr", - "insert_value_list : rhs", - "insert_value_list : insert_value_list ',' rhs", - "delete : delete_searched", - "delete : delete_positioned", - "delete_searched : DELETE FROM table_name where_clause", - "delete_positioned : DELETE FROM table_name cursor_clause", - "cursor_clause : WHERE CURRENT OF symbol_cursor_name", - "update : update_searched", - "update : update_positioned", - "update_searched : UPDATE table_name SET assignments where_clause", - "update_positioned : UPDATE table_name SET assignments cursor_clause", - "assignments : assignment", - "assignments : assignments ',' assignment", - "assignment : column_name '=' rhs", - "rhs : value", - "rhs : null_value", - "blob : READ BLOB simple_column_name FROM simple_table_name filter_clause segment_clause", - "blob : INSERT BLOB simple_column_name INTO simple_table_name filter_clause segment_clause", - "filter_clause : FILTER FROM blob_subtype_value TO blob_subtype_value", - "filter_clause : FILTER TO blob_subtype_value", - "filter_clause : /* empty */", - "blob_subtype_value : blob_subtype", - "blob_subtype_value : parameter", - "blob_subtype : signed_short_integer", - "segment_clause : MAX_SEGMENT segment_length", - "segment_clause : /* empty */", - "segment_length : unsigned_short_integer", - "segment_length : parameter", - "column_parens_opt : column_parens", - "column_parens_opt : /* empty */", - "column_parens : '(' column_list ')'", - "column_list : column_name", - "column_list : column_list ',' column_name", - "column_name : simple_column_name", - "column_name : symbol_table_alias_name '.' symbol_column_name", - "column_name : symbol_table_alias_name '.' '*'", - "simple_column_name : symbol_column_name", - "search_condition : predicate", - "search_condition : search_condition OR search_condition", - "search_condition : search_condition AND search_condition", - "search_condition : NOT search_condition", - "predicate : comparison_predicate", - "predicate : between_predicate", - "predicate : like_predicate", - "predicate : in_predicate", - "predicate : null_predicate", - "predicate : quantified_predicate", - "predicate : exists_predicate", - "predicate : containing_predicate", - "predicate : starting_predicate", - "predicate : unique_predicate", - "predicate : '(' search_condition ')'", - "comparison_predicate : value '=' value", - "comparison_predicate : value '<' value", - "comparison_predicate : value '>' value", - "comparison_predicate : value GEQ value", - "comparison_predicate : value LEQ value", - "comparison_predicate : value NOT_GTR value", - "comparison_predicate : value NOT_LSS value", - "comparison_predicate : value NEQ value", - "quantified_predicate : value '=' ALL '(' column_select ')'", - "quantified_predicate : value '<' ALL '(' column_select ')'", - "quantified_predicate : value '>' ALL '(' column_select ')'", - "quantified_predicate : value GEQ ALL '(' column_select ')'", - "quantified_predicate : value LEQ ALL '(' column_select ')'", - "quantified_predicate : value NOT_GTR ALL '(' column_select ')'", - "quantified_predicate : value NOT_LSS ALL '(' column_select ')'", - "quantified_predicate : value NEQ ALL '(' column_select ')'", - "quantified_predicate : value '=' some '(' column_select ')'", - "quantified_predicate : value '<' some '(' column_select ')'", - "quantified_predicate : value '>' some '(' column_select ')'", - "quantified_predicate : value GEQ some '(' column_select ')'", - "quantified_predicate : value LEQ some '(' column_select ')'", - "quantified_predicate : value NOT_GTR some '(' column_select ')'", - "quantified_predicate : value NOT_LSS some '(' column_select ')'", - "quantified_predicate : value NEQ some '(' column_select ')'", - "some : SOME", - "some : ANY", - "between_predicate : value BETWEEN value AND value", - "between_predicate : value NOT BETWEEN value AND value", - "like_predicate : value LIKE value", - "like_predicate : value NOT LIKE value", - "like_predicate : value LIKE value ESCAPE value", - "like_predicate : value NOT LIKE value ESCAPE value", - "in_predicate : value IN scalar_set", - "in_predicate : value NOT IN scalar_set", - "containing_predicate : value CONTAINING value", - "containing_predicate : value NOT CONTAINING value", - "starting_predicate : value STARTING value", - "starting_predicate : value NOT STARTING value", - "starting_predicate : value STARTING WITH value", - "starting_predicate : value NOT STARTING WITH value", - "exists_predicate : EXISTS '(' select_expr ')'", - "unique_predicate : SINGULAR '(' select_expr ')'", - "null_predicate : value IS KW_NULL", - "null_predicate : value IS NOT KW_NULL", - "scalar_set : '(' constant_list ')'", - "scalar_set : '(' column_select ')'", - "column_select : SELECT distinct_clause value from_clause where_clause group_clause having_clause plan_clause", - "column_singleton : SELECT distinct_clause value from_clause where_clause group_clause having_clause plan_clause", - "value : column_name", - "value : array_element", - "value : function", - "value : u_constant", - "value : parameter", - "value : variable", - "value : udf", - "value : '-' value", - "value : '+' value", - "value : value '+' value", - "value : value CONCATENATE value", - "value : value COLLATE symbol_collation_name", - "value : value '-' value", - "value : value '*' value", - "value : value '/' value", - "value : '(' value ')'", - "value : '(' column_singleton ')'", - "value : USER", - "value : DB_KEY", - "value : symbol_table_alias_name '.' DB_KEY", - "value : KW_VALUE", - "value : datetime_value_expression", - "datetime_value_expression : CURRENT_DATE", - "datetime_value_expression : CURRENT_TIME", - "datetime_value_expression : CURRENT_TIMESTAMP", - "array_element : column_name '[' value_list ']'", - "value_list : value", - "value_list : value_list ',' value", - "constant : u_constant", - "constant : '-' u_numeric_constant", - "u_numeric_constant : NUMERIC", - "u_numeric_constant : NUMBER", - "u_numeric_constant : FLOAT", - "u_numeric_constant : NUMBER64BIT", - "u_numeric_constant : SCALEDINT", - "u_constant : u_numeric_constant", - "u_constant : sql_string", - "u_constant : DATE STRING", - "u_constant : TIME STRING", - "u_constant : TIMESTAMP STRING", - "constant_list : constant", - "constant_list : parameter", - "constant_list : current_user", - "constant_list : constant_list ',' constant", - "constant_list : constant_list ',' parameter", - "constant_list : constant_list ',' current_user", - "parameter : '?'", - "current_user : USER", - "sql_string : STRING", - "sql_string : INTRODUCER STRING", - "signed_short_integer : nonneg_short_integer", - "signed_short_integer : '-' neg_short_integer", - "nonneg_short_integer : NUMBER", - "neg_short_integer : NUMBER", - "pos_short_integer : nonneg_short_integer", - "unsigned_short_integer : NUMBER", - "signed_long_integer : long_integer", - "signed_long_integer : '-' long_integer", - "long_integer : NUMBER", - "function : COUNT '(' '*' ')'", - "function : COUNT '(' all_noise value ')'", - "function : COUNT '(' DISTINCT value ')'", - "function : SUM '(' all_noise value ')'", - "function : SUM '(' DISTINCT value ')'", - "function : AVG '(' all_noise value ')'", - "function : AVG '(' DISTINCT value ')'", - "function : MINIMUM '(' all_noise value ')'", - "function : MINIMUM '(' DISTINCT value ')'", - "function : MAXIMUM '(' all_noise value ')'", - "function : MAXIMUM '(' DISTINCT value ')'", - "function : CAST '(' rhs AS data_type_descriptor ')'", - "function : KW_UPPER '(' value ')'", - "function : GEN_ID '(' symbol_generator_name ',' value ')'", - "function : EXTRACT '(' timestamp_part FROM value ')'", - "udf : symbol_UDF_name '(' value_list ')'", - "udf : symbol_UDF_name '(' ')'", - "timestamp_part : YEAR", - "timestamp_part : MONTH", - "timestamp_part : DAY", - "timestamp_part : HOUR", - "timestamp_part : MINUTE", - "timestamp_part : SECOND", - "timestamp_part : WEEKDAY", - "timestamp_part : YEARDAY", - "all_noise : ALL", - "all_noise : /* empty */", - "null_value : KW_NULL", - "symbol_UDF_name : SYMBOL", - "symbol_blob_subtype_name : SYMBOL", - "symbol_character_set_name : SYMBOL", - "symbol_collation_name : SYMBOL", - "symbol_column_name : SYMBOL", - "symbol_constraint_name : SYMBOL", - "symbol_cursor_name : SYMBOL", - "symbol_domain_name : SYMBOL", - "symbol_exception_name : SYMBOL", - "symbol_filter_name : SYMBOL", - "symbol_gdscode_name : SYMBOL", - "symbol_generator_name : SYMBOL", - "symbol_index_name : SYMBOL", - "symbol_item_alias_name : SYMBOL", - "symbol_procedure_name : SYMBOL", - "symbol_role_name : SYMBOL", - "symbol_table_alias_name : SYMBOL", - "symbol_table_name : SYMBOL", - "symbol_trigger_name : SYMBOL", - "symbol_user_name : SYMBOL", - "symbol_variable_name : SYMBOL", - "symbol_view_name : SYMBOL", -}; -#endif /* YYDEBUG */ -/* - * Copyright (c) 1993 by Sun Microsystems, Inc. - */ - -#pragma ident "@(#)yaccpar 6.14 97/01/16 SMI" - -/* -** Skeleton parser driver for yacc output -*/ - -/* -** yacc user known macros and defines -*/ -#define YYERROR goto yyerrlab -#define YYACCEPT return(0) -#define YYABORT return(1) -#define YYBACKUP( newtoken, newvalue )\ -{\ - if ( DSQL_yychar >= 0 || ( yyr2[ yytmp ] >> 1 ) != 1 )\ - {\ - yyerror( "syntax error - cannot backup" );\ - goto yyerrlab;\ - }\ - DSQL_yychar = newtoken;\ - yystate = *yyps;\ - yylval = newvalue;\ - goto yynewstate;\ -} -#define YYRECOVERING() (!!DSQL_yyerrflag) -#define YYNEW(type) malloc(sizeof(type) * yynewmax) -#define YYCOPY(to, from, type) \ - (type *) memcpy(to, (char *) from, yymaxdepth * sizeof (type)) -#define YYENLARGE( from, type) \ - (type *) realloc((char *) from, yynewmax * sizeof(type)) -#ifndef YYDEBUG -# define YYDEBUG 1 /* make debugging available */ + if (yys = getenv("YYDEBUG")) + { + yyn = *yys; + if (yyn >= '0' && yyn <= '9') + yydebug = yyn - '0'; + } #endif -/* -** user known globals -*/ -static int yydebug; /* set to 1 to get debugging */ + yynerrs = 0; + DSQL_yyerrflag = 0; + DSQL_yychar = (-1); -/* -** driver internal defines -*/ -#define YYFLAG (-10000000) + DSQL_DSQL_yyssp = DSQL_yyss; + yyvsp = yyvs; + *DSQL_DSQL_yyssp = yystate = 0; -/* -** global variables used by the parser -*/ -static YYSTYPE *yypv; /* top of value stack */ -static int *yyps; /* top of state stack */ - -static int yystate; /* current state */ -static int yytmp; /* extra var (lasts between blocks) */ - -static int yynerrs; /* number of errors */ -#ifndef SHLIB_DEFS -int DSQL_yyerrflag; -#endif /* error recovery flag */ -#ifndef SHLIB_DEFS -int DSQL_yychar; -#endif /* current input token number */ - - - -#ifdef YYNMBCHARS -#define YYLEX(client_dialect, db_dialect, parser_version, stmt_ambiguous) yycvtok(yylex(client_dialect, db_dialect, parser_version, stmt_ambiguous)) -/* -** yycvtok - return a token if i is a wchar_t value that exceeds 255. -** If i<255, i itself is the token. If i>255 but the neither -** of the 30th or 31st bit is on, i is already a token. -*/ -#if defined(__STDC__) || defined(__cplusplus) -static int yycvtok(int i) -#else -static int yycvtok(i) - int i; -#endif -{ - int first = 0; - int last = YYNMBCHARS - 1; - int mid; - wchar_t j; - - if (i & 0x60000000) { /*Must convert to a token. */ - if (yymbchars[last].character < i) { - return i; /*Giving up */ - } - while ((last >= first) && (first >= 0)) { /*Binary search loop */ - mid = (first + last) / 2; - j = yymbchars[mid].character; - if (j == i) { /*Found */ - return yymbchars[mid].tvalue; - } - else if (j < i) { - first = mid + 1; - } - else { - last = mid - 1; - } - } - /*No entry in the table. */ - return i; /* Giving up. */ - } - else { /* i is already a token. */ - return i; - } -} -#else /*!YYNMBCHARS */ -#define YYLEX(client_dialect, db_dialect, parser_version, stmt_ambiguous) yylex(client_dialect, db_dialect, parser_version, stmt_ambiguous) -#endif /*!YYNMBCHARS */ - -/* -** dsql_yyparse - return 0 if worked, 1 if syntax error not recovered from -*/ -#if defined(__STDC__) || defined(__cplusplus) -int dsql_yyparse(USHORT client_dialect, USHORT db_dialect, - USHORT parser_version, BOOLEAN * stmt_ambiguous) -#else -int dsql_yyparse(USHORT client_dialect, USHORT db_dialect, - USHORT parser_version, BOOLEAN * stmt_ambiguous) -#endif -{ - register YYSTYPE *yypvt = 0; /* top of value stack for $vars */ - -#if defined(__cplusplus) || defined(lint) -/* - hacks to please C++ and lint - goto's inside - switch should never be executed -*/ - static int __yaccpar_lint_hack__ = 0; - switch (__yaccpar_lint_hack__) { - case 1: - goto yyerrlab; - case 2: - goto yynewstate; - } -#endif - - /* - ** Initialize externals - dsql_yyparse may be called more than once - */ - yypv = &yyv[-1]; - yyps = &yys[-1]; - yystate = 0; - yytmp = 0; - yynerrs = 0; - DSQL_yyerrflag = 0; - DSQL_yychar = -1; - -#if YYMAXDEPTH <= 0 - if (yymaxdepth <= 0) { - if ((yymaxdepth = YYEXPAND(0)) <= 0) { - yyerror("yacc initialization error"); - YYABORT; - } - } -#endif - - { - register YYSTYPE *yy_pv; /* top of value stack */ - register int *yy_ps; /* top of state stack */ - register int yy_state; /* current state */ - register int yy_n; /* internal state number info */ - goto yystack; /* moved from 6 lines above to here to please C++ */ - - /* - ** get globals into registers. - ** branch to here only if YYBACKUP was called. - */ - yynewstate: - yy_pv = yypv; - yy_ps = yyps; - yy_state = yystate; - goto yy_newstate; - - /* - ** get globals into registers. - ** either we just started, or we just finished a reduction - */ - yystack: - yy_pv = yypv; - yy_ps = yyps; - yy_state = yystate; - - /* - ** top of for (;;) loop while no reductions done - */ - yy_stack: - /* - ** put a state and value onto the stacks - */ +yyloop: + if (yyn = yydefred[yystate]) goto yyreduce; + if (DSQL_yychar < 0) + { + if ((DSQL_yychar = yylex(client_dialect, db_dialect, parser_version, stmt_ambiguous)) < 0) DSQL_yychar = 0; #if YYDEBUG - /* - ** if debugging, look up token value in list of value vs. - ** name pairs. 0 and negative (-1) are special values. - ** Note: linear search is used since time is not a real - ** consideration while debugging. - */ - if (yydebug) { - register int yy_i; - - printf("State %d, token ", yy_state); - if (DSQL_yychar == 0) - printf("end-of-file\n"); - else if (DSQL_yychar < 0) - printf("-none-\n"); - else { - for (yy_i = 0; yytoks[yy_i].t_val >= 0; yy_i++) { - if (yytoks[yy_i].t_val == DSQL_yychar) - break; - } - printf("%s\n", yytoks[yy_i].t_name); - } - } -#endif /* YYDEBUG */ - if (++yy_ps >= &yys[yymaxdepth]) { /* room on stack? */ - /* - ** reallocate and recover. Note that pointers - ** have to be reset, or bad things will happen - */ - int yyps_index = (yy_ps - yys); - int yypv_index = (yy_pv - yyv); - int yypvt_index = (yypvt - yyv); - int yynewmax; -#ifdef YYEXPAND - yynewmax = YYEXPAND(yymaxdepth); -#else - yynewmax = 2 * yymaxdepth; /* double table size */ - if (yymaxdepth == YYMAXDEPTH) { /* first time growth */ - char *newyys = (char *) YYNEW(int); - char *newyyv = (char *) YYNEW(YYSTYPE); - if (newyys != 0 && newyyv != 0) { - yys = YYCOPY(newyys, yys, int); - yyv = YYCOPY(newyyv, yyv, YYSTYPE); - } - else - yynewmax = 0; /* failed */ - } - else { /* not first time */ - - yys = YYENLARGE(yys, int); - yyv = YYENLARGE(yyv, YYSTYPE); - if (yys == 0 || yyv == 0) - yynewmax = 0; /* failed */ - } + if (yydebug) + { + yys = 0; + if (DSQL_yychar <= YYMAXTOKEN) yys = yyname[DSQL_yychar]; + if (!yys) yys = "illegal-symbol"; + printf("%sdebug: state %d, reading %d (%s)\n", + YYPREFIX, yystate, DSQL_yychar, yys); + } #endif - if (yynewmax <= yymaxdepth) { /* tables not expanded */ - yyerror("yacc stack overflow"); - YYABORT; - } - yymaxdepth = yynewmax; - - yy_ps = yys + yyps_index; - yy_pv = yyv + yypv_index; - yypvt = yyv + yypvt_index; - } - *yy_ps = yy_state; - *++yy_pv = yyval; - - /* - ** we have a new state - find out what to do - */ - yy_newstate: - if ((yy_n = yypact[yy_state]) <= YYFLAG) - goto yydefault; /* simple state */ + } + if ((yyn = yysindex[yystate]) && (yyn += DSQL_yychar) >= 0 && + yyn <= YYTABLESIZE && yycheck[yyn] == DSQL_yychar) + { #if YYDEBUG - /* - ** if debugging, need to mark whether new token grabbed - */ - yytmp = DSQL_yychar < 0; + if (yydebug) + printf("%sdebug: state %d, shifting to state %d\n", + YYPREFIX, yystate, yytable[yyn]); #endif - if ((DSQL_yychar < 0) - && - ((DSQL_yychar - = - YYLEX(client_dialect, db_dialect, parser_version, - stmt_ambiguous)) < 0)) DSQL_yychar = 0; /* reached EOF */ -#if YYDEBUG - if (yydebug && yytmp) { - register int yy_i; - - printf("Received token "); - if (DSQL_yychar == 0) - printf("end-of-file\n"); - else if (DSQL_yychar < 0) - printf("-none-\n"); - else { - for (yy_i = 0; yytoks[yy_i].t_val >= 0; yy_i++) { - if (yytoks[yy_i].t_val == DSQL_yychar) - break; - } - printf("%s\n", yytoks[yy_i].t_name); - } - } -#endif /* YYDEBUG */ - if (((yy_n += DSQL_yychar) < 0) || (yy_n >= YYLAST)) - goto yydefault; - if (yychk[yy_n = yyact[yy_n]] == DSQL_yychar) { /*valid shift */ - DSQL_yychar = -1; - yyval = yylval; - yy_state = yy_n; - if (DSQL_yyerrflag > 0) - DSQL_yyerrflag--; - goto yy_stack; - } - - yydefault: - if ((yy_n = yydef[yy_state]) == -2) { -#if YYDEBUG - yytmp = DSQL_yychar < 0; + if (DSQL_DSQL_yyssp >= DSQL_yyss + yystacksize - 1) + { + goto yyoverflow; + } + *++DSQL_DSQL_yyssp = yystate = yytable[yyn]; + *++yyvsp = yylval; + DSQL_yychar = (-1); + if (DSQL_yyerrflag > 0) --DSQL_yyerrflag; + goto yyloop; + } + if ((yyn = yyrindex[yystate]) && (yyn += DSQL_yychar) >= 0 && + yyn <= YYTABLESIZE && yycheck[yyn] == DSQL_yychar) + { + yyn = yytable[yyn]; + goto yyreduce; + } + if (DSQL_yyerrflag) goto yyinrecovery; +#ifdef lint + goto yynewerror; #endif - if ((DSQL_yychar < 0) - && - ((DSQL_yychar - = - YYLEX(client_dialect, db_dialect, parser_version, - stmt_ambiguous)) < 0)) DSQL_yychar = 0; /* reached EOF */ -#if YYDEBUG - if (yydebug && yytmp) { - register int yy_i; - - printf("Received token "); - if (DSQL_yychar == 0) - printf("end-of-file\n"); - else if (DSQL_yychar < 0) - printf("-none-\n"); - else { - for (yy_i = 0; yytoks[yy_i].t_val >= 0; yy_i++) { - if (yytoks[yy_i].t_val == DSQL_yychar) { - break; - } - } - printf("%s\n", yytoks[yy_i].t_name); - } - } -#endif /* YYDEBUG */ - /* - ** look through exception table - */ - { - register const int *yyxi = yyexca; - - while ((*yyxi != -1) || (yyxi[1] != yy_state)) { - yyxi += 2; - } - while ((*(yyxi += 2) >= 0) && (*yyxi != DSQL_yychar)); - if ((yy_n = yyxi[1]) < 0) - YYACCEPT; - } - } - - /* - ** check for syntax error - */ - if (yy_n == 0) { /* have an error */ - /* no worry about speed here! */ - switch (DSQL_yyerrflag) { - case 0: /* new error */ - yyerror("syntax error"); - goto skip_init; - yyerrlab: - /* - ** get globals into registers. - ** we have a user generated syntax type error - */ - yy_pv = yypv; - yy_ps = yyps; - yy_state = yystate; - skip_init: - yynerrs++; - /* FALLTHRU */ - case 1: - case 2: /* incompletely recovered error */ - /* try again... */ - DSQL_yyerrflag = 3; - /* - ** find state where "error" is a legal - ** shift action - */ - while (yy_ps >= yys) { - yy_n = yypact[*yy_ps] + YYERRCODE; - if (yy_n >= 0 && yy_n < YYLAST && - yychk[yyact[yy_n]] == YYERRCODE) { - /* - ** simulate shift of "error" - */ - yy_state = yyact[yy_n]; - goto yy_stack; - } - /* - ** current state has no shift on - ** "error", pop stack - */ -#if YYDEBUG -# define _POP_ "Error recovery pops state %d, uncovers state %d\n" - if (yydebug) - printf(_POP_, *yy_ps, yy_ps[-1]); -# undef _POP_ +yynewerror: + yyerror("syntax error"); +#ifdef lint + goto yyerrlab; #endif - yy_ps--; - yy_pv--; - } - /* - ** there is no state on stack with "error" as - ** a valid shift. give up. - */ - YYABORT; - case 3: /* no shift yet; eat a token */ +yyerrlab: + ++yynerrs; +yyinrecovery: + if (DSQL_yyerrflag < 3) + { + DSQL_yyerrflag = 3; + for (;;) + { + if ((yyn = yysindex[*DSQL_DSQL_yyssp]) && (yyn += YYERRCODE) >= 0 && + yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) + { #if YYDEBUG - /* - ** if debugging, look up token in list of - ** pairs. 0 and negative shouldn't occur, - ** but since timing doesn't matter when - ** debugging, it doesn't hurt to leave the - ** tests here. - */ - if (yydebug) { - register int yy_i; - - printf("Error recovery discards "); - if (DSQL_yychar == 0) - printf("token end-of-file\n"); - else if (DSQL_yychar < 0) - printf("token -none-\n"); - else { - for (yy_i = 0; yytoks[yy_i].t_val >= 0; yy_i++) { - if (yytoks[yy_i].t_val == DSQL_yychar) { - break; - } - } - printf("token %s\n", yytoks[yy_i].t_name); - } - } -#endif /* YYDEBUG */ - if (DSQL_yychar == 0) /* reached EOF. quit */ - YYABORT; - DSQL_yychar = -1; - goto yy_newstate; - } - } /* end if ( yy_n == 0 ) */ - /* - ** reduction by production yy_n - ** put stack tops, etc. so things right after switch - */ -#if YYDEBUG - /* - ** if debugging, print the string that is the user's - ** specification of the reduction which is just about - ** to be done. - */ - if (yydebug) - printf("Reduce by (%d) \"%s\"\n", yy_n, yyreds[yy_n]); + if (yydebug) + printf("%sdebug: state %d, error recovery shifting\ + to state %d\n", YYPREFIX, *DSQL_DSQL_yyssp, yytable[yyn]); #endif - yytmp = yy_n; /* value to switch over */ - yypvt = yy_pv; /* $vars top of value stack */ - /* - ** Look in goto table for next state - ** Sorry about using yy_state here as temporary - ** register variable, but why not, if it works... - ** If yyr2[ yy_n ] doesn't have the low order bit - ** set, then there is no action to be done for - ** this reduction. So, no saving & unsaving of - ** registers done. The only difference between the - ** code just after the if and the body of the if is - ** the goto yy_stack in the body. This way the test - ** can be made before the choice of what to do is needed. - */ - { - /* length of production doubled with extra bit */ - register int yy_len = yyr2[yy_n]; - - if (!(yy_len & 01)) { - yy_len >>= 1; - yyval = (yy_pv -= yy_len)[1]; /* $$ = $1 */ - yy_state = yypgo[yy_n = yyr1[yy_n]] + *(yy_ps -= yy_len) + 1; - if (yy_state >= YYLAST || - yychk[yy_state = yyact[yy_state]] != -yy_n) { - yy_state = yyact[yypgo[yy_n]]; - } - goto yy_stack; - } - yy_len >>= 1; - yyval = (yy_pv -= yy_len)[1]; /* $$ = $1 */ - yy_state = yypgo[yy_n = yyr1[yy_n]] + *(yy_ps -= yy_len) + 1; - if (yy_state >= YYLAST || - yychk[yy_state = yyact[yy_state]] != -yy_n) { - yy_state = yyact[yypgo[yy_n]]; - } - } - /* save until reenter driver code */ - yystate = yy_state; - yyps = yy_ps; - yypv = yy_pv; - } - /* - ** code supplied by user is placed in this switch - */ - switch (yytmp) { - - case 1:{ - DSQL_parse = yypvt[-0]; - } - break; - case 2:{ - DSQL_parse = yypvt[-1]; - } - break; - case 18:{ - DSQL_debug = (int) yypvt[-0]; - if (DSQL_debug > 10) - yydebug = DSQL_debug; - yyval = make_node(nod_null, (int) 0, NULL); - } break; - case 19:{ - yyval = make_node(nod_grant, (int) e_grant_count, - yypvt[-5], yypvt[-3], make_list(yypvt[-1]), - yypvt[-0]); - } break; - case 20:{ - yyval = make_node(nod_grant, (int) e_grant_count, - yypvt[-6], yypvt[-3], make_list(yypvt[-1]), - yypvt[-0]); - } break; - case 21:{ - yyval = make_node(nod_grant, (int) e_grant_count, - yypvt[-4], yypvt[-2], make_list(yypvt[-0]), - NULL);} break; - case 22:{ - yyval = - make_node(nod_grant, (int) e_grant_count, yypvt[-5], - yypvt[-2], make_list(yypvt[-0]), NULL); - } break; - case 23:{ - yyval = make_node(nod_grant, (int) e_grant_count, - make_list(yypvt[-3]), make_list(yypvt[-1]), - NULL, yypvt[-0]); - } break; - case 25:{ - yyval = yypvt[-0]; - } - break; - case 26:{ - yyval = make_node(nod_all, (int) 0, NULL); - } break; - case 27:{ - yyval = make_node(nod_all, (int) 0, NULL); - } break; - case 28:{ - yyval = make_list(yypvt[-0]); - } - break; - case 30:{ - yyval = make_node(nod_list, (int) 2, yypvt[-2], yypvt[-0]); - } break; - case 31:{ - yyval = make_list(make_node(nod_execute, (int) 0, NULL)); - } break; - case 32:{ - yyval = make_node(nod_select, (int) 0, NULL); - } break; - case 33:{ - yyval = make_node(nod_insert, (int) 0, NULL); - } break; - case 34:{ - yyval = make_node(nod_delete, (int) 0, NULL); - } break; - case 35:{ - yyval = make_node(nod_update, (int) 1, yypvt[-0]); - } break; - case 36:{ - yyval = make_node(nod_references, (int) 1, yypvt[-0]); - } break; - case 37:{ - yyval = make_node(nod_grant, (int) 0, NULL); - } break; - case 38:{ - yyval = 0; - } - break; - case 39:{ - yyval = make_node(nod_grant_admin, (int) 0, NULL); - } break; - case 40:{ - yyval = 0; - } - break; - case 41:{ - yyval = make_node(nod_procedure_name, (int) 1, yypvt[-0]); - } break; - case 42:{ - yyval = make_node(nod_revoke, - (int) e_grant_count, yypvt[-4], yypvt[-2], - make_list(yypvt[-0]), yypvt[-5]); - } break; - case 43:{ - yyval = make_node(nod_revoke, - (int) e_grant_count, yypvt[-5], yypvt[-2], - make_list(yypvt[-0]), yypvt[-6]); - } break; - case 44:{ - yyval = make_node(nod_revoke, - (int) e_grant_count, yypvt[-4], yypvt[-2], - make_list(yypvt[-0]), NULL); - } break; - case 45:{ - yyval = make_node(nod_revoke, - (int) e_grant_count, yypvt[-5], yypvt[-2], - make_list(yypvt[-0]), NULL); - } break; - case 46:{ - yyval = make_node(nod_revoke, - (int) e_grant_count, yypvt[-4], yypvt[-2], - make_list(yypvt[-0]), NULL); - } break; - case 47:{ - yyval = make_node(nod_revoke, - (int) e_grant_count, yypvt[-5], yypvt[-2], - make_list(yypvt[-0]), NULL); - } break; - case 48:{ - yyval = make_node(nod_revoke, - (int) e_grant_count, make_list(yypvt[-2]), - make_list(yypvt[-0]), NULL, NULL); - } break; - case 49:{ - yyval = make_node(nod_grant, (int) 0, NULL); - } break; - case 51:{ - yyval = make_node(nod_list, (int) 2, yypvt[-2], yypvt[-0]); - } break; - case 52:{ - yyval = make_node(nod_list, (int) 2, yypvt[-2], yypvt[-0]); - } break; - case 53:{ - yyval = make_node(nod_list, (int) 2, yypvt[-2], yypvt[-0]); - } break; - case 54:{ - yyval = make_node(nod_proc_obj, (int) 1, yypvt[-0]); - } break; - case 55:{ - yyval = make_node(nod_trig_obj, (int) 1, yypvt[-0]); - } break; - case 56:{ - yyval = make_node(nod_view_obj, (int) 1, yypvt[-0]); - } break; - case 58:{ - yyval = make_node(nod_list, (int) 2, yypvt[-2], yypvt[-0]); - } break; - case 59:{ - yyval = make_node(nod_user_name, (int) 1, yypvt[-0]); - } break; - case 60:{ - yyval = make_node(nod_user_name, (int) 1, yypvt[-0]); - } break; - case 61:{ - yyval = make_node(nod_user_group, (int) 1, yypvt[-0]); - } break; - case 63:{ - yyval = make_node(nod_list, (int) 2, yypvt[-2], yypvt[-0]); - } break; - case 64:{ - yyval = make_node(nod_role_name, (int) 1, yypvt[-0]); - } break; - case 66:{ - yyval = make_node(nod_list, (int) 2, yypvt[-2], yypvt[-0]); - } break; - case 67:{ - yyval = make_node(nod_user_name, (int) 1, yypvt[-0]); - } break; - case 68:{ - yyval = make_node(nod_user_name, (int) 1, yypvt[-0]); - } break; - case 69:{ - yyval = yypvt[-0]; - } - break; - case 70:{ - yyval = yypvt[-0]; - } - break; - case 71:{ - yyval = yypvt[-0]; - } - break; - case 72:{ - yyval = make_node(nod_def_udf, (int) e_udf_count, - yypvt[-7], yypvt[-2], yypvt[-0], - make_list(yypvt[-6]), yypvt[-4]); - } break; - case 74:{ - field->fld_dtype = dtype_blob; - } - break; - case 75:{ - field->fld_dtype = dtype_cstring; - field->fld_character_length = - static_cast < SSHORT > ((SLONG) yypvt[-2]); - } - break; - case 76:{ - yyval = (NOD) NULL; - } - break; - case 78:{ - yyval = yypvt[-1]; - } - break; - case 80:{ - yyval = make_node(nod_list, (int) 2, yypvt[-2], yypvt[-0]); - } break; - case 81:{ - yyval = yypvt[-1]; - } - break; - case 83:{ - yyval = yypvt[-1]; - } - break; - case 84:{ - yyval = make_node(nod_udf_return_value, (int) 2, yypvt[-1], - MAKE_constant((STR) FUN_reference, - CONSTANT_SLONG));} break; - case 85:{ - yyval = - make_node(nod_udf_return_value, (int) 2, yypvt[-2], - MAKE_constant((STR) (-1 * FUN_reference), - CONSTANT_SLONG));} break; - case 86:{ - yyval = - make_node(nod_udf_return_value, (int) 2, yypvt[-3], - MAKE_constant((STR) FUN_value, CONSTANT_SLONG)); - } break; - case 87:{ - yyval = make_node(nod_udf_return_value, (int) 2, - (NOD) NULL, MAKE_constant((STR) yypvt[-0], - CONSTANT_SLONG));} - break; - case 88:{ - yyval = - make_node(nod_def_filter, (int) e_filter_count, yypvt[-8], - yypvt[-6], yypvt[-4], yypvt[-2], yypvt[-0]); - } break; - case 89:{ - yyval = yypvt[-0]; - } - break; - case 90:{ - yyval = make_node(nod_def_exception, (int) e_xcp_count, - yypvt[-1], yypvt[-0]); - } break; - case 91:{ - yyval = make_node(nod_def_index, (int) e_idx_count, - yypvt[-6], yypvt[-5], yypvt[-3], yypvt[-1], - yypvt[-0]); - } break; - case 92:{ - yyval = yypvt[-0]; - } - break; - case 93:{ - yyval = yypvt[-0]; - } - break; - case 94:{ - yyval = yypvt[-0]; - } - break; - case 95:{ - yyval = yypvt[-0]; - } - break; - case 96:{ - yyval = yypvt[-0]; - } - break; - case 97:{ - yyval = yypvt[-0]; - } - break; - case 98:{ - yyval = yypvt[-0]; - } - break; - case 99:{ - yyval = yypvt[-0]; - } - break; - case 100:{ - yyval = yypvt[-0]; - } - break; - case 101:{ - yyval = make_node(nod_unique, (int) 0, NULL); - } break; - case 102:{ - yyval = NULL; - } - break; - case 103:{ - yyval = make_list(yypvt[-0]); - } - break; - case 105:{ - yyval = make_node(nod_def_computed, 2, yypvt[-2], yypvt[-1]); - } - break; - case 106:{ - yyval = make_node(nod_def_shadow, (int) e_shadow_count, - yypvt[-5], yypvt[-4], yypvt[-3], yypvt[-2], - yypvt[-1], make_list(yypvt[-0])); - } break; - case 107:{ - yyval = MAKE_constant((STR) 1, CONSTANT_SLONG); - } - break; - case 108:{ - yyval = MAKE_constant((STR) 0, CONSTANT_SLONG); - } - break; - case 109:{ - yyval = MAKE_constant((STR) 0, CONSTANT_SLONG); - } - break; - case 110:{ - yyval = MAKE_constant((STR) 0, CONSTANT_SLONG); - } - break; - case 111:{ - yyval = MAKE_constant((STR) 1, CONSTANT_SLONG); - } - break; - case 112:{ - yyval = (NOD) 0; - } - break; - case 113:{ - yyval = yypvt[-1]; - } - break; - case 114:{ - yyval = (NOD) NULL; - } - break; - case 117:{ - yyval = make_node(nod_list, (int) 2, yypvt[-1], yypvt[-0]); - } break; - case 118:{ - yyval = make_node(nod_def_domain, (int) e_dom_count, - yypvt[-7], yypvt[-3], yypvt[-2], - make_list(yypvt[-1]), yypvt[-0]); - } break; - case 119:{ - yyval = NULL; - } - break; - case 120:{ - yyval = NULL; - } - break; - case 121:{ - yyval = yypvt[-0]; - } - break; - case 122:{ - yyval = (NOD) NULL; - } - break; - case 123:{ - yyval = (NOD) NULL; - } - break; - case 126:{ - yyval = make_node(nod_list, (int) 2, yypvt[-1], yypvt[-0]); - } break; - case 127:{ - yyval = make_node(nod_rel_constraint, (int) 2, NULL, yypvt[-0]); - } break; - case 130:{ - yyval = make_node(nod_null, (int) 0, NULL); - } break; - case 131:{ - yyval = make_node(nod_def_constraint, - (int) e_cnstr_count, MAKE_string(NULL_STRING, - 0), NULL, NULL, - NULL, yypvt[-2], NULL, yypvt[-0], NULL, NULL); - } break; - case 132:{ - yyval = make_node(nod_def_generator, - (int) e_gen_count, yypvt[-0]);} break; - case 133:{ - yyval = make_node(nod_def_role, (int) 1, yypvt[-0]); - } break; - case 134:{ - yyval = make_node(nod_def_database, (int) e_cdb_count, - yypvt[-2], make_list(yypvt[-1]), - make_list(yypvt[-0]));} break; - case 137:{ - log_defined = FALSE; - cache_defined = FALSE; - yyval = (NOD) yypvt[-0]; - } - break; - case 138:{ - yyval = (NOD) NULL; - } - break; - case 141:{ - yyval = make_node(nod_list, 2, yypvt[-1], yypvt[-0]); - } - break; - case 142:{ - yyval = make_node(nod_page_size, 1, yypvt[-0]); - } - break; - case 143:{ - yyval = make_node(nod_file_length, 1, yypvt[-1]); - } - break; - case 144:{ - yyval = make_node(nod_user_name, 1, yypvt[-0]); - } - break; - case 145:{ - yyval = make_node(nod_password, 1, yypvt[-0]); - } - break; - case 146:{ - yyval = make_node(nod_lc_ctype, 1, yypvt[-0]); - } - break; - case 147:{ - yyval = (NOD) NULL; - } - break; - case 150:{ - yyval = make_node(nod_list, 2, yypvt[-1], yypvt[-0]); - } - break; - case 154:{ - yyval = make_node(nod_dfl_charset, 1, yypvt[-0]); - } - break; - case 155:{ - yyval = make_node(nod_group_commit_wait, 1, yypvt[-0]); - } - break; - case 156:{ - yyval = make_node(nod_check_point_len, 1, yypvt[-0]); - } - break; - case 157:{ - yyval = make_node(nod_num_log_buffers, 1, yypvt[-0]); - } - break; - case 158:{ - yyval = make_node(nod_log_buffer_size, 1, yypvt[-0]); - } - break; - case 159:{ - if (log_defined) - yyabandon(-260, isc_log_redef); /* Log redefined */ - log_defined = TRUE; - yyval = yypvt[-0]; - } - break; - case 160:{ - if (log_defined) - yyabandon(-260, isc_log_redef); - log_defined = TRUE; - yyval = yypvt[-0]; - } - break; - case 161:{ - file->fil_flags |= LOG_serial | LOG_overflow; - if (file->fil_partitions) - yyabandon(-261, isc_partition_not_supp); + if (DSQL_DSQL_yyssp >= DSQL_yyss + yystacksize - 1) + { + goto yyoverflow; + } + *++DSQL_DSQL_yyssp = yystate = yytable[yyn]; + *++yyvsp = yylval; + goto yyloop; + } + else + { +#if YYDEBUG + if (yydebug) + printf("%sdebug: error recovery discarding state %d\n", + YYPREFIX, *DSQL_DSQL_yyssp); +#endif + if (DSQL_DSQL_yyssp <= DSQL_yyss) goto yyabort; + --DSQL_DSQL_yyssp; + --yyvsp; + } + } + } + else + { + if (DSQL_yychar == 0) goto yyabort; +#if YYDEBUG + if (yydebug) + { + yys = 0; + if (DSQL_yychar <= YYMAXTOKEN) yys = yyname[DSQL_yychar]; + if (!yys) yys = "illegal-symbol"; + printf("%sdebug: state %d, error recovery discards token %d (%s)\n", + YYPREFIX, yystate, DSQL_yychar, yys); + } +#endif + DSQL_yychar = (-1); + goto yyloop; + } +yyreduce: +#if YYDEBUG + if (yydebug) + printf("%sdebug: state %d, reducing by rule %d (%s)\n", + YYPREFIX, yystate, yyn, yyrule[yyn]); +#endif + yym = yylen[yyn]; + yyval = yyvsp[1-yym]; + switch (yyn) + { +case 1: +{ DSQL_parse = yyvsp[0]; } +break; +case 2: +{ DSQL_parse = yyvsp[-1]; } +break; +case 18: +{ DSQL_debug = (int) yyvsp[0]; + if (DSQL_debug > 10) + yydebug = DSQL_debug; + yyval = make_node (nod_null, (int) 0, NULL); } +break; +case 19: +{ yyval = make_node (nod_grant, (int) e_grant_count, + yyvsp[-5], yyvsp[-3], make_list(yyvsp[-1]), yyvsp[0]); } +break; +case 20: +{ yyval = make_node (nod_grant, (int) e_grant_count, + yyvsp[-6], yyvsp[-3], make_list(yyvsp[-1]), yyvsp[0]); } +break; +case 21: +{ yyval = make_node (nod_grant, (int) e_grant_count, + yyvsp[-4], yyvsp[-2], make_list(yyvsp[0]), NULL); } +break; +case 22: +{ yyval = make_node (nod_grant, (int) e_grant_count, + yyvsp[-5], yyvsp[-2], make_list(yyvsp[0]), NULL); } +break; +case 23: +{ yyval = make_node (nod_grant, (int) e_grant_count, + make_list(yyvsp[-3]), make_list(yyvsp[-1]), NULL, yyvsp[0]); } +break; +case 25: +{ yyval = yyvsp[0]; } +break; +case 26: +{ yyval = make_node (nod_all, (int) 0, NULL); } +break; +case 27: +{ yyval = make_node (nod_all, (int) 0, NULL); } +break; +case 28: +{ yyval = make_list (yyvsp[0]); } +break; +case 30: +{ yyval = make_node (nod_list, (int) 2, yyvsp[-2], yyvsp[0]); } +break; +case 31: +{ yyval = make_list (make_node (nod_execute, (int) 0, NULL)); } +break; +case 32: +{ yyval = make_node (nod_select, (int) 0, NULL); } +break; +case 33: +{ yyval = make_node (nod_insert, (int) 0, NULL); } +break; +case 34: +{ yyval = make_node (nod_delete, (int) 0, NULL); } +break; +case 35: +{ yyval = make_node (nod_update, (int) 1, yyvsp[0]); } +break; +case 36: +{ yyval = make_node (nod_references, (int) 1, yyvsp[0]); } +break; +case 37: +{ yyval = make_node (nod_grant, (int) 0, NULL); } +break; +case 38: +{ yyval = 0; } +break; +case 39: +{ yyval = make_node (nod_grant_admin, (int) 0, NULL); } +break; +case 40: +{ yyval = 0; } +break; +case 41: +{ yyval = make_node (nod_procedure_name, (int) 1, yyvsp[0]); } +break; +case 42: +{ yyval = make_node (nod_revoke, + (int) e_grant_count, yyvsp[-4], yyvsp[-2], + make_list(yyvsp[0]), yyvsp[-5]); } +break; +case 43: +{ yyval = make_node (nod_revoke, + (int) e_grant_count, yyvsp[-5], yyvsp[-2], + make_list(yyvsp[0]), yyvsp[-6]); } +break; +case 44: +{ yyval = make_node (nod_revoke, + (int) e_grant_count, yyvsp[-4], yyvsp[-2], + make_list(yyvsp[0]), NULL); } +break; +case 45: +{ yyval = make_node (nod_revoke, + (int) e_grant_count, yyvsp[-5], yyvsp[-2], + make_list(yyvsp[0]), NULL); } +break; +case 46: +{ yyval = make_node (nod_revoke, + (int) e_grant_count, yyvsp[-4], yyvsp[-2], + make_list(yyvsp[0]), NULL); } +break; +case 47: +{ yyval = make_node (nod_revoke, + (int) e_grant_count, yyvsp[-5], yyvsp[-2], + make_list(yyvsp[0]), NULL); } +break; +case 48: +{ yyval = make_node (nod_revoke, + (int) e_grant_count, make_list(yyvsp[-2]), make_list(yyvsp[0]), + NULL, NULL); } +break; +case 49: +{ yyval = make_node (nod_grant, (int) 0, NULL); } +break; +case 51: +{ yyval = make_node (nod_list, (int) 2, yyvsp[-2], yyvsp[0]); } +break; +case 52: +{ yyval = make_node (nod_list, (int) 2, yyvsp[-2], yyvsp[0]); } +break; +case 53: +{ yyval = make_node (nod_list, (int) 2, yyvsp[-2], yyvsp[0]); } +break; +case 54: +{ yyval = make_node (nod_proc_obj, (int) 1, yyvsp[0]); } +break; +case 55: +{ yyval = make_node (nod_trig_obj, (int) 1, yyvsp[0]); } +break; +case 56: +{ yyval = make_node (nod_view_obj, (int) 1, yyvsp[0]); } +break; +case 58: +{ yyval = make_node (nod_list, (int) 2, yyvsp[-2], yyvsp[0]); } +break; +case 59: +{ yyval = make_node (nod_user_name, (int) 1, yyvsp[0]); } +break; +case 60: +{ yyval = make_node (nod_user_name, (int) 1, yyvsp[0]); } +break; +case 61: +{ yyval = make_node (nod_user_group, (int) 1, yyvsp[0]); } +break; +case 63: +{ yyval = make_node (nod_list, (int) 2, yyvsp[-2], yyvsp[0]); } +break; +case 64: +{ yyval = make_node (nod_role_name, (int) 1, yyvsp[0]); } +break; +case 66: +{ yyval = make_node (nod_list, (int) 2, yyvsp[-2], yyvsp[0]); } +break; +case 67: +{ yyval = make_node (nod_user_name, (int) 1, yyvsp[0]); } +break; +case 68: +{ yyval = make_node (nod_user_name, (int) 1, yyvsp[0]); } +break; +case 69: +{ yyval = yyvsp[0];} +break; +case 70: +{ yyval = yyvsp[0]; } +break; +case 71: +{ yyval = yyvsp[0]; } +break; +case 72: +{ yyval = make_node (nod_def_udf, (int) e_udf_count, + yyvsp[-7], yyvsp[-2], yyvsp[0], make_list (yyvsp[-6]), yyvsp[-4]); } +break; +case 74: +{ field->fld_dtype = dtype_blob; } +break; +case 75: +{ + field->fld_dtype = dtype_cstring; + field->fld_character_length = (USHORT) yyvsp[-2]; } +break; +case 76: +{ yyval = (NOD) NULL; } +break; +case 78: +{ yyval = yyvsp[-1]; } +break; +case 80: +{ yyval = make_node (nod_list, (int) 2, yyvsp[-2], yyvsp[0]); } +break; +case 81: +{ yyval = yyvsp[-1]; } +break; +case 83: +{ yyval = yyvsp[-1]; } +break; +case 84: +{ yyval = make_node (nod_udf_return_value, (int) 2, yyvsp[-1], + MAKE_constant ((STR) FUN_reference, CONSTANT_SLONG));} +break; +case 85: +{ yyval = make_node (nod_udf_return_value, (int) 2, yyvsp[-2], + MAKE_constant ((STR) (-1 * FUN_reference), CONSTANT_SLONG));} +break; +case 86: +{ yyval = make_node (nod_udf_return_value, (int) 2, yyvsp[-3], + MAKE_constant ((STR) FUN_value, CONSTANT_SLONG));} +break; +case 87: +{ yyval = make_node (nod_udf_return_value, (int) 2, + (NOD) NULL, MAKE_constant ((STR) yyvsp[0], CONSTANT_SLONG));} +break; +case 88: +{ yyval = make_node (nod_def_filter, (int) e_filter_count, + yyvsp[-8], yyvsp[-6], yyvsp[-4], yyvsp[-2], yyvsp[0]); } +break; +case 89: +{ yyval = yyvsp[0]; } +break; +case 90: +{ yyval = make_node (nod_def_exception, (int) e_xcp_count, + yyvsp[-1], yyvsp[0]); } +break; +case 91: +{ yyval = make_node (nod_def_index, (int) e_idx_count, + yyvsp[-6], yyvsp[-5], yyvsp[-3], yyvsp[-1], yyvsp[0]); } +break; +case 92: +{ yyval = yyvsp[0]; } +break; +case 93: +{ yyval = yyvsp[0]; } +break; +case 94: +{ yyval = yyvsp[0]; } +break; +case 95: +{ yyval = yyvsp[0]; } +break; +case 96: +{ yyval = yyvsp[0]; } +break; +case 97: +{ yyval = yyvsp[0]; } +break; +case 98: +{ yyval = yyvsp[0]; } +break; +case 99: +{ yyval = yyvsp[0]; } +break; +case 100: +{ yyval = yyvsp[0]; } +break; +case 101: +{ yyval = make_node (nod_unique, (int) 0, NULL); } +break; +case 102: +{ yyval = NULL; } +break; +case 103: +{ yyval = make_list (yyvsp[0]); } +break; +case 105: +{ yyval = make_node (nod_def_computed, 2, yyvsp[-2], yyvsp[-1]); } +break; +case 106: +{ yyval = make_node (nod_def_shadow, (int) e_shadow_count, + yyvsp[-5], yyvsp[-4], yyvsp[-3], yyvsp[-2], yyvsp[-1], make_list (yyvsp[0])); } +break; +case 107: +{ yyval = MAKE_constant ((STR) 1, CONSTANT_SLONG); } +break; +case 108: +{ yyval = MAKE_constant ((STR) 0, CONSTANT_SLONG); } +break; +case 109: +{ yyval = MAKE_constant ((STR) 0, CONSTANT_SLONG); } +break; +case 110: +{ yyval = MAKE_constant ((STR) 0, CONSTANT_SLONG); } +break; +case 111: +{ yyval = MAKE_constant ((STR) 1, CONSTANT_SLONG); } +break; +case 112: +{ yyval = (NOD) 0;} +break; +case 113: +{ yyval = yyvsp[-1]; } +break; +case 114: +{ yyval = (NOD) NULL; } +break; +case 117: +{ yyval = make_node (nod_list, (int) 2, yyvsp[-1], yyvsp[0]); } +break; +case 118: +{ yyval = make_node (nod_def_domain, (int) e_dom_count, + yyvsp[-7], yyvsp[-3], yyvsp[-2], make_list (yyvsp[-1]), yyvsp[0]); } +break; +case 119: +{ yyval = NULL; } +break; +case 120: +{ yyval = NULL; } +break; +case 121: +{ yyval = yyvsp[0]; } +break; +case 122: +{ yyval = (NOD) NULL; } +break; +case 123: +{ yyval = (NOD) NULL; } +break; +case 126: +{ yyval = make_node (nod_list, (int) 2, yyvsp[-1], yyvsp[0]); } +break; +case 127: +{ yyval = make_node (nod_rel_constraint, (int) 2, NULL, yyvsp[0]);} +break; +case 130: +{ yyval = make_node (nod_null, (int) 0, NULL); } +break; +case 131: +{ yyval = make_node (nod_def_constraint, + (int) e_cnstr_count, MAKE_string (NULL_STRING, 0), NULL, + NULL, NULL, yyvsp[-2], NULL, yyvsp[0], NULL, NULL); } +break; +case 132: +{ yyval = make_node (nod_def_generator, + (int) e_gen_count, yyvsp[0]); } +break; +case 133: +{ yyval = make_node (nod_def_role, + (int) 1, yyvsp[0]); } +break; +case 134: +{ yyval = make_node (nod_def_database, (int) e_cdb_count, + yyvsp[-2], make_list(yyvsp[-1]), make_list (yyvsp[0]));} +break; +case 137: +{ log_defined = FALSE; + cache_defined = FALSE; + yyval = (NOD) yyvsp[0]; } +break; +case 138: +{yyval = (NOD) NULL;} +break; +case 141: +{ yyval = make_node (nod_list, 2, yyvsp[-1], yyvsp[0]); } +break; +case 142: +{ yyval = make_node (nod_page_size, 1, yyvsp[0]);} +break; +case 143: +{ yyval = make_node (nod_file_length, 1, yyvsp[-1]);} +break; +case 144: +{ yyval = make_node (nod_user_name, 1, yyvsp[0]);} +break; +case 145: +{ yyval = make_node (nod_password, 1, yyvsp[0]);} +break; +case 146: +{ yyval = make_node (nod_lc_ctype, 1, yyvsp[0]);} +break; +case 147: +{yyval = (NOD) NULL;} +break; +case 150: +{ yyval = make_node (nod_list, 2, yyvsp[-1], yyvsp[0]); } +break; +case 154: +{ yyval = make_node (nod_dfl_charset, 1, yyvsp[0]);} +break; +case 155: +{ yyval = make_node (nod_group_commit_wait, 1, yyvsp[0]);} +break; +case 156: +{ yyval = make_node (nod_check_point_len, 1, yyvsp[0]);} +break; +case 157: +{ yyval = make_node (nod_num_log_buffers, 1, yyvsp[0]);} +break; +case 158: +{ yyval = make_node (nod_log_buffer_size, 1, yyvsp[0]);} +break; +case 159: +{ if (log_defined) + yyabandon (-260, isc_log_redef); /* Log redefined */ + log_defined = TRUE; + yyval = yyvsp[0]; } +break; +case 160: +{ if (log_defined) + yyabandon (-260, isc_log_redef); + log_defined = TRUE; + yyval = yyvsp[0]; } +break; +case 161: +{ file->fil_flags |= LOG_serial | LOG_overflow; + if (file->fil_partitions) + yyabandon (-261, isc_partition_not_supp); /* Partitions not supported in series of log file specification */ - yyval = make_node(nod_list, 2, yypvt[-3], yypvt[-0]); - } - break; - case 162:{ - file->fil_flags |= LOG_serial; - if (file->fil_partitions) - yyabandon(-261, isc_partition_not_supp); - yyval = yypvt[-0]; - } - break; - case 163:{ - file = make_file(); - file->fil_flags = LOG_serial | LOG_default; - yyval = make_node(nod_log_file_desc, (int) 1, (NOD) file); - } break; - case 164:{ - file->fil_name = (STR) yypvt[-1]; - yyval = (NOD) make_node(nod_file_desc, (int) 1, (NOD) file); - } break; - case 166:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 167:{ - check_log_file_attrs(); - yyval = (NOD) make_node(nod_log_file_desc, (int) 1, (NOD) file); - } break; - case 168:{ - file = make_file(); - file->fil_name = (STR) yypvt[-0]; - } - break; - case 171:{ - file->fil_length = (SLONG) yypvt[-0]; - } - break; - case 172:{ - file = make_file(); - } - break; - case 177:{ - file->fil_start = (SLONG) yypvt[-0]; - } - break; - case 178:{ - file->fil_length = (SLONG) yypvt[-1]; - } - break; - case 185:{ - yyval = make_node(nod_def_relation, - (int) e_drl_count, yypvt[-4], - make_list(yypvt[-1]), yypvt[-3]); - } break; - case 186:{ - yyval = yypvt[-0]; - } - break; - case 187:{ - yyval = yypvt[-0]; - } - break; - case 188:{ - yyval = (NOD) NULL; - } - break; - case 190:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 193:{ - yyval = make_node(nod_def_field, (int) e_dfl_count, - yypvt[-5], yypvt[-3], yypvt[-2], - make_list(yypvt[-1]), yypvt[-0], yypvt[-4], - NULL);} break; - case 194:{ - yyval = - make_node(nod_def_field, (int) e_dfl_count, yypvt[-2], NULL, - NULL, NULL, NULL, NULL, yypvt[-0]); - } break; - case 195:{ - yyval = make_node(nod_def_field, (int) e_dfl_count, - yypvt[-1], NULL, NULL, NULL, NULL, NULL, - yypvt[-0]);} break; - case 196:{ + yyval = make_node (nod_list, 2, yyvsp[-3], yyvsp[0]); } +break; +case 162: +{ file->fil_flags |= LOG_serial; + if (file->fil_partitions) + yyabandon (-261, isc_partition_not_supp); + yyval = yyvsp[0]; } +break; +case 163: +{ file = make_file(); + file->fil_flags = LOG_serial | LOG_default; + yyval = make_node (nod_log_file_desc, (int) 1, + (NOD) file);} +break; +case 164: +{ file->fil_name = (STR) yyvsp[-1]; + yyval = (NOD) make_node (nod_file_desc, (int) 1, + (NOD) file); } +break; +case 166: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 167: +{ +#ifndef WINDOWS_ONLY + check_log_file_attrs(); +#endif + yyval = (NOD) make_node (nod_log_file_desc, (int) 1, + (NOD) file); } +break; +case 168: +{ file = make_file(); + file->fil_name = (STR) yyvsp[0]; } +break; +case 171: +{ file->fil_length = (SLONG) yyvsp[0]; } +break; +case 172: +{ file = make_file ();} +break; +case 177: +{ file->fil_start = (SLONG) yyvsp[0];} +break; +case 178: +{ file->fil_length = (SLONG) yyvsp[-1];} +break; +case 185: +{ yyval = make_node (nod_def_relation, + (int) e_drl_count, yyvsp[-4], make_list (yyvsp[-1]), yyvsp[-3]); } +break; +case 186: +{ yyval = yyvsp[0]; } +break; +case 187: +{ yyval = yyvsp[0]; } +break; +case 188: +{ yyval = (NOD) NULL; } +break; +case 190: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 193: +{ yyval = make_node (nod_def_field, (int) e_dfl_count, + yyvsp[-5], yyvsp[-3], yyvsp[-2], make_list (yyvsp[-1]), yyvsp[0], yyvsp[-4], NULL); } +break; +case 194: +{ yyval = make_node (nod_def_field, (int) e_dfl_count, + yyvsp[-2], NULL, NULL, NULL, NULL, NULL, yyvsp[0]); } +break; +case 195: +{ yyval = make_node (nod_def_field, (int) e_dfl_count, + yyvsp[-1], NULL, NULL, NULL, NULL, NULL, yyvsp[0]); } +break; +case 196: +{ field->fld_flags |= FLD_computed; - yyval = make_node(nod_def_computed, 2, yypvt[-2], yypvt[-1]); - } - break; - case 199:{ - yyval = NULL; - } - break; - case 200:{ - yyval = make_node(nod_def_domain, (int) e_dom_count, - yypvt[-1], NULL, NULL, NULL, NULL); - } break; - case 201:{ - yyval = yypvt[-0]; - } - break; - case 202:{ - yyval = (NOD) NULL; - } - break; - case 203:{ - field_name = yypvt[-0]; - field = make_field(yypvt[-0]); - yyval = (NOD) field; - } - break; - case 204:{ - field = make_field(yypvt[-0]); - yyval = (NOD) field; - } - break; - case 205:{ - yyval = yypvt[-1]; - } - break; - case 206:{ - field = make_field(NULL); - yyval = (NOD) field; - } - break; - case 207:{ - yyval = yypvt[-0]; - } - break; - case 208:{ - yyval = (NOD) NULL; - } - break; - case 209:{ - yyval = yypvt[-0]; - } - break; - case 210:{ - yyval = make_node(nod_user_name, (int) 0, NULL); - } break; - case 211:{ - yyval = yypvt[-0]; - } - break; - case 212:{ - yyval = yypvt[-0]; - } - break; - case 213:{ - yyval = (NOD) NULL; - } - break; - case 216:{ - yyval = make_node(nod_list, (int) 2, yypvt[-1], yypvt[-0]); - } break; - case 217:{ - yyval = - make_node(nod_rel_constraint, (int) 2, yypvt[-1], - yypvt[-0]);} break; - case 218:{ - yyval = make_node(nod_null, (int) 1, NULL); - } break; - case 219:{ - yyval = make_node(nod_foreign, e_for_count, - make_node(nod_list, (int) 1, field_name), - yypvt[-2], yypvt[-1], yypvt[-0]); - } break; - case 221:{ - yyval = make_node(nod_unique, (int) 0, NULL); - } break; - case 222:{ - yyval = make_node(nod_primary, (int) 0, NULL); - } break; - case 223:{ - yyval = - make_node(nod_rel_constraint, (int) 2, yypvt[-1], - yypvt[-0]);} break; - case 224:{ - yyval = yypvt[-0]; - } - break; - case 225:{ - yyval = NULL; - } - break; - case 230:{ - yyval = make_node(nod_unique, 1, yypvt[-0]); - } - break; - case 231:{ - yyval = make_node(nod_primary, e_pri_count, yypvt[-0]); - } - break; - case 232:{ - yyval = make_node(nod_foreign, e_for_count, yypvt[-4], yypvt[-2], - yypvt[-1], yypvt[-0]); - } - break; - case 233:{ - yyval = make_node(nod_def_constraint, - (int) e_cnstr_count, MAKE_string(NULL_STRING, - 0), NULL, NULL, - NULL, yypvt[-2], NULL, yypvt[-0], NULL, NULL); - } break; - case 234:{ - yyval = - make_node(nod_ref_upd_del, e_ref_upd_del_count, yypvt[-0], - NULL);} break; - case 235:{ - yyval = - make_node(nod_ref_upd_del, e_ref_upd_del_count, NULL, - yypvt[-0]);} - break; - case 236:{ - yyval = - make_node(nod_ref_upd_del, e_ref_upd_del_count, yypvt[-0], - yypvt[-1]);} - break; - case 237:{ - yyval = - make_node(nod_ref_upd_del, e_ref_upd_del_count, yypvt[-1], - yypvt[-0]);} - break; - case 238:{ - yyval = NULL; - } - break; - case 239:{ - yyval = yypvt[-0]; - } - break; - case 240:{ - yyval = yypvt[-0]; - } - break; - case 241:{ - yyval = make_flag_node(nod_ref_trig_action, - REF_ACTION_CASCADE, - e_ref_trig_action_count, NULL);} - break; - case 242:{ - yyval = make_flag_node(nod_ref_trig_action, - REF_ACTION_SET_DEFAULT, - e_ref_trig_action_count, NULL); - } - break; - case 243:{ - yyval = make_flag_node(nod_ref_trig_action, - REF_ACTION_SET_NULL, - e_ref_trig_action_count, NULL);} - break; - case 244:{ - yyval = make_flag_node(nod_ref_trig_action, - REF_ACTION_NONE, e_ref_trig_action_count, - NULL);} - break; - case 245:{ - yyval = make_node(nod_def_procedure, - (int) e_prc_count, - yypvt[-7], yypvt[-6], yypvt[-5], yypvt[-2], - yypvt[-1], yypvt[-0], NULL); - } break; - case 246:{ - yyval = make_node(nod_mod_procedure, - (int) e_prc_count, - yypvt[-7], yypvt[-6], yypvt[-5], yypvt[-2], - yypvt[-1], yypvt[-0], NULL); - } break; - case 247:{ - yyval = make_list(yypvt[-1]); - } - break; - case 248:{ - yyval = NULL; - } - break; - case 249:{ - yyval = yypvt[-0]; - } - break; - case 250:{ - yyval = NULL; - } - break; - case 252:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 253:{ - yyval = make_node(nod_def_field, (int) e_dfl_count, - yypvt[-1], NULL, NULL, NULL, NULL, NULL, NULL); - } break; - case 254:{ - yyval = make_list(yypvt[-0]); - } - break; - case 255:{ - yyval = NULL; - } - break; - case 257:{ - yyval = make_node(nod_list, 2, yypvt[-1], yypvt[-0]); - } - break; - case 258:{ - yyval = make_node(nod_def_field, (int) e_dfl_count, - yypvt[-2], NULL, NULL, NULL, NULL, NULL, NULL); - } break; - case 261:{ - yyval = make_node(nod_block, e_blk_count, - make_list(yypvt[-1]), NULL);} - break; - case 262:{ - yyval = make_node(nod_block, e_blk_count, - make_list(yypvt[-2]), make_list(yypvt[-1])); - } - break; - case 264:{ - yyval = make_node(nod_list, 2, yypvt[-1], yypvt[-0]); - } - break; - case 267:{ - yyval = make_node(nod_exception_stmt, 1, yypvt[-1]); - } - break; - case 272:{ - yyval = make_node(nod_post, e_pst_count, yypvt[-1]); - } - break; - case 276:{ - yyval = make_node(nod_return, e_rtn_count, NULL); - } - break; - case 277:{ - yyval = make_node(nod_exit, 0, NULL); - } - break; - case 278:{ - yyval = make_node(nod_exec_procedure, e_exe_count, yypvt[-3], - yypvt[-2], yypvt[-1]); - } - break; - case 279:{ - yyval = make_node(nod_for_select, e_flp_count, yypvt[-5], - make_list(yypvt[-3]), yypvt[-2], yypvt[-0]); - } - break; - case 280:{ - yyval = - make_node(nod_if, e_if_count, yypvt[-5], yypvt[-2], - yypvt[-0]);} break; - case 281:{ - yyval = make_node(nod_if, e_if_count, yypvt[-3], yypvt[-0], NULL); - } - break; - case 282:{ - yyval = make_node(nod_for_select, e_flp_count, yypvt[-3], - make_list(yypvt[-1]), NULL, NULL); - } - break; - case 283:{ - yyval = make_node(nod_var_name, (int) e_vrn_count, yypvt[-0]); - } break; - case 284:{ - yyval = make_list(yypvt[-0]); - } - break; - case 285:{ - yyval = make_list(yypvt[-1]); - } - break; - case 286:{ - yyval = NULL; - } - break; - case 287:{ - yyval = make_list(yypvt[-0]); - } - break; - case 288:{ - yyval = make_list(yypvt[-1]); - } - break; - case 289:{ - yyval = NULL; - } - break; - case 294:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 295:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 296:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 297:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 300:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 301:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 302:{ - yyval = make_node(nod_while, e_while_count, - yypvt[-3], yypvt[-0], NULL);} - break; - case 303:{ - yyval = make_node(nod_cursor, e_cur_count, yypvt[-0], NULL, NULL); - } - break; - case 304:{ - yyval = NULL; - } - break; - case 306:{ - yyval = make_node(nod_list, 2, yypvt[-1], yypvt[-0]); - } - break; - case 307:{ - yyval = make_node(nod_on_error, e_err_count, - make_list(yypvt[-2]), yypvt[-0]); - } - break; - case 309:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 310:{ - yyval = make_node(nod_sqlcode, 1, yypvt[-0]); - } - break; - case 311:{ - yyval = make_node(nod_gdscode, 1, yypvt[-0]); - } - break; - case 312:{ - yyval = make_node(nod_exception, 1, yypvt[-0]); - } - break; - case 313:{ - yyval = make_node(nod_default, 1, NULL); - } - break; - case 314:{ - yyval = make_node(nod_exec_procedure, e_exe_count, yypvt[-1], - yypvt[-0], make_node(nod_all, (int) 0, NULL)); - } break; - case 315:{ - yyval = make_list(yypvt[-0]); - } - break; - case 316:{ - yyval = make_list(yypvt[-1]); - } - break; - case 317:{ - yyval = NULL; - } - break; - case 321:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 322:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 323:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 324:{ - yyval = make_node(nod_def_view, (int) e_view_count, - yypvt[-6], yypvt[-5], yypvt[-2], yypvt[-1], - yypvt[-0]); - } break; - case 325:{ - yyval = make_node(nod_select, (int) 2, yypvt[-0], NULL); - } break; - case 326:{ - yyval = make_node(nod_list, (int) 1, yypvt[-0]); - } break; - case 327:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 328:{ - yyval = - make_flag_node(nod_list, NOD_UNION_ALL, 2, yypvt[-3], - yypvt[-0]);} - break; - case 329:{ - yyval = make_node(nod_select_expr, e_sel_count, - yypvt[-6], yypvt[-5], yypvt[-4], yypvt[-3], - yypvt[-2], yypvt[-1], yypvt[-0], NULL); - } - break; - case 330:{ - yyval = make_list(yypvt[-0]); - } - break; - case 332:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 335:{ - yyval = make_node(nod_join, (int) e_join_count, - yypvt[-5], yypvt[-4], yypvt[-2], yypvt[-0]); - } break; - case 336:{ - yyval = yypvt[-1]; - } - break; - case 337:{ - beginning = lex_position(); - } - break; - case 338:{ - yyval = (NOD) MAKE_string((UCHAR *) beginning, - (lex_position() == end) ? - lex_position() - - beginning : last_token - beginning); - } - break; - case 339:{ - beginning = last_token; - } - break; - case 340:{ - yyval = (NOD) MAKE_string((UCHAR *) beginning, - lex_position() - beginning);} - break; - case 341:{ - yyval = make_node(nod_def_constraint, (int) e_cnstr_count, - MAKE_string(NULL_STRING, 0), NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL); - } break; - case 342:{ - yyval = 0; - } - break; - case 343:{ - yyval = make_node(nod_def_trigger, (int) e_trg_count, - yypvt[-8], yypvt[-6], yypvt[-5], yypvt[-4], - yypvt[-3], yypvt[-1], yypvt[-0], NULL); - } break; - case 344:{ - yyval = MAKE_constant((STR) 0, CONSTANT_SLONG); - } - break; - case 345:{ - yyval = MAKE_constant((STR) 1, CONSTANT_SLONG); - } - break; - case 346:{ - yyval = NULL; - } - break; - case 347:{ - yyval = MAKE_constant((STR) 1, CONSTANT_SLONG); - } - break; - case 348:{ - yyval = MAKE_constant((STR) 2, CONSTANT_SLONG); - } - break; - case 349:{ - yyval = MAKE_constant((STR) 3, CONSTANT_SLONG); - } - break; - case 350:{ - yyval = MAKE_constant((STR) 4, CONSTANT_SLONG); - } - break; - case 351:{ - yyval = MAKE_constant((STR) 5, CONSTANT_SLONG); - } - break; - case 352:{ - yyval = MAKE_constant((STR) 6, CONSTANT_SLONG); - } - break; - case 353:{ - yyval = MAKE_constant((STR) yypvt[-0], CONSTANT_SLONG); - } - break; - case 354:{ - yyval = NULL; - } - break; - case 355:{ - yyval = make_node(nod_list, 2, yypvt[-1], yypvt[-0]); - } - break; - case 356:{ - yyval = yypvt[-0]; - } - break; - case 357:{ - yyval = make_node(nod_mod_exception, (int) e_xcp_count, - yypvt[-1], yypvt[-0]); - } break; - case 358:{ - yyval = make_node(nod_mod_relation, (int) e_alt_count, - yypvt[-1], make_list(yypvt[-0])); - } break; - case 359:{ - yyval = yypvt[-0]; - } - break; - case 360:{ - yyval = yypvt[-0]; - } - break; - case 361:{ - yyval = make_node(nod_mod_database, (int) e_adb_count, - make_list(yypvt[-0])); - } break; - case 362:{ - yyval = make_node(nod_mod_domain, (int) e_alt_count, - yypvt[-1], make_list(yypvt[-0])); - } break; - case 363:{ - yyval = make_node(nod_mod_index, - (int) e_mod_idx_count, yypvt[-0]);} break; - case 365:{ - yyval = make_node(nod_list, 2, yypvt[-1], yypvt[-0]); - } - break; - case 366:{ - yyval = make_node(nod_def_default, (int) e_dft_count, - yypvt[-1], yypvt[-0]); - } break; - case 367:{ - yyval = yypvt[-0]; - } - break; - case 368:{ - yyval = yypvt[-0]; - } - break; - case 369:{ - yyval = make_node(nod_del_default, (int) 0, NULL); - } break; - case 370:{ - yyval = make_node(nod_delete_rel_constraint, (int) 1, NULL); - } break; - case 371:{ - yyval = yypvt[-0]; - } - break; - case 372:{ - yyval = make_node(nod_mod_domain_type, 2, yypvt[-1]); - } - break; - case 374:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 375:{ - yyval = make_node(nod_del_field, 2, yypvt[-1], yypvt[-0]); - } - break; - case 376:{ - yyval = make_node(nod_delete_rel_constraint, (int) 1, yypvt[-0]); - } break; - case 377:{ - yyval = yypvt[-0]; - } - break; - case 378:{ - yyval = yypvt[-0]; - } - break; - case 379:{ - yyval = make_node(nod_mod_field_pos, 2, yypvt[-2], - MAKE_constant((STR) yypvt[-0], CONSTANT_SLONG)); - } - break; - case 380:{ - yyval = make_node(nod_mod_field_name, 2, yypvt[-2], yypvt[-0]); - } - break; - case 381:{ - yyval = - make_node(nod_mod_field_type, 3, yypvt[-3], yypvt[-0], - yypvt[-1]);} - break; - case 382:{ - yyval = make_node(nod_field_name, (int) e_fln_count, - NULL, yypvt[-0]);} break; - case 400:{ - yyval = NULL; - } - break; - case 401:{ - yyval = NULL; - } - break; - case 402:{ - yyval = NULL; - } - break; - case 403:{ - yyval = make_node(nod_def_domain, (int) e_dom_count, - yypvt[-1], NULL, NULL, NULL, NULL); - } break; - case 404:{ - field_name = yypvt[-0]; - field = make_field(yypvt[-0]); - yyval = (NOD) field; - } - break; - case 405:{ - yyval = make_node(nod_restrict, 0, NULL); - } - break; - case 406:{ - yyval = make_node(nod_cascade, 0, NULL); - } - break; - case 407:{ - yyval = make_node(nod_restrict, 0, NULL); - } - break; - case 408:{ - yyval = make_node(nod_idx_active, 1, yypvt[-1]); - } - break; - case 409:{ - yyval = make_node(nod_idx_inactive, 1, yypvt[-1]); - } - break; - case 410:{ - log_defined = FALSE; - cache_defined = FALSE; - yyval = (NOD) NULL; - } - break; - case 412:{ - yyval = make_node(nod_list, (int) 2, yypvt[-1], yypvt[-0]); - } break; - case 413:{ - yyval = yypvt[-0]; - } - break; - case 414:{ - yyval = make_node(nod_drop_log, (int) 0, NULL); - } break; - case 415:{ - yyval = yypvt[-0]; - } - break; - case 416:{ - yyval = yypvt[-0]; - } - break; - case 418:{ - yyval = make_node(nod_list, (int) 2, yypvt[-2], yypvt[-0]); - } break; - case 419:{ - yyval = make_node(nod_mod_trigger, (int) e_trg_count, - yypvt[-6], NULL, yypvt[-5], yypvt[-4], - yypvt[-3], yypvt[-1], yypvt[-0], NULL); - } break; - case 421:{ - yyval = NULL; - } - break; - case 423:{ - yyval = NULL; - } - break; - case 424:{ - yyval = yypvt[-0]; - } - break; - case 425:{ - yyval = make_node(nod_del_exception, 1, yypvt[-0]); - } - break; - case 426:{ - yyval = make_node(nod_del_index, (int) 1, yypvt[-0]); - } break; - case 427:{ - yyval = make_node(nod_del_procedure, (int) 1, yypvt[-0]); - } break; - case 428:{ - yyval = make_node(nod_del_relation, (int) 1, yypvt[-0]); - } break; - case 429:{ - yyval = make_node(nod_del_trigger, (int) 1, yypvt[-0]); - } break; - case 430:{ - yyval = make_node(nod_del_relation, (int) 1, yypvt[-0]); - } break; - case 431:{ - yyval = make_node(nod_del_filter, (int) 1, yypvt[-0]); - } break; - case 432:{ - yyval = make_node(nod_del_domain, (int) 1, yypvt[-0]); - } break; - case 433:{ - yyval = make_node(nod_del_udf, (int) 1, yypvt[-0]); - } break; - case 434:{ - yyval = make_node(nod_del_shadow, (int) 1, yypvt[-0]); - } break; - case 435:{ - yyval = make_node(nod_del_role, (int) 1, yypvt[-0]); - } break; - case 440:{ - field->fld_ranges = make_list(yypvt[-1]); - field->fld_dimensions = field->fld_ranges->nod_count / 2; - field->fld_element_dtype = field->fld_dtype; - yyval = yypvt[-3]; - } - break; - case 441:{ - field->fld_ranges = make_list(yypvt[-2]); - field->fld_dimensions = field->fld_ranges->nod_count / 2; - field->fld_element_dtype = field->fld_dtype; - yyval = yypvt[-4]; - } - break; - case 443:{ - yyval = make_node(nod_list, (int) 2, yypvt[-2], yypvt[-0]); - } break; - case 444:{ - if ((SLONG) yypvt[-0] < 1) - yyval = make_node(nod_list, (int) 2, - MAKE_constant((STR) yypvt[-0], - CONSTANT_SLONG), - MAKE_constant((STR) 1, CONSTANT_SLONG)); - else - yyval = - make_node(nod_list, (int) 2, - MAKE_constant((STR) 1, CONSTANT_SLONG), - MAKE_constant((STR) yypvt[-0], CONSTANT_SLONG)); - } break; - case 445:{ - yyval = make_node(nod_list, (int) 2, - MAKE_constant((STR) yypvt[-2], CONSTANT_SLONG), - MAKE_constant((STR) yypvt[-0], CONSTANT_SLONG)); - } break; - case 451:{ - field->fld_dtype = dtype_long; - field->fld_length = sizeof(SLONG); - } - break; - case 452:{ - field->fld_dtype = dtype_short; - field->fld_length = sizeof(SSHORT); - } - break; - case 453:{ + yyval = make_node (nod_def_computed, 2, yyvsp[-2], yyvsp[-1]); } +break; +case 199: +{ yyval = NULL; } +break; +case 200: +{ yyval = make_node (nod_def_domain, (int) e_dom_count, + yyvsp[-1], NULL, NULL, NULL, NULL); } +break; +case 201: +{ yyval = yyvsp[0]; } +break; +case 202: +{ yyval = (NOD) NULL; } +break; +case 203: +{ field_name = yyvsp[0]; + field = make_field (yyvsp[0]); + yyval = (NOD) field; } +break; +case 204: +{ field = make_field (yyvsp[0]); + yyval = (NOD) field; } +break; +case 205: +{ yyval = yyvsp[-1]; } +break; +case 206: +{ field = make_field (NULL); + yyval = (NOD) field; } +break; +case 207: +{ yyval = yyvsp[0]; } +break; +case 208: +{ yyval = (NOD) NULL; } +break; +case 209: +{ yyval = yyvsp[0]; } +break; +case 210: +{ yyval = make_node (nod_user_name, (int) 0, NULL); } +break; +case 211: +{ yyval = yyvsp[0]; } +break; +case 212: +{ yyval = yyvsp[0]; } +break; +case 213: +{ yyval = (NOD) NULL; } +break; +case 216: +{ yyval = make_node (nod_list, (int) 2, yyvsp[-1], yyvsp[0]); } +break; +case 217: +{ yyval = make_node (nod_rel_constraint, (int) 2, yyvsp[-1], yyvsp[0]);} +break; +case 218: +{ yyval = make_node (nod_null, (int) 1, NULL); } +break; +case 219: +{ yyval = make_node (nod_foreign, e_for_count, + make_node (nod_list, (int) 1, field_name), yyvsp[-2], yyvsp[-1], yyvsp[0]); } +break; +case 221: +{ yyval = make_node (nod_unique, (int) 0, NULL); } +break; +case 222: +{ yyval = make_node (nod_primary, (int) 0, NULL); } +break; +case 223: +{ yyval = make_node (nod_rel_constraint, (int) 2, yyvsp[-1], yyvsp[0]);} +break; +case 224: +{ yyval = yyvsp[0]; } +break; +case 225: +{ yyval = NULL ;} +break; +case 230: +{ yyval = make_node (nod_unique, 1, yyvsp[0]); } +break; +case 231: +{ yyval = make_node (nod_primary, e_pri_count, yyvsp[0]); } +break; +case 232: +{ yyval = make_node (nod_foreign, e_for_count, yyvsp[-4], yyvsp[-2], + yyvsp[-1], yyvsp[0]); } +break; +case 233: +{ yyval = make_node (nod_def_constraint, + (int) e_cnstr_count, MAKE_string (NULL_STRING, 0), NULL, + NULL, NULL, yyvsp[-2], NULL, yyvsp[0], NULL, NULL); } +break; +case 234: +{ yyval = make_node (nod_ref_upd_del, e_ref_upd_del_count, yyvsp[0], NULL);} +break; +case 235: +{ yyval = make_node (nod_ref_upd_del, e_ref_upd_del_count, NULL, yyvsp[0]);} +break; +case 236: +{ yyval = make_node (nod_ref_upd_del, e_ref_upd_del_count, yyvsp[0], yyvsp[-1]); } +break; +case 237: +{ yyval = make_node (nod_ref_upd_del, e_ref_upd_del_count, yyvsp[-1], yyvsp[0]);} +break; +case 238: +{ yyval = NULL;} +break; +case 239: +{ yyval = yyvsp[0];} +break; +case 240: +{ yyval = yyvsp[0];} +break; +case 241: +{ yyval = make_flag_node (nod_ref_trig_action, + REF_ACTION_CASCADE, e_ref_trig_action_count, NULL);} +break; +case 242: +{ yyval = make_flag_node (nod_ref_trig_action, + REF_ACTION_SET_DEFAULT, e_ref_trig_action_count, NULL);} +break; +case 243: +{ yyval = make_flag_node (nod_ref_trig_action, + REF_ACTION_SET_NULL, e_ref_trig_action_count, NULL);} +break; +case 244: +{ yyval = make_flag_node (nod_ref_trig_action, + REF_ACTION_NONE, e_ref_trig_action_count, NULL);} +break; +case 245: +{ yyval = make_node (nod_def_procedure, + (int) e_prc_count, + yyvsp[-7], yyvsp[-6], yyvsp[-5], yyvsp[-2], yyvsp[-1], yyvsp[0], NULL); } +break; +case 246: +{ yyval = make_node (nod_mod_procedure, + (int) e_prc_count, + yyvsp[-7], yyvsp[-6], yyvsp[-5], yyvsp[-2], yyvsp[-1], yyvsp[0], NULL); } +break; +case 247: +{ yyval = make_list (yyvsp[-1]); } +break; +case 248: +{ yyval = NULL; } +break; +case 249: +{ yyval = yyvsp[0]; } +break; +case 250: +{ yyval = NULL; } +break; +case 252: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 253: +{ yyval = make_node (nod_def_field, (int) e_dfl_count, + yyvsp[-1], NULL, NULL, NULL, NULL, NULL, NULL); } +break; +case 254: +{ yyval = make_list (yyvsp[0]); } +break; +case 255: +{ yyval = NULL; } +break; +case 257: +{ yyval = make_node (nod_list, 2, yyvsp[-1], yyvsp[0]); } +break; +case 258: +{ yyval = make_node (nod_def_field, (int) e_dfl_count, + yyvsp[-2], NULL, NULL, NULL, NULL, NULL, NULL); } +break; +case 261: +{ yyval = make_node (nod_block, e_blk_count, + make_list (yyvsp[-1]), NULL);} +break; +case 262: +{ yyval = make_node (nod_block, e_blk_count, + make_list (yyvsp[-2]), make_list (yyvsp[-1]));} +break; +case 264: +{ yyval = make_node (nod_list, 2, yyvsp[-1], yyvsp[0]); } +break; +case 267: +{ yyval = make_node (nod_exception_stmt, 1, yyvsp[-1]); } +break; +case 272: +{ yyval = make_node (nod_post, e_pst_count, yyvsp[-1]); } +break; +case 276: +{ yyval = make_node (nod_return, e_rtn_count, NULL); } +break; +case 277: +{ yyval = make_node (nod_exit, 0, NULL); } +break; +case 278: +{ yyval = make_node (nod_exec_procedure, e_exe_count, yyvsp[-3], + yyvsp[-2], yyvsp[-1]); } +break; +case 279: +{ yyval = make_node (nod_for_select, e_flp_count, yyvsp[-5], + make_list (yyvsp[-3]), yyvsp[-2], yyvsp[0]); } +break; +case 280: +{ yyval = make_node (nod_if, e_if_count, yyvsp[-5], yyvsp[-2], yyvsp[0]); } +break; +case 281: +{ yyval = make_node (nod_if, e_if_count, yyvsp[-3], yyvsp[0], NULL); } +break; +case 282: +{ yyval = make_node (nod_for_select, e_flp_count, yyvsp[-3], + make_list (yyvsp[-1]), NULL, NULL); } +break; +case 283: +{ yyval = make_node (nod_var_name, (int) e_vrn_count, + yyvsp[0]); } +break; +case 284: +{ yyval = make_list (yyvsp[0]); } +break; +case 285: +{ yyval = make_list (yyvsp[-1]); } +break; +case 286: +{ yyval = NULL; } +break; +case 287: +{ yyval = make_list (yyvsp[0]); } +break; +case 288: +{ yyval = make_list (yyvsp[-1]); } +break; +case 289: +{ yyval = NULL; } +break; +case 294: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 295: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 296: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 297: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 300: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 301: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 302: +{ yyval = make_node (nod_while, e_while_count, + yyvsp[-3], yyvsp[0], NULL); } +break; +case 303: +{ yyval = make_node (nod_cursor, e_cur_count, yyvsp[0], NULL, NULL); } +break; +case 304: +{ yyval = NULL; } +break; +case 306: +{ yyval = make_node (nod_list, 2, yyvsp[-1], yyvsp[0]); } +break; +case 307: +{ yyval = make_node (nod_on_error, e_err_count, + make_list (yyvsp[-2]), yyvsp[0]); } +break; +case 309: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 310: +{ yyval = make_node (nod_sqlcode, 1, yyvsp[0]); } +break; +case 311: +{ yyval = make_node (nod_gdscode, 1, yyvsp[0]); } +break; +case 312: +{ yyval = make_node (nod_exception, 1, yyvsp[0]); } +break; +case 313: +{ yyval = make_node (nod_default, 1, NULL); } +break; +case 314: +{ yyval = make_node (nod_exec_procedure, e_exe_count, yyvsp[-1], + yyvsp[0], make_node (nod_all, (int) 0, NULL)); } +break; +case 315: +{ yyval = make_list (yyvsp[0]); } +break; +case 316: +{ yyval = make_list (yyvsp[-1]); } +break; +case 317: +{ yyval = NULL; } +break; +case 321: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 322: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 323: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 324: +{ yyval = make_node (nod_def_view, (int) e_view_count, + yyvsp[-6], yyvsp[-5], yyvsp[-2], yyvsp[-1], yyvsp[0]); } +break; +case 325: +{ yyval = make_node (nod_select, (int) 2, yyvsp[0], NULL); } +break; +case 326: +{ yyval = make_node (nod_list, (int) 1, yyvsp[0]); } +break; +case 327: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 328: +{ yyval = make_flag_node (nod_list, NOD_UNION_ALL, 2, yyvsp[-3], yyvsp[0]); } +break; +case 329: +{ yyval = make_node (nod_select_expr, e_sel_count, + yyvsp[-6], yyvsp[-5], yyvsp[-4], yyvsp[-3], yyvsp[-2], yyvsp[-1], yyvsp[0], NULL); } +break; +case 330: +{ yyval = make_list (yyvsp[0]); } +break; +case 332: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 335: +{ yyval = make_node (nod_join, (int) e_join_count, + yyvsp[-5], yyvsp[-4], yyvsp[-2], yyvsp[0]); } +break; +case 336: +{ yyval = yyvsp[-1]; } +break; +case 337: +{ beginning = lex_position(); } +break; +case 338: +{ yyval = (NOD) MAKE_string ((UCHAR *) beginning, + (lex_position() == end) ? + lex_position()-beginning : last_token-beginning);} +break; +case 339: +{ beginning = last_token; } +break; +case 340: +{ yyval = (NOD) MAKE_string ((UCHAR *) beginning, + lex_position()-beginning); } +break; +case 341: +{ yyval = make_node (nod_def_constraint, (int) e_cnstr_count, + MAKE_string (NULL_STRING, 0), NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL); } +break; +case 342: +{ yyval = 0; } +break; +case 343: +{ yyval = make_node (nod_def_trigger, (int) e_trg_count, + yyvsp[-8], yyvsp[-6], yyvsp[-5], yyvsp[-4], yyvsp[-3], yyvsp[-1], yyvsp[0], NULL); } +break; +case 344: +{ yyval = MAKE_constant ((STR) 0, CONSTANT_SLONG); } +break; +case 345: +{ yyval = MAKE_constant ((STR) 1, CONSTANT_SLONG); } +break; +case 346: +{ yyval = NULL; } +break; +case 347: +{ yyval = MAKE_constant ((STR) 1, CONSTANT_SLONG); } +break; +case 348: +{ yyval = MAKE_constant ((STR) 2, CONSTANT_SLONG); } +break; +case 349: +{ yyval = MAKE_constant ((STR) 3, CONSTANT_SLONG); } +break; +case 350: +{ yyval = MAKE_constant ((STR) 4, CONSTANT_SLONG); } +break; +case 351: +{ yyval = MAKE_constant ((STR) 5, CONSTANT_SLONG); } +break; +case 352: +{ yyval = MAKE_constant ((STR) 6, CONSTANT_SLONG); } +break; +case 353: +{ yyval = MAKE_constant ((STR) yyvsp[0], CONSTANT_SLONG); } +break; +case 354: +{ yyval = NULL; } +break; +case 355: +{ yyval = make_node (nod_list, 2, yyvsp[-1], yyvsp[0]); } +break; +case 356: +{ yyval = yyvsp[0]; } +break; +case 357: +{ yyval = make_node (nod_mod_exception, (int) e_xcp_count, + yyvsp[-1], yyvsp[0]); } +break; +case 358: +{ yyval = make_node (nod_mod_relation, (int) e_alt_count, + yyvsp[-1], make_list (yyvsp[0])); } +break; +case 359: +{ yyval = yyvsp[0]; } +break; +case 360: +{ yyval = yyvsp[0]; } +break; +case 361: +{ yyval = make_node (nod_mod_database, (int) e_adb_count, + make_list (yyvsp[0])); } +break; +case 362: +{ yyval = make_node (nod_mod_domain, (int) e_alt_count, + yyvsp[-1], make_list (yyvsp[0])); } +break; +case 363: +{ yyval = make_node (nod_mod_index, + (int) e_mod_idx_count, yyvsp[0]); } +break; +case 365: +{ yyval = make_node (nod_list, 2, yyvsp[-1], yyvsp[0]); } +break; +case 366: +{ yyval = make_node (nod_def_default, (int) e_dft_count, + yyvsp[-1], yyvsp[0]); } +break; +case 367: +{ yyval = yyvsp[0]; } +break; +case 368: +{ yyval = yyvsp[0]; } +break; +case 369: +{yyval = make_node (nod_del_default, (int) 0, NULL); } +break; +case 370: +{ yyval = make_node (nod_delete_rel_constraint, (int) 1, NULL); } +break; +case 371: +{ yyval = yyvsp[0]; } +break; +case 372: +{ yyval = make_node (nod_mod_domain_type, 2, yyvsp[-1]); } +break; +case 374: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 375: +{ yyval = make_node (nod_del_field, 2, yyvsp[-1], yyvsp[0]); } +break; +case 376: +{ yyval = make_node (nod_delete_rel_constraint, (int) 1, yyvsp[0]);} +break; +case 377: +{ yyval = yyvsp[0]; } +break; +case 378: +{ yyval = yyvsp[0]; } +break; +case 379: +{ yyval = make_node (nod_mod_field_pos, 2, yyvsp[-2], + MAKE_constant ((STR) yyvsp[0], CONSTANT_SLONG)); } +break; +case 380: +{ yyval = make_node (nod_mod_field_name, 2, yyvsp[-2], yyvsp[0]); } +break; +case 381: +{ yyval = make_node (nod_mod_field_type, 3, yyvsp[-3], yyvsp[0], yyvsp[-1]); } +break; +case 382: +{ yyval = make_node (nod_field_name, (int) e_fln_count, + NULL, yyvsp[0]); } +break; +case 400: +{ yyval = NULL; } +break; +case 401: +{ yyval = NULL; } +break; +case 402: +{ yyval = NULL; } +break; +case 403: +{ yyval = make_node (nod_def_domain, (int) e_dom_count, + yyvsp[-1], NULL, NULL, NULL, NULL); } +break; +case 404: +{ field_name = yyvsp[0]; + field = make_field (yyvsp[0]); + yyval = (NOD) field; } +break; +case 405: +{ yyval = make_node (nod_restrict, 0, NULL); } +break; +case 406: +{ yyval = make_node (nod_cascade, 0, NULL); } +break; +case 407: +{ yyval = make_node (nod_restrict, 0, NULL); } +break; +case 408: +{ yyval = make_node (nod_idx_active, 1, yyvsp[-1]); } +break; +case 409: +{ yyval = make_node (nod_idx_inactive, 1, yyvsp[-1]); } +break; +case 410: +{ log_defined = FALSE; + cache_defined = FALSE; + yyval = (NOD) NULL; } +break; +case 412: +{ yyval = make_node (nod_list, (int) 2, yyvsp[-1], yyvsp[0]); } +break; +case 413: +{ yyval = yyvsp[0]; } +break; +case 414: +{ yyval = make_node (nod_drop_log, (int) 0, NULL); } +break; +case 415: +{ yyval = yyvsp[0]; } +break; +case 416: +{ yyval = yyvsp[0]; } +break; +case 418: +{ yyval = make_node (nod_list, (int) 2, yyvsp[-2], yyvsp[0]); } +break; +case 419: +{ yyval = make_node (nod_mod_trigger, (int) e_trg_count, + yyvsp[-6], NULL, yyvsp[-5], yyvsp[-4], yyvsp[-3], yyvsp[-1], yyvsp[0], NULL); } +break; +case 421: +{ yyval = NULL; } +break; +case 423: +{ yyval = NULL; } +break; +case 424: +{ yyval = yyvsp[0]; } +break; +case 425: +{ yyval = make_node (nod_del_exception, 1, yyvsp[0]); } +break; +case 426: +{ yyval = make_node (nod_del_index, (int) 1, yyvsp[0]); } +break; +case 427: +{ yyval = make_node (nod_del_procedure, (int) 1, yyvsp[0]); } +break; +case 428: +{ yyval = make_node (nod_del_relation, (int) 1, yyvsp[0]); } +break; +case 429: +{ yyval = make_node (nod_del_trigger, (int) 1, yyvsp[0]); } +break; +case 430: +{ yyval = make_node (nod_del_relation, (int) 1, yyvsp[0]); } +break; +case 431: +{ yyval = make_node (nod_del_filter, (int) 1, yyvsp[0]); } +break; +case 432: +{ yyval = make_node (nod_del_domain, (int) 1, yyvsp[0]); } +break; +case 433: +{ yyval = make_node (nod_del_udf, (int) 1, yyvsp[0]); } +break; +case 434: +{ yyval = make_node (nod_del_shadow, (int) 1, yyvsp[0]); } +break; +case 435: +{ yyval = make_node (nod_del_role, (int) 1, yyvsp[0]); } +break; +case 440: +{ field->fld_ranges = make_list (yyvsp[-1]); + field->fld_dimensions = field->fld_ranges->nod_count / 2; + field->fld_element_dtype = field->fld_dtype; + yyval = yyvsp[-3]; } +break; +case 441: +{ field->fld_ranges = make_list (yyvsp[-2]); + field->fld_dimensions = field->fld_ranges->nod_count / 2; + field->fld_element_dtype = field->fld_dtype; + yyval = yyvsp[-4]; } +break; +case 443: +{ yyval = make_node (nod_list, (int) 2, yyvsp[-2], yyvsp[0]); } +break; +case 444: +{ if ((SLONG) yyvsp[0] < 1) + yyval = make_node (nod_list, (int) 2, + MAKE_constant ((STR) yyvsp[0], CONSTANT_SLONG), + MAKE_constant ((STR) 1, CONSTANT_SLONG)); + else + yyval = make_node (nod_list, (int) 2, + MAKE_constant ((STR) 1, CONSTANT_SLONG), + MAKE_constant ((STR) yyvsp[0], CONSTANT_SLONG) ); } +break; +case 445: +{ yyval = make_node (nod_list, (int) 2, + MAKE_constant ((STR) yyvsp[-2], CONSTANT_SLONG), + MAKE_constant ((STR) yyvsp[0], CONSTANT_SLONG)); } +break; +case 451: +{ + field->fld_dtype = dtype_long; + field->fld_length = sizeof (SLONG); + } +break; +case 452: +{ + field->fld_dtype = dtype_short; + field->fld_length = sizeof (SSHORT); + } +break; +case 453: +{ *stmt_ambiguous = TRUE; - if (client_dialect <= SQL_DIALECT_V5) { - /* Post warning saying that DATE is equivalent to TIMESTAMP */ - ERRD_post_warning(isc_sqlwarn, gds_arg_number, (SLONG) 301, - isc_arg_warning, isc_dtype_renamed, 0); - field->fld_dtype = dtype_timestamp; - field->fld_length = sizeof(GDS_TIMESTAMP); - } + if (client_dialect <= SQL_DIALECT_V5) + { + /* Post warning saying that DATE is equivalent to TIMESTAMP */ + ERRD_post_warning (isc_sqlwarn, gds_arg_number, (SLONG) 301, + isc_arg_warning, isc_dtype_renamed, 0); + field->fld_dtype = dtype_timestamp; + field->fld_length = sizeof (GDS_TIMESTAMP); + } else if (client_dialect == SQL_DIALECT_V6_TRANSITION) - yyabandon(-104, isc_transitional_date); - else { - field->fld_dtype = dtype_sql_date; - field->fld_length = sizeof(ULONG); + yyabandon (-104, isc_transitional_date); + else + { + field->fld_dtype = dtype_sql_date; + field->fld_length = sizeof (ULONG); + } } - } - break; - case 454:{ +break; +case 454: +{ if (client_dialect < SQL_DIALECT_V6_TRANSITION) - ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, isc_sql_dialect_datatype_unsupport, - gds_arg_number, client_dialect, - gds_arg_string, "TIME", 0); + ERRD_post (gds_sqlerr, gds_arg_number, (SLONG) -104, + gds_arg_gds, isc_sql_dialect_datatype_unsupport, + gds_arg_number, client_dialect, + gds_arg_string, "TIME", + 0); if (db_dialect < SQL_DIALECT_V6_TRANSITION) - ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, isc_sql_db_dialect_dtype_unsupport, - gds_arg_number, db_dialect, - gds_arg_string, "TIME", 0); - field->fld_dtype = dtype_sql_time; - field->fld_length = sizeof(SLONG); - } - break; - case 455:{ - field->fld_dtype = dtype_timestamp; - field->fld_length = sizeof(GDS_TIMESTAMP); - } - break; - case 458:{ - field->fld_dtype = dtype_blob; - } - break; - case 459:{ - field->fld_dtype = dtype_blob; - field->fld_seg_length = - static_cast < USHORT > ((SLONG) yypvt[-1]); + ERRD_post (gds_sqlerr, gds_arg_number, (SLONG) -104, + gds_arg_gds, isc_sql_db_dialect_dtype_unsupport, + gds_arg_number, db_dialect, + gds_arg_string, "TIME", + 0); + field->fld_dtype = dtype_sql_time; + field->fld_length = sizeof (SLONG); + } +break; +case 455: +{ + field->fld_dtype = dtype_timestamp; + field->fld_length = sizeof (GDS_TIMESTAMP); + } +break; +case 458: +{ + field->fld_dtype = dtype_blob; + } +break; +case 459: +{ + field->fld_dtype = dtype_blob; + field->fld_seg_length = (USHORT) yyvsp[-1]; field->fld_sub_type = 0; - } - break; - case 460:{ - field->fld_dtype = dtype_blob; - field->fld_seg_length = - static_cast < USHORT > ((SLONG) yypvt[-3]); - field->fld_sub_type = static_cast < SSHORT > ((SLONG) yypvt[-1]); - } - break; - case 461:{ - field->fld_dtype = dtype_blob; + } +break; +case 460: +{ + field->fld_dtype = dtype_blob; + field->fld_seg_length = (USHORT) yyvsp[-3]; + field->fld_sub_type = (USHORT) yyvsp[-1]; + } +break; +case 461: +{ + field->fld_dtype = dtype_blob; field->fld_seg_length = 80; - field->fld_sub_type = static_cast < SSHORT > ((SLONG) yypvt[-1]); - } - break; - case 462:{ - field->fld_seg_length = - static_cast < USHORT > ((SLONG) yypvt[-0]); - } - break; - case 463:{ - field->fld_seg_length = (SLONG) 80; - } - break; - case 464:{ - field->fld_sub_type = static_cast < SSHORT > ((SLONG) yypvt[-0]); - } - break; - case 465:{ - field->fld_sub_type_name = yypvt[-0]; - } - break; - case 466:{ - field->fld_sub_type = (SLONG) 0; - } - break; - case 467:{ - field->fld_character_set = yypvt[-0]; - } - break; - case 469:{ - field->fld_dtype = dtype_text; - field->fld_character_length = - static_cast < USHORT > ((SLONG) yypvt[-1]); + field->fld_sub_type = (USHORT) yyvsp[-1]; + } +break; +case 462: +{ + field->fld_seg_length = (USHORT) yyvsp[0]; + } +break; +case 463: +{ + field->fld_seg_length = (USHORT) 80; + } +break; +case 464: +{ + field->fld_sub_type = (USHORT) yyvsp[0]; + } +break; +case 465: +{ + field->fld_sub_type_name = yyvsp[0]; + } +break; +case 466: +{ + field->fld_sub_type = (USHORT) 0; + } +break; +case 467: +{ + field->fld_character_set = yyvsp[0]; + } +break; +case 469: +{ + field->fld_dtype = dtype_text; + field->fld_character_length = (USHORT) yyvsp[-1]; field->fld_flags |= FLD_national; - } - break; - case 470:{ - field->fld_dtype = dtype_text; - field->fld_character_length = 1; + } +break; +case 470: +{ + field->fld_dtype = dtype_text; + field->fld_character_length = 1; field->fld_flags |= FLD_national; - } - break; - case 471:{ - field->fld_dtype = dtype_varying; - field->fld_character_length = - static_cast < USHORT > ((SLONG) yypvt[-1]); + } +break; +case 471: +{ + field->fld_dtype = dtype_varying; + field->fld_character_length = (USHORT) yyvsp[-1]; field->fld_flags |= FLD_national; - } - break; - case 472:{ - field->fld_dtype = dtype_text; - field->fld_character_length = - static_cast < USHORT > ((SLONG) yypvt[-1]); - } - break; - case 473:{ - field->fld_dtype = dtype_text; - field->fld_character_length = 1; - } - break; - case 474:{ - field->fld_dtype = dtype_varying; - field->fld_character_length = - static_cast < USHORT > ((SLONG) yypvt[-1]); - } - break; - case 483:{ - field->fld_sub_type = dsc_num_type_numeric; - } - break; - case 484:{ - field->fld_sub_type = dsc_num_type_decimal; - if (field->fld_dtype == dtype_short) { + } +break; +case 472: +{ + field->fld_dtype = dtype_text; + field->fld_character_length = (USHORT) yyvsp[-1]; + } +break; +case 473: +{ + field->fld_dtype = dtype_text; + field->fld_character_length = 1; + } +break; +case 474: +{ + field->fld_dtype = dtype_varying; + field->fld_character_length = (USHORT) yyvsp[-1]; + } +break; +case 483: +{ + field->fld_sub_type = dsc_num_type_numeric; + } +break; +case 484: +{ + field->fld_sub_type = dsc_num_type_decimal; + if (field->fld_dtype == dtype_short) + { field->fld_dtype = dtype_long; - field->fld_length = sizeof(SLONG); - }; - } - break; - case 485:{ - yyval = make_node(nod_position, 1, yypvt[-0]); - } - break; - case 486:{ - field->fld_dtype = dtype_long; - field->fld_length = sizeof(SLONG); + field->fld_length = sizeof (SLONG); + }; + } +break; +case 485: +{ yyval = make_node (nod_position, 1, yyvsp[0]); } +break; +case 486: +{ + field->fld_dtype = dtype_long; + field->fld_length = sizeof (SLONG); field->fld_precision = 9; - } - break; - case 487:{ - if (((SLONG) yypvt[-1] < 1) || ((SLONG) yypvt[-1] > 18)) - yyabandon(-842, isc_precision_err); - /* Precision most be between 1 and 18. */ - if ((SLONG) yypvt[-1] > 9) { - if (((client_dialect <= SQL_DIALECT_V5) && - (db_dialect > SQL_DIALECT_V5)) || - ((client_dialect > SQL_DIALECT_V5) && - (db_dialect <= SQL_DIALECT_V5))) - ERRD_post(gds_sqlerr, - gds_arg_number, (SLONG) - 817, - gds_arg_gds, - isc_ddl_not_allowed_by_db_sql_dial, - gds_arg_number, (SLONG) db_dialect, 0); - if (client_dialect <= SQL_DIALECT_V5) { - field->fld_dtype = dtype_double; - field->fld_length = sizeof(double); - } - else { - if (client_dialect == SQL_DIALECT_V6_TRANSITION) { - ERRD_post_warning(isc_dsql_warn_precision_ambiguous, - gds_arg_end); - ERRD_post_warning(isc_dsql_warn_precision_ambiguous1, - gds_arg_end); - ERRD_post_warning(isc_dsql_warn_precision_ambiguous2, - gds_arg_end); - - } - field->fld_dtype = dtype_int64; - field->fld_length = sizeof(SINT64); - } - } - else if ((SLONG) yypvt[-1] < 5) { - field->fld_dtype = dtype_short; - field->fld_length = sizeof(SSHORT); - } - else { - field->fld_dtype = dtype_long; - field->fld_length = sizeof(SLONG); - } - field->fld_precision = static_cast < USHORT > ((SLONG) yypvt[-1]); - } - break; - case 488:{ - if (((SLONG) yypvt[-3] < 1) || ((SLONG) yypvt[-3] > 18)) - yyabandon(-842, isc_precision_err); - /* Precision should be between 1 and 18 */ - if (((SLONG) yypvt[-1] > (SLONG) yypvt[-3]) - || ((SLONG) yypvt[-1] < 0)) - yyabandon(-842, isc_scale_nogt); - /* Scale must be between 0 and precision */ - if ((SLONG) yypvt[-3] > 9) { - if (((client_dialect <= SQL_DIALECT_V5) && - (db_dialect > SQL_DIALECT_V5)) || - ((client_dialect > SQL_DIALECT_V5) && - (db_dialect <= SQL_DIALECT_V5))) - ERRD_post(gds_sqlerr, - gds_arg_number, (SLONG) - 817, - gds_arg_gds, - isc_ddl_not_allowed_by_db_sql_dial, - gds_arg_number, (SLONG) db_dialect, 0); - if (client_dialect <= SQL_DIALECT_V5) { - field->fld_dtype = dtype_double; - field->fld_length = sizeof(double); - } - else { - if (client_dialect == SQL_DIALECT_V6_TRANSITION) { - ERRD_post_warning(isc_dsql_warn_precision_ambiguous, - gds_arg_end); - ERRD_post_warning(isc_dsql_warn_precision_ambiguous1, - gds_arg_end); - ERRD_post_warning(isc_dsql_warn_precision_ambiguous2, - gds_arg_end); - } - /* client_dialect >= SQL_DIALECT_V6 */ - field->fld_dtype = dtype_int64; - field->fld_length = sizeof(SINT64); - } - } - else { - if ((SLONG) yypvt[-3] < 5) { - field->fld_dtype = dtype_short; - field->fld_length = sizeof(SSHORT); - } - else { - field->fld_dtype = dtype_long; - field->fld_length = sizeof(SLONG); - } - } - field->fld_precision = static_cast < USHORT > ((SLONG) yypvt[-3]); - field->fld_scale = static_cast < SSHORT > (-(SLONG) yypvt[-1]); - } - break; - case 491:{ - if ((SLONG) yypvt[-0] > 7) { + } +break; +case 487: +{ + if ( ((SLONG) yyvsp[-1] < 1) || ((SLONG) yyvsp[-1] > 18) ) + yyabandon (-842, isc_precision_err); + /* Precision most be between 1 and 18. */ + if ((SLONG) yyvsp[-1] > 9) + { + if ( ( (client_dialect <= SQL_DIALECT_V5) && + (db_dialect > SQL_DIALECT_V5) ) || + ( (client_dialect > SQL_DIALECT_V5) && + (db_dialect <= SQL_DIALECT_V5) ) ) + ERRD_post (gds_sqlerr, + gds_arg_number, (SLONG) -817, + gds_arg_gds, + isc_ddl_not_allowed_by_db_sql_dial, + gds_arg_number, (SLONG) db_dialect, + 0); + if (client_dialect <= SQL_DIALECT_V5) + { field->fld_dtype = dtype_double; - field->fld_length = sizeof(double); + field->fld_length = sizeof (double); + } + else + { + if (client_dialect == SQL_DIALECT_V6_TRANSITION) + { + ERRD_post_warning ( + isc_dsql_warn_precision_ambiguous, + gds_arg_end ); + ERRD_post_warning ( + isc_dsql_warn_precision_ambiguous1, + gds_arg_end ); + ERRD_post_warning ( + isc_dsql_warn_precision_ambiguous2, + gds_arg_end ); + + } + field->fld_dtype = dtype_int64; + field->fld_length = sizeof (SINT64); + } + } + else + if ((SLONG) yyvsp[-1] < 5) + { + field->fld_dtype = dtype_short; + field->fld_length = sizeof (SSHORT); + } + else + { + field->fld_dtype = dtype_long; + field->fld_length = sizeof (SLONG); + } + field->fld_precision = (USHORT) yyvsp[-1]; } - else { - field->fld_dtype = dtype_real; - field->fld_length = sizeof(float); +break; +case 488: +{ + if ( ((SLONG) yyvsp[-3] < 1) || ((SLONG) yyvsp[-3] > 18) ) + yyabandon (-842, isc_precision_err); + /* Precision should be between 1 and 18 */ + if (((SLONG) yyvsp[-1] > (SLONG) yyvsp[-3]) || ((SLONG) yyvsp[-1] < 0)) + yyabandon (-842, isc_scale_nogt); + /* Scale must be between 0 and precision */ + if ((SLONG) yyvsp[-3] > 9) + { + if ( ( (client_dialect <= SQL_DIALECT_V5) && + (db_dialect > SQL_DIALECT_V5) ) || + ( (client_dialect > SQL_DIALECT_V5) && + (db_dialect <= SQL_DIALECT_V5) ) ) + ERRD_post (gds_sqlerr, + gds_arg_number, (SLONG) -817, + gds_arg_gds, + isc_ddl_not_allowed_by_db_sql_dial, + gds_arg_number, (SLONG) db_dialect, + 0); + if (client_dialect <= SQL_DIALECT_V5) + { + field->fld_dtype = dtype_double; + field->fld_length = sizeof (double); + } + else + { + if (client_dialect == SQL_DIALECT_V6_TRANSITION) + { + ERRD_post_warning ( + isc_dsql_warn_precision_ambiguous, + gds_arg_end ); + ERRD_post_warning ( + isc_dsql_warn_precision_ambiguous1, + gds_arg_end ); + ERRD_post_warning ( + isc_dsql_warn_precision_ambiguous2, + gds_arg_end ); + } + /* client_dialect >= SQL_DIALECT_V6 */ + field->fld_dtype = dtype_int64; + field->fld_length = sizeof (SINT64); + } + } + else + { + if ((SLONG) yyvsp[-3] < 5) + { + field->fld_dtype = dtype_short; + field->fld_length = sizeof (SSHORT); + } + else + { + field->fld_dtype = dtype_long; + field->fld_length = sizeof (SLONG); + } + } + field->fld_precision = (USHORT) yyvsp[-3]; + field->fld_scale = - (SSHORT) yyvsp[-1]; } - } break; - case 492:{ - field->fld_dtype = dtype_double; - field->fld_length = sizeof(double); - } break; - case 493:{ - field->fld_dtype = dtype_real; - field->fld_length = sizeof(float); - } break; - case 494:{ - field->fld_dtype = dtype_double; - field->fld_length = sizeof(double); - } break; - case 495:{ - yyval = yypvt[-1]; - } - break; - case 496:{ - yyval = 0; - } - break; - case 500:{ - yyval = make_node(nod_set_generator2, e_gen_id_count, yypvt[-2], - MAKE_constant((STR) yypvt[-0], CONSTANT_SLONG)); - } - break; - case 501:{ - yyval = make_node(nod_set_generator2, e_gen_id_count, yypvt[-2], - MAKE_constant((STR) yypvt[-0], - CONSTANT_SINT64)); - } - break; - case 502:{ - yyval = make_node(nod_set_generator2, e_gen_id_count, yypvt[-3], - make_node(nod_negate, 1, - MAKE_constant((STR) yypvt[-0], - CONSTANT_SINT64))); - } - break; - case 503:{ - yyval = make_node(nod_commit, 1, yypvt[-0]); - } - break; - case 504:{ - yyval = make_node(nod_rollback, 0, NULL); - } - break; - case 507:{ - yyval = make_node(nod_commit_retain, 0, NULL); - } - break; - case 508:{ - yyval = (NOD) NULL; - } - break; - case 510:{ - yyval = (NOD) NULL; - } - break; - case 511:{ - yyval = make_node(nod_trans, 1, make_list(yypvt[-0])); - } - break; - case 513:{ - yyval = (NOD) NULL; - } - break; - case 515:{ - yyval = make_node(nod_list, (int) 2, yypvt[-1], yypvt[-0]); - } break; - case 520:{ - yyval = make_flag_node(nod_access, NOD_READ_ONLY, (int) 0, NULL); - } break; - case 521:{ - yyval = make_flag_node(nod_access, NOD_READ_WRITE, (int) 0, NULL); - } break; - case 522:{ - yyval = make_flag_node(nod_wait, NOD_WAIT, (int) 0, NULL); - } break; - case 523:{ - yyval = make_flag_node(nod_wait, NOD_NO_WAIT, (int) 0, NULL); - } break; - case 524:{ - yyval = yypvt[-0]; - } - break; - case 526:{ - yyval = yypvt[-0]; - } - break; - case 527:{ - yyval = - make_flag_node(nod_isolation, NOD_READ_COMMITTED, 1, - yypvt[-0]);} break; - case 528:{ - yyval = - make_flag_node(nod_isolation, NOD_READ_COMMITTED, 1, - yypvt[-0]);} break; - case 529:{ - yyval = make_flag_node(nod_isolation, NOD_CONCURRENCY, 0, NULL); - } - break; - case 530:{ - yyval = make_flag_node(nod_isolation, NOD_CONSISTENCY, 0, NULL); - } - break; - case 531:{ - yyval = make_flag_node(nod_isolation, NOD_CONSISTENCY, 0, NULL); - } - break; - case 532:{ - yyval = make_flag_node(nod_version, NOD_VERSION, 0, NULL); - } - break; - case 533:{ - yyval = make_flag_node(nod_version, NOD_NO_VERSION, 0, NULL); - } - break; - case 534:{ - yyval = 0; - } - break; - case 535:{ - yyval = make_node(nod_reserve, 1, make_list(yypvt[-0])); - } - break; - case 536:{ - yyval = (NOD) NOD_SHARED; - } - break; - case 537:{ - yyval = (NOD) NOD_PROTECTED; - } - break; - case 538:{ - yyval = (NOD) 0; - } - break; - case 539:{ - yyval = (NOD) NOD_READ; - } - break; - case 540:{ - yyval = (NOD) NOD_WRITE; - } - break; - case 542:{ - yyval = make_node(nod_list, (int) 2, yypvt[-2], yypvt[-0]); - } break; - case 543:{ - yyval = - make_node(nod_table_lock, (int) 2, make_list(yypvt[-1]), - yypvt[-0]);} break; - case 544:{ - yyval = - make_flag_node(nod_lock_mode, - ((SSHORT) yypvt[-1] | (SSHORT) yypvt[-0]), 0, - NULL);} - break; - case 545:{ - yyval = 0; - } - break; - case 547:{ - yyval = make_node(nod_list, (int) 2, yypvt[-2], yypvt[-0]); - } break; - case 548:{ - yyval = make_node(nod_set_statistics, - (int) e_stat_count, yypvt[-0]);} break; - case 549:{ - yyval = make_node(nod_select, 3, yypvt[-2], yypvt[-1], yypvt[-0]); - } - break; - case 550:{ - yyval = make_node(nod_list, 1, yypvt[-0]); - } - break; - case 551:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 552:{ - yyval = - make_flag_node(nod_list, NOD_UNION_ALL, 2, yypvt[-3], - yypvt[-0]);} - break; - case 553:{ - yyval = make_list(yypvt[-0]); - } - break; - case 554:{ - yyval = 0; - } - break; - case 556:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 557:{ - yyval = - make_node(nod_order, e_order_count, yypvt[-2], yypvt[-0], - yypvt[-1]);} - break; - case 558:{ - yyval = - make_node(nod_order, e_order_count, yypvt[-2], yypvt[-0], - yypvt[-1]);} - break; - case 559:{ - yyval = 0; - } - break; - case 560:{ - yyval = make_node(nod_flag, 0, NULL); - } - break; - case 561:{ - yyval = 0; - } - break; - case 562:{ - yyval = yypvt[-0]; - } - break; - case 563:{ - yyval = 0; - } - break; - case 564:{ - yyval = yypvt[-0]; - } - break; - case 565:{ - yyval = make_node(nod_flag, 0, NULL); - } - break; - case 566:{ - yyval = make_node(nod_select_expr, e_sel_count, - yypvt[-6], yypvt[-5], yypvt[-4], yypvt[-3], - yypvt[-2], yypvt[-1], yypvt[-0], NULL); - } - break; - case 567:{ - yyval = make_node(nod_flag, 0, NULL); - } - break; - case 568:{ - yyval = 0; - } - break; - case 569:{ - yyval = make_list(yypvt[-0]); - } - break; - case 570:{ - yyval = 0; - } - break; - case 572:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 574:{ - yyval = make_node(nod_alias, 2, yypvt[-1], yypvt[-0]); - } - break; - case 575:{ - yyval = make_node(nod_alias, 2, yypvt[-2], yypvt[-0]); - } - break; - case 576:{ - yyval = make_list(yypvt[-0]); - } - break; - case 578:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 581:{ - yyval = - make_node(nod_join, (int) e_join_count, yypvt[-5], yypvt[-4], - yypvt[-2], yypvt[-0]); - } break; - case 582:{ - yyval = yypvt[-1]; - } - break; - case 583:{ - yyval = make_node(nod_rel_proc_name, - (int) e_rpn_count, yypvt[-2], yypvt[-0], - yypvt[-1]);} break; - case 584:{ - yyval = - make_node(nod_rel_proc_name, (int) e_rpn_count, yypvt[-1], - NULL, yypvt[-0]); - } break; - case 585:{ - yyval = make_list(yypvt[-1]); - } - break; - case 586:{ - yyval = NULL; - } - break; - case 588:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 592:{ - yyval = make_node(nod_relation_name, - (int) e_rln_count, yypvt[-1], yypvt[-0]); - } break; - case 593:{ - yyval = make_node(nod_relation_name, - (int) e_rln_count, yypvt[-0], NULL);} break; - case 594:{ - yyval = make_node(nod_join_inner, (int) 0, NULL); - } break; - case 595:{ - yyval = make_node(nod_join_left, (int) 0, NULL); - } break; - case 596:{ - yyval = make_node(nod_join_left, (int) 0, NULL); - } break; - case 597:{ - yyval = make_node(nod_join_right, (int) 0, NULL); - } break; - case 598:{ - yyval = make_node(nod_join_right, (int) 0, NULL); - } break; - case 599:{ - yyval = make_node(nod_join_full, (int) 0, NULL); - } break; - case 600:{ - yyval = make_node(nod_join_full, (int) 0, NULL); - } break; - case 601:{ - yyval = make_node(nod_join_inner, (int) 0, NULL); - } break; - case 602:{ - yyval = make_list(yypvt[-0]); - } - break; - case 603:{ - yyval = 0; - } - break; - case 605:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 607:{ - yyval = - make_node(nod_collate, e_coll_count, (NOD) yypvt[-0], - yypvt[-2]);} - break; - case 608:{ - yyval = yypvt[-0]; - } - break; - case 609:{ - yyval = 0; - } - break; - case 610:{ - yyval = yypvt[-0]; - } - break; - case 611:{ - yyval = 0; - } - break; - case 612:{ - yyval = yypvt[-0]; - } - break; - case 613:{ - yyval = 0; - } - break; - case 614:{ - yyval = - make_node(nod_plan_expr, 2, yypvt[-3], make_list(yypvt[-1]));} - break; - case 615:{ - yyval = 0; - } - break; - case 616:{ - yyval = make_node(nod_merge, (int) 0, NULL); - } break; - case 617:{ - yyval = make_node(nod_merge, (int) 0, NULL); - } break; - case 618:{ - yyval = 0; - } - break; - case 619:{ - yyval = 0; - } - break; - case 621:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 622:{ - yyval = - make_node(nod_plan_item, 2, make_list(yypvt[-1]), yypvt[-0]);} - break; - case 625:{ - yyval = make_node(nod_list, 2, yypvt[-1], yypvt[-0]); - } - break; - case 626:{ - yyval = make_node(nod_natural, (int) 0, NULL); - } break; - case 627:{ - yyval = make_node(nod_index, 1, make_list(yypvt[-1])); - } - break; - case 628:{ - yyval = make_node(nod_index_order, 1, yypvt[-0]); - } - break; - case 630:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 631:{ - yyval = make_node(nod_insert, e_ins_count, - yypvt[-5], make_list(yypvt[-4]), - make_list(yypvt[-1]), NULL); - } - break; - case 632:{ - yyval = - make_node(nod_insert, e_ins_count, yypvt[-2], yypvt[-1], NULL, - yypvt[-0]); - } - break; - case 634:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 637:{ - yyval = - make_node(nod_delete, e_del_count, yypvt[-1], yypvt[-0], - NULL);} break; - case 638:{ - yyval = - make_node(nod_delete, e_del_count, yypvt[-1], NULL, - yypvt[-0]);} break; - case 639:{ - yyval = make_node(nod_cursor, e_cur_count, yypvt[-0], NULL, NULL); - } - break; - case 642:{ - yyval = make_node(nod_update, e_upd_count, - yypvt[-3], make_list(yypvt[-1]), yypvt[-0], - NULL);} - break; - case 643:{ - yyval = make_node(nod_update, e_upd_count, - yypvt[-3], make_list(yypvt[-1]), NULL, - yypvt[-0]);} - break; - case 645:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 646:{ - yyval = make_node(nod_assign, 2, yypvt[-0], yypvt[-2]); - } - break; - case 649:{ - yyval = - make_node(nod_get_segment, e_blb_count, yypvt[-4], yypvt[-2], - yypvt[-1], yypvt[-0]); - } - break; - case 650:{ - yyval = - make_node(nod_put_segment, e_blb_count, yypvt[-4], yypvt[-2], - yypvt[-1], yypvt[-0]); - } - break; - case 651:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 652:{ - yyval = make_node(nod_list, 2, NULL, yypvt[-0]); - } - break; - case 656:{ - yyval = MAKE_constant((STR) yypvt[-0], CONSTANT_SLONG); - } - break; - case 657:{ - yyval = yypvt[-0]; - } - break; - case 659:{ - yyval = MAKE_constant((STR) yypvt[-0], CONSTANT_SLONG); - } - break; - case 662:{ - yyval = NULL; - } - break; - case 663:{ - yyval = make_list(yypvt[-1]); - } - break; - case 665:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 667:{ - yyval = make_node(nod_field_name, (int) e_fln_count, - yypvt[-2], yypvt[-0]); - } break; - case 668:{ - yyval = make_node(nod_field_name, (int) e_fln_count, - yypvt[-2], NULL);} break; - case 669:{ - yyval = make_node(nod_field_name, (int) e_fln_count, - NULL, yypvt[-0]);} break; - case 671:{ - yyval = make_node(nod_or, 2, yypvt[-2], yypvt[-0]); - } - break; - case 672:{ - yyval = make_node(nod_and, 2, yypvt[-2], yypvt[-0]); - } - break; - case 673:{ - yyval = make_node(nod_not, 1, yypvt[-0]); - } - break; - case 684:{ - yyval = yypvt[-1]; - } - break; - case 685:{ - yyval = make_node(nod_eql, 2, yypvt[-2], yypvt[-0]); - } - break; - case 686:{ - yyval = make_node(nod_lss, 2, yypvt[-2], yypvt[-0]); - } - break; - case 687:{ - yyval = make_node(nod_gtr, 2, yypvt[-2], yypvt[-0]); - } - break; - case 688:{ - yyval = make_node(nod_geq, 2, yypvt[-2], yypvt[-0]); - } - break; - case 689:{ - yyval = make_node(nod_leq, 2, yypvt[-2], yypvt[-0]); - } - break; - case 690:{ - yyval = make_node(nod_leq, 2, yypvt[-2], yypvt[-0]); - } - break; - case 691:{ - yyval = make_node(nod_geq, 2, yypvt[-2], yypvt[-0]); - } - break; - case 692:{ - yyval = make_node(nod_neq, 2, yypvt[-2], yypvt[-0]); - } - break; - case 693:{ - yyval = make_node(nod_eql_all, 2, yypvt[-5], yypvt[-1]); - } - break; - case 694:{ - yyval = make_node(nod_lss_all, 2, yypvt[-5], yypvt[-1]); - } - break; - case 695:{ - yyval = make_node(nod_gtr_all, 2, yypvt[-5], yypvt[-1]); - } - break; - case 696:{ - yyval = make_node(nod_geq_all, 2, yypvt[-5], yypvt[-1]); - } - break; - case 697:{ - yyval = make_node(nod_leq_all, 2, yypvt[-5], yypvt[-1]); - } - break; - case 698:{ - yyval = make_node(nod_leq_all, 2, yypvt[-5], yypvt[-1]); - } - break; - case 699:{ - yyval = make_node(nod_geq_all, 2, yypvt[-5], yypvt[-1]); - } - break; - case 700:{ - yyval = make_node(nod_neq_all, 2, yypvt[-5], yypvt[-1]); - } - break; - case 701:{ - yyval = make_node(nod_eql_any, 2, yypvt[-5], yypvt[-1]); - } - break; - case 702:{ - yyval = make_node(nod_lss_any, 2, yypvt[-5], yypvt[-1]); - } - break; - case 703:{ - yyval = make_node(nod_gtr_any, 2, yypvt[-5], yypvt[-1]); - } - break; - case 704:{ - yyval = make_node(nod_geq_any, 2, yypvt[-5], yypvt[-1]); - } - break; - case 705:{ - yyval = make_node(nod_leq_any, 2, yypvt[-5], yypvt[-1]); - } - break; - case 706:{ - yyval = make_node(nod_leq_any, 2, yypvt[-5], yypvt[-1]); - } - break; - case 707:{ - yyval = make_node(nod_geq_any, 2, yypvt[-5], yypvt[-1]); - } - break; - case 708:{ - yyval = make_node(nod_neq_any, 2, yypvt[-5], yypvt[-1]); - } - break; - case 711:{ - yyval = - make_node(nod_between, 3, yypvt[-4], yypvt[-2], yypvt[-0]);} - break; - case 712:{ - yyval = make_node(nod_not, 1, make_node(nod_between, - 3, yypvt[-5], yypvt[-2], - yypvt[-0])); - } - break; - case 713:{ - yyval = make_node(nod_like, 2, yypvt[-2], yypvt[-0]); - } - break; - case 714:{ - yyval = - make_node(nod_not, 1, - make_node(nod_like, 2, yypvt[-3], yypvt[-0]));} - break; - case 715:{ - yyval = make_node(nod_like, 3, yypvt[-4], yypvt[-2], yypvt[-0]); - } - break; - case 716:{ - yyval = make_node(nod_not, 1, make_node(nod_like, - 3, yypvt[-5], yypvt[-2], - yypvt[-0])); - } - break; - case 717:{ - yyval = make_node(nod_eql_any, 2, yypvt[-2], yypvt[-0]); - } - break; - case 718:{ - yyval = - make_node(nod_not, 1, - make_node(nod_eql_any, 2, yypvt[-3], yypvt[-0]));} - break; - case 719:{ - yyval = make_node(nod_containing, 2, yypvt[-2], yypvt[-0]); - } - break; - case 720:{ - yyval = - make_node(nod_not, 1, - make_node(nod_containing, 2, yypvt[-3], yypvt[-0])); - } - break; - case 721:{ - yyval = make_node(nod_starting, 2, yypvt[-2], yypvt[-0]); - } - break; - case 722:{ - yyval = - make_node(nod_not, 1, - make_node(nod_starting, 2, yypvt[-3], yypvt[-0])); - } - break; - case 723:{ - yyval = make_node(nod_starting, 2, yypvt[-3], yypvt[-0]); - } - break; - case 724:{ - yyval = - make_node(nod_not, 1, - make_node(nod_starting, 2, yypvt[-4], yypvt[-0])); - } - break; - case 725:{ - yyval = make_node(nod_exists, 1, yypvt[-1]); - } - break; - case 726:{ - yyval = make_node(nod_singular, 1, yypvt[-1]); - } - break; - case 727:{ - yyval = make_node(nod_missing, 1, yypvt[-2]); - } - break; - case 728:{ - yyval = - make_node(nod_not, 1, make_node(nod_missing, 1, yypvt[-3]));} - break; - case 729:{ - yyval = make_list(yypvt[-1]); - } - break; - case 730:{ - yyval = yypvt[-1]; - } - break; - case 731:{ - yyval = make_node(nod_select_expr, e_sel_count, - yypvt[-6], make_list(yypvt[-5]), yypvt[-4], - yypvt[-3], yypvt[-2], yypvt[-1], yypvt[-0], - NULL);} - break; - case 732:{ - yyval = make_node(nod_select_expr, e_sel_count, - yypvt[-6], make_list(yypvt[-5]), yypvt[-4], - yypvt[-3], yypvt[-2], yypvt[-1], yypvt[-0], - MAKE_constant((STR) 1, CONSTANT_SLONG)); - } - break; - case 740:{ - yyval = make_node(nod_negate, 1, yypvt[-0]); - } - break; - case 741:{ - yyval = yypvt[-0]; - } - break; - case 742:{ - if (client_dialect >= SQL_DIALECT_V6_TRANSITION) - yyval = make_node(nod_add2, 2, yypvt[-2], yypvt[-0]); +break; +case 491: +{ + if ((SLONG) yyvsp[0] > 7) + { + field->fld_dtype = dtype_double; + field->fld_length = sizeof (double); + } else - yyval = make_node(nod_add, 2, yypvt[-2], yypvt[-0]); - } - break; - case 743:{ - yyval = make_node(nod_concatenate, 2, yypvt[-2], yypvt[-0]); - } - break; - case 744:{ - yyval = - make_node(nod_collate, e_coll_count, (NOD) yypvt[-0], - yypvt[-2]);} - break; - case 745:{ - if (client_dialect >= SQL_DIALECT_V6_TRANSITION) - yyval = make_node(nod_subtract2, 2, yypvt[-2], yypvt[-0]); - else - yyval = make_node(nod_subtract, 2, yypvt[-2], yypvt[-0]); - } - break; - case 746:{ - if (client_dialect >= SQL_DIALECT_V6_TRANSITION) - yyval = make_node(nod_multiply2, 2, yypvt[-2], yypvt[-0]); - else - yyval = make_node(nod_multiply, 2, yypvt[-2], yypvt[-0]); - } - break; - case 747:{ - if (client_dialect >= SQL_DIALECT_V6_TRANSITION) - yyval = make_node(nod_divide2, 2, yypvt[-2], yypvt[-0]); - else - yyval = make_node(nod_divide, 2, yypvt[-2], yypvt[-0]); - } - break; - case 748:{ - yyval = yypvt[-1]; - } - break; - case 749:{ - yyval = yypvt[-1]; - } - break; - case 750:{ - yyval = make_node(nod_user_name, 0, NULL); - } - break; - case 751:{ - yyval = make_node(nod_dbkey, 1, NULL); - } - break; - case 752:{ - yyval = make_node(nod_dbkey, 1, yypvt[-2]); - } - break; - case 753:{ - yyval = make_node(nod_dom_value, 0, NULL); - } - break; - case 754:{ - yyval = yypvt[-0]; - } - break; - case 755:{ + { + field->fld_dtype = dtype_real; + field->fld_length = sizeof (float); + } + } +break; +case 492: +{ + field->fld_dtype = dtype_double; + field->fld_length = sizeof (double); + } +break; +case 493: +{ + field->fld_dtype = dtype_real; + field->fld_length = sizeof (float); + } +break; +case 494: +{ + field->fld_dtype = dtype_double; + field->fld_length = sizeof (double); + } +break; +case 495: +{ yyval = yyvsp[-1]; } +break; +case 496: +{ yyval = 0; } +break; +case 500: +{ + yyval = make_node (nod_set_generator2,e_gen_id_count,yyvsp[-2], + MAKE_constant ((STR) yyvsp[0], CONSTANT_SLONG)); + } +break; +case 501: +{ + yyval = make_node (nod_set_generator2,e_gen_id_count,yyvsp[-2], + MAKE_constant((STR)yyvsp[0], CONSTANT_SINT64)); + } +break; +case 502: +{ + yyval = make_node (nod_set_generator2, e_gen_id_count, yyvsp[-3], + make_node(nod_negate, 1, + MAKE_constant((STR)yyvsp[0], CONSTANT_SINT64))); + } +break; +case 503: +{ yyval = make_node (nod_commit, 1, yyvsp[0]); } +break; +case 504: +{ yyval = make_node (nod_rollback, 0, NULL); } +break; +case 507: +{ yyval = make_node (nod_commit_retain, 0, NULL); } +break; +case 508: +{ yyval = (NOD) NULL; } +break; +case 510: +{ yyval = (NOD) NULL; } +break; +case 511: +{yyval = make_node (nod_trans, 1, make_list (yyvsp[0])); } +break; +case 513: +{ yyval = (NOD) NULL; } +break; +case 515: +{ yyval = make_node (nod_list, (int) 2, yyvsp[-1], yyvsp[0]); } +break; +case 520: +{ yyval = make_flag_node (nod_access, NOD_READ_ONLY, (int) 0, NULL); } +break; +case 521: +{ yyval = make_flag_node (nod_access, NOD_READ_WRITE, (int) 0, NULL); } +break; +case 522: +{ yyval = make_flag_node (nod_wait, NOD_WAIT, (int) 0, NULL); } +break; +case 523: +{ yyval = make_flag_node (nod_wait, NOD_NO_WAIT, (int) 0, NULL); } +break; +case 524: +{ yyval = yyvsp[0];} +break; +case 526: +{ yyval = yyvsp[0];} +break; +case 527: +{ yyval = make_flag_node (nod_isolation, NOD_READ_COMMITTED, 1, yyvsp[0]); } +break; +case 528: +{ yyval = make_flag_node (nod_isolation, NOD_READ_COMMITTED, 1, yyvsp[0]); } +break; +case 529: +{ yyval = make_flag_node (nod_isolation, NOD_CONCURRENCY, 0, NULL); } +break; +case 530: +{ yyval = make_flag_node (nod_isolation, NOD_CONSISTENCY, 0, NULL); } +break; +case 531: +{ yyval = make_flag_node (nod_isolation, NOD_CONSISTENCY, 0, NULL); } +break; +case 532: +{ yyval = make_flag_node (nod_version, NOD_VERSION, 0, NULL); } +break; +case 533: +{ yyval = make_flag_node (nod_version, NOD_NO_VERSION, 0, NULL); } +break; +case 534: +{ yyval = 0; } +break; +case 535: +{ yyval = make_node (nod_reserve, 1, make_list (yyvsp[0])); } +break; +case 536: +{ yyval = (NOD) NOD_SHARED; } +break; +case 537: +{ yyval = (NOD) NOD_PROTECTED ; } +break; +case 538: +{ yyval = (NOD) 0; } +break; +case 539: +{ yyval = (NOD) NOD_READ; } +break; +case 540: +{ yyval = (NOD) NOD_WRITE; } +break; +case 542: +{ yyval = make_node (nod_list, (int) 2, yyvsp[-2], yyvsp[0]); } +break; +case 543: +{ yyval = make_node (nod_table_lock, (int) 2, make_list (yyvsp[-1]), yyvsp[0]); } +break; +case 544: +{ yyval = make_flag_node (nod_lock_mode, (SSHORT) ((SSHORT) yyvsp[-1] | (SSHORT) yyvsp[0]), (SSHORT) 0, NULL); } +break; +case 545: +{ yyval = 0; } +break; +case 547: +{ yyval = make_node (nod_list, (int) 2, yyvsp[-2], yyvsp[0]); } +break; +case 548: +{yyval = make_node (nod_set_statistics, + (int)e_stat_count, yyvsp[0]); } +break; +case 549: +{ yyval = make_node (nod_select, 3, yyvsp[-2], yyvsp[-1], yyvsp[0]); } +break; +case 550: +{ yyval = make_node (nod_list, 1, yyvsp[0]); } +break; +case 551: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 552: +{ yyval = make_flag_node (nod_list, NOD_UNION_ALL, 2, yyvsp[-3], yyvsp[0]); } +break; +case 553: +{ yyval = make_list (yyvsp[0]); } +break; +case 554: +{ yyval = 0; } +break; +case 556: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 557: +{ yyval = make_node (nod_order, e_order_count, yyvsp[-2], yyvsp[0], yyvsp[-1]); } +break; +case 558: +{ yyval = make_node (nod_order, e_order_count, yyvsp[-2], yyvsp[0], yyvsp[-1]); } +break; +case 559: +{ yyval = 0; } +break; +case 560: +{ yyval = make_node (nod_flag, 0, NULL); } +break; +case 561: +{ yyval = 0; } +break; +case 562: +{ yyval = yyvsp[0]; } +break; +case 563: +{ yyval = 0; } +break; +case 564: +{ yyval = yyvsp[0]; } +break; +case 565: +{ yyval = make_node (nod_flag, 0, NULL); } +break; +case 566: +{ yyval = make_node (nod_select_expr, e_sel_count, + yyvsp[-7], yyvsp[-6], yyvsp[-5], yyvsp[-4], yyvsp[-3], yyvsp[-2], yyvsp[-1], yyvsp[0], NULL); } +break; +case 567: +{ yyval = make_node (nod_flag, 0, NULL); } +break; +case 568: +{ yyval = 0; } +break; +case 569: +{ yyval = make_list (yyvsp[0]); } +break; +case 570: +{ yyval = 0; } +break; +case 572: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 574: +{ yyval = make_node (nod_alias, 2, yyvsp[-1], yyvsp[0]); } +break; +case 575: +{ yyval = make_node (nod_alias, 2, yyvsp[-2], yyvsp[0]); } +break; +case 576: +{ yyval = make_list (yyvsp[0]); } +break; +case 578: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 581: +{ yyval = make_node (nod_join, (int) e_join_count, yyvsp[-5], yyvsp[-4], yyvsp[-2], yyvsp[0]); } +break; +case 582: +{ yyval = yyvsp[-1]; } +break; +case 583: +{ yyval = make_node (nod_rel_proc_name, + (int) e_rpn_count, yyvsp[-2], yyvsp[0], yyvsp[-1]); } +break; +case 584: +{ yyval = make_node (nod_rel_proc_name, + (int) e_rpn_count, yyvsp[-1], NULL, yyvsp[0]); } +break; +case 585: +{ yyval = make_list (yyvsp[-1]); } +break; +case 586: +{ yyval = NULL; } +break; +case 588: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 592: +{ yyval = make_node (nod_relation_name, + (int) e_rln_count, yyvsp[-1], yyvsp[0]); } +break; +case 593: +{ yyval = make_node (nod_relation_name, + (int) e_rln_count, yyvsp[0], NULL); } +break; +case 594: +{ yyval = make_node (nod_join_inner, (int) 0, NULL); } +break; +case 595: +{ yyval = make_node (nod_join_left, (int) 0, NULL); } +break; +case 596: +{ yyval = make_node (nod_join_left, (int) 0, NULL); } +break; +case 597: +{ yyval = make_node (nod_join_right, (int) 0, NULL); } +break; +case 598: +{ yyval = make_node (nod_join_right, (int) 0, NULL); } +break; +case 599: +{ yyval = make_node (nod_join_full, (int) 0, NULL); } +break; +case 600: +{ yyval = make_node (nod_join_full, (int) 0, NULL); } +break; +case 601: +{ yyval = make_node (nod_join_inner, (int) 0, NULL); } +break; +case 602: +{ yyval = make_list (yyvsp[0]); } +break; +case 603: +{ yyval = 0; } +break; +case 605: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 608: +{ yyval = make_node (nod_collate, e_coll_count, (NOD) yyvsp[0], yyvsp[-2]); } +break; +case 609: +{ yyval = yyvsp[0]; } +break; +case 610: +{ yyval = 0; } +break; +case 611: +{ yyval = yyvsp[0]; } +break; +case 612: +{ yyval = 0; } +break; +case 613: +{ yyval = yyvsp[0]; } +break; +case 614: +{ yyval = 0;} +break; +case 615: +{ yyval = make_node (nod_top, 1, yyvsp[-2]);} +break; +case 616: +{ yyval = make_node (nod_top, 2, yyvsp[-4], yyvsp[-3]);} +break; +case 617: +{ yyval = 0;} +break; +case 618: +{ yyval = yyvsp[0]; } +break; +case 619: +{ yyval = 0; } +break; +case 620: +{ yyval = make_node (nod_plan_expr, 2, yyvsp[-3], make_list (yyvsp[-1])); } +break; +case 621: +{ yyval = 0; } +break; +case 622: +{ yyval = make_node (nod_merge, (int) 0, NULL); } +break; +case 623: +{ yyval = make_node (nod_merge, (int) 0, NULL); } +break; +case 624: +{ yyval = 0; } +break; +case 625: +{ yyval = 0; } +break; +case 627: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 628: +{ yyval = make_node (nod_plan_item, 2, make_list (yyvsp[-1]), yyvsp[0]); } +break; +case 631: +{ yyval = make_node (nod_list, 2, yyvsp[-1], yyvsp[0]); } +break; +case 632: +{ yyval = make_node (nod_natural, (int) 0, NULL); } +break; +case 633: +{ yyval = make_node (nod_index, 1, make_list (yyvsp[-1])); } +break; +case 634: +{ yyval = make_node (nod_index_order, 1, yyvsp[0]); } +break; +case 636: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 637: +{ yyval = make_node (nod_insert, e_ins_count, + yyvsp[-5], make_list (yyvsp[-4]), make_list (yyvsp[-1]), NULL); } +break; +case 638: +{ yyval = make_node (nod_insert, e_ins_count, yyvsp[-2], yyvsp[-1], NULL, yyvsp[0]); } +break; +case 640: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 643: +{ yyval = make_node (nod_delete, e_del_count, yyvsp[-1], yyvsp[0], NULL); } +break; +case 644: +{ yyval = make_node (nod_delete, e_del_count, yyvsp[-1], NULL, yyvsp[0]); } +break; +case 645: +{ yyval = make_node (nod_cursor, e_cur_count, yyvsp[0], NULL, NULL); } +break; +case 648: +{ yyval = make_node (nod_update, e_upd_count, + yyvsp[-3], make_list (yyvsp[-1]), yyvsp[0], NULL); } +break; +case 649: +{ yyval = make_node (nod_update, e_upd_count, + yyvsp[-3], make_list (yyvsp[-1]), NULL, yyvsp[0]); } +break; +case 651: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 652: +{ yyval = make_node (nod_assign, 2, yyvsp[0], yyvsp[-2]); } +break; +case 655: +{ yyval = make_node (nod_get_segment, e_blb_count, yyvsp[-4], yyvsp[-2], yyvsp[-1], yyvsp[0]); } +break; +case 656: +{ yyval = make_node (nod_put_segment, e_blb_count, yyvsp[-4], yyvsp[-2], yyvsp[-1], yyvsp[0]); } +break; +case 657: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 658: +{ yyval = make_node (nod_list, 2, NULL, yyvsp[0]); } +break; +case 662: +{ yyval = MAKE_constant ((STR) yyvsp[0], CONSTANT_SLONG); } +break; +case 663: +{ yyval = yyvsp[0]; } +break; +case 665: +{ yyval = MAKE_constant ((STR) yyvsp[0], CONSTANT_SLONG); } +break; +case 668: +{ yyval = NULL; } +break; +case 669: +{ yyval = make_list (yyvsp[-1]); } +break; +case 671: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 673: +{ yyval = make_node (nod_field_name, (int) e_fln_count, + yyvsp[-2], yyvsp[0]); } +break; +case 674: +{ yyval = make_node (nod_field_name, (int) e_fln_count, + yyvsp[-2], NULL); } +break; +case 675: +{ yyval = make_node (nod_field_name, (int) e_fln_count, + NULL, yyvsp[0]); } +break; +case 677: +{ yyval = make_node (nod_or, 2, yyvsp[-2], yyvsp[0]); } +break; +case 678: +{ yyval = make_node (nod_and, 2, yyvsp[-2], yyvsp[0]); } +break; +case 679: +{ yyval = make_node (nod_not, 1, yyvsp[0]); } +break; +case 690: +{ yyval = yyvsp[-1]; } +break; +case 691: +{ yyval = make_node (nod_eql, 2, yyvsp[-2], yyvsp[0]); } +break; +case 692: +{ yyval = make_node (nod_lss, 2, yyvsp[-2], yyvsp[0]); } +break; +case 693: +{ yyval = make_node (nod_gtr, 2, yyvsp[-2], yyvsp[0]); } +break; +case 694: +{ yyval = make_node (nod_geq, 2, yyvsp[-2], yyvsp[0]); } +break; +case 695: +{ yyval = make_node (nod_leq, 2, yyvsp[-2], yyvsp[0]); } +break; +case 696: +{ yyval = make_node (nod_leq, 2, yyvsp[-2], yyvsp[0]); } +break; +case 697: +{ yyval = make_node (nod_geq, 2, yyvsp[-2], yyvsp[0]); } +break; +case 698: +{ yyval = make_node (nod_neq, 2, yyvsp[-2], yyvsp[0]); } +break; +case 699: +{ yyval = make_node (nod_eql_all, 2, yyvsp[-5], yyvsp[-1]); } +break; +case 700: +{ yyval = make_node (nod_lss_all, 2, yyvsp[-5], yyvsp[-1]); } +break; +case 701: +{ yyval = make_node (nod_gtr_all, 2, yyvsp[-5], yyvsp[-1]); } +break; +case 702: +{ yyval = make_node (nod_geq_all, 2, yyvsp[-5], yyvsp[-1]); } +break; +case 703: +{ yyval = make_node (nod_leq_all, 2, yyvsp[-5], yyvsp[-1]); } +break; +case 704: +{ yyval = make_node (nod_leq_all, 2, yyvsp[-5], yyvsp[-1]); } +break; +case 705: +{ yyval = make_node (nod_geq_all, 2, yyvsp[-5], yyvsp[-1]); } +break; +case 706: +{ yyval = make_node (nod_neq_all, 2, yyvsp[-5], yyvsp[-1]); } +break; +case 707: +{ yyval = make_node (nod_eql_any, 2, yyvsp[-5], yyvsp[-1]); } +break; +case 708: +{ yyval = make_node (nod_lss_any, 2, yyvsp[-5], yyvsp[-1]); } +break; +case 709: +{ yyval = make_node (nod_gtr_any, 2, yyvsp[-5], yyvsp[-1]); } +break; +case 710: +{ yyval = make_node (nod_geq_any, 2, yyvsp[-5], yyvsp[-1]); } +break; +case 711: +{ yyval = make_node (nod_leq_any, 2, yyvsp[-5], yyvsp[-1]); } +break; +case 712: +{ yyval = make_node (nod_leq_any, 2, yyvsp[-5], yyvsp[-1]); } +break; +case 713: +{ yyval = make_node (nod_geq_any, 2, yyvsp[-5], yyvsp[-1]); } +break; +case 714: +{ yyval = make_node (nod_neq_any, 2, yyvsp[-5], yyvsp[-1]); } +break; +case 717: +{ yyval = make_node (nod_between, 3, yyvsp[-4], yyvsp[-2], yyvsp[0]); } +break; +case 718: +{ yyval = make_node (nod_not, 1, make_node (nod_between, + 3, yyvsp[-5], yyvsp[-2], yyvsp[0])); } +break; +case 719: +{ yyval = make_node (nod_like, 2, yyvsp[-2], yyvsp[0]); } +break; +case 720: +{ yyval = make_node (nod_not, 1, make_node (nod_like, 2, yyvsp[-3], yyvsp[0])); } +break; +case 721: +{ yyval = make_node (nod_like, 3, yyvsp[-4], yyvsp[-2], yyvsp[0]); } +break; +case 722: +{ yyval = make_node (nod_not, 1, make_node (nod_like, + 3, yyvsp[-5], yyvsp[-2], yyvsp[0])); } +break; +case 723: +{ yyval = make_node (nod_eql_any, 2, yyvsp[-2], yyvsp[0]); } +break; +case 724: +{ yyval = make_node (nod_not, 1, make_node (nod_eql_any, 2, yyvsp[-3], yyvsp[0])); } +break; +case 725: +{ yyval = make_node (nod_containing, 2, yyvsp[-2], yyvsp[0]); } +break; +case 726: +{ yyval = make_node (nod_not, 1, make_node (nod_containing, 2, yyvsp[-3], yyvsp[0])); } +break; +case 727: +{ yyval = make_node (nod_starting, 2, yyvsp[-2], yyvsp[0]); } +break; +case 728: +{ yyval = make_node (nod_not, 1, make_node (nod_starting, 2, yyvsp[-3], yyvsp[0])); } +break; +case 729: +{ yyval = make_node (nod_starting, 2, yyvsp[-3], yyvsp[0]); } +break; +case 730: +{ yyval = make_node (nod_not, 1, make_node (nod_starting, 2, yyvsp[-4], yyvsp[0])); } +break; +case 731: +{ yyval = make_node (nod_exists, 1, yyvsp[-1]); } +break; +case 732: +{ yyval = make_node (nod_singular, 1, yyvsp[-1]); } +break; +case 733: +{ yyval = make_node (nod_missing, 1, yyvsp[-2]); } +break; +case 734: +{ yyval = make_node (nod_not, 1, make_node (nod_missing, 1, yyvsp[-3])); } +break; +case 735: +{ yyval = make_list (yyvsp[-1]); } +break; +case 736: +{ yyval = yyvsp[-1]; } +break; +case 737: +{ yyval = make_node (nod_select_expr, e_sel_count, + yyvsp[-6], make_list (yyvsp[-5]), yyvsp[-4], yyvsp[-3], yyvsp[-2], yyvsp[-1], yyvsp[0], NULL); } +break; +case 738: +{ yyval = make_node (nod_select_expr, e_sel_count, + yyvsp[-6], make_list (yyvsp[-5]), yyvsp[-4], yyvsp[-3], yyvsp[-2], yyvsp[-1], yyvsp[0], + MAKE_constant ((STR) 1, CONSTANT_SLONG)); } +break; +case 746: +{ yyval = make_node (nod_negate, 1, yyvsp[0]); } +break; +case 747: +{ yyval = yyvsp[0]; } +break; +case 748: +{ + if (client_dialect >= SQL_DIALECT_V6_TRANSITION) + yyval = make_node (nod_add2, 2, yyvsp[-2], yyvsp[0]); + else + yyval = make_node (nod_add, 2, yyvsp[-2], yyvsp[0]); + } +break; +case 749: +{ yyval = make_node (nod_concatenate, 2, yyvsp[-2], yyvsp[0]); } +break; +case 750: +{ yyval = make_node (nod_collate, e_coll_count, (NOD) yyvsp[0], yyvsp[-2]); } +break; +case 751: +{ + if (client_dialect >= SQL_DIALECT_V6_TRANSITION) + yyval = make_node (nod_subtract2, 2, yyvsp[-2], yyvsp[0]); + else + yyval = make_node (nod_subtract, 2, yyvsp[-2], yyvsp[0]); + } +break; +case 752: +{ + if (client_dialect >= SQL_DIALECT_V6_TRANSITION) + yyval = make_node (nod_multiply2, 2, yyvsp[-2], yyvsp[0]); + else + yyval = make_node (nod_multiply, 2, yyvsp[-2], yyvsp[0]); + } +break; +case 753: +{ + if (client_dialect >= SQL_DIALECT_V6_TRANSITION) + yyval = make_node (nod_divide2, 2, yyvsp[-2], yyvsp[0]); + else + yyval = make_node (nod_divide, 2, yyvsp[-2], yyvsp[0]); + } +break; +case 754: +{ yyval = yyvsp[-1]; } +break; +case 755: +{ yyval = yyvsp[-1]; } +break; +case 756: +{ yyval = make_node (nod_user_name, 0, NULL); } +break; +case 757: +{ yyval = make_node (nod_dbkey, 1, NULL); } +break; +case 758: +{ yyval = make_node (nod_dbkey, 1, yyvsp[-2]); } +break; +case 759: +{ + yyval = make_node (nod_dom_value, 0, NULL); + } +break; +case 760: +{ yyval = yyvsp[0]; } +break; +case 761: +{ if (client_dialect < SQL_DIALECT_V6_TRANSITION) - ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, isc_sql_dialect_datatype_unsupport, - gds_arg_number, client_dialect, - gds_arg_string, "DATE", 0); + ERRD_post (gds_sqlerr, gds_arg_number, (SLONG) -104, + gds_arg_gds, isc_sql_dialect_datatype_unsupport, + gds_arg_number, client_dialect, + gds_arg_string, "DATE", + 0); if (db_dialect < SQL_DIALECT_V6_TRANSITION) - ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, isc_sql_db_dialect_dtype_unsupport, - gds_arg_number, db_dialect, - gds_arg_string, "DATE", 0); - yyval = make_node(nod_current_date, 0, NULL); - } - break; - case 756:{ + ERRD_post (gds_sqlerr, gds_arg_number, (SLONG) -104, + gds_arg_gds, isc_sql_db_dialect_dtype_unsupport, + gds_arg_number, db_dialect, + gds_arg_string, "DATE", + 0); + yyval = make_node (nod_current_date, 0, NULL); + } +break; +case 762: +{ if (client_dialect < SQL_DIALECT_V6_TRANSITION) - ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, isc_sql_dialect_datatype_unsupport, - gds_arg_number, client_dialect, - gds_arg_string, "TIME", 0); + ERRD_post (gds_sqlerr, gds_arg_number, (SLONG) -104, + gds_arg_gds, isc_sql_dialect_datatype_unsupport, + gds_arg_number, client_dialect, + gds_arg_string, "TIME", + 0); if (db_dialect < SQL_DIALECT_V6_TRANSITION) - ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, isc_sql_db_dialect_dtype_unsupport, - gds_arg_number, db_dialect, - gds_arg_string, "TIME", 0); - yyval = make_node(nod_current_time, 0, NULL); - } - break; - case 757:{ - yyval = make_node(nod_current_timestamp, 0, NULL); - } - break; - case 758:{ - yyval = make_node(nod_array, 2, yypvt[-3], make_list(yypvt[-1])); - } - break; - case 760:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 762:{ - yyval = make_node(nod_negate, 1, yypvt[-0]); - } - break; - case 763:{ - yyval = MAKE_constant((STR) yypvt[-0], CONSTANT_STRING); - } - break; - case 764:{ - yyval = MAKE_constant((STR) yypvt[-0], CONSTANT_SLONG); - } - break; - case 765:{ - yyval = MAKE_constant((STR) yypvt[-0], CONSTANT_DOUBLE); - } - break; - case 766:{ - yyval = MAKE_constant((STR) yypvt[-0], CONSTANT_SINT64); - } - break; - case 767:{ - yyval = MAKE_constant((STR) yypvt[-0], CONSTANT_SINT64); - } - break; - case 769:{ - yyval = MAKE_str_constant((STR) yypvt[-0], att_charset); - } - break; - case 770:{ + ERRD_post (gds_sqlerr, gds_arg_number, (SLONG) -104, + gds_arg_gds, isc_sql_db_dialect_dtype_unsupport, + gds_arg_number, db_dialect, + gds_arg_string, "TIME", + 0); + yyval = make_node (nod_current_time, 0, NULL); + } +break; +case 763: +{ yyval = make_node (nod_current_timestamp, 0, NULL); } +break; +case 764: +{ yyval = make_node (nod_array, 2, yyvsp[-3], make_list (yyvsp[-1])); } +break; +case 766: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 768: +{ yyval = make_node (nod_negate, 1, yyvsp[0]); } +break; +case 769: +{ yyval = MAKE_constant ((STR) yyvsp[0], CONSTANT_STRING); } +break; +case 770: +{ yyval = MAKE_constant ((STR) yyvsp[0], CONSTANT_SLONG); } +break; +case 771: +{ yyval = MAKE_constant ((STR) yyvsp[0], CONSTANT_DOUBLE); } +break; +case 772: +{ yyval = MAKE_constant ((STR) yyvsp[0], CONSTANT_SINT64); } +break; +case 773: +{ yyval = MAKE_constant ((STR) yyvsp[0], CONSTANT_SINT64); } +break; +case 775: +{ yyval = MAKE_str_constant ((STR) yyvsp[0], att_charset); } +break; +case 776: +{ if (client_dialect < SQL_DIALECT_V6_TRANSITION) - ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, isc_sql_dialect_datatype_unsupport, - gds_arg_number, client_dialect, - gds_arg_string, "DATE", 0); + ERRD_post (gds_sqlerr, gds_arg_number, (SLONG) -104, + gds_arg_gds, isc_sql_dialect_datatype_unsupport, + gds_arg_number, client_dialect, + gds_arg_string, "DATE", + 0); if (db_dialect < SQL_DIALECT_V6_TRANSITION) - ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, isc_sql_db_dialect_dtype_unsupport, - gds_arg_number, db_dialect, - gds_arg_string, "DATE", 0); - yyval = MAKE_constant((STR) yypvt[-0], CONSTANT_DATE); - } - break; - case 771:{ + ERRD_post (gds_sqlerr, gds_arg_number, (SLONG) -104, + gds_arg_gds, isc_sql_db_dialect_dtype_unsupport, + gds_arg_number, db_dialect, + gds_arg_string, "DATE", + 0); + yyval = MAKE_constant ((STR) yyvsp[0], CONSTANT_DATE); + } +break; +case 777: +{ if (client_dialect < SQL_DIALECT_V6_TRANSITION) - ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, isc_sql_dialect_datatype_unsupport, - gds_arg_number, client_dialect, - gds_arg_string, "TIME", 0); + ERRD_post (gds_sqlerr, gds_arg_number, (SLONG) -104, + gds_arg_gds, isc_sql_dialect_datatype_unsupport, + gds_arg_number, client_dialect, + gds_arg_string, "TIME", + 0); if (db_dialect < SQL_DIALECT_V6_TRANSITION) - ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, isc_sql_db_dialect_dtype_unsupport, - gds_arg_number, db_dialect, - gds_arg_string, "TIME", 0); - yyval = MAKE_constant((STR) yypvt[-0], CONSTANT_TIME); - } - break; - case 772:{ - yyval = MAKE_constant((STR) yypvt[-0], CONSTANT_TIMESTAMP); - } - break; - case 776:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 777:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 778:{ - yyval = make_node(nod_list, 2, yypvt[-2], yypvt[-0]); - } - break; - case 779:{ - yyval = make_node(nod_parameter, 0, NULL); - } - break; - case 780:{ - yyval = make_node(nod_user_name, 0, NULL); - } - break; - case 781:{ - yyval = yypvt[-0]; - } - break; - case 782:{ - ((STR) yypvt[-0])->str_charset = (TEXT *) yypvt[-1]; - yyval = yypvt[-0]; - } - break; - case 784:{ - yyval = (NOD) - (SLONG) yypvt[-0]; - } - break; - case 785:{ - if ((SLONG) yypvt[-0] > SHRT_POS_MAX) - yyabandon(-842, isc_expec_short); - /* Short integer expected */ - yyval = yypvt[-0]; - } - break; - case 786:{ - if ((SLONG) yypvt[-0] > SHRT_NEG_MAX) - yyabandon(-842, isc_expec_short); - /* Short integer expected */ - yyval = yypvt[-0]; - } - break; - case 787:{ - if ((SLONG) yypvt[-0] == 0) - yyabandon(-842, isc_expec_positive); - /* Positive number expected */ - yyval = yypvt[-0]; - } - break; - case 788:{ - if ((SLONG) yypvt[-0] > SHRT_UNSIGNED_MAX) - yyabandon(-842, isc_expec_ushort); - /* Unsigned short integer expected */ - yyval = yypvt[-0]; - } - break; - case 790:{ - yyval = (NOD) - (SLONG) yypvt[-0]; - } - break; - case 791:{ - yyval = yypvt[-0]; - } - break; - case 792:{ - yyval = make_node(nod_agg_count, 0, NULL); - } - break; - case 793:{ - yyval = make_node(nod_agg_count, 1, yypvt[-1]); - } - break; - case 794:{ - yyval = make_flag_node(nod_agg_count, - NOD_AGG_DISTINCT, 1, yypvt[-1]);} - break; - case 795:{ - if (client_dialect >= SQL_DIALECT_V6_TRANSITION) - yyval = make_node(nod_agg_total2, 1, yypvt[-1]); - else - yyval = make_node(nod_agg_total, 1, yypvt[-1]); - } - break; - case 796:{ - if (client_dialect >= SQL_DIALECT_V6_TRANSITION) - yyval = make_flag_node(nod_agg_total2, - NOD_AGG_DISTINCT, 1, yypvt[-1]); - else - yyval = make_flag_node(nod_agg_total, - NOD_AGG_DISTINCT, 1, yypvt[-1]); - } - break; - case 797:{ - if (client_dialect >= SQL_DIALECT_V6_TRANSITION) - yyval = make_node(nod_agg_average2, 1, yypvt[-1]); - else - yyval = make_node(nod_agg_average, 1, yypvt[-1]); - } - break; - case 798:{ - if (client_dialect >= SQL_DIALECT_V6_TRANSITION) - yyval = make_flag_node(nod_agg_average2, - NOD_AGG_DISTINCT, 1, yypvt[-1]); - else - yyval = make_flag_node(nod_agg_average, - NOD_AGG_DISTINCT, 1, yypvt[-1]); - } - break; - case 799:{ - yyval = make_node(nod_agg_min, 1, yypvt[-1]); - } - break; - case 800:{ - yyval = make_node(nod_agg_min, 1, yypvt[-1]); - } - break; - case 801:{ - yyval = make_node(nod_agg_max, 1, yypvt[-1]); - } - break; - case 802:{ - yyval = make_node(nod_agg_max, 1, yypvt[-1]); - } - break; - case 803:{ - yyval = make_node(nod_cast, e_cast_count, yypvt[-1], yypvt[-3]); - } - break; - case 804:{ - yyval = make_node(nod_upcase, 1, yypvt[-1]); - } - break; - case 805:{ - if (client_dialect >= SQL_DIALECT_V6_TRANSITION) - yyval = make_node(nod_gen_id2, 2, yypvt[-3], yypvt[-1]); - else - yyval = make_node(nod_gen_id, 2, yypvt[-3], yypvt[-1]); - } - break; - case 806:{ - yyval = - make_node(nod_extract, e_extract_count, yypvt[-3], yypvt[-1]);} - break; - case 807:{ - yyval = make_node(nod_udf, 2, yypvt[-3], yypvt[-1]); - } - break; - case 808:{ - yyval = make_node(nod_udf, 1, yypvt[-2]); - } - break; - case 809:{ - yyval = - MAKE_constant(reinterpret_cast < str * >(blr_extract_year), - CONSTANT_SLONG);} - break; - case 810:{ - yyval = - MAKE_constant(reinterpret_cast < str * >(blr_extract_month), - CONSTANT_SLONG);} - break; - case 811:{ - yyval = - MAKE_constant(reinterpret_cast < str * >(blr_extract_day), - CONSTANT_SLONG);} break; - case 812:{ - yyval = - MAKE_constant(reinterpret_cast < str * >(blr_extract_hour), - CONSTANT_SLONG);} - break; - case 813:{ - yyval = - MAKE_constant(reinterpret_cast < str * >(blr_extract_minute), - CONSTANT_SLONG);} - break; - case 814:{ - yyval = - MAKE_constant(reinterpret_cast < str * >(blr_extract_second), - CONSTANT_SLONG);} - break; - case 815:{ - yyval = - MAKE_constant(reinterpret_cast < str * >(blr_extract_weekday), - CONSTANT_SLONG);} - break; - case 816:{ - yyval = - MAKE_constant(reinterpret_cast < str * >(blr_extract_yearday), - CONSTANT_SLONG);} - break; - case 819:{ - yyval = make_node(nod_null, 0, NULL); - } - break; - } - goto yystack; /* reset registers in driver code */ + ERRD_post (gds_sqlerr, gds_arg_number, (SLONG) -104, + gds_arg_gds, isc_sql_db_dialect_dtype_unsupport, + gds_arg_number, db_dialect, + gds_arg_string, "TIME", + 0); + yyval = MAKE_constant ((STR) yyvsp[0], CONSTANT_TIME); + } +break; +case 778: +{ yyval = MAKE_constant ((STR) yyvsp[0], CONSTANT_TIMESTAMP); } +break; +case 782: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 783: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 784: +{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); } +break; +case 785: +{ yyval = make_node (nod_parameter, 0, NULL); } +break; +case 786: +{ yyval = make_node (nod_user_name, 0, NULL); } +break; +case 787: +{ yyval = yyvsp[0]; } +break; +case 788: +{ ((STR) yyvsp[0])->str_charset = (TEXT *) yyvsp[-1]; + yyval = yyvsp[0]; } +break; +case 790: +{ yyval = (NOD) - (SLONG) yyvsp[0]; } +break; +case 791: +{ if ((SLONG) yyvsp[0] > SHRT_POS_MAX) + yyabandon (-842, isc_expec_short); + /* Short integer expected */ + yyval = yyvsp[0];} +break; +case 792: +{ if ((SLONG) yyvsp[0] > SHRT_NEG_MAX) + yyabandon (-842, isc_expec_short); + /* Short integer expected */ + yyval = yyvsp[0];} +break; +case 793: +{ if ((SLONG) yyvsp[0] == 0) + yyabandon (-842, isc_expec_positive); + /* Positive number expected */ + yyval = yyvsp[0];} +break; +case 794: +{ if ((SLONG) yyvsp[0] > SHRT_UNSIGNED_MAX) + yyabandon (-842, isc_expec_ushort); + /* Unsigned short integer expected */ + yyval = yyvsp[0];} +break; +case 796: +{ yyval = (NOD) - (SLONG) yyvsp[0]; } +break; +case 797: +{ yyval = yyvsp[0];} +break; +case 798: +{ yyval = make_node (nod_agg_count, 0, NULL); } +break; +case 799: +{ yyval = make_node (nod_agg_count, 1, yyvsp[-1]); } +break; +case 800: +{ yyval = make_flag_node (nod_agg_count, + NOD_AGG_DISTINCT, 1, yyvsp[-1]); } +break; +case 801: +{ + if (client_dialect >= SQL_DIALECT_V6_TRANSITION) + yyval = make_node (nod_agg_total2, 1, yyvsp[-1]); + else + yyval = make_node (nod_agg_total, 1, yyvsp[-1]); + } +break; +case 802: +{ + if (client_dialect >= SQL_DIALECT_V6_TRANSITION) + yyval = make_flag_node (nod_agg_total2, + NOD_AGG_DISTINCT, 1, yyvsp[-1]); + else + yyval = make_flag_node (nod_agg_total, + NOD_AGG_DISTINCT, 1, yyvsp[-1]); + } +break; +case 803: +{ + if (client_dialect >= SQL_DIALECT_V6_TRANSITION) + yyval = make_node (nod_agg_average2, 1, yyvsp[-1]); + else + yyval = make_node (nod_agg_average, 1, yyvsp[-1]); + } +break; +case 804: +{ + if (client_dialect >= SQL_DIALECT_V6_TRANSITION) + yyval = make_flag_node (nod_agg_average2, + NOD_AGG_DISTINCT, 1, yyvsp[-1]); + else + yyval = make_flag_node (nod_agg_average, + NOD_AGG_DISTINCT, 1, yyvsp[-1]); + } +break; +case 805: +{ yyval = make_node (nod_agg_min, 1, yyvsp[-1]); } +break; +case 806: +{ yyval = make_node (nod_agg_min, 1, yyvsp[-1]); } +break; +case 807: +{ yyval = make_node (nod_agg_max, 1, yyvsp[-1]); } +break; +case 808: +{ yyval = make_node (nod_agg_max, 1, yyvsp[-1]); } +break; +case 809: +{ yyval = make_node (nod_cast, e_cast_count, yyvsp[-1], yyvsp[-3]); } +break; +case 810: +{ yyval = make_node (nod_upcase, 1, yyvsp[-1]); } +break; +case 811: +{ + if (client_dialect >= SQL_DIALECT_V6_TRANSITION) + yyval = make_node (nod_gen_id2, 2, yyvsp[-3], yyvsp[-1]); + else + yyval = make_node (nod_gen_id, 2, yyvsp[-3], yyvsp[-1]); + } +break; +case 812: +{ yyval = make_node (nod_extract, e_extract_count, yyvsp[-3], yyvsp[-1]); } +break; +case 813: +{ yyval = make_node (nod_udf, 2, yyvsp[-3], yyvsp[-1]); } +break; +case 814: +{ yyval = make_node (nod_udf, 1, yyvsp[-2]); } +break; +case 815: +{ yyval = MAKE_constant ((STR)blr_extract_year, CONSTANT_SLONG); } +break; +case 816: +{ yyval = MAKE_constant ((STR)blr_extract_month, CONSTANT_SLONG); } +break; +case 817: +{ yyval = MAKE_constant ((STR)blr_extract_day, CONSTANT_SLONG); } +break; +case 818: +{ yyval = MAKE_constant ((STR)blr_extract_hour, CONSTANT_SLONG); } +break; +case 819: +{ yyval = MAKE_constant ((STR)blr_extract_minute, CONSTANT_SLONG); } +break; +case 820: +{ yyval = MAKE_constant ((STR)blr_extract_second, CONSTANT_SLONG); } +break; +case 821: +{ yyval = MAKE_constant ((STR)blr_extract_weekday, CONSTANT_SLONG); } +break; +case 822: +{ yyval = MAKE_constant ((STR)blr_extract_yearday, CONSTANT_SLONG); } +break; +case 825: +{ yyval = make_node (nod_null, 0, NULL); } +break; + } + DSQL_DSQL_yyssp -= yym; + yystate = *DSQL_DSQL_yyssp; + yyvsp -= yym; + yym = yylhs[yyn]; + if (yystate == 0 && yym == 0) + { +#if YYDEBUG + if (yydebug) + printf("%sdebug: after reduction, shifting from state 0 to\ + state %d\n", YYPREFIX, YYFINAL); +#endif + yystate = YYFINAL; + *++DSQL_DSQL_yyssp = YYFINAL; + *++yyvsp = yyval; + if (DSQL_yychar < 0) + { + if ((DSQL_yychar = yylex(client_dialect, db_dialect, parser_version, stmt_ambiguous)) < 0) DSQL_yychar = 0; +#if YYDEBUG + if (yydebug) + { + yys = 0; + if (DSQL_yychar <= YYMAXTOKEN) yys = yyname[DSQL_yychar]; + if (!yys) yys = "illegal-symbol"; + printf("%sdebug: state %d, reading %d (%s)\n", + YYPREFIX, YYFINAL, DSQL_yychar, yys); + } +#endif + } + if (DSQL_yychar == 0) goto yyaccept; + goto yyloop; + } + if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 && + yyn <= YYTABLESIZE && yycheck[yyn] == yystate) + yystate = yytable[yyn]; + else + yystate = yydgoto[yym]; +#if YYDEBUG + if (yydebug) + printf("%sdebug: after reduction, shifting from state %d \ +to state %d\n", YYPREFIX, *DSQL_DSQL_yyssp, yystate); +#endif + if (DSQL_DSQL_yyssp >= DSQL_yyss + yystacksize - 1) + { + goto yyoverflow; + } + *++DSQL_DSQL_yyssp = yystate; + *++yyvsp = yyval; + goto yyloop; +yyoverflow: + yyerror("yacc stack overflow"); +yyabort: + return (1); +yyaccept: + return (0); } - - -} // extern "C" diff --git a/src/dsql/parse.y b/src/dsql/parse.y index 289deba7c0..0938a9a0d2 100644 --- a/src/dsql/parse.y +++ b/src/dsql/parse.y @@ -22,13 +22,14 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include #include #include "../jrd/common.h" #include -#include "../include/iberror.h" +#include "gen/iberror.h" #include "../dsql/dsql.h" #include "../dsql/node.h" #include "../dsql/sym.h" @@ -3370,7 +3371,7 @@ typedef struct tok { static CONST TOK tokens [] = { #include "../dsql/keywords.h" - 0, 0, 0 + {0, 0, 0} }; diff --git a/src/dsql/pass1.cpp b/src/dsql/pass1.cpp index 7283eb85a7..570dc4a5c4 100644 --- a/src/dsql/pass1.cpp +++ b/src/dsql/pass1.cpp @@ -21,13 +21,14 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include "../jrd/ib_stdio.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../dsql/dsql.h" #include "../dsql/node.h" #include "../dsql/sym.h" -#include "../jrd/codes.h" +#include "gen/codes.h" #include "../jrd/thd.h" #include "../jrd/intl.h" #include "../jrd/blr.h" @@ -149,13 +150,13 @@ CTX PASS1_make_context( REQ request, NOD relation_node) { if (!(procedure = METD_get_procedure(request, relation_name))) { - ERRD_post( gds__sqlerr, + ERRD_post( gds_sqlerr, gds_arg_number, (SLONG) - 204, gds_arg_gds, - gds__dsql_procedure_err, + gds_dsql_procedure_err, gds_arg_gds, - gds__random, + gds_random, gds_arg_string, relation_name->str_data, 0); @@ -170,13 +171,13 @@ CTX PASS1_make_context( REQ request, NOD relation_node) } if (!relation && !procedure) { - ERRD_post( gds__sqlerr, + ERRD_post( gds_sqlerr, gds_arg_number, (SLONG) - 204, gds_arg_gds, - gds__dsql_relation_err, + gds_dsql_relation_err, gds_arg_gds, - gds__random, + gds_random, gds_arg_string, relation_name->str_data, 0); @@ -184,8 +185,8 @@ CTX PASS1_make_context( REQ request, NOD relation_node) } if (procedure && !procedure->prc_out_count) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 84, - gds_arg_gds, gds__dsql_procedure_use_err, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 84, + gds_arg_gds, gds_dsql_procedure_use_err, gds_arg_string, relation_name->str_data, 0); /* Set up context block */ @@ -220,24 +221,24 @@ CTX PASS1_make_context( REQ request, NOD relation_node) if (conflict->ctx_alias) { conflict_name = conflict->ctx_alias; - error_code = gds__alias_conflict_err; + error_code = gds_alias_conflict_err; /* alias %s conflicts with an alias in the same statement */ } else if (conflict->ctx_procedure) { conflict_name = conflict->ctx_procedure->prc_name; - error_code = gds__procedure_conflict_error; + error_code = gds_procedure_conflict_error; /* alias %s conflicts with a procedure in the same statement */ } else if (conflict->ctx_relation) { conflict_name = conflict->ctx_relation->rel_name; - error_code = gds__relation_conflict_err; + error_code = gds_relation_conflict_err; /* alias %s conflicts with a relation in the same statement */ } else continue; if (!strcmp(conflict_name, context->ctx_alias)) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 204, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 204, gds_arg_gds, error_code, gds_arg_string, conflict_name, 0); } @@ -258,7 +259,7 @@ CTX PASS1_make_context( REQ request, NOD relation_node) if (!(request->req_type & REQ_procedure)) { if (count != procedure->prc_in_count) - ERRD_post(gds__prcmismat, gds_arg_string, + ERRD_post(gds_prcmismat, gds_arg_string, relation_name->str_data, 0); if (count) { @@ -369,16 +370,16 @@ NOD PASS1_node(REQ request, NOD input, USHORT proc_flag) case blr_extract_yearday: if (sub1->nod_desc.dsc_dtype != dtype_sql_date && sub1->nod_desc.dsc_dtype != dtype_timestamp) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 105, - gds_arg_gds, gds__extract_input_mismatch, 0); + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 105, + gds_arg_gds, gds_extract_input_mismatch, 0); break; case blr_extract_hour: case blr_extract_minute: case blr_extract_second: if (sub1->nod_desc.dsc_dtype != dtype_sql_time && sub1->nod_desc.dsc_dtype != dtype_timestamp) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 105, - gds_arg_gds, gds__extract_input_mismatch, 0); + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 105, + gds_arg_gds, gds_extract_input_mismatch, 0); break; default: assert(FALSE); @@ -396,13 +397,13 @@ NOD PASS1_node(REQ request, NOD input, USHORT proc_flag) case nod_insert: case nod_order: case nod_select: - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, gds__dsql_command_err, 0); + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, + gds_arg_gds, gds_dsql_command_err, 0); case nod_select_expr: if (proc_flag) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 206, - gds_arg_gds, gds__dsql_subselect_err, 0); + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 206, + gds_arg_gds, gds_dsql_subselect_err, 0); base = request->req_context; node = MAKE_node(nod_via, e_via_count); @@ -436,8 +437,8 @@ NOD PASS1_node(REQ request, NOD input, USHORT proc_flag) case nod_array: if (proc_flag) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, gds__dsql_invalid_array, 0); + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, + gds_arg_gds, gds_dsql_invalid_array, 0); else return pass1_field(request, input, 0); @@ -460,8 +461,8 @@ NOD PASS1_node(REQ request, NOD input, USHORT proc_flag) case nod_parameter: if (proc_flag) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, gds__dsql_command_err, 0); + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, + gds_arg_gds, gds_dsql_command_err, 0); node = MAKE_node(input->nod_type, e_par_count); node->nod_count = 0; node->nod_arg[e_par_parameter] = @@ -504,9 +505,9 @@ NOD PASS1_node(REQ request, NOD input, USHORT proc_flag) node = compose(node, temp, nod_or); } if (list_item_count >= MAX_MEMBER_LIST) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 901, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 901, gds_arg_gds, isc_imp_exc, - gds_arg_gds, gds__random, + gds_arg_gds, gds_random, gds_arg_string, "too many values (more than 1500) in member list to match against", 0); @@ -514,8 +515,8 @@ NOD PASS1_node(REQ request, NOD input, USHORT proc_flag) } if (sub2->nod_type == nod_select_expr) { if (proc_flag) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 206, - gds_arg_gds, gds__dsql_subselect_err, 0); + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 206, + gds_arg_gds, gds_dsql_subselect_err, 0); if (sub2->nod_arg[e_sel_singleton]) { base = request->req_context; @@ -572,16 +573,16 @@ NOD PASS1_node(REQ request, NOD input, USHORT proc_flag) case nod_agg_average2: case nod_agg_total2: if (proc_flag) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, gds__dsql_command_err, 0); + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, + gds_arg_gds, gds_dsql_command_err, 0); if (request->req_inhibit_map || !(request->req_in_select_list || request->req_in_having_clause || request->req_in_order_by_clause)) /* either nested aggregate, or not part of a select list, having clause, or order by clause */ - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, gds__dsql_agg_ref_err, 0); + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, + gds_arg_gds, gds_dsql_agg_ref_err, 0); ++request->req_inhibit_map; node = MAKE_node(input->nod_type, input->nod_count); node->nod_flags = input->nod_flags; @@ -860,9 +861,9 @@ NOD PASS1_statement(REQ request, NOD input, USHORT proc_flag) field2 = (FLD) (*ptr2)->nod_arg[e_dfl_field]; DEV_BLKCHK(field2, type_fld); if (!strcmp(field->fld_name, field2->fld_name)) - ERRD_post(gds__sqlerr, gds_arg_number, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 901, gds_arg_gds, - gds__dsql_var_conflict, gds_arg_string, + gds_dsql_var_conflict, gds_arg_string, field->fld_name, 0); } if (parameters = input->nod_arg[e_prc_outputs]) @@ -871,9 +872,9 @@ NOD PASS1_statement(REQ request, NOD input, USHORT proc_flag) field2 = (FLD) (*ptr2)->nod_arg[e_dfl_field]; DEV_BLKCHK(field2, type_fld); if (!strcmp(field->fld_name, field2->fld_name)) - ERRD_post(gds__sqlerr, gds_arg_number, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 901, gds_arg_gds, - gds__dsql_var_conflict, gds_arg_string, + gds_dsql_var_conflict, gds_arg_string, field->fld_name, 0); } } @@ -910,9 +911,9 @@ NOD PASS1_statement(REQ request, NOD input, USHORT proc_flag) name = (STR) input->nod_arg[e_exe_procedure]; DEV_BLKCHK(name, type_str); if (!(request->req_procedure = METD_get_procedure(request, name))) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 204, - gds_arg_gds, gds__dsql_procedure_err, - gds_arg_gds, gds__random, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 204, + gds_arg_gds, gds_dsql_procedure_err, + gds_arg_gds, gds_random, gds_arg_string, name->str_data, 0); request->req_type = REQ_EXEC_PROCEDURE; } @@ -933,7 +934,7 @@ NOD PASS1_statement(REQ request, NOD input, USHORT proc_flag) else count = 0; if (count != request->req_procedure->prc_in_count) - ERRD_post(gds__prcmismat, gds_arg_string, name->str_data, 0); + ERRD_post(gds_prcmismat, gds_arg_string, name->str_data, 0); if (count) { /* Initialize this stack variable, and make it look like a node */ memset((SCHAR *) & desc_node, 0, sizeof(desc_node)); @@ -1085,14 +1086,14 @@ NOD PASS1_statement(REQ request, NOD input, USHORT proc_flag) case nod_exit: if (request->req_flags & REQ_trigger) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 104, gds_arg_gds, gds__token_err, /* Token unknown */ - gds_arg_gds, gds__random, gds_arg_string, "EXIT", 0); + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, gds_arg_gds, gds_token_err, /* Token unknown */ + gds_arg_gds, gds_random, gds_arg_string, "EXIT", 0); return input; case nod_return: if (request->req_flags & REQ_trigger) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 104, gds_arg_gds, gds__token_err, /* Token unknown */ - gds_arg_gds, gds__random, gds_arg_string, "RETURN", 0); + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, gds_arg_gds, gds_token_err, /* Token unknown */ + gds_arg_gds, gds_random, gds_arg_string, "RETURN", 0); input->nod_arg[e_rtn_procedure] = request->req_ddl_node; return input; @@ -1170,14 +1171,14 @@ NOD PASS1_statement(REQ request, NOD input, USHORT proc_flag) break; case nod_union: - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 901, - gds_arg_gds, gds__dsql_command_err, gds_arg_gds, gds__union_err, /* union not supported */ + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 901, + gds_arg_gds, gds_dsql_command_err, gds_arg_gds, gds_union_err, /* union not supported */ 0); break; default: - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 901, - gds_arg_gds, gds__dsql_command_err, gds_arg_gds, gds__dsql_construct_err, /* Unsupported DSQL construct */ + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 901, + gds_arg_gds, gds_dsql_command_err, gds_arg_gds, gds_dsql_construct_err, /* Unsupported DSQL construct */ 0); break; } @@ -1220,7 +1221,7 @@ static BOOLEAN aggregate_found( REQ request, NOD sub, NOD * proj) aggregate = aggregate_found2(request, sub, proj, &field); if (field && aggregate) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 104, gds_arg_gds, gds__field_aggregate_err, /* field used with aggregate */ + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, gds_arg_gds, gds_field_aggregate_err, /* field used with aggregate */ 0); return aggregate; @@ -1513,11 +1514,11 @@ static void explode_asterisk( NOD node, NOD aggregate, LLS * stack) if (invalid_reference (node, aggregate-> - nod_arg[e_agg_group])) ERRD_post(gds__sqlerr, + nod_arg[e_agg_group])) ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, gds_arg_gds, - gds__field_ref_err, + gds_field_ref_err, /* invalid field reference */ 0); } @@ -1531,11 +1532,11 @@ static void explode_asterisk( NOD node, NOD aggregate, LLS * stack) if (invalid_reference (node, aggregate-> - nod_arg[e_agg_group])) ERRD_post(gds__sqlerr, + nod_arg[e_agg_group])) ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, gds_arg_gds, - gds__field_ref_err, + gds_field_ref_err, /* invalid field reference */ 0); } @@ -1606,12 +1607,12 @@ static void field_error( TEXT * qualifier_name, TEXT * field_name) } if (field_name) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 206, - gds_arg_gds, gds__dsql_field_err, - gds_arg_gds, gds__random, gds_arg_string, field_name, 0); + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 206, + gds_arg_gds, gds_dsql_field_err, + gds_arg_gds, gds_random, gds_arg_string, field_name, 0); else - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 206, - gds_arg_gds, gds__dsql_field_err, 0); + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 206, + gds_arg_gds, gds_dsql_field_err, 0); } @@ -2205,8 +2206,8 @@ static void pass1_blob( REQ request, NOD input) (void) PASS1_make_context(request, input->nod_arg[e_blb_relation]); field = pass1_field(request, input->nod_arg[e_blb_field], 0); if (field->nod_desc.dsc_dtype != dtype_blob) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 206, - gds_arg_gds, gds__dsql_blob_err, 0); + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 206, + gds_arg_gds, gds_dsql_blob_err, 0); request->req_type = (input->nod_type == @@ -2306,9 +2307,9 @@ static NOD pass1_collate( REQ request, NOD sub1, STR collation) field->fld_length += sizeof(USHORT); } else { - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 204, - gds_arg_gds, gds__dsql_datatype_err, - gds_arg_gds, gds__collation_requires_text, 0); + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 204, + gds_arg_gds, gds_dsql_datatype_err, + gds_arg_gds, gds_collation_requires_text, 0); } DDL_resolve_intl_type(request, field, collation); MAKE_desc_from_field(&node->nod_desc, field); @@ -2347,8 +2348,8 @@ static NOD pass1_constant( REQ request, NOD constant) reinterpret_cast < UCHAR * >(string->str_charset)); if (!resolved) /* character set name is not defined */ - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 504, gds_arg_gds, - gds__charset_not_found, gds_arg_string, string->str_charset, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 504, gds_arg_gds, + gds_charset_not_found, gds_arg_string, string->str_charset, 0); if (temp_collation_name) { @@ -2357,9 +2358,9 @@ static NOD pass1_constant( REQ request, NOD constant) /* ** Specified collation not found */ - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 204, gds_arg_gds, - gds__dsql_datatype_err, gds_arg_gds, - gds__collation_not_found, gds_arg_string, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 204, gds_arg_gds, + gds_dsql_datatype_err, gds_arg_gds, + gds_collation_not_found, gds_arg_string, temp_collation_name->str_data, 0); resolved = resolved_collation; @@ -2406,8 +2407,8 @@ static NOD pass1_cursor( REQ request, NOD cursor, NOD relation_name) if (!symbol) /* cursor is not defined */ - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 504, - gds_arg_gds, gds__dsql_cursor_err, 0); + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 504, + gds_arg_gds, gds_dsql_cursor_err, 0); parent = (REQ) symbol->sym_object; @@ -2419,8 +2420,8 @@ static NOD pass1_cursor( REQ request, NOD cursor, NOD relation_name) !(source = find_dbkey(parent, relation_name)) || (!rv_source && !(request->req_dbb->dbb_flags & DBB_v3))) /* cursor is not updatable */ - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 510, - gds_arg_gds, gds__dsql_cursor_update_err, 0); + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 510, + gds_arg_gds, gds_dsql_cursor_update_err, 0); request->req_parent = parent; request->req_parent_dbkey = source; @@ -2515,9 +2516,9 @@ static CTX pass1_cursor_context( REQ request, NOD cursor, NOD relation_name) (reinterpret_cast < const char *>(rname->str_data), relation->rel_name)) { if (context) - ERRD_post(gds__sqlerr, gds_arg_number, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 504, gds_arg_gds, - gds__dsql_cursor_err, 0); + gds_dsql_cursor_err, 0); else context = candidate; } @@ -2530,8 +2531,8 @@ static CTX pass1_cursor_context( REQ request, NOD cursor, NOD relation_name) } } - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 504, - gds_arg_gds, gds__dsql_cursor_err, 0); + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 504, + gds_arg_gds, gds_dsql_cursor_err, 0); return (NULL); /* Added to remove compiler warnings */ } @@ -2735,9 +2736,9 @@ static NOD pass1_field( REQ request, NOD input, USHORT list) if (field->fld_dtype == dtype_sql_date || field->fld_dtype == dtype_sql_time || field->fld_dtype == dtype_int64) { - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 206, - gds_arg_gds, gds__dsql_field_err, - gds_arg_gds, gds__random, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 206, + gds_arg_gds, gds_dsql_field_err, + gds_arg_gds, gds_random, gds_arg_string, field->fld_name, gds_arg_gds, isc_sql_dialect_datatype_unsupport, @@ -2829,8 +2830,8 @@ static NOD pass1_insert( REQ request, NOD input) if (fields->nod_count != values->nod_count) /* count of column list and value list don't match */ - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 804, - gds_arg_gds, gds__dsql_var_count_err, 0); + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 804, + gds_arg_gds, gds_dsql_var_count_err, 0); stack = NULL; @@ -2943,9 +2944,9 @@ static NOD pass1_alias_list( REQ request, NOD alias_list) if (!context) /* there is no alias or table named %s at this scope level */ - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, gds__dsql_command_err, - gds_arg_gds, gds__dsql_no_relation_alias, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, + gds_arg_gds, gds_dsql_command_err, + gds_arg_gds, gds_dsql_no_relation_alias, gds_arg_string, ((STR) * arg)->str_data, 0); /* find the base table using the specified alias list, skipping the first one @@ -2957,9 +2958,9 @@ static NOD pass1_alias_list( REQ request, NOD alias_list) if (!relation) /* there is no alias or table named %s at this scope level */ - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, gds__dsql_command_err, - gds_arg_gds, gds__dsql_no_relation_alias, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, + gds_arg_gds, gds_dsql_command_err, + gds_arg_gds, gds_dsql_no_relation_alias, gds_arg_string, ((STR) * arg)->str_data, 0); /* make up a dummy context to hold the resultant relation */ @@ -3040,9 +3041,9 @@ static CTX pass1_alias( REQ request, STR alias) reinterpret_cast < const char *>(alias->str_data))) { if (relation_context) /* the table %s is referenced twice; use aliases to differentiate */ - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, gds__dsql_command_err, - gds_arg_gds, gds__dsql_self_join, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, + gds_arg_gds, gds_dsql_command_err, + gds_arg_gds, gds_dsql_self_join, gds_arg_string, alias->str_data, 0); relation_context = context; } @@ -3184,8 +3185,8 @@ static NOD pass1_rse( REQ request, NOD input, NOD order) for (ptr = list->nod_arg, end = ptr + list->nod_count; ptr < end; ptr++) if (invalid_reference(*ptr, aggregate->nod_arg[e_agg_group])) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, gds__field_ref_err, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, + gds_arg_gds, gds_field_ref_err, /* invalid field reference */ 0); } @@ -3205,8 +3206,8 @@ static NOD pass1_rse( REQ request, NOD input, NOD order) until we can figure out why they don't work: bug #6057 */ if (request->req_flags & REQ_trigger) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 104, gds_arg_gds, gds__token_err, /* Token unknown */ - gds_arg_gds, gds__random, gds_arg_string, "PLAN", 0); + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, gds_arg_gds, gds_token_err, /* Token unknown */ + gds_arg_gds, gds_random, gds_arg_string, "PLAN", 0); rse->nod_arg[e_rse_plan] = PASS1_node(request, node, 0); } @@ -3255,8 +3256,8 @@ static NOD pass1_rse( REQ request, NOD input, NOD order) if (aggregate) if (invalid_reference(parent_rse->nod_arg[e_rse_boolean], aggregate->nod_arg[e_agg_group])) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, gds__field_ref_err, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, + gds_arg_gds, gds_field_ref_err, /* invalid field reference */ 0); #endif @@ -3334,8 +3335,8 @@ static NOD pass1_sort( REQ request, NOD input, NOD s_list) DEV_BLKCHK(s_list, type_nod); if (input->nod_type != nod_list) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, gds__dsql_command_err, gds_arg_gds, gds__order_by_err, /* invalid ORDER BY clause */ + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, + gds_arg_gds, gds_dsql_command_err, gds_arg_gds, gds_order_by_err, /* invalid ORDER BY clause */ 0); /* Node is simply to be rebuilt -- just recurse merrily */ @@ -3347,8 +3348,8 @@ static NOD pass1_sort( REQ request, NOD input, NOD s_list) DEV_BLKCHK(*ptr, type_nod); node1 = *ptr; if (node1->nod_type != nod_order) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, gds__dsql_command_err, gds_arg_gds, gds__order_by_err, /* invalid ORDER BY clause */ + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, + gds_arg_gds, gds_dsql_command_err, gds_arg_gds, gds_order_by_err, /* invalid ORDER BY clause */ 0); node2 = MAKE_node(nod_order, e_order_count); node2->nod_arg[1] = node1->nod_arg[1]; @@ -3359,18 +3360,18 @@ static NOD pass1_sort( REQ request, NOD input, NOD s_list) position = (ULONG) (node1->nod_arg[0]); if ((position < 1) || !s_list || (position > - (ULONG) s_list->nod_count)) ERRD_post(gds__sqlerr, + (ULONG) s_list->nod_count)) ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, gds_arg_gds, - gds__dsql_command_err, gds_arg_gds, gds__order_by_err, /* invalid ORDER BY clause */ + gds_dsql_command_err, gds_arg_gds, gds_order_by_err, /* invalid ORDER BY clause */ 0); node2->nod_arg[0] = PASS1_node(request, s_list->nod_arg[position - 1], 0); } else - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, gds__dsql_command_err, gds_arg_gds, gds__order_by_err, /* invalid ORDER BY clause */ + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, + gds_arg_gds, gds_dsql_command_err, gds_arg_gds, gds_order_by_err, /* invalid ORDER BY clause */ 0); if ((*ptr)->nod_arg[e_order_collate]) { @@ -3410,9 +3411,9 @@ static NOD pass1_udf( REQ request, NOD input, USHORT proc_flag) DEV_BLKCHK(name, type_str); udf = METD_get_function(request, name); if (!udf) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 804, - gds_arg_gds, gds__dsql_function_err, - gds_arg_gds, gds__random, + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 804, + gds_arg_gds, gds_dsql_function_err, + gds_arg_gds, gds_random, gds_arg_string, name->str_data, 0); node = MAKE_node(nod_udf, input->nod_count); @@ -3528,8 +3529,8 @@ static NOD pass1_union( REQ request, NOD input, NOD order_list) for (i = 1; i < union_node->nod_count; i++) { nod1 = union_node->nod_arg[i]->nod_arg[e_rse_items]; if (items->nod_count != nod1->nod_count) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, gds__dsql_command_err, gds_arg_gds, gds__dsql_count_mismatch, /* overload of msg */ + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, + gds_arg_gds, gds_dsql_command_err, gds_arg_gds, gds_dsql_count_mismatch, /* overload of msg */ 0); for (j = 0; j < nod1->nod_count; j++) { @@ -3550,8 +3551,8 @@ static NOD pass1_union( REQ request, NOD input, NOD order_list) (items->nod_arg[j]->nod_desc.dsc_dtype)) || ((nod1->nod_arg[j]->nod_desc.dsc_length) != (items->nod_arg[j]->nod_desc.dsc_length))) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, gds__dsql_command_err, gds_arg_gds, gds__dsql_datatype_err, /* overload of msg */ + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, + gds_arg_gds, gds_dsql_command_err, gds_arg_gds, gds_dsql_datatype_err, /* overload of msg */ 0); /** We look only at the items->nod_arg[] when creating the @@ -3595,13 +3596,13 @@ static NOD pass1_union( REQ request, NOD input, NOD order_list) order1 = *ptr; position = order1->nod_arg[0]; if (position->nod_type != nod_position) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, gds__dsql_command_err, gds_arg_gds, gds__order_by_err, /* invalid ORDER BY clause */ + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, + gds_arg_gds, gds_dsql_command_err, gds_arg_gds, gds_order_by_err, /* invalid ORDER BY clause */ 0); number = (ULONG) position->nod_arg[0]; if (number < 1 || number > union_items->nod_count) - ERRD_post(gds__sqlerr, gds_arg_number, (SLONG) - 104, - gds_arg_gds, gds__dsql_command_err, gds_arg_gds, gds__order_by_err, /* invalid ORDER BY clause */ + ERRD_post(gds_sqlerr, gds_arg_number, (SLONG) - 104, + gds_arg_gds, gds_dsql_command_err, gds_arg_gds, gds_order_by_err, /* invalid ORDER BY clause */ 0); /* make a new order node pointing at the Nth item in the select list */ diff --git a/src/dsql/preparse.cpp b/src/dsql/preparse.cpp index f07e68a128..e640ab77c1 100644 --- a/src/dsql/preparse.cpp +++ b/src/dsql/preparse.cpp @@ -22,10 +22,11 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include #include "../jrd/common.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../dsql/chars.h" #include "../dsql/prepa_proto.h" #include "../dsql/utld_proto.h" diff --git a/src/dsql/user_dsql.cpp b/src/dsql/user_dsql.cpp index 6cf302cf61..4cff104456 100644 --- a/src/dsql/user_dsql.cpp +++ b/src/dsql/user_dsql.cpp @@ -28,6 +28,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../jrd/common.h" @@ -36,7 +37,8 @@ #include "../dsql/chars.h" #include "../dsql/sqlda.h" #include "../jrd/blr.h" -#include "../jrd/codes.h" +#include "gen/codes.h" +#include "gen/iberror.h" #include "../jrd/inf.h" #include "../jrd/align.h" #include "../jrd/gds_proto.h" @@ -1507,7 +1509,7 @@ static NAME insert_name( TEXT * symbol, NAME* list_ptr, STMT stmt) name = (NAME) gds__alloc((SLONG) sizeof(struct name) + l); /* FREE: by exit handler cleanup() or database_cleanup() */ if (!name) /* NOMEM: */ - error_post(gds__virmemexh, 0); + error_post(gds_virmemexh, 0); name->name_stmt = stmt; name->name_length = l; p = name->name_symbol; @@ -1565,13 +1567,13 @@ static STMT lookup_stmt(TEXT* name, NAME list, USHORT type) return found->name_stmt; if (type == NAME_statement) { - error_post(gds__dsql_error, - gds_arg_gds, gds__sqlerr, gds_arg_number, (SLONG) - 518, - gds_arg_gds, gds__dsql_request_err, 0); + error_post(gds_dsql_error, + gds_arg_gds, gds_sqlerr, gds_arg_number, (SLONG) - 518, + gds_arg_gds, gds_dsql_request_err, 0); } else { - error_post(gds__dsql_error, - gds_arg_gds, gds__sqlerr, gds_arg_number, (SLONG) - 504, - gds_arg_gds, gds__dsql_cursor_err, 0); + error_post(gds_dsql_error, + gds_arg_gds, gds_sqlerr, gds_arg_number, (SLONG) - 504, + gds_arg_gds, gds_dsql_cursor_err, 0); } return NULL; } diff --git a/src/dsql/utld.cpp b/src/dsql/utld.cpp index 40bc1423fc..14fa30cde2 100644 --- a/src/dsql/utld.cpp +++ b/src/dsql/utld.cpp @@ -21,15 +21,16 @@ * Contributor(s): ______________________________________. */ /* -$Id: utld.cpp,v 1.1.1.1 2001-05-23 13:25:35 tamlin Exp $ +$Id: utld.cpp,v 1.2 2001-07-29 23:43:21 skywalker Exp $ */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../dsql/dsql.h" #include "../dsql/sqlda.h" #include "../jrd/blr.h" -#include "../jrd/codes.h" +#include "../jrd/gdsold.h" #include "../jrd/inf.h" #include "../jrd/align.h" #include "../dsql/utld_proto.h" @@ -110,7 +111,7 @@ XSQLDA * xsqlda, USHORT * return_index) if (dialect >= DIALECT_xsqlda) { if (xsqlda->version != SQLDA_VERSION1) - return error_dsql_804(status, gds__dsql_sqlda_err); + return error_dsql_804(status, gds_dsql_sqlda_err); xsqlda->sqld = n; /* If necessary, inform the application that more sqlda items are needed */ @@ -132,12 +133,12 @@ XSQLDA * xsqlda, USHORT * return_index) /* Loop over the variables being described. */ - while (*info != gds__info_end) + while (*info != gds_info_end) { - while ((item = *info++) != gds__info_sql_describe_end) + while ((item = *info++) != gds_info_sql_describe_end) switch (item) { - case gds__info_sql_sqlda_seq: + case gds_info_sql_sqlda_seq: index = static_cast(get_numeric_info(&info)); if (xsqlda) xvar = xsqlda->sqlvar + index - 1; @@ -148,54 +149,54 @@ XSQLDA * xsqlda, USHORT * return_index) } break; - case gds__info_sql_type: + case gds_info_sql_type: xvar->sqltype = static_cast(get_numeric_info(&info)); break; - case gds__info_sql_sub_type: + case gds_info_sql_sub_type: xvar->sqlsubtype = static_cast(get_numeric_info(&info)); break; - case gds__info_sql_scale: + case gds_info_sql_scale: xvar->sqlscale = static_cast(get_numeric_info(&info)); break; - case gds__info_sql_length: + case gds_info_sql_length: xvar->sqllen = static_cast(get_numeric_info(&info)); break; - case gds__info_sql_field: + case gds_info_sql_field: xvar->sqlname_length = static_cast(get_string_info(&info, xvar->sqlname, sizeof(xvar->sqlname))); break; - case gds__info_sql_relation: + case gds_info_sql_relation: xvar->relname_length = static_cast(get_string_info(&info, xvar->relname, sizeof(xvar->relname))); break; - case gds__info_sql_owner: + case gds_info_sql_owner: xvar->ownname_length = static_cast(get_string_info(&info, xvar->ownname, sizeof(xvar->ownname))); break; - case gds__info_sql_alias: + case gds_info_sql_alias: xvar->aliasname_length = static_cast (get_string_info (&info, xvar->aliasname, sizeof(xvar->aliasname))); break; - case gds__info_truncated: + case gds_info_truncated: if (return_index) *return_index = last_index; default: - return error_dsql_804(status, gds__dsql_sqlda_err); + return error_dsql_804(status, gds_dsql_sqlda_err); } if (!xsqlda) @@ -205,8 +206,8 @@ XSQLDA * xsqlda, USHORT * return_index) last_index = index; } - if (*info != gds__info_end) - return error_dsql_804(status, gds__dsql_sqlda_err); + if (*info != gds_info_end) + return error_dsql_804(status, gds_dsql_sqlda_err); return SUCCESS; } @@ -249,7 +250,7 @@ STATUS DLL_EXPORT UTLD_parse_sqlda(STATUS * status, if (dialect >= DIALECT_xsqlda) { if (xsqlda->version != SQLDA_VERSION1) - return error_dsql_804(status, gds__dsql_sqlda_err); + return error_dsql_804(status, gds_dsql_sqlda_err); n = xsqlda->sqld; } else @@ -333,7 +334,7 @@ STATUS DLL_EXPORT UTLD_parse_sqlda(STATUS * status, reinterpret_cast(gds__alloc((SLONG) blr_len)); /* FREE: unknown */ if (!dasup->dasup_clauses[clause].dasup_blr) /* NOMEM: */ - return error_dsql_804(status, gds__virmemexh); + return error_dsql_804(status, gds_virmemexh); memset(dasup->dasup_clauses[clause].dasup_blr, 0, blr_len); dasup->dasup_clauses[clause].dasup_blr_buf_len = blr_len; dasup->dasup_clauses[clause].dasup_blr_length = 0; @@ -443,7 +444,7 @@ STATUS DLL_EXPORT UTLD_parse_sqlda(STATUS * status, dtype = dtype_quad; break; default: - return error_dsql_804(status, gds__dsql_sqlda_value_err); + return error_dsql_804(status, gds_dsql_sqlda_value_err); } CH_STUFF(p, blr_short); @@ -473,7 +474,7 @@ STATUS DLL_EXPORT UTLD_parse_sqlda(STATUS * status, reinterpret_cast(gds__alloc((SLONG) msg_len)); /* FREE: unknown */ if (!dasup->dasup_clauses[clause].dasup_msg) /* NOMEM: */ - return error_dsql_804(status, gds__virmemexh); + return error_dsql_804(status, gds_virmemexh); memset(dasup->dasup_clauses[clause].dasup_msg, 0, msg_len); dasup->dasup_clauses[clause].dasup_msg_buf_len = msg_len; } @@ -572,14 +573,14 @@ STATUS DLL_EXPORT UTLD_parse_sqlda(STATUS * status, /* Make sure user has specified a data location */ if (!xvar->sqldata) - return error_dsql_804(status, gds__dsql_sqlda_value_err); + return error_dsql_804(status, gds_dsql_sqlda_value_err); memcpy(xvar->sqldata, msg_buf + offset, len); if (xvar->sqltype & 1) { /* Make sure user has specified a location for null indicator */ if (!xvar->sqlind) - return error_dsql_804(status, gds__dsql_sqlda_value_err); + return error_dsql_804(status, gds_dsql_sqlda_value_err); *xvar->sqlind = *null_ind; } } @@ -593,7 +594,7 @@ STATUS DLL_EXPORT UTLD_parse_sqlda(STATUS * status, { /* Make sure user has specified a location for null indicator */ if (!xvar->sqlind) - return error_dsql_804(status, gds__dsql_sqlda_value_err); + return error_dsql_804(status, gds_dsql_sqlda_value_err); *null_ind = *xvar->sqlind; } else @@ -601,11 +602,11 @@ STATUS DLL_EXPORT UTLD_parse_sqlda(STATUS * status, /* Make sure user has specified a data location (unless NULL) */ if (!xvar->sqldata && !*null_ind) - return error_dsql_804(status, gds__dsql_sqlda_value_err); + return error_dsql_804(status, gds_dsql_sqlda_value_err); /* Copy data - unless known to be NULL */ if ((offset + len) <= sizeof(msg_buf)) - return error_dsql_804(status, gds__dsql_sqlda_value_err); + return error_dsql_804(status, gds_dsql_sqlda_value_err); if (!*null_ind) memcpy(msg_buf + offset, xvar->sqldata, len); } @@ -725,9 +726,9 @@ static STATUS error_dsql_804( STATUS * status, STATUS err) p = status; *p++ = gds_arg_gds; - *p++ = gds__dsql_error; + *p++ = gds_dsql_error; *p++ = gds_arg_gds; - *p++ = gds__sqlerr; + *p++ = gds_sqlerr; *p++ = gds_arg_number; *p++ = -804; *p++ = gds_arg_gds; diff --git a/src/dudley/ddl.cpp b/src/dudley/ddl.cpp index 1837091765..edcd4fb29d 100644 --- a/src/dudley/ddl.cpp +++ b/src/dudley/ddl.cpp @@ -21,12 +21,15 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" + #define DDL_MAIN + #include "../jrd/ib_stdio.h" #include #include #include "../dudley/ddl.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/license.h" #include "../dudley/ddl_proto.h" #include "../dudley/exe_proto.h" diff --git a/src/dudley/exe.epp b/src/dudley/exe.epp index 2b60301f7f..745381c72f 100644 --- a/src/dudley/exe.epp +++ b/src/dudley/exe.epp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include "../dudley/ddl.h" #include "../jrd/license.h" diff --git a/src/dudley/expand.cpp b/src/dudley/expand.cpp index f7f3571631..0318533203 100644 --- a/src/dudley/expand.cpp +++ b/src/dudley/expand.cpp @@ -21,10 +21,11 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include #include "../dudley/ddl.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../dudley/parse.h" #include "../dudley/ddl_proto.h" #include "../dudley/expan_proto.h" diff --git a/src/dudley/expr.cpp b/src/dudley/expr.cpp index 9fe9105300..06dc039c3d 100644 --- a/src/dudley/expr.cpp +++ b/src/dudley/expr.cpp @@ -21,9 +21,10 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../dudley/ddl.h" #include "../dudley/parse.h" #include "../jrd/acl.h" diff --git a/src/dudley/extract.epp b/src/dudley/extract.epp index 91245ae44b..2e92ec838a 100644 --- a/src/dudley/extract.epp +++ b/src/dudley/extract.epp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../jrd/gds.h" diff --git a/src/dudley/generate.cpp b/src/dudley/generate.cpp index 236a09d1d1..8054dc188a 100644 --- a/src/dudley/generate.cpp +++ b/src/dudley/generate.cpp @@ -21,8 +21,9 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../dudley/ddl.h" #include "../jrd/acl.h" #include "../dudley/gener_proto.h" diff --git a/src/dudley/hsh.cpp b/src/dudley/hsh.cpp index ac78348f77..5bc60a13e2 100644 --- a/src/dudley/hsh.cpp +++ b/src/dudley/hsh.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../dudley/ddl.h" #include "../dudley/parse.h" @@ -47,215 +48,219 @@ struct word { enum kwwords id; SCHAR *keyword; } keywords[] = { - KW_OR, "||", - KW_AND, "&&", - KW_GE, ">=", - KW_LE, "<=", - KW_NE, "<>", - KW_NE, "!=", - KW_NE, "~=", - KW_EQ, "==", - KW_GT, ">", - KW_LT, "<", - KW_PERCENT, "%", - KW_EQUALS, "=", - KW_COMMA, ",", - KW_DOT, ".", - KW_L_BRCKET, "[", - KW_LEFT_PAREN, "(", - KW_MINUS, "-", - KW_R_BRCKET, "]", - KW_RIGHT_PAREN, ")", - KW_PLUS, "+", - KW_SEMI, ";", - KW_SLASH, "/", - KW_ASTERISK, "*", - KW_BAR, "|", - KW_COLON, ":", - KW_ABORT, "ABORT", - KW_ACL, "ACL", - KW_ACTIVE, "ACTIVE", - KW_ADD, "ADD", - KW_ALL, "ALL", - KW_ARRAY, "ARRAY", - KW_AT, "AT", - KW_AUTO, "AUTO", - KW_BASED, "BASED", - KW_BASE_NAME, "BASE_NAME", - KW_BEGIN, "BEGIN", - KW_BLOB, "BLOB", - KW_BLR, "BLR", - KW_CACHE, "CACHE", - KW_CASCADE, "CASCADE", - KW_CHAR, "CHAR", - KW_CHECK_POINT_LEN, "CHECK_POINT_LENGTH", - KW_COMPUTED, "COMPUTED_BY", - KW_COMPUTED, "COMPUTED", - KW_CONDITIONAL, "CONDITIONAL", - KW_CONSTRAINT, "CONSTRAINT", - KW_CSTRING, "CSTRING", - KW_DATABASE, "DATABASE", - KW_DATE, "DATE", - KW_DEFINE, "DEFINE", - KW_DEFAULT, "DEFAULT", - KW_DELETE, "DELETE", - KW_DESCRIP, "DESCRIPTION", - KW_DESCRIPTION, "{", - KW_DOUBLE, "DOUBLE", - KW_DROP, "DROP", - KW_DROP, "DELETE", - KW_DUPLICATES, "DUPLICATE", - KW_DUPLICATES, "DUPLICATES", - KW_EDIT_STRING, "EDIT_STRING", - KW_ELSE, "ELSE", - KW_END, "END", - KW_END_DESCRIPTION, "}", - KW_END_FOR, "END_FOR", - KW_END_MODIFY, "END_MODIFY", - KW_END_STORE, "END_STORE", - KW_END_TRIGGER, "END_TRIGGER", - KW_ERASE, "ERASE", - KW_EXIT, "EXIT", - KW_EXTERNAL_FILE, "EXTERNAL_FILE", - KW_FIELD, "FIELD", - KW_FILE, "FILE", - KW_FILTER, "FILTER", - KW_FIXED, "FIXED", - KW_FLOAT, "FLOAT", - KW_FOR, "FOR", - KW_FUNCTION, "FUNCTION", - KW_FUNCTION_ENTRY_POINT, "ENTRY_POINT", - KW_FUNCTION_MODULE_NAME, "MODULE_NAME", - KW_GENERATOR, "GENERATOR", - KW_GRANT, "GRANT", - KW_GROUP, "GROUP", - KW_GROUP_COMMIT_WAIT, "GROUP_COMMIT_WAIT_TIME", - KW_IF, "IF", - KW_INACTIVE, "INACTIVE", - KW_INDEX, "INDEX", - KW_INPUT_TYPE, "INPUT_TYPE", - KW_INSERT, "INSERT", - KW_IS, "IS", - KW_LENGTH, "LENGTH", - KW_LOG_BUF_SIZE, "LOG_BUFFER_SIZE", - KW_LOG_FILE, "LOGFILE", - KW_LONG, "LONG", - KW_MANUAL, "MANUAL", - KW_MESSAGE, "MESSAGE", - KW_MISSING, "MISSING_VALUE", - KW_MISSING, "MISSING", - KW_MODIFY, "MODIFY", - KW_MSGADD, "MSGADD", - KW_MSGDROP, "MSGDROP", - KW_MSGMODIFY, "MSGMODIFY", - KW_NULL, "NULL", - KW_NUM_LOG_BUFS, "NUM_LOG_BUFFERS", - KW_OFFSET, "OFFSET", - KW_ON, "ON", - KW_OPTION, "OPTION", - KW_OUTPUT_TYPE, "OUTPUT_TYPE", - KW_OVERFLOW, "OVERFLOW", - KW_OVERWRITE, "OVERWRITE", - KW_PAGE, "PAGE", - KW_PAGES, "PAGES", - KW_PAGE_NUMBER, "PAGE_NUMBER", - KW_PAGE_SIZE, "PAGE_SIZE", - KW_PARTITIONS, "PARTITIONS", - KW_PASSWORD, "PASSWORD", - KW_POSITION, "POSITION", - KW_POST, "POST", - KW_POST_ERASE, "POST_ERASE", - KW_POST_MODIFY, "POST_MODIFY", - KW_POST_STORE, "POST_STORE", - KW_PRE, "PRE", - KW_PRE_ALLOCATE, "PRE_ALLOCATE", - KW_PRE_ERASE, "PRE_ERASE", - KW_PRE_MODIFY, "PRE_MODIFY", - KW_PRE_STORE, "PRE_STORE", - KW_PRIVILEGES, "PRIVILEGES", - KW_QUAD, "QUAD", - KW_QUERY_NAME, "QUERY_NAME", - KW_QUERY_HEADER, "QUERY_HEADER", - KW_RAW, "RAW", - KW_RAW_PARTITIONS, "RAW_PARTITIONS", - KW_REFERENCE, "REFERENCE", - KW_RELATION, "RELATION", KW_RETURN_ARGUMENT, "RETURN_ARGUMENT", /* function argument return_mode */ - KW_RETURN_VALUE, "RETURN_VALUE", /* function argument return_mode */ - KW_REVOKE, "REVOKE", - KW_SCALAR_ARRAY_DESCRIPTOR, "SCALAR_ARRAY_DESCRIPTOR", - KW_SCALE, "SCALE", - KW_SELECT, "SELECT", - KW_SECURITY_CLASS, "SECURITY_CLASS", - KW_SEGMENT_LENGTH, "SEGMENT_LENGTH", - KW_SET, "SET", - KW_SET_GENERATOR, "SET_GENERATOR", - KW_SHADOW, "SHADOW", - KW_SHORT, "SHORT", - KW_SIZE, "SIZE", - KW_SORTED, "SORTED", - KW_STATISTICS, "STATISTICS", - KW_STORE, "STORE", - KW_SUB_TYPE, "SUB_TYPE", - KW_SYSTEM_FLAG, "SYSTEM_FLAG", - KW_TEXT, "TEXT", - KW_THEN, "THEN", - KW_TO, "TO", - KW_TRIGGER, "TRIGGER", - KW_TYPES, "TYPES", - KW_UPDATE, "UPDATE", - KW_USER, "USER", - KW_USER_NAME, "RDB$USER_NAME", - KW_USING, "USING", - KW_VALID_IF, "VALID_IF", - KW_VALID_IF, "VALID", - KW_VALUE, "VALUE", - KW_VARYING, "VARYING", - KW_VIEW, "VIEW", - KW_AND, "AND", - KW_ANY, "ANY", - KW_ASCENDING, "ASC", - KW_ASCENDING, "ASCENDING", - KW_ASTERISK, "ASTERISK", - KW_AVERAGE, "AVERAGE", - KW_BETWEEN, "BETWEEN", - KW_BY, "BY", - KW_CONTAINING, "CONTAINING", - KW_COUNT, "COUNT", - KW_CROSS, "CROSS", - KW_DESCENDING, "DESC", - KW_DESCENDING, "DESCENDING", - KW_ELSE, "ELSE", - KW_EQ, "EQ", - KW_FIRST, "FIRST", - KW_FROM, "FROM", - KW_GEN_ID, "GEN_ID", - KW_GE, "GE", - KW_GT, "GT", - KW_IN, "IN", - KW_LE, "LE", - KW_LT, "LT", - KW_MATCHES, "MATCHES", - KW_MATCHES, "MATCHING", - KW_MIN, "MIN", - KW_MINUS, "MINUS", - KW_MISSING, "MISSING", - KW_NE, "NE", - KW_NOT, "NOT", - KW_OF, "OF", - KW_OR, "OR", - KW_OVER, "OVER", - KW_QUIT, "QUIT", - KW_REDUCED, "REDUCED", - KW_SLASH, "SLASH", - KW_SORTED, "SORTED", - KW_STARTS, "STARTS", - KW_STARTS, "STARTING", - KW_STARTS, "STARTS_WITH", - KW_STARTS, "STARTING_WITH", - KW_MAX, "MAX", - KW_TO, "TO", - KW_TOTAL, "TOTAL", - KW_UNIQUE, "UNIQUE", KW_UPPERCASE, "UPPERCASE", KW_WITH, "WITH"}; + {KW_OR, "||"}, + {KW_AND, "&&"}, + {KW_GE, ">="}, + {KW_LE, "<="}, + {KW_NE, "<>"}, + {KW_NE, "!="}, + {KW_NE, "~="}, + {KW_EQ, "=="}, + {KW_GT, ">"}, + {KW_LT, "<"}, + {KW_PERCENT, "%"}, + {KW_EQUALS, "="}, + {KW_COMMA, ","}, + {KW_DOT, "."}, + {KW_L_BRCKET, "["}, + {KW_LEFT_PAREN, "("}, + {KW_MINUS, "-"}, + {KW_R_BRCKET, "]"}, + {KW_RIGHT_PAREN, ")"}, + {KW_PLUS, "+"}, + {KW_SEMI, ";"}, + {KW_SLASH, "/"}, + {KW_ASTERISK, "*"}, + {KW_BAR, "|"}, + {KW_COLON, ":"}, + {KW_ABORT, "ABORT"}, + {KW_ACL, "ACL"}, + {KW_ACTIVE, "ACTIVE"}, + {KW_ADD, "ADD"}, + {KW_ALL, "ALL"}, + {KW_ARRAY, "ARRAY"}, + {KW_AT, "AT"}, + {KW_AUTO, "AUTO"}, + {KW_BASED, "BASED"}, + {KW_BASE_NAME, "BASE_NAME"}, + {KW_BEGIN, "BEGIN"}, + {KW_BLOB, "BLOB"}, + {KW_BLR, "BLR"}, + {KW_CACHE, "CACHE"}, + {KW_CASCADE, "CASCADE"}, + {KW_CHAR, "CHAR"}, + {KW_CHECK_POINT_LEN, "CHECK_POINT_LENGTH"}, + {KW_COMPUTED, "COMPUTED_BY"}, + {KW_COMPUTED, "COMPUTED"}, + {KW_CONDITIONAL, "CONDITIONAL"}, + {KW_CONSTRAINT, "CONSTRAINT"}, + {KW_CSTRING, "CSTRING"}, + {KW_DATABASE, "DATABASE"}, + {KW_DATE, "DATE"}, + {KW_DEFINE, "DEFINE"}, + {KW_DEFAULT, "DEFAULT"}, + {KW_DELETE, "DELETE"}, + {KW_DESCRIP, "DESCRIPTION"}, + {KW_DESCRIPTION, "{"}, + {KW_DOUBLE, "DOUBLE"}, + {KW_DROP, "DROP"}, + {KW_DROP, "DELETE"}, + {KW_DUPLICATES, "DUPLICATE"}, + {KW_DUPLICATES, "DUPLICATES"}, + {KW_EDIT_STRING, "EDIT_STRING"}, + {KW_ELSE, "ELSE"}, + {KW_END, "END"}, + {KW_END_DESCRIPTION, "}"}, + {KW_END_FOR, "END_FOR"}, + {KW_END_MODIFY, "END_MODIFY"}, + {KW_END_STORE, "END_STORE"}, + {KW_END_TRIGGER, "END_TRIGGER"}, + {KW_ERASE, "ERASE"}, + {KW_EXIT, "EXIT"}, + {KW_EXTERNAL_FILE, "EXTERNAL_FILE"}, + {KW_FIELD, "FIELD"}, + {KW_FILE, "FILE"}, + {KW_FILTER, "FILTER"}, + {KW_FIXED, "FIXED"}, + {KW_FLOAT, "FLOAT"}, + {KW_FOR, "FOR"}, + {KW_FUNCTION, "FUNCTION"}, + {KW_FUNCTION_ENTRY_POINT, "ENTRY_POINT"}, + {KW_FUNCTION_MODULE_NAME, "MODULE_NAME"}, + {KW_GENERATOR, "GENERATOR"}, + {KW_GRANT, "GRANT"}, + {KW_GROUP, "GROUP"}, + {KW_GROUP_COMMIT_WAIT, "GROUP_COMMIT_WAIT_TIME"}, + {KW_IF, "IF"}, + {KW_INACTIVE, "INACTIVE"}, + {KW_INDEX, "INDEX"}, + {KW_INPUT_TYPE, "INPUT_TYPE"}, + {KW_INSERT, "INSERT"}, + {KW_IS, "IS"}, + {KW_LENGTH, "LENGTH"}, + {KW_LOG_BUF_SIZE, "LOG_BUFFER_SIZE"}, + {KW_LOG_FILE, "LOGFILE"}, + {KW_LONG, "LONG"}, + {KW_MANUAL, "MANUAL"}, + {KW_MESSAGE, "MESSAGE"}, + {KW_MISSING, "MISSING_VALUE"}, + {KW_MISSING, "MISSING"}, + {KW_MODIFY, "MODIFY"}, + {KW_MSGADD, "MSGADD"}, + {KW_MSGDROP, "MSGDROP"}, + {KW_MSGMODIFY, "MSGMODIFY"}, + {KW_NULL, "NULL"}, + {KW_NUM_LOG_BUFS, "NUM_LOG_BUFFERS"}, + {KW_OFFSET, "OFFSET"}, + {KW_ON, "ON"}, + {KW_OPTION, "OPTION"}, + {KW_OUTPUT_TYPE, "OUTPUT_TYPE"}, + {KW_OVERFLOW, "OVERFLOW"}, + {KW_OVERWRITE, "OVERWRITE"}, + {KW_PAGE, "PAGE"}, + {KW_PAGES, "PAGES"}, + {KW_PAGE_NUMBER, "PAGE_NUMBER"}, + {KW_PAGE_SIZE, "PAGE_SIZE"}, + {KW_PARTITIONS, "PARTITIONS"}, + {KW_PASSWORD, "PASSWORD"}, + {KW_POSITION, "POSITION"}, + {KW_POST, "POST"}, + {KW_POST_ERASE, "POST_ERASE"}, + {KW_POST_MODIFY, "POST_MODIFY"}, + {KW_POST_STORE, "POST_STORE"}, + {KW_PRE, "PRE"}, + {KW_PRE_ALLOCATE, "PRE_ALLOCATE"}, + {KW_PRE_ERASE, "PRE_ERASE"}, + {KW_PRE_MODIFY, "PRE_MODIFY"}, + {KW_PRE_STORE, "PRE_STORE"}, + {KW_PRIVILEGES, "PRIVILEGES"}, + {KW_QUAD, "QUAD"}, + {KW_QUERY_NAME, "QUERY_NAME"}, + {KW_QUERY_HEADER, "QUERY_HEADER"}, + {KW_RAW, "RAW"}, + {KW_RAW_PARTITIONS, "RAW_PARTITIONS"}, + {KW_REFERENCE, "REFERENCE"}, + {KW_RELATION, "RELATION"}, + {KW_RETURN_ARGUMENT, "RETURN_ARGUMENT"}, /* function argument return_mode */ + {KW_RETURN_VALUE, "RETURN_VALUE"}, /* function argument return_mode */ + {KW_REVOKE, "REVOKE"}, + {KW_SCALAR_ARRAY_DESCRIPTOR, "SCALAR_ARRAY_DESCRIPTOR"}, + {KW_SCALE, "SCALE"}, + {KW_SELECT, "SELECT"}, + {KW_SECURITY_CLASS, "SECURITY_CLASS"}, + {KW_SEGMENT_LENGTH, "SEGMENT_LENGTH"}, + {KW_SET, "SET"}, + {KW_SET_GENERATOR, "SET_GENERATOR"}, + {KW_SHADOW, "SHADOW"}, + {KW_SHORT, "SHORT"}, + {KW_SIZE, "SIZE"}, + {KW_SORTED, "SORTED"}, + {KW_STATISTICS, "STATISTICS"}, + {KW_STORE, "STORE"}, + {KW_SUB_TYPE, "SUB_TYPE"}, + {KW_SYSTEM_FLAG, "SYSTEM_FLAG"}, + {KW_TEXT, "TEXT"}, + {KW_THEN, "THEN"}, + {KW_TO, "TO"}, + {KW_TRIGGER, "TRIGGER"}, + {KW_TYPES, "TYPES"}, + {KW_UPDATE, "UPDATE"}, + {KW_USER, "USER"}, + {KW_USER_NAME, "RDB$USER_NAME"}, + {KW_USING, "USING"}, + {KW_VALID_IF, "VALID_IF"}, + {KW_VALID_IF, "VALID"}, + {KW_VALUE, "VALUE"}, + {KW_VARYING, "VARYING"}, + {KW_VIEW, "VIEW"}, + {KW_AND, "AND"}, + {KW_ANY, "ANY"}, + {KW_ASCENDING, "ASC"}, + {KW_ASCENDING, "ASCENDING"}, + {KW_ASTERISK, "ASTERISK"}, + {KW_AVERAGE, "AVERAGE"}, + {KW_BETWEEN, "BETWEEN"}, + {KW_BY, "BY"}, + {KW_CONTAINING, "CONTAINING"}, + {KW_COUNT, "COUNT"}, + {KW_CROSS, "CROSS"}, + {KW_DESCENDING, "DESC"}, + {KW_DESCENDING, "DESCENDING"}, + {KW_ELSE, "ELSE"}, + {KW_EQ, "EQ"}, + {KW_FIRST, "FIRST"}, + {KW_FROM, "FROM"}, + {KW_GEN_ID, "GEN_ID"}, + {KW_GE, "GE"}, + {KW_GT, "GT"}, + {KW_IN, "IN"}, + {KW_LE, "LE"}, + {KW_LT, "LT"}, + {KW_MATCHES, "MATCHES"}, + {KW_MATCHES, "MATCHING"}, + {KW_MIN, "MIN"}, + {KW_MINUS, "MINUS"}, + {KW_MISSING, "MISSING"}, + {KW_NE, "NE"}, + {KW_NOT, "NOT"}, + {KW_OF, "OF"}, + {KW_OR, "OR"}, + {KW_OVER, "OVER"}, + {KW_QUIT, "QUIT"}, + {KW_REDUCED, "REDUCED"}, + {KW_SLASH, "SLASH"}, + {KW_SORTED, "SORTED"}, + {KW_STARTS, "STARTS"}, + {KW_STARTS, "STARTING"}, + {KW_STARTS, "STARTS_WITH"}, + {KW_STARTS, "STARTING_WITH"}, + {KW_MAX, "MAX"}, + {KW_TO, "TO"}, + {KW_TOTAL, "TOTAL"}, + {KW_UNIQUE, "UNIQUE"}, + {KW_UPPERCASE, "UPPERCASE"}, + {KW_WITH, "WITH"} +}; #define NUMWORDS (sizeof (keywords) / sizeof (struct word)) diff --git a/src/dudley/lex.cpp b/src/dudley/lex.cpp index e9733546b4..e7aa22877e 100644 --- a/src/dudley/lex.cpp +++ b/src/dudley/lex.cpp @@ -21,11 +21,12 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../dudley/ddl.h" #include "../dudley/parse.h" #include "../jrd/kanji.h" diff --git a/src/dudley/parse.cpp b/src/dudley/parse.cpp index 76dfa44d81..aaa1c86a01 100644 --- a/src/dudley/parse.cpp +++ b/src/dudley/parse.cpp @@ -21,11 +21,12 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include #include #define PARSER_MAIN -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/flags.h" #include "../dudley/ddl.h" #include "../dudley/parse.h" diff --git a/src/dudley/trn.cpp b/src/dudley/trn.cpp index 6adc2043c2..8b94f016b5 100644 --- a/src/dudley/trn.cpp +++ b/src/dudley/trn.cpp @@ -21,9 +21,10 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../dudley/ddl.h" #include "../jrd/license.h" #include "../dudley/gener_proto.h" diff --git a/src/extlib/ib_udf.c b/src/extlib/ib_udf.c index ad333fee80..73b4ee1a7a 100644 --- a/src/extlib/ib_udf.c +++ b/src/extlib/ib_udf.c @@ -19,6 +19,7 @@ * changes to substr and added substrlen * */ +#include "firebird.h" #include #include #include diff --git a/src/extlib/ib_util.c b/src/extlib/ib_util.c index 82adb802ee..d241ceef5d 100644 --- a/src/extlib/ib_util.c +++ b/src/extlib/ib_util.c @@ -16,6 +16,7 @@ * All Rights Reserved. * Contributor(s): ______________________________________. */ +#include "../include/fb_config.h" #include #include "ib_udf.h" diff --git a/src/gpre/ada.cpp b/src/gpre/ada.cpp index 174288563c..03cd4b683a 100644 --- a/src/gpre/ada.cpp +++ b/src/gpre/ada.cpp @@ -24,13 +24,14 @@ // //____________________________________________________________ // -// $Id: ada.cpp,v 1.2 2001-07-12 05:46:04 bellardo Exp $ +// $Id: ada.cpp,v 1.3 2001-07-29 23:43:21 skywalker Exp $ // +#include "firebird.h" #include "../jrd/ib_stdio.h" #include "../jrd/common.h" #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../gpre/gpre.h" #include "../gpre/form.h" #include "../gpre/pat.h" diff --git a/src/gpre/c_cxx.cpp b/src/gpre/c_cxx.cpp index 144613f084..95fec7479c 100644 --- a/src/gpre/c_cxx.cpp +++ b/src/gpre/c_cxx.cpp @@ -25,14 +25,15 @@ // //____________________________________________________________ // -// $Id: c_cxx.cpp,v 1.2 2001-07-12 05:46:04 bellardo Exp $ +// $Id: c_cxx.cpp,v 1.3 2001-07-29 23:43:21 skywalker Exp $ // +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../jrd/common.h" #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "gpre.h" #include "../gpre/form.h" #include "../gpre/pat.h" diff --git a/src/gpre/cmd.cpp b/src/gpre/cmd.cpp index 15b6f0b6e4..2e3412b0e9 100644 --- a/src/gpre/cmd.cpp +++ b/src/gpre/cmd.cpp @@ -25,12 +25,13 @@ // //____________________________________________________________ // -// $Id: cmd.cpp,v 1.2 2001-07-12 05:46:04 bellardo Exp $ +// $Id: cmd.cpp,v 1.3 2001-07-29 23:43:21 skywalker Exp $ // +#include "firebird.h" #include #include "../gpre/gpre.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/flags.h" #include "../jrd/constants.h" #include "../gpre/cmd_proto.h" diff --git a/src/gpre/cme.cpp b/src/gpre/cme.cpp index 127feb5560..bfe194288b 100644 --- a/src/gpre/cme.cpp +++ b/src/gpre/cme.cpp @@ -25,12 +25,13 @@ // //____________________________________________________________ // -// $Id: cme.cpp,v 1.1.1.1 2001-05-23 13:25:31 tamlin Exp $ +// $Id: cme.cpp,v 1.2 2001-07-29 23:43:21 skywalker Exp $ // +#include "firebird.h" #include #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../gpre/gpre.h" #include "../jrd/intl.h" #include "../intl/charsets.h" diff --git a/src/gpre/cmp.cpp b/src/gpre/cmp.cpp index a93e08bcf4..c163b08446 100644 --- a/src/gpre/cmp.cpp +++ b/src/gpre/cmp.cpp @@ -25,12 +25,13 @@ // //____________________________________________________________ // -// $Id: cmp.cpp,v 1.2 2001-07-12 05:46:04 bellardo Exp $ +// $Id: cmp.cpp,v 1.3 2001-07-29 23:43:21 skywalker Exp $ // +#include "firebird.h" #include #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "gpre.h" #include "../gpre/form.h" #include "../jrd/align.h" diff --git a/src/gpre/cob.cpp b/src/gpre/cob.cpp index 10803c796c..c610e0b560 100644 --- a/src/gpre/cob.cpp +++ b/src/gpre/cob.cpp @@ -25,18 +25,19 @@ // //____________________________________________________________ // -// $Id: cob.cpp,v 1.2 2001-07-12 05:46:04 bellardo Exp $ +// $Id: cob.cpp,v 1.3 2001-07-29 23:43:21 skywalker Exp $ // - /* $Id: cob.cpp,v 1.2 2001-07-12 05:46:04 bellardo Exp $ */ + /* $Id: cob.cpp,v 1.3 2001-07-29 23:43:21 skywalker Exp $ */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include "../jrd/common.h" #include #ifdef UNIXWARE #include #endif -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../gpre/gpre.h" #include "../gpre/form.h" #include "../gpre/pat.h" diff --git a/src/gpre/dyntable.cpp b/src/gpre/dyntable.cpp index eff0ba68a1..0bd27ae5df 100644 --- a/src/gpre/dyntable.cpp +++ b/src/gpre/dyntable.cpp @@ -24,11 +24,12 @@ // //____________________________________________________________ // -// $Id: dyntable.cpp,v 1.1.1.1 2001-05-23 13:25:32 tamlin Exp $ +// $Id: dyntable.cpp,v 1.2 2001-07-29 23:43:21 skywalker Exp $ // +#include "firebird.h" #include "../jrd/ib_stdio.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #define NODE(dyn) dyn, "dyn", #ifndef NULL diff --git a/src/gpre/exp.cpp b/src/gpre/exp.cpp index cc0a12d79f..88baca35bd 100644 --- a/src/gpre/exp.cpp +++ b/src/gpre/exp.cpp @@ -25,12 +25,13 @@ // //____________________________________________________________ // -// $Id: exp.cpp,v 1.2 2001-07-12 05:46:04 bellardo Exp $ +// $Id: exp.cpp,v 1.3 2001-07-29 23:43:22 skywalker Exp $ // +#include "firebird.h" #include #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/common.h" #include "../gpre/gpre.h" #include "../gpre/parse.h" diff --git a/src/gpre/form.cpp b/src/gpre/form.cpp index 11da37d538..f8a09ad924 100644 --- a/src/gpre/form.cpp +++ b/src/gpre/form.cpp @@ -20,7 +20,7 @@ // // All Rights Reserved. // Contributor(s): ______________________________________. -// $Id: form.cpp,v 1.2 2001-07-12 05:46:04 bellardo Exp $ +// $Id: form.cpp,v 1.3 2001-07-29 23:43:22 skywalker Exp $ // Revision 1.2 2000/11/27 09:26:13 fsg // Fixed bugs in gpre to handle PYXIS forms // and allow edit.e and fred.e to go through @@ -35,9 +35,10 @@ // //____________________________________________________________ // -// $Id: form.cpp,v 1.2 2001-07-12 05:46:04 bellardo Exp $ +// $Id: form.cpp,v 1.3 2001-07-29 23:43:22 skywalker Exp $ // +#include "firebird.h" #include "../gpre/gpre.h" #include "../gpre/form.h" #include "../pyxis/phase1.h" diff --git a/src/gpre/form_trn.cpp b/src/gpre/form_trn.cpp index 94a5a9da45..1d52ade4d5 100644 --- a/src/gpre/form_trn.cpp +++ b/src/gpre/form_trn.cpp @@ -20,7 +20,7 @@ // // All Rights Reserved. // Contributor(s): ______________________________________. -// $Id: form_trn.cpp,v 1.1.1.1 2001-05-23 13:25:31 tamlin Exp $ +// $Id: form_trn.cpp,v 1.2 2001-07-29 23:43:22 skywalker Exp $ // Revision 1.3 2000/11/29 11:11:56 fsg // Added some more PYXIS datatypes to form_trn.c // @@ -38,11 +38,12 @@ // //____________________________________________________________ // -// $Id: form_trn.cpp,v 1.1.1.1 2001-05-23 13:25:31 tamlin Exp $ +// $Id: form_trn.cpp,v 1.2 2001-07-29 23:43:22 skywalker Exp $ // +#include "firebird.h" #include "../jrd/common.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" // //The datatypes from dsc.h diff --git a/src/gpre/ftn.cpp b/src/gpre/ftn.cpp index 31a3f1e533..d05c42d547 100644 --- a/src/gpre/ftn.cpp +++ b/src/gpre/ftn.cpp @@ -24,13 +24,14 @@ // //____________________________________________________________ // -// $Id: ftn.cpp,v 1.2 2001-07-12 05:46:04 bellardo Exp $ +// $Id: ftn.cpp,v 1.3 2001-07-29 23:43:22 skywalker Exp $ // +#include "firebird.h" #include "../jrd/ib_stdio.h" #include "../jrd/common.h" #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../gpre/gpre.h" #include "../gpre/form.h" #include "../gpre/pat.h" diff --git a/src/gpre/gpre.cpp b/src/gpre/gpre.cpp index f7f41b546a..824ff46307 100644 --- a/src/gpre/gpre.cpp +++ b/src/gpre/gpre.cpp @@ -20,7 +20,7 @@ // // All Rights Reserved. // Contributor(s): ______________________________________. -// $Id: gpre.cpp,v 1.3 2001-07-12 05:46:04 bellardo Exp $ +// $Id: gpre.cpp,v 1.4 2001-07-29 23:43:22 skywalker Exp $ // Revision 1.2 2000/11/16 15:54:29 fsg // Added new switch -verbose to gpre that will dump // parsed lines to stderr @@ -38,11 +38,12 @@ // //____________________________________________________________ // -// $Id: gpre.cpp,v 1.3 2001-07-12 05:46:04 bellardo Exp $ +// $Id: gpre.cpp,v 1.4 2001-07-29 23:43:22 skywalker Exp $ // #define GPRE_MAIN #define PARSER_MAIN +#include "firebird.h" #include #include #include diff --git a/src/gpre/gpre_meta.epp b/src/gpre/gpre_meta.epp index 57431a6723..563859b40d 100644 --- a/src/gpre/gpre_meta.epp +++ b/src/gpre/gpre_meta.epp @@ -26,11 +26,12 @@ * *____________________________________________________________ * - * $Id: gpre_meta.epp,v 1.1 2001-07-12 06:32:02 bellardo Exp $ + * $Id: gpre_meta.epp,v 1.2 2001-07-29 23:43:22 skywalker Exp $ */ +#include "firebird.h" #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../gpre/gpre.h" #include "../jrd/license.h" #include "../gpre/parse.h" @@ -490,7 +491,7 @@ BOOLEAN MET_get_domain_default(DBB dbb, /* open the blob */ stat = isc_open_blob2(status_vect, (void**) &DB, (void**) &gds__trans, (void**) &blob_handle, - blob_id, sizeof(blr_bpb), blr_bpb); + blob_id, sizeof(blr_bpb), const_cast(blr_bpb)); if (stat) { gds__print_status(status_vect); CPR_exit(FINI_ERROR); @@ -599,7 +600,7 @@ BOOLEAN MET_get_column_default(REL relation, /* open the blob */ stat = isc_open_blob2(status_vect, (void**) &DB, (void**) &gds__trans, (void**) &blob_handle, blob_id, sizeof(blr_bpb), - blr_bpb); + const_cast(blr_bpb)); if (stat) { gds__print_status(status_vect); CPR_exit(FINI_ERROR); diff --git a/src/gpre/gpre_meta_boot.cpp b/src/gpre/gpre_meta_boot.cpp index ab0896433a..eca02ae602 100644 --- a/src/gpre/gpre_meta_boot.cpp +++ b/src/gpre/gpre_meta_boot.cpp @@ -26,11 +26,12 @@ * *____________________________________________________________ * - * $Id: gpre_meta_boot.cpp,v 1.1 2001-07-12 06:32:02 bellardo Exp $ + * $Id: gpre_meta_boot.cpp,v 1.2 2001-07-29 23:43:22 skywalker Exp $ */ +#include "firebird.h" #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../gpre/gpre.h" #include "../jrd/license.h" #include "../gpre/parse.h" diff --git a/src/gpre/hsh.cpp b/src/gpre/hsh.cpp index a0a53981aa..7c223c1acc 100644 --- a/src/gpre/hsh.cpp +++ b/src/gpre/hsh.cpp @@ -25,9 +25,10 @@ // //____________________________________________________________ // -// $Id: hsh.cpp,v 1.2 2001-07-12 05:46:04 bellardo Exp $ +// $Id: hsh.cpp,v 1.3 2001-07-29 23:43:22 skywalker Exp $ // +#include "firebird.h" #include "../gpre/gpre.h" #include "../gpre/parse.h" #ifdef JPN_SJIS @@ -53,13 +54,15 @@ static SYM key_symbols; static struct word { SCHAR *keyword; enum kwwords id; -} keywords[] = { +} keywords[] = { #include "../gpre/hsh.h" }; #define NUMWORDS (sizeof (keywords) / sizeof (struct word)) + + //____________________________________________________________ // // Release space used by keywords. @@ -94,6 +97,7 @@ void HSH_init(void) for (ptr = hash_table, i = 0; i < HASH_SIZE; i++) *ptr++ = NULL; + fflush(stdout); for (i = 0, word = keywords; i < NUMWORDS; i++, word++) { for (string = word->keyword; *string; string++); symbol = (SYM) ALLOC(SYM_LEN); diff --git a/src/gpre/hsh.h b/src/gpre/hsh.h index bcda4e3340..3f6bf43da4 100644 --- a/src/gpre/hsh.h +++ b/src/gpre/hsh.h @@ -18,441 +18,449 @@ */ /* Sort this file with "sort -b +1 +0" */ -"ABNORMAL", KW_ABNORMAL, +{"ABNORMAL", KW_ABNORMAL}, #ifdef SCROLLABLE_CURSORS - "ABSOLUTE", KW_ABSOLUTE, + {"ABSOLUTE", KW_ABSOLUTE}, #endif - "ACCEPTING", KW_ACCEPTING, - "ACTION", KW_ACTION, - "ACTIVE", KW_ACTIVE, - "ADD", KW_ADD, - "ALL", KW_ALL, - "ALLOCATION", KW_ALLOCATION, - "ALTER", KW_ALTER, - "&", KW_AMPERSAND, - "&&", KW_AND, - "AND", KW_AND, - "ANY", KW_ANY, - "SOME", KW_ANY, - "ANYCASE", KW_ANYCASE, - "ARE", KW_ARE, - "AS", KW_AS, - "ASC", KW_ASCENDING, - "ASCENDING", KW_ASCENDING, - "*", KW_ASTERISK, - "AT", KW_AT, - "AUTO", KW_AUTO, - "AUTOCOMMIT", KW_AUTOCOMMIT, - "AVERAGE", KW_AVERAGE, - "AVG", KW_AVERAGE, - "\\", KW_BACK_SLASH, - "BASED", KW_BASED, - "BASED_ON", KW_BASED, - "BASE_NAME", KW_BASE_NAME, - "BEGIN", KW_BEGIN, - "BETWEEN", KW_BETWEEN, - "BT", KW_BETWEEN, - "BLOB", KW_BLOB, - "BUFFERCOUNT", KW_BUFFERCOUNT, - "BUFFERS", KW_BUFFERS, - "BUFFERSIZE", KW_BUFFERSIZE, - "BY", KW_BY, - "CACHE", KW_CACHE, - "CANCEL_BLOB", KW_CANCEL_BLOB, - "^", KW_CARAT, - "CASCADE", KW_CASCADE, - "CASE", KW_CASE, - "CASE_MENU", KW_CASE_MENU, - "CAST", KW_CAST, - "CHAR", KW_CHAR, - "CHARACTER", KW_CHAR, - "char", KW_CHAR, - "CHECK", KW_CHECK, - "CHECK_POINT_LENGTH", KW_CHECK_POINT_LEN, - "CLEAR_HANDLES", KW_CLEAR_HANDLES, - "CLOSE", KW_CLOSE, - "CLOSE_BLOB", KW_CLOSE_BLOB, - "COLLATE", KW_COLLATE, - ":", KW_COLON, - ",", KW_COMMA, - "COMMENT", KW_COMMENT, - "COMMIT", KW_COMMIT, - "COMMIT_TRANSACTION", KW_COMMIT, - "COMMIT_TRANSACTIONS", KW_COMMIT, - "COMMITTED", KW_COMMITTED, - "COMPILETIME", KW_COMPILETIME, - "COMPILE_TIME", KW_COMPILETIME, - "COMPUTED", KW_COMPUTED, - "CONCURRENCY", KW_CONCURRENCY, - "CONDITIONAL", KW_CONDITIONAL, - "CONNECT", KW_CONNECT, - "CONSISTENCY", KW_CONSISTENCY, - "CONSTRAINT", KW_CONSTRAINT, - "CONTAINING", KW_CONTAINING, - "CONTINUE", KW_CONTINUE, - "COUNT", KW_COUNT, - "CREATE", KW_CREATE, - "CREATE_BLOB", KW_CREATE_BLOB, - "CREATE_WINDOW", KW_CREATE_WINDOW, - "CROSS", KW_CROSS, - "CSTRING", KW_CSTRING, - "CURRENT", KW_CURRENT, - "CURRENT_DATE", KW_CURRENT_DATE, - "CURRENT_TIME", KW_CURRENT_TIME, - "CURRENT_TIMESTAMP", KW_CURRENT_TIMESTAMP, - "CURSOR", KW_CURSOR, - "DATABASE", KW_DATABASE, - "DATE", KW_DATE, - "DAY", KW_DAY, - "DBA", KW_DBA, - "RDB$DB_KEY", KW_DBKEY, - "--", KW_DEC, - "DEC", KW_DECIMAL, - "DECIMAL", KW_DECIMAL, - "DECLARE", KW_DECLARE, - "DEFAULT", KW_DEFAULT, - "DELETE", KW_DELETE, - "DELETE_WINDOW", KW_DELETE_WINDOW, - "DERIVED_FROM", KW_DERIVED_FROM, - "DESC", KW_DESCENDING, - "DESCENDING", KW_DESCENDING, - "DESCRIBE", KW_DESCRIBE, - "DESCRIPTOR", KW_DESCRIPTOR, - "DIALECT", KW_DIALECT, - "DISCONNECT", KW_DISCONNECT, - "DISPLAY", KW_DISPLAY, - "DISPLAYING", KW_DISPLAYING, - "DISTINCT", KW_DISTINCT, - ".", KW_DOT, - "..", KW_DOT_DOT, - "DOMAIN", KW_DOMAIN, - "DOUBLE", KW_DOUBLE, - "double", KW_DOUBLE, - "DROP", KW_DROP, - "ELEMENT", KW_ELEMENT, - "ELSE", KW_ELSE, - "else", KW_ELSE, - "END", KW_END, - "END_ERROR", KW_END_ERROR, - "END-EXEC", KW_END_EXEC, - "END_EXEC", KW_END_EXEC, - "END_FETCH", KW_END_FETCH, - "END_FOR", KW_END_FOR, - "END_FORM", KW_END_FORM, - "END_ITEM", KW_END_ITEM, - "END_MENU", KW_END_MENU, - "END_MODIFY", KW_END_MODIFY, - "END_STORE", KW_END_STORE, - "END_STREAM", KW_END_STREAM, - "ENTREE_LENGTH", KW_ENTREE_LENGTH, - "ENTREE_TEXT", KW_ENTREE_TEXT, - "ENTREE_VALUE", KW_ENTREE_VALUE, - "ENTRY_POINT", KW_ENTRY_POINT, - "==", KW_EQ, - "EQ", KW_EQ, - "=", KW_EQUALS, - "ERASE", KW_ERASE, - "ERROR", KW_ERROR, - "ESCAPE", KW_ESCAPE, - "EVENT", KW_EVENT, - "EVENT_INIT", KW_EVENT_INIT, - "EVENT_WAIT", KW_EVENT_WAIT, - "EXACTCASE", KW_EXACTCASE, - "EXCLUSIVE", KW_EXCLUSIVE, - "EXEC", KW_EXEC, - "EXECUTE", KW_EXECUTE, - "EXISTS", KW_EXISTS, - "EXTERN", KW_EXTERN, - "EXTERNAL", KW_EXTERNAL, - "EXTRACT", KW_EXTRACT, - "FETCH", KW_FETCH, - "FILE", KW_FILE, - "FILENAME", KW_FILENAME, - "FILTER", KW_FILTER, - "FINISH", KW_FINISH, - "FINISH_DATABASE", KW_FINISH, - "FIRST", KW_FIRST, - "FLOAT", KW_FLOAT, - "float", KW_FLOAT, - "FOR", KW_FOR, - "FOREIGN", KW_FOREIGN, - "FORM", KW_FORM, - "FORM_HANDLE", KW_FORM_HANDLE, - "FORWARD", KW_FORWARD, - "FOR_FORM", KW_FOR_FORM, - "FOR_ITEM", KW_FOR_ITEM, - "FOR_MENU", KW_FOR_MENU, - "FOUND", KW_FOUND, - "FROM", KW_FROM, - "FULL", KW_FULL, - "FUNCTION", KW_FUNCTION, - "WINDOW_SCOPE", KW_GDS_WINDOWS, - ">=", KW_GE, - "GE", KW_GE, - "^<", KW_GE, - "!<", KW_GE, - "~<", KW_GE, - "GEN_ID", KW_GEN_ID, - "GENERATOR", KW_GENERATOR, - "GET_SEGMENT", KW_GET_SEGMENT, - "GET_SLICE", KW_GET_SLICE, - "GLOBAL", KW_GLOBAL, - "GO", KW_GO, - "GOTO", KW_GOTO, - "GRANT", KW_GRANT, - "GROUP", KW_GROUP, - "GROUP_COMMIT_WAIT_TIME", KW_GROUP_COMMIT_WAIT, - ">", KW_GT, - "GT", KW_GT, - "HANDLES", KW_HANDLES, - "HAVING", KW_HAVING, - "HEIGHT", KW_HEIGHT, - "HORIZONTAL", KW_HORIZONTAL, - "HOUR", KW_HOUR, - "IMMEDIATE", KW_IMMEDIATE, - "IN", KW_IN, - "INACTIVE", KW_INACTIVE, - "INIT", KW_INIT, - "++", KW_INC, - "INCLUDE", KW_INCLUDE, - "INDEX", KW_INDEX, - "INDICATOR", KW_INDICATOR, - "INNER", KW_INNER, - "INPUT", KW_INPUT, - "INPUT_TYPE", KW_INPUT_TYPE, - "INSERT", KW_INSERT, - "INT", KW_INT, - "int", KW_INT, - "INTEGER", KW_INTEGER, - "INTERNAL", KW_INTERNAL, - "INTO", KW_INTO, - "IS", KW_IS, - "ISO", KW_ISOLATION, - "ISOLATION", KW_ISOLATION, "JOIN", KW_JOIN, "KEY", KW_KEY, + {"ACCEPTING", KW_ACCEPTING}, + {"ACTION", KW_ACTION}, + {"ACTIVE", KW_ACTIVE}, + {"ADD", KW_ADD}, + {"ALL", KW_ALL}, + {"ALLOCATION", KW_ALLOCATION}, + {"ALTER", KW_ALTER}, + {"&", KW_AMPERSAND}, + {"&&", KW_AND}, + {"AND", KW_AND}, + {"ANY", KW_ANY}, + {"SOME", KW_ANY}, + {"ANYCASE", KW_ANYCASE}, + {"ARE", KW_ARE}, + {"AS", KW_AS}, + {"ASC", KW_ASCENDING}, + {"ASCENDING", KW_ASCENDING}, + {"*", KW_ASTERISK}, + {"AT", KW_AT}, + {"AUTO", KW_AUTO}, + {"AUTOCOMMIT", KW_AUTOCOMMIT}, + {"AVERAGE", KW_AVERAGE}, + {"AVG", KW_AVERAGE}, + {"\\", KW_BACK_SLASH}, + {"BASED", KW_BASED}, + {"BASED_ON", KW_BASED}, + {"BASE_NAME", KW_BASE_NAME}, + {"BEGIN", KW_BEGIN}, + {"BETWEEN", KW_BETWEEN}, + {"BT", KW_BETWEEN}, + {"BLOB", KW_BLOB}, + {"BUFFERCOUNT", KW_BUFFERCOUNT}, + {"BUFFERS", KW_BUFFERS}, + {"BUFFERSIZE", KW_BUFFERSIZE}, + {"BY", KW_BY}, + {"CACHE", KW_CACHE}, + {"CANCEL_BLOB", KW_CANCEL_BLOB}, + {"^", KW_CARAT}, + {"CASCADE", KW_CASCADE}, + {"CASE", KW_CASE}, + {"CASE_MENU", KW_CASE_MENU}, + {"CAST", KW_CAST}, + {"CHAR", KW_CHAR}, + {"CHARACTER", KW_CHAR}, + {"char", KW_CHAR}, + {"CHECK", KW_CHECK}, + {"CHECK_POINT_LENGTH", KW_CHECK_POINT_LEN}, + {"CLEAR_HANDLES", KW_CLEAR_HANDLES}, + {"CLOSE", KW_CLOSE}, + {"CLOSE_BLOB", KW_CLOSE_BLOB}, + {"COLLATE", KW_COLLATE}, + {":", KW_COLON}, + {",", KW_COMMA}, + {"COMMENT", KW_COMMENT}, + {"COMMIT", KW_COMMIT}, + {"COMMIT_TRANSACTION", KW_COMMIT}, + {"COMMIT_TRANSACTIONS", KW_COMMIT}, + {"COMMITTED", KW_COMMITTED}, + {"COMPILETIME", KW_COMPILETIME}, + {"COMPILE_TIME", KW_COMPILETIME}, + {"COMPUTED", KW_COMPUTED}, + {"CONCURRENCY", KW_CONCURRENCY}, + {"CONDITIONAL", KW_CONDITIONAL}, + {"CONNECT", KW_CONNECT}, + {"CONSISTENCY", KW_CONSISTENCY}, + {"CONSTRAINT", KW_CONSTRAINT}, + {"CONTAINING", KW_CONTAINING}, + {"CONTINUE", KW_CONTINUE}, + {"COUNT", KW_COUNT}, + {"CREATE", KW_CREATE}, + {"CREATE_BLOB", KW_CREATE_BLOB}, + {"CREATE_WINDOW", KW_CREATE_WINDOW}, + {"CROSS", KW_CROSS}, + {"CSTRING", KW_CSTRING}, + {"CURRENT", KW_CURRENT}, + {"CURRENT_DATE", KW_CURRENT_DATE}, + {"CURRENT_TIME", KW_CURRENT_TIME}, + {"CURRENT_TIMESTAMP", KW_CURRENT_TIMESTAMP}, + {"CURSOR", KW_CURSOR}, + {"DATABASE", KW_DATABASE}, + {"DATE", KW_DATE}, + {"DAY", KW_DAY}, + {"DBA", KW_DBA}, + {"RDB$DB_KEY", KW_DBKEY}, + {"--", KW_DEC}, + {"DEC", KW_DECIMAL}, + {"DECIMAL", KW_DECIMAL}, + {"DECLARE", KW_DECLARE}, + {"DEFAULT", KW_DEFAULT}, + {"DELETE", KW_DELETE}, + {"DELETE_WINDOW", KW_DELETE_WINDOW}, + {"DERIVED_FROM", KW_DERIVED_FROM}, + {"DESC", KW_DESCENDING}, + {"DESCENDING", KW_DESCENDING}, + {"DESCRIBE", KW_DESCRIBE}, + {"DESCRIPTOR", KW_DESCRIPTOR}, + {"DIALECT", KW_DIALECT}, + {"DISCONNECT", KW_DISCONNECT}, + {"DISPLAY", KW_DISPLAY}, + {"DISPLAYING", KW_DISPLAYING}, + {"DISTINCT", KW_DISTINCT}, + {".", KW_DOT}, + {"..", KW_DOT_DOT}, + {"DOMAIN", KW_DOMAIN}, + {"DOUBLE", KW_DOUBLE}, + {"double", KW_DOUBLE}, + {"DROP", KW_DROP}, + {"ELEMENT", KW_ELEMENT}, + {"ELSE", KW_ELSE}, + {"else", KW_ELSE}, + {"END", KW_END}, + {"END_ERROR", KW_END_ERROR}, + {"END-EXEC", KW_END_EXEC}, + {"END_EXEC", KW_END_EXEC}, + {"END_FETCH", KW_END_FETCH}, + {"END_FOR", KW_END_FOR}, + {"END_FORM", KW_END_FORM}, + {"END_ITEM", KW_END_ITEM}, + {"END_MENU", KW_END_MENU}, + {"END_MODIFY", KW_END_MODIFY}, + {"END_STORE", KW_END_STORE}, + {"END_STREAM", KW_END_STREAM}, + {"ENTREE_LENGTH", KW_ENTREE_LENGTH}, + {"ENTREE_TEXT", KW_ENTREE_TEXT}, + {"ENTREE_VALUE", KW_ENTREE_VALUE}, + {"ENTRY_POINT", KW_ENTRY_POINT}, + {"==", KW_EQ}, + {"EQ", KW_EQ}, + {"=", KW_EQUALS}, + {"ERASE", KW_ERASE}, + {"ERROR", KW_ERROR}, + {"ESCAPE", KW_ESCAPE}, + {"EVENT", KW_EVENT}, + {"EVENT_INIT", KW_EVENT_INIT}, + {"EVENT_WAIT", KW_EVENT_WAIT}, + {"EXACTCASE", KW_EXACTCASE}, + {"EXCLUSIVE", KW_EXCLUSIVE}, + {"EXEC", KW_EXEC}, + {"EXECUTE", KW_EXECUTE}, + {"EXISTS", KW_EXISTS}, + {"EXTERN", KW_EXTERN}, + {"EXTERNAL", KW_EXTERNAL}, + {"EXTRACT", KW_EXTRACT}, + {"FETCH", KW_FETCH}, + {"FILE", KW_FILE}, + {"FILENAME", KW_FILENAME}, + {"FILTER", KW_FILTER}, + {"FINISH", KW_FINISH}, + {"FINISH_DATABASE", KW_FINISH}, + {"FIRST", KW_FIRST}, + {"FLOAT", KW_FLOAT}, + {"float", KW_FLOAT}, + {"FOR", KW_FOR}, + {"FOREIGN", KW_FOREIGN}, + {"FORM", KW_FORM}, + {"FORM_HANDLE", KW_FORM_HANDLE}, + {"FORWARD", KW_FORWARD}, + {"FOR_FORM", KW_FOR_FORM}, + {"FOR_ITEM", KW_FOR_ITEM}, + {"FOR_MENU", KW_FOR_MENU}, + {"FOUND", KW_FOUND}, + {"FROM", KW_FROM}, + {"FULL", KW_FULL}, + {"FUNCTION", KW_FUNCTION}, + {"WINDOW_SCOPE", KW_GDS_WINDOWS}, + {">=", KW_GE}, + {"GE", KW_GE}, + {"^<", KW_GE}, + {"!<", KW_GE}, + {"~<", KW_GE}, + {"GEN_ID", KW_GEN_ID}, + {"GENERATOR", KW_GENERATOR}, + {"GET_SEGMENT", KW_GET_SEGMENT}, + {"GET_SLICE", KW_GET_SLICE}, + {"GLOBAL", KW_GLOBAL}, + {"GO", KW_GO}, + {"GOTO", KW_GOTO}, + {"GRANT", KW_GRANT}, + {"GROUP", KW_GROUP}, + {"GROUP_COMMIT_WAIT_TIME", KW_GROUP_COMMIT_WAIT}, + {">", KW_GT}, + {"GT", KW_GT}, + {"HANDLES", KW_HANDLES}, + {"HAVING", KW_HAVING}, + {"HEIGHT", KW_HEIGHT}, + {"HORIZONTAL", KW_HORIZONTAL}, + {"HOUR", KW_HOUR}, + {"IMMEDIATE", KW_IMMEDIATE}, + {"IN", KW_IN}, + {"INACTIVE", KW_INACTIVE}, + {"INIT", KW_INIT}, + {"++", KW_INC}, + {"INCLUDE", KW_INCLUDE}, + {"INDEX", KW_INDEX}, + {"INDICATOR", KW_INDICATOR}, + {"INNER", KW_INNER}, + {"INPUT", KW_INPUT}, + {"INPUT_TYPE", KW_INPUT_TYPE}, + {"INSERT", KW_INSERT}, + {"INT", KW_INT}, + {"int", KW_INT}, + {"INTEGER", KW_INTEGER}, + {"INTERNAL", KW_INTERNAL}, + {"INTO", KW_INTO}, + {"IS", KW_IS}, + {"ISO", KW_ISOLATION}, + {"ISOLATION", KW_ISOLATION}, + {"JOIN", KW_JOIN}, + {"KEY", KW_KEY}, #ifdef SCROLLABLE_CURSORS - "LAST", KW_LAST, + {"LAST", KW_LAST}, #endif - "LC_CTYPE", KW_LC_CTYPE, - "LC_MESSAGES", KW_LC_MESSAGES, - "<=", KW_LE, - "LE", KW_LE, - "^>", KW_LE, - "~>", KW_LE, - "!>", KW_LE, - "LEFT", KW_LEFT, - "(", KW_LEFT_PAREN, - "LENGTH", KW_LENGTH, - "LEVEL", KW_LEVEL, - "LIKE", KW_LIKE, - "LOCK", KW_LOCK, - "LOG_BUFFER_SIZE", KW_LOG_BUF_SIZE, - "LOGFILE", KW_LOG_FILE, - "LONG", KW_LONG, - "long", KW_LONG, - "<", KW_LT, - "LT", KW_LT, - "{", KW_L_BRACE, - "[", KW_L_BRCKET, - "MAIN", KW_MAIN, - "MANUAL", KW_MANUAL, - "MATCHES", KW_MATCHES, - "MATCHING", KW_MATCHES, - "MAX", KW_MAX, - "MAXIMUM_SEGMENT", KW_MAX_SEGMENT, - "MENU_ENTREE", KW_MENU_ENTREE, - "MENU_HANDLE", KW_MENU_HANDLE, - "MERGE", KW_MERGE, - "MIN", KW_MIN, - "MINUTE", KW_MINUTE, - "-", KW_MINUS, - "MISSING", KW_MISSING, - "MODIFY", KW_MODIFY, - "MODULE_NAME", KW_MODULE_NAME, - "MONTH", KW_MONTH, - "NAME", KW_NAME, - "NAMES", KW_NAMES, - "NATIONAL", KW_NATIONAL, - "NATURAL", KW_NATURAL, - "NCHAR", KW_NCHAR, - "!=", KW_NE, "<>", KW_NE, "NE", KW_NE, "^=", KW_NE, "~=", KW_NE, + {"LC_CTYPE", KW_LC_CTYPE}, + {"LC_MESSAGES", KW_LC_MESSAGES}, + {"<=", KW_LE}, + {"LE", KW_LE}, + {"^>", KW_LE}, + {"~>", KW_LE}, + {"!>", KW_LE}, + {"LEFT", KW_LEFT}, + {"(", KW_LEFT_PAREN}, + {"LENGTH", KW_LENGTH}, + {"LEVEL", KW_LEVEL}, + {"LIKE", KW_LIKE}, + {"LOCK", KW_LOCK}, + {"LOG_BUFFER_SIZE", KW_LOG_BUF_SIZE}, + {"LOGFILE", KW_LOG_FILE}, + {"LONG", KW_LONG}, + {"long", KW_LONG}, + {"<", KW_LT}, + {"LT", KW_LT}, + {"{", KW_L_BRACE}, + {"[", KW_L_BRCKET}, + {"MAIN", KW_MAIN}, + {"MANUAL", KW_MANUAL}, + {"MATCHES", KW_MATCHES}, + {"MATCHING", KW_MATCHES}, + {"MAX", KW_MAX}, + {"MAXIMUM_SEGMENT", KW_MAX_SEGMENT}, + {"MENU_ENTREE", KW_MENU_ENTREE}, + {"MENU_HANDLE", KW_MENU_HANDLE}, + {"MERGE", KW_MERGE}, + {"MIN", KW_MIN}, + {"MINUTE", KW_MINUTE}, + {"-", KW_MINUS}, + {"MISSING", KW_MISSING}, + {"MODIFY", KW_MODIFY}, + {"MODULE_NAME", KW_MODULE_NAME}, + {"MONTH", KW_MONTH}, + {"NAME", KW_NAME}, + {"NAMES", KW_NAMES}, + {"NATIONAL", KW_NATIONAL}, + {"NATURAL", KW_NATURAL}, + {"NCHAR", KW_NCHAR}, + {"!=", KW_NE}, {"<>", KW_NE}, {"NE", KW_NE}, {"^=", KW_NE}, {"~=", KW_NE}, #ifdef SCROLLABLE_CURSORS - "NEXT", KW_NEXT, + {"NEXT", KW_NEXT}, #endif - "NO", KW_NO, - "NOT", KW_NOT, - "NO_AUTO_UNDO", KW_NO_AUTO_UNDO, - "NOWAIT", KW_NO_WAIT, - "NO_WAIT", KW_NO_WAIT, - "NO_WAIT", KW_NO_WAIT, - "NULL", KW_NULL, - "NUMERIC", KW_NUMERIC, - "NUM_LOG_BUFFERS", KW_NUM_LOG_BUFS, - "OF", KW_OF, - "ON", KW_ON, - "ON_ERROR", KW_ON_ERROR, - "ONLY", KW_ONLY, - "OPAQUE", KW_OPAQUE, - "OPEN", KW_OPEN, - "OPEN_BLOB", KW_OPEN_BLOB, - "OPTION", KW_OPTION, - "OPTIONS", KW_OPTIONS, - "OR", KW_OR, - "||", KW_OR1, - "ORDER", KW_ORDER, - "OUTER", KW_OUTER, - "OUTPUT", KW_OUTPUT, - "OUTPUT_TYPE", KW_OUTPUT_TYPE, - "OVER", KW_OVER, - "OVERFLOW", KW_OVERFLOW, - "OVERRIDING", KW_OVERRIDING, - "PAGE", KW_PAGE, - "PAGES", KW_PAGES, - "PAGESIZE", KW_PAGESIZE, - "PAGE_SIZE", KW_PAGE_SIZE, - "PARAMETER", KW_PARAMETER, - "PASSWORD", KW_PASSWORD, - "PATHNAME", KW_PATHNAME, - "+", KW_PLUS, - "->", KW_POINTS, - "PLAN", KW_PLAN, - "PRECISION", KW_PRECISION, - "precision", KW_PRECISION, - "PREPARE", KW_PREPARE, - "PREPARE_TRANSACTION", KW_PREPARE, "PRIMARY", KW_PRIMARY, + {"NO", KW_NO}, + {"NOT", KW_NOT}, + {"NO_AUTO_UNDO", KW_NO_AUTO_UNDO}, + {"NOWAIT", KW_NO_WAIT}, + {"NO_WAIT", KW_NO_WAIT}, + {"NO_WAIT", KW_NO_WAIT}, + {"NULL", KW_NULL}, + {"NUMERIC", KW_NUMERIC}, + {"NUM_LOG_BUFFERS", KW_NUM_LOG_BUFS}, + {"OF", KW_OF}, + {"ON", KW_ON}, + {"ON_ERROR", KW_ON_ERROR}, + {"ONLY", KW_ONLY}, + {"OPAQUE", KW_OPAQUE}, + {"OPEN", KW_OPEN}, + {"OPEN_BLOB", KW_OPEN_BLOB}, + {"OPTION", KW_OPTION}, + {"OPTIONS", KW_OPTIONS}, + {"OR", KW_OR}, + {"||", KW_OR1}, + {"ORDER", KW_ORDER}, + {"OUTER", KW_OUTER}, + {"OUTPUT", KW_OUTPUT}, + {"OUTPUT_TYPE", KW_OUTPUT_TYPE}, + {"OVER", KW_OVER}, + {"OVERFLOW", KW_OVERFLOW}, + {"OVERRIDING", KW_OVERRIDING}, + {"PAGE", KW_PAGE}, + {"PAGES", KW_PAGES}, + {"PAGESIZE", KW_PAGESIZE}, + {"PAGE_SIZE", KW_PAGE_SIZE}, + {"PARAMETER", KW_PARAMETER}, + {"PASSWORD", KW_PASSWORD}, + {"PATHNAME", KW_PATHNAME}, + {"+", KW_PLUS}, + {"->", KW_POINTS}, + {"PLAN", KW_PLAN}, + {"PRECISION", KW_PRECISION}, + {"precision", KW_PRECISION}, + {"PREPARE", KW_PREPARE}, + {"PREPARE_TRANSACTION",KW_PREPARE}, + {"PRIMARY", KW_PRIMARY}, #ifdef SCROLLABLE_CURSORS - "PRIOR", KW_PRIOR, + {"PRIOR", KW_PRIOR}, #endif - "PRIVILEGES", KW_PRIVILEGES, - "PROC", KW_PROC, - "PROCEDURE", KW_PROCEDURE, - "PROTECTED", KW_PROTECTED, - "PUBLIC", KW_PUBLIC, - "PUT_ITEM", KW_PUT_ITEM, - "PUT_SEGMENT", KW_PUT_SEGMENT, - "PUT_SLICE", KW_PUT_SLICE, - "QUADWORD", KW_QUAD, - "RAW_PARTITIONS", KW_RAW_PARTITIONS, - "READ", KW_READ, - "READ_COMMITTED", KW_READ_COMMITTED, - "READY", KW_READY, - "READY_DATABASE", KW_READY, - "READ_ONLY", KW_READ_ONLY, - "READ_WRITE", KW_READ_WRITE, - "REAL", KW_REAL, - "RECORD_VERSION", KW_VERSION, - "REDUCED", KW_REDUCED, "REFERENCES", KW_REFERENCES, + {"PRIVILEGES", KW_PRIVILEGES}, + {"PROC", KW_PROC}, + {"PROCEDURE", KW_PROCEDURE}, + {"PROTECTED", KW_PROTECTED}, + {"PUBLIC", KW_PUBLIC}, + {"PUT_ITEM", KW_PUT_ITEM}, + {"PUT_SEGMENT", KW_PUT_SEGMENT}, + {"PUT_SLICE", KW_PUT_SLICE}, + {"QUADWORD", KW_QUAD}, + {"RAW_PARTITIONS", KW_RAW_PARTITIONS}, + {"READ", KW_READ}, + {"READ_COMMITTED", KW_READ_COMMITTED}, + {"READY", KW_READY}, + {"READY_DATABASE", KW_READY}, + {"READ_ONLY", KW_READ_ONLY}, + {"READ_WRITE", KW_READ_WRITE}, + {"REAL", KW_REAL}, + {"RECORD_VERSION", KW_VERSION}, + {"REDUCED", KW_REDUCED}, + {"REFERENCES", KW_REFERENCES}, #ifdef SCROLLABLE_CURSORS - "RELATIVE", KW_RELATIVE, + {"RELATIVE", KW_RELATIVE}, #endif - "RELEASE", KW_RELEASE, - "RELEASE_REQUESTS", KW_RELEASE_REQUESTS, - "REM", KW_REM, - "REQUEST_HANDLE", KW_REQUEST_HANDLE, - "RESERVING", KW_RESERVING, - "RESOURCE", KW_RESOURCE, - "RESTRICT", KW_RESTRICT, - "RETAIN", KW_RETAIN, - "RETURNING_VALUES", KW_RETURNING, - "RETURNS", KW_RETURNS, - "REVOKE", KW_REVOKE, - "RIGHT", KW_RIGHT, - ")", KW_RIGHT_PAREN, - "ROLE", KW_ROLE, - "ROLLBACK", KW_ROLLBACK, - "ROLLBACK_TRANSACTION", KW_ROLLBACK, - "^FUNCTION", KW_ROUTINE_PTR, - "^PROCEDURE", KW_ROUTINE_PTR, - "RUN", KW_RUN, - "RUNTIME", KW_RUNTIME, - "}", KW_R_BRACE, - "]", KW_R_BRCKET, - "SAVE", KW_SAVE, - "SAVE_TRANSACTION", KW_SAVE, - "SAVE_TRANSACTIONS", KW_SAVE, - "SCALE", KW_SCALE, "SCHEDULE", KW_SCHEDULE, "SCHEMA", KW_SCHEMA, + {"RELEASE", KW_RELEASE}, + {"RELEASE_REQUESTS", KW_RELEASE_REQUESTS}, + {"REM", KW_REM}, + {"REQUEST_HANDLE", KW_REQUEST_HANDLE}, + {"RESERVING", KW_RESERVING}, + {"RESOURCE", KW_RESOURCE}, + {"RESTRICT", KW_RESTRICT}, + {"RETAIN", KW_RETAIN}, + {"RETURNING_VALUES", KW_RETURNING}, + {"RETURNS", KW_RETURNS}, + {"REVOKE", KW_REVOKE}, + {"RIGHT", KW_RIGHT}, + {")", KW_RIGHT_PAREN}, + {"ROLE", KW_ROLE}, + {"ROLLBACK", KW_ROLLBACK}, + {"ROLLBACK_TRANSACTION", KW_ROLLBACK}, + {"^FUNCTION", KW_ROUTINE_PTR}, + {"^PROCEDURE", KW_ROUTINE_PTR}, + {"RUN", KW_RUN}, + {"RUNTIME", KW_RUNTIME}, + {"}", KW_R_BRACE}, + {"]", KW_R_BRCKET}, + {"SAVE", KW_SAVE}, + {"SAVE_TRANSACTION", KW_SAVE}, + {"SAVE_TRANSACTIONS", KW_SAVE}, + {"SCALE", KW_SCALE}, + {"SCHEDULE", KW_SCHEDULE}, + {"SCHEMA", KW_SCHEMA}, #ifdef SCROLLABLE_CURSORS - "SCROLL", KW_SCROLL, + {"SCROLL", KW_SCROLL}, #endif - "SECTION", KW_SECTION, - "SECOND", KW_SECOND, - "SEGMENT", KW_SEGMENT, - "SELECT", KW_SELECT, - ";", KW_SEMI_COLON, - "SET", KW_SET, - "SHARED", KW_SHARED, - "SHADOW", KW_SHADOW, - "SHORT", KW_SHORT, - "short", KW_SHORT, - "SINGULAR", KW_SINGULAR, - "SIZE", KW_SIZE, - "/", KW_SLASH, - "SMALLINT", KW_SMALLINT, - "SNAPSHOT", KW_SNAPSHOT, - "SORT", KW_SORT, - "SORTED", KW_SORTED, - "SQL", KW_SQL, - "SQLERROR", KW_SQLERROR, - "SQLWARNING", KW_SQLWARNING, - "STABILITY", KW_STABILITY, - "STARTING", KW_STARTING, - "STARTING_WITH", KW_STARTING_WITH, - "STARTS", KW_STARTS, - "START_STREAM", KW_START_STREAM, - "START_TRANSACTION", KW_START_TRANSACTION, - "STATE", KW_STATE, - "STATEMENT", KW_STATEMENT, - "STATIC", KW_STATIC, - "STATISTICS", KW_STATISTICS, - "STOGROUP", KW_STOGROUP, - "STORE", KW_STORE, - "STREAM", KW_STREAM, - "STRING", KW_STRING, - "SUB", KW_SUB, - "SUB_TYPE", KW_SUB_TYPE, - "SUBROUTINE", KW_SUBROUTINE, - "SUM", KW_SUM, - "SUSPEND_WINDOW", KW_SUSPEND_WINDOW, - "SYNONYM", KW_SYNONYM, - "TABLE", KW_TABLE, - "TABLESPACE", KW_TABLESPACE, - "TAG", KW_TAG, - "TERMINATING_FIELD", KW_TERMINATING_FIELD, - "TERMINATOR", KW_TERMINATOR, - "TIME", KW_TIME, - "TIMESTAMP", KW_TIMESTAMP, - "TITLE_LENGTH", KW_TITLE_LENGTH, - "TITLE_TEXT", KW_TITLE_TEXT, - "TO", KW_TO, - "TOTAL", KW_TOTAL, - "TRANSACTION", KW_TRANSACTION, - "TRANSACTION_HANDLE", KW_TRANSACTION_HANDLE, - "TRANSPARENT", KW_TRANSPARENT, - "TRIGGER", KW_TRIGGER, - "UNCOMMITTED", KW_UNCOMMITTED, - "UNION", KW_UNION, - "UNIQUE", KW_UNIQUE, - "UPDATE", KW_UPDATE, - "UPPER", KW_UPPER, - "UPPERCASE", KW_UPPERCASE, - "USER", KW_USER, - "USERS", KW_USERS, - "RDB$USER_NAME", KW_USER_NAME, - "USING", KW_USING, - "VALUE", KW_VALUE, - "VALUES", KW_VALUES, - "VAL_PARAM", KW_VAL_PARAM, - "VARCHAR", KW_VARCHAR, - "VARIABLE", KW_VARIABLE, - "VARYING", KW_VARYING, - "VERTICAL", KW_VERTICAL, - "VIEW", KW_VIEW, - "WAIT", KW_WAIT, - "WAKING", KW_WAKING, - "WARNING", KW_WARNING, - "WEEKDAY", KW_WEEKDAY, - "WHENEVER", KW_WHENEVER, - "WIDTH", KW_WIDTH, - "WHERE", KW_WITH, - "WITH", KW_WITH, - "WORK", KW_WORK, - "WRITE", KW_WRITE, "YEAR", KW_YEAR, "YEARDAY", KW_YEARDAY, + {"SECTION", KW_SECTION}, + {"SECOND", KW_SECOND}, + {"SEGMENT", KW_SEGMENT}, + {"SELECT", KW_SELECT}, + {";", KW_SEMI_COLON}, + {"SET", KW_SET}, + {"SHARED", KW_SHARED}, + {"SHADOW", KW_SHADOW}, + {"SHORT", KW_SHORT}, + {"short", KW_SHORT}, + {"SINGULAR", KW_SINGULAR}, + {"SIZE", KW_SIZE}, + {"/", KW_SLASH}, + {"SMALLINT", KW_SMALLINT}, + {"SNAPSHOT", KW_SNAPSHOT}, + {"SORT", KW_SORT}, + {"SORTED", KW_SORTED}, + {"SQL", KW_SQL}, + {"SQLERROR", KW_SQLERROR}, + {"SQLWARNING", KW_SQLWARNING}, + {"STABILITY", KW_STABILITY}, + {"STARTING", KW_STARTING}, + {"STARTING_WITH", KW_STARTING_WITH}, + {"STARTS", KW_STARTS}, + {"START_STREAM", KW_START_STREAM}, + {"START_TRANSACTION", KW_START_TRANSACTION}, + {"STATE", KW_STATE}, + {"STATEMENT", KW_STATEMENT}, + {"STATIC", KW_STATIC}, + {"STATISTICS", KW_STATISTICS}, + {"STOGROUP", KW_STOGROUP}, + {"STORE", KW_STORE}, + {"STREAM", KW_STREAM}, + {"STRING", KW_STRING}, + {"SUB", KW_SUB}, + {"SUB_TYPE", KW_SUB_TYPE}, + {"SUBROUTINE", KW_SUBROUTINE}, + {"SUM", KW_SUM}, + {"SUSPEND_WINDOW", KW_SUSPEND_WINDOW}, + {"SYNONYM", KW_SYNONYM}, + {"TABLE", KW_TABLE}, + {"TABLESPACE", KW_TABLESPACE}, + {"TAG", KW_TAG}, + {"TERMINATING_FIELD", KW_TERMINATING_FIELD}, + {"TERMINATOR", KW_TERMINATOR}, + {"TIME", KW_TIME}, + {"TIMESTAMP", KW_TIMESTAMP}, + {"TITLE_LENGTH", KW_TITLE_LENGTH}, + {"TITLE_TEXT", KW_TITLE_TEXT}, + {"TO", KW_TO}, + {"TOTAL", KW_TOTAL}, + {"TRANSACTION", KW_TRANSACTION}, + {"TRANSACTION_HANDLE", KW_TRANSACTION_HANDLE}, + {"TRANSPARENT", KW_TRANSPARENT}, + {"TRIGGER", KW_TRIGGER}, + {"UNCOMMITTED", KW_UNCOMMITTED}, + {"UNION", KW_UNION}, + {"UNIQUE", KW_UNIQUE}, + {"UPDATE", KW_UPDATE}, + {"UPPER", KW_UPPER}, + {"UPPERCASE", KW_UPPERCASE}, + {"USER", KW_USER}, + {"USERS", KW_USERS}, + {"RDB$USER_NAME", KW_USER_NAME}, + {"USING", KW_USING}, + {"VALUE", KW_VALUE}, + {"VALUES", KW_VALUES}, + {"VAL_PARAM", KW_VAL_PARAM}, + {"VARCHAR", KW_VARCHAR}, + {"VARIABLE", KW_VARIABLE}, + {"VARYING", KW_VARYING}, + {"VERTICAL", KW_VERTICAL}, + {"VIEW", KW_VIEW}, + {"WAIT", KW_WAIT}, + {"WAKING", KW_WAKING}, + {"WARNING", KW_WARNING}, + {"WEEKDAY", KW_WEEKDAY}, + {"WHENEVER", KW_WHENEVER}, + {"WIDTH", KW_WIDTH}, + {"WHERE", KW_WITH}, + {"WITH", KW_WITH}, + {"WORK", KW_WORK}, + {"WRITE", KW_WRITE}, + {"YEAR", KW_YEAR}, + {"YEARDAY", KW_YEARDAY} diff --git a/src/gpre/int.cpp b/src/gpre/int.cpp index c56fe6697e..5cbf14f6f3 100644 --- a/src/gpre/int.cpp +++ b/src/gpre/int.cpp @@ -25,13 +25,14 @@ // //____________________________________________________________ // -// $Id: int.cpp,v 1.1.1.1 2001-05-23 13:25:31 tamlin Exp $ +// $Id: int.cpp,v 1.2 2001-07-29 23:43:22 skywalker Exp $ // +#include "firebird.h" #include "../jrd/ib_stdio.h" #include "../jrd/common.h" #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../gpre/gpre.h" #include "../gpre/gpre_proto.h" #include "../gpre/lang_proto.h" diff --git a/src/gpre/int_cxx.cpp b/src/gpre/int_cxx.cpp index 546754ff54..a68b999204 100644 --- a/src/gpre/int_cxx.cpp +++ b/src/gpre/int_cxx.cpp @@ -25,13 +25,14 @@ // //____________________________________________________________ // -// $Id: int_cxx.cpp,v 1.1 2001-07-12 06:32:02 bellardo Exp $ +// $Id: int_cxx.cpp,v 1.2 2001-07-29 23:43:22 skywalker Exp $ // +#include "firebird.h" #include "../jrd/ib_stdio.h" #include "../jrd/common.h" #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../gpre/gpre.h" #include "../gpre/gpre_proto.h" #include "../gpre/lang_proto.h" diff --git a/src/gpre/jrdmet.cpp b/src/gpre/jrdmet.cpp index 4c7b5bb306..19c3540cc2 100644 --- a/src/gpre/jrdmet.cpp +++ b/src/gpre/jrdmet.cpp @@ -26,10 +26,11 @@ // //____________________________________________________________ // -// $Id: jrdmet.cpp,v 1.1.1.1 2001-05-23 13:25:31 tamlin Exp $ +// $Id: jrdmet.cpp,v 1.2 2001-07-29 23:43:22 skywalker Exp $ // -#include "../include/jrd/gds.h" +#include "firebird.h" +#include "../jrd/gds.h" #include "../jrd/common.h" #include "../jrd/ods.h" diff --git a/src/gpre/movg.cpp b/src/gpre/movg.cpp index fc15a8410e..71e516135a 100644 --- a/src/gpre/movg.cpp +++ b/src/gpre/movg.cpp @@ -25,13 +25,14 @@ // //____________________________________________________________ // -// $Id: movg.cpp,v 1.1.1.1 2001-05-23 13:25:32 tamlin Exp $ +// $Id: movg.cpp,v 1.2 2001-07-29 23:43:22 skywalker Exp $ // +#include "firebird.h" #include "../jrd/common.h" #include -#include "../jrd/codes.h" +#include "gen/codes.h" #include "../jrd/iberr.h" #include "../jrd/dsc.h" #include "../gpre/movg_proto.h" diff --git a/src/gpre/msc.cpp b/src/gpre/msc.cpp index 3fb017a40b..0f84a6892f 100644 --- a/src/gpre/msc.cpp +++ b/src/gpre/msc.cpp @@ -25,10 +25,10 @@ // //____________________________________________________________ // -// $Id: msc.cpp,v 1.1.1.1 2001-05-23 13:25:32 tamlin Exp $ +// $Id: msc.cpp,v 1.2 2001-07-29 23:43:22 skywalker Exp $ // // -//$Id: msc.cpp,v 1.1.1.1 2001-05-23 13:25:32 tamlin Exp $ +//$Id: msc.cpp,v 1.2 2001-07-29 23:43:22 skywalker Exp $ // // *************************************************** @@ -48,6 +48,7 @@ // - THANK YOU //************************************************** +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../gpre/gpre.h" diff --git a/src/gpre/noform.cpp b/src/gpre/noform.cpp index e78d600a5b..a95fc2c025 100644 --- a/src/gpre/noform.cpp +++ b/src/gpre/noform.cpp @@ -24,9 +24,10 @@ // //____________________________________________________________ // -// $Id: noform.cpp,v 1.1.1.1 2001-05-23 13:25:32 tamlin Exp $ +// $Id: noform.cpp,v 1.2 2001-07-29 23:43:22 skywalker Exp $ // +#include "firebird.h" #include "../gpre/gpre.h" #include "../gpre/form.h" #include "../gpre/form_proto.h" diff --git a/src/gpre/par.cpp b/src/gpre/par.cpp index 54accdf074..a000c84a1f 100644 --- a/src/gpre/par.cpp +++ b/src/gpre/par.cpp @@ -20,7 +20,7 @@ // // All Rights Reserved. // Contributor(s): ______________________________________. -// $Id: par.cpp,v 1.2 2001-07-12 05:46:04 bellardo Exp $ +// $Id: par.cpp,v 1.3 2001-07-29 23:43:22 skywalker Exp $ // Revision 1.2 2000/11/27 09:26:13 fsg // Fixed bugs in gpre to handle PYXIS forms // and allow edit.e and fred.e to go through @@ -37,13 +37,14 @@ // //____________________________________________________________ // -// $Id: par.cpp,v 1.2 2001-07-12 05:46:04 bellardo Exp $ +// $Id: par.cpp,v 1.3 2001-07-29 23:43:22 skywalker Exp $ // +#include "firebird.h" #include #include #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../gpre/gpre.h" #include "../gpre/parse.h" #include "../gpre/form.h" diff --git a/src/gpre/pas.cpp b/src/gpre/pas.cpp index be89226018..724930a8f2 100644 --- a/src/gpre/pas.cpp +++ b/src/gpre/pas.cpp @@ -24,14 +24,15 @@ // //____________________________________________________________ // -// $Id: pas.cpp,v 1.1.1.1 2001-05-23 13:25:31 tamlin Exp $ +// $Id: pas.cpp,v 1.2 2001-07-29 23:43:22 skywalker Exp $ // +#include "firebird.h" #include "../jrd/ib_stdio.h" #include "../jrd/common.h" #include #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../gpre/gpre.h" #include "../gpre/form.h" #include "../gpre/pat.h" diff --git a/src/gpre/pat.cpp b/src/gpre/pat.cpp index 9e91c80cac..6b53e19282 100644 --- a/src/gpre/pat.cpp +++ b/src/gpre/pat.cpp @@ -24,9 +24,10 @@ // //____________________________________________________________ // -// $Id: pat.cpp,v 1.1.1.1 2001-05-23 13:25:31 tamlin Exp $ +// $Id: pat.cpp,v 1.2 2001-07-29 23:43:22 skywalker Exp $ // +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../gpre/gpre.h" diff --git a/src/gpre/pretty.cpp b/src/gpre/pretty.cpp index 6611b9ec16..485a5137d5 100644 --- a/src/gpre/pretty.cpp +++ b/src/gpre/pretty.cpp @@ -25,13 +25,14 @@ // //____________________________________________________________ // -// $Id: pretty.cpp,v 1.2 2001-07-12 05:46:04 bellardo Exp $ +// $Id: pretty.cpp,v 1.3 2001-07-29 23:43:22 skywalker Exp $ // +#include "firebird.h" #include "../jrd/ib_stdio.h" #include "../jrd/common.h" #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../gpre/prett_proto.h" #include "../jrd/gds_proto.h" @@ -123,13 +124,12 @@ const char *menu_strings[] = { "VERTICAL" }; -int PRETTY_print_cdb( - SCHAR * blr, //____________________________________________________________ // // Pretty print create database parameter buffer thru callback routine. // +int PRETTY_print_cdb( SCHAR * blr, int (*routine) (), SCHAR * user_arg, SSHORT language) { diff --git a/src/gpre/sqe.cpp b/src/gpre/sqe.cpp index 3566f566fb..3c68874a4c 100644 --- a/src/gpre/sqe.cpp +++ b/src/gpre/sqe.cpp @@ -20,7 +20,7 @@ // // All Rights Reserved. // Contributor(s): ______________________________________. -// $Id: sqe.cpp,v 1.1.1.1 2001-05-23 13:25:31 tamlin Exp $ +// $Id: sqe.cpp,v 1.2 2001-07-29 23:43:22 skywalker Exp $ // Revision 1.3 2000/11/16 15:54:29 fsg // Added new switch -verbose to gpre that will dump // parsed lines to stderr @@ -38,8 +38,9 @@ // //____________________________________________________________ // -// $Id: sqe.cpp,v 1.1.1.1 2001-05-23 13:25:31 tamlin Exp $ +// $Id: sqe.cpp,v 1.2 2001-07-29 23:43:22 skywalker Exp $ // +#include "firebird.h" #include #include #include "../gpre/gpre.h" diff --git a/src/gpre/sql.cpp b/src/gpre/sql.cpp index adbf4e6544..f8a6a0f602 100644 --- a/src/gpre/sql.cpp +++ b/src/gpre/sql.cpp @@ -25,13 +25,14 @@ // //____________________________________________________________ // -// $Id: sql.cpp,v 1.1.1.1 2001-05-23 13:25:30 tamlin Exp $ +// $Id: sql.cpp,v 1.2 2001-07-29 23:43:22 skywalker Exp $ // +#include "firebird.h" #include #include #include "../gpre/gpre.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../gpre/parse.h" #include "../jrd/intl.h" #include "../wal/wal.h" diff --git a/src/intl/cs_big5.c b/src/intl/cs_big5.c index e351a6e0a5..6e24417cf1 100644 --- a/src/intl/cs_big5.c +++ b/src/intl/cs_big5.c @@ -22,6 +22,7 @@ */ +#include "firebird.h" #include "../intl/ldcommon.h" extern USHORT CVBIG5_big5_to_unicode(); diff --git a/src/intl/cs_gb2312.c b/src/intl/cs_gb2312.c index 58198ef953..a42a3bdc5a 100644 --- a/src/intl/cs_gb2312.c +++ b/src/intl/cs_gb2312.c @@ -22,6 +22,7 @@ */ +#include "firebird.h" #include "../intl/ldcommon.h" extern USHORT CVGB_gb2312_to_unicode(); diff --git a/src/intl/cs_jis.c b/src/intl/cs_jis.c index 21f41a155e..6d5d9d1f4d 100644 --- a/src/intl/cs_jis.c +++ b/src/intl/cs_jis.c @@ -22,6 +22,7 @@ */ +#include "firebird.h" #include "../intl/ldcommon.h" extern USHORT CV_wc_to_wc(); diff --git a/src/intl/cs_jis_20208_1990.c b/src/intl/cs_jis_20208_1990.c index 3378e0c3e9..bb26e62428 100644 --- a/src/intl/cs_jis_20208_1990.c +++ b/src/intl/cs_jis_20208_1990.c @@ -16,6 +16,7 @@ * All Rights Reserved. * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../intl/ldcommon.h" USHORT *from_unicode_mapping_array; diff --git a/src/intl/cs_ksc.c b/src/intl/cs_ksc.c index a850f13185..7d09313e12 100644 --- a/src/intl/cs_ksc.c +++ b/src/intl/cs_ksc.c @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../intl/ldcommon.h" extern USHORT CVKSC_ksc_to_unicode(); diff --git a/src/intl/cs_narrow.c b/src/intl/cs_narrow.c index 12aead2dca..e63b05fffa 100644 --- a/src/intl/cs_narrow.c +++ b/src/intl/cs_narrow.c @@ -22,6 +22,7 @@ */ +#include "firebird.h" #include "../intl/ldcommon.h" extern USHORT CV_nc_to_unicode(); diff --git a/src/intl/cs_unicode.c b/src/intl/cs_unicode.c index ea12bd96ed..8be65cf033 100644 --- a/src/intl/cs_unicode.c +++ b/src/intl/cs_unicode.c @@ -22,6 +22,7 @@ */ +#include "firebird.h" #include "../intl/ldcommon.h" diff --git a/src/intl/cs_utffss.c b/src/intl/cs_utffss.c index 453ace664a..d507c27569 100644 --- a/src/intl/cs_utffss.c +++ b/src/intl/cs_utffss.c @@ -24,6 +24,7 @@ /* Note: all routines have cousins in jrd/intl.c */ +#include "firebird.h" #include "../intl/ldcommon.h" diff --git a/src/intl/cv_big5.c b/src/intl/cv_big5.c index be0aa26c16..44ca96af0d 100644 --- a/src/intl/cv_big5.c +++ b/src/intl/cv_big5.c @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../intl/ldcommon.h" /* These macros have a duplicate in lc_big5.c */ diff --git a/src/intl/cv_gb2312.c b/src/intl/cv_gb2312.c index 03ec48b519..1ef597da1c 100644 --- a/src/intl/cv_gb2312.c +++ b/src/intl/cv_gb2312.c @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../intl/ldcommon.h" /* These macros have a duplicate in lc_gb2312.c */ diff --git a/src/intl/cv_jis.c b/src/intl/cv_jis.c index 08d11e217e..c431b4b60b 100644 --- a/src/intl/cv_jis.c +++ b/src/intl/cv_jis.c @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../intl/ldcommon.h" #include "../intl/cs_sjis.h" diff --git a/src/intl/cv_ksc.c b/src/intl/cv_ksc.c index 8463fec514..bef8fd1aff 100644 --- a/src/intl/cv_ksc.c +++ b/src/intl/cv_ksc.c @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../intl/ldcommon.h" diff --git a/src/intl/cv_narrow.c b/src/intl/cv_narrow.c index d2a54f8b9e..cdf7e6b261 100644 --- a/src/intl/cv_narrow.c +++ b/src/intl/cv_narrow.c @@ -22,6 +22,7 @@ */ +#include "firebird.h" #include "../intl/ldcommon.h" diff --git a/src/intl/dtest.c b/src/intl/dtest.c index 359630fb53..6f8ca54929 100644 --- a/src/intl/dtest.c +++ b/src/intl/dtest.c @@ -28,6 +28,7 @@ * Set the static full_debug to 1 to turn on ib_printf debugging. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #define DEBUG #include diff --git a/src/intl/dtest2.c b/src/intl/dtest2.c index c97636802b..4651479070 100644 --- a/src/intl/dtest2.c +++ b/src/intl/dtest2.c @@ -23,6 +23,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" static int full_debug = 0; diff --git a/src/intl/lc_ascii.c b/src/intl/lc_ascii.c index 32bd88a781..a4975eae15 100644 --- a/src/intl/lc_ascii.c +++ b/src/intl/lc_ascii.c @@ -22,6 +22,7 @@ */ +#include "firebird.h" #include "../intl/ldcommon.h" extern USHORT famasc_key_length(); diff --git a/src/intl/lc_big5.c b/src/intl/lc_big5.c index 82125594da..ef1d58eb6f 100644 --- a/src/intl/lc_big5.c +++ b/src/intl/lc_big5.c @@ -22,6 +22,7 @@ */ +#include "firebird.h" #include "../intl/ldcommon.h" #include "../jrd/license.h" diff --git a/src/intl/lc_dos.c b/src/intl/lc_dos.c index 280a5167d1..bd36ea9b3f 100644 --- a/src/intl/lc_dos.c +++ b/src/intl/lc_dos.c @@ -22,6 +22,7 @@ */ +#include "firebird.h" #include "../intl/ldcommon.h" extern USHORT LC_NARROW_key_length(); diff --git a/src/intl/lc_gb2312.c b/src/intl/lc_gb2312.c index 3addf2458c..7ab9d88d40 100644 --- a/src/intl/lc_gb2312.c +++ b/src/intl/lc_gb2312.c @@ -22,6 +22,7 @@ */ +#include "firebird.h" #include "../intl/ldcommon.h" #include "../jrd/license.h" diff --git a/src/intl/lc_jis.c b/src/intl/lc_jis.c index 154327491e..18b1d0c0ff 100644 --- a/src/intl/lc_jis.c +++ b/src/intl/lc_jis.c @@ -22,6 +22,7 @@ */ +#include "firebird.h" #include "../intl/ldcommon.h" #include "../jrd/license.h" diff --git a/src/intl/lc_ksc.c b/src/intl/lc_ksc.c index a3fcf4fdb0..c361fe4893 100644 --- a/src/intl/lc_ksc.c +++ b/src/intl/lc_ksc.c @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../intl/ldcommon.h" #include "../jrd/license.h" diff --git a/src/intl/lc_latin1.c b/src/intl/lc_latin1.c index 315a37fcc8..c8353ef7d8 100644 --- a/src/intl/lc_latin1.c +++ b/src/intl/lc_latin1.c @@ -23,6 +23,7 @@ */ +#include "firebird.h" #include "../intl/ldcommon.h" extern USHORT LC_NARROW_key_length(); diff --git a/src/intl/lc_narrow.c b/src/intl/lc_narrow.c index bbe5acf4e1..9f9bc14e53 100644 --- a/src/intl/lc_narrow.c +++ b/src/intl/lc_narrow.c @@ -23,6 +23,7 @@ */ +#include "firebird.h" #include "../intl/ldcommon.h" USHORT LC_NARROW_key_length(); diff --git a/src/intl/lc_unicode.c b/src/intl/lc_unicode.c index 71cab30eae..379d43cbd6 100644 --- a/src/intl/lc_unicode.c +++ b/src/intl/lc_unicode.c @@ -22,6 +22,7 @@ */ +#include "firebird.h" #include "../intl/ldcommon.h" extern USHORT famasc_key_length(); diff --git a/src/intl/ld.c b/src/intl/ld.c index b8fd63beba..2508ccd86c 100644 --- a/src/intl/ld.c +++ b/src/intl/ld.c @@ -21,8 +21,11 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" +#include "../jrd/gds_proto.h" #include "../intl/ldcommon.h" +#include "../intl/ld_proto.h" #define EXTERN_texttype(name) extern USHORT name (TEXTTYPE, SSHORT, SSHORT) #define EXTERN_convert(name) extern USHORT name (CSCONVERT, SSHORT, SSHORT) @@ -194,7 +197,7 @@ void LD_assert(CONST SCHAR* filename, int lineno) * a shared module entry point on all platforms, whereas gds__log is. * **************************************/ - TEXT buffer[100]; + TEXT buffer[MAXPATHLEN]; sprintf(buffer, "Assertion failed: component intl, file \"%s\", line %d\n", diff --git a/src/intl/ld2.c b/src/intl/ld2.c index f8a029c086..9737d2e908 100644 --- a/src/intl/ld2.c +++ b/src/intl/ld2.c @@ -21,12 +21,25 @@ * Contributor(s): ______________________________________. */ + +/************************************************************************ + * This file is a template for users to implement a gdsintl2.so library + * with their own international character sets in it. + * It is not part of the + * + */ + +#include "firebird.h" + + #include "../jrd/ib_stdio.h" +#include "../jrd/gds_proto.h" #include "../intl/ldcommon.h" +#include "../intl/ld_proto.h" #ifdef DEV_BUILD -LD2_assert(filename, lineno) +void LD2_assert(filename, lineno) SCHAR *filename; int lineno; { @@ -43,7 +56,7 @@ LD2_assert(filename, lineno) * a shared module entry point on all platforms, whereas gds__log is. * **************************************/ - TEXT buffer[100]; + TEXT buffer[MAXPATHLEN]; sprintf(buffer, "Assertion failed: INTL file \"%s\", line %d\n", filename, lineno); @@ -78,60 +91,40 @@ LD2_assert(filename, lineno) return (0);\ } -USHORT DLL_EXPORT LD2_lookup( - USHORT objtype, - FPTR_SHORT * fun, SSHORT parm1, SSHORT parm2) -{ -/************************************** - * - * L D 2 _ l o o k u p - * - ************************************** - * - * Functional description - * - * Lookup an international object implementation via object type - * and id (one id for charsets & collations, two ids for converters). - * - * Note: This routine is a cousin of intl/ld.c:LD_lookup - * - * Return: - * If object implemented by this module: - * (fun) set to the object initializer - * 0 returned - * Otherwise: - * (fun) set to nil. - * 1 returned - * - **************************************/ - switch (objtype) { - case type_texttype: - switch (parm1) { - default: - *fun = NULL; - return 1; - }; - case type_charset: - switch (parm1) { - default: - *fun = NULL; - return 1; - }; - case type_csconvert: - { - *fun = NULL; - return 1; - } - default: + +USHORT DLL_EXPORT LD2_lookup(USHORT objtype, + FPTR_SHORT * fun, SSHORT parm1, SSHORT parm2) +{ + + switch (objtype) { + case type_texttype: + switch (parm1) { + default: + *fun = NULL; + return 1; + }; + case type_charset: + switch (parm1) { + default: + *fun = NULL; + return 1; + }; + case type_csconvert: + { + *fun = NULL; + return 1; + } + default: #ifdef DEV_BUILD - assert(0); + assert(0); #endif - *fun = NULL; - return 1; - } + *fun = NULL; + return 1; + } } + #undef DRIVER #undef CHARSET_INIT #undef CONVERT_INIT_BI diff --git a/src/intl/ld_proto.h b/src/intl/ld_proto.h index a9520c5763..a5d8e3134b 100644 --- a/src/intl/ld_proto.h +++ b/src/intl/ld_proto.h @@ -27,7 +27,9 @@ #ifdef DEV_BUILD void DLL_EXPORT LD_assert(CONST SCHAR*, int); #endif -USHORT DLL_EXPORT LD_lookup(USHORT, USHORT* (*)(), SSHORT, SSHORT); -USHORT DLL_EXPORT LD2_lookup(USHORT, USHORT* (*)(), SSHORT, SSHORT); + +USHORT DLL_EXPORT LD_lookup(USHORT, FPTR_SHORT*, SSHORT, SSHORT); +USHORT DLL_EXPORT LD2_lookup(USHORT, FPTR_SHORT*, SSHORT, SSHORT); + #endif /* _INTL_LD_PROTO_H_ */ diff --git a/src/intl/mapcompare.cpp b/src/intl/mapcompare.cpp index 8f24b29afd..77162e3bc0 100644 --- a/src/intl/mapcompare.cpp +++ b/src/intl/mapcompare.cpp @@ -16,6 +16,7 @@ * All Rights Reserved. * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include diff --git a/src/intl/mapdump.c b/src/intl/mapdump.c index 3512ee09cc..79611ba29b 100644 --- a/src/intl/mapdump.c +++ b/src/intl/mapdump.c @@ -17,6 +17,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/common.h" #include "cs_w1254.h" diff --git a/src/intl/mapgen4.c b/src/intl/mapgen4.c index c5d3054e0d..e89ad9b4ed 100644 --- a/src/intl/mapgen4.c +++ b/src/intl/mapgen4.c @@ -17,6 +17,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../jrd/common.h" diff --git a/src/intl/maptest.cpp b/src/intl/maptest.cpp index 1d4f033399..3e8ce5d0cb 100644 --- a/src/intl/maptest.cpp +++ b/src/intl/maptest.cpp @@ -17,6 +17,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/common.h" diff --git a/src/intl/maptest2.c b/src/intl/maptest2.c index a18a6f05ca..cd2088f214 100644 --- a/src/intl/maptest2.c +++ b/src/intl/maptest2.c @@ -17,6 +17,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include diff --git a/src/ipserver/alli.cpp b/src/ipserver/alli.cpp index 484d5ccd5c..e04c8a9a53 100644 --- a/src/ipserver/alli.cpp +++ b/src/ipserver/alli.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include "../ipserver/ipc.h" diff --git a/src/ipserver/ipcevent.cpp b/src/ipserver/ipcevent.cpp index 5ca5e3efe3..000f108845 100644 --- a/src/ipserver/ipcevent.cpp +++ b/src/ipserver/ipcevent.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include "../ipserver/ipcli_proto.h" diff --git a/src/ipserver/ipclient.cpp b/src/ipserver/ipclient.cpp index 83cd9518ae..7981672763 100644 --- a/src/ipserver/ipclient.cpp +++ b/src/ipserver/ipclient.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../jrd/common.h" @@ -31,7 +32,7 @@ #include #include "../ipserver/ipc.h" -#include "../jrd/codes.h" +#include "gen/codes.h" #include "../jrd/license.h" #include "../jrd/inf.h" #include "../jrd/gds_proto.h" diff --git a/src/ipserver/ipserver.cpp b/src/ipserver/ipserver.cpp index 581ce8c1a2..e246b5d851 100644 --- a/src/ipserver/ipserver.cpp +++ b/src/ipserver/ipserver.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include @@ -28,7 +29,7 @@ #include "../ipserver/ipc.h" #include "../jrd/license.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/gds_proto.h" #include "../ipserver/alli_proto.h" #include "../jrd/thd_proto.h" diff --git a/src/iscguard/cntl_guard.cpp b/src/iscguard/cntl_guard.cpp index 80a06f63c7..57fbef2858 100644 --- a/src/iscguard/cntl_guard.cpp +++ b/src/iscguard/cntl_guard.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include "../jrd/common.h" #include "../iscguard/cntlg_proto.h" diff --git a/src/iscguard/iscguard.cpp b/src/iscguard/iscguard.cpp index bf2c011634..208c0d6628 100644 --- a/src/iscguard/iscguard.cpp +++ b/src/iscguard/iscguard.cpp @@ -16,6 +16,7 @@ * All Rights Reserved. * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include "../jrd/gds_proto.h" #include diff --git a/src/iscguard/iscguard_utils.cpp b/src/iscguard/iscguard_utils.cpp index 2218771f03..627cc4cf83 100644 --- a/src/iscguard/iscguard_utils.cpp +++ b/src/iscguard/iscguard_utils.cpp @@ -27,6 +27,7 @@ */ +#include "firebird.h" #include #include #include "../iscguard/iscguard.h" diff --git a/src/isql/extract.epp b/src/isql/extract.epp index c180cc4c81..05c5fd991c 100644 --- a/src/isql/extract.epp +++ b/src/isql/extract.epp @@ -19,9 +19,9 @@ * * All Rights Reserved. * Contributor(s): ______________________________________. - * $Id: extract.epp,v 1.1 2001-07-12 06:32:02 bellardo Exp $ + * $Id: extract.epp,v 1.2 2001-07-29 23:43:22 skywalker Exp $ * Revision 1.3 2000/11/22 17:07:25 patrickgriffin - * In get_procedure_args change comment style from // to /* + * In get_procedure_args change comment style from // to c style * * ...pat * @@ -33,6 +33,7 @@ * */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include @@ -41,7 +42,7 @@ #include #endif #include "../jrd/common.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../dsql/dsql.h" #include "../isql/isql.h" #include "../jrd/constants.h" @@ -85,10 +86,10 @@ extern IB_FILE *Out; /* Command terminator and procedure terminator */ -extern SQLTYPES Column_types[]; -extern SCHAR *Integral_subtypes[]; -extern SCHAR *Sub_types[]; -extern SCHAR *Trigger_types[]; +extern "C" CONST SQLTYPES Column_types[]; +extern CONST SCHAR *Integral_subtypes[]; +extern CONST SCHAR *Sub_types[]; +extern CONST SCHAR *Trigger_types[]; static SCHAR *Procterm = "^"; /* TXNN: script use only */ @@ -508,7 +509,7 @@ SSHORT EXTRACT_list_table(SCHAR * relation_name, subtype = FLD.RDB$FIELD_SUB_TYPE; ISQL_printf (Out, " SUB_TYPE "); if ((subtype > 0) && (subtype <= MAXSUBTYPES)) - ISQL_printf (Out, Sub_types [subtype]); + ISQL_printf (Out, const_cast(Sub_types [subtype])); else { sprintf (Print_buffer, "%d", subtype); @@ -1529,7 +1530,7 @@ static void list_create_db(void) ISQL_printf(Out, Print_buffer); /* Get the page size from db_info call */ - SHOW_dbb_parameters((SLONG*) DB, info_buf, page_items, sizeof(page_items), + SHOW_dbb_parameters((SLONG*) DB, info_buf, const_cast(page_items), sizeof(page_items), translate); sprintf(Print_buffer, " %s", info_buf); ISQL_printf(Out, Print_buffer); @@ -1758,7 +1759,7 @@ static void list_create_db(void) } if (!isc_database_info - (gds_status, &DB, sizeof(wal_items), wal_items, BUFFER_LENGTH128, + (gds_status, &DB, sizeof(wal_items), const_cast(wal_items), BUFFER_LENGTH128, buffer)) { for (d = buffer; *d != isc_info_end;) diff --git a/src/isql/isql.epp b/src/isql/isql.epp index 16cca1cff3..2b39aef15d 100644 --- a/src/isql/isql.epp +++ b/src/isql/isql.epp @@ -21,7 +21,7 @@ * Contributor(s): ______________________________________. */ /* - $Id: isql.epp,v 1.1 2001-07-12 06:32:02 bellardo Exp $ + $Id: isql.epp,v 1.2 2001-07-29 23:43:22 skywalker Exp $ Revision 1.5 2000/11/18 16:49:24 fsg Increased PRINT_BUFFER_LENGTH to 2048 to show larger plans Fixed Bug #122563 in extract.e get_procedure_args @@ -31,6 +31,7 @@ 2001/05/20 Neil McCalden add planonly option */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include @@ -67,7 +68,7 @@ #endif // jrd/gds.h already pulls in the error codes, so remove codes.h // #include "../jrd/codes.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../isql/isql.h" #include "../jrd/perf.h" #include "../jrd/license.h" diff --git a/src/isql/isql_win.cpp b/src/isql/isql_win.cpp index 20cd32a954..f1687147d8 100644 --- a/src/isql/isql_win.cpp +++ b/src/isql/isql_win.cpp @@ -21,7 +21,8 @@ * Contributor(s): ______________________________________. */ -#define STRICT +#define +#include "firebird.h" STRICT #include #pragma hdrstop #include "../jrd/ib_stdio.h" @@ -39,7 +40,7 @@ #include "../isql/isql.h" #include "../isql/isql_win.h" #include "../isql/isql_res.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../isql/isqlw_proto.h" #include "../isql/isql_proto.h" #include "../jrd/gds_proto.h" diff --git a/src/isql/show.epp b/src/isql/show.epp index 039276079e..70cbd0d8a2 100644 --- a/src/isql/show.epp +++ b/src/isql/show.epp @@ -19,7 +19,7 @@ * * All Rights Reserved. * Contributor(s): ______________________________________. - * $Id: show.epp,v 1.1 2001-07-12 06:32:02 bellardo Exp $ + * $Id: show.epp,v 1.2 2001-07-29 23:43:22 skywalker Exp $ * Revision 1.2 2000/11/19 07:02:49 fsg * Change in show.e to use CHARACTER_LENGTH instead of FIELD_LENGTH in * SHOW PROCEDURE @@ -30,6 +30,7 @@ * */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include @@ -37,7 +38,7 @@ #include #endif #include "../jrd/common.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../dsql/dsql.h" #include "../isql/isql.h" #include "../jrd/license.h" @@ -107,7 +108,7 @@ static CONST SCHAR *Object_types[] = { "Index" }; -CONST SQLTYPES Column_types[] = { +extern "C" CONST SQLTYPES Column_types[] = { {SMALLINT, "SMALLINT"}, /* NTX: keyword */ {INTEGER, "INTEGER"}, /* NTX: keyword */ {QUAD, "QUAD"}, /* NTX: keyword */ @@ -972,7 +973,7 @@ void SHOW_print_metadata_text_blob( IB_FILE * fp, ISC_QUAD * blobid) blob_handle = NULL; if (isc_open_blob2(isc_status, &DB, &gds_trans, &blob_handle, blobid, - sizeof(metadata_text_bpb), metadata_text_bpb)) { + sizeof(metadata_text_bpb), const_cast(metadata_text_bpb))) { ISQL_errmsg(isc_status); return; } @@ -1956,7 +1957,7 @@ static void show_db(void) /* First general database parameters */ - SHOW_dbb_parameters((SLONG*) DB, info_buf, db_items, sizeof(db_items), translate); + SHOW_dbb_parameters((SLONG*) DB, info_buf, const_cast(db_items), sizeof(db_items), translate); ISQL_printf(Out, info_buf); /* Only v4 databases have log_files */ @@ -2018,7 +2019,7 @@ static void show_db(void) /* And now for Rich's show db parameters */ if (is_wal) { - SHOW_dbb_parameters((SLONG*) DB, info_buf, wal_items, sizeof(wal_items), + SHOW_dbb_parameters((SLONG*) DB, info_buf, const_cast(wal_items), sizeof(wal_items), translate); ISQL_printf(Out, info_buf); } diff --git a/src/journal/archive.cpp b/src/journal/archive.cpp index 03c0905a66..ca3c5967e2 100644 --- a/src/journal/archive.cpp +++ b/src/journal/archive.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include diff --git a/src/journal/console.cpp b/src/journal/console.cpp index c045363041..5dbe8f0ea8 100644 --- a/src/journal/console.cpp +++ b/src/journal/console.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include diff --git a/src/journal/gjrn.cpp b/src/journal/gjrn.cpp index 3862c25e9c..6dd3227251 100644 --- a/src/journal/gjrn.cpp +++ b/src/journal/gjrn.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include @@ -28,7 +29,7 @@ #include "../jrd/common.h" #include #include "../jrd/license.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../journal/journal.h" #include "../journal/conso_proto.h" #include "../journal/gjrn_proto.h" diff --git a/src/journal/misc.cpp b/src/journal/misc.cpp index 2d048602b2..e24997bc95 100644 --- a/src/journal/misc.cpp +++ b/src/journal/misc.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../jrd/time.h" @@ -33,7 +34,7 @@ #endif #include "../jrd/ods.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/license.h" #include "../journal/journal.h" diff --git a/src/journal/oldr.cpp b/src/journal/oldr.cpp index db48d13e96..96a5cea00d 100644 --- a/src/journal/oldr.cpp +++ b/src/journal/oldr.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include diff --git a/src/lock/driver.cpp b/src/lock/driver.cpp index bbca5c6bb0..6ee29de1a5 100644 --- a/src/lock/driver.cpp +++ b/src/lock/driver.cpp @@ -21,10 +21,11 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include "../jrd/common.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/isc.h" #ifdef LINKS_EXIST #include "../isc_lock/lock.h" diff --git a/src/lock/lock.cpp b/src/lock/lock.cpp index e8958a8edc..123fa0b3b2 100644 --- a/src/lock/lock.cpp +++ b/src/lock/lock.cpp @@ -21,9 +21,10 @@ * Contributor(s): ______________________________________. */ /* -$Id: lock.cpp,v 1.2 2001-07-12 05:46:05 bellardo Exp $ +$Id: lock.cpp,v 1.3 2001-07-29 23:43:22 skywalker Exp $ */ +#include "firebird.h" #include "../jrd/time.h" #include "../jrd/ib_stdio.h" #include "../jrd/common.h" @@ -36,7 +37,7 @@ $Id: lock.cpp,v 1.2 2001-07-12 05:46:05 bellardo Exp $ #include "../lock/lock.h" #include "../lock/lock_proto.h" #endif /* LINKS_EXIST */ -#include "../jrd/codes.h" +#include "gen/codes.h" #include "../jrd/gds_proto.h" #include "../jrd/gdsassert.h" #include "../jrd/isc_proto.h" @@ -50,6 +51,14 @@ $Id: lock.cpp,v 1.2 2001-07-12 05:46:05 bellardo Exp $ #include #endif +#ifdef HAVE_SYS_WAIT_H +#include +#endif + +#ifdef HAVE_TIME_H +#include +#endif + #ifdef HAVE_UNISTD_H #include #endif @@ -631,8 +640,8 @@ SLONG LOCK_enq( PTR prior_request, request->lrq_data = data; if (!(lock_id = grant_or_que(request, lock, lck_wait))) { *status_vector++ = gds_arg_gds; - *status_vector++ = (lck_wait > 0) ? gds__deadlock : - ((lck_wait < 0) ? gds__lock_timeout : gds__lock_conflict); + *status_vector++ = (lck_wait > 0) ? gds_deadlock : + ((lck_wait < 0) ? gds_lock_timeout : gds_lock_conflict); *status_vector++ = gds_arg_end; } ASSERT_RELEASED; @@ -846,9 +855,9 @@ If this happens on another classic platform add that platform too. - Shailesh (reinterpret_cast < FPTR_INT_VOID_PTR > (blocking_action_thread), &LOCK_owner_offset, THREAD_critical, 0, 0)) { *status_vector++ = gds_arg_gds; - *status_vector++ = gds__lockmanerr; + *status_vector++ = gds_lockmanerr; *status_vector++ = gds_arg_gds; - *status_vector++ = gds__sys_request; + *status_vector++ = gds_sys_request; *status_vector++ = gds_arg_string; *status_vector++ = (STATUS) "CreateThread"; *status_vector++ = gds_arg_win32; @@ -875,9 +884,9 @@ If this happens on another classic platform add that platform too. - Shailesh if (status = gds__thread_start((FPTR_INT) blocking_action_thread, &LOCK_owner_offset, THREAD_high, 0, 0)) { *status_vector++ = gds_arg_gds; - *status_vector++ = gds__lockmanerr; + *status_vector++ = gds_lockmanerr; *status_vector++ = gds_arg_gds; - *status_vector++ = gds__sys_request; + *status_vector++ = gds_sys_request; *status_vector++ = gds_arg_string; *status_vector++ = (STATUS) "thr_create"; *status_vector++ = gds_arg_unix; @@ -1022,7 +1031,7 @@ void LOCK_manager( PTR manager_owner_offset) by setting an alarm clock. */ ret = ISC_event_wait(1, &event_ptr, &value, - LOCKMANTIMEOUT * 1000000, lock_alarm_handler, + LOCKMANTIMEOUT * 1000000, (FPTR_VOID) lock_alarm_handler, event_ptr); #ifdef DEBUG @@ -1636,7 +1645,7 @@ static UCHAR *alloc( SSHORT size, STATUS * status_vector) if (status_vector) { *status_vector++ = gds_arg_gds; - *status_vector++ = gds__random; + *status_vector++ = gds_random; *status_vector++ = gds_arg_string; *status_vector++ = (STATUS) "lock manager out of room"; *status_vector++ = gds_arg_end; @@ -2052,9 +2061,9 @@ static void bug( STATUS * status_vector, CONST TEXT * string) if (status_vector) { *status_vector++ = gds_arg_gds; - *status_vector++ = gds__lockmanerr; + *status_vector++ = gds_lockmanerr; *status_vector++ = gds_arg_gds; - *status_vector++ = gds__random; + *status_vector++ = gds_random; *status_vector++ = gds_arg_string; *status_vector++ = (STATUS) string; *status_vector++ = gds_arg_end; @@ -2176,8 +2185,8 @@ int *ast_argument, STATUS * status_vector) ++LOCK_header->lhb_timeouts; release(owner_offset); *status_vector++ = gds_arg_gds; - *status_vector++ = (lck_wait > 0) ? gds__deadlock : - ((lck_wait < 0) ? gds__lock_timeout : gds__lock_conflict); + *status_vector++ = (lck_wait > 0) ? gds_deadlock : + ((lck_wait < 0) ? gds_lock_timeout : gds_lock_conflict); *status_vector++ = gds_arg_end; return FALSE; @@ -2801,7 +2810,7 @@ static USHORT fork_lock_manager( STATUS * status_vector) gds__prefix(string, LOCK_MANAGER); #endif if (statistics(string, &stat_buf) == -1) { - bug(status_vector, "can't start lock manager"); + bug(status_vector, "can't start lock manager: gds_lock_mgr"); return FALSE; } diff --git a/src/lock/manager.cpp b/src/lock/manager.cpp index c1f87153fd..fa3454cbcf 100644 --- a/src/lock/manager.cpp +++ b/src/lock/manager.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/common.h" #include "../jrd/ib_stdio.h" #include "../jrd/jrd.h" @@ -41,7 +42,7 @@ #endif -void main( int argc, char **argv) +int main( int argc, char **argv) { /************************************** * diff --git a/src/lock/pls.cpp b/src/lock/pls.cpp index e8b9193123..e4936a4253 100644 --- a/src/lock/pls.cpp +++ b/src/lock/pls.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "lock.h" #include "plserver.h" diff --git a/src/lock/plserver.cpp b/src/lock/plserver.cpp index ff98755a6f..5d5462b441 100644 --- a/src/lock/plserver.cpp +++ b/src/lock/plserver.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include "../jrd/common.h" diff --git a/src/lock/print.cpp b/src/lock/print.cpp index 2e57361498..729e2d036f 100644 --- a/src/lock/print.cpp +++ b/src/lock/print.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include diff --git a/src/lock/printv3.cpp b/src/lock/printv3.cpp index 4bb56ef6a4..1e83453459 100644 --- a/src/lock/printv3.cpp +++ b/src/lock/printv3.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #ifdef IMP diff --git a/src/lock/printv3s4.cpp b/src/lock/printv3s4.cpp index a49db9c8a2..faa4ec606f 100644 --- a/src/lock/printv3s4.cpp +++ b/src/lock/printv3s4.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include "../lock/lockv3s4.h" #include "../lock/prtv3_proto.h" diff --git a/src/lock/reset.cpp b/src/lock/reset.cpp index 5c7f73ca95..d07eaf1a63 100644 --- a/src/lock/reset.cpp +++ b/src/lock/reset.cpp @@ -16,6 +16,7 @@ * All Rights Reserved. * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "/sys5/usr/include/sys/types.h" #include "/sys5/usr/include/sys/ipc.h" #include "/sys5/usr/include/sys/shm.h" diff --git a/src/lock/ulimit.cpp b/src/lock/ulimit.cpp index 4783371013..5feb9b55bc 100644 --- a/src/lock/ulimit.cpp +++ b/src/lock/ulimit.cpp @@ -16,6 +16,7 @@ * All Rights Reserved. * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "/bsd4.2/usr/include/sys/time.h" #include "/bsd4.2/usr/include/sys/resource.h" diff --git a/src/make.new/Makefile.in.alice b/src/make.new/Makefile.in.alice new file mode 100644 index 0000000000..6070e768cf --- /dev/null +++ b/src/make.new/Makefile.in.alice @@ -0,0 +1,72 @@ +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. You may obtain a copy of the Licence at +# http://www.gnu.org/copyleft/gpl.html +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Relevant for more details. +# +# This file was created by members of the firebird development team. +# All individual contributions remain the Copyright (C) of those +# individuals. Contributors to this file are either listed here or +# can be obtained from a CVS history command. +# +# All rights reserved. +# +# Created by: Mark O'Donohue +# +# Contributor(s): +# +# +# $Id: Makefile.in.alice,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# + +ROOT=../.. + +include $(ROOT)/src/make.rules +include $(ROOT)/src/make.defaults +include $(ROOT)/src/make.platform +include $(ROOT)/src/make.shared.variables + +@SET_MAKE@ + + +unexport ISC_USER +unexport ISC_PASSWORD + + +ALICE_Sources= alice.cpp all.cpp exe.cpp alice_meta.cpp tdr.cpp +ALICE_Objects = $(ALICE_Sources:%.cpp=$(OBJ)/%.o) + +AllObjects = $(Alice_Objects) +Dependencies = $(All_Objects:.o=.d) + + +.PHONY: gfix + + +# Ok so alice, all-else became the program gfix. +gfix: $(BIN)/gfix + +$(BIN)/gfix: $(ALICE_Objects) $(LIBGDS_LA) + $(EXE_LINK) $(LINK_OPTS) $^ -o $@ $(LINK_LIBS) +# $(CXX) $(LINK_OPTS) $^ -o $@ $(LINK_LIBS) + $(CHMOD_7) $@ + + +alice_meta.cpp: yachts.lnk alice_meta.epp + +yachts.lnk: + ln -fs ../refDatabases/empty.gdb yachts.lnk + + +include $(Dependencies) + diff --git a/src/make.new/Makefile.in.burp b/src/make.new/Makefile.in.burp new file mode 100644 index 0000000000..09c0e59e40 --- /dev/null +++ b/src/make.new/Makefile.in.burp @@ -0,0 +1,224 @@ +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. You may obtain a copy of the Licence at +# http://www.gnu.org/copyleft/gpl.html +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Relevant for more details. +# +# This file was created by members of the firebird development team. +# All individual contributions remain the Copyright (C) of those +# individuals. Contributors to this file are either listed here or +# can be obtained from a CVS history command. +# +# All rights reserved. +# +# Created by: Mark O'Donohue +# +# Contributor(s): +# +# +# $Id: Makefile.in.burp,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# + +ROOT=../.. + +include $(ROOT)/src/make.rules +include $(ROOT)/src/make.defaults +include $(ROOT)/src/make.platform +include $(ROOT)/src/make.shared.variables + +@SET_MAKE@ + +unexport ISC_USER +unexport ISC_PASSWORD + + +BURP_OBJECTS= backup.o burp.o canonical.o misc.o mvol.o restore.o +SPIT_OBJECTS= spit.o + + +.PHONY: gbak_static + + +gbak_static : $(BIN)/gbak_static + +$(BIN)/gbak_static : $(BURP_OBJECTS) $(LIB)/jrd_static.a + $(CXX) $(LINK_OPTS) $^ -o $@ $(COREFOUNDATION_LINK) $(LINK_LIBS) + + + + + +# On a PC environment it also originally had a way of includeing +# ../remote/xdr.o which would be needed to talk across the network. +# Was called BURP_REMOTE_LINK=source/remote/xdr.o in prefix.win_nt +# +# The SO_NETWORK_LIB = -lnsl is used on solaris boxes. + +gbak: $(BIN)/gbak + +$(BIN)/gbak: $(BURP_OBJECTS) $(LIBGDS_LA) + $(CXX) $(LINK_OPTS) $^ -o $@ $(LINK_LIBS) + $(CHMOD_7) $@ + +gsplit : $(BIN)/gsplit + +# be careful of split vs spit here the public name is gsplit the internal +# one is spit, so be careful the macros have the right name. + +$(BIN)/gsplit: $(SPIT_OBJECTS) $(LIBGDS_LA) + $(CXX) $(LINK_OPTS) $^ -o $@ $(LINK_LIBS) + $(CHMOD_7) $@ + + +yachts.lnk: + ln -fs ../refDatabases/empty.gdb yachts.lnk + + +# don't forget spit... + + +all: burp$(EXEC_EXT) spit$(EXEC_EXT) + +# JMB $(JRD_LINK) already in shared library +burp: burplib.a $(BURP_REMOTE_LINK) $(GDSSHR) + -$(RM) burp + $(CXX) $(LINK_OPTS) $(BURP_OBJECTS) $(T_SWITCH) \ + $(BURP_REMOTE_LINK) -o burp $(GDSSHR_LINK) $(SO_NETWORK_LIB) + $(CHMOD_7) burp + $(MV) burp $(BURP) + $(TOUCH) burp + $(CHMOD_6) burp + +#burp/gbak_static gbak_static $(OBJS)/firebird/bin/gbak_static: \ +# $(OBJS)/jrd/jrd_static.a burplib.a +# $(CXX) burplib.a $(OBJS)/jrd/jrd_static.a -o gbak_static \ +# $(COREFOUNDATION_LINK) $(GPRE_STATIC_LINK_OPTS) $(DROP_LINK) +# $(MV) gbak_static $(OBJS)/firebird/bin/gbak_static + +burp.exe: burplib.lib $(JRD_LINK) $(BURP_REMOTE_LINK) + -$(RM) burp.exe + $(CC) $(LINK_OPTS) $(O_EXE_SWITCH)burp \ + $(BURP_OBJECTS) $(JRD_LINK) $(BURP_REMOTE_LINK) $(GDSSHR_LINK) $(WSOCKLIB) + $(MV) burp.exe $(BURP) + $(RM) burp.exe + $(TOUCH) burp.exe + +burplib.a: $(BURP_OBJECTS) $(JRD_LINK) + -$(RM) burplib.a + $(AR) burplib.a $(BURP_OBJECTS) $(SCO_OBJS_BURPLIB) + -ranlib burplib.a + $(CHMOD_6) burplib.a + +libgbaklib.a: burplib.a + -$(RM) libgbaklib.a + $(CP) burplib.a $(OBJS)/firebird/lib/gbaklib.a + $(TOUCH) libgbaklib.a + $(CHMOD_6) libgbaklib.a + +burplib.lib: $(BURP_OBJECTS) + -$(RM) burplib.lib + $(IMPLIB) -out:burplib.lib $(BURP_OBJECTS) + $(TOUCH) burplib.lib + +#spit: $(SPIT_OBJECTS) +# -$(RM) spit +# $(CC) $(LINK_OPTS) $(SPIT_OBJECTS) $(STDIO) -o spit +# $(CHMOD_7) spit +# $(MV) spit $(SPIT) +# $(TOUCH) spit +# $(CHMOD_6) spit + +spit.exe: $(SPIT_OBJECTS) + -$(RM) spit.exe + $(CC) $(LINK_OPTS) $(O_EXE_SWITCH)spit \ + $(SPIT_OBJECTS) $(GDSSHR_LINK) + $(MV) spit.exe $(SPIT) + $(RM) spit.exe + $(TOUCH) spit.exe + + +#$(OBJS)/dbs/empty.gdb.dummy: force +# $(CD) $(OBJS)/dbs && $(MAKE) empty.gdb.dummy + +debug: $(BURP_OBJECTS) $(GDSLIB_BACKEND) + $(CXX) $(LINK_OPTS) $(CXX_INCLUDE_DIRS) -g $(BURP_OBJECTS) -o burp_dbg $(GDSLIB_LINK) + +debug_nt: $(BURP_OBJECTS) + $(CXX) $(DEBUG_LINK_OPTS) $(CXX_INCLUDE_DIRS) $(O_EXE_SWITCH)burp_dbg $(BURP_OBJECTS) $(GDSLIB_LINK) + +$(OBJS)/jrd/jrd_static.a: + $(CD) $(OBJS)/jrd && $(MAKE) $@ + +all.o: all.cpp $(QLI_HEADERS) +backup.cpp: yachts.lnk backup.epp +backup.o: backup.cpp burp.h \ + backu_proto.h burp_proto.h canon_proto.h mvol_proto.h \ + $(SOURCE)/remote/protocol.h \ + $(SOURCE)/jrd/align.h +burp.h: $(SOURCE)/jrd/dsc.h +# $(TOUCH) burp.h +burp.o: burp.cpp burp.h \ + burp_proto.h backu_proto.h mvol_proto.h resto_proto.h \ + $(SOURCE)/jrd/license.h $(SOURCE)/jrd/why_proto.h +canonical.o: canonical.cpp burp.h \ + canon_proto.h \ + $(SOURCE)/remote/remote.h $(SOURCE)/jrd/sdl.h $(SOURCE)/jrd/align.h +spit.o: spit.cpp spit.h +misc.o: misc.cpp burp.h \ + burp_proto.h misc_proto.h +mvol.o: mvol.cpp burp.h \ + burp_proto.h mvol_proto.h \ + $(SOURCE)/jrd/gds_proto.h +restore.cpp: yachts.lnk restore.epp +restore.o: restore.cpp burp.h \ + burp_proto.h canon_proto.h misc_proto.h mvol_proto.h \ + resto_proto.h \ + $(SOURCE)/jrd/align.h $(SOURCE)/jrd/flags.h \ + $(SOURCE)/jrd/obj.h $(SOURCE)/remote/protocol.h + +$(GDSSHR) $(GDSLIB_BACKEND) $(JRD_LINK): + $(CD) $(OBJS)/jrd && $(MAKE) ALT_O="alt.o.ps1" ALT_BIN="alt.bin.ps1" SECURITY_MISC="" SECURITY_P_MISC="" CFLAGS="$(CFLAGS)" SYSTEM="$(SYSTEM)" $(@F) +$(REMOTE_LINK) remote_dummy: + $(CD) $(OBJS)/remote && $(MAKE) CFLAGS="$(CFLAGS)" SYSTEM="$(SYSTEM)" $(@F) + +force: + +# This entry is used to programatically update the include file dependencies +# for all *.c files in the current directory. +# +# Note that it is specific to Solaris by using the -xM1 compiler option. +# This option has CC generate dependency lines for the makefile - but +# does not generate object files. +# It is likely that a similar option exists on other platforms. +# +# It is recommended that depends.mak be created on a platform +# that supports such an option. depends.mak is not platform dependent, it uses +# the standard makefile output format, as can be copied to platforms +# that don't have a -xM1 feature in the c compiler. +# +depends.mak: + -$(RM) depends.out + -$(CC) $(CFLAGS) -xM1 *.c 1>&2 > depends.out + -$(RM) depends.mak + $(ECHO) "# depends.mak - burp" > depends.mak + $(ECHO) "# Created by 'make depends.mak'" >> depends.mak + date "+# Created on %Y-%m-%d" >> depends.mak + sed -e "s:source/[a-z/]*/source:source:g" -e "s:source/burp/::g"\ + depends.out |sort|uniq >> depends.mak + -$(RM) depends.out + +# In the event that a platform does not support the make directive "include" - +# concatenate "depends.mak" with the makefile. +# +#include depends.mak + diff --git a/src/make.new/Makefile.in.client b/src/make.new/Makefile.in.client new file mode 100644 index 0000000000..2122d5b69e --- /dev/null +++ b/src/make.new/Makefile.in.client @@ -0,0 +1,231 @@ +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. You may obtain a copy of the Licence at +# http://www.gnu.org/copyleft/gpl.html +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Relevant for more details. +# +# This file was created by members of the firebird development team. +# All individual contributions remain the Copyright (C) of those +# individuals. Contributors to this file are either listed here or +# can be obtained from a CVS history command. +# +# All rights reserved. +# +# Created by: Mark O'Donohue +# +# Contributor(s): +# +# +# $Id: Makefile.in.client,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# + +ROOT=../.. + +include $(ROOT)/src/make.rules +include $(ROOT)/src/make.defaults +include $(ROOT)/src/make.platform +include $(ROOT)/src/make.shared.variables + +@SET_MAKE@ + +GPRE= source/interbase/bin/gpre$(EXEC_EXT) +GPRE_FLAGS= -r -m -z -n + +DSQL_MISC= source/dsql/array.o source/dsql/blob.o source/dsql/preparse.o \ + source/dsql/user_dsql.o source/dsql/utld.o + +DSQL_P_MISC= source/dsql/array.bin source/dsql/blob.bin source/dsql/preparse.bin \ + source/dsql/user_dsql.bin source/dsql/utld.bin + + +REMOTE_MISC= source/remote/allr.o source/remote/inet.o \ + source/remote/interface.o source/remote/merge.o \ + source/remote/parser.o source/remote/protocol.o \ + source/remote/remote.o $(NET_OBJECTS) + +REMOTE_P_MISC= source/remote/allr.bin source/remote/inet.bin \ + source/remote/interface.bin source/remote/merge.bin \ + source/remote/parser.bin source/remote/protocol.bin \ + source/remote/remote.bin $(NET_P_OBJECTS) + +JRD_GDS_H= source/jrd/gds.h + +JRD_MISC= source/jrd/alt.o source/jrd/cvt.o \ + source/jrd/dsc.o source/jrd/dls.o \ + source/jrd/enc.o source/jrd/gds.o source/jrd/isc.o \ + source/jrd/isc_file.o source/jrd/isc_ipc.o \ + source/jrd/isc_sync.o \ + source/jrd/perf.o source/jrd/sch.o source/jrd/sdl.o \ + source/jrd/thd.o source/jrd/utl.o source/jrd/why.o \ + $(JRD_MISC_OBJECTS) + +JRD_P_MISC= source/jrd/alt.bin source/jrd/cvt.bin \ + source/jrd/dsc.bin source/jrd/dls.bin \ + source/jrd/enc.bin source/jrd/gds.bin source/jrd/isc.bin \ + source/jrd/isc_file.bin source/jrd/isc_ipc.bin \ + source/jrd/isc_sync.bin \ + source/jrd/perf.bin source/jrd/sch.bin source/jrd/sdl.bin \ + source/jrd/thd.bin source/jrd/utl.bin source/jrd/why.bin \ + $(STDIO_P_OBJ) $(JRD_P_MISC_OBJECTS) + +SECURITY_MISC= source/utilities/security.o + +SECURITY_P_MISC= source/utilities/security.bin + +CLIENT_OBJECTS= $(JRD_MISC) $(DSQL_MISC) $(REMOTE_MISC) $(SECURITY_MISC) + +# If you add any more Objects to the CLIENT_P_OBJECTS definition, +# please create an action rule for the object below. +# For eg: see the rule for $(JRD_P_MISC). +# This is required for super_client to be built properly with the +# objects having -DSUPERCLIENT in them turned on from this dir. +CLIENT_P_OBJECTS= $(JRD_P_MISC) $(DSQL_P_MISC) $(REMOTE_P_MISC) \ + $(SECURITY_P_MISC) + +all: super_client + +super_client: $(SUPER_CLIENT_GDSSHR) + +gdsmt.so.1 $(SO_SUPER_GDSSHR): \ + $(JRD_GDS_H) client_p_objects $(CLIENT_P_OBJECTS) + -$(RM) gdsmt.so.1 + ld $(LD_OPTS) libgdsmt.so.0 $(ZDEFS) $(CLIENT_P_OBJECTS) \ + $(LD_LIBS) -o gdsmt.so.1 + $(CHMOD_6) gdsmt.so.1 + $(MV) gdsmt.so.1 $(SO_SUPER_GDSSHR) + $(TOUCH) gdsmt.so.1 + $(CHMOD_6) gdsmt.so.1 + +gds.sl.1 $(HP_SUPER_GDSSHR): \ + $(JRD_GDS_H) client_p_objects $(CLIENT_P_OBJECTS) + -$(RM) gds.sl.1 + ld -b $(LD_OPTS) $(CLIENT_P_OBJECTS) $(LD_LIBS) \ + -o gds.sl.1 + $(CHMOD_7) gds.sl.1 + $(MV) gds.sl.1 $(HP_SUPER_GDSSHR) + $(TOUCH) gds.sl.1 + $(CHMOD_6) gds.sl.1 + +gds.so.1 $(LX_SUPER_GDSSHR): \ + $(JRD_GDS_H) client_p_objects $(CLIENT_P_OBJECTS) + -$(RM) gds.so.1 + ld $(LD_OPTS) $(CLIENT_P_OBJECTS) $(LD_LIBS) \ + -o gds.so.1 + $(CHMOD_7) gds.so.1 + $(MV) gds.so.1 $(LX_SUPER_GDSSHR) + $(TOUCH) gds.so.1 + $(CHMOD_6) gds.so.1 + +gds.dylib.1 $(DARWIN_SUPER_GDSSHR): $(JRD_GDS_H) $(PYXIS_P_MISC) $(WAL_P_MISC) \ + client_p_objects $(CLIENT_P_OBJECTS) + -$(RM) gds.dylib.1 + libtool -dynamic -o gds.dylib.1 -install_name \ + /Library/Frameworks/Firebird.framework/Versions/A/Firebird \ + -current_version 1.0.0 -compatibility_version 1.0.0 \ + $(CLIENT_P_OBJECTS) $(PYXIS_P_MISC) $(WAL_P_MISC) \ + $(LD_LIBS) -framework System -framework Foundation + $(CHMOD_7) gds.dylib.1 + $(MV) gds.dylib.1 $(DARWIN_SUPER_GDSSHR) + $(TOUCH) gds.dylib.1 + $(CHMOD_6) gds.dylib.1 + -$(RM) $(WAL_P_MISC) $(WAL_MISC) + +gdsshr.a.1 $(AIX_PPC_SUPER_GDSSHR): \ + $(JRD_GDS_H) client_p_objects $(CLIENT_P_OBJECTS) + -$(RM) gdsshr.a.1 + ld $(CLIENT_P_OBJECTS) -bM:SRE -H1024 -bE:source/jrd/gds.bind -lc \ + -o gdsshr.a.1 + $(CHMOD_6) gdsshr.a.1 + $(MV) gdsshr.a.1 $(AIX_PPC_SUPER_GDSSHR) + $(TOUCH) gdsshr.a.1 + $(CHMOD_6) gdsshr.a.1 + +gds.so.0 $(DG_GDSSHR) $(DG_X86_GDSSHR) $(SOL_GDSSHR) $(UNIXWARE_GDSSHR): \ + $(JRD_P_OBJECTS) flu.bin $(CSI_P_MISC) $(DSQL_P_MISC) \ + $(LOCK_P_MISC) $(REMOTE_P_MISC) $(BRIDGE_P_MISC) \ + $(INTL_P_MISC) $(WAL_P_MISC) \ + $(FUNCTIONS) $(GDSFLIB) + -$(RM) gds.so.0 + ld $(LD_OPTS) libgds.so.0 $(ZDEFS) $(JRD_P_OBJECTS) flu.bin \ + $(CSI_P_MISC) $(DSQL_P_MISC) $(LOCK_P_MISC) \ + $(REMOTE_P_MISC) $(BRIDGE_P_MISC) \ + $(INTL_P_MISC) $(WAL_P_MISC) $(FUNCTIONS) $(GDSF_LIB) \ + $(LD_LIBS) -o gds.so.0 + $(CHMOD_6) gds.so.0 + $(MV) gds.so.0 $(GDSSHR) + $(TOUCH) gds.so.0 + $(CHMOD_6) gds.so.0 + +gdsf.so $(DG_FUNCSHR) $(DG_X86_FUNCSHR): functions.bin + -$(RM) gdsf.so + ld -G functions.bin -o gdsf.so + $(CHMOD_6) gdsf.so + $(MV) gdsf.so $(FUNCSHR) + $(TOUCH) gdsf.so + $(CHMOD_6) gdsf.so + +gdsshr.dll: $(WIN_NT_GDSSHR) + $(TOUCH) gdsshr.dll + +gds32_nt_ms.dll: $(CLIENT_OBJECTS) $(JRD_MISC) $(REMOTE_MISC) ..\jrd\gdsalias.o + -$(RM) gds32.dll gds32.lib + $(IMPLIB) -out:gds_temp.lib $(CLIENT_OBJECTS) $(JRD_MISC) $(REMOTE_MISC) + $(IMPLIB) -out:gds32.lib -def:..\jrd\gds.bind gds_temp.lib + $(LINK) $(LD_OPTS) -out:gds32.dll -dll -entry:_CRT_INIT$(DLLENTRY) gds_temp.lib gds32.exp $(CONLIBSDLL) $(WSOCKLIB) $(ADVAPILIB) $(MPRLIB) + $(RM) gds_temp.lib + $(RM) gds32.exp + $(MV) gds32.lib gds32_ms.lib + $(RM) gds32.lib + implib gds32.lib gds32.dll + tlib gds32.lib +- ..\jrd\gdsalias.o + $(MV) gds32.lib ..\interbase\lib + $(MV) gds32_ms.lib ..\interbase\lib + $(MV) gds32.dll ..\interbase\bin + $(RM) gds32.dll gds32.lib gds32_ms.lib + $(TOUCH) gds32_nt_ms.dll + +gds32_nt_bc4.dll: $(CLIENT_OBJECTS) $(JRD_MISC) $(REMOTE_MISC) + -$(RM) gds32.dll gds32.lib tmp.bind + sed -e 's/DATA READ WRITE/DATA MULTIPLE/' -e 's/LIBRARY gds32/LIBRARY gds32 INITINSTANCE/' gds.bind > tmp.bind + $(LINK) -Tpd -ap -c $(LD_OPTS) -w-inq -x /Lc:\bc4\lib c0d32 @gds.rsp,gds32.dll,,import32 cw32mt,tmp.bind + implib gds32.lib gds32.dll + $(MV) gds32.lib ..\interbase\lib + $(MV) gds32.dll ..\interbase\bin + $(RM) gds32.dll gds32.lib tmp.bind + $(TOUCH) gds32_nt_bc4.dll + +# This target just forces those who depend on it, to execute their actions +force: + $(ECHO) force + +# CLIENT + +$(DSQL_P_MISC): force + $(SH) '$(CD) source/dsql; $(MAKE) CFLAGS="$(CFLAGS)" SYSTEM=$(SYSTEM) $(@F);' + +$(REMOTE_P_MISC): force + $(SH) '$(CD) source/remote; $(MAKE) CFLAGS="$(CFLAGS)" SYSTEM=$(SYSTEM) $(@F);' + +$(JRD_P_MISC): force + $(SH) '$(CD) source/jrd; $(MAKE) CFLAGS="$(CFLAGS)" SYSTEM=$(SYSTEM) $(@F);' + +$(SECURITY_P_MISC): force + $(SH) '$(CD) source/utilities; $(MAKE) CFLAGS="$(CFLAGS)" SYSTEM=$(SYSTEM) $(@F);' + +$(JRD_GDS_H): + $(SH) '$(CD) source/jrd; $(MAKE) CFLAGS="$(CFLAGS)" SYSTEM=$(SYSTEM) $(@F)' + +client_p_objects: force + $(SH) '$(CD) source/jrd; $(MAKE) CFLAGS="$(CFLAGS)" SYSTEM=$(SYSTEM) super_client_objects' + $(SH) '$(CD) source/dsql; $(MAKE) CFLAGS="$(CFLAGS)" SYSTEM=$(SYSTEM) super_client_objects' + $(SH) '$(CD) source/remote; $(MAKE) CFLAGS="$(CFLAGS)" SYSTEM=$(SYSTEM) super_client_objects' diff --git a/src/make.new/Makefile.in.csv b/src/make.new/Makefile.in.csv new file mode 100644 index 0000000000..f813b67e95 --- /dev/null +++ b/src/make.new/Makefile.in.csv @@ -0,0 +1,133 @@ +# The contents of this file are subject to the Interbase Public +# License Version 1.0 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy +# of the License at http://www.Inprise.com/IPL.html +# +# Software distributed under the License is distributed on an +# "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express +# or implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code was created by Inprise Corporation +# and its predecessors. Portions created by Inprise Corporation are +# Copyright (C) Inprise Corporation. +# +# All Rights Reserved. +# Contributor(s): ______________________________________. + +GPRE_FLAGS= -gds -raw -ids $< + +GPRE= source/interbase/bin/gpre +CSU= source/interbase/bin/gcsu +CENTRAL_SERVER= source/interbase/bin/gds_cserver + +JRD_LINK= source/jrd/isc.o source/jrd/isc_file.o +JRD2_LINK= source/jrd/gds.o +REMOTE_LINK= source/remote/merge.o + +CSI_OBJECTS= csi.o css.o +CSI_P_OBJECTS= csi.bin css.bin + +all: csi_objects $(CSI_P_OBJS) central_server$(EXEC_EXT) csu$(EXEC_EXT) + +csi_objects: $(CSI_OBJECTS) + -$(RM) csi_objects + $(TOUCH) csi_objects + $(CHMOD_6) csi_objects + +csi_p_objs: csi_objects $(CSI_P_OBJECTS) + -$(RM) csi_objects csi_p_objs + $(TOUCH) csi_objects csi_p_objs + $(CHMOD_6) csi_objects csi_p_objs + +csilib: $(CSI_OBJECTS) $(JRD_LINK) $(REMOTE_LINK) + -$(RM) csilib + /com/bind &2 > depends.out + -$(RM) depends.mak + $(ECHO) "# depends.mak - csv" > depends.mak + $(ECHO) "# Created by 'make depends.mak'" >> depends.mak + date "+# Created on %Y-%m-%d" >> depends.mak + sed -e "s:source/[a-z/]*/source:source:g" -e "s:source/csv/::g"\ + depends.out |sort|uniq >> depends.mak + -$(RM) depends.out + +# In the event that a platform does not support the make directive "include" - +# concatenate "depends.mak" with the makefile. +# +include depends.mak + diff --git a/src/make.new/Makefile.in.dsql b/src/make.new/Makefile.in.dsql new file mode 100644 index 0000000000..ca481241bd --- /dev/null +++ b/src/make.new/Makefile.in.dsql @@ -0,0 +1,85 @@ +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. You may obtain a copy of the Licence at +# http://www.gnu.org/copyleft/gpl.html +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Relevant for more details. +# +# This file was created by members of the firebird development team. +# All individual contributions remain the Copyright (C) of those +# individuals. Contributors to this file are either listed here or +# can be obtained from a CVS history command. +# +# All rights reserved. +# +# Created by: Mark O'Donohue +# +# Contributor(s): +# +# +# $Id: Makefile.in.dsql,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# + +ROOT=../.. + +include $(ROOT)/src/make.rules +include $(ROOT)/src/make.defaults +include $(ROOT)/src/make.platform +include $(ROOT)/src/make.shared.variables + +@SET_MAKE@ + + +.PHONY: jrd_static + +jrd_static : $(LIB)/jrd_static.a($(DSQL_Objects)) + +$(LIB)/jrd_static.a(%.o) : %.o + ar crv $@ $% + + + +# In phase2 we add the same objects as before, we just rebuild them as +# portable and load them into a shared libgds.so library. + +.PHONY: jrdlib_dependencies + + +jrdlib_dependencies: $(DSQL_Objects) + + + +#DSQL_P_OBJECTS= alld.bin array.bin blob.bin ddl.bin dsql.bin \ +# errd.bin gen.bin hsh.bin make.bin metd.bin \ +# movd.bin parse.bin pass1.bin preparse.bin \ +# user_dsql.bin utld.bin + +DSQL_J_OBJECTS= array.j blob.j preparse.j user_dsql.j utld.j + +# Files which going to the super client library are : +DSQL_CLIENT_P_OBJECTS= array.bin blob.bin preparse.bin user_dsql.bin utld.bin + + +y.tab.c: parse.y + $(YACC) -l $(YFLAGS) $< +parse.cpp: parse.sed y.tab.c +# replace the above line with the following three for FLINTSTONE +# awk -f parse.awk FLINTSTONE=1 < $< > tmp.$< +# $(YACC) -l $(YFLAGS) tmp.$< +# -$(RM) tmp.$< + sed -f $< y.tab.c > $@ +# -$(RM) y.tab.c + + +Dependencies = $(DSQL_Objects:.o=.d) + +include $(Dependencies) diff --git a/src/make.new/Makefile.in.dudley b/src/make.new/Makefile.in.dudley new file mode 100644 index 0000000000..51dcd096a5 --- /dev/null +++ b/src/make.new/Makefile.in.dudley @@ -0,0 +1,209 @@ +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. You may obtain a copy of the Licence at +# http://www.gnu.org/copyleft/gpl.html +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Relevant for more details. +# +# This file was created by members of the firebird development team. +# All individual contributions remain the Copyright (C) of those +# individuals. Contributors to this file are either listed here or +# can be obtained from a CVS history command. +# +# All rights reserved. +# +# Created by: Mark O'Donohue +# +# Contributor(s): +# +# +# $Id: Makefile.in.dudley,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# + +ROOT=../.. + +include $(ROOT)/src/make.rules +include $(ROOT)/src/make.defaults +include $(ROOT)/src/make.platform +include $(ROOT)/src/make.shared.variables + +@SET_MAKE@ + +unexport ISC_USER +unexport ISC_PASSWORD + + +DUDLEY_OBJECTS= ddl.o exe.o expand.o expr.o extract.o generate.o \ + hsh.o lex.o parse.o trn.o + +# Ok this ones a hack, but it's late... +#OTHER_OBJECTS=../gpre/pretty.o + +gdef: $(BIN)/gdef + +$(BIN)/gdef: $(DUDLEY_OBJECTS) $(LIBGDS_LA) + $(CXX) $(LINK_OPTS) $^ -o $@ $(LINK_LIBS) + $(CHMOD_7) $@ + + +exe.cpp: yachts.lnk exe.epp + +yachts.lnk: + ln -fs ../refDatabases/empty.gdb yachts.lnk + + + + + + + +# If you add any more Objects from other components in this makefile, +# please create an action rule for the object below. +# For eg: see the rule for $(JRD_LINK) +ISC_LINK= $(OBJS)/jrd/isc.o +JRD_LINK= $(OBJS)/jrd/isc_file.o $(OBJS)/jrd/llio.o $(OBJS)/jrd/misc.o $(OBJS)/jrd/iberr.o +GPRE_LINK= $(OBJS)/gpre/pretty.o +WALF_LINK= $(OBJS)/wal/walf.o + + +DDL_LINK_OBJECTS= $(DUDLEY_OBJECTS) $(ISC_LINK) $(JRD_LINK) $(GPRE_LINK) \ + $(WALF_LINK) + +all: dudley$(EXEC_EXT) + +# JMB $(ISC_LINK) already in shared library +# JMB $(JRD_LINK) already in shared library +# JMB $(WALF_LINK) already in shared library +dudley: ddllib.a $(DDL_LINK_OBJECTS) $(GDSSHR) + -$(RM) dudley + $(CXX) $(LINK_OPTS) $(DUDLEY_OBJECTS) \ + $(GPRE_LINK) -o dudley $(GDSSHR_LINK) + $(CHMOD_7) dudley + $(MV) dudley $(DUDLEY) + $(TOUCH) dudley + $(CHMOD_6) dudley + +dudley.exe: ddllib.lib $(DDL_LINK_OBJECTS) + -$(RM) dudley.exe dudley.rsp + $(ECHO) $(DUDLEY_OBJECTS) > dudley.rsp + $(ECHO) $(JRD_LINK) $(GPRE_LINK) $(WALF_LINK) \ + >> dudley.rsp + $(CXX) $(LINK_OPTS) $(O_EXE_SWITCH)dudley \ + @dudley.rsp $(GDSSHR_LINK) $(ADVAPILIB) $(MPRLIB) + $(MV) dudley.exe $(DUDLEY) + $(RM) dudley.exe dudley.rsp + $(TOUCH) dudley.exe + +ddllib.a: $(DUDLEY_OBJECTS) + -rm -f ddllib.a + $(AR) ddllib.a $(DUDLEY_OBJECTS) + -ranlib ddllib.a + +ddllib.lib: $(DUDLEY_OBJECTS) + -$(RM) ddllib.lib + $(IMPLIB) -out:ddllib.lib $(DUDLEY_OBJECTS) + $(TOUCH) ddllib.lib + +debug: $(DUDLEY_OBJECTS) $(GPRE_LINK) $(GDSLIB) + $(CXX) $(LINK_OPTS) -g $(DUDLEY_OBJECTS) $(GPRE_LINK) -o dudley_dbg $(GDSLIB_LINK) + +debug_nt: $(DUDLEY_OBJECTS) $(GPRE_LINK) + $(CXX) $(DEBUG_LINK_OPTS) $(O_EXE_SWITCH)dudley_dbg $(DUDLEY_OBJECTS) $(GPRE_LINK) $(GDSLIB_LINK) + +ddl.h: $(SOURCE)/jrd/dsc.h +# $(TOUCH) ddl.h +ddl.o: ddl.cpp ddl.h \ + ddl_proto.h exe_proto.h expan_proto.h extra_proto.h \ + hsh_proto.h lex_proto.h parse_proto.h trn_proto.h \ + $(SOURCE)/jrd/license.h $(SOURCE)/jrd/gds_proto.h +exe.o: exe.cpp ddl.h \ + ddl_proto.h exe_proto.h gener_proto.h hsh_proto.h \ + lex_proto.h \ + $(SOURCE)/jrd/license.h $(SOURCE)/jrd/flags.h \ + $(SOURCE)/jrd/acl.h $(SOURCE)/jrd/intl.h $(SOURCE)/jrd/obj.h \ + $(SOURCE)/jrd/gds_proto.h $(SOURCE)/jrd/isc_f_proto.h \ + $(SOURCE)/wal/walf_proto.h + $(CXX) -c $(CFLAGS) $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) $< +expand.o: expand.cpp ddl.h parse.h \ + expan_proto.h ddl_proto.h hsh_proto.h parse_proto.h \ + $(SOURCE)/jrd/gds_proto.h +expr.o: expr.cpp ddl.h parse.h $(SOURCE)/jrd/acl.h $(SOURCE)/jrd/intl.h \ + ddl_proto.h expr_proto.h lex_proto.h parse_proto.h +extract.cpp: yachts.lnk extract.epp +extract.o: extract.cpp ddl.h \ + ddl_proto.h extra_proto.h \ + $(SOURCE)/jrd/acl.h $(SOURCE)/jrd/flags.h \ + $(SOURCE)/jrd/obj.h $(SOURCE)/jrd/gds_proto.h $(SOURCE)/wal/wal.h +generate.o: generate.cpp ddl.h \ + ddl_proto.h gener_proto.h trn_proto.h \ + $(SOURCE)/jrd/acl.h $(SOURCE)/jrd/gds_proto.h +hsh.o: hsh.cpp ddl.h parse.h \ + ddl_proto.h hsh_proto.h +lex.o: lex.cpp ddl.h parse.h \ + ddl_proto.h hsh_proto.h lex_proto.h \ + $(SOURCE)/jrd/gds_proto.h +parse.o: parse.cpp ddl.h parse.h \ + exe_proto.h expr_proto.h hsh_proto.h lex_proto.h \ + parse_proto.h \ + $(SOURCE)/jrd/acl.h $(SOURCE)/jrd/flags.h \ + $(SOURCE)/wal/wal.h $(SOURCE)/jrd/isc_f_proto.h + $(CXX) -c $(CFLAGS) $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) $< +trn.o: trn.cpp ddl.h \ + gener_proto.h lex_proto.h trn_proto.h \ + $(SOURCE)/jrd/license.h $(SOURCE)/jrd/gds_proto.h \ + $(SOURCE)/jrd/gdsassert.h \ + $(SOURCE)/gpre/prett_proto.h + + +$(OBJS)/dbs/empty.gdb: force + $(CD) $(OBJS)/dbs && $(MAKE) empty.gdb + +$(GDSSHR) $(GDSLIB) $(JRD_LINK) $(ISC_LINK): + $(CD) $(OBJS)/jrd && $(MAKE) ALT_O="alt.o.ps1" ALT_BIN="alt.bin.ps1" SECURITY_MISC="" SECURITY_P_MISC="" $(@F) + +$(GPRE_LINK): + $(CD) $(OBJS)/gpre && $(MAKE) $(@F) + +$(WALF_LINK): + $(CD) $(OBJS)/wal && $(MAKE) $(@F) + +force: + +# This entry is used to programatically update the include file dependencies +# for all *.c files in the current directory. +# +# Note that it is specific to Solaris by using the -xM1 compiler option. +# This option has CC generate dependency lines for the makefile - but +# does not generate object files. +# It is likely that a similar option exists on other platforms. +# +# It is recommended that depends.mak be created on a platform +# that supports such an option. depends.mak is not platform dependent, it uses +# the standard makefile output format, as can be copied to platforms +# that don't have a -xM1 feature in the c compiler. +# +depends.mak: + -$(RM) depends.out + -$(CC) $(CFLAGS) -xM1 *.c 1>&2 > depends.out + -$(RM) depends.mak + $(ECHO) "# depends.mak - dudley" > depends.mak + $(ECHO) "# Created by 'make depends.mak'" >> depends.mak + date "+# Created on %Y-%m-%d" >> depends.mak + sed -e "s:source/[a-z/]*/source:source:g" -e "s:source/dudley/::g"\ + depends.out |sort|uniq >> depends.mak + -$(RM) depends.out + +# In the event that a platform does not support the make directive "include" - +# concatenate "depends.mak" with the makefile. +# +#include depends.mak + diff --git a/src/make.new/Makefile.in.example5 b/src/make.new/Makefile.in.example5 new file mode 100644 index 0000000000..6cd8ab726e --- /dev/null +++ b/src/make.new/Makefile.in.example5 @@ -0,0 +1,198 @@ +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. You may obtain a copy of the Licence at +# http://www.gnu.org/copyleft/gpl.html +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Relevant for more details. +# +# This file was created by members of the firebird development team. +# All individual contributions remain the Copyright (C) of those +# individuals. Contributors to this file are either listed here or +# can be obtained from a CVS history command. +# +# All rights reserved. +# +# Created by: Mark O'Donohue +# +# Contributor(s): +# +# +# $Id: Makefile.in.example5,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# + +ROOT=../.. + +include $(ROOT)/src/make.rules +include $(ROOT)/src/make.defaults +include $(ROOT)/src/make.platform +include $(ROOT)/src/make.shared.variables + +@SET_MAKE@ + +PATH := $(BIN):$(PATH) +export PATH + + +GPRE_FLAGS= -r -m -z -n + +EXAMPLES_DEST= $(FIREBIRD)/examples/v5/ +EXAMPLES_SRC= ./ + +EMPBLD_OBJ= empbuild.o + +INTLBLD_OBJ= intlbld.o + +INPUT_FILES= empddl.sql empdml.sql indexoff.sql indexon.sql \ + job.inp lang.inp proj.inp qtr.inp + +INTL_FILES= intlddl.sql intldml.sql indexoff.sql indexon.sql \ + job.inp lang.inp proj.inp qtr.inp + + +# Add the install include directory to the search path since the +# examples need to build using those headers values. + +CFLAGS := $(CFLAGS) -I$(FIREBIRD)/include + +.PHONY: all + +all: v5_examples + +v5_examples: employee.gdb intlemp.gdb $(NT_EXAMPLES) makefile.example + $(CP) $(EXAMPLES_SRC)readme $(EXAMPLES_DEST)README + $(CP) $(EXAMPLES_SRC)align.h $(EXAMPLES_DEST)align.h + $(CP) $(EXAMPLES_SRC)api1.c $(EXAMPLES_DEST)api1.c + $(CP) $(EXAMPLES_SRC)api10.c $(EXAMPLES_DEST)api10.c + $(CP) $(EXAMPLES_SRC)api11.c $(EXAMPLES_DEST)api11.c + $(CP) $(EXAMPLES_SRC)api12.c $(EXAMPLES_DEST)api12.c + $(CP) $(EXAMPLES_SRC)api13.c $(EXAMPLES_DEST)api13.c + $(CP) $(EXAMPLES_SRC)api14.e $(EXAMPLES_DEST)api14.e + $(CP) $(EXAMPLES_SRC)api15.c $(EXAMPLES_DEST)api15.c + $(CP) $(EXAMPLES_SRC)api16.c $(EXAMPLES_DEST)api16.c + $(CP) $(EXAMPLES_SRC)api16t.c $(EXAMPLES_DEST)api16t.c + $(CP) $(EXAMPLES_SRC)api2.c $(EXAMPLES_DEST)api2.c + $(CP) $(EXAMPLES_SRC)api3.c $(EXAMPLES_DEST)api3.c + $(CP) $(EXAMPLES_SRC)api4.c $(EXAMPLES_DEST)api4.c + $(CP) $(EXAMPLES_SRC)api5.c $(EXAMPLES_DEST)api5.c + $(CP) $(EXAMPLES_SRC)api6.c $(EXAMPLES_DEST)api6.c + $(CP) $(EXAMPLES_SRC)api7.c $(EXAMPLES_DEST)api7.c + $(CP) $(EXAMPLES_SRC)api8.c $(EXAMPLES_DEST)api8.c + $(CP) $(EXAMPLES_SRC)api9.c $(EXAMPLES_DEST)api9.c + $(CP) $(EXAMPLES_SRC)api9f.c $(EXAMPLES_DEST)api9f.c + $(CP) $(EXAMPLES_SRC)apifull.c $(EXAMPLES_DEST)apifull.c + $(CP) $(EXAMPLES_SRC)employe2.sql $(EXAMPLES_DEST)employe2.sql + $(CP) $(EXAMPLES_SRC)dyn1.e $(EXAMPLES_DEST)dyn1.e + $(CP) $(EXAMPLES_SRC)dyn2.e $(EXAMPLES_DEST)dyn2.e + $(CP) $(EXAMPLES_SRC)dyn3.e $(EXAMPLES_DEST)dyn3.e + $(CP) $(EXAMPLES_SRC)dyn4.e $(EXAMPLES_DEST)dyn4.e + $(CP) $(EXAMPLES_SRC)dyn5.e $(EXAMPLES_DEST)dyn5.e + $(CP) $(EXAMPLES_SRC)dynfull.e $(EXAMPLES_DEST)dynfull.e + echo $(LD_LIBRARY_PATH) + $(GBAK) employee.gdb $(EXAMPLES_DEST)employee.gbk +# -$(RM) $(EXAMPLES_DEST)employee.gdb + $(GBAK) -r $(EXAMPLES_DEST)employee.gbk $(EXAMPLES_DEST)employee.gdb + $(CP) $(EXAMPLES_SRC)example.h $(EXAMPLES_DEST)example.h + $(CP) $(EXAMPLES_SRC)api9f.sql $(EXAMPLES_DEST)api9f.sql + $(GBAK) intlemp.gdb $(EXAMPLES_DEST)intlemp.gbk +# -$(RM) $(EXAMPLES_DEST)intlemp.gdb + $(GBAK) -r $(EXAMPLES_DEST)intlemp.gbk $(EXAMPLES_DEST)intlemp.gdb + $(CP) $(EXAMPLES_SRC)stat1.e $(EXAMPLES_DEST)stat1.e + $(CP) $(EXAMPLES_SRC)stat10.e $(EXAMPLES_DEST)stat10.e + $(CP) $(EXAMPLES_SRC)stat11.e $(EXAMPLES_DEST)stat11.e + $(CP) $(EXAMPLES_SRC)stat12.e $(EXAMPLES_DEST)stat12.e + $(CP) $(EXAMPLES_SRC)stat12t.e $(EXAMPLES_DEST)stat12t.e + $(CP) $(EXAMPLES_SRC)stat2.e $(EXAMPLES_DEST)stat2.e + $(CP) $(EXAMPLES_SRC)stat3.e $(EXAMPLES_DEST)stat3.e + $(CP) $(EXAMPLES_SRC)stat4.e $(EXAMPLES_DEST)stat4.e + $(CP) $(EXAMPLES_SRC)stat5.e $(EXAMPLES_DEST)stat5.e + $(CP) $(EXAMPLES_SRC)stat6.e $(EXAMPLES_DEST)stat6.e + $(CP) $(EXAMPLES_SRC)stat7.e $(EXAMPLES_DEST)stat7.e + $(CP) $(EXAMPLES_SRC)stat8.e $(EXAMPLES_DEST)stat8.e + $(CP) $(EXAMPLES_SRC)stat9.e $(EXAMPLES_DEST)stat9.e + $(CP) $(EXAMPLES_SRC)udf.sql $(EXAMPLES_DEST)udf.sql + $(CP) $(EXAMPLES_SRC)udflib.c $(EXAMPLES_DEST)udflib.c + $(CP) makefile.example $(EXAMPLES_DEST)makefile + +nt_examples: + $(CP) $(EXAMPLES_SRC)api9f.def $(EXAMPLES_DEST)api9f.def + $(CP) $(EXAMPLES_SRC)udflib.def $(EXAMPLES_DEST)udflib.def + $(CP) $(EXAMPLES_SRC)makefile.bc $(EXAMPLES_DEST)Makefile.bc + $(CP) $(EXAMPLES_SRC)makefile.msc $(EXAMPLES_DEST)Makefile.msc + +# Ok the following little story is, first build empbuild.gdb an empty db +# using a script file. Then we can compile the empbuild.e file, then we +# can run it to create employee.gdb database populated with data by the +# program. Thats how I found it. + +employee.gdb: empbuild$(EXEC_EXT) $(INPUT_FILES) + -$(RM) employee.gdb +# $(CP) $(SOURCE)/examples/empddl.sql . +# $(CP) $(SOURCE)/examples/indexoff.sql . +# $(CP) $(SOURCE)/examples/indexon.sql . +# $(CP) $(SOURCE)/examples/empdml.sql . +# $(CP) $(SOURCE)/examples/lang.inp . +# $(CP) $(SOURCE)/examples/proj.inp . +# $(CP) $(SOURCE)/examples/job.inp . +# $(CP) $(SOURCE)/examples/qtr.inp . + ./empbuild employee.gdb + -$(CHMOD_6) employee.gdb + +empbuild: $(EMPBLD_OBJ) $(LIBGDS_LA) + -$(RM) $@ + $(EXE_LINK) $(LINK_OPTS) $^ -o $@ $(LINK_LIBS) + $(CHMOD_7) $@ + +empbuild.exe: $(EMPBLD_OBJ) + -$(RM) empbuild.exe + $(CC) $(O_EXE_SWITCH)empbuild $(LINK_OPTS) empbuild.o $(GDS_LINK) + +empbuild.c: empbuild.gdb empbuild.e + +empbuild.gdb : empddl.sql empbld.sql + -$(RM) $@ + $(ISQL) -i empbld.sql + + +# The chain for intlemp.gdb is the same a script file to create an empty database +# to allow a .e program to be compiled, to then create and populate with data +# the intlemp.gdb database. + +intlemp.gdb: intlbld$(EXEC_EXT) $(INTL_FILES) + -$(RM) intlemp.gdb +# $(CP) $(SOURCE)/examples/intlddl.sql . +# $(CP) $(SOURCE)/examples/indexoff.sql . +# $(CP) $(SOURCE)/examples/indexon.sql . +# $(CP) $(SOURCE)/examples/intldml.sql . +# $(CP) $(SOURCE)/examples/lang.inp . + ./intlbld intlemp.gdb + -$(CHMOD_6) intlemp.gdb + +intlbuild.gdb : intlddl.sql intlbld.sql + -$(RM) intlbuild.gdb + $(ISQL) -i intlbld.sql + +intlbld: $(INTLBLD_OBJ) $(LIBGDS_LA) + -$(RM) $@ + $(EXE_LINK) $(LINK_OPTS) $^ -o $@ $(LINK_LIBS) + $(CHMOD_7) $@ + +intlbld.exe: $(INTLBLD_OBJ) + -$(RM) intlbld.exe + $(CC) $(O_EXE_SWITCH)intlbld $(LINK_OPTS) intlbld.o $(GDS_LINK) + + +intlbld.c: intlbuild.gdb intlbld.e + + + +makefile.example: Makefile + $(CP) Makefile makefile.example diff --git a/src/make.new/Makefile.in.extlib b/src/make.new/Makefile.in.extlib new file mode 100644 index 0000000000..b9c258c28a --- /dev/null +++ b/src/make.new/Makefile.in.extlib @@ -0,0 +1,75 @@ +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. You may obtain a copy of the Licence at +# http://www.gnu.org/copyleft/gpl.html +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Relevant for more details. +# +# This file was created by members of the firebird development team. +# All individual contributions remain the Copyright (C) of those +# individuals. Contributors to this file are either listed here or +# can be obtained from a CVS history command. +# +# All rights reserved. +# +# Created by: Mark O'Donohue +# +# Contributor(s): +# +# +# $Id: Makefile.in.extlib,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# + +ROOT=../.. + +include $(ROOT)/src/make.rules +include $(ROOT)/src/make.defaults +include $(ROOT)/src/make.platform +include $(ROOT)/src/make.shared.variables + +@SET_MAKE@ + +UDF= $(FIREBIRD)/UDF + + +all: lib_ib_udf lib_ib_util + + + +# ib_udf.so +# +# User defined functions. (I've put the .so extension back onto the library) +# + +UDF_OBJECTS = ib_udf.o + +lib_ib_udf: $(UDF)/ib_udf.so($(UDF_OBJECTS)) + +$(UDF)/ib_udf.so(%.o) : %.o + ar crsv $@ $% + + +# ib_util + +UTIL_OBJECTS = ib_util.o + +lib_ib_util: $(LIB)/ib_util.so($(UDF_OBJECTS)) + +$(LIB)/ib_util.so(%.o) : %.o + ar crsv $@ $% + + +.c.o: + $(CC) -c $(PIC_FLAGS) $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) $< + +.cpp.o: + $(CXX) -c $(PIC_FLAGS) $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) $< diff --git a/src/make.new/Makefile.in.firebird b/src/make.new/Makefile.in.firebird new file mode 100644 index 0000000000..ffa9c6d6e3 --- /dev/null +++ b/src/make.new/Makefile.in.firebird @@ -0,0 +1,1142 @@ +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. You may obtain a copy of the Licence at +# http://www.gnu.org/copyleft/gpl.html +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Relevant for more details. +# +# This file was created by members of the firebird development team. +# All individual contributions remain the Copyright (C) of those +# individuals. Contributors to this file are either listed here or +# can be obtained from a CVS history command. +# +# All rights reserved. +# +# Created by: Mark O'Donohue +# +# Contributor(s): +# +# +# $Id: Makefile.in.firebird,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# + +ROOT=.. + +include $(ROOT)/src/make.rules +include $(ROOT)/src/make.defaults +include $(ROOT)/src/make.platform +include $(ROOT)/src/make.shared.variables + +@SET_MAKE@ + +ISC_USER= sysdba +ISC_PASSWORD= masterkey + +export ISC_USER +export ISC_PASSWORD +export INTERBASE +export FIREBIRD +export DYLD_FRAMEWORK_PATH +export LD_LIBRARY_PATH + + +dirs = alice burp dudley dsql extlib gpre intl isql journal jrd lock msgs \ + pyxis qli remote super/remote utilities wal + + +.PHONY: firebird super_firebird $(dirs) + + +firebird: phase1 phase2 phase3 + + +#--------------------------------------------------------------------------- +# Phase1: make a gpre_static from scratch so we can parse .e and .epp files +# to build the rest of the system. It goes in two bits make a real simple +# gpre_boot one and use that to build a gpre_static one. +# +# gpre_static has a fair bit more in it and we have now actually built most +# of the libraries. With gpre_static we now have enough to build gbak and +# start restoring databases. +# +# if $(BIN)/gpre_static exists then phase1 is complete. phase1 does not then +# rebuild automatically gpre_static if some of it's dependancies change. We +# only need on gpre_static to boot after we have one we don't care. +# (If you really want to rebuild it you need to remove the executable file +# $(BIN)/gpre_static). +# +.PHONY: phase1 phase1_build jrd_boot gpre_boot jrd_static gpre_static + + +phase1: $(GPRE_STATIC) + +$(GPRE_STATIC): + $(MAKE) phase1_build + +phase1_build: jrd_boot gpre_boot build_alt_use_boot jrd_static gpre_static + +gpre_static : jrd_static + $(MAKE) -C gpre $@ + +jrd_static : gpre_boot + $(MAKE) -C jrd $@ + $(MAKE) -C dsql $@ + $(MAKE) -C lock $@ + $(MAKE) -C remote $@ + $(MAKE) -C pipe $@ + $(MAKE) -C wal $@ + +build_alt_use_boot: # Create header file so jrd/alt.cpp does not use security. + $(MAKE) -C jrd $@ # Also 'hack' security to build dummy .o files + $(MAKE) -C utilities $@ + +gpre_boot : jrd_boot + $(MAKE) -C gpre $@ + +jrd_boot : + $(MAKE) -C jrd $@ + + + + +#-------------------------------------------------------------------------- +#Phase2: We can now start build some of the static utilities needed to build +# an empty database (lock manager and create_db). Then we rebuild all the +# items we have built in the static library into a dynamic library. +# (It's probably possible to directly build the dynamic library - but thats +# for another day). We still don't have the security database stuff. +# +# Phase2 is complete with the building of an isc4.gdb user store database +# in order to do that isql and gdef tools need to be built without security +# to do that a special alt_boot.o is inserted into the shared library. +# Again once isc4.gdb is built then were not too worried about the components +# (in fact some of them have to be rebuilt again to incorperate the security +# module) +# + +.PHONY: create_db gds_lock_manager refDatabases + +phase2 : $(ISC_GDB) + +$(ISC_GDB): utilities/isc4.sql utilities/isc4.gdl + $(MAKE) phase2_build + +phase2_build: create_db gds_lock_manager empty_db gbak_static \ + ref_databases jrdlib_main gfix gbak gdef msgs isql \ + isc4.gdb + + +create_db gds_drop gds_relay : + $(MAKE) -C utilities $@ + +gsec: + $(MAKE) -C utilities gsecx # The x added since already a gsec in there. + +gds_lock_manager : + $(MAKE) -C lock $@ + +empty_db : create_db gds_lock_manager + $(MAKE) -C refDatabases $@ + +gbak_static : empty_db + $(MAKE) -C burp $@ + +ref_databases : gbak_static + $(MAKE) -C refDatabases $@ + +jrdlib_dependencies : + $(MAKE) -C jrd $@ + $(MAKE) -C dsql $@ + $(MAKE) -C lock $@ + $(MAKE) -C remote $@ + $(MAKE) -C pipe $@ + $(MAKE) -C wal $@ + $(MAKE) -C gpre $@ + $(MAKE) -C utilities $@ + +jrdlib_main: jrdlib_dependencies + $(MAKE) -C jrd $@ + +isql: # the interactive sequel query language tool + $(MAKE) -C isql $@ + +gdef: + $(MAKE) -C dudley $@ # (dudley - hmmm will have to ask) + +isc4.gdb: gdef isql # build the security database + $(MAKE) -C utilities $@ + + +#-------------------------------------------------------------------------- +#Phase3: Now we start building the tools we are actually going to use +# against the shared library. +# an empty database (lock manager and create_db). Then we rebuild all the +# items we have built in the static library into a dynamic library. +# (It's probably possible to directly build the dynamic library - but thats +# for another day). We still don't have the security database stuff. +# +# Notes: +# mainly we need gdef and isql to be able to build isc4.gdb. I wonder +# if we could reduce the tricky dependancy by restoring the isc4.gdb database +# earlier, then perhaps we could build the jrdlib in one step and include +# the security bits and pieces. + + +phase3: build_alt_use_main jrdlib_main sysdba_user \ + gfix gbak gdef msgs isql $(INTL) locks qli inet_server \ + gsplit gstat gds_relay gsec gds_drop gpre \ + extlib msgs_intl includes examples + +build_alt_use_main: # alter header file so jrd/alt.cpp DOES use security. + $(MAKE) -C jrd $@ # alter utilities to build the security objects + $(MAKE) -C utilities $@ + + +sysdba_user gstat: # add sysdba user and build gstat program + $(MAKE) -C utilities $@ + +gfix: + $(MAKE) -C alice $@ # (alice - all-else ) + + +gbak gsplit: + $(MAKE) -C burp $@ # (burp - backup and restore) + +msgs msgs_intl: # msg (local + international) files for errors etc. + $(MAKE) -C msgs $@ + + + +intl: # international character sets + $(MAKE) -C intl $@ + +locks: # the lock manager for classic server + $(MAKE) -C lock all + +qli: # the query line interpreter (predates sql interface) + $(MAKE) -C qli allx + +inet_server: # the classic server + $(MAKE) -C remote inet_server + +gpre: # c/c++ embedded SQL code precompiler + $(MAKE) -C gpre $@ + + +extlib: # user define functions + $(MAKE) -C extlib all + +includes: include_generic # distribution include files (this one in this file) + +examples: includes + $(MAKE) -C v5_examples v5_examples + + + + + + +#--------------------------------------------------------------------------- + +# This target builds the include files for disttribution with the release +# Some of the files differ from the ones used internally to compile the +# software - mainly they are just flattened out to make the view simpler +# from an external point of view. + +INCLUDE_DEST= $(FIREBIRD)/include + +include_generic: $(INCLUDE_DEST)/ib_util.h \ + $(INCLUDE_DEST)/gds.h \ + $(INCLUDE_DEST)/ibase.h + +# ib_util.h actually is a marker for a number of headers + +# All these files are #includes in gds.h here we cat them all together +# and remove the embedded #includes to make it simpler for external usage. + +GDS_ExtraFiles = misc/gds_header.txt include/fb_types.h \ + jrd/ibase.h jrd/blr.h include/gen/iberror.h \ + jrd/gdsold.h include/gen/codes.h + +SRC_GDS_ExtraFiles = $(addprefix $(SRC_ROOT)/, $(GDS_ExtraFiles)) + +$(INCLUDE_DEST)/gds.h: $(SRC_GDS_ExtraFiles) + $(CAT) $^ \ + | grep -v '^#include "../jrd/blr.h"' \ + | grep -v '^#include "fb_types.h"' \ + | grep -v '^#include "gen/iberror.h"' \ + | grep -v '^#include "iberror.h"' \ + | grep -v '^#include "gen/codes.h"' > $@ + + +IBASE_ExtraFiles = jrd/blr.h include/gen/iberror.h +SRC_IBASE_ExtraFiles = $(addprefix $(SRC_ROOT)/, $(IBASE_ExtraFiles)) + +$(INCLUDE_DEST)/ibase.h: $(SRC_IBASE_ExtraFiles) + $(CAT) $^ \ + | grep -v '^#include "../jrd/blr.h"' \ + | grep -v '^#include "fb_types.h"' \ + | grep -v '^#include "gen/iberror.h"' > $@ + + +# Copy all the other headers to the distribution directory. we use +# ib_util.h as the marker for all the files. + +OtherDistribHeaders = extlib/ib_util.h \ + jrd/perf.h \ + jrd/blr.h \ + include/gen/iberror.h + +SRC_OtherDistribHeaders = $(addprefix $(SRC_ROOT)/, $(OtherDistribHeaders)) + +$(INCLUDE_DEST)/ib_util.h : $(SRC_OtherDistribHeaders) + $(CP) $^ $(INCLUDE_DEST)/ + + +# There are also gds*f and gds*ada header files around if someone +# wants them. You might need to hunt around in the old cvs tree for them. + + + +#___________________________________________________________________________ + +# When the msgs.gdb dataabse has changed with new messages a number of header +# files need to be regenerated. This is the target to do it. These new +# header files (placed in include/gen) then need to be committed since they +# are not generally rebuilt from scratch + +rebuild_codes : + $(MAKE) -C jrd $@ + + + +#___________________________________________________________________________ +# This one needs some more work. + +clean: clean_objs clean_libs clean_exes clean_dbs + +clean_objs: + -echo $(GDSLIB_Objects) | xargs rm -f + -echo $(GDSLIB_SharedObjects) | xargs rm -f + -rm */*\.o + -rm */*\.lo + -rm */*\.j + -rm */*\.bin + -rm */*\.d + +clean_libs: + -rm $(GDSLIB_LA) + -rm $(JRD_BOOT) + +clean_exes: + -rm $(BIN)/* +# -rm $(Executables) + +clean_dbs: + -rm */*\.gdb + -rm */*\.lnk + +# rm -f $(GDSLIB_OBJECTS) $(GDSLIB_PHASE3_OBJECTS) + + + + + + + + + + + + + + + + + +#____________________ old stuff ________________________________________ + +# This is mostly stuff copied from the original build procedure I have left +# it here for reference until the super server build has been complete then +# it will be removed. + + + + +###################################################################### +########### Build process overview ################################# +# +# Firebird2 has brought with it a new build process. This extended +# comment should help explain that process. Keep in mind there are +# a number of artifacts left in the makefiles from the previous build +# processes. +# +# The build process starts by building a bootstrap version of gpre. +# This is possible because of a special version of gpre_meta.cpp, +# gpre_meta_boot.cpp. It is a copy of the gpre_meta.epp file with all +# the embeded commands removed. There are pregenerated copy of the +# codes.h and related files in the source tree. These are used for the +# entire build process. In the future we should check for the ability +# to regenerate codes.h and friends (ie, a working FB install) and only +# use the static files as a last resort. +# +# The bootstrap version of gpre (gpre_boot) is used to build all the +# engine files, except security.bin. security.epp requires the security +# database which is not available at this time. The code in jrd/alt.cpp +# that references the functions in security.bin has been #ifdef'ed out. +# During this phase of the build process the limited version of alt.bin +# is used. The full version of alt.bin is compiled later in the build +# process after the security database is available. After the +# (hopefully pending) redesign of FB security the security database +# dependancies should go away. +# +# The engine objects are placed in the jrd_static.a archive. This archive +# contains all the objects needed to create statically linked programs. +# A fully functional version of gpre, gpre_static, is then generated +# using jrd_static.a. I choose to statically link the few utilities +# required to build FB to avoid possible shared library symbol conflicts. +# +# All of the aforementioned work is done in the +# first phase of the compilation. I called it the first phase because +# none of the work (except codes.h and friends) requires database access. +# Phase 2 builds all the tools necessary to compile the rest of FB. Those +# tools are gbak and the gds.so shared library. +# +# The .epp files in gbak require the yachts.lnk database. But the only +# thing the database is used for is the metadata, so an empty database +# will do the job. The create_db program is a small c API utility that +# creates an empty database. This utility is statically linked. +# Once there is an empty database gbak_static is built. gbak_static is +# used later on in the compilation process to restore build databases. +# +# After gbak_static is built the gds.so library is built. This library is +# still missing the security functionality. Note there is a dependancy +# between gbak_static and gds.so because the shared library contains the +# PYXIS code, which needs the forms.gdb database restored from forms.gbak. +# +# Now we are on phase 3, building the actual DB tools. This is as expected. +# We build all tools and link them against the shared library, including +# gpre, gbak, and the fully functional gds.so. +# +########### And now on with the show............ +################################################################# + +ISC_USER= sysdba +ISC_PASSWORD= masterkey + +#export ISC_USER +#export ISC_PASSWORD +#export INTERBASE=$(OBJS)/firebird +#export DYLD_FRAMEWORK_PATH +#export LD_LIBRARY_PATH + + +EXTERNAL_OBJECTS= $(CSI_OBJS) dsql_objects lock.o $(PYXIS_OBJECTS) rem_objects $(INTL) wal_objects +EXTERNAL_P_OBJECTS= $(CSI_P_OBJS) dsql_p_objects lock.bin $(PYXIS_P_OBJS) rem_p_objects $(INTL_P_OBJS) wal_p_objects + + +SRC_DIRS= alice burp dudley dsql extlib gpre intl isql journal jrd lock msgs \ + pyxis qli remote super/remote utilities wal + +GPRE= $(OBJS)/firebird/bin/gpre +GPRE_BOOT= $(OBJS)/firebird/bin/gpre_boot +GPRE_STATIC= $(OBJS)/firebird/bin/gpre_static +GBAK= $(OBJS)/firebird/bin/gbak +GBAK_STATIC= $(OBJS)/firebird/bin/gbak_static +GDEF= $(OBJS)/firebird/bin/gdef +GFIX= $(OBJS)/firebird/bin/gfix +HELP_GDB= $(OBJS)/firebird/help/help.gdb +HELP_GBAK= $(OBJS)/firebird/help/help.gbak +ISC_GDB= $(OBJS)/firebird/isc4.gdb +ISC_GBAK= $(OBJS)/firebird/bin/isc4.gbak +JRN_GBAK= $(OBJS)/firebird/bin/journal.gbak +CMP= cmp + +CODES=source/jrd/codes + +# removed examples 03-Aug-00 TMC +#interbase: run_codes gds.h includes executables examples help msgs msgs_intl extlib + +#added completed according to inprise tree +#FSG 093000 + +# The only difference between firebird and super_firebird is the executables +# target and in there super just had one more target "super_targets". The +# difference used to be done via a parameter passed into this makefile, but +# I've put the change here to reduce the complexity of the build script files. +# MOD 07-Apr-2001. + +# I've taken run_codes out pending a decision on how to handle the codes thing +# I'm also using the target to add to as I bring the build system on line. +#firebird: run_codes gds.h includes executables help msgs msgs_intl extlib $(POST_BUILD_TARGET) completed +firebirdx: CFLAGS=$(CFLAGS_COMMON) $(DEV_CFLAGS) $(SUPER_FLAG) +firebirdx: VERSION_FLAG=$(DEV_VERSION_FLAG) +firebirdx: DEBUG_OBJECTS=$(DEV_DEBUG_OBJECTS) +firebirdx: SUBMAKE_FLAGS:= CFLAGS="$(CFLAGS)" \ + VERSION_FLAG="$(VERSION_FLAG)" \ + DEBUG_OBJECTS="$(DEBUG_OBJECTS)" +firebirdx: phase1 phase2 phase3 completed + +super_firebird: run_codes gds.h includes super_executables help msgs msgs_intl extlib $(SS_POST_BUILD_TARGET) completed + +installer: $(PLATFORM_INSTALLER) + echo "Installer created" + +super_installer: $(SUPER_PLATFORM_INSTALLER) + echo "Super Installer created" + +executables: alice burp dudley gpre miscFiles $(INTL) isql locks \ + pyxis qli remote spit utilities \ + $(SHARED_AM) $(LINKABLE_LIBS) + +super_executables: alice burp dudley gpre superMiscFiles $(INTL) isql locks \ + super_targets pyxis qli remote spit utilities \ + $(SHARED_AM) $(LINKABLE_LIBS) + +super_targets: s_run_codes s_alice s_burp s_dba s_security_c super_client super_server super_utils + +#phase1: ISC_USER = sysdba +#phase1: ISC_PASSWORD = masterkey +#phase1: run_codes gds.h includes $(GPRE_BOOT) jrd_static.a $(GPRE_STATIC) +# +#phase2: ISC_USER = sysdba +#phase2: ISC_PASSWORD = masterkey +#phase2: DYLD_FRAMEWORK_PATH:=$(FW_PATH) +#phase2: manager empty_db $(GBAK_STATIC) $(GDSSHR)_PHASE_2 +# +#phase3: DYLD_FRAMEWORK_PATH:=$(FW_PATH) +#phase3: INTERBASE:=$(OBJS)/firebird +#phase3: LD_LIBRARY_PATH:=$(OBJS)/firebird/lib +#phase3: alice burp dudley msgs isql isc4.gdb security_c $(GDSSHR) sysdba_user \ +# $(INTL) locks qli remote spit utilities gpre miscFiles \ +# extlib msgs_intl examples help $(POST_BUILD_TARGET) completed + +# removed pyxis from between locks and qli + +# Run the codes program, thus generating codes.h, iberror.h, etc +# compare and copy the file only if the files are different +run_codes: force + $(CD) $(OBJS)/jrd && $(MAKE) $(SUBMAKE_FLAGS) run_codes +# force $(CODES) +# $(SH) '$(CD) $(OBJS)/jrd; ./codes' +# $(SH) '$(CMP) source/jrd/iberror.h $(INCLUDE_DEST)iberror.h; if [ $$? != 0 ]; then $(CP) source/jrd/iberror.h $(INCLUDE_DEST)iberror.h; fi' + + + +# NOTE: "journals" removed from "executables" as it currently doesn't +# build and isn't used for V4 anyway. +# 1995-June-7 David Schnepper + + + + +#added completed according to inprise tree +#FSG 093000 +completed: force + $(QUIET_ECHO) "Build succeeded!" + + +#burp gbak: $(GPRE_STATIC) msgs force +#burp gbak: $(GPRE_STATIC) force +# $(QUIET_ECHO) "Building GBAK..." +# $(CD) $(OBJS)/burp && $(MAKE) $(SUBMAKE_FLAGS) burp + +burplib.a: burp + $(QUIET_ECHO) "Building interbase/lib/gbaklib.a..." + $(CD) $(OBJS)/burp && $(MAKE) $(SUBMAKE_FLAGS) libgbaklib.a + +central_server gds_cserver: $(ACCESS_METHOD) force + $(QUIET_ECHO) "Building GDS_CSERVER..." + $(CD) $(OBJS) && $(MAKE) $(SUBMAKE_FLAGS) central_server + +super_client: force + $(QUIET_ECHO) "Building super/client..." + $(CD) $(OBJS) && $(MAKE) $(SUBMAKE_FLAGS) super_client + +csu gcsu: $(ACCESS_METHOD) force + $(QUIET_ECHO) "Building GCSU..." + $(CD) $(OBJS)/csv && $(MAKE) $(SUBMAKE_FLAGS) csu + +csvs: central_server csu + +gds_archive: $(ACCESS_METHOD) $(GPRE_STATIC) force + $(QUIET_ECHO) "Building GDS_ARCHIVE..." + $(CD) $(OBJS)/journal && $(MAKE) $(SUBMAKE_FLAGS) gds_archive + +#dba gstat: $(GPRE_STATIC) force +# $(QUIET_ECHO) "Building GSTAT..." +# $(CD) $(OBJS)/utilities && $(MAKE) $(SUBMAKE_FLAGS) dba + +dnet_server gds_dnet_server: $(DNET_SERVER_LIB) $(ACCESS_METHOD) force + $(QUIET_ECHO) "Building GDS_DNET_SERVER..." + $(CD) $(OBJS)/remote && $(MAKE) $(SUBMAKE_FLAGS) dnet_server + +dnet_server.a gds_dnet_server.a: force + $(QUIET_ECHO) "Building GDS_DNET_SERVER.A..." + $(CD) $(OBJS)/remote && $(MAKE) $(SUBMAKE_FLAGS) dnet_server.a + +#drop gds_drop: force +# $(QUIET_ECHO) "Building GDS_DROP..." +# $(CD) $(OBJS)/utilities && $(MAKE) $(SUBMAKE_FLAGS) drop + +#empty_db: create_db force +# $(QUIET_ECHO) "Creating the very first database..." +# $(CD) $(OBJS)/dbs && $(MAKE) $(SUBMAKE_FLAGS) empty.gdb.dummy + +#create_db: force +# $(QUIET_ECHO) "Building CREATE_DB..." +# $(CD) $(OBJS)/utilities && $(MAKE) $(SUBMAKE_FLAGS) create_db + +driver: $(ACCESS_METHOD) force + $(QUIET_ECHO) "Building DRIVER..." + $(CD) $(OBJS)/wal && $(MAKE) $(SUBMAKE_FLAGS) driver + +#dudley gdef: $(GPRE_STATIC) msgs force +#dudley gdef: $(GPRE_STATIC) force +# $(QUIET_ECHO) "Building GDEF..." +# $(CD) $(OBJS)/dudley && $(MAKE) $(SUBMAKE_FLAGS) dudley + +#extlib: force +# $(QUIET_ECHO) "Building EXTLIB..." +# $(CD) $(OBJS)/extlib && $(MAKE) $(SUBMAKE_FLAGS) ib_util ib_udf + + +# examples: v5_examples force +# $(QUIET_ECHO) "Building examples directory..." +# $(CD) $(OBJS)/examples && $(MAKE) $(SUBMAKE_FLAGS) examples +#examples: PATH := $(OBJS)/firebird/bin:$(PATH) +#examples: LD_LIBRARY_PATH := $(OBJS)/firebird/lib +#examples: v5_examples force +# echo $PATH +# mkdir -p $(OBJS)/firebird/examples + + +jrd_static.a: force + $(QUIET_ECHO) "Building static DB engine..." + $(CD) $(OBJS)/jrd && $(MAKE) $(SUBMAKE_FLAGS) ALT_O="alt.o.ps1" ALT_BIN="alt.bin.ps1" SECURITY_MISC="" SECURITY_P_MISC="" $@ + +$(GBAK_STATIC): + $(QUIET_ECHO) "Building static database restore utility..." + $(CD) $(OBJS)/burp && $(MAKE) $(SUBMAKE_FLAGS) $@ + +gds.h: force + $(QUIET_ECHO) "Building GDS.H..." + $(CD) $(OBJS)/jrd && $(MAKE) $(SUBMAKE_FLAGS) gds.h + +codes.h: force + $(QUIET_ECHO) "Building CODES.H..." + $(CD) $(OBJS)/jrd && $(MAKE) $(SUBMAKE_FLAGS) codes.h + +gds_server: $(ACCESS_METHOD) force + $(QUIET_ECHO) "Building GDS_SERVER..." + $(CD) $(OBJS)/remote && $(MAKE) $(SUBMAKE_FLAGS) gds_server + +$(GDSSHR)_PHASE_2: force + $(QUIET_ECHO) "Building GDSSHR..." + $(CD) $(OBJS)/jrd && $(MAKE) $(SUBMAKE_FLAGS) ALT_O="alt.o.ps1" ALT_BIN="alt.bin.ps1" SECURITY_MISC="" SECURITY_P_MISC="" $(GDSSHR) + +$(GDSSHR): force + $(QUIET_ECHO) "Building GDSSHR..." + $(CD) $(OBJS)/jrd && $(MAKE) $(SUBMAKE_FLAGS) DO_FORCE="force" $(GDSSHR) + +gdslib.aix gdslib.aix_ppc: $(GPRE) $(EXTERNAL_OBJECTS) force + $(QUIET_ECHO) "Building GDSSHR..." + $(CD) $(OBJS)/jrd && $(MAKE) $(SUBMAKE_FLAGS) gdsshr.a + +gdslib.apollo: $(GPRE) $(EXTERNAL_OBJECTS) pyxislib force + $(QUIET_ECHO) "Building GDSLIB..." + $(CD) $(OBJS)/jrd && $(MAKE) $(SUBMAKE_FLAGS) gdslib + +gdslib.decosf gdslib.sgi gdslib.epson : \ + $(GPRE) $(EXTERNAL_OBJECTS) $(GDS_PYXIS) force + $(QUIET_ECHO) "Building GDSLIB..." + $(CD) $(OBJS)/jrd && $(MAKE) $(SUBMAKE_FLAGS) gds.so.o + +gdslib.linux: \ + $(GPRE) $(EXTERNAL_OBJECTS) $(GDS_PYXIS) force + $(QUIET_ECHO) "Building GDSLIB..." + $(CD) $(OBJS)/jrd && $(MAKE) $(SUBMAKE_FLAGS) gds.so.linux + +gdslib.dylib: \ + $(GPRE) $(EXTERNAL_OBJECTS) $(GDS_PYXIS) force + $(QUIET_ECHO) "Building GDSLIB..." + $(CD) $(OBJS)/jrd && $(MAKE) $(SUBMAKE_FLAGS) gds.dylib + +gdslib.freebsd: \ + $(GPRE) $(EXTERNAL_OBJECTS) $(GDS_PYXIS) force + $(QUIET_ECHO) "Building GDSLIB..." + $(CD) $(OBJS)/jrd && $(MAKE) $(SUBMAKE_FLAGS) gds.so.linux + +gdslib.netbsd: \ + $(GPRE) $(EXTERNAL_OBJECTS) $(GDS_PYXIS) force + $(QUIET_ECHO) "Building GDSLIB..." + $(CD) $(OBJS)/jrd && $(MAKE) $(SUBMAKE_FLAGS) gds.so.linux + +gdslib.sco_ev: \ + $(GPRE) $(EXTERNAL_OBJECTS) $(GDS_PYXIS) force + $(QUIET_ECHO) "Building GDSLIB..." + $(CD) $(OBJS)/jrd && $(MAKE) $(SUBMAKE_FLAGS) gds.so.O + +gdslib.dg gdslib.m88k gdslib.unixware gdslib.ncr3000 gdslib.dg_x86: \ + $(GPRE) $(EXTERNAL_P_OBJECTS) $(GDS_PYXIS) force + $(QUIET_ECHO) "Building GDSLIB..." + $(CD) $(OBJS)/jrd && $(MAKE) $(SUBMAKE_FLAGS) gds.so.0 + +gdslib.solaris: \ + $(GPRE) $(EXTERNAL_P_OBJECTS) $(GDS_PYXIS) force + $(QUIET_ECHO) "Building GDSLIB..." + $(CD) $(OBJS)/jrd && $(MAKE) $(SUBMAKE_FLAGS) gds.so.solaris + +gdslib.hp: $(GPRE) $(EXTERNAL_P_OBJECTS) $(GDS_PYXIS) force + $(QUIET_ECHO) "Building GDSLIB..." + $(CD) $(OBJS)/jrd && $(MAKE) $(SUBMAKE_FLAGS) gds.sl + +gdslib.imp: $(GPRE) $(EXTERNAL_P_OBJECTS) force + $(QUIET_ECHO) "Building GDSLIB..." + $(CD) $(OBJS)/jrd && $(MAKE) $(SUBMAKE_FLAGS) gds_s.a + +gdslib.sco: $(GPRE) $(EXTERNAL_P_OBJECTS) gds_pyxis.a force + $(QUIET_ECHO) "Building GDSLIB..." + $(CD) $(OBJS)/jrd && $(MAKE) $(SUBMAKE_FLAGS) gds_s.a + +gdslib.sunos4: $(GPRE) $(EXTERNAL_P_OBJECTS) gds_pyxis.a force + $(QUIET_ECHO) "Building GDSLIB..." + $(CD) $(OBJS)/jrd && $(MAKE) $(SUBMAKE_FLAGS) gdslib.so.1.0 + +gds_pipe: $(PIPE_LIBRARY) gds_b.a $(GPRE) force + $(QUIET_ECHO) "Building GDS_PIPE..." + $(CD) $(OBJS)/jrd && $(MAKE) $(SUBMAKE_FLAGS) gds_pipe + +gds_b.a: force + $(QUIET_ECHO) "Building GDS_B.A..." + $(CD) $(OBJS)/jrd && $(MAKE) $(SUBMAKE_FLAGS) gds_b.a + +gds_pipe.a: force + $(QUIET_ECHO) "Building GDS_PIPE.A..." + $(CD) $(OBJS)/jrd && $(MAKE) $(SUBMAKE_FLAGS) gds_pipe.a + +gds.a: force + $(QUIET_ECHO) "Building GDS.A..." + $(CD) $(OBJS)/jrd && $(MAKE) $(SUBMAKE_FLAGS) gds.a + +gds.a.solaris: force + $(QUIET_ECHO) "Building GDS.A.SOLARIS..." + $(CD) $(OBJS)/jrd && $(MAKE) $(SUBMAKE_FLAGS) gds.a.solaris + +#gpre: security_c force +# $(QUIET_ECHO) "Building GPRE..." +# $(CD) $(OBJS)/gpre && $(MAKE) $(SUBMAKE_FLAGS) gpre + +#security_c: force +# $(QUIET_ECHO) "Building security.cpp ..." +# $(CD) $(OBJS)/utilities && $(MAKE) $(SUBMAKE_FLAGS) security.cpp + + +#$(GPRE_BOOT) $(GPRE_STATIC): force +# $(CD) $(OBJS)/gpre && $(MAKE) $(SUBMAKE_FLAGS) $@ +# Run the codes program (for SUPERSERVER hierarchy), +# thus generating codes.h, iberror.h, etc +s_run_codes: +# force $(CODES) + $(QUIET_ECHO) "Running codes in super ..." +# $(SH) '$(CD) source/super/jrd; $(CODES)' + +s_security_c: force + $(QUIET_ECHO) "Building security.c ..." + $(CD) $(OBJS)/super/utilities && $(MAKE) $(SUBMAKE_FLAGS) security.c + +s_alice: force + $(QUIET_ECHO) "Building met.c ..." + $(CD) $(OBJS)/super/alice && $(MAKE) $(SUBMAKE_FLAGS) met.c + +s_burp: force + $(QUIET_ECHO) "Building restore.c and backup.c ..." + $(CD) $(OBJS)/super/burp && $(MAKE) $(SUBMAKE_FLAGS) restore.c backup.c + +s_dba: force + $(QUIET_ECHO) "Building dba.e ..." + $(CD) $(OBJS)/super/utilities && $(MAKE) $(SUBMAKE_FLAGS) dba.c + +#gsec: $(GPRE_STATIC) force +# $(QUIET_ECHO) "Building GSEC..." +# $(CD) $(OBJS)/utilities && $(MAKE) $(SUBMAKE_FLAGS) gsec + +#$(GPRE): +# $(QUIET_ECHO) "Building bootstrap version of GPRE..." +# $(CD) $(OBJS)/gpre && $(MAKE) $(SUBMAKE_FLAGS) gpre_boot + +#help: gbak force +# $(QUIET_ECHO) "Building the QLI help database..." +# $(CD) $(OBJS)/qli && $(MAKE) $(SUBMAKE_FLAGS) qli_help + + + + + +#inet_server gds_inet_server: $(INET_LIBRARY) force +# $(QUIET_ECHO) "Building GDS_INET_SERVER..." +# $(CD) $(OBJS)/remote && $(MAKE) $(SUBMAKE_FLAGS) inet_server + +inet_server.a gds_inet_server.a: force + $(QUIET_ECHO) "Building GDS_INET_SERVER.A..." + $(CD) $(OBJS)/remote && $(MAKE) $(SUBMAKE_FLAGS) inet_server.a + +iscinstall: $(ACCESS_METHOD) force + $(QUIET_ECHO) "Building ISCINSTALL..." + $(CD) $(OBJS)/register && $(MAKE) $(SUBMAKE_FLAGS) iscinstall + +#isql: $(GPRE_STATIC) msgs force +# $(QUIET_ECHO) "Building ISQL..." +# $(CD) $(OBJS)/isql && $(MAKE) $(SUBMAKE_FLAGS) all + +isqllib.a: isql + $(QUIET_ECHO) "Building interbase/lib/isqllib.a..." + $(CD) $(OBJS)/isql && $(MAKE) $(SUBMAKE_FLAGS) libisqllib.a + +gjrn: $(ACCESS_METHOD) $(GPRE_STATIC) force + $(QUIET_ECHO) "Building GJRN..." + $(CD) $(OBJS)/journal && $(MAKE) $(SUBMAKE_FLAGS) gjrn + +journals: gjrn gds_archive gdef gfix gbak force + $(QUIET_ECHO) "Building journal database backup file..." + $(CD) $(OBJS)/journal && $(MAKE) $(SUBMAKE_FLAGS) journal.db + -$(RM) $(JRN_GBAK) + $(COMPRESS_JRN) + $(SETUP_ISC_LOCAL) \ + $(GDEF) -z -r source/journal.gdl + $(GFIX) -w sync journal.gdb + $(GBAK) -z journal.gdb $(JRN_GBAK) + $(CHMOD_6) $(JRN_GBAK) + -$(RM) source/journal.gdl source/journal.gdb + +#locks: lock_print $(LOCK_MANAGER) force +# $(QUIET_ECHO) "Building template of IPC configuration file..." +# -$(CP) $(SOURCE)/lock/config_params $(OBJS)/firebird/isc_config + +#lock_print gds_lock_print: force +# $(QUIET_ECHO) "Building GDS_LOCK_PRINT..." +# $(CD) $(OBJS)/lock && $(MAKE) $(SUBMAKE_FLAGS) lock_print + +#manager gds_lock_manager: drop force +# $(QUIET_ECHO) "Building GDS_LOCK_MANAGER..." +# $(CD) $(OBJS)/lock && $(MAKE) $(SUBMAKE_FLAGS) manager + + +#msgs_intl: force +# $(QUIET_ECHO) "Building international message file(s)..." +# $(CD) $(OBJS)/msgs && $(MAKE) $(SUBMAKE_FLAGS) locales.msg + +pipe: $(EXTERNAL_OBJECTS) $(PIPE) + + +#qli: $(GPRE_STATIC) msgs force +# $(QUIET_ECHO) "Building QLI..." +# $(CD) $(OBJS)/qli && $(MAKE) $(SUBMAKE_FLAGS) qli + +qlilib.a: qli + $(QUIET_ECHO) "Building interbase/lib/qlilib.a..." + $(CD) $(OBJS)/qli && $(MAKE) $(SUBMAKE_FLAGS) libqlilib.a + +register: $(GPRE_STATIC) force + $(QUIET_ECHO) "Building REGISTER..." + $(CD) $(OBJS)/register && $(MAKE) $(SUBMAKE_FLAGS) register + +#relay gds_relay: force +# $(QUIET_ECHO) "Building GDS_RELAY..." +# $(CD) $(OBJS)/utilities && $(MAKE) $(SUBMAKE_FLAGS) relay + + +#remote: inet_server $(DNET_SERVER) $(AMBX_SERVER) + +#spit: force +# $(QUIET_ECHO) "Building GSPLIT..." +# $(CD) $(OBJS)/burp && $(MAKE) $(SUBMAKE_FLAGS) spit + +super_server: force + $(QUIET_ECHO) "Building super_server... " + $(CD) $(OBJS)/super/remote && $(MAKE) $(SUBMAKE_FLAGS) super_server + +super_utils: force + $(QUIET_ECHO) "Building super server utlities... " + $(CD) $(OBJS)/utilities && $(MAKE) $(SUBMAKE_FLAGS) super_server_targets + +#isc4.gdb: dudley isql force +# $(QUIET_ECHO) "Building the ISC security database..." +# $(CD) $(OBJS)/utilities && $(MAKE) $(SUBMAKE_FLAGS) isc4.gdb + +#sysdba_user: force +# $(QUIET_ECHO) "Adding SYSDBA to the ISC security database..." +# $(CD) $(OBJS)/utilities && $(MAKE) $(SUBMAKE_FLAGS) sysdba_user + +utilities: dba relay gsec $(UTILITIES) + +v4_examples: gbak force + $(QUIET_ECHO) "Building V4 examples directory..." + $(CD) $(OBJS)/example4 && $(MAKE) $(SUBMAKE_FLAGS) v4_examples + +v5_examples: gbak force + $(QUIET_ECHO) "Building V5 examples directory..." + $(CD) $(OBJS)/example5 && $(MAKE) $(SUBMAKE_FLAGS) v5_examples + +wal_print: $(ACCESS_METHOD) force + $(QUIET_ECHO) "Building GDS_WAL_PRINT..." + $(CD) $(OBJS)/wal && $(MAKE) $(SUBMAKE_FLAGS) wal_print + +wal_writer: $(ACCESS_METHOD) force + $(QUIET_ECHO) "Building GDS_WAL_WRITER..." + $(CD) $(OBJS)/wal && $(MAKE) $(SUBMAKE_FLAGS) wal_writer + +csi_objects: + $(QUIET_ECHO) "Building CSI OBJECTS..." + $(CD) $(OBJS)/csv && $(MAKE) $(SUBMAKE_FLAGS) $(@F) + +dsql_objects: + $(QUIET_ECHO) "Building DSQL OBJECTS..." + $(CD) $(OBJS)/dsql && $(MAKE) $(SUBMAKE_FLAGS) $(@F) + +lock.o: + $(QUIET_ECHO) "Building LOCK.O..." + $(CD) $(OBJS)/lock && $(MAKE) $(SUBMAKE_FLAGS) $(@F) + +pyxis_objects: + $(QUIET_ECHO) "Building PYXIS OBJECTS..." + $(CD) $(OBJS)/pyxis && $(MAKE) $(SUBMAKE_FLAGS) $(@F) + +pyxlib.o: + $(QUIET_ECHO) "Building PYXLIB.O..." + $(CD) $(OBJS)/pyxis && $(MAKE) $(SUBMAKE_FLAGS) $(@F) + +rem_objects: + $(QUIET_ECHO) "Building REMOTE OBJECTS..." + $(CD) $(OBJS)/remote && $(MAKE) $(SUBMAKE_FLAGS) $(@F) + +wal_objects: + $(QUIET_ECHO) "Building WAL OBJECTS..." + $(CD) $(OBJS)/wal && $(MAKE) $(SUBMAKE_FLAGS) $(@F) + +dsqllib: + $(QUIET_ECHO) "Building DSQLLIB..." + $(CD) $(OBJS)/dsql && $(MAKE) $(SUBMAKE_FLAGS) $(@F) + +pyxislib: + $(QUIET_ECHO) "Building PYXISLIB..." + $(CD) $(OBJS)/pyxis && $(MAKE) $(SUBMAKE_FLAGS) $(@F) + +csi_p_objs: + $(QUIET_ECHO) "Building CSI PIC OBJECTS..." + $(CD) $(OBJS)/csv && $(MAKE) $(SUBMAKE_FLAGS) $(@F) + +dsql_p_objects: + $(QUIET_ECHO) "Building DSQL PIC OBJECTS..." + $(CD) $(OBJS)/dsql && $(MAKE) $(SUBMAKE_FLAGS) $(@F) + +gds_pyxis.a: + $(QUIET_ECHO) "Building GDS_PYXIS.A..." + $(CD) $(OBJS)/pyxis && $(MAKE) $(SUBMAKE_FLAGS) libpyxis.a + +lock.bin: + $(QUIET_ECHO) "Building LOCK.BIN..." + $(CD) $(OBJS)/lock && $(MAKE) $(SUBMAKE_FLAGS) $(@F) + +pyx_p_objects: + $(QUIET_ECHO) "Building PYXIS PIC OBJECTS..." + $(CD) $(OBJS)/pyxis && $(MAKE) $(SUBMAKE_FLAGS) $(@F) + +wal_p_objects: + $(QUIET_ECHO) "Building WAL PIC OBJECTS..." + $(CD) $(OBJS)/wal && $(MAKE) $(SUBMAKE_FLAGS) $(@F) + +rem_p_objects: + $(QUIET_ECHO) "Building REMOTE PIC OBJECTS..." + $(CD) $(OBJS)/remote && $(MAKE) $(SUBMAKE_FLAGS) $(@F) + +darwin_installer_common: force + $(QUIET_ECHO) "Building Firebird Installer..." + mkdir -p $(OBJS)/firebird/installer_tmp + $(MV) $(OBJS)/firebird/Firebird.framework $(OBJS)/firebird/installer_tmp + $(CP) $(SOURCE)/sandbox/bellardo/darwin/makefile \ + $(OBJS)/firebird/installer_tmp + ln -s $(OBJS)/firebird/bellardo/darwin \ + $(OBJS)/firebird/installer_tmp/files + ln -s ../.. $(OBJS)/firebird/installer_tmp/source + $(CD) $(OBJS)/firebird/installer_tmp && $(MAKE) install_package + $(RM) -rf $(OBJS)/firebird/installer_tmp + -$(RM) -rf $(OBJS)/firebird/Firebird.framework + +darwin_installer: darwin_installer_common darwin_framework +super_darwin_installer: darwin_installer_common ss_darwin_framework + +darwin_framework: force + $(QUIET_ECHO) "Building Classic Firebird Framework..." + $(RM) -rf $(OBJS)/firebird/Firebird2.framework + $(MAKE) -f $(SOURCE)/sandbox/bellardo/darwin/FirebirdFramework.make \ + framework + +ss_darwin_framework: force + $(QUIET_ECHO) "Building Super Server Firebird Framework..." + $(RM) -rf $(OBJS)/firebird/Firebird.framework + $(MAKE) -f $(SOURCE)/sandbox/bellardo/darwin/FirebirdFramework.make \ + super_framework + +# Note: So far this target is only available on Solaris +makedepend: + $(QUIET_ECHO) "Building component dependency files..." + $(RM) \ + source/alice/depends.mak \ + source/burp/depends.mak \ + source/csv/depends.mak \ + source/dsql/depends.mak \ + source/dudley/depends.mak \ + source/gpre/depends.mak \ + source/intl/depends.mak \ + source/lock/depends.mak \ + source/isql/depends.mak \ + source/journal/depends.mak \ + source/jrd/depends.mak \ + source/msgs/depends.mak \ + source/qli/depends.mak \ + source/remote/depends.mak \ + source/utilities/depends.mak \ + source/wal/depends.mak + $(SH) '$(CD) source/alice; $(MAKE) CFLAGS="$(CFLAGS)" depends.mak' + $(SH) '$(CD) source/burp; $(MAKE) CFLAGS="$(CFLAGS)" depends.mak' + $(SH) '$(CD) source/csv; $(MAKE) CFLAGS="$(CFLAGS)" depends.mak' + $(SH) '$(CD) source/dsql; $(MAKE) CFLAGS="$(CFLAGS)" depends.mak' + $(SH) '$(CD) source/dudley; $(MAKE) CFLAGS="$(CFLAGS)" depends.mak' + $(SH) '$(CD) source/gpre; $(MAKE) CFLAGS="$(CFLAGS)" depends.mak' + $(SH) '$(CD) source/intl; $(MAKE) CFLAGS="$(CFLAGS)" depends.mak' + $(SH) '$(CD) source/lock; $(MAKE) CFLAGS="$(CFLAGS)" depends.mak' + $(SH) '$(CD) source/isql; $(MAKE) CFLAGS="$(CFLAGS)" depends.mak' + $(SH) '$(CD) source/journal; $(MAKE) CFLAGS="$(CFLAGS)" depends.mak' + $(SH) '$(CD) source/jrd; $(MAKE) CFLAGS="$(CFLAGS)" depends.mak' + $(SH) '$(CD) source/msgs; $(MAKE) CFLAGS="$(CFLAGS)" depends.mak' + $(SH) '$(CD) source/qli; $(MAKE) CFLAGS="$(CFLAGS)" depends.mak' + $(SH) '$(CD) source/remote; $(MAKE) CFLAGS="$(CFLAGS)" depends.mak' + $(SH) '$(CD) source/utilities; $(MAKE) CFLAGS="$(CFLAGS)" depends.mak' + $(SH) '$(CD) source/wal; $(MAKE) CFLAGS="$(CFLAGS)" depends.mak' + +cleanx: clean_executables + -$(RM) \ + $(OBJS)/burp/gbaklib.a \ + $(OBJS)/super/client/gds.so.0 \ + $(OBJS)/examples/refresh \ + $(OBJS)/jrd/gdsshr.a $(OBJS)/jrd/gdslib $(OBJS)/jrd/gds.sl \ + $(OBJS)/jrd/gds_s.a $(OBJS)/jrd/gdsf_s.a \ + $(OBJS)/jrd/gds.so.0 \ + $(OBJS)/jrd/gdslib.so.1.0 $(OBJS)/jrd/gdslib.so.0.1 \ + $(OBJS)/jrd/gdsflib.so.0.0 \ + $(OBJS)/jrd/gds_b.a $(OBJS)/jrd/gds.a $(OBJS)/jrd/gds.a.solaris \ + $(OBJS)/jrd/gds_pipe.a \ + $(OBJS)/jrd/gdsmt.so.0 \ + $(OBJS)/super/jrd/gds_ss.a $(OBJS)/super/client/gdsmt.so.1 \ + $(OBJS)/super/client/gds.sl.1 \ + $(OBJS)/pyxis/libpyxis.a \ + $(OBJS)/qli/qlilib.a \ + $(OBJS)/remote/inet_server.a $(OBJS)/remote/dnet_server.a + +clean_executablesx: + -$(RM) \ + $(OBJS)/alice/alice \ + $(OBJS)/burp/burp \ + $(OBJS)/csv/central_server $(OBJS)/csv/csu \ + $(OBJS)/dudley/dudley \ + $(OBJS)/gpre/gpre \ + $(OBJS)/intl/intl \ + $(OBJS)/journal/gjrn $(OBJS)/journal/gds_archive \ + $(OBJS)/jrd/codes \ + $(OBJS)/lock/lock_print $(OBJS)/lock/manager \ + $(OBJS)/jrd/gds_pipe \ + $(OBJS)/msgs/build_file $(OBJS)/msgs/check_messages \ + $(OBJS)/pyxis/fred \ + $(OBJS)/qli/qli \ + $(OBJS)/register/iscinstall \ + $(OBJS)/remote/inet_server $(OBJS)/remote/dnet_server \ + $(OBJS)/remote/gds_server \ + $(OBJS)/super/remote/super_server \ + $(OBJS)/utilities/dba $(OBJS)/utilities/drop $(OBJS)/utilities/gsec \ + $(OBJS)/utilities/relay \ + $(OBJS)/utilities/ibmgr $(OBJS)/utilities/ibguard \ + $(OBJS)/wal/wal_writer + +realcleanx: clean clean_obj clean_build_gdb + $(QUIET_ECHO) "Removed compiled binaries and build files." + +clean_objx: + -for ND in ${SRC_DIRS} ; do \ + rm $${ND}/*.o ; \ + rm $${ND}/*.a ; \ + rm $${ND}/*.j ; \ + rm $${ND}/*.bin ; \ + done +clean_build_gdbx: + -$(RM) \ + source/example5/*.gdb \ + jrd/isc.gdb \ + jrd/yachts.gdb \ + msgs/msg.gdb + + + +# The installations need to find a better and possibly linux +# specific home. The tar installs should probably work with +# other unix type of systems. + +# I have seperated super and classic out since I needed different +# files in each case. + +miscFiles: force + $(QUIET_ECHO) "Building miscellaneous install files..." + mkdir -p $(OBJS)/firebird/misc + -$(CP) $(SOURCE)/makefiles/install.unix $(OBJS)/firebird/install + -$(CP) $(SOURCE)/makefiles/servers.isc $(OBJS)/firebird + -$(CP) $(SOURCE)/makefiles/inetd.conf.unx $(OBJS)/firebird/inetd.conf.isc + -$(CP) $(SOURCE)/makefiles/services.isc $(OBJS)/firebird + -$(CP) $(SOURCE)/makefiles/sys.conf.isc $(OBJS)/firebird + -$(CP) $(SOURCE)/sandbox/skywalker/install/misc/firebird.xinetd $(OBJS)/firebird/misc + +superMiscFiles: force + $(QUIET_ECHO) "Building miscellaneous install files..." + $(CP) source/$(SYSTEM)/install source/interbase + -$(CP) source/$(SYSTEM)/servers.isc source/interbase + $(CP) source/$(SYSTEM)/inetd.conf.isc source/interbase + $(CP) source/$(SYSTEM)/original/services.isc source/interbase + -$(CP) source/$(SYSTEM)/sys.conf.isc source/interbase + mkdir -p source/interbase/misc + $(CP) firebird/skywalker/install/misc/firebird.init.d.* source/interbase/misc + +install: force + make -f firebird/skywalker/install/Makefile install + +runclassicinstall: force + make -f firebird/skywalker/install/Makefile runclassicinstall + +classicpackages: force + make -f firebird/skywalker/install/Makefile classicpackages + +classictarfile: force + make -f firebird/skywalker/install/Makefile classictarfile + +classicrpmfile: force + make -f firebird/skywalker/install/Makefile classicrpmfile + + +superpackages: force + make -f firebird/skywalker/install/Makefile superpackages + +supertarfile: force + make -f firebird/skywalker/install/Makefile supertarfile + +superrpmfile: force + make -f firebird/skywalker/install/Makefile superrpmfile + + +force: diff --git a/src/make.new/Makefile.in.gpre b/src/make.new/Makefile.in.gpre new file mode 100644 index 0000000000..ab60916d5a --- /dev/null +++ b/src/make.new/Makefile.in.gpre @@ -0,0 +1,100 @@ +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. You may obtain a copy of the Licence at +# http://www.gnu.org/copyleft/gpl.html +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Relevant for more details. +# +# This file was created by members of the firebird development team. +# All individual contributions remain the Copyright (C) of those +# individuals. Contributors to this file are either listed here or +# can be obtained from a CVS history command. +# +# All rights reserved. +# +# Created by: Mark O'Donohue +# +# Contributor(s): +# +# +# $Id: Makefile.in.gpre,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# + +ROOT=../.. + +include $(ROOT)/src/make.rules +include $(ROOT)/src/make.defaults +include $(ROOT)/src/make.platform +include $(ROOT)/src/make.shared.variables + +@SET_MAKE@ + + + + +GPRECommon_Sources = cmd.cpp cme.cpp cmp.cpp c_cxx.cpp exp.cpp gpre.cpp \ + hsh.cpp int.cpp int_cxx.cpp jrdmet.cpp movg.cpp msc.cpp par.cpp \ + pat.cpp pretty.cpp sqe.cpp sql.cpp noform.cpp + +GPREBoot_Sources= gpre_meta_boot.cpp +GPRE_Sources= gpre_meta.cpp + +GPRECommon_Objects = $(GPRECommon_Sources:%.cpp=$(OBJ)/%.o) +GPREBoot_Objects = $(GPREBoot_Sources:%.cpp=$(OBJ)/%.o) +GPRE_Objects = $(GPRE_Sources:%.cpp=$(OBJ)/%.o) + + +AllObjects = $(GPRECommon_Objects) $(GPREBoot_Objects) $(GPRE_Objects) \ + $(GPRELIB_Objects) + + +Dependencies = $(AllObjects:.o=.d) + + + + +.PHONY: gpre_boot gpre_static gpre + +gpre_boot : $(GPRE_BOOT) + +gpre_static : $(GPRE_STATIC) + +gpre : $(GPRE) + + +$(GPRE_BOOT): $(GPRECommon_Objects) $(GPREBoot_Objects) $(LIB)/jrd_boot.a + $(STATICEXE_LINK) -o $(GPRE_BOOT) $(DARWIN_FOUNDATION_LINK) $^ $(STATICLINK_LIBS) + + +$(GPRE_STATIC):$(GPRECommon_Objects) $(GPRE_Objects) $(LIB)/jrd_static.a + $(STATICEXE_LINK) $(LINK_OPTS) $^ $(COREFOUNDATION_LINK) -o $@ $(STATICLINK_LIBS) + $(CHMOD_7) $@ + +# DARWIN - COREFOUNDATION_LINK should go into darwin link opts or libs. + + +$(GPRE):$(GPRECommon_Objects) $(GPRE_Objects) $(LIBGDS_LA) + $(EXE_LINK) $(LINK_OPTS) $^ $(COREFOUNDATION_LINK) -o $@ $(LINK_LIBS) + $(CHMOD_7) $@ + + + +# In phase2 we add the same objects as before, we just rebuild them as +# portable and load them into a shared libgds.so library. + +.PHONY: jrdlib_dependencies + + +jrdlib_dependencies: $(GPRELIB_Objects) + + +include $(Dependencies) diff --git a/src/make.new/Makefile.in.intl b/src/make.new/Makefile.in.intl new file mode 100644 index 0000000000..99679f4e41 --- /dev/null +++ b/src/make.new/Makefile.in.intl @@ -0,0 +1,77 @@ + +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. You may obtain a copy of the Licence at +# http://www.gnu.org/copyleft/gpl.html +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Relevant for more details. +# +# This file was created by members of the firebird development team. +# All individual contributions remain the Copyright (C) of those +# individuals. Contributors to this file are either listed here or +# can be obtained from a CVS history command. +# +# All rights reserved. +# +# Created by: Mark O'Donohue +# +# Contributor(s): +# +# +# $Id: Makefile.in.intl,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# + +ROOT=../.. + +include $(ROOT)/src/make.rules +include $(ROOT)/src/make.defaults +include $(ROOT)/src/make.platform +include $(ROOT)/src/make.shared.variables + +@SET_MAKE@ + +INTL_OBJECTS1= ld.o cv_narrow.o \ + cs_narrow.o lc_ascii.o lc_narrow.o lc_latin1.o lc_dos.o \ + cs_unicode.o lc_unicode.o \ + cs_utffss.o \ + cs_big5.o cv_big5.o lc_big5.o \ + cs_gb2312.o cv_gb2312.o lc_gb2312.o \ + cs_jis.o cv_jis.o lc_jis.o \ + cs_ksc.o cv_ksc.o lc_ksc.o + +INTL_OBJECTS2= ld2.o +INTL_OBJECTS= $(INTL_OBJECTS1) $(INTL_OBJECTS2) + + +# ld2.cpp contains the lookup that is used if the objects are in the same +# library as the libgds.a (or .so). + + + +# +INTL_P_OBJECTS1=$(INTL_OBJECTS1:%.o=%.lo) + +INTL_DIR = $(INTERBASE)/intl + +intl: $(LIBGDSINTL_LA) + +$(LIBGDSINTL_LA) : $(INTL_OBJECTS1) + $(LIB_LINK) $(LIB_LINK_OPTIONS) -o$(LIBGDSINTL_LA) $(^:.o=.lo) + + +# In the original there was a few quite involved things being done to make +# the gdsintl.lib target for win32 machines, I've removed them to avoid +# clutter, but you might want to go back and have a look if you ae doing a +# WIN32 thing and see if anyof it was useful. +# MOD 26-July-2001 + + diff --git a/src/make.new/Makefile.in.isql b/src/make.new/Makefile.in.isql new file mode 100644 index 0000000000..da45ab2ddc --- /dev/null +++ b/src/make.new/Makefile.in.isql @@ -0,0 +1,107 @@ +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. You may obtain a copy of the Licence at +# http://www.gnu.org/copyleft/gpl.html +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Relevant for more details. +# +# This file was created by members of the firebird development team. +# All individual contributions remain the Copyright (C) of those +# individuals. Contributors to this file are either listed here or +# can be obtained from a CVS history command. +# +# All rights reserved. +# +# Created by: Mark O'Donohue +# +# Contributor(s): +# +# +# $Id: Makefile.in.isql,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# + +ROOT=../.. + +include $(ROOT)/src/make.rules +include $(ROOT)/src/make.defaults +include $(ROOT)/src/make.platform +include $(ROOT)/src/make.shared.variables + +@SET_MAKE@ + +unexport ISC_USER +unexport ISC_PASSWORD + +.PHONY: all isql + + +# We no longer have all the code needed to compile muisql. We are missing +# a number of the functions like "qa_mu_environment()" +#all: isql muisql +all: isql + + + +ISQL_OBJECTS= extract.o isql.o show.o + + +isql: $(BIN)/isql + + +#$(BIN)/isql: $(ISQL_OBJECTS) $(LIBGDS_LA) +# $(LIBTOOL) $(LINK_OPTS) $^ -o $@ $(LINK_LIBS) +# $(CXX) $(LINK_OPTS) $^ -o $@ $(LINK_LIBS) +# $(CHMOD_7) $@ + +$(BIN)/isql: $(ISQL_OBJECTS) $(LIBGDS_LA) + $(EXE_LINK) $(LINK_OPTS) $^ -o $@ $(LINK_LIBS) + $(CHMOD_7) $@ + + +extract.cpp: yachts.lnk extract.epp + +yachts.lnk: + ln -sf ../refDatabases/empty.gdb yachts.lnk + + + + +ISQL_LINK_OBJS= $(ISQL_OBJECTS) +JRD_LINK= + +MUISQL_LINK_OBJS= extract.o muisql.o show.o + + +#isql: isqllib.a $(ISQL_OBJECTS) $(GDSSHR) +# -$(RM) isql +# $(CXX) $(LINK_OPTS) $(ISQL_LINK_OBJS) -o isql $(GDSSHR_LINK) -lm +# $(CHMOD_7) isql +# $(MV) isql $(ISQL) +# $(TOUCH) isql +# $(CHMOD_6) isql + +muisql: isql muisql.o + -$(RM) muisql + -$(CXX) $(LINK_OPTS) $(MUISQL_LINK_OBJS) -o muisql $(GDSSHR_LINK) -lm $(MUISQL_MU_LIB) + -$(CHMOD_7) muisql + -$(MV) muisql $(MUISQL) + -$(TOUCH) muisql + -$(CHMOD_6) muisql + +isql.cpp: yachts.lnk isql.epp +show.cpp: yachts.lnk show.epp + + +muisql.o: isql.cpp + $(CXX) -c $(CFLAGS) $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) -DMU_ISQL $< -o $@ + + diff --git a/src/make.new/Makefile.in.journal b/src/make.new/Makefile.in.journal new file mode 100644 index 0000000000..9775bd496e --- /dev/null +++ b/src/make.new/Makefile.in.journal @@ -0,0 +1,171 @@ +# The contents of this file are subject to the Interbase Public +# License Version 1.0 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy +# of the License at http://www.Inprise.com/IPL.html +# +# Software distributed under the License is distributed on an +# "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express +# or implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code was created by Inprise Corporation +# and its predecessors. Portions created by Inprise Corporation are +# Copyright (C) Inprise Corporation. +# +# All Rights Reserved. +# Contributor(s): ______________________________________. + +GPRE= source/interbase/bin/gpre$(EXEC_EXT) +GPRE_FLAGS= -r -m -z -n +GJRN= source/interbase/bin/gjrn$(EXEC_EXT) +GDS_ARCHIVE= source/interbase/bin/gds_archive$(EXEC_EXT) +GDEF= source/interbase/bin/gdef$(EXEC_EXT) + +IBERR_LINK= source/jrd/iberr.o +ISC_LINK= source/jrd/isc.o +ISC_FILE_LINK= source/jrd/isc_file.o +ISC_SYNC_LINK= source/jrd/isc_sync.o +MISC_LINK= source/jrd/misc.o +WALF_LINK= source/wal/walf.o +WALR_LINK= source/wal/walr.o +LLIO_LINK= source/jrd/llio.o +JRN_LINK= source/jrd/jrn.o + +JRD_OBJECTS= $(IBERR_LINK) $(ISC_LINK) $(ISC_FILE_LINK) $(ISC_SYNC_LINK) \ + $(MISC_LINK) +WAL_OBJECTS= $(WALF_LINK) $(WALR_LINK) $(LLIO_LINK) + +GJRN_OBJECTS= gjrn.o console.o misc.o oldr.o rebuild.o server.o + +all: gjrn$(EXEC_EXT) gds_archive$(EXEC_EXT) + +gjrn: $(GJRN_OBJECTS) $(JRD_OBJECTS) $(WAL_OBJECTS) $(GDSSHR) + -$(RM) gjrn + $(CC) $(LINK_OPTS) $(GJRN_OBJECTS) \ + $(T_SWITCH) $(IBERR_LINK) \ + $(T_SWITCH) $(MISC_LINK) \ + $(T_SWITCH) $(WALF_LINK) \ + $(T_SWITCH) $(WALR_LINK) \ + $(T_SWITCH) $(LLIO_LINK) \ + $(T_SWITCH) $(ISC_LINK) \ + $(T_SWITCH) $(ISC_FILE_LINK) \ + $(T_SWITCH) $(ISC_SYNC_LINK) \ + -o gjrn $(GDSSHR_LINK) $(SO_NETWORK_LIB) $(SO_SOCKET_LIB) + $(CHMOD_7) gjrn + $(MV) gjrn $(GJRN) + $(TOUCH) gjrn + $(CHMOD_6) gjrn + +gjrn.exe: $(GJRN_OBJECTS) $(JRD_OBJECTS) $(WAL_OBJECTS) + -$(RM) gjrn.exe journal.rsp + $(ECHO) $(GJRN_OBJECTS) $(JRD_OBJECTS) $(WAL_OBJECTS) > journal.rsp + $(CC) $(LINK_OPTS) $(O_EXE_SWITCH)gjrn \ + @journal.rsp $(GDSSHR_LINK) $(ADVAPILIB) $(MPRLIB) + $(MV) gjrn.exe $(GJRN) + $(RM) gjrn.exe journal.rsp + $(TOUCH) gjrn.exe + +gds_archive: archive.o $(IBERR_LINK) $(LLIO_LINK) $(JRN_LINK) $(GDSSHR) + -$(RM) gds_archive + $(CC) $(LINK_OPTS) archive.o \ + $(T_SWITCH) $(IBERR_LINK) \ + $(T_SWITCH) $(JRN_LINK) \ + $(T_SWITCH) $(LLIO_LINK) \ + -o gds_archive $(GDSSHR_LINK) $(SO_NETWORK_LIB) $(SO_SOCKET_LIB) + $(CHMOD_7) gds_archive + $(MV) gds_archive $(GDS_ARCHIVE) + $(TOUCH) gds_archive + $(CHMOD_6) gds_archive + +gds_archive.exe: archive.o $(IBERR_LINK) $(LLIO_LINK) $(JRN_LINK) + -$(RM) gds_archive.exe + $(CC) $(LINK_OPTS) $(O_EXE_SWITCH)gds_archive \ + archive.o $(IBERR_LINK) $(LLIO_LINK) $(JRN_LINK) $(GDSSHR_LINK) + $(MV) gds_archive.exe $(GDS_ARCHIVE) + $(RM) gds_archive.exe + $(TOUCH) gds_archive.exe + +journal.db: $(GDEF) force + $(GDEF) -z -e $(JRNDIR)journal.gdb source/journal.gdl + +debug: $(GJRN_OBJECTS) archive.o $(GDSLIB) + $(CC) $(LINK_OPTS) -g $(GJRN_OBJECTS) -o gjrn_dbg $(GDSLIB_LINK) + $(CC) $(LINK_OPTS) -g archive.o -o archive_dbg $(GDSLIB_LINK) + +debug_nt: $(GJRN_OBJECTS) archive.o + $(CC) $(DEBUG_LINK_OPTS) $(O_EXE_SWITCH)gjrn_dbg $(GJRN_OBJECTS) $(GDSLIB_LINK) + $(CC) $(DEBUG_LINK_OPTS) $(O_EXE_SWITCH)archive_dbg archive.o $(GDSLIB_LINK) + +force: + $(ECHO) force + +archive.o: archive.c source/wal/wal.h source/jrd/jrn.h source/jrd/llio.h +console.o: console.c journal.h \ + conso_proto.h gjrn_proto.h misc_proto.h \ + source/jrd/jrd.h source/jrd/jrn.h source/jrd/isc_f_proto.h +gjrn.o: gjrn.c journal.h \ + conso_proto.h gjrn_proto.h misc_proto.h \ + rebui_proto.h serve_proto.h \ + source/jrd/license.h source/jrd/gds_proto.h +misc.o: misc.c journal.h \ + gjrn_proto.h misc_proto.h \ + source/jrd/ods.h source/jrd/license.h \ + source/jrd/jrn.h source/jrd/gds_proto.h +oldr.o: oldr.c \ + misc_proto.h oldr_proto.h \ + source/jrd/old.h source/jrd/llio.h \ + source/jrd/llio_proto.h +rebuild.c: rebuild.e +rebuild.o: rebuild.c journal.h \ + conso_proto.h gjrn_proto.h misc_proto.h oldr_proto.h \ + rebui_proto.h \ + source/jrd/ods.h source/jrd/old.h \ + source/jrd/jrn.h source/jrd/thd.h source/jrd/pio.h \ + source/jrd/dsc.h source/jrd/btr.h \ + source/wal/wal.h source/jrd/btr.h source/jrd/license.h \ + source/jrd/gds_proto.h source/jrd/isc_f_proto.h \ + source/jrd/llio_proto.h source/wal/walr_proto.h +server.c: server.e +server.o: server.c journal.h \ + conso_proto.h gjrn_proto.h misc_proto.h serve_proto.h \ + source/jrd/jrn.h source/jrd/license.h \ + source/jrd/thd.h source/jrd/isc.h source/jrd/llio.h \ + source/jrd/pio.h \ + source/jrd/gds_proto.h source/jrd/isc_proto.h \ + source/jrd/isc_f_proto.h source/jrd/llio_proto.h \ + source/wal/wal.h source/wal/walf_proto.h + +$(GDSSHR) $(GDSLIB) $(JRD_OBJECTS): + $(SH) '$(CD) source/jrd; $(MAKE) CFLAGS="$(CFLAGS)" SYSTEM="$(SYSTEM)" $(@F)' +$(WAL_OBJECTS): + $(SH) '$(CD) source/wal; $(MAKE) CFLAGS="$(CFLAGS)" SYSTEM="$(SYSTEM)" $(@F)' + +# This entry is used to programatically update the include file dependencies +# for all *.c files in the current directory. +# +# Note that it is specific to Solaris by using the -xM1 compiler option. +# This option has CC generate dependency lines for the makefile - but +# does not generate object files. +# It is likely that a similar option exists on other platforms. +# +# It is recommended that depends.mak be created on a platform +# that supports such an option. depends.mak is not platform dependent, it uses +# the standard makefile output format, as can be copied to platforms +# that don't have a -xM1 feature in the c compiler. +# +depends.mak: + -$(RM) depends.out + -$(CC) $(CFLAGS) -xM1 *.c 1>&2 > depends.out + -$(RM) depends.mak + $(ECHO) "# depends.mak - journal" > depends.mak + $(ECHO) "# Created by 'make depends.mak'" >> depends.mak + date "+# Created on %Y-%m-%d" >> depends.mak + sed -e "s:source/[a-z/]*/source:source:g" -e "s:source/journal/::g"\ + depends.out |sort|uniq >> depends.mak + -$(RM) depends.out + +# In the event that a platform does not support the make directive "include" - +# concatenate "depends.mak" with the makefile. +# +include depends.mak + diff --git a/src/make.new/Makefile.in.jrd b/src/make.new/Makefile.in.jrd new file mode 100644 index 0000000000..6ea34512f5 --- /dev/null +++ b/src/make.new/Makefile.in.jrd @@ -0,0 +1,757 @@ +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. You may obtain a copy of the Licence at +# http://www.gnu.org/copyleft/gpl.html +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Relevant for more details. +# +# This file was created by members of the firebird development team. +# All individual contributions remain the Copyright (C) of those +# individuals. Contributors to this file are either listed here or +# can be obtained from a CVS history command. +# +# All rights reserved. +# +# Created by: Mark O'Donohue +# +# Contributor(s): +# +# +# $Id: Makefile.in.jrd,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# + +ROOT=../.. + +include $(ROOT)/src/make.rules +include $(ROOT)/src/make.defaults +include $(ROOT)/src/make.platform +include $(ROOT)/src/make.shared.variables + +@SET_MAKE@ + +.PHONY: jrd_boot jrd_static + + +# This is the very first library built it contains just enough methods +# to enable a gpre_boot program to built. + +BOOT_Sources = dsc.cpp gds.cpp isc_ipc.cpp isc.cpp dls.cpp +BOOT_Objects = $(BOOT_Sources:%.cpp=$(OBJ)/%.o) + + +jrd_boot : $(LIB)/jrd_boot.a + +$(LIB)/jrd_boot.a: $(BOOT_Objects) + -$(RM) $@ + $(AR) $@ $^ + -ranlib $@ + $(CHMOD_6) $@ + + +# Add all the jrd objects to the jrd static library. + +jrd_static : $(LIB)/jrd_static.a($(JRD_Objects)) + +$(LIB)/jrd_static.a(%.o) : %.o + ar crv $@ $% + + + +# This is the first dynamic link library that we build in phase2 it still +# does not contain security objects. + + +jrdlib_dependencies: $(JRD_Objects) + + + +# The jrdlib_main will equate to either the libgds.so or libgds.a +# depending upon choices made in make.rules and prefix.xxx where +# xxx is plaform. + +jrdlib_main : $(LIBGDS_LA) +#jrdlib_main : $(LIBGDS_SO) $(LIBGDS_A) + + +$(LIBGDS_SO) : $(GDSLIB_Objects) + $(LIB_LINK) $(LIB_LINK_OPTIONS) -o $@ $(GDSLIB_SharedObjects) + +$(LIBGDS_A) : $(GDSLIB_Objects) + $(STATICLIB_LINK) $(LIB_LINK_OPTIONS) $@ $^ + + + +#____________________________________________________________________________ +# +# Everything below here is crap - well maybe that's an overstatement :-). +# It comes from the original sfx.jrd file and I've left it here for now +# for reference until I finish rewriting the super server make. + +CSI_FILES= $(OBJS)/csv/csi.o $(OBJS)/csv/css.o +CSI_P_FILES= $(OBJS)/csv/csi.bin $(OBJS)/csv/css.bin + + +DSQL_HEAD_MISC= $(OBJS)/dsql/array.o $(OBJS)/dsql/blob.o \ + $(OBJS)/dsql/preparse.o \ + $(OBJS)/dsql/user_dsql.o $(OBJS)/dsql/utld.o + +DSQL_J_HEAD_MISC= source/dsql/array.j source/dsql/blob.j \ + source/dsql/preparse.j \ + source/dsql/user_dsql.j source/dsql/utld.j + + + + + + +JRD_CLIENT_P_OBJECTS= alt.bin cvt.bin dsc.bin dls.bin enc.bin gds.bin \ + isc.bin isc_file.bin isc_ipc.bin isc_sync.bin \ + perf.bin sch.bin sdl.bin thd.bin utl.bin \ + why.bin + + + + +# The infamous codes files +CODES_FILES= $(OBJS)/firebird/include/gds_codes.pas \ + $(OBJS)/firebird/include/gds_codes.ftn \ + $(OBJS)/firebird/include/codes.h \ + $(OBJS)/firebird/include/iberror.h \ + $(OBJS)/firebird/include/codetext.h \ + $(OBJS)/firebird/include/msgs.h \ + $(OBJS)/firebird/include/rdb_codes.h \ + $(OBJS)/firebird/include/sql_code.h \ + $(OBJS)/firebird/include/msg_facs.h + +# Temporarily removing $(BACKEND_BRIDGE_MISC) from SUPER_OBJECTS +# Also, whatever SUPER_OBJECTS includes should be forced to build under +# the 'super_server_objects' target. Currently DSQL, LOCK, REMOTE, +# WAL are included. INTL is not needed. +SUPER_OBJECTS= $(DSQL_MISC) $(LOCK_MISC) \ + $(REMOTE_MISC) \ + $(INTL_MISC) $(WAL_MISC) $(ALICE_MISC) $(BURP_MISC) \ + $(SECURITY_MISC) $(GSTAT_MISC) $(GSEC_MISC) $(UTIL_MISC) \ + $(STDIO) + +HEAD_OBJECTS= $(OBJS)/pipe/head.o $(OBJS)/pipe/head5.o $(OBJS)/pipe/allp.o \ + whyp.o utlp.o dls.o enc.o \ + $(JRD_MISC) $(JRD_HEAD_MISC) $(DSQL_HEAD_MISC) \ + $(PYXIS_MISC_OBJS) $(MERGE_MISC) $(SECURITY_MISC) + +HEAD_J_OBJECTS= head.j head5.j allp.j whyp.j utlp.j \ + $(JRD_J_MISC) $(JRD_J_HEAD_MISC) $(DSQL_J_HEAD_MISC) \ + $(MERGE_J_MISC) + +BRIDGE_P_MISC= $(OBJS)/pipe/head5.bin $(OBJS)/pipe/allp.bin + +FOOT_OBJECTS= $(FOOT_OBJECT) $(ALLP_OBJECT) +ALLP_OBJECT= $(OBJS)/pipe/allp.o +FOOT_OBJECT= $(OBJS)/pipe/foot.o + + +# All objects necessary to have a minimal (but functional) engine statically +# linked an executable. Used to create gbak_static and gpre_static, amoung +# other things. +ENGINE_STATIC_OBJS= \ + $(JRD_OBJECTS) $(DSQL_MISC) \ + $(LOCK_MISC) $(REMOTE_MISC) $(BRIDGE_MISC) \ + $(INTL_MISC) $(WAL_MISC) \ + $(WHY_O) + +all: gds.h $(GDSSHR) $(PIPE) + + +gds_b.a source/./interbase/lib/gds_b.a $(GDSLIB_BACKEND): \ + $(WHYBK_O) $(JRD_OBJECTS) $(OTHER_OBJECTS) + -$(RM) gds_b.a + $(AR) gds_b.a $(WHYBK_O) $(JRD_OBJECTS) $(OTHER_OBJECTS) + -ranlib gds_b.a + $(CHMOD_6) gds_b.a + +gds_ss.a source/./interbase/lib/gds_ss.a $(SUPER_BACKEND): \ + gds.h $(WHYBK_O) $(JRD_OBJECTS) super_server_objects $(SUPER_OBJECTS) + -$(RM) gds_ss.a + $(AR) gds_ss.a $(WHYBK_O) $(JRD_OBJECTS) $(SUPER_OBJECTS) + -ranlib gds_ss.a + $(CHMOD_6) gds_ss.a + +gds_b.lib: $(WHYBK_O) $(JRD_OBJECTS) + -$(RM) gds_b.lib + $(IMPLIB) -out:gds_b.lib $(WHYBK_O) $(JRD_OBJECTS) + $(IMPLIB) -out:gds_b.lib gds_b.lib $(OTHER_OBJECTS) + $(TOUCH) gds_b.lib + +gdsshr.a $(AIX_GDSSHR) $(AIX_PPC_GDSSHR): gds_b.a gds.bind + ld -bE:gds.bind -bM:SRE -H1024 $(GDSLIB_LINK) $(SCREEN_LIB) -lc -o gdsshr.o + strip -t gdsshr.o + -$(RM) gdsshr.a + $(AR) gdsshr.a gdsshr.o + -ranlib gdsshr.a + $(CHMOD_6) gdsshr.a + $(MV) gdsshr.a $(GDSSHR) + -$(RM) gdsshr.o + $(TOUCH) gdsshr.a + $(CHMOD_6) gdsshr.a + +gdslib $(AP_GDSSHR) $(AX_GDSSHR): gds_b.a bind_gdslib nodebug.o + -$(RM) gdslib + /com/bind v4.0 customers +# to recompile and relink. +# In v4.0 we add a "gds.so.0" library which is really a pipe +# client library. This is so existing 3.3 customers are +# isolated from Solaris problems involving threads & signals. +gds.so.solaris $(SOL_GDSSHR): gdsmt.so.0 gdspipe.so.0 + +gdsmt.so.0: \ + $(JRD_P_OBJECTS) flu.bin $(CSI_P_MISC) $(DSQL_P_MISC) \ + $(LOCK_P_MISC) \ + $(REMOTE_P_MISC) $(SECURITY_P_MISC) $(BRIDGE_P_MISC) \ + $(INTL_P_MISC) $(WAL_P_MISC) \ + $(FUNCTIONS) + -$(RM) gdsmt.so.0 + ld $(LD_OPTS) libgdsmt.so.0 $(ZDEFS) $(JRD_P_OBJECTS) flu.bin \ + $(CSI_P_MISC) $(DSQL_P_MISC) $(LOCK_P_MISC) \ + $(REMOTE_P_MISC) $(SECURITY_P_MISC) $(BRIDGE_P_MISC) \ + $(INTL_P_MISC) $(WAL_P_MISC) $(FUNCTIONS) \ + $(GDSF_LIB) $(LD_LIBS) -o gdsmt.so.0 + $(CHMOD_6) gdsmt.so.0 + $(MV) gdsmt.so.0 $(GDSSHR) + $(TOUCH) gdsmt.so.0 + $(CHMOD_6) gdsmt.so.0 + +gdsf.so $(DG_FUNCSHR) $(DG_X86_FUNCSHR): functions.bin + -$(RM) gdsf.so + ld -G functions.bin -o gdsf.so + $(CHMOD_6) gdsf.so + $(MV) gdsf.so $(FUNCSHR) + $(TOUCH) gdsf.so + $(CHMOD_6) gdsf.so + +gdsshr_ss.dll: $(WIN_NT_SS_GDSSHR) + $(TOUCH) gdsshr_ss.dll + +gdsshr.dll: $(WIN_NT_GDSSHR) + $(TOUCH) gdsshr.dll + +gds32_nt_ms.dll: $(WHY_O) $(JRD_OBJECTS) gdsalias.o + -$(RM) gds32.dll gds32.lib + $(IMPLIB) -out:gds_temp.lib $(WHY_O) $(JRD_OBJECTS) + $(IMPLIB) -out:gds_temp.lib gds_temp.lib $(DSQL_MISC) $(LOCK_MISC) $(REMOTE_MISC) $(WAL_MISC) \ + $(SECURITY_MISC) + $(IMPLIB) -out:gds32.lib -def:gds.bind gds_temp.lib + $(LINK) $(LD_OPTS) -out:gds32.dll -dll -entry:_CRT_INIT$(DLLENTRY) gds_temp.lib gds32.exp $(CONLIBSDLL) $(WSOCKLIB) $(ADVAPILIB) $(MPRLIB) + $(RM) gds_temp.lib + $(RM) gds32.exp + $(MV) gds32.lib gds32_ms.lib + $(RM) gds32.lib + implib gds32.lib gds32.dll + tlib gds32.lib +- gdsalias.o + $(MV) gds32.lib source\interbase\lib + $(MV) gds32_ms.lib source\interbase\lib + $(MV) gds32.dll source/interbase/bin + $(RM) gds32.dll gds32.lib gds32_ms.lib + $(TOUCH) gds32_nt_ms.dll + +gds32_nt_ms_ss.dll: $(WHY_O) $(JRD_OBJECTS) gdsalias.o + -$(RM) gds32_ss.dll gds32_ss.lib gds32mss.lib + $(IMPLIB) -out:gds_temp_ss.lib $(WHY_O) $(JRD_OBJECTS) + $(IMPLIB) -out:gds_temp_ss.lib gds_temp_ss.lib $(DSQL_MISC) $(LOCK_MISC) $(REMOTE_MISC) $(WAL_MISC) \ + $(SECURITY_MISC) + $(IMPLIB) -out:gds32_ss.lib -def:gds.bind gds_temp_ss.lib + $(LINK) $(LD_OPTS) -out:gds32_ss.dll -dll -entry:_CRT_INIT$(DLLENTRY) gds_temp_ss.lib gds32_ss.exp $(CONLIBSDLL) $(WSOCKLIB) $(ADVAPILIB) $(MPRLIB) + $(RM) gds_temp_ss.lib + $(RM) gds32_ss.exp + $(MV) gds32_ss.lib gds32mss.lib + $(RM) gds32_ss.lib + implib gds32_ss.lib gds32_ss.dll + tlib gds32_ss.lib +- gdsalias.o + $(MV) gds32_ss.dll source/interbase/bin + $(RM) gds32.dll + $(TOUCH) gds32_nt_ms_ss.dll + +gdsalias.o: gdsalias.asm + tasm32 gdsalias.asm + +gds32_nt_bc4.dll: $(WHY_O) $(JRD_OBJECTS) + -$(RM) gds32.dll gds32.lib tmp.bind + sed -e 's/DATA READ WRITE/DATA MULTIPLE/' -e 's/LIBRARY gds32/LIBRARY gds32 INITINSTANCE/' gds.bind > tmp.bind + $(LINK) -Tpd -ap -c $(LD_OPTS) -w-inq -x /Lc:\bc4\lib c0d32 @gds.rsp,gds32.dll,,import32 cw32mt,tmp.bind + implib gds32.lib gds32.dll + $(MV) gds32.lib source\interbase\lib + $(MV) gds32.dll source/interbase/bin + $(RM) gds32.dll gds32.lib tmp.bind + $(TOUCH) gds32_nt_bc4.dll + +gds32_os2_bc4.dll: $(WHY_O) $(JRD_OBJECTS) + -$(RM) gds32.dll gds32.lib tmp.bind + sed -e 's/DATA READ WRITE/DATA MULTIPLE NONSHARED/' -e 's/LIBRARY gds32/LIBRARY gds32 INITINSTANCE/' -e 's/\ \ \ \ /\ \ \ \ _/' gds.bind > tmp.bind + $(LINK) -Tod -ap -c $(LD_OPTS) -x /Lc:\bcos2\lib;c:\tcpip\lib c02d @gds.rsp,gds32.dll,,os2 c2mt so32dll tcp32dll,tmp.bind + implib gds32.lib gds32.dll + $(MV) gds32.lib ..\interbase\lib + $(MV) gds32.dll ..\interbase\bin + $(RM) gds32.dll gds32.lib tmp.bind + $(TOUCH) gds32_os2_bc4.dll + +gds32_os2_ibm.dll: $(WHY_O) $(JRD_OBJECTS) + -$(RM) gds32.dll gds32.lib bind.tmp + sed -e 's/DATA READ WRITE/DATA MULTIPLE NONSHARED/' -e 's/LIBRARY gds32/LIBRARY gds32 INITINSTANCE/' gds.bind > bind.tmp + $(LINK) $(LD_OPTS) @gds.rsp,gds32.dll,,so32dll tcp32dll,bind.tmp + c:\toolkt21\os2bin\implib gds32.lib gds32.dll + $(MV) gds32.lib ..\interbase\lib + $(MV) gds32.dll ..\interbase\bin + $(RM) gds32.dll gds32.lib bind.tmp + $(TOUCH) gds32_os2_ibm.dll + +event_print: print.o $(GDSLIB_BACKEND) + $(CC) $(LINK_OPTS) -g print.o -o event_print $(GDSLIB_LINK) + +event_print.exe: print.o + $(CC) $(DEBUG_LINK_OPTS) $(O_EXE_SWITCH)event_print print.o $(GDSLIB_LINK) + +gds.a: $(HEAD_OBJECTS) $(NOLINK_MACHINES) + -$(RM) gds.a + $(AR) gds.a $(HEAD_OBJECTS) + -ranlib gds.a + $(CHMOD_6) gds.a + $(MV) gds.a $(HEAD_LIB) + $(TOUCH) gds.a + $(CHMOD_6) gds.a + +# Solaris specific shared library that invokes a pipe-server interface +# to isolate clients that might use signals from threads. +# Note that its internal library name is libgds.so for compatibility +# with existing applications. +gdspipe.so.0: $(HEAD_J_OBJECTS) + -$(RM) gdspipe.so.0 + -$(RM) gds.so.0 + ld $(LD_OPTS) libgds.so.0 $(HEAD_J_OBJECTS) $(LD_LIBS_J) \ + -o gds.so.0 + $(CHMOD_6) gds.so.0 + $(MV) gds.so.0 $(PIPE_GDSSHR) + $(TOUCH) gdspipe.so.0 + $(CHMOD_6) gdspipe.so.0 + +# The Solaris version of gds.a uses the .j objects as they have +# been compiled in non-Thread mode. The .j objects are PIC code +# which isn't optimal, but will function fine. +gds.a.solaris: $(HEAD_J_OBJECTS) + -$(RM) gds.a.solaris + $(AR) gds.a $(HEAD_J_OBJECTS) + -ranlib gds.a + $(CHMOD_6) gds.a + $(MV) gds.a $(HEAD_LIB) + $(TOUCH) gds.a.solaris + $(CHMOD_6) gds.a.solaris + +# JMB MERGE_MISC (merge.o) is already in the shlib with REMOTE_P_OBJECTS. +# allp.bin already in the shared library. ($(ALLP_OBJECT)) +# So don't link in with executable. +gds_pipe: $(FOOT_OBJECTS) $(WHYPS_O) $(GDSSHR) \ + $(GDSLIB_BACKEND) $(NOLINK_MACHINES) + -$(RM) gds_pipe gdsshr_pipe + $(CC) $(LINK_OPTS) $(FOOT_OBJECT) \ + $(T_SWITCH) $(T_SWITCH) \ + $(WHYPS_O) -o gds_pipe $(SERVER_LINK) + $(CHMOD_7) gds_pipe + $(MV) gds_pipe $(FOOT) + $(TOUCH) gds_pipe + $(CHMOD_6) gds_pipe + +bridge.unix: gds_pipe + -$(RM) gds_pipe5 + $(CC) $(LINK_OPTS) $(FOOT_OBJECTS) -o gds_pipe5 $(GDSLIB_LINK) + $(CHMOD_7) gds_pipe5 + +gds_pipe.a: $(FOOT_OBJECTS) $(NOLINK_MACHINES) + -$(RM) gds_pipe.a + $(AR) gds_pipe.a $(FOOT_OBJECTS) + -ranlib gds_pipe.a + $(CHMOD_6) gds_pipe.a + $(MV) gds_pipe.a $(FOOT_LIB) + $(TOUCH) gds_pipe.a + $(CHMOD_6) gds_pipe.a + + +includes.msg: $(OBJS)/msgs/indicator.incl + -$(RM) includes.msg + $(TOUCH) includes.msg + $(CHMOD_6) includes.msg + +super_server_objects: force + $(CD) $(OBJS)/dsql && $(MAKE) CFLAGS="$(CFLAGS)" SYSTEM="$(SYSTEM)" dsql_objects + $(CD) $(OBJS)/lock && $(MAKE) CFLAGS="$(CFLAGS)" SYSTEM="$(SYSTEM)" lock + $(CD) $(OBJS)/remote && $(MAKE) CFLAGS="$(CFLAGS)" SYSTEM="$(SYSTEM)" rem_objects + $(CD) $(OBJS)/wail && $(MAKE) CFLAGS="$(CFLAGS)" SYSTEM="$(SYSTEM)" wal_objects + +super_client_objects: $(JRD_CLIENT_P_OBJECTS) + -$(RM) super_client_objects + $(TOUCH) super_client_objects + $(CHMOD_6) super_client_objects + +debug_objects: grammar.o dbg.o dbt.o dmp.o + +nolink_machines: source/pipe/allp.c source/pipe/foot.c source/pipe/head.c + $(CP) $? . + -$(RM) nolink_machines + $(TOUCH) nolink_machines + $(CHMOD_6) nolink_machines + +run_codes: $(CODES_FILES) +# We should be compiling and running codes here, but we will do that +# later!!! +# -$(SH) '$(CMP) $(OBJS)/jrd/iberror.h $(OBJS)/firebird/include/iberror.h; if [ $$? != 0 ]; then $(CP) $(SOURCE)/jrd/iberror.h $(OBJS)/firebird/include/iberror.h; fi' + +$(CODES_FILES): + touch $@ + -$(CP) $(SOURCE)/jrd/gen/$(@F) $@ + + + +#____________________________________________________________________________ +# +# Rebuild the codes generates in the src/jrd/boot_codes directory +# this target updates the values stored in the source path if they are +# different to the newly generated entries. +# +# There are also blrtable.h and ids.h which are generated as well. +# Regeneration is a manual thing, and you will need to + +generated_headers: ensureRebuild rebuild_codes ../include/gen/blrtable.h ../include/gen/ids.h + +ensureRebuild: + touch codes.epp + touch blrtable.cpp + touch relations.h + +rebuild_codes: codes + ./codes $(ROOT)/src/include/gen + + +codes: codes.o $(STDIO) $(LIBGDS_LA) + -$(RM) codes + $(EXE_LINK) $(LINK_OPTIONS) $(CXX_INCLUDE_DIRS) -o codes $^ + $(CHMOD_7) codes + + +../include/gen/blrtable.h: blrtable.cpp $(STDIO) + $(EXE_LINK) $(LINK_OPTIONS $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) $(LINK_OPTS) blrtable.cpp $(STDIO) $(LD_LIBS) -o blrtable + -./blrtable > $@ + -$(RM) blrtable + +../include/gen/ids.h: ids.m relations.h + m4 $< > ../include/gen/ids.h + + +# Security requires a database to compile so it cannot be used until +# after gpre_static and gbak have been built. The alt.cpp file has a +# -DPHASE_1_NO_SECURITY macro that disables compilaton of security +# components. So the early _boot and _static builds use the boot one and +# the later ones rely on the complete alt.o. This is controlled by the +# makefile building a different jrd/alt_use_sec.h at + +# BTW: Ann (and I think Jim as well) believe that the security +# database has no business being applied at this level, and should be +# removed or moved - MOD 22-7-2001 + +# The file alt.cpp can be built in two versions BOOT and normal, where +# boot does not use the security database and the normal build does. +# We build a different header file from alt_use_sec.h.pre in the boot and +# the post boot stages of the build. + +build_alt_use_boot: alt_use_sec.h.pre + sed '/^#undef PHASE_1_BUILD_NO_SECURITY_DB/s/undef/define/' < $^ > alt_use_sec.h + +build_alt_use_main: alt_use_sec.h.pre + cp $^ alt_use_sec.h + + +# The GPRE options passed in ar edifferent to the default ones so we have a +# special rule. + +codes.cpp: codes.epp + $(GPRE) -n -manual -raw -string $< $@ + + + +#____________________________________________________________________________ + +# These guys are the results of compiling files with different macros +# defined and outputting them to differently named .o files. + + +# BACKEND + +whybk.o: why.c + $(CC) -c $(CFLAGS) $(VERSION_FLAG) -DBACKEND $< -o $@ + +# Special compiles of modules to omit parts not needed for pipe access + + +utlp.o: utl.cpp + $(CXX) -c $(CFLAGS) $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) -DPIPE_CLIENT $< -o $@ +utlp.j: utl.o + $(CXX) -c $(PIC_J_CFLAGS) $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) -DPIPE_CLIENT $< -o $@ +whyp.o: why.c + $(CC) -c $(CFLAGS) $(VERSION_FLAG) -DPIPE_CLIENT $< -o $@ +whyp.j: why.o + $(CC) -c $(PIC_J_CFLAGS) $(VERSION_FLAG) -DPIPE_CLIENT $< -o $@ + +# whyps.o is used for machines that have a gds_pipe executable with the +# full backend linked in. It omits an interface to the V3 bridge, which +# is included with the pipe client and not needed in the pipe server. +whyps.o: why.o + -$(RM) whyps.c + $(CP) why.c whyps.c + $(CC) -c $(CFLAGS) $(VERSION_FLAG) -DPIPE_SERVER_YVALUE whyps.c + +# SHARED BRIDGE + +iscb.o: isc.cpp + $(CXX) -c $(CFLAGS) $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) -DBRIDGE $< -o $@ + +iscb.bin: isc.cpp + $(CXX) -c $(PIC_FLAGS) $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) -DBRIDGE $< -o $@ + + +# This is the one where dyn_def.epp produced dyn_def.cpp and then the sed +# script is run to remove a component of it. This is pretty ugly, and even +# if we have to live with it, the makefile should be changed to make the +# dependencies clearer. +dyn_def.o: dyn_def.cpp dyn_def.sed + sed -f dyn_def.sed $< > dyn_deffoo.cpp + $(CXX) -c $(CFLAGS) $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) dyn_deffoo.cpp + $(MV) dyn_deffoo.o dyn_def.bin + -$(RM) dyn_deffoo.cpp dyn_deffoo.o + + +flu_non_dl.bin: flu.cpp + $(CXX) -c $(PIC_FLAGS) $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) -DNON_DL_COMPATIBLE -c $< -o flu_non_dl.cpp + $(MV) flu_non_dl.o flu_non_dl.bin + -$(RM) flu_non_dl.cpp + +head5.bin: head.cpp + $(CXX) -c $(PIC_FLAGS) $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) -DGDS_PIPE=\"bin/gds_pipe5\" $< -o $@ + + + +Dependencies = $(BOOT_Objects:.o=.d) $(JRD_Objects:.o=.d) + +include $(Dependencies) diff --git a/src/make.new/Makefile.in.lock b/src/make.new/Makefile.in.lock new file mode 100644 index 0000000000..8a33fa6421 --- /dev/null +++ b/src/make.new/Makefile.in.lock @@ -0,0 +1,140 @@ +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. You may obtain a copy of the Licence at +# http://www.gnu.org/copyleft/gpl.html +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Relevant for more details. +# +# This file was created by members of the firebird development team. +# All individual contributions remain the Copyright (C) of those +# individuals. Contributors to this file are either listed here or +# can be obtained from a CVS history command. +# +# All rights reserved. +# +# Created by: Mark O'Donohue +# +# Contributor(s): +# +# +# $Id: Makefile.in.lock,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# + +ROOT=../.. + +include $(ROOT)/src/make.rules +include $(ROOT)/src/make.defaults +include $(ROOT)/src/make.platform +include $(ROOT)/src/make.shared.variables + +@SET_MAKE@ + +LOCKMGR_Sources = manager.cpp lock.cpp +LOCKMGR_Objects = $(LOCKMGR_Sources:%.cpp=$(OBJ)/%.o) + +LOCKPRINT_Sources = print.cpp printv3.cpp +LOCKPRINT_Objects = $(LOCKPRINT_Sources:%.cpp=$(OBJ)/%.o) + +LOCKDRIVER_Sources = driver.cpp +LOCKDRIVER_Objects = $(LOCKDRIVER_Sources:%.cpp=$(OBJ)/%.o) + +AllObjects = $(LOCK_Objects) $(LOCKMGR_Objects) $(LOCKPRINT_Objects) \ + $(LOCKDRIVER_Objects) + +Dependencies = $(All_Objects:.o=.d) + + + +.PHONY: jrd_static gds_lock_manager lock_print lock_config_file + + +all: jrdlib_dependencies gds_lock_manager lock_print lock_config_file + +other_targets: lock_driver # is a lock test program + + +# jrd_static +# +# As part of the boot build process a static library is build with the lock +# object in it. After the boot has built it is no longer required. + + +jrd_static : $(LIB)/jrd_static.a($(LOCK_Objects)) + +$(LIB)/jrd_static.a(%.o) : %.o + ar crv $@ $% + + +# jrdlib_dependencies +# +# In phase2 we add the same objects as before, we just rebuild them as +# portable and load them into a shared libgds.so library. + + +jrdlib_dependencies: $(LOCK_Objects) + + +# gds_lock_mgr +# +# Watch out for the fact that the program name is called gds_lock_mgr note +# the "mgr" not "manager". + + + +gds_lock_manager : $(BIN)/gds_lock_mgr + +$(BIN)/gds_lock_mgr: $(LOCKMGR_Objects) $(LIB)/jrd_static.a + $(CXX) $(LINK_OPTS) $^ -o $@ $(COREFOUNDATION_LINK) + $(CHMOD_S7) $@ + + +# lock_print +# +# Watch out for the fact that the program name is called gds_lock_mgr note +# the "mgr" not "manager". + + +lock_print : $(BIN)/lock_print + +$(BIN)/lock_print: $(LOCKPRINT_Objects) $(LIBGDS_LA) + $(CXX) $(LINK_OPTS) $^ -o $@ $(LINK_LIBS) + $(CHMOD_S7) $@ + + +# lock_config_file +# +# In building a new system the default lock configuration parameter file +# is built by copying the one in the current directory. +# + +lock_config_file : $(INTERBASE)/isc_config + +$(INTERBASE)/isc_config : config_params + $(CP) $^ $@ + + + + +# lock_print +# +# Watch out for the fact that the program name is called gds_lock_mgr note +# the "mgr" not "manager". + + +lock_driver : $(BIN)/lock_driver + +$(BIN)/lock_driver: $(LOCKDRIVER_OBJECTS) $(LIBGDS_LA) + $(CXX) $(LINK_OPTS) $^ -o $@ $(LINK_LIBS) + $(CHMOD_S7) $@ + + +include $(Dependencies) diff --git a/src/make.new/Makefile.in.msgs b/src/make.new/Makefile.in.msgs new file mode 100644 index 0000000000..ac71371690 --- /dev/null +++ b/src/make.new/Makefile.in.msgs @@ -0,0 +1,187 @@ +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. You may obtain a copy of the Licence at +# http://www.gnu.org/copyleft/gpl.html +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Relevant for more details. +# +# This file was created by members of the firebird development team. +# All individual contributions remain the Copyright (C) of those +# individuals. Contributors to this file are either listed here or +# can be obtained from a CVS history command. +# +# All rights reserved. +# +# Created by: Mark O'Donohue +# +# Contributor(s): +# +# +# $Id: Makefile.in.msgs,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# + +ROOT=../.. + +include $(ROOT)/src/make.rules +include $(ROOT)/src/make.defaults +include $(ROOT)/src/make.platform +include $(ROOT)/src/make.shared.variables + +@SET_MAKE@ + +unexport ISC_USER +unexport ISC_PASSWORD + + +.PHONY: msgs + + +msgs: msg.gdb $(Programs) do_check message_file + + +Programs = $(BIN)/check_messages $(BIN)/build_file + + +do_check: $(Programs) + $(BIN)/check_messages -d $(MSGSDIR)master_msg_db -l + + + +CHECK_OBJECTS= check_msgs.o + +$(BIN)/check_messages: $(CHECK_OBJECTS) $(LIBGDS_LA) + $(EXE_LINK) $(LINK_OPTS) $^ -o $@ $(LINK_LIBS) + $(CHMOD_7) $@ + + +BUILD_OBJECTS=build_file.o + +$(BIN)/build_file: $(BUILD_OBJECTS) $(LIBGDS_LA) + $(EXE_LINK) $(LINK_OPTS) $^ -o $@ $(LINK_LIBS) + $(CHMOD_7) $@ + + + +message_file : $(INTERBASE)/interbase.msg + +$(FIREBIRD)/interbase.msg : $(Programs) indicator.msg + $(BIN)/build_file -d $(MSGSDIR)master_msg_db -f $(INTERBASE)/interbase.msg + $(CHMOD_6) $(INTERBASE)/interbase.msg + + + + +indicator.msg indicator.incl: + $(BIN)/check_messages -d $(MSGSDIR)master_msg_db + +indicator.loc: + $(BIN)/check_messages -d $(MSGSDIR)master_msg_db -l + +#build_file: build_file.o +# -$(RM) build_file +# $(CXX) $(LINK_OPTS) build_file.o -o build_file $(GDSSHR_LINK) +# $(CHMOD_7) build_file + + + + +msg.gdb: + ln -fs ../refDatabases/msg.gdb msg.gdb + ln -fs ../refDatabases/msg.gdb master_msg_db + + + + + + +all: build_file$(EXEC_EXT) check_messages$(EXEC_EXT) \ + enter_messages$(EXEC_EXT) modify_messages$(EXEC_EXT) \ + change_messages$(EXEC_EXT) + + +LOCALES= + + +# I know nother about these other than the default being set to none. I +# assume that as we get into it someone will want to use them and fix the +# following. + +msgs_intl locales.msg: $(LOCALES) + + +fr_FR.msg: build_file$(EXEC_EXT) indicator.msg indicator.loc + -$(RM) fr_FR.msg $(OBJS)/ifirebird/intl/fr_FR.msg + ./build_file -d $(MSGSDIR)master_msg_db \ + -l fr_FR \ + -p $(OBJS)/firebird/intl + $(TOUCH) fr_FR.msg + $(CHMOD_6) fr_FR.msg $(OBJS)/firebird/intl/fr_FR.msg + +de_DE.msg: build_file$(EXEC_EXT) indicator.msg indicator.loc + -$(RM) de_DE.msg source/interbase/intl/de_DE.msg + ./build_file -d $(MSGSDIR)master_msg_db \ + -l de_DE \ + -p source/interbase/intl + $(TOUCH) de_DE.msg + $(CHMOD_6) de_DE.msg source/interbase/intl/de_DE.msg + +ja_JP_EUC.msg: build_file$(EXEC_EXT) indicator.msg indicator.loc + -$(RM) ja_JP_EUC.msg source/interbase/intl/ja_JP_EUC.msg + ./build_file -d $(MSGSDIR)master_msg_db \ + -l ja_JP.EUC \ + -p source/interbase/intl + $(TOUCH) ja_JP_EUC.msg + $(CHMOD_6) ja_JP_EUC.msg source/interbase/intl/ja_JP_EUC.msg + + + +enter_messages: enter_msgs.o $(GDSSHR) + -$(RM) enter_messages + $(CC) $(LINK_OPTS) enter_msgs.o -o enter_messages $(GDSSHR_LINK) + $(CHMOD_7) enter_messages + +modify_messages: modify_msgs.o $(GDSSHR) + -$(RM) modify_messages + $(CC) $(LINK_OPTS) modify_msgs.o -o modify_messages $(GDSSHR_LINK) + $(CHMOD_7) modify_messages + +change_messages: change_msgs.o $(GDSSHR) + -$(RM) change_messages + $(CC) $(LINK_OPTS) change_msgs.o -o change_messages $(GDSSHR_LINK) + $(CHMOD_7) change_messages + +build_file.exe: build_file.o + -$(RM) build_file.exe + $(CC) $(LINK_OPTS) $(O_EXE_SWITCH)build_file build_file.o $(GDSSHR_LINK) + $(CHMOD_7) build_file.exe + +check_messages.exe: check_msgs.o + -$(RM) check_messages.exe + $(CC) $(LINK_OPTS) $(O_EXE_SWITCH)check_messages check_msgs.o $(GDSSHR_LINK) + $(CHMOD_7) check_messages.exe + +enter_messages.exe: enter_msgs.o + -$(RM) enter_messages.exe + $(CC) $(LINK_OPTS) $(O_EXE_SWITCH)enter_messages enter_msgs.o $(GDSSHR_LINK) + $(CHMOD_7) enter_messages.exe + +modify_messages.exe: modify_msgs.o + -$(RM) modify_messages.exe + $(CC) $(LINK_OPTS) $(O_EXE_SWITCH)modify_messages modify_msgs.o $(GDSSHR_LINK) + $(CHMOD_7) modify_messages.exe + +change_messages.exe: change_msgs.o + -$(RM) change_messages.exe + $(CC) $(LINK_OPTS) $(O_EXE_SWITCH)change_messages change_msgs.o $(GDSSHR_LINK) + $(CHMOD_7) change_messages.exe + + diff --git a/src/make.new/Makefile.in.pipe b/src/make.new/Makefile.in.pipe new file mode 100644 index 0000000000..bacb9befcd --- /dev/null +++ b/src/make.new/Makefile.in.pipe @@ -0,0 +1,75 @@ +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. You may obtain a copy of the Licence at +# http://www.gnu.org/copyleft/gpl.html +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Relevant for more details. +# +# This file was created by members of the firebird development team. +# All individual contributions remain the Copyright (C) of those +# individuals. Contributors to this file are either listed here or +# can be obtained from a CVS history command. +# +# All rights reserved. +# +# Created by: Mark O'Donohue +# +# Contributor(s): +# +# +# $Id: Makefile.in.pipe,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# + +ROOT=../.. + +include $(ROOT)/src/make.rules +include $(ROOT)/src/make.defaults +include $(ROOT)/src/make.platform +include $(ROOT)/src/make.shared.variables + + +@SET_MAKE@ + +AllObjects = $(PIPE_Objects) + +Dependencies = $(All_Objects:.o=.d) + + +.PHONY: jrd_static + + +jrd_static : $(LIB)/jrd_static.a($(PIPE_Objects)) + + +$(LIB)/jrd_static.a(%.o) : %.o + ar crv $@ $% + + +# In phase2 we add the same objects as before, we just rebuild them as +# portable and load them into a shared libgds.so library. + +.PHONY: jrdlib_dependencies + + +jrdlib_dependencies: $(PIPE_Objects) + + + + + + +#__ old stuff to be removed __________- +# PIPE + + + +include $(Dependencies) diff --git a/src/make.new/Makefile.in.qli b/src/make.new/Makefile.in.qli new file mode 100644 index 0000000000..565f5c6494 --- /dev/null +++ b/src/make.new/Makefile.in.qli @@ -0,0 +1,83 @@ +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. You may obtain a copy of the Licence at +# http://www.gnu.org/copyleft/gpl.html +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Relevant for more details. +# +# This file was created by members of the firebird development team. +# All individual contributions remain the Copyright (C) of those +# individuals. Contributors to this file are either listed here or +# can be obtained from a CVS history command. +# +# All rights reserved. +# +# Created by: Mark O'Donohue +# +# Contributor(s): +# +# +# $Id: Makefile.in.qli,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# + +ROOT=../.. + +include $(ROOT)/src/make.rules +include $(ROOT)/src/make.defaults +include $(ROOT)/src/make.platform +include $(ROOT)/src/make.shared.variables + +@SET_MAKE@ + +.PHONY: allx qli + + +allx: qli # allx is used since there is a local all.cpp file. + + +# qli +# +# + +QLI_OBJECTS= all.o command.o compile.o dtr.o err.o eval.o expand.o exe.o \ + noform.o format.o gener.o help.o hsh.o lex.o meta.o \ + mov.o parse.o picstr.o proc.o report.o show.o + +qli : $(QLI) + +$(QLI): $(QLI_OBJECTS) $(LIBGDS_LA) + $(CXX) $(LINK_OPTS) $^ -o $@ $(LINK_LIBS) + $(CHMOD_S7) $@ + + + +# qli_help +# +# qli_help is now directly build in the refDatabase directory, and doesn't +# need to be rebuilt here. + + +meta.cpp: yachts.lnk meta.epp +proc.cpp: yachts.lnk proc.epp +show.cpp: yachts.lnk show.epp +help.cpp: help.gdb help.epp + + +yachts.lnk: + ln -fs $(SRC_ROOT)/refDatabases/metadata.gdb yachts.lnk + +help.gdb: + ln -fs $(SRC_ROOT)/refDatabases/help.gdb help.gdb + + + + diff --git a/src/make.new/Makefile.in.refDatabases b/src/make.new/Makefile.in.refDatabases new file mode 100644 index 0000000000..04db367d5c --- /dev/null +++ b/src/make.new/Makefile.in.refDatabases @@ -0,0 +1,106 @@ +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. You may obtain a copy of the Licence at +# http://www.gnu.org/copyleft/gpl.html +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Relevant for more details. +# +# This file was created by members of the firebird development team. +# All individual contributions remain the Copyright (C) of those +# individuals. Contributors to this file are either listed here or +# can be obtained from a CVS history command. +# +# All rights reserved. +# +# Created by: Mark O'Donohue +# +# Contributor(s): +# +# +# $Id: Makefile.in.refDatabases,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# + +ROOT=../.. + +include $(ROOT)/src/make.rules +include $(ROOT)/src/make.defaults +include $(ROOT)/src/make.platform +include $(ROOT)/src/make.shared.variables + +@SET_MAKE@ + +# If we export the username/password we get an error because we can't connect +# to isc4.gdb! So we won't export them while we make the databases... +# +unexport ISC_USER +unexport ISC_PASSWORD +export DYLD_FRAMEWORK_PATH +DYLD_FRAMEWORK_PATH= $(OBJS)/firebird +export INTERBASE + + + +.PHONY: empty_db refDatabases + +# This is where you are going to have trouble if there is one, at creating +# the first empty database. Things to watch out for, gds_lock_mgr not being +# able to be started, $INTERBASE variable pointing in the wrong place, +# shared library path LD_LIBRARY_PATH not pointing to new stuff (mind you this +# point it should be creating using create_db statically linked). +# Also you don't need to worry about lock mgr not being able to set uid to +# superuser. You do not have to be root to build classic, it's just a warning +# and the build process works fine. + +empty_db : empty.gdb + +empty.gdb : $(BIN)/create_db + -$(RM) $@ + $(BIN)/create_db $@ + touch $@ + chmod 444 $@ + + + +# These are the rest of the databases used to build the system. We also build +# the help database from here. + +.PHONY: ref_databases + +ref_databases : msg.gdb help.gdb metadata.gdb $(FIREBIRD)/help/help.gdb + +msg.gdb: $(SRC_ROOT)/msgs/msg.gbak + $(BIN)/gbak_static -MODE read_only -R $< msg.gdb + chmod 444 msg.gdb + touch $@ + +help.gdb: $(SRC_ROOT)/misc/help.gbak + $(BIN)/gbak_static -MODE read_only -R $< help.gdb + chmod 444 help.gdb + touch $@ + +$(FIREBIRD)/help/help.gdb: $(SRC_ROOT)/misc/help.gbak + $(BIN)/gbak_static -MODE read_only -R $< $@ + chmod 444 help.gdb + touch $@ + +metadata.gdb: $(SRC_ROOT)/misc/metadata.gbak + $(BIN)/gbak_static -MODE read_only -R $< metadata.gdb + chmod 444 metadata.gdb + touch $@ + +# An alternative metadata creation method, this one is actually preferred +# since it ensures the data is valid. + +metadata.gdb.x: $(SRC_ROOT)/misc/metadata.sql + $(BIN)/isql -i $< + chmod 444 metadata.gdb + touch $@ diff --git a/src/make.new/Makefile.in.remote b/src/make.new/Makefile.in.remote new file mode 100644 index 0000000000..3027c5fec0 --- /dev/null +++ b/src/make.new/Makefile.in.remote @@ -0,0 +1,312 @@ +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. You may obtain a copy of the Licence at +# http://www.gnu.org/copyleft/gpl.html +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Relevant for more details. +# +# This file was created by members of the firebird development team. +# All individual contributions remain the Copyright (C) of those +# individuals. Contributors to this file are either listed here or +# can be obtained from a CVS history command. +# +# All rights reserved. +# +# Created by: Mark O'Donohue +# +# Contributor(s): +# +# +# $Id: Makefile.in.remote,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# + +ROOT=../.. + +include $(ROOT)/src/make.rules +include $(ROOT)/src/make.defaults +include $(ROOT)/src/make.platform +include $(ROOT)/src/make.shared.variables + +@SET_MAKE@ + + +# For historical reasons the objects that come from remote and are loaded into +# libjrd.a/so are defined in INTERFACE_Objects rather than REMOTE_Objects +# which would have matched the pattern for the rest. There is not problem +# other than it has a different name. + +SERVER_Sources = server.cpp +SERVER_Objects = $(SERVER_Sources:%.cpp=$(OBJ)/%.o) + +INETSERVER_Sources= inet_server.cpp +INETSERVER_Objects = $(INETSERVER_Sources:%.cpp=$(OBJ)/%.o) + +LOCKDRIVER_Objects = $(LOCKDRIVER_Sources:%.cpp=$(OBJ)/%.o) + +AllObjects = $(INTERFACE_Objects) $(SERVER_Objects) $(INETSERVER_Objects) + +Dependencies = $(All_Objects:.o=.d) + + +.PHONY: jrd_static + +jrd_static : $(LIB)/jrd_static.a($(INTERFACE_Objects)) + +$(LIB)/jrd_static.a(%.o) : %.o + ar crv $@ $% + + + +# In phase2 we add the same objects as before, we just rebuild them as +# portable and load them into a shared libgds.so library. + +.PHONY: jrdlib_dependencies + + + +jrdlib_dependencies: $(INTERFACE_Objects) + + + + + + +.PHONY: all inet_server + +all: inet_server + + + +inet_server : $(BIN)/gds_inet_server + +$(BIN)/gds_inet_server: $(SERVER_Objects) $(INETSERVER_Objects) $(LIBGDS_LA) + $(CC) $(LINK_OPTS) $^ -o $@ $(LINK_LIBS) + $(CHMOD_S7) $@ + + + + +#___ old stuff ____ to be deleted when super compile is working ____ + +DEBUG_INET_INSTALL=$(OBJS)/firebird/bin/inet_dbg$(EXEC_EXT) + +JRD_LINK= $(OBJS)/jrd/isc.o $(OBJS)/jrd/isc_sync.o \ + $(OBJS)/jrd/sdl.o $(OBJS)/jrd/thd.o $(OBJS)/jrd/iberr.o +JRD_LINK2= $(OBJS)/jrd/isc_file.o + + + +#JMB - SERVER_OBJECTS= divorce.o server.o +#SERVER_OBJECTS= server.o +#INTERFACE_P_OBJECTS= interface.bin allr.bin inet.bin merge.bin parser.bin \ +# protocol.bin remote.bin $(NET_P_OBJECTS) + +REMOTE_J_OBJECTS= merge.j + +REMOTE_CLIENT_P_OBJECTS= allr.bin inet.bin interface.bin merge.bin \ + parser.bin protocol.bin \ + remote.bin $(NET_P_OBJECTS) + +all: rem_objects $(REMOTE_P_OBJS) inet_server$(EXEC_EXT) \ + $(INET_LIBRARY) $(DNET_SERVER) $(AMBX_SERVER) $(WNET_SERVER) \ + rem_$(SPECIAL_OBJECTS)_objects + + +remotelib: $(INTERFACE_OBJECTS) $(JRD_LINK) + -$(RM) remotelib + /com/bind remote.rsp + $(CC) $(LINK_OPTS) $(O_EXE_SWITCH)inet_server \ + @remote.rsp $(GDSSHR_LINK) $(WSOCKLIB) $(ADVAPILIB) $(MPRLIB) + $(MV) inet_server.exe $(INET_SERVER_DEST) + $(RM) inet_server.exe remote.rsp + $(TOUCH) inet_server.exe + + +# DECnet server + +dnet_server: dnet_server.o $(SERVER_OBJECTS) $(REMOTE_OBJECTS) \ + $(JRD_LINK) $(REMOTE_GDSSHR) + -$(RM) dnet_server + $(CC) $(LINK_OPTS) dnet_server.o $(SERVER_OBJECTS) \ + -o dnet_server $(REMOTE_GDSSHR_LINK) + $(CHMOD_S7) dnet_server + $(MV) dnet_server $(DNET_SERVER_DEST) + $(TOUCH) dnet_server + $(CHMOD_6) dnet_server + + +nt_server.exe: nt_server.o server.o cntl.o $(REMOTE_OBJECTS) $(JRD_LINK) + -$(RM) nt_server.exe + $(CC) $(LINK_OPTS) $(O_EXE_SWITCH)nt_server \ + nt_server.o server.o cntl.o $(REMOTE_GDSSHR_LINK) + $(MV) nt_server.exe $(NT_SERVER_DEST) + $(RM) nt_server.exe + $(TOUCH) nt_server.exe + +inet_server.a: inet_server.o $(SERVER_OBJECTS) $(SCO_OBJS_REMLIB) + -$(RM) inet_server.a + $(AR) inet_server.a inet_server.o $(SERVER_OBJECTS) $(SCO_OBJS_REMLIB) + -ranlib inet_server.a + $(CHMOD_6) inet_server.a + $(MV) inet_server.a $(INET_LIB_DEST) + $(TOUCH) inet_server.a + $(CHMOD_6) inet_server.a + +dnet_server.a: dnet_server.o $(SERVER_OBJECTS) + -$(RM) dnet_server.a + $(AR) dnet_server.a dnet_server.o $(SERVER_OBJECTS) + -ranlib dnet_server.a + $(CHMOD_6) dnet_server.a + $(MV) dnet_server.a $(DNET_LIB_DEST) + $(TOUCH) dnet_server.a + $(CHMOD_6) dnet_server.a + +debug_PROD: + +debug_DEV: debug_inet_server + -$(RM) debug_DEV + -$(RM) $(DEBUG_INET_INSTALL) + -$(MV) inet_dbg $(DEBUG_INET_INSTALL) + -$(CHMOD_S7) $(DEBUG_INET_INSTALL) + $(TOUCH) debug_DEV + $(CHMOD_6) debug_DEV + +debug: debug_inet_server debug_$(DNET_SERVER) debug_$(AMBX_SERVER) + +debug_inet_server: inet_server.o $(SERVER_OBJECTS) $(INTERFACE_OBJECTS) \ + $(JRD_LINK) $(GDSLIB_BACKEND) + -$(RM) debug_inet_server + $(CC) $(LINK_OPTS) -g inet_server.o $(SERVER_OBJECTS) $(INTERFACE_OBJECTS) \ + -o inet_dbg $(GDSLIB_LINK) $(COREFOUNDATION_LINK) + $(TOUCH) debug_inet_server + $(CHMOD_6) debug_inet_server + +debug_dnet_server: dnet_server.o $(SERVER_OBJECTS) $(REMOTE_OBJECTS) \ + $(JRD_LINK) $(GDSLIB_BACKEND) + $(CC) $(LINK_OPTS) -g dnet_server.o $(SERVER_OBJECTS) \ + -o dnet_dbg $(GDSLIB_LINK) + +debug_gds_server: ambx_server.o $(SERVER_OBJECTS) $(GDSLIB_BACKEND) + $(CC) $(LINK_OPTS) ambx_server.o $(SERVER_OBJECTS) \ + -o server_dbg $(GDSLIB_LINK) + +debug_nt: + $(CC) $(DEBUG_LINK_OPTS) $(O_EXE_SWITCH)nt_dbg nt_server.o server.o cntl.o $(REMOTE_OBJECTS) $(GDSLIB_LINK) + +debug_: + +allr.o: allr.cpp remote.h $(SOURCE)/jrd/blk.h $(SOURCE)/jrd/ibsetjmp.h \ + allr_proto.h $(SOURCE)/jrd/gds_proto.h +ambx.o: ambx.cpp remote.h $(SOURCE)/jrd/thd.h +ambx_server.o: ambx_server.cpp remote.h $(SOURCE)/jrd/license.h +cntl.o: cntl.cpp remote.h $(SOURCE)/jrd/thd.h +decnet.o: decnet.cpp remote.h $(SOURCE)/jrd/thd.h +decnet_server.o: decnet_server.cpp remote.h $(SOURCE)/jrd/license.h $(SOURCE)/jrd/thd.h +dnet.o: dnet.cpp remote.h +divorce.o: divorce.cpp +inet.o: inet.cpp remote.h inet_proto.h remot_proto.h \ + $(SOURCE)/jrd/thd.h $(SOURCE)/jrd/gds_proto.h $(SOURCE)/jrd/isc_proto.h +inet_server.o: inet_server.cpp remote.h \ + allr_proto.h inet_proto.h serve_proto.h \ + $(SOURCE)/jrd/license.h $(SOURCE)/jrd/thd.h \ + $(SOURCE)/jrd/gds_proto.h +interface.o: interface.cpp remote.h $(SOURCE)/jrd/ibsetjmp.h \ + inet_proto.h inter_proto.h merge_proto.h parse_proto.h \ + remot_proto.h \ + $(SOURCE)/jrd/thd.h $(SOURCE)/jrd/license.h \ + $(SOURCE)/jrd/cvt_proto.h $(SOURCE)/jrd/enc_proto.h \ + $(SOURCE)/jrd/gds_proto.h $(SOURCE)/jrd/isc_f_proto.h \ + $(SOURCE)/jrd/sdl_proto.h +ipc.o: ipc.cpp remote.h ipc.h $(SOURCE)/jrd/thd.h +ipc_server.o: ipc_server.cpp remote.h ipc.h $(SOURCE)/jrd/license.h +merge.o: merge.cpp remote.h \ + allr_proto.h merge_proto.h \ + $(SOURCE)/jrd/gds_proto.h +mgr.o: mgr.cpp remote.h $(SOURCE)/jrd/license.h +mslan.o: mslan.cpp remote.h lanentry.h $(SOURCE)/jrd/thd.h +mslansrv.o: mslansrv.cpp remote.h lanman.h $(SOURCE)/jrd/license.h +nt_server.o: nt_server.cpp remote.h $(SOURCE)/jrd/license.h $(SOURCE)/jrd/thd.h +parser.o: parser.cpp remote.h \ + allr_proto.h parse_proto.h \ + $(SOURCE)/jrd/align.h +protocol.o: protocol.cpp remote.h \ + allr_proto.h parse_proto.h proto_proto.h remot_proto.h \ + $(SOURCE)/jrd/sdl.h \ + $(SOURCE)/jrd/gds_proto.h $(SOURCE)/jrd/sdl_proto.h +remote.h: protocol.h $(SOURCE)/jrd/blk.h xdr.h allr_proto.h \ + $(SOURCE)/jrd/dsc.h $(SOURCE)/jrd/thd.h +remote.o: remote.cpp remote.h allr_proto.h remot_proto.h \ + $(SOURCE)/jrd/gds_proto.h +server.o: server.cpp remote.h $(SOURCE)/jrd/ibsetjmp.h \ + allr_proto.h merge_proto.h parse_proto.h remot_proto.h \ + serve_proto.h \ + $(SOURCE)/jrd/thd.h $(SOURCE)/jrd/isc.h $(SOURCE)/jrd/license.h \ + $(SOURCE)/jrd/gds_proto.h $(SOURCE)/jrd/isc_proto.h \ + $(SOURCE)/jrd/sch_proto.h \ + $(SOURCE)/jrd/thd_proto.h +xdr.h: types.h in.h +winvx.o: winvx.cpp types.h in.h +wnet.o: wnet.cpp remote.h $(SOURCE)/jrd/license.h $(SOURCE)/jrd/thd.h +xdr.o: xdr.cpp xdr.h + + +force: + $(ECHO) force + +# .j objects are a special SOLARIS make +merge.j: merge.o + + +include $(Dependencies) diff --git a/src/make.new/Makefile.in.utilities b/src/make.new/Makefile.in.utilities new file mode 100644 index 0000000000..5db207bd29 --- /dev/null +++ b/src/make.new/Makefile.in.utilities @@ -0,0 +1,253 @@ +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. You may obtain a copy of the Licence at +# http://www.gnu.org/copyleft/gpl.html +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Relevant for more details. +# +# This file was created by members of the firebird development team. +# All individual contributions remain the Copyright (C) of those +# individuals. Contributors to this file are either listed here or +# can be obtained from a CVS history command. +# +# All rights reserved. +# +# Created by: Mark O'Donohue +# +# Contributor(s): +# +# +# $Id: Makefile.in.utilities,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# + +ROOT=../.. + +include $(ROOT)/src/make.rules +include $(ROOT)/src/make.defaults +include $(ROOT)/src/make.platform +include $(ROOT)/src/make.shared.variables + +@SET_MAKE@ + + +CREATEDB_Sources= create_db.cpp +CREATEDB_Objects = $(CREATEDB_Sources:%.cpp=$(OBJ)/%.o) + +DROP_Sources = drop.cpp dropv3.cpp +DROP_Objects = $(DROP_Sources:%.cpp=$(OBJ)/%.o) + +GSEC_Sources = gsec.cpp security.cpp +GSEC_Objects = $(GSEC_Sources:%.cpp=$(OBJ)/%.o) + +GSTAT_Sources = dba.cpp ppg.cpp +GSTAT_Objects = $(GSTAT_Sources:%.cpp=$(OBJ)/%.o) + +IBGUARD_Sources = guard.cpp util.cpp +IBGUARD_Objects = $(IBGUARD_Sources:%.cpp=$(OBJ)/%.o) + +IBMGR_Sources = ibmgr.cpp srvrmgr.cpp +IBMGR_Objects = $(IBMGR_Sources:%.cpp=$(OBJ)/%.o) + +REBUILD_Sources = rebuild.cpp rstore.cpp rmet.cpp +REBUILD_Objects = $(REBUILD_Sources:%.cpp=$(OBJ)/%.o) + +RELAY_Sources = relay.cpp +RELAY_Objects = $(RELAY_Sources:%.cpp=$(OBJ)/%.o) + + +AllObjects = $(SECURITY_Objects) $(CREATEDB_Object) $(DROP_Object) \ + $(GSEC_Objects) $(GSTAT_Object) $(IBGUARD_Objects) \ + $(IBMGR_Objects) $(REBUILD_Objects) $(RELAY_Objects) + +Dependencies = $(AllObjects:.o=.d) + + + + +.PHONY: create_db + + +unexport ISC_USER +unexport ISC_PASSWORD + + + +all: gstat gds_drop gsec gds_relay gsec + +super_server_targets: ibguard ibmgr_bin + + + +# These three are essential for the build process +create_db : $(CREATE_DB) $(GDS_DROP) +gsecx : $(GSEC) # The x added to make the target unique +security : $(ISC_GDB) jrdlib_dependencies + +# These are more utility targets. +gstat : $(GSTAT) +gds_drop : $(GDS_DROP) +gds_relay : $(GDS_RELAY) + +# These are used by super server only +ibmgr : $(IBMGR_BIN) +ibguard : $(IBGUARD) + + + +$(CREATE_DB): $(CREATEDB_Objects) $(LIB)/jrd_static.a + $(STATICEXE_LINK) $(STATICLINK_OPTS) $^ -o $@ $(STATICLINK_LIBS) + $(CHMOD_7) $@ + + +$(GDS_DROP): $(DROP_Objects) $(LIB)/jrd_static.a + $(STATICEXE_LINK) $(STATICLINK_OPTS) $^ -o $@ $(STATICLINK_LIBS) + $(CHMOD_S7) $@ + + + +# The security build target basically ends up with a isc4.gdb user store +# database. it is the end of a bit of work since we have had to bootstrap +# things to get to the point were we can use isql and gdef to create a +# database. + + + +isc4.gdb : $(ISC_GDB) + -ln -sf $(ISC_GDB) $@ + + +# I think in the following it is more luck that anything that the +# relative path back from $(FIREBIRD) to $(SRC) works - but it does. +$(ISC_GDB) : isc4.sql isc4.gdl + ( cd $(FIREBIRD); $(BIN)/isql -z -i $(SRC)/isc4.sql) + ( cd $(FIREBIRD); $(BIN)/gdef -z $(SRC)/isc4.gdl) + -ln -sf $(ISC_GDB) isc.gdb + + +# Ok it's a big step but we finally start adding security related objects +# to the libgds.so file + +.PHONY: build_alt_use_boot build_alt_use_main jrdlib_dependencies + + +# The following two are used to create an empty security.cpp file which +# is used in the linking of the boot build process and then reset the +# security.epp file for building in the main process. It is done like +# this to simpliy the build targets in the makefile. +# + +build_alt_use_boot: + -$(RM) security.cpp + touch security.cpp + +build_alt_use_main: + -$(RM) security.cpp + touch security.epp + +jrdlib_dependencies: $(SECURITY_Objects) + + + +# We use a marker file to indicate that the sysdba user has been +# added to the isc4.gdb user database. + +sysdba_user: have_added_sysdba_user.flg + +have_added_sysdba_user.flg : $(ISC_GDB) $(GSEC) + -$(GSEC) -da $(ISC_GDB) -delete $(ISC_USER) + $(GSEC) -da $(ISC_GDB) -add $(ISC_USER) -pw $(ISC_PASSWORD) + $(GBAK_STATIC) -z $(ISC_GDB) $(ISC_GBAK) + $(CHMOD_6) $(ISC_GDB) $(ISC_GBAK) + date > $@ + + + + +# gsec +# +# JMB $(ENC_LINK) already in shared library +# JMB security.o already in shared library +# no it aint MOD 13-7-2001 + + +$(GSEC): $(GSEC_Objects) $(LIBGDS_LA) + $(EXE_LINK) $(LINK_OPTS) $^ -o $@ $(LINK_LIBS) + $(CHMOD_7) $@ + + + + +# dba/gstat + + +$(GSTAT): $(GSTAT_Objects) $(LIBGDS_LA) + $(EXE_LINK) $(LINK_OPTS) $^ -o $@ $(LINK_LIBS) + $(CHMOD_7) $@ + + +# ibguard + + +$(IBGUARD): $(IBGUARD_Objects) $(LIBGDS_LA) + $(EXE_LINK) $(LINK_OPTS) $^ -o $@ $(LINK_LIBS) + $(CHMOD_7) $@ + + +# ibmgr + + +$(IBMGR_BIN): $(IBMGR_Objects) $(LIBGDS_LA) + $(EXE_LINK) $(LINK_OPTS) $^ -o $@ $(LINK_LIBS) + $(CHMOD_7) $@ + + +# rebuild + + +$(GDS_REBUILD): $(REBUILD_Objects) $(LIBGDS_LA) + $(EXE_LINK) $(LINK_OPTS) $^ -o $@ $(LINK_LIBS) + $(CHMOD_7) $@ + + +# relay + + + +$(GDS_RELAY): $(RELAY_Objects) $(LIBGDS_LA) + $(EXE_LINK) $(LINK_OPTS) $^ -o $@ $(LINK_LIBS) + $(CHMOD_7) $@ + + +dba.cpp: yachts.lnk dba.epp +yachts.lnk: + ln -fs $(SRC)/refDatabases/empty.gdb yachts.lnk + + + + +# This ain't ones that I need, so i've just copied it for the moment + +install_reg.exe: install_reg.o registry.o + -$(RM) install_reg.exe + $(CXX) $(LINK_OPTS) $(O_EXE_SWITCH)install_reg install_reg.o registry.o $(CONLIBSDLL) $(ADVAPILIB) + $(MV) install_reg.exe $(INSTALL_REG) + $(RM) install_reg.exe + $(TOUCH) install_reg.exe + +install_svc.exe: install_svc.o services.o + -$(RM) install_svc.exe + $(CXX) $(LINK_OPTS) $(O_EXE_SWITCH)install_svc install_svc.o services.o $(CONLIBSDLL) $(ADVAPILIB) + $(MV) install_svc.exe $(INSTALL_SVC) + $(RM) install_svc.exe + $(TOUCH) install_svc.exe + +include $(Dependencies) diff --git a/src/make.new/Makefile.in.wal b/src/make.new/Makefile.in.wal new file mode 100644 index 0000000000..1f35bcff24 --- /dev/null +++ b/src/make.new/Makefile.in.wal @@ -0,0 +1,141 @@ +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. You may obtain a copy of the Licence at +# http://www.gnu.org/copyleft/gpl.html +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Relevant for more details. +# +# This file was created by members of the firebird development team. +# All individual contributions remain the Copyright (C) of those +# individuals. Contributors to this file are either listed here or +# can be obtained from a CVS history command. +# +# All rights reserved. +# +# Created by: Mark O'Donohue +# +# Contributor(s): +# +# +# $Id: Makefile.in.wal,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# + +ROOT=../.. + +include $(ROOT)/src/make.rules +include $(ROOT)/src/make.defaults +include $(ROOT)/src/make.platform +include $(ROOT)/src/make.shared.variables + +@SET_MAKE@ + +AllObjects = $(WAL_Objects) + +Dependencies = $(All_Objects:.o=.d) + + + + +.PHONY: jrd_static + +jrd_static : $(LIB)/jrd_static.a($(WAL_Objects)) + +$(LIB)/jrd_static.a(%.o) : %.o + ar crv $@ $% + + + +# In phase2 we add the same objects as before, we just rebuild them as +# portable and load them into a shared libgds.so library. + +.PHONY: jrdlib_dependencies + + + +jrdlib_dependencies: $(WAL_Objects) + + + +# end + + + + +#__ the old stuff to be removed ____ + +WALW_OBJECTS= walc.o walf.o walw.o walw_main.o + +WAL_P_OBJECTS= wal.bin walc.bin walf.bin walr.bin + +JRD_OBJECTS= $(OBJS)/jrd/gds.o $(OBJS)/jrd/iberr.o \ + $(OBJS)/jrd/isc.o $(OBJS)/jrd/isc_file.o $(OBJS)/jrd/isc_ipc.o \ + $(OBJS)/jrd/isc_sync.o $(OBJS)/jrd/llio.o $(OBJS)/jrd/misc.o + +WAL_WRITER= $(OBJS)/firebird/bin/gds_wal_writer$(EXEC_EXT) +WAL_PRINT= $(OBJS)/firebird/bin/gds_wal_print$(EXEC_EXT) + +all: wal_objects $(WAL_P_OBJS) wal_writer$(EXEC_EXT) + + +wal_print: wal_prnt.o $(WAL_OBJECTS) $(JRD_OBJECTS) + -$(RM) wal_print + $(CXX) $(LINK_OPTS) wal_prnt.o $(WAL_OBJECTS) $(JRD_OBJECTS) \ + -o wal_print $(SCO_SOCKET_LIB) $(SO_THREAD_LIB) $(NSL_LIB) + $(CHMOD_7) wal_print + $(MV) wal_print $(WAL_PRINT) + $(TOUCH) wal_print + $(CHMOD_6) wal_print + +wal_print.exe: wal_prnt.o $(WAL_OBJECTS) $(JRD_OBJECTS) $(OBJS)/jrd/thd.o + -$(RM) wal_print.exe wal.rsp + $(ECHO) wal_prnt.o $(WAL_OBJECTS) $(JRD_OBJECTS) $(OBJS)/jrd/thd.o > wal.rsp + $(CXX) $(LINK_OPTS) $(O_EXE_SWITCH)wal_print \ + @wal.rsp $(CONLIBSDLL) $(ADVAPILIB) $(MPRLIB) + $(MV) wal_print.exe $(WAL_PRINT) + $(RM) wal_print.exe wal.rsp + $(TOUCH) wal_print.exe + +wal_writer: $(WALW_OBJECTS) divorce.o $(JRD_OBJECTS) $(OBJS)/jrd/jrn.o + -$(RM) wal_writer + $(CXX) $(LINK_OPTS) $(WALW_OBJECTS) divorce.o $(JRD_OBJECTS) $(OBJS)/jrd/jrn.o \ + -o wal_writer $(SO_SOCKET_LIB) \ + $(SCO_SOCKET_LIB) $(SO_THREAD_LIB) $(SOCKET_LIB) + $(CHMOD_S7) wal_writer + $(MV) wal_writer $(WAL_WRITER) + $(TOUCH) wal_writer + $(CHMOD_6) wal_writer + +wal_writer.exe: $(WALW_OBJECTS) $(JRD_OBJECTS) $(OBJS)/jrd/jrn.o $(OBJS)/jrd/thd.o + -$(RM) wal_writer.exe wal.rsp + $(ECHO) $(WALW_OBJECTS) $(JRD_OBJECTS) $(OBJS)/jrd/jrn.o $(OBJS)/jrd/thd.o > wal.rsp + $(CXX) $(LINK_OPTS) $(O_EXE_SWITCH)wal_writer \ + @wal.rsp $(CONLIBSDLL) $(ADVAPILIB) $(MPRLIB) + $(MV) wal_writer.exe $(WAL_WRITER) + $(RM) wal_writer.exe wal.rsp + $(TOUCH) wal_writer.exe + +driver: driver.o $(WAL_OBJECTS) $(JRD_OBJECTS) + -$(RM) driver + $(CXX) $(LINK_OPTS) driver.o $(WAL_OBJECTS) $(JRD_OBJECTS) \ + -o driver $(SCO_SOCKET_LIB) $(SO_THREAD_LIB) $(NSL_LIB) + $(CHMOD_7) driver + +driver.exe: driver.o $(WAL_OBJECTS) $(JRD_OBJECTS) $(OBJS)/jrd/thd.o + -$(RM) driver.exe wal.rsp + $(ECHO) driver.o $(WAL_OBJECTS) $(JRD_OBJECTS) $(OBJS)/jrd/thd.o > wal.rsp + $(CXX) $(LINK_OPTS) $(O_EXE_SWITCH)driver \ + @wal.rsp $(CONLIBSDLL) $(ADVAPILIB) $(MPRLIB) + $(RM) wal.rsp + + +include $(Dependencies) + diff --git a/src/make.new/README.makefiles b/src/make.new/README.makefiles new file mode 100644 index 0000000000..f2de8956d7 --- /dev/null +++ b/src/make.new/README.makefiles @@ -0,0 +1,105 @@ + +OVERVIEW + +The new makefiles were created to fit in with autoconf, to place the object +files in seperate directories to the source files and to simplify the build +process. + +It really does rely on using gnu make so that is the best version to use. + + +MAKEFILE + +Makefiles are found in src/make.new + +make.rules +make.defaults +make.shared.variables + +prefix.xxx (where xxx = platform) + +In src/make.new there are a number of Makefile.in.xxx files and some make.xxx + + +STRUCTURE OF MAKEFILE.IN.XXX + + +Each Makefile.in.xxx has the following somewhere near the top: + +include make.rules +include make.defaults +include make.platform +include make.shared.variables + +... +... + + +These are: + +make.rules + +This contains the default rules for compiling the system components. Such as +directory macros CXX etc. + + +make.defaults + +This contains default values for macros that it is likely that the user may +want to override. + + +make.platform + +This file is created from the prefix.xxx where xxx=linux/darwin/freebsd etc. +It provides a spot for the user to override or repalce macros that have been +defined in make.rules and make.defaults. In addition extra dependancies can +be added to build extra targets. + + +make.shared.variables + +This file contains the defintion of macros that are shared across all of the +modules. The only set that are needed are those files that are contained in +the libgds.a/so library since files from many modules contribute to the library. + + + +CREATING OBJECT FILES + + +In the makefiles the object files are of two sorts .o static and .lo +which are suitable for shared libraries. On most systems the source +files need to be compiled twice to create both .o and .lo files. F +Fortunately the program libtool can help work with this. + +The general format of .o file dependancies is: + +SERVER_Sources = server.cpp +SERVER_Objects = $(SERVER_Sources:%.cpp=$(OBJ)/%.o) + + +So the .o files live in $(OBJ) where: +OBJ = $(ROOT)/gen/$ModuleName + + +Each Makefile also specifies an AllObjects and Dependancies macro which +identified all the objects that this Makefile is to create and the name +of the dependency files generated for those objects. + +AllObjects = $(Alice_Objects) + + +FILE DEPENDANCIES + +Include file dependancy information is automatically generated by the gcc +compiler. + +The gcc compiler has a flag -MMD which will generate in addition to the +.o file a .d file which contains the dependancy chain of #includes required +for the program. These are then edited and stored in the $(OBJ) directory and +are included in the bottom line of the makefile with + +Dependencies = $(All_Objects:.o=.d) + +include $(Dependancies) diff --git a/src/make.new/config/config.guess b/src/make.new/config/config.guess new file mode 100755 index 0000000000..ba66165161 --- /dev/null +++ b/src/make.new/config/config.guess @@ -0,0 +1,1371 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. + +timestamp='2001-04-20' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# 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 to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Written by Per Bothner . +# Please send patches to . +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# The plan is that this can be called by configure scripts if you +# don't specify an explicit build system type. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99, 2000 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit 0 ;; + --version | -v ) + echo "$version" ; exit 0 ;; + --help | --h* | -h ) + echo "$usage"; exit 0 ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + + +dummy=dummy-$$ +trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int dummy(){}" > $dummy.c + for c in cc gcc c89 ; do + ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 + if test $? = 0 ; then + CC_FOR_BUILD="$c"; break + fi + done + rm -f $dummy.c $dummy.o $dummy.rel + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 8/24/94.) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # Netbsd (nbsd) targets should (where applicable) match one or + # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # Determine the machine/vendor (is the vendor relevant). + case "${UNAME_MACHINE}" in + amiga) machine=m68k-unknown ;; + arm32) machine=arm-unknown ;; + atari*) machine=m68k-atari ;; + sun3*) machine=m68k-sun ;; + mac68k) machine=m68k-apple ;; + macppc) machine=powerpc-apple ;; + hp3[0-9][05]) machine=m68k-hp ;; + ibmrt|romp-ibm) machine=romp-ibm ;; + *) machine=${UNAME_MACHINE}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE}" in + i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k) + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep __ELF__ >/dev/null + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit 0 ;; + alpha:OSF1:*:*) + if test $UNAME_RELEASE = "V4.0"; then + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + fi + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + cat <$dummy.s + .data +\$Lformat: + .byte 37,100,45,37,120,10,0 # "%d-%x\n" + + .text + .globl main + .align 4 + .ent main +main: + .frame \$30,16,\$26,0 + ldgp \$29,0(\$27) + .prologue 1 + .long 0x47e03d80 # implver \$0 + lda \$2,-1 + .long 0x47e20c21 # amask \$2,\$1 + lda \$16,\$Lformat + mov \$0,\$17 + not \$1,\$18 + jsr \$26,printf + ldgp \$29,0(\$26) + mov 0,\$16 + jsr \$26,exit + .end main +EOF + $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null + if test "$?" = 0 ; then + case `./$dummy` in + 0-0) + UNAME_MACHINE="alpha" + ;; + 1-0) + UNAME_MACHINE="alphaev5" + ;; + 1-1) + UNAME_MACHINE="alphaev56" + ;; + 1-101) + UNAME_MACHINE="alphapca56" + ;; + 2-303) + UNAME_MACHINE="alphaev6" + ;; + 2-307) + UNAME_MACHINE="alphaev67" + ;; + esac + fi + rm -f $dummy.s $dummy + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit 0 ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit 0 ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit 0 ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit 0;; + amiga:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit 0 ;; + arc64:OpenBSD:*:*) + echo mips64el-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + arc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + hkmips:OpenBSD:*:*) + echo mips-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + pmax:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sgi:OpenBSD:*:*) + echo mips-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + wgrisc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit 0 ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit 0;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit 0;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit 0 ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit 0 ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + i86pc:SunOS:5.*:*) + echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit 0 ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit 0 ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit 0 ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit 0 ;; + atari*:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit 0 ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit 0 ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit 0 ;; + sun3*:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mac68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme88k:OpenBSD:*:*) + echo m88k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit 0 ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit 0 ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit 0 ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD $dummy.c -o $dummy \ + && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ + && rm -f $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy + echo mips-mips-riscos${UNAME_RELEASE} + exit 0 ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit 0 ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit 0 ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit 0 ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit 0 ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit 0 ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit 0 ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit 0 ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit 0 ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit 0 ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit 0 ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit 0 ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit 0 ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit 0 ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy + echo rs6000-ibm-aix3.2.5 + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit 0 ;; + *:AIX:*:[45]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit 0 ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit 0 ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit 0 ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit 0 ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit 0 ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit 0 ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit 0 ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit 0 ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + case "${HPUX_REV}" in + 11.[0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + esac ;; + esac + fi ;; + esac + if [ "${HP_ARCH}" = "" ]; then + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy` + if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi + rm -f $dummy.c $dummy + fi ;; + esac + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit 0 ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit 0 ;; + 3050*:HI-UX:*:*) + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy + echo unknown-hitachi-hiuxwe2 + exit 0 ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit 0 ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit 0 ;; + *9??*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit 0 ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit 0 ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit 0 ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit 0 ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit 0 ;; + hppa*:OpenBSD:*:*) + echo hppa-unknown-openbsd + exit 0 ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit 0 ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit 0 ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit 0 ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit 0 ;; + CRAY*X-MP:*:*:*) + echo xmp-cray-unicos + exit 0 ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} + exit 0 ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ + exit 0 ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*T3D:*:*:*) + echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY-2:*:*:*) + echo cray2-cray-unicos + exit 0 ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit 0 ;; + hp300:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit 0 ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; + *:FreeBSD:*:*) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit 0 ;; + *:OpenBSD:*:*) + echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + exit 0 ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit 0 ;; + i*:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit 0 ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit 0 ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i386-pc-interix + exit 0 ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit 0 ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit 0 ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + *:GNU:*:*) + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit 0 ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit 0 ;; + arm*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux + exit 0 ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + mips:Linux:*:*) + cat >$dummy.c < /* for printf() prototype */ +int main (int argc, char *argv[]) { +#else +int main (argc, argv) int argc; char *argv[]; { +#endif +#ifdef __MIPSEB__ + printf ("%s-unknown-linux-gnu\n", argv[1]); +#endif +#ifdef __MIPSEL__ + printf ("%sel-unknown-linux-gnu\n", argv[1]); +#endif + return 0; +} +EOF + $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy + ;; + ppc:Linux:*:*) + # Determine Lib Version + cat >$dummy.c < +#if defined(__GLIBC__) +extern char __libc_version[]; +extern char __libc_release[]; +#endif +main(argc, argv) + int argc; + char *argv[]; +{ +#if defined(__GLIBC__) + printf("%s %s\n", __libc_version, __libc_release); +#else + printf("unknown\n"); +#endif + return 0; +} +EOF + LIBC="" + $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null + if test "$?" = 0 ; then + ./$dummy | grep 1\.99 > /dev/null + if test "$?" = 0 ; then LIBC="libc1" ; fi + fi + rm -f $dummy.c $dummy + echo powerpc-unknown-linux-gnu${LIBC} + exit 0 ;; + alpha:Linux:*:*) + cat <$dummy.s + .data + \$Lformat: + .byte 37,100,45,37,120,10,0 # "%d-%x\n" + .text + .globl main + .align 4 + .ent main + main: + .frame \$30,16,\$26,0 + ldgp \$29,0(\$27) + .prologue 1 + .long 0x47e03d80 # implver \$0 + lda \$2,-1 + .long 0x47e20c21 # amask \$2,\$1 + lda \$16,\$Lformat + mov \$0,\$17 + not \$1,\$18 + jsr \$26,printf + ldgp \$29,0(\$26) + mov 0,\$16 + jsr \$26,exit + .end main +EOF + LIBC="" + $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null + if test "$?" = 0 ; then + case `./$dummy` in + 0-0) UNAME_MACHINE="alpha" ;; + 1-0) UNAME_MACHINE="alphaev5" ;; + 1-1) UNAME_MACHINE="alphaev56" ;; + 1-101) UNAME_MACHINE="alphapca56" ;; + 2-303) UNAME_MACHINE="alphaev6" ;; + 2-307) UNAME_MACHINE="alphaev67" ;; + esac + objdump --private-headers $dummy | \ + grep ld.so.1 > /dev/null + if test "$?" = 0 ; then + LIBC="libc1" + fi + fi + rm -f $dummy.s $dummy + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit 0 ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit 0 ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit 0 ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit 0 ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + x86_64:Linux:*:*) + echo x86_64-unknown-linux-gnu + exit 0 ;; + i*86:Linux:*:*) + # The BFD linker knows what the default object file format is, so + # first see if it will tell us. cd to the root directory to prevent + # problems with other programs or directories called `ld' in the path. + ld_supported_emulations=`cd /; ld --help 2>&1 \ + | sed -ne '/supported emulations:/!d + s/[ ][ ]*/ /g + s/.*supported emulations: *// + s/ .*// + p'` + case "$ld_supported_emulations" in + i*86linux) + echo "${UNAME_MACHINE}-pc-linux-gnuaout" + exit 0 + ;; + elf_i*86) + TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" + ;; + i*86coff) + echo "${UNAME_MACHINE}-pc-linux-gnucoff" + exit 0 + ;; + esac + # Either a pre-BFD a.out linker (linux-gnuoldld) + # or one that does not give us useful --help. + # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout. + # If ld does not provide *any* "supported emulations:" + # that means it is gnuoldld. + test -z "$ld_supported_emulations" && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 + case "${UNAME_MACHINE}" in + i*86) + VENDOR=pc; + ;; + *) + VENDOR=unknown; + ;; + esac + # Determine whether the default compiler is a.out or elf + cat >$dummy.c < +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif +#ifdef __ELF__ +# ifdef __GLIBC__ +# if __GLIBC__ >= 2 + printf ("%s-${VENDOR}-linux-gnu\n", argv[1]); +# else + printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); +# endif +# else + printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); +# endif +#else + printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]); +#endif + return 0; +} +EOF + $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy + test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 + ;; +# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions +# are messed up and put the nodename in both sysname and nodename. + i*86:DYNIX/ptx:4*:*) + echo i386-sequent-sysv4 + exit 0 ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit 0 ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit 0 ;; + i*86:*:5:7*) + # Fixed at (any) Pentium or better + UNAME_MACHINE=i586 + if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then + echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE} + fi + exit 0 ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` + (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit 0 ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit 0 ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i386. + echo i386-pc-msdosdjgpp + exit 0 ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit 0 ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit 0 ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit 0 ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit 0 ;; + M68*:*:R3V[567]*:*) + test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; + 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4.3${OS_REL} && exit 0 + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4 && exit 0 ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit 0 ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit 0 ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit 0 ;; + PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit 0 ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit 0 ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit 0 ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit 0 ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit 0 ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit 0 ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit 0 ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit 0 ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit 0 ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit 0 ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit 0 ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit 0 ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit 0 ;; + *:Darwin:*:*) + echo `uname -p`-apple-darwin${UNAME_RELEASE} + exit 0 ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + if test "${UNAME_MACHINE}" = "x86pc"; then + UNAME_MACHINE=pc + fi + echo `uname -p`-${UNAME_MACHINE}-nto-qnx + exit 0 ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit 0 ;; + NSR-[KW]:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit 0 ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit 0 ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit 0 ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit 0 ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit 0 ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit 0 ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit 0 ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit 0 ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit 0 ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit 0 ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit 0 ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit 0 ;; +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +cat >$dummy.c < +# include +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0 +rm -f $dummy.c $dummy + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit 0 ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + c34*) + echo c34-convex-bsd + exit 0 ;; + c38*) + echo c38-convex-bsd + exit 0 ;; + c4*) + echo c4-convex-bsd + exit 0 ;; + esac +fi + +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/src/make.new/config/config.h.in b/src/make.new/config/config.h.in new file mode 100644 index 0000000000..fd9298ff22 --- /dev/null +++ b/src/make.new/config/config.h.in @@ -0,0 +1,69 @@ +#ifndef AUTOCONFIG_H +#define AUTOCONFIG_H + + +/* Headers */ +#undef HAVE_ASSERT_H +#undef HAVE_UNISTD_H +#undef HAVE_FCNTL_H +#undef HAVE_SYS_TYPES_H +#undef HAVE_TIME_H +#undef HAVE_SYS_TIME_H +#undef HAVE_SYS_STAT_H +#undef HAVE_CTYPE_H +#undef HAVE_SYS_UIO_H +#undef HAVE_LIB_IO_H +#undef HAVE_WAIT_H +#undef HAVE_SYS_WAIT_H +#undef HAVE_SYS_PARAM_H +#undef HAVE_VARARGS_H +#undef HAVE_STDARG_H +#undef HAVE_STDLIB_H +#undef HAVE_STRING_H +#undef HAVE_SIGNAL_H + + +/* Is the platform big endian? */ +#define WORDS_BIGENDIAN 0 + +/* CPU types */ +#undef PowerPC +#undef sparc +#undef i386 +#undef mips +#undef alpha + +/* various OS efforts */ +#undef DARWIN +#undef LINUX +#undef FREEBSD +#undef NETBSD +#undef apollo +#undef sun +#undef SOLARIS +#undef MAC +#undef NeXT +#undef hpux +#undef ultrix +#undef PC_PLATFORM +#undef NETWARE_386 +#undef WINDOWS_ONLY +#undef VMS +#undef AIX +#undef OS2_ONLY +#undef WIN_NT +#undef SCO_EV +#undef DGUX +#undef DECOSF +#undef sgi +#undef mpexl +#undef _CRAY +#undef DELTA +#undef M88K +#undef UNIXWARE +#undef NCR3000 +#undef IMP +#undef EPSON + + +#endif diff --git a/src/make.new/config/config.log b/src/make.new/config/config.log new file mode 100644 index 0000000000..fb9038e996 --- /dev/null +++ b/src/make.new/config/config.log @@ -0,0 +1,3 @@ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + diff --git a/src/make.new/config/config.sub b/src/make.new/config/config.sub new file mode 100755 index 0000000000..93a3a14643 --- /dev/null +++ b/src/make.new/config/config.sub @@ -0,0 +1,1362 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. + +timestamp='2001-05-11' + +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# 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 to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit 0 ;; + --version | -v ) + echo "$version" ; exit 0 ;; + --help | --h* | -h ) + echo "$usage"; exit 0 ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit 0;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | storm-chaos* | os2-emx*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis) + os= + basic_machine=$1 + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc \ + | arm | arme[lb] | arm[bl]e | armv[2345] | armv[345][lb] | strongarm | xscale \ + | pyramid | mn10200 | mn10300 | tron | a29k \ + | 580 | i960 | h8300 \ + | x86 | ppcbe | mipsbe | mipsle | shbe | shle \ + | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \ + | hppa64 \ + | alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \ + | alphaev6[78] \ + | we32k | ns16k | clipper | i370 | sh | sh[34] \ + | powerpc | powerpcle \ + | 1750a | dsp16xx | pdp10 | pdp11 \ + | mips16 | mips64 | mipsel | mips64el \ + | mips64orion | mips64orionel | mipstx39 | mipstx39el \ + | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \ + | mips64vr5000 | miprs64vr5000el | mcore | s390 | s390x \ + | sparc | sparclet | sparclite | sparc64 | sparcv9 | sparcv9b \ + | v850 | c4x \ + | thumb | d10v | d30v | fr30 | avr | openrisc | tic80 \ + | pj | pjl | h8500 | z8k) + basic_machine=$basic_machine-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | w65 | z8k) + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + # FIXME: clean up the formatting here. + vax-* | tahoe-* | i*86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \ + | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | c[123]* \ + | arm-* | armbe-* | armle-* | armv*-* | strongarm-* | xscale-* \ + | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ + | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \ + | xmp-* | ymp-* \ + | x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* \ + | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \ + | hppa2.0n-* | hppa64-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \ + | alphaev6[78]-* \ + | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \ + | clipper-* | orion-* \ + | sparclite-* | pdp10-* | pdp11-* | sh-* | sh[34]-* | sh[34]eb-* \ + | powerpc-* | powerpcle-* | sparc64-* | sparcv9-* | sparcv9b-* | sparc86x-* \ + | mips16-* | mips64-* | mipsel-* \ + | mips64el-* | mips64orion-* | mips64orionel-* \ + | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \ + | mipstx39-* | mipstx39el-* | mcore-* \ + | f30[01]-* | f700-* | s390-* | s390x-* | sv1-* | t3e-* \ + | [cjt]90-* \ + | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \ + | thumb-* | v850-* | d30v-* | tic30-* | tic80-* | c30-* | fr30-* \ + | bs2000-* | tic54x-* | c54x-* | x86_64-* | pj-* | pjl-*) + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | ymp) + basic_machine=ymp-cray + os=-unicos + ;; + cray2) + basic_machine=cray2-cray + os=-unicos + ;; + [cjt]90) + basic_machine=${basic_machine}-cray + os=-unicos + ;; + crds | unos) + basic_machine=m68k-crds + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mipsel*-linux*) + basic_machine=mipsel-unknown + os=-linux-gnu + ;; + mips*-linux*) + basic_machine=mips-unknown + os=-linux-gnu + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + mmix*) + basic_machine=mmix-knuth + os=-mmixware + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pentium | p5 | k5 | k6 | nexgen) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon) + basic_machine=i686-pc + ;; + pentiumii | pentium2) + basic_machine=i686-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sparclite-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=t3e-cray + os=-unicos + ;; + tic54x | c54x*) + basic_machine=tic54x-unknown + os=-coff + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xmp) + basic_machine=xmp-cray + os=-unicos + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + mips) + if [ x$os = x-linux-gnu ]; then + basic_machine=mips-unknown + else + basic_machine=mips-mips + fi + ;; + romp) + basic_machine=romp-ibm + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh3 | sh4) + basic_machine=sh-unknown + ;; + sparc | sparcv9 | sparcv9b) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + c4x*) + basic_machine=c4x-none + os=-coff + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ + | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* | -os2*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto*) + os=-nto-qnx + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + m68*-cisco) + os=-aout + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-ibm) + os=-aix + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -vxsim* | -vxworks*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/src/make.new/config/install-sh b/src/make.new/config/install-sh new file mode 100755 index 0000000000..398a88e142 --- /dev/null +++ b/src/make.new/config/install-sh @@ -0,0 +1,251 @@ +#!/bin/sh +# +# install - install a program, script, or datafile +# This comes from X11R5 (mit/util/scripts/install.sh). +# +# Copyright 1991 by the Massachusetts Institute of Technology +# +# Permission to use, copy, modify, distribute, and sell this software and its +# documentation for any purpose is hereby granted without fee, provided that +# the above copyright notice appear in all copies and that both that +# copyright notice and this permission notice appear in supporting +# documentation, and that the name of M.I.T. not be used in advertising or +# publicity pertaining to distribution of the software without specific, +# written prior permission. M.I.T. makes no representations about the +# suitability of this software for any purpose. It is provided "as is" +# without express or implied warranty. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. It can only install one file at a time, a restriction +# shared with many OS's install programs. + + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" + + +# put in absolute paths if you don't have them in your path; or use env. vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" +mkdirprog="${MKDIRPROG-mkdir}" + +transformbasename="" +transform_arg="" +instcmd="$mvprog" +chmodcmd="$chmodprog 0755" +chowncmd="" +chgrpcmd="" +stripcmd="" +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src="" +dst="" +dir_arg="" + +while [ x"$1" != x ]; do + case $1 in + -c) instcmd="$cpprog" + shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + -s) stripcmd="$stripprog" + shift + continue;; + + -t=*) transformarg=`echo $1 | sed 's/-t=//'` + shift + continue;; + + -b=*) transformbasename=`echo $1 | sed 's/-b=//'` + shift + continue;; + + *) if [ x"$src" = x ] + then + src=$1 + else + # this colon is to work around a 386BSD /bin/sh bug + : + dst=$1 + fi + shift + continue;; + esac +done + +if [ x"$src" = x ] +then + echo "install: no input file specified" + exit 1 +else + : +fi + +if [ x"$dir_arg" != x ]; then + dst=$src + src="" + + if [ -d $dst ]; then + instcmd=: + chmodcmd="" + else + instcmd=$mkdirprog + fi +else + +# Waiting for this to be detected by the "$instcmd $src $dsttmp" command +# might cause directories to be created, which would be especially bad +# if $src (and thus $dsttmp) contains '*'. + + if [ -f $src -o -d $src ] + then + : + else + echo "install: $src does not exist" + exit 1 + fi + + if [ x"$dst" = x ] + then + echo "install: no destination specified" + exit 1 + else + : + fi + +# If destination is a directory, append the input filename; if your system +# does not like double slashes in filenames, you may need to add some logic + + if [ -d $dst ] + then + dst="$dst"/`basename $src` + else + : + fi +fi + +## this sed command emulates the dirname command +dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + +# Make sure that the destination directory exists. +# this part is taken from Noah Friedman's mkinstalldirs script + +# Skip lots of stat calls in the usual case. +if [ ! -d "$dstdir" ]; then +defaultIFS=' + ' +IFS="${IFS-${defaultIFS}}" + +oIFS="${IFS}" +# Some sh's can't handle IFS=/ for some reason. +IFS='%' +set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` +IFS="${oIFS}" + +pathcomp='' + +while [ $# -ne 0 ] ; do + pathcomp="${pathcomp}${1}" + shift + + if [ ! -d "${pathcomp}" ] ; + then + $mkdirprog "${pathcomp}" + else + : + fi + + pathcomp="${pathcomp}/" +done +fi + +if [ x"$dir_arg" != x ] +then + $doit $instcmd $dst && + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi +else + +# If we're going to rename the final executable, determine the name now. + + if [ x"$transformarg" = x ] + then + dstfile=`basename $dst` + else + dstfile=`basename $dst $transformbasename | + sed $transformarg`$transformbasename + fi + +# don't allow the sed command to completely eliminate the filename + + if [ x"$dstfile" = x ] + then + dstfile=`basename $dst` + else + : + fi + +# Make a temp file name in the proper directory. + + dsttmp=$dstdir/#inst.$$# + +# Move or copy the file name to the temp name + + $doit $instcmd $src $dsttmp && + + trap "rm -f ${dsttmp}" 0 && + +# and set any options; do chmod last to preserve setuid bits + +# If any of these fail, we abort the whole thing. If we want to +# ignore errors from any of these, just make sure not to ignore +# errors from the above "$doit $instcmd $src $dsttmp" command. + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi && + +# Now rename the file to the real destination. + + $doit $rmcmd -f $dstdir/$dstfile && + $doit $mvcmd $dsttmp $dstdir/$dstfile + +fi && + + +exit 0 diff --git a/src/make.new/make.defaults b/src/make.new/make.defaults new file mode 100755 index 0000000000..9b7e48ac97 --- /dev/null +++ b/src/make.new/make.defaults @@ -0,0 +1,135 @@ +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. You may obtain a copy of the Licence at +# http://www.gnu.org/copyleft/gpl.html +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Relevant for more details. +# +# This file was created by members of the firebird development team. +# All individual contributions remain the Copyright (C) of those +# individuals. Contributors to this file are either listed here or +# can be obtained from a CVS history command. +# +# All rights reserved. +# +# Created by: Mark O'Donohue +# +# Contributor(s): +# +# +# $Id: make.defaults,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# + + +#_____________________________________________________________________________ + + + +# This file contains default values that are used by the build process do not +# change these here, but override them in the platform specific file +# prefix.xxx where xxx is the platform name using the form SH := bash +# see the readme file with the Makefile.in files for more details. + + + +#_____________________________________________________________________________ + + +# Default programs and tools to be used in the build process + +SH= sh -c +RM= rm -f +CHMOD= chmod +CHMOD_6= chmod 666 +CHMOD_7= chmod 777 +CHMOD_S7= chmod 06777 +MV= mv -f +TOUCH= touch +CP= cp +ECHO= echo +QUIET_ECHO= @echo +CD= cd +CAT= cat +AR= ar crsu + + +# Default extensions + +ARCH_EXT= .a +EXEC_EXT= +# FSG 1.Dez.2000 +#SHRLIB_EXT= .so + + +#_____________________________________________________________________________ + +# Final targets + + + + +# From jrd + +JRD_BOOT= $(LIB)/jrd_boot.a + +LIBGDS_SO = $(LIB)/libgds.so +LIBGDS_A = $(LIB)/libgds.a + + +ifdef UseSharedLibraries + LIBGDS_LA = $(LIBGDS_SO) +else + LIBGDS_LA = $(LIBGDS_A) +endif + + + + +# From utilities +CREATE_DB = $(BIN)/create_db$(EXEC_EXT) +GDS_DROP = $(BIN)/gds_drop$(EXEC_EXT) +GSTAT = $(BIN)/gstat$(EXEC_EXT) +GSEC = $(BIN)/gsec$(EXEC_EXT) +GDS_REBUILD = $(BIN)/gds_rebuild$(EXEC_EXT) +GDS_RELAY = $(BIN)/gds_relay$(EXEC_EXT) +GDS_INSTALL = $(BIN)/gds_install$(EXEC_EXT) +GDS_INSTALL = $(BIN)/gds_install_service$(EXEC_EXT) +IBGUARD = $(BIN)/ibguard$(EXEC_EXT) +IBMGR_BIN = $(BIN)/ibmgr.bin$(EXEC_EXT) +ISC_GDB = $(FIREBIRD)/isc4.gdb +ISC_GBAK = $(BIN)/isc4.gbak + +# From qli +QLI = $(BIN)/qli$(EXEC_EXT) + +# From isql +ISQL = $(BIN)/isql$(EXEC_EXT) + +# From burp +GBAK_STATIC = $(BIN)/gbak_static$(EXEC_EXT) +GBAK = $(BIN)/gbak$(EXEC_EXT) + +# From gpre +GPRE_BOOT = $(BIN)/gpre_boot$(EXEC_EXT) +GPRE_STATIC = $(BIN)/gpre_static$(EXEC_EXT) +GPRE = $(BIN)/gpre$(EXEC_EXT) + + +# From intl +LIBGDSINTL_LA = $(FIREBIRD)/intl/libgdsintl.so + + + + + + + diff --git a/src/make.new/make.rules b/src/make.new/make.rules new file mode 100644 index 0000000000..1c455ee43e --- /dev/null +++ b/src/make.new/make.rules @@ -0,0 +1,230 @@ +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. You may obtain a copy of the Licence at +# http://www.gnu.org/copyleft/gpl.html +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Relevant for more details. +# +# This file was created by members of the firebird development team. +# All individual contributions remain the Copyright (C) of those +# individuals. Contributors to this file are either listed here or +# can be obtained from a CVS history command. +# +# All rights reserved. +# +# Created by: Mark O'Donohue +# +# Contributor(s): +# +# +# $Id: make.rules,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# + +#____________________________________________________________________________ + +# Currently I set these manually but they should be set automatically +# from the ./configure installation time + +UseSharedLibraries = Yes # If empty then we build static linked exe's + # which are useful for debugging. + # This variable is used to determined flags for + # libtool/ar/ld we define the gds.a/so library name + # in LIBGDS_LA and in Makefile.in.jrd where we do the + # creation of the libgds.a/so library. + +#UseLibToolForLink = Yes # Currently we do not use it - but may in the future + +#IsProdTypeBuild = Yes # If this is defined then we are building a production + # release with debug and optimization + + +#____________________________________________________________________________ + + +GEN_ROOT=$(ROOT)/gen +SRC_ROOT=$(ROOT)/src + +LIB=$(GEN_ROOT)/firebird/lib +BIN=$(GEN_ROOT)/firebird/bin + + +# This picks up the current directory and maps it to the equivalent module +# in the src and gen area. + +ModuleName:=$(notdir $(CURDIR)) +SRC=$(SRC_ROOT)/$(ModuleName) +OBJ=$(GEN_ROOT)/$(ModuleName) +DEP=$(OBJ) + + +FIREBIRD=$(GEN_ROOT)/firebird +INTERBASE=$(FIREBIRD) + +export INTERBASE +export FIREBIRD + +# I would like to remove this one. +SOURCE=$(ROOT)/src + +CFLAGS:= $(CFLAGS) -g -pipe -MMD -I$(ROOT)/src -I$(ROOT)/src/include + +CXXFLAGS:= $(CXXFLAGS) $(CFLAGS) + +CC = libtool gcc +CXX = libtool g++ + +#CC = gcc +#CXX = g++ + + + +# Most of the libraries and programs are linked using the dynamic linker +# We default to using the dynamic linker and have a special link macros for +# using the static linker. +# +# Also libtool looks like the future in cross platform shared object compile +# and linking, but unfortunately it does not yet work for us, as a +# libtool gcc -o $(BIN)/fred fred.o libzzz.la +# command will generate incorrect relative addresses in the wrapper script in +# $(BIN)/fred as it required the exe file fred to be in the directory from +# which the command is run from. +# One other issue is that libtool puts a -DPIC onto the compile line. While +# nice it conflicts with a struct in the file qli/format.h +# MOD 26-July-2001. + + + + +ifdef UseLibToolForLink + + + LIB_LINK= libtool gcc + STATICLIB_LINK = libtool gcc -all-static + LIB_LINK_OPTIONS = -version-info 0:0:0 -release 1.5.0.0 -rpath /usr/lib + + EXE_LINK = libtool gcc + STATICEXE_LINK = libtool gcc -all-static +else + + LIB_LINK= ld -shared + STATICLIB_LINK= ar cruvs +# LIB_LINK_OPTIONS = -soname libgds.so -rpath /usr/lib + LIB_LINK_OPTIONS = + + EXE_LINK = gcc + STATICEXE_LINK = g++ +endif + + + + +LINK_OPTIONS= +LINK_LIBS= -lm -lstdc++ -lc -ldl -lcrypt +#LINK_LIBS= -L$(LIB) -lgds -lm -lc -ldl -lcrypt +STATICLINK_LIBS = $(LINK_LIBS) + + + +# These should no longer be required but I've left here +# in case someone needs to know what they were + +#STATICLIBTOOL= libtool gcc -static +#STATIC_LINK_OPTIONS= -static +#STATIC_LINK_LIBS= -lm -lc -mieee-fp -ldl -lcrypt +#SHLIB_LINK_OPTIONS = -shared + + +ifdef IsProdTypeBuild + CXXFLAGS:= -O3 -m486 -DPROD_BUILD $(CXXFLAGS) + +else + CXXFLAGS:= -ggdb -DDEV_BUILD $(CXXFLAGS) +endif + + +# Here we have definitions for using the preprocessor. + +GPRE_FLAGS= -r -m -z -n + +.SUFFIXES: .c .e .epp .cpp + +.e.c: + $(GPRE_STATIC) $(GPRE_FLAGS) $< + +.epp.cpp: + $(GPRE_STATIC) $(GPRE_FLAGS) $< + + + +.SUFFIXES: .lo .o .cpp .c + +.c.o: + $(CC) -c $(CFLAGS) $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) $< + +.cpp.o: + $(CXX) -c $(CXXFLAGS) $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) $< + +.c.lo: + $(CC) -c $(PIC_FLAGS) $(CFLAGS) $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) -o $*.lo $< + +.cpp.lo: + $(CXX) -c $(PIC_FLAGS) $(CXXFLAGS) $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) -o $*.lo $< + + + +$(OBJ)/%.o:: $(SRC)/%.c + $(CC) $(CXXFLAGS) -c $(firstword $<) -o $@ + @$(move-dep) + +$(OBJ)/%.o:: $(SRC)/%.cpp + $(CXX) $(CXXFLAGS) -c $(firstword $<) -o $@ + @$(move-dep) + +$(OBJ)/%.o: $(DEP)/%.d + +.SUFFIXES: .epp .e + +# Just write out a line making the .cpp file dependant on the .d file +# since the .d file was just created then it will force a compile of the +# .cpp files + +$(DEP)/%.d:: $(SRC)/%.c + @echo "need to rebuild $^" + touch $^ + +$(DEP)/%.d:: $(SRC)/%.cpp + @echo "need to rebuild $^" + touch $^ + +$(DEP)/%.d:: $(SRC)/%.epp + @echo "need to rebuild $^" + touch $^ + + +# code to move the dependancy files from the current directory + +# (a # is used to delimit the sed substitute command since a "/" +# gets in trouble with directory path names) + +define move-dep + if [ -f $(*F).d ]; \ + then \ + sed -e '1 s#$(@F)#$(OBJ)\/$(@F)#' $(*F).d > tmp.d; \ + mv tmp.d $(OBJ)/$(*F).d; \ + rm $(*F).d; \ + touch $@; \ + fi +endef + + + + diff --git a/src/make.new/make.shared.variables b/src/make.new/make.shared.variables new file mode 100644 index 0000000000..6cf25d264b --- /dev/null +++ b/src/make.new/make.shared.variables @@ -0,0 +1,149 @@ + + +#________________________________________________________________________ +# +# jrd + +# to get at the database. why.cpp is the normal one whybk.cpp is the one +# compiled with a BACKEND flag, it seems to be (from a quick look at +# the code) to allow the use of another library to talk to data from +# and earlier version data file. (Good way to achieve back portability) +# In the current builds only why.cpp is used, to build using whybk.cpp you +# will need to look at what is contained in the original makefiles. + +WHY_Sources = why.c +WHY_BACKEND_Sources= whybk.c + + +# why.c does the switch to determine the actual implementation to use +JRD_Sources= ail.cpp all.cpp alt.cpp bookmark.cpp blb.cpp blob_filter.cpp btr.cpp builtin.cpp \ + cch.cpp cmp.cpp cvt.cpp cvt2.cpp \ + dfw.cpp divorce.cpp dls.cpp dpm.cpp dsc.cpp dyn.cpp dyn_def.cpp dyn_del.cpp \ + dyn_mod.cpp dyn_util.cpp enc.cpp err.cpp iberr.cpp \ + event.cpp evl.cpp exe.cpp ext.cpp filters.cpp flu.cpp fun.cpp functions.cpp \ + gds.cpp grant.cpp idx.cpp inf.cpp ini.cpp intl.cpp inuse.cpp \ + isc.cpp isc_file.cpp isc_ipc.cpp isc_sync.cpp \ + jrd.cpp jrn.cpp lck.cpp llio.cpp log.cpp met.cpp \ + misc.cpp mov.cpp nav.cpp old.cpp opt.cpp pag.cpp par.cpp pcmet.cpp \ + perf.cpp pwd.cpp rec.cpp rlck.cpp \ + rng.cpp rse.cpp sbm.cpp sch.cpp scl.cpp \ + sdl.cpp sdw.cpp shut.cpp sort.cpp sqz.cpp status.cpp svc.cpp sym.cpp thd.cpp tpc.cpp \ + tra.cpp utl.cpp val.cpp vio.cpp \ + $(IO_Sources) $(DEBUG_Sources) $(WHY_Sources) + +JRD_ObjectsX = $(JRD_Sources:%.cpp=$(GEN_ROOT)/jrd/%.o) +JRD_Objects = $(JRD_ObjectsX:%.c=$(GEN_ROOT)/jrd/%.o) # One extra rule for why.c + +JRD_SharedObjects = $(JRD_Objects:.o=.lo) + + +# If your platform needs these then you may need +# to include something like. +# JRD_P_Sources := $(subst, flu.lo, , $(JRD_P_Sources)) + + + +#________________________________________________________________________ +# +# dsql + +DSQL_Sources= alld.cpp array.cpp blob.cpp ddl.cpp dsql.cpp \ + errd.cpp gen.cpp hsh.cpp make.cpp metd.cpp \ + movd.cpp parse.cpp pass1.cpp preparse.cpp \ + user_dsql.cpp utld.cpp + +DSQL_Objects=$(DSQL_Sources:%.cpp=$(GEN_ROOT)/dsql/%.o) +DSQL_SharedObjects=$(DSQL_Objects:.o=.lo) + + +#________________________________________________________________________ +# +# lock + + +LOCK_Sources = lock.cpp + +LOCK_Objects = $(LOCK_Sources:%.cpp=$(GEN_ROOT)/lock/%.o) +LOCK_SharedObjects = $(LOCK_Objects:.o=.lo) + + +#________________________________________________________________________ +# +# remote + +REMOTE_Sources= allr.cpp inet.cpp merge.cpp parser.cpp protocol.cpp remote.cpp \ + $(NET_Sources) +INTERFACE_Sources= interface.cpp $(REMOTE_Sources) + + +INTERFACE_Objects =$(INTERFACE_Sources:%.cpp=$(GEN_ROOT)/remote/%.o) +INTERFACE_SharedObjects =$(INTERFACE_Objects:.o=.lo) + + + +#________________________________________________________________________ +# +# pipe + +PIPE_Sources= head5.cpp allp.cpp + +PIPE_Objects = $(PIPE_Sources:%.cpp=$(GEN_ROOT)/pipe/%.o) +PIPE_SharedObjects = $(PIPE_Objects:.o=.lo) + + + +#________________________________________________________________________ +# +# intl + +# none currently. + + +#________________________________________________________________________ +# +# wal + +WAL_Sources= wal.cpp walc.cpp walf.cpp walr.cpp wstatus.cpp walw.cpp + +WAL_Objects = $(WAL_Sources:%.cpp=$(GEN_ROOT)/wal/%.o) +WAL_SharedObjects = $(WAL_Objects:.o=.lo) + +#________________________________________________________________________ +# +# gpre + +GPRELIB_Sources = pretty.cpp +GPRELIB_P_Sources = $(GPRELIB_Sources) + +GPRELIB_Objects = $(GPRELIB_Sources:%.cpp=$(GEN_ROOT)/gpre/%.o) +GPRELIB_SharedObjects = $(GPRELIB_Objects:.o=.lo) + + +#________________________________________________________________________ +# +# utilities + +SECURITY_Sources=security.cpp + +SECURITY_Objects = $(SECURITY_Sources:%.cpp=$(GEN_ROOT)/utilities/%.o) +SECURITY_SharedObjects = $(SECURITY_Objects:.o=.lo) + + + +#________________________________________________________________________ +# + +# These are the lists of object/shared object files that will go into libgds.a +# and libgds.so. + +GDSLIB_Objects = $(JRD_Objects) \ + $(DSQL_Objects) \ + $(LOCK_Objects) \ + $(INTERFACE_Objects) \ + $(PIPE_Objects) \ + $(WAL_Objects) \ + $(GPRELIB_Objects) \ + $(SECURITY_Objects) + +GDSLIB_SharedObjects = $(GDSLIB_Objects:.o=.lo) + diff --git a/src/make.new/prefix.darwin b/src/make.new/prefix.darwin new file mode 100644 index 0000000000..317e396f7c --- /dev/null +++ b/src/make.new/prefix.darwin @@ -0,0 +1,220 @@ +# The contents of this file are subject to the Interbase Public +# License Version 1.0 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy +# of the License at http://www.Inprise.com/IPL.html +# +# Software distributed under the License is distributed on an +# "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express +# or implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code was created by Inprise Corporation +# and its predecessors. Portions created by Inprise Corporation are +# +# Copyright (C) 2000 Inprise Corporation +# All Rights Reserved. +# Contributor(s): ______________________________________. +# Start of file prefix.darwin: $(VERSION) @PLATFORM@ +#$Id: prefix.darwin,v 1.1 2001-07-29 23:43:23 skywalker Exp $ + + +#_____________________________________________________________________________ +# +# John I've added these here since I copied them from within the makefiles +# to this spot. Just to show where they came from. +# Most of this stuff would need to go at the end of the include file here. +# and not at the beginning. +# MOD 26-July-2001 + + +# Adding to LINK_LIBS to add the framework thing. + +LINK_LIBS := $(COREFOUNDATION_LINK) $(LINK_LIBS) +STATICLINK_LIBS := $(LINK_LIBS) + + +CFLAGS := ($CARBONCOORE_DIR_FLAG) $(CFLAGS) + + + +# adding another dependancy onto the includes target + +includes: include_darwin + +include_darwin: + $(RM) -rf $(FB_FRAMEWORK) + mkdir -p $(FB_FRAMEWORK)/Versions/A/Resources/English.lproj/var + ln -s Versions/Current/$(FBFW_PREFIX) $(FB_FRAMEWORK)/$(FBFW_PREFIX) + ln -s Versions/Current/Resources $(FB_FRAMEWORK)/Resources + ln -s Versions/Current/Headers $(FB_FRAMEWORK)/Headers + ln -s A $(FB_FRAMEWORK)/Versions/Current + sed "s/__VERSION__/`$(GPRE_BOOT) -Z | sed 's/gpre version //g'`/g" $(SOURCE)/sandbox/bellardo/darwin/FrameworkInfo.plist > $(FB_FRAMEWORK)/Resources/Info.plist + ln -s ../../../include $(FB_FRAMEWORK)/Versions/A/Headers + ln -s ../../../lib/gds.dylib $(FB_FRAMEWORK)/Versions/A/$(FBFW_PREFIX) + ln -s ../../../../../../interbase.msg \ + $(FB_FRAMEWORK)/Versions/A/Resources/English.lproj/var/interbase.msg + ln -s ../../../../../../bin \ + $(FB_FRAMEWORK)/Versions/A/Resources/English.lproj/var/bin + ln -s ../../../../../../intl \ + $(FB_FRAMEWORK)/Versions/A/Resources/English.lproj/var/intl + ln -s ../../../../../../isc4.gdb \ + $(FB_FRAMEWORK)/Versions/A/Resources/English.lproj/var/isc4.gdb + ln -s ../../../../../../help \ + $(FB_FRAMEWORK)/Versions/A/Resources/English.lproj/var/help + + + + +# End add by me MOD 26-July-2001 +#______________________________________________________________________________ + + +.SUFFIXES: .bin .o .cpp .c +.cpp.o: + $(CXX) -c $(CFLAGS) $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) $< +.cpp.bin: + $(CXX) -c $(PIC_FLAGS) $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) -o $*.bin $< +.c.o: + $(CC) -c $(CFLAGS) $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) $< +.c.bin: + $(CC) -c $(PIC_FLAGS) $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) -o $*.bin $< + + +PROD_DEBUG_OBJECTS= nodebug.o +PROD_SHRLIB_DIR= +PROD_VERSION_FLAG= -DPROD_BUILD +PROD_CFLAGS= -O3 + + +DEV_DEBUG_OBJECTS= grammar.o dbg.o dbt.o dmp.o +DEV_SHRLIB_DIR= +DEV_VERSION_FLAG= -DDEV_BUILD +DEV_CFLAGS= -ggdb + +FBFW_PREFIX= Firebird2 +FW_NAME= $(FBFW_PREFIX).framework +FW_PATH= $(OBJS)/firebird +FB_FRAMEWORK= $(FW_PATH)/$(FW_NAME) +FW_VERS= 1.1.0 +FW_COMPAT_VERS= 1.0.0 +PHASE2_SHLIB_PATH= unset INTERBASE; export DYLD_FRAMEWORK_PATH=$(OBJS)/firebird; +POST_BUILD_TARGET= darwin_framework +SS_POST_BUILD_TARGET= ss_darwin_framework + +DEBUG_OBJECTS= $($(VERSION)_DEBUG_OBJECTS) +SHRLIB_DIR= $($(VERSION)_SHRLIB_DIR) +SHRLIB_EXT= .dylib +VERSION_FLAG= $($(VERSION)_VERSION_FLAG) +CFLAGS_COMMON= $($(VERSION)_CFLAGS) -w -F$(FW_PATH) +#CFLAGS= $(CFLAGS_COMMON) $(SUPER_FLAG) +PIC_J_CFLAGS= $(CFLAGS_COMMON) -DPIPE_IS_SHRLIB -dynamic -fno-common +SPECIAL_OBJECTS= j +UDF_LINK_CMD= libtool +UDF_CFLAGS= -dynamic -fno-common +UDF_LFLAGS= -dynamic +UDF_SHRLIBS= -lcc_dynamic -framework System + +#NOTE: PIC_J_CFLAGS is special CFLAGS used to build PIPD_IS_SHRLIB modules +# to workaround the Solaris threading problems with signals + + +#NOTE: -Xt is ANSI C transition mode (default) +# -DBDS_COMP is for BSD Compatibility package and is used in + +ACCESS_METHOD= gdslib.dylib pipe +BACKEND_BRIDGE_MISC= $(OBJS)/pipe/head5.o $(OBJS)/pipe/allp.o +BIN_PATH= /usr/isc/bin +BRIDGE_MISC= $(OBJS)/pipe/head5.o $(OBJS)/pipe/allp.o +CHMOD_VAL= 666 +CURSES_LIB= +DSQL_P_OBJS= dsql_p_objects +FORM_OBJECTS= form.o +FORM_TRN_OBJECTS= form_trn.o +FUNCTIONS= functions.bin +FUNCSHR= $(OBJS)/firebird/lib/gdsf.so +DROP_LINK= $(GDS_LINK) +GDS_LINK= $(GDSSHR_LINK) +GDS_PYXIS= gds_pyxis.a +GDSLIB_BACKEND= $(OBJS)/firebird/lib/gds_b.a +GDSLIB_LINK= -L$(OBJS)/jrd -lgds_b +#LINK_OPTS= -F$(FW_PATH) -framework $(FBFW_PREFIX) +#SS_LINK_OPTS= -F$(FW_PATH) +GPRE_BOOT_LINK_OPTS= +PLATFORM_INSTALLER= darwin_installer +SUPER_PLATFORM_INSTALLER= super_darwin_installer + +GDSSHR_DEST= $(OBJS)/firebird/lib/gds.dylib +GDSSHR= gds.dylib +#LINUX_GDSSHR= $(GDSSHR) +GDSSHR_LINK= -F$(FW_PATH) -framework $(FBFW_PREFIX) +#GDSSHR_LINK= $(SHRLIB_DIR) -lgds_pyxis +#PIPE_GDSSHR= $(OBJS)/firebird/lib/gds.so.0 +#PIPE_GDSSHR_LINK= $(SHRLIB_DIR) -lgds_pyxis +PIPE_GDSSHR_LINK= $(SHRLIB_DIR) +HLPDIR= $(SOURCE)/qli/ +HOSTNAME= `hostname | cut -d'.' -f1` +INCLUDES= include_so include_so_ada include_darwin +INTL= intl + +INTL_CFLAGS= -bundle $(CFLAGS) +INTL_LD_LINE= cc -bundle -o gdsintl -F$(OBJS)/firebird -framework $(FBFW_PREFIX) +INTL_PIC_FLAGS= -bundle $(PIC_FLAGS) +INTL_TARGET= intl_shr_objs +IO_OBJECTS= unix.o +IO_P_OBJECTS= unix.bin +JRD_MISC_OBJECTS= +JRD_J_MISC_OBJECTS= +#JRD_P_MISC_OBJECTS= $(OBJS)/jrd/nodebug.bin +JRD_P_MISC_OBJECTS= +LANG_OBJECTS= ada.o ftn.o cob.o +LANGUAGES= cc cxx ada microfocus_cob make16 gdl1 +LD_LIBS= -lcc_dynamic +LD_LIBS_J= +LD_OPTS= -dylib +LOCK_JRD_MISC= +LOCK_MANAGER= +MARION_DB= -d source/marion.gdb +MUISQL= muisql +#MUISQL_MU_LIB= -L /usr/gds.$(HOSTNAME)/qa_tools/lib -lmu +MUISQL_MU_LIB= -L /usr/gds.$(HOSTNAME)/qa_tools/lib -lmu +MUISQL_LINK_OPTS= $(MUISQL_MU_LIB) $(PIPE_GDSSHR_LINK) +PIC_FLAGS= $(CFLAGS) -dynamic -fno-common +PIPE= gds.a gds_pipe +REG_HELP= isc_ins_hlp.dat +REMOTE_GDSSHR= $(GDSSHR) +REMOTE_GDSSHR_LINK= $(SERVER_LINK) +REMOTE_P_OBJS= rem_p_objects +SCREEN_LIBS= +SERVER_LINK= $(GDSSHR_LINK) +SETUP_ISC= ISC_USER=sysdba; ISC_PASSWORD=masterkey; export ISC_USER ISC_PASSWORD; +#SPECIAL_OPT= $(SOURCE)/special_opt +SPECIAL_OPT= +NETWORK_LIB= +SOCKET_LIB= +THREAD_LIB= -lpthread +SUN_FUNCSHR= $(FUNCSHR) +DARWIN_SUPER_GDSSHR= $(OBJS)/firebird/lib/gds.dylib.1 +SUPER_CLIENT_GDSSHR= $(DARWIN_SUPER_GDSSHR) +SUPER_BACKEND= $(OBJS)/jrd/gds_ss.a +SUPER_LINK= -L$(OBJS)/jrd -lgds_ss -framework System -framework Foundation +SUPER_SERVER= +UTILITIES= +WAL_P_OBJS= wal_p_objects + +SU_EXEC= $(SOURCE)/su_exec.sh + + +SUPER_SERVER_DEST= $(OBJS)/firebird/bin/ibserver +INET_SERVER_DEST= $(OBJS)/firebird/bin/gds_inet_server +DNET_SERVER_DEST= $(OBJS)/firebird/bin/gds_dnet_server +AMBX_SERVER_DEST= $(OBJS)/firebird/bin/gds_server +INET_LIB_DEST= $(OBJS)/firebird/lib/gds_inet_server.a +DNET_LIB_DEST= $(OBJS)/firebird/lib/gds_dnet_server.a + + +MSG_INSTALL_CMD= $(CP) $(OBJS)/firebird/interbase.msg $(FB_FRAMEWORK)/Resources/English.lproj +CARBONCORE_DIR_FLAG= -F/System/Library/Frameworks/CoreServices.framework/Frameworks +DARWIN_COREFOUNDATION_LINK= -framework CoreFoundation +DARWIN_FOUNDATION_LINK= -framework Foundation + +# End of file prefix.darwin: $(VERSION) $(PLATFORM) diff --git a/src/make.new/prefix.example b/src/make.new/prefix.example new file mode 100644 index 0000000000..f71c1ab111 --- /dev/null +++ b/src/make.new/prefix.example @@ -0,0 +1,10 @@ +#_____________________________________________________________________________ + +# Changing options based on module + +# Something that Solaris was doing for intl libraries. +if $(eq $(ModuleName), "intl") + LIB_LINK_OPTIONS := -assert pure-text -assert nosymbolic +endif + + diff --git a/src/make.new/prefix.linux b/src/make.new/prefix.linux new file mode 100644 index 0000000000..9b72500a95 --- /dev/null +++ b/src/make.new/prefix.linux @@ -0,0 +1,142 @@ +# The contents of this file are subject to the Interbase Public +# License Version 1.0 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy +# of the License at http://www.Inprise.com/IPL.html +# +# Software distributed under the License is distributed on an +# "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express +# or implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code was created by Inprise Corporation +# and its predecessors. Portions created by Inprise Corporation are +# Copyright (C) Inprise Corporation. +# +# All Rights Reserved. +# Contributor(s): ______________________________________. +# Start of file prefix.linux: $(VERSION) $(PLATFORM) +#$Id: prefix.linux,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +#Revision 1.6 2000/12/01 11:20:31 fsg +#Added SHRLIB_EXT to prefix.linux + + +# use the following to define conditional DEV/PROD compile + +ifdef IsProdTypeBuild + DEBUG_Sources= nodebug.cpp + CFLAGS:= -O3 -m486 -DPROD_BUILD $(CFLAGS) + +else + DEBUG_Sources= grammar.c dbg.cpp dbt.cpp dmp.cpp + CFLAGS:= -ggdb -DDEV_BUILD $(CFLAGS) +endif + + +#SHRLIB_DIR= -L$(LIB) + +CFLAGS:= $(CFLAGS) -DLINUX -Wall -fwritable-strings $(SUPER_FLAG) + +#PIC_J_CFLAGS:= $(CFLAGS_COMMON) -DPIPE_IS_SHRLIB -fPIC +#SPECIAL_OBJECTS= j +#UDF_LINK_CMD= gcc +#UDF_CFLAGS= -fPIC -mieee-fp +#UDF_LFLAGS= -shared +#UDF_SHRLIBS= -L$(INTERBASE)/lib -lgds -lm -lc -mieee-fp -ldl -lcrypt + + +#NOTE: PIC_J_CFLAGS is special CFLAGS used to build PIPD_IS_SHRLIB modules +# to workaround the Solaris threading problems with signals + + +#NOTE: -Xt is ANSI C transition mode (default) +# -DBDS_COMP is for BSD Compatibility package and is used in + + +#ACCESS_METHOD= gdslib.linux pipe + + +#CHMOD_VAL= 666 + + +FUNCTIONS= functions.bin + +#FUNCSHR= $(OBJS)/firebird/lib/gdsf.so +#GDS_LINK= $(OBJS)/jrd -lgds_b +#GDS_LINK= $(GDSSHR_LINK) + +#GDSLIB_BACKEND= $(OBJS)/firebird/lib/gds_b.a +#GDSLIB_LINK= -L$(OBJS)/jrd -lgds_b -lc -ldl -lcrypt + +#GDSSHR= libgds.so +#LINUX_GDSSHR= $(GDSSHR) +#GDSSHR_LINK= $(SHRLIB_DIR) -lgds -ldl -lcrypt + +#PIPE_GDSSHR= source/interbase/lib/gds.so.0 +#PIPE_GDSSHR_LINK= $(SHRLIB_DIR) -lgds + + +#HLPDIR= source/qli/ +#HOSTNAME= `hostname | cut -d'.' -f1` +INCLUDES= include_so include_so_ada + +INTL= intl + + +IO_Sources= unix.cpp + +#LANG_OBJECTS= ada.o ftn.o cob.o +#LANGUAGES= cc cxx ada microfocus_cob make16 gdl1 +LD_LIBS= -lc +LD_LIBS_J= -lc +LD_OPTS= -shared + + +#LOCK_JRD_MISC= +#LOCK_JRD_MISC= source/jrd/thd.o +#LOCK_MANAGER= manager + + +# In building the test kit may need to look at this +#MUISQL= muisql +#MUISQL_MU_LIB= -L /usr/gds.$(HOSTNAME)/qa_tools/lib -lmu +#MUISQL_LINK_OPTS= $(MUISQL_MU_LIB) $(PIPE_GDSSHR_LINK) -lm + + +PIC_FLAGS= $(CFLAGS) -fPIC +PIPE= gds.a gds_pipe + + + +REG_HELP= isc_ins_hlp.dat +REMOTE_GDSSHR= $(GDSSHR) +REMOTE_GDSSHR_LINK= $(SERVER_LINK) + + +SERVER_LINK= $(GDSSHR_LINK) + + + +SOCKET_LIB= -lc +THREAD_LIB= -lpthread + + +LX_SUPER_GDSSHR= source/interbase/lib/gds.so.1 +SUPER_CLIENT_GDSSHR= $(LX_SUPER_GDSSHR) +SUPER_BACKEND= source/jrd/gds_ss.a +SUPER_LINK= -Lsource/jrd -lgds_ss -lc -ldl -lcrypt -lpthread +SUPER_SERVER= + +UTILITIES= + + + + +# End of file prefix.linux: $(VERSION) $(PLATFORM) + + + +#-------------------------------- + +# Some other things. +# For solaris and gbak +#LINK_LIBS += -lnsl diff --git a/src/misc/fb_boilerplate.h b/src/misc/fb_boilerplate.h new file mode 100644 index 0000000000..0b1b692208 --- /dev/null +++ b/src/misc/fb_boilerplate.h @@ -0,0 +1,33 @@ +/* + * + * The contents of this file are subject to the Mozilla Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * Alternatively, the contents of this file may be used under the + * terms of the GNU General Public License Version 2 or later (the + * "GPL"), in which case the provisions of the GPL are applicable + * instead of those above. You may obtain a copy of the Licence at + * http://www.gnu.org/copyleft/gpl.html + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * Relevant for more details. + * + * This file was created by members of the firebird development team. + * All individual contributions remain the Copyright (C) of those + * individuals. Contributors to this file are either listed here or + * can be obtained from a CVS history command. + * + * All rights reserved. + * + * Contributor(s): + * Tom Coleman TMC Systems + * Reed Mideke + * Mark O'Donohue + * + * + * $Id: fb_boilerplate.h,v 1.1 2001-07-29 23:43:23 skywalker Exp $ + * + */ diff --git a/src/misc/gds_header.txt b/src/misc/gds_header.txt new file mode 100644 index 0000000000..98f13c4274 --- /dev/null +++ b/src/misc/gds_header.txt @@ -0,0 +1,11 @@ +/* + * Module: gds.h + * + * The content of this file was generated by the Firebird project + * and is a concatination of several header source files, that may + * also explain the unusual #ifdef structures within this file. + * + * + * This file is automatically generated - do not edit! + * + */ diff --git a/src/misc/metadata.sql b/src/misc/metadata.sql new file mode 100644 index 0000000000..33908b54e1 --- /dev/null +++ b/src/misc/metadata.sql @@ -0,0 +1,55 @@ +/* The contents of this file are subject to the Interbase Public + * License Version 1.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy + * of the License at http://www.Inprise.com/IPL.html + * + * Software distributed under the License is distributed on an + * "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express + * or implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code was created by Inprise Corporation + * and its predecessors. Portions created by Inprise Corporation are + * Copyright (C) Inprise Corporation. + * + * All Rights Reserved. + * Contributor(s): ______________________________________. + */ +/* This database file is used by GPRE for metadata lookup on behalf of the .e + * files. + */ +SET SQL DIALECT 1; +/* + * Commented out the delete since it gives an error message, that puts off + * the builder. Deletion handled in shell script instead. MOD 04-Jan-01 +CONNECT 'metadata.gdb'; +DROP DATABASE; +*/ + +CREATE DATABASE 'metadata.gdb' PAGE_SIZE 1024; + +/* Domain definitions */ +CREATE DOMAIN QLI$PROCEDURE_NAME AS CHAR(31); +CREATE DOMAIN QLI$PROCEDURE AS BLOB SUB_TYPE TEXT SEGMENT SIZE 80; +CREATE DOMAIN PYXIS$FORM AS BLOB SUB_TYPE 0 SEGMENT SIZE 80; +CREATE DOMAIN PYXIS$FORM_NAME AS CHAR(31); +CREATE DOMAIN PYXIS$FORM_TYPE AS CHAR(16); + +/* Table: PYXIS$FORMS, Owner: DAVES */ +CREATE TABLE PYXIS$FORMS (PYXIS$FORM_NAME PYXIS$FORM_NAME, + PYXIS$FORM_TYPE PYXIS$FORM_TYPE, + PYXIS$FORM PYXIS$FORM); + +/* Table: QLI$PROCEDURES, Owner: BUILDER */ +CREATE TABLE QLI$PROCEDURES (QLI$PROCEDURE_NAME QLI$PROCEDURE_NAME, + QLI$PROCEDURE QLI$PROCEDURE); + +/* Table: RDB$ROLES, Owner: BUILDER (For Interbase server < 5.0) + * CREATE TABLE RDB$ROLES (RDB$ROLE_NAME CHAR(31) default null, + * RDB$OWNER_NAME CHAR(31) default null); + */ + +/* Index definitions for all user tables */ +CREATE UNIQUE INDEX PYXIS$INDEX ON PYXIS$FORMS(PYXIS$FORM_NAME); +CREATE UNIQUE INDEX QLI$PROCEDURES_IDX1 ON QLI$PROCEDURES(QLI$PROCEDURE_NAME); + diff --git a/src/misc/status.cpp b/src/misc/status.cpp index 44152fba14..e284aad6fb 100644 --- a/src/misc/status.cpp +++ b/src/misc/status.cpp @@ -7,12 +7,13 @@ // be used freely. Any other use is prohibited. // +#include "firebird.h" #include #include #include #include "../misc/status.h" #include "../jrd/gdsassert.h" -#include "../jrd/codes.h" +#include "gen/codes.h" #include "../jrd/gds_proto.h" diff --git a/src/msgs/build_file.epp b/src/msgs/build_file.epp index 41598e5e87..34911b76df 100644 --- a/src/msgs/build_file.epp +++ b/src/msgs/build_file.epp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include diff --git a/src/msgs/change_msgs.epp b/src/msgs/change_msgs.epp index 26d74cd699..d93b7cddc3 100644 --- a/src/msgs/change_msgs.epp +++ b/src/msgs/change_msgs.epp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include "../jrd/gds.h" #include "../jrd/common.h" diff --git a/src/msgs/check_msgs.epp b/src/msgs/check_msgs.epp index 29a43dcc1d..b4cdbac11c 100644 --- a/src/msgs/check_msgs.epp +++ b/src/msgs/check_msgs.epp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include diff --git a/src/msgs/enter_msgs.epp b/src/msgs/enter_msgs.epp index 42c3eccd02..b50424dbdf 100644 --- a/src/msgs/enter_msgs.epp +++ b/src/msgs/enter_msgs.epp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include "../jrd/gds.h" #include "../jrd/common.h" diff --git a/src/msgs/include.epp b/src/msgs/include.epp index a82d689cb4..d8054b1cc9 100644 --- a/src/msgs/include.epp +++ b/src/msgs/include.epp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include "../jrd/common.h" diff --git a/src/msgs/load.epp b/src/msgs/load.epp index 3e79816e25..f23f30ed8e 100644 --- a/src/msgs/load.epp +++ b/src/msgs/load.epp @@ -16,6 +16,7 @@ * All Rights Reserved. * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/gds.h" #include "../jrd/common.h" diff --git a/src/msgs/modify_msgs.epp b/src/msgs/modify_msgs.epp index f72ae00ccc..e539df9682 100644 --- a/src/msgs/modify_msgs.epp +++ b/src/msgs/modify_msgs.epp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include "../jrd/gds.h" #include "../jrd/common.h" diff --git a/src/msgs/msg.gbak b/src/msgs/msg.gbak index dcb802463e4528caab80c16a132f1532f47ed1e7..cc2d4fb025f28ec4813838342ce77610a3043708 100644 GIT binary patch delta 54760 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

8H#Mre*oeBpgV!RWz;aNg~22n z1P6K|O|l)1vSB0}3j6LOAsWqPBS|&_G^cbyW?_W#ME)L}0?wH=)0HDy>yd9~Xzsh3 zZ_Za%=CN?{2H{;Gdy|8~{M&QI#hR(>ck%YZ7ee@2JW=?`OQo@8#V!}(nRT*579MiQ zg)1zV3||g;+Z=j9z1K<}WPHX46u&_z2k(EBM(W%gPxmKG-tI66p8uodse^JZyUORB z>OsmT{1VKPH%cSj4ayI@adHw&b9ab?sDG6vEP@zZgbo@OYX*SkEnYoBwpd3<&}%Cm z=0D}FlE)%kN$3KmE}BM=_D;zY`C?xFz#`l$t(rCUg^eW|F9_+XNrz|eltwIqNPC1A zRBXosLdU%484<&as0AB$2sI$!0~gk#jOs$~ZW=spM-?_CVFTEwIQ#%3KXS`F5;lgv zJ}RqOL{q}~F!dA1#PT9WLR_h)3C#Y?6a7d=W6ZBVE87$nHQ6GFnq;otR}Go!th?Jh@>zb9*n74h^T9 zdm2nR_+zGdqqnIXe*gpq;YhLVQa>gI$&Fg$kWg6=oN3+S_)DeF$ z^QZt*ef*IFX9G=_taGZHe+@FVL_saHCdAZKW0N!FIgB_XHH4L+c>SDVkQ-*YWs@`F zIjlY>WkFH6X`Xe?*4YuJMb=uy_cxafnG1_x3a$4VIcmW;ko7Jd^ zwja>;)kplIZ@;3>1*N!#z7lkgjS(=#V6-n-VX;-b)sy&ro7AWl_}_K%eLEK-&Ez+5 z$#Mfa=c3{s1$fN@uBoKbqpTQ9|6ft~svv%&D2Kw$MmJbo&E$~p>Qd`_S=HL=U73Ck6-G`QRW;bJ=Vf>hnft Y+qXEnEA-xOa)B2|ae|_HPoGu)4^(JD{r~^~ delta 54041 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 diff --git a/src/pipe/allp.cpp b/src/pipe/allp.cpp index ad650b1913..f3e47572cf 100644 --- a/src/pipe/allp.cpp +++ b/src/pipe/allp.cpp @@ -21,22 +21,23 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../pipe/pipe.h" #ifdef HAVE_STRING_H #include #endif -#define BLKDEF(type, root, tail) sizeof (struct root), tail, +#define BLKDEF(type, root, tail) {sizeof (struct root), tail}, static struct { SSHORT typ_root_length; SSHORT typ_tail_length; } PIPE_block_sizes[] = { - 0,0, - + {0,0}, #include "../pipe/blk.h" - 0}; + {0,0} + }; #include "../pipe/allp_proto.h" #include "../jrd/gds_proto.h" diff --git a/src/pipe/foot.cpp b/src/pipe/foot.cpp index 11157121a9..97d9ede6de 100644 --- a/src/pipe/foot.cpp +++ b/src/pipe/foot.cpp @@ -21,12 +21,13 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include #include "../pipe/pipe.h" #include "../jrd/license.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/gds_proto.h" #include "../pipe/allp_proto.h" #include "../remote/merge_proto.h" diff --git a/src/pipe/head.cpp b/src/pipe/head.cpp index b9949ecea2..b7815814c9 100644 --- a/src/pipe/head.cpp +++ b/src/pipe/head.cpp @@ -22,17 +22,23 @@ * Solaris x86 changes - Konstantin Kuznetsov, Neil McCalden */ - /* $Id: head.cpp,v 1.2 2001-07-12 05:46:05 bellardo Exp $ */ + /* $Id: head.cpp,v 1.3 2001-07-29 23:43:23 skywalker Exp $ */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../jrd/common.h" + #include #include #include +#ifdef HAVE_STRING_H +#include +#endif + #include "../pipe/pipe.h" -#include "../jrd/codes.h" +#include "gen/codes.h" #include "../jrd/license.h" #include "../jrd/inf.h" #include "../pipe/allp_proto.h" @@ -91,7 +97,7 @@ if (!read_pipe || !write_pipe) \ { \ user_status [0] = gds_arg_gds; \ - user_status [1] = gds__conn_lost; /* Msg 328 Connection lost to pipe server */ \ + user_status [1] = gds_conn_lost; /* Msg 328 Connection lost to pipe server */ \ user_status [2] = gds_arg_end; \ return user_status [1]; \ }; \ @@ -417,7 +423,7 @@ STATUS GDS_ATTACH_DATABASE ( **************************************/ RDB rdb; -NULL_CHECK (handle, gds__bad_db_handle); +NULL_CHECK (handle, gds_bad_db_handle); if (!(rdb = init (user_status, op_attach, (UCHAR*)file_name, GDS_VAL (file_length), (UCHAR*)dpb, GDS_VAL (dpb_length)))) @@ -450,7 +456,7 @@ STATUS GDS_ATTACH_SERVICE ( **************************************/ RDB rdb; -NULL_CHECK (handle, gds__bad_svc_handle); +NULL_CHECK (handle, gds_bad_svc_handle); if (!(rdb = init (user_status, op_attach_service, (UCHAR*)service_name, service_length, (UCHAR*)spb, spb_length))) @@ -485,9 +491,9 @@ RDB rdb; USHORT l; UCHAR *p; -CHECK_HANDLE ((*blob), type_rbl, gds__bad_segstr_handle); +CHECK_HANDLE ((*blob), type_rbl, gds_bad_segstr_handle); rdb = (*blob)->rbl_rdb; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -529,9 +535,9 @@ if (!(blob = *blob_handle)) return SUCCESS; } -CHECK_HANDLE (blob, type_rbl, gds__bad_segstr_handle); +CHECK_HANDLE (blob, type_rbl, gds_bad_segstr_handle); rdb = blob->rbl_rdb; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -565,12 +571,12 @@ USHORT l; UCHAR *p; #ifdef V2_BRIDGE -return handle_error (user_status, gds__unavailable); +return handle_error (user_status, gds_unavailable); #else rdb = *handle; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -605,9 +611,9 @@ USHORT l; UCHAR *p; blob = *blob_handle; -CHECK_HANDLE (blob, type_rbl, gds__bad_segstr_handle); +CHECK_HANDLE (blob, type_rbl, gds_bad_segstr_handle); rdb = blob->rbl_rdb; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -650,9 +656,9 @@ USHORT l; UCHAR *p; transaction = *rtr_handle; -CHECK_HANDLE (transaction, type_rtr, gds__bad_trans_handle); +CHECK_HANDLE (transaction, type_rtr, gds_bad_trans_handle); rdb = (*rtr_handle)->rtr_rdb; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -686,13 +692,13 @@ USHORT l; UCHAR *p; #ifdef V2_BRIDGE -return handle_error (user_status, gds__unavailable); +return handle_error (user_status, gds_unavailable); #else transaction = *rtr_handle; -CHECK_HANDLE (transaction, type_rtr, gds__bad_trans_handle); +CHECK_HANDLE (transaction, type_rtr, gds_bad_trans_handle); rdb = (*rtr_handle)->rtr_rdb; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -727,9 +733,9 @@ UCHAR *p; /* Check and validate handles, etc. */ -NULL_CHECK (req_handle, gds__bad_req_handle); +NULL_CHECK (req_handle, gds_bad_req_handle); rdb = *db_handle; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -776,11 +782,11 @@ RBL blob; USHORT l; UCHAR *p; -NULL_CHECK (blob_handle, gds__bad_segstr_handle); +NULL_CHECK (blob_handle, gds_bad_segstr_handle); rdb = *db_handle; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); transaction = *rtr_handle; -CHECK_HANDLE (transaction, type_rtr, gds__bad_trans_handle); +CHECK_HANDLE (transaction, type_rtr, gds_bad_trans_handle); ESTABLISH_PIPES; @@ -834,14 +840,14 @@ USHORT l; UCHAR *p; #ifdef V2_BRIDGE -return handle_error (user_status, gds__unavailable); +return handle_error (user_status, gds_unavailable); #else -NULL_CHECK (blob_handle, gds__bad_segstr_handle); +NULL_CHECK (blob_handle, gds_bad_segstr_handle); rdb = *db_handle; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); transaction = *rtr_handle; -CHECK_HANDLE (transaction, type_rtr, gds__bad_trans_handle); +CHECK_HANDLE (transaction, type_rtr, gds_bad_trans_handle); ESTABLISH_PIPES; @@ -895,7 +901,7 @@ RDB rdb; UCHAR p; USHORT l; -NULL_CHECK (handle, gds__bad_db_handle); +NULL_CHECK (handle, gds_bad_db_handle); if (!(l = GDS_VAL (file_length))) l = strlen (file_name); @@ -933,7 +939,7 @@ USHORT l; UCHAR *p, temp [1024], *temp_buffer; rdb = *handle; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -984,13 +990,13 @@ USHORT l; UCHAR *p; #ifdef V2_BRIDGE -return handle_error (user_status, gds__unavailable); +return handle_error (user_status, gds_unavailable); #else rdb = *db_handle; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); transaction = *rtr_handle; -CHECK_HANDLE (transaction, type_rtr, gds__bad_trans_handle); +CHECK_HANDLE (transaction, type_rtr, gds_bad_trans_handle); ESTABLISH_PIPES; @@ -1027,7 +1033,7 @@ USHORT l; UCHAR *p; rdb = *handle; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -1094,7 +1100,7 @@ USHORT l; UCHAR *p; rdb = *handle; -CHECK_HANDLE (rdb, type_rdb, gds__bad_svc_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_svc_handle); ESTABLISH_PIPES; @@ -1133,12 +1139,12 @@ UCHAR *p; STATUS code; rdb = *handle; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; code = release_object (op_drop_database, rdb->rdb_handle, user_status); -if (code && (code != gds__drdb_completed_with_errs)) +if (code && (code != gds_drdb_completed_with_errs)) return user_status [1]; while (rrq = rdb->rdb_requests) @@ -1188,9 +1194,9 @@ UCHAR *p; /* Check and validate handles, etc. */ -NULL_CHECK (stmt_handle, gds__bad_req_handle); +NULL_CHECK (stmt_handle, gds_bad_req_handle); rdb = *db_handle; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -1240,11 +1246,11 @@ UCHAR *p; /* Check and validate handles, etc. */ if (transaction = *rtr_handle) - CHECK_HANDLE (transaction, type_rtr, gds__bad_trans_handle); + CHECK_HANDLE (transaction, type_rtr, gds_bad_trans_handle); statement = *stmt_handle; -CHECK_HANDLE (statement, type_rsr, gds__bad_req_handle); +CHECK_HANDLE (statement, type_rsr, gds_bad_req_handle); rdb = statement->rsr_rdb; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -1309,11 +1315,11 @@ UCHAR *p; /* Check and validate handles, etc. */ if (transaction = *rtr_handle) - CHECK_HANDLE (transaction, type_rtr, gds__bad_trans_handle); + CHECK_HANDLE (transaction, type_rtr, gds_bad_trans_handle); statement = *stmt_handle; -CHECK_HANDLE (statement, type_rsr, gds__bad_req_handle); +CHECK_HANDLE (statement, type_rsr, gds_bad_req_handle); rdb = statement->rsr_rdb; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -1381,9 +1387,9 @@ UCHAR *p; /* Check and validate handles, etc. */ rdb = *db_handle; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); if (transaction = *rtr_handle) - CHECK_HANDLE (transaction, type_rtr, gds__bad_trans_handle); + CHECK_HANDLE (transaction, type_rtr, gds_bad_trans_handle); ESTABLISH_PIPES; @@ -1456,9 +1462,9 @@ UCHAR *p; /* Check and validate handles, etc. */ rdb = *db_handle; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); if (transaction = *rtr_handle) - CHECK_HANDLE (transaction, type_rtr, gds__bad_trans_handle); + CHECK_HANDLE (transaction, type_rtr, gds_bad_trans_handle); ESTABLISH_PIPES; @@ -1528,9 +1534,9 @@ UCHAR *p; /* Check and validate handles, etc. */ statement = *stmt_handle; -CHECK_HANDLE (statement, type_rsr, gds__bad_req_handle); +CHECK_HANDLE (statement, type_rsr, gds_bad_req_handle); rdb = statement->rsr_rdb; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -1576,9 +1582,9 @@ RSR statement; /* Check and validate handles, etc. */ statement = *stmt_handle; -CHECK_HANDLE (statement, type_rsr, gds__bad_req_handle); +CHECK_HANDLE (statement, type_rsr, gds_bad_req_handle); rdb = statement->rsr_rdb; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -1627,9 +1633,9 @@ UCHAR *p; /* Check and validate handles, etc. */ statement = *stmt_handle; -CHECK_HANDLE (statement, type_rsr, gds__bad_req_handle); +CHECK_HANDLE (statement, type_rsr, gds_bad_req_handle); rdb = statement->rsr_rdb; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -1678,11 +1684,11 @@ UCHAR *p; /* Check and validate handles, etc. */ statement = *stmt_handle; -CHECK_HANDLE (statement, type_rsr, gds__bad_req_handle); +CHECK_HANDLE (statement, type_rsr, gds_bad_req_handle); rdb = statement->rsr_rdb; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); if (transaction = *rtr_handle) - CHECK_HANDLE (transaction, type_rtr, gds__bad_trans_handle); + CHECK_HANDLE (transaction, type_rtr, gds_bad_trans_handle); ESTABLISH_PIPES; @@ -1732,9 +1738,9 @@ UCHAR *p; /* Check and validate handles, etc. */ statement = *stmt_handle; -CHECK_HANDLE (statement, type_rsr, gds__bad_req_handle); +CHECK_HANDLE (statement, type_rsr, gds_bad_req_handle); rdb = statement->rsr_rdb; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -1777,9 +1783,9 @@ UCHAR *p; /* Check and validate handles, etc. */ statement = *stmt_handle; -CHECK_HANDLE (statement, type_rsr, gds__bad_req_handle); +CHECK_HANDLE (statement, type_rsr, gds_bad_req_handle); rdb = statement->rsr_rdb; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -1823,9 +1829,9 @@ USHORT state; /* Sniff out handles, etc, and find the various blocks. */ blob = *blob_handle; -CHECK_HANDLE (blob, type_rbl, gds__bad_segstr_handle); +CHECK_HANDLE (blob, type_rbl, gds_bad_segstr_handle); rdb = blob->rbl_rdb; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -1866,7 +1872,7 @@ v [1] = gds_arg_end; if (blob->rbl_flags & RBL_eof) { - *v = gds__segstr_eof; + *v = gds_segstr_eof; return user_status [1]; } @@ -1903,7 +1909,7 @@ while (TRUE) { blob->rbl_fragment_length = l - buffer_length; l = buffer_length; - *v = gds__segment; + *v = gds_segment; } /* and, just for yucks, see if we're exactly using up the fragment @@ -1912,7 +1918,7 @@ while (TRUE) if (l == buffer_length && l == blob->rbl_length && (blob->rbl_flags & RBL_segment)) - *v = gds__segment; + *v = gds_segment; /* finally set up the return length, decrement the current length, copy the data, and indicate where to start next time. */ @@ -1939,7 +1945,7 @@ while (TRUE) if (blob->rbl_flags & RBL_eof_pending) { blob->rbl_flags |= RBL_eof; - *v = gds__segstr_eof; + *v = gds_segstr_eof; break; } @@ -1999,13 +2005,13 @@ ULONG l, length; UCHAR *p; #ifdef V2_BRIDGE -return handle_error (user_status, gds__unavailable); +return handle_error (user_status, gds_unavailable); #else rdb = *db_handle; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); transaction = *tra_handle; -CHECK_HANDLE (transaction, type_rtr, gds__bad_trans_handle); +CHECK_HANDLE (transaction, type_rtr, gds_bad_trans_handle); ESTABLISH_PIPES; @@ -2057,11 +2063,11 @@ RBL blob; USHORT l; UCHAR *p; -NULL_CHECK (blob_handle, gds__bad_segstr_handle); +NULL_CHECK (blob_handle, gds_bad_segstr_handle); rdb = *db_handle; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); transaction = *rtr_handle; -CHECK_HANDLE (transaction, type_rtr, gds__bad_trans_handle); +CHECK_HANDLE (transaction, type_rtr, gds_bad_trans_handle); ESTABLISH_PIPES; @@ -2113,14 +2119,14 @@ USHORT l; UCHAR *p; #ifdef V2_BRIDGE -return handle_error (user_status, gds__unavailable); +return handle_error (user_status, gds_unavailable); #else -NULL_CHECK (blob_handle, gds__bad_segstr_handle); +NULL_CHECK (blob_handle, gds_bad_segstr_handle); rdb = *db_handle; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); transaction = *rtr_handle; -CHECK_HANDLE (transaction, type_rtr, gds__bad_trans_handle); +CHECK_HANDLE (transaction, type_rtr, gds_bad_trans_handle); ESTABLISH_PIPES; @@ -2171,9 +2177,9 @@ USHORT l; UCHAR *p; transaction = *rtr_handle; -CHECK_HANDLE (transaction, type_rtr, gds__bad_trans_handle); +CHECK_HANDLE (transaction, type_rtr, gds_bad_trans_handle); rdb = (*rtr_handle)->rtr_rdb; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -2214,9 +2220,9 @@ UCHAR *p; /* Sniff out handles, etc, and find the various blocks. */ blob = *blob_handle; -CHECK_HANDLE (blob, type_rbl, gds__bad_segstr_handle); +CHECK_HANDLE (blob, type_rbl, gds_bad_segstr_handle); rdb = blob->rbl_rdb; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -2301,13 +2307,13 @@ ULONG l, length; UCHAR *p; #ifdef V2_BRIDGE -return handle_error (user_status, gds__unavailable); +return handle_error (user_status, gds_unavailable); #else rdb = *db_handle; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); transaction = *tra_handle; -CHECK_HANDLE (transaction, type_rtr, gds__bad_trans_handle); +CHECK_HANDLE (transaction, type_rtr, gds_bad_trans_handle); ESTABLISH_PIPES; @@ -2358,7 +2364,7 @@ USHORT l; UCHAR *p; #ifdef V2_BRIDGE -return handle_error (user_status, gds__unavailable); +return handle_error (user_status, gds_unavailable); #else /* If the event pipe is not fully active, finish initialization */ @@ -2383,7 +2389,7 @@ if (!event_pipe) /* Check and validate handles, etc. */ rdb = *handle; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; PUT_BYTE (op_que_events); @@ -2432,7 +2438,7 @@ USHORT l; UCHAR *p; rdb = *service; -CHECK_HANDLE (rdb, type_rdb, gds__bad_svc_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_svc_handle); ESTABLISH_PIPES; @@ -2484,9 +2490,9 @@ UCHAR *p; USHORT l; request = *req_handle; -CHECK_HANDLE (request, type_rrq, gds__bad_req_handle); +CHECK_HANDLE (request, type_rrq, gds_bad_req_handle); rdb = request->rrq_rdb; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -2530,9 +2536,9 @@ RTR transaction; STATUS *temp, l; UCHAR *p; -NULL_CHECK (rtr_handle, gds__bad_trans_handle); +NULL_CHECK (rtr_handle, gds_bad_trans_handle); rdb = *db_handle; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -2570,9 +2576,9 @@ USHORT l; UCHAR *p; request = *req_handle; -CHECK_HANDLE (request, type_rrq, gds__bad_req_handle); +CHECK_HANDLE (request, type_rrq, gds_bad_req_handle); rdb = request->rrq_rdb; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -2608,9 +2614,9 @@ RDB rdb; USHORT l; UCHAR *p; -CHECK_HANDLE ((*request), type_rrq, gds__bad_req_handle); +CHECK_HANDLE ((*request), type_rrq, gds_bad_req_handle); rdb = (*request)->rrq_rdb; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -2648,9 +2654,9 @@ USHORT l; UCHAR *p; transaction = *rtr_handle; -CHECK_HANDLE (transaction, type_rtr, gds__bad_trans_handle); +CHECK_HANDLE (transaction, type_rtr, gds_bad_trans_handle); rdb = (*rtr_handle)->rtr_rdb; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -2686,9 +2692,9 @@ USHORT l; UCHAR *p; blob = *blob_handle; -CHECK_HANDLE (blob, type_rbl, gds__bad_segstr_handle); +CHECK_HANDLE (blob, type_rbl, gds_bad_segstr_handle); rdb = blob->rbl_rdb; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -2730,9 +2736,9 @@ USHORT l; UCHAR *p; request = *req_handle; -CHECK_HANDLE (request, type_rrq, gds__bad_req_handle); +CHECK_HANDLE (request, type_rrq, gds_bad_req_handle); rdb = request->rrq_rdb; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -2775,11 +2781,11 @@ USHORT l; UCHAR *p; request = *req_handle; -CHECK_HANDLE (request, type_rrq, gds__bad_req_handle); +CHECK_HANDLE (request, type_rrq, gds_bad_req_handle); transaction = *rtr_handle; -CHECK_HANDLE (transaction, type_rtr, gds__bad_trans_handle); +CHECK_HANDLE (transaction, type_rtr, gds_bad_trans_handle); rdb = request->rrq_rdb; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -2820,11 +2826,11 @@ USHORT l; UCHAR *p; request = *req_handle; -CHECK_HANDLE (request, type_rrq, gds__bad_req_handle); +CHECK_HANDLE (request, type_rrq, gds_bad_req_handle); transaction = *rtr_handle; -CHECK_HANDLE (transaction, type_rtr, gds__bad_trans_handle); +CHECK_HANDLE (transaction, type_rtr, gds_bad_trans_handle); rdb = request->rrq_rdb; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -2861,7 +2867,7 @@ RDB rdb; USHORT l, i; UCHAR *p; -NULL_CHECK (rtr_handle, gds__bad_trans_handle); +NULL_CHECK (rtr_handle, gds_bad_trans_handle); #ifdef GATEWAY /* We must peek at the rdb so that we know who to talk to. @@ -2869,7 +2875,7 @@ NULL_CHECK (rtr_handle, gds__bad_trans_handle); single database transaction. */ rdb = (RDB) **vector; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); #endif ESTABLISH_PIPES; @@ -2881,7 +2887,7 @@ args = vector; for (i = 0; i < GDS_VAL (count); i++) { rdb = (RDB) *(*args++); - CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); + CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); PUT_HANDLE (rdb->rdb_handle); l = (SSHORT) *args++; PUT_WORD (l); @@ -2919,7 +2925,7 @@ RDB rdb; USHORT l, i; UCHAR *p; -NULL_CHECK (rtr_handle, gds__bad_trans_handle); +NULL_CHECK (rtr_handle, gds_bad_trans_handle); #ifdef GATEWAY /* We must peek at the rdb so that we know who to talk to. @@ -2928,7 +2934,7 @@ NULL_CHECK (rtr_handle, gds__bad_trans_handle); VA_START (args, count); rdb = *(va_arg (args, RDB*)); -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); #endif ESTABLISH_PIPES; @@ -2940,7 +2946,7 @@ VA_START (args, count); for (i = 0; i < GDS_VAL (count); i++) { rdb = *(va_arg (args, RDB*)); - CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); + CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); PUT_HANDLE (rdb->rdb_handle); l = va_arg (args, int); PUT_WORD (l); @@ -2985,9 +2991,9 @@ UCHAR *p; /* Check and validate handles, etc. */ rdb = *db_handle; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); transaction = *tra_handle; -CHECK_HANDLE (transaction, type_rtr, gds__bad_trans_handle); +CHECK_HANDLE (transaction, type_rtr, gds_bad_trans_handle); ESTABLISH_PIPES; @@ -3031,9 +3037,9 @@ RDB rdb; USHORT l; UCHAR *p; -CHECK_HANDLE ((*transaction), type_rtr, gds__bad_trans_handle); +CHECK_HANDLE ((*transaction), type_rtr, gds_bad_trans_handle); rdb = (*transaction)->rtr_rdb; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -3070,9 +3076,9 @@ USHORT l; UCHAR *p; request = *req_handle; -CHECK_HANDLE (request, type_rrq, gds__bad_req_handle); +CHECK_HANDLE (request, type_rrq, gds_bad_req_handle); rdb = request->rrq_rdb; -CHECK_HANDLE (rdb, type_rdb, gds__bad_db_handle); +CHECK_HANDLE (rdb, type_rdb, gds_bad_db_handle); ESTABLISH_PIPES; @@ -3707,12 +3713,12 @@ static void pipe_io_error ( **************************************/ *user_status++ = gds_arg_gds; -*user_status++ = gds__conn_lost; /* Connection lost to pipe server */ +*user_status++ = gds_conn_lost; /* Connection lost to pipe server */ if (operation) { *user_status++ = gds_arg_gds; - *user_status++ = gds__sys_request; + *user_status++ = gds_sys_request; *user_status++ = gds_arg_string; *user_status++ = (STATUS) operation; *user_status++ = gds_arg_string; diff --git a/src/pipe/head5.cpp b/src/pipe/head5.cpp new file mode 100644 index 0000000000..ffb69eec37 --- /dev/null +++ b/src/pipe/head5.cpp @@ -0,0 +1,7 @@ +/* This file is a rebuild of head.cpp with the GDS_PIPE defined +It has been done like this to make the makefile dependencies simple +MOD 30-July-2001 +*/ + +#define GDS_PIPE "bin/gds_pipe5" +#include "head.cpp" diff --git a/src/qli/all.cpp b/src/qli/all.cpp index 7c0471cd94..0c872aa375 100644 --- a/src/qli/all.cpp +++ b/src/qli/all.cpp @@ -21,7 +21,7 @@ * Contributor(s): ______________________________________. */ /* -$Id: all.cpp,v 1.2 2001-07-12 05:46:05 bellardo Exp $ +$Id: all.cpp,v 1.3 2001-07-29 23:43:23 skywalker Exp $ */ /*************************************************** @@ -41,6 +41,7 @@ $Id: all.cpp,v 1.2 2001-07-12 05:46:05 bellardo Exp $ - THANK YOU ***************************************************/ +#include "firebird.h" #include #include "../qli/everything.h" #include "../qli/all_proto.h" @@ -48,13 +49,13 @@ $Id: all.cpp,v 1.2 2001-07-12 05:46:05 bellardo Exp $ #include "../qli/mov_proto.h" #include "../jrd/gds_proto.h" -#define BLKDEF(type, root, tail) sizeof (struct root), tail, +#define BLKDEF(type, root, tail) { sizeof (struct root), tail }, static struct { SSHORT typ_root_length; SSHORT typ_tail_length; } block_sizes[] = { - 0, 0, + {0, 0}, #include "../qli/blk.h" 0}; diff --git a/src/qli/command.cpp b/src/qli/command.cpp index 4ca508b499..8af4de3716 100644 --- a/src/qli/command.cpp +++ b/src/qli/command.cpp @@ -21,10 +21,11 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../qli/dtr.h" #include "../qli/parse.h" #include "../qli/compile.h" diff --git a/src/qli/compile.cpp b/src/qli/compile.cpp index 8a681f0a38..5ca0be55bc 100644 --- a/src/qli/compile.cpp +++ b/src/qli/compile.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include "../qli/dtr.h" #include "../qli/compile.h" diff --git a/src/qli/dtr.cpp b/src/qli/dtr.cpp index d612e53e5c..89a58034ec 100644 --- a/src/qli/dtr.cpp +++ b/src/qli/dtr.cpp @@ -21,7 +21,10 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" + #define QLI_MAIN + #include "../jrd/ib_stdio.h" #include #include @@ -32,7 +35,7 @@ #include "../qli/compile.h" #include "../jrd/perf.h" #include "../jrd/license.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../qli/all_proto.h" #include "../qli/compi_proto.h" #include "../qli/err_proto.h" @@ -62,7 +65,7 @@ /* Program wide globals */ -int *QLI_env; /* Error return environment */ +jmp_buf QLI_env; /* Error return environment */ TEXT *QLI_error; USHORT sw_verify, sw_trace, sw_forms, sw_buffers; @@ -295,7 +298,7 @@ int CLIB_ROUTINE main( int argc, char **argv) PAR_token(); } } - QLI_env = NULL; + memset(QLI_env, 0, sizeof(QLI_env)); QLI_error = NULL; /* Loop until end of file or forced exit */ @@ -400,7 +403,7 @@ static USHORT process_statement( USHORT flush_flag) return status; } - QLI_env = env; + QLI_env = env; /* Set up the appropriate prompt and get the first significant token. If we don't get one, we're at end of file */ diff --git a/src/qli/err.cpp b/src/qli/err.cpp index 78e004577d..0c628528a0 100644 --- a/src/qli/err.cpp +++ b/src/qli/err.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include diff --git a/src/qli/eval.cpp b/src/qli/eval.cpp index cde9f634d7..b0bae5bbd5 100644 --- a/src/qli/eval.cpp +++ b/src/qli/eval.cpp @@ -21,9 +21,10 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/common.h" #include "../qli/dtr.h" #include "../qli/exe.h" diff --git a/src/qli/exe.cpp b/src/qli/exe.cpp index 6b3963c9a0..d300563f63 100644 --- a/src/qli/exe.cpp +++ b/src/qli/exe.cpp @@ -21,11 +21,12 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #define REQUESTS_MAIN -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../qli/dtr.h" #include "../qli/exe.h" #include "../qli/all_proto.h" @@ -53,7 +54,8 @@ #define FOPEN_WRITE_TYPE "w" #endif -extern int *QLI_env; +extern jmp_buf QLI_env; + extern USHORT QLI_prompt_count, QLI_reprompt; typedef struct vary { @@ -522,7 +524,8 @@ static DSC *assignment( UCHAR *p; MSG message; USHORT l, *missing_flag, trash; - int *old_env, status; + jmp_buf old_env; + int status; jmp_buf env; old_env = QLI_env; @@ -1002,7 +1005,8 @@ static void execute_output( NOD node) * **************************************/ PRT print; - int *old_env, status; + jmp_buf old_env; + int status; jmp_buf env; print = (PRT) node->nod_arg[e_out_print]; diff --git a/src/qli/expand.cpp b/src/qli/expand.cpp index 328a5618c1..2038f3c614 100644 --- a/src/qli/expand.cpp +++ b/src/qli/expand.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include "../qli/dtr.h" #include "../qli/parse.h" diff --git a/src/qli/form.cpp b/src/qli/form.cpp index 030f9961e4..ab9c19df26 100644 --- a/src/qli/form.cpp +++ b/src/qli/form.cpp @@ -21,10 +21,11 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../qli/dtr.h" #include "../qli/exe.h" #include "../qli/form.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../pyxis/phase1.h" #include "../pyxis/pyxis_proto.h" #include "../pyxis/phase2.h" diff --git a/src/qli/format.cpp b/src/qli/format.cpp index c33212d447..3089f680cc 100644 --- a/src/qli/format.cpp +++ b/src/qli/format.cpp @@ -21,12 +21,13 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../jrd/time.h" #include "../qli/dtr.h" #include "../qli/exe.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../qli/compile.h" #include "../qli/report.h" #include "../qli/format.h" diff --git a/src/qli/format.h b/src/qli/format.h index f86c64f397..181e109d53 100644 --- a/src/qli/format.h +++ b/src/qli/format.h @@ -69,6 +69,14 @@ typedef struct col { : literal insertion */ +/* Unfortunately libtool defines a macro -DPIC which mucks up the defintion + of the following struct, fortunately we do not use the PIC macro +*/ + +#ifdef PIC +#undef PIC +#endif + typedef ENUM pic_t { pic_alpha = 1, pic_numeric, diff --git a/src/qli/gener.cpp b/src/qli/gener.cpp index b2a790edf5..5dfa346fb9 100644 --- a/src/qli/gener.cpp +++ b/src/qli/gener.cpp @@ -21,12 +21,13 @@ * Contributor(s): ______________________________________. */ /* -$Id: gener.cpp,v 1.2 2001-07-12 05:46:06 bellardo Exp $ +$Id: gener.cpp,v 1.3 2001-07-29 23:43:23 skywalker Exp $ */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../qli/dtr.h" #include "../jrd/align.h" #include "../qli/exe.h" diff --git a/src/qli/help.epp b/src/qli/help.epp index d202fc7c5f..9008c01329 100644 --- a/src/qli/help.epp +++ b/src/qli/help.epp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../jrd/gds.h" diff --git a/src/qli/hsh.cpp b/src/qli/hsh.cpp index b0fd2d8589..275452e92d 100644 --- a/src/qli/hsh.cpp +++ b/src/qli/hsh.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../qli/dtr.h" #include "../qli/parse.h" #ifdef JPN_SJIS @@ -44,7 +45,8 @@ struct word { SCHAR *keyword; } keywords[] = { #include "../qli/words.h" -KW_continuation, "-\n"}; + {KW_continuation, "-\n"} +}; #define NUMWORDS (sizeof (keywords) / sizeof (struct word)) diff --git a/src/qli/lex.cpp b/src/qli/lex.cpp index 00e4fcf202..554cce5a30 100644 --- a/src/qli/lex.cpp +++ b/src/qli/lex.cpp @@ -21,13 +21,14 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include #include #include "../qli/dtr.h" #include "../qli/parse.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #if (defined JPN_SJIS || defined JPN_EUC) #include "../jrd/kanji.h" #endif diff --git a/src/qli/meta.epp b/src/qli/meta.epp index 6c212bda80..7dfe54e3d4 100644 --- a/src/qli/meta.epp +++ b/src/qli/meta.epp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../qli/dtr.h" @@ -3932,7 +3933,7 @@ static void set_capabilities( DBB database) /* Look for desireable fields in system relations */ - for (rel_field_table = rfr_table; rel_field_table->relation; + for (rel_field_table = const_cast(rfr_table); rel_field_table->relation; rel_field_table++) { FOR(REQUEST_HANDLE req) x IN DB.RDB$RELATION_FIELDS WITH x.RDB$RELATION_NAME = rel_field_table->relation diff --git a/src/qli/mov.cpp b/src/qli/mov.cpp index f898629dcb..bebeaf8a29 100644 --- a/src/qli/mov.cpp +++ b/src/qli/mov.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #ifndef PYXIS diff --git a/src/qli/noform.cpp b/src/qli/noform.cpp index eeed6808ff..c4bb9f8947 100644 --- a/src/qli/noform.cpp +++ b/src/qli/noform.cpp @@ -22,6 +22,7 @@ */ +#include "firebird.h" #include "../qli/dtr.h" #include "../qli/exe.h" #include "../qli/form.h" diff --git a/src/qli/nounix.cpp b/src/qli/nounix.cpp index a5f4db5d79..71611d2f7e 100644 --- a/src/qli/nounix.cpp +++ b/src/qli/nounix.cpp @@ -21,6 +21,8 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" + #ifdef __STDC__ int pipe(void) #else diff --git a/src/qli/parse.cpp b/src/qli/parse.cpp index eeb2d6d58c..3486f1a1e4 100644 --- a/src/qli/parse.cpp +++ b/src/qli/parse.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include diff --git a/src/qli/picstr.cpp b/src/qli/picstr.cpp index 4df2137948..32fc00f54e 100644 --- a/src/qli/picstr.cpp +++ b/src/qli/picstr.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #ifndef PYXIS diff --git a/src/qli/proc.epp b/src/qli/proc.epp index 4ce12d002b..1c09ac22ba 100644 --- a/src/qli/proc.epp +++ b/src/qli/proc.epp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include "../jrd/gds.h" #include "../qli/dtr.h" diff --git a/src/qli/report.cpp b/src/qli/report.cpp index 986c2b2db3..8a740dec38 100644 --- a/src/qli/report.cpp +++ b/src/qli/report.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include "../qli/dtr.h" #include "../qli/exe.h" diff --git a/src/qli/show.epp b/src/qli/show.epp index 500411d97f..58e948a119 100644 --- a/src/qli/show.epp +++ b/src/qli/show.epp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../jrd/gds.h" @@ -445,7 +446,7 @@ static void display_acl( DBB dbb, SLONG blob_id[2]) * **************************************/ - display_blob(dbb, blob_id, "\t ", sizeof(acl_bpb), acl_bpb, TRUE); + display_blob(dbb, blob_id, "\t ", sizeof(acl_bpb), const_cast(acl_bpb), TRUE); } @@ -522,7 +523,7 @@ static void display_blr( DBB dbb, SLONG blob_id[2]) * **************************************/ - display_blob(dbb, blob_id, "\t ", sizeof(blr_bpb), blr_bpb, TRUE); + display_blob(dbb, blob_id, "\t ", sizeof(blr_bpb), const_cast(blr_bpb), TRUE); } @@ -823,7 +824,7 @@ static void show_dbb_parameters( DBB database) if (gds__database_info(status_vector, GDS_REF(database->dbb_handle), sizeof(db_items), - db_items, + const_cast(db_items), sizeof(buffer), (char*) buffer)) ERRQ_database_error(database, status_vector); diff --git a/src/qli/words.h b/src/qli/words.h index 9da5f2826c..b8dab7a80e 100644 --- a/src/qli/words.h +++ b/src/qli/words.h @@ -16,271 +16,271 @@ * All Rights Reserved. * Contributor(s): ______________________________________. */ -KW_ABORT, "ABORT", -KW_ACCEPT, "ACCEPT", -KW_ACTIVE, "ACTIVE", -KW_ADD, "ADD", -KW_ALL, "ALL", -KW_ALTER, "ALTER", -KW_AND, "&&", -KW_AND, "AND", -KW_ANY, "ANY", -KW_ANY, "SOME", -KW_ANYCASE, "ANYCASE", -KW_AS, "AS", -KW_ASCENDING, "ASC", -KW_ASCENDING, "ASCENDING", -KW_ASTERISK, "*", -KW_AT, "AT", -KW_AVERAGE, "AVERAGE", -KW_AVERAGE, "AVG", -KW_BAR, "|", -KW_BASED, "BASED", -KW_BASED, "BASED_ON", -KW_BEGIN, "BEGIN", -KW_BETWEEN, "BETWEEN", -KW_BETWEEN, "BT", -KW_BLOB, "BLOB", -KW_BLR, "BLR", -KW_BOTTOM, "BOTTOM", -KW_BY, "BY", -KW_CHAR, "CHAR", -KW_CHAR, "CHARACTER", -KW_CHOICE, "CHOICE", -KW_CLOSE, "CLOSE", -KW_COLLECTION, "COLLECTION", -KW_COLLECTIONS, "COLLECTIONS", -KW_COLON, ":", -KW_COLUMN, "COL", -KW_COLUMNS, "COLUMNS", -KW_COLUMN_HEADER, "COLUMN_HEADER", -KW_COMMA, ",", -KW_COMMIT, "COMMIT", -KW_COMPUTED, "COMPUTED", -KW_CONTAINING, "CONT", -KW_CONTAINING, "CONTAINING", -KW_CONTAINING, "CT", -KW_CONT_PROMPT, "CONTINUATION", -KW_COPY, "COPY", -KW_COUNT, "COUNT", -KW_CREATE, "CREATE", -KW_CROSS, "CROSS", -KW_CURSOR, "CURSOR", -KW_DATABASE, "DATABASE", -KW_DATABASES, "DATABASES", -KW_DATE, "DATE", -KW_DECIMAL, "DECIMAL", -KW_DECIMAL, "DEC", -KW_DECLARE, "DECLARE", -KW_DEFINE, "DEFINE", -KW_DELETE, "DELETE", -KW_DESCENDING, "DESC", -KW_DESCENDING, "DESCENDING", -KW_DISTINCT, "DISTINCT", -KW_DOT, ".", -KW_DOUBLE, "DOUBLE", -KW_DROP, "DROP", -KW_DUPLICATE, "DUPLICATE", -KW_DUPLICATE, "DUPLICATES", -KW_ECHO, "ECHO", -KW_EDIT, "EDIT", -KW_EDIT_STRING, "EDIT_STRING", -KW_ELSE, "ELSE", -KW_END, "END", -KW_END_CHOICE, "END_CHOICE", -KW_END_FOR, "END_FOR", -KW_END_MODIFY, "END_MODIFY", -KW_END_PROCEDURE, "END_PROCEDURE", -KW_END_REPORT, "END_REPORT", -KW_END_STORE, "END_STORE", -KW_END_STREAM, "END_STREAM", -KW_ENTREE, "ENTREE", -KW_EQ, "==", -KW_EQ, "EQ", -KW_EQUALS, "=", -KW_ERASE, "ERASE", -KW_ESCAPE, "ESCAPE", -KW_EUC_JUSTIFY, "EUC_JUSTIFY", -KW_EXACTCASE, "EXACTCASE", -KW_EXEC, "EXEC", -KW_EXISTS, "EXISTS", -KW_EXIT, "EXIT", +{KW_ABORT, "ABORT"}, +{KW_ACCEPT, "ACCEPT"}, +{KW_ACTIVE, "ACTIVE"}, +{KW_ADD, "ADD"}, +{KW_ALL, "ALL"}, +{KW_ALTER, "ALTER"}, +{KW_AND, "&&"}, +{KW_AND, "AND"}, +{KW_ANY, "ANY"}, +{KW_ANY, "SOME"}, +{KW_ANYCASE, "ANYCASE"}, +{KW_AS, "AS"}, +{KW_ASCENDING, "ASC"}, +{KW_ASCENDING, "ASCENDING"}, +{KW_ASTERISK, "*"}, +{KW_AT, "AT"}, +{KW_AVERAGE, "AVERAGE"}, +{KW_AVERAGE, "AVG"}, +{KW_BAR, "|"}, +{KW_BASED, "BASED"}, +{KW_BASED, "BASED_ON"}, +{KW_BEGIN, "BEGIN"}, +{KW_BETWEEN, "BETWEEN"}, +{KW_BETWEEN, "BT"}, +{KW_BLOB, "BLOB"}, +{KW_BLR, "BLR"}, +{KW_BOTTOM, "BOTTOM"}, +{KW_BY, "BY"}, +{KW_CHAR, "CHAR"}, +{KW_CHAR, "CHARACTER"}, +{KW_CHOICE, "CHOICE"}, +{KW_CLOSE, "CLOSE"}, +{KW_COLLECTION, "COLLECTION"}, +{KW_COLLECTIONS, "COLLECTIONS"}, +{KW_COLON, ":"}, +{KW_COLUMN, "COL"}, +{KW_COLUMNS, "COLUMNS"}, +{KW_COLUMN_HEADER, "COLUMN_HEADER"}, +{KW_COMMA, ","}, +{KW_COMMIT, "COMMIT"}, +{KW_COMPUTED, "COMPUTED"}, +{KW_CONTAINING, "CONT"}, +{KW_CONTAINING, "CONTAINING"}, +{KW_CONTAINING, "CT"}, +{KW_CONT_PROMPT, "CONTINUATION"}, +{KW_COPY, "COPY"}, +{KW_COUNT, "COUNT"}, +{KW_CREATE, "CREATE"}, +{KW_CROSS, "CROSS"}, +{KW_CURSOR, "CURSOR"}, +{KW_DATABASE, "DATABASE"}, +{KW_DATABASES, "DATABASES"}, +{KW_DATE, "DATE"}, +{KW_DECIMAL, "DECIMAL"}, +{KW_DECIMAL, "DEC"}, +{KW_DECLARE, "DECLARE"}, +{KW_DEFINE, "DEFINE"}, +{KW_DELETE, "DELETE"}, +{KW_DESCENDING, "DESC"}, +{KW_DESCENDING, "DESCENDING"}, +{KW_DISTINCT, "DISTINCT"}, +{KW_DOT, "."}, +{KW_DOUBLE, "DOUBLE"}, +{KW_DROP, "DROP"}, +{KW_DUPLICATE, "DUPLICATE"}, +{KW_DUPLICATE, "DUPLICATES"}, +{KW_ECHO, "ECHO"}, +{KW_EDIT, "EDIT"}, +{KW_EDIT_STRING, "EDIT_STRING"}, +{KW_ELSE, "ELSE"}, +{KW_END, "END"}, +{KW_END_CHOICE, "END_CHOICE"}, +{KW_END_FOR, "END_FOR"}, +{KW_END_MODIFY, "END_MODIFY"}, +{KW_END_PROCEDURE, "END_PROCEDURE"}, +{KW_END_REPORT, "END_REPORT"}, +{KW_END_STORE, "END_STORE"}, +{KW_END_STREAM, "END_STREAM"}, +{KW_ENTREE, "ENTREE"}, +{KW_EQ, "=="}, +{KW_EQ, "EQ"}, +{KW_EQUALS, "="}, +{KW_ERASE, "ERASE"}, +{KW_ESCAPE, "ESCAPE"}, +{KW_EUC_JUSTIFY, "EUC_JUSTIFY"}, +{KW_EXACTCASE, "EXACTCASE"}, +{KW_EXEC, "EXEC"}, +{KW_EXISTS, "EXISTS"}, +{KW_EXIT, "EXIT"}, #ifdef DEV_BUILD -KW_EXPLAIN, "EXPLAIN", +{KW_EXPLAIN, "EXPLAIN"}, #endif -KW_EXTRACT, "EXTRACT", -KW_FIELD, "FIELD", -KW_FIELDS, "FIELDS", -KW_FILTER, "FILTER", -KW_FILTERS, "FILTERS", -KW_FINISH, "FINISH", -KW_FIRST, "FIRST", -KW_FIXED, "FIXED", -KW_FLOAT, "FLOAT", -KW_FOR, "FOR", -KW_FORM, "FORM", -KW_FORMAT, "FORMAT", -KW_FORMS, "FORMS", -KW_FROM, "FROM", -KW_FULL, "FULL", -KW_FUNCTION, "FUNCTION", -KW_FUNCTIONS, "FUNCTIONS", -KW_GE, ">=", -KW_GE, "GE", -KW_GE, "^<", -KW_GLOBAL, "GLOBAL", -KW_GRANT, "GRANT", -KW_GROUP, "GROUP", -KW_GROUPED, "GROUPED", -KW_GT, ">", -KW_GT, "GT", -KW_HAVING, "HAVING", -KW_HELP, "HELP", +{KW_EXTRACT, "EXTRACT"}, +{KW_FIELD, "FIELD"}, +{KW_FIELDS, "FIELDS"}, +{KW_FILTER, "FILTER"}, +{KW_FILTERS, "FILTERS"}, +{KW_FINISH, "FINISH"}, +{KW_FIRST, "FIRST"}, +{KW_FIXED, "FIXED"}, +{KW_FLOAT, "FLOAT"}, +{KW_FOR, "FOR"}, +{KW_FORM, "FORM"}, +{KW_FORMAT, "FORMAT"}, +{KW_FORMS, "FORMS"}, +{KW_FROM, "FROM"}, +{KW_FULL, "FULL"}, +{KW_FUNCTION, "FUNCTION"}, +{KW_FUNCTIONS, "FUNCTIONS"}, +{KW_GE, ">="}, +{KW_GE, "GE"}, +{KW_GE, "^<"}, +{KW_GLOBAL, "GLOBAL"}, +{KW_GRANT, "GRANT"}, +{KW_GROUP, "GROUP"}, +{KW_GROUPED, "GROUPED"}, +{KW_GT, ">"}, +{KW_GT, "GT"}, +{KW_HAVING, "HAVING"}, +{KW_HELP, "HELP"}, #ifdef DEV_BUILD -KW_HEXOUT, "HEX_OUTPUT", +{KW_HEXOUT, "HEX_OUTPUT"}, #endif -KW_IF, "IF", -KW_IN, "IN", -KW_INACTIVE, "INACTIVE", -KW_INDEX, "INDEX", -KW_INDICES, "INDEXES", -KW_INDICES, "INDICES", -KW_INNER, "INNER", -KW_INSERT, "INSERT", -KW_INTEGER, "INTEGER", -KW_INTEGER, "INT", -KW_INTO, "INTO", -KW_IS, "IS", -KW_JOIN, "JOIN", -KW_LABEL, "LABEL", -KW_LE, "<=", -KW_LE, "LE", -KW_LE, "^>", -KW_LEAVE, "LEAVE", -KW_LEFT, "LEFT", -KW_LEFT_PAREN, "(", -KW_LIKE, "LIKE", -KW_LINES, "LINES", -KW_LIST, "LIST", -KW_LONG, "LONG", -KW_LT, "<", -KW_LT, "LT", -KW_L_BRACE, "{", -KW_L_BRCKET, "[", -KW_MATCHES, "MATCHES", -KW_MATCHES, "MATCHING", -KW_MATCHING_LANGUAGE, "MATCHING_LANGUAGE", -KW_MAX, "MAX", -KW_MEN, "MANU", -KW_MENU, "MENU", -KW_MIN, "MIN", -KW_MINUS, "-", -KW_MISSING, "MISSING", -KW_MODIFY, "MODIFY", -KW_NAMES, "NAMES", -KW_NE, "!=", -KW_NE, "NE", -KW_NE, "<>", -KW_NE, "^=", -KW_NE, "~=", -KW_NEW_PAGE, "NEW_PAGE", -KW_NO, "NO", -KW_NOT, "NOT", -KW_NULL, "NULL", -KW_NUMERIC, "NUMERIC", -KW_OF, "OF", -KW_ON, "ON", -KW_OPEN, "OPEN", -KW_OPTION, "OPTION", -KW_OR, "OR", -KW_OR, "||", -KW_ORDER, "ORDER", -KW_OUTER, "OUTER", -KW_OVER, "OVER", -KW_PAGE, "PAGE", -KW_PAGESIZE, "PAGESIZE", -KW_PASSWORD, "PASSWORD", -KW_PLUS, "+", -KW_PRECISION, "PRECISION", -KW_PREPARE, "PREPARE", -KW_PRINT, "PRINT", -KW_PRIVILEGES, "PRIVILEGES", -KW_PROCEDURE, "PROCEDURE", -KW_PROCEDURES, "PROCEDURES", -KW_PROMPT, "PROMPT", -KW_QUERY_HEADER, "QUERY_HEADER", -KW_QUERY_NAME, "QUERY_NAME", -KW_QUIT, "QUIT", -KW_READY, "READY", -KW_REAL, "REAL", -KW_REDUCED, "REDUCED", -KW_RELATION, "RELATION", -KW_RELATIONS, "RELATIONS", -KW_RELATIONS, "TABLES", -KW_RENAME, "RENAME", -KW_REPEAT, "REPEAT", -KW_REPORT, "REPORT", -KW_REPORT_HEADER, "REPORT_HEADER", -KW_REPORT_NAME, "REPORT_NAME", -KW_REVOKE, "REVOKE", -KW_RIGHT, "RIGHT", -KW_RIGHT_PAREN, ")", -KW_ROLLBACK, "ROLLBACK", -KW_RUNNING, "RUNNING", -KW_R_BRACE, "}", -KW_R_BRCKET, "]", -KW_SCALE, "SCALE", -KW_SECURITY_CLASS, "SECURITY_CLASS", -KW_SECURITY_CLASSES, "SECURITY_CLASSES", -KW_SELECT, "SELECT", -KW_SEMI, ";", -KW_SEMI, "\n", -KW_SEMI, "end of line", -KW_SEMICOLON, "SEMI", -KW_SEMICOLON, "SEMICOLON", -KW_SET, "SET", -KW_SHELL, "SHELL", -KW_SHELL, "SPAWN", -KW_SHORT, "SHORT", -KW_SHOW, "SHOW", -KW_SINGULAR, "SINGULAR", -KW_SKIP, "SKIP", -KW_SLASH, "/", -KW_SMALLINT, "SMALLINT", -KW_SORTED, "SORTED", -KW_SPACE, "SPACE", -KW_STARTS, "ST", -KW_STARTS, "STARTING", -KW_STARTS, "STARTS", -KW_STATISTICS, "STATISTICS", -KW_STORE, "STORE", -KW_SUB_TYPE, "SUB_TYPE", -KW_SYSTEM, "SYSTEM", -KW_TAB, "TAB", -KW_TABLE, "TABLE", -KW_TEXT, "TEXT", -KW_THEN, "THEN", -KW_TO, "TO", -KW_TOP, "TOP", -KW_TOTAL, "SUM", -KW_TOTAL, "TOTAL", -KW_TRIGGER, "TRIGGER", -KW_TRIGGERS, "TRIGGERS", -KW_UNION, "UNION", -KW_UNIQUE, "UNIQUE", -KW_UPDATE, "UPDATE", -KW_UPPERCASE, "UPPERCASE", -KW_USER, "USER", -KW_USER_NAME, "RDB$USER_NAME", -KW_USING, "USING", -KW_VALID, "VALID", -KW_VALUES, "VALUES", -KW_VARCHAR, "VARCHAR", -KW_VARIABLE, "VARIABLE", -KW_VARIABLES, "VARIABLES", -KW_VARYING, "VARYING", -KW_VERSION, "VERSION", -KW_VIEW, "VIEW", -KW_VIEWS, "VIEWS", -KW_WITH, "WHERE", -KW_WITH, "WITH", +{KW_IF, "IF"}, +{KW_IN, "IN"}, +{KW_INACTIVE, "INACTIVE"}, +{KW_INDEX, "INDEX"}, +{KW_INDICES, "INDEXES"}, +{KW_INDICES, "INDICES"}, +{KW_INNER, "INNER"}, +{KW_INSERT, "INSERT"}, +{KW_INTEGER, "INTEGER"}, +{KW_INTEGER, "INT"}, +{KW_INTO, "INTO"}, +{KW_IS, "IS"}, +{KW_JOIN, "JOIN"}, +{KW_LABEL, "LABEL"}, +{KW_LE, "<="}, +{KW_LE, "LE"}, +{KW_LE, "^>"}, +{KW_LEAVE, "LEAVE"}, +{KW_LEFT, "LEFT"}, +{KW_LEFT_PAREN, "("}, +{KW_LIKE, "LIKE"}, +{KW_LINES, "LINES"}, +{KW_LIST, "LIST"}, +{KW_LONG, "LONG"}, +{KW_LT, "<"}, +{KW_LT, "LT"}, +{KW_L_BRACE, "{"}, +{KW_L_BRCKET, "["}, +{KW_MATCHES, "MATCHES"}, +{KW_MATCHES, "MATCHING"}, +{KW_MATCHING_LANGUAGE, "MATCHING_LANGUAGE"}, +{KW_MAX, "MAX"}, +{KW_MEN, "MANU"}, +{KW_MENU, "MENU"}, +{KW_MIN, "MIN"}, +{KW_MINUS, "-"}, +{KW_MISSING, "MISSING"}, +{KW_MODIFY, "MODIFY"}, +{KW_NAMES, "NAMES"}, +{KW_NE, "!="}, +{KW_NE, "NE"}, +{KW_NE, "<>"}, +{KW_NE, "^="}, +{KW_NE, "~="}, +{KW_NEW_PAGE, "NEW_PAGE"}, +{KW_NO, "NO"}, +{KW_NOT, "NOT"}, +{KW_NULL, "NULL"}, +{KW_NUMERIC, "NUMERIC"}, +{KW_OF, "OF"}, +{KW_ON, "ON"}, +{KW_OPEN, "OPEN"}, +{KW_OPTION, "OPTION"}, +{KW_OR, "OR"}, +{KW_OR, "||"}, +{KW_ORDER, "ORDER"}, +{KW_OUTER, "OUTER"}, +{KW_OVER, "OVER"}, +{KW_PAGE, "PAGE"}, +{KW_PAGESIZE, "PAGESIZE"}, +{KW_PASSWORD, "PASSWORD"}, +{KW_PLUS, "+"}, +{KW_PRECISION, "PRECISION"}, +{KW_PREPARE, "PREPARE"}, +{KW_PRINT, "PRINT"}, +{KW_PRIVILEGES, "PRIVILEGES"}, +{KW_PROCEDURE, "PROCEDURE"}, +{KW_PROCEDURES, "PROCEDURES"}, +{KW_PROMPT, "PROMPT"}, +{KW_QUERY_HEADER, "QUERY_HEADER"}, +{KW_QUERY_NAME, "QUERY_NAME"}, +{KW_QUIT, "QUIT"}, +{KW_READY, "READY"}, +{KW_REAL, "REAL"}, +{KW_REDUCED, "REDUCED"}, +{KW_RELATION, "RELATION"}, +{KW_RELATIONS, "RELATIONS"}, +{KW_RELATIONS, "TABLES"}, +{KW_RENAME, "RENAME"}, +{KW_REPEAT, "REPEAT"}, +{KW_REPORT, "REPORT"}, +{KW_REPORT_HEADER, "REPORT_HEADER"}, +{KW_REPORT_NAME, "REPORT_NAME"}, +{KW_REVOKE, "REVOKE"}, +{KW_RIGHT, "RIGHT"}, +{KW_RIGHT_PAREN, ")"}, +{KW_ROLLBACK, "ROLLBACK"}, +{KW_RUNNING, "RUNNING"}, +{KW_R_BRACE, "}"}, +{KW_R_BRCKET, "]"}, +{KW_SCALE, "SCALE"}, +{KW_SECURITY_CLASS, "SECURITY_CLASS"}, +{KW_SECURITY_CLASSES, "SECURITY_CLASSES"}, +{KW_SELECT, "SELECT"}, +{KW_SEMI, ";"}, +{KW_SEMI, "\n"}, +{KW_SEMI, "end of line"}, +{KW_SEMICOLON, "SEMI"}, +{KW_SEMICOLON, "SEMICOLON"}, +{KW_SET, "SET"}, +{KW_SHELL, "SHELL"}, +{KW_SHELL, "SPAWN"}, +{KW_SHORT, "SHORT"}, +{KW_SHOW, "SHOW"}, +{KW_SINGULAR, "SINGULAR"}, +{KW_SKIP, "SKIP"}, +{KW_SLASH, "/"}, +{KW_SMALLINT, "SMALLINT"}, +{KW_SORTED, "SORTED"}, +{KW_SPACE, "SPACE"}, +{KW_STARTS, "ST"}, +{KW_STARTS, "STARTING"}, +{KW_STARTS, "STARTS"}, +{KW_STATISTICS, "STATISTICS"}, +{KW_STORE, "STORE"}, +{KW_SUB_TYPE, "SUB_TYPE"}, +{KW_SYSTEM, "SYSTEM"}, +{KW_TAB, "TAB"}, +{KW_TABLE, "TABLE"}, +{KW_TEXT, "TEXT"}, +{KW_THEN, "THEN"}, +{KW_TO, "TO"}, +{KW_TOP, "TOP"}, +{KW_TOTAL, "SUM"}, +{KW_TOTAL, "TOTAL"}, +{KW_TRIGGER, "TRIGGER"}, +{KW_TRIGGERS, "TRIGGERS"}, +{KW_UNION, "UNION"}, +{KW_UNIQUE, "UNIQUE"}, +{KW_UPDATE, "UPDATE"}, +{KW_UPPERCASE, "UPPERCASE"}, +{KW_USER, "USER"}, +{KW_USER_NAME, "RDB$USER_NAME"}, +{KW_USING, "USING"}, +{KW_VALID, "VALID"}, +{KW_VALUES, "VALUES"}, +{KW_VARCHAR, "VARCHAR"}, +{KW_VARIABLE, "VARIABLE"}, +{KW_VARIABLES, "VARIABLES"}, +{KW_VARYING, "VARYING"}, +{KW_VERSION, "VERSION"}, +{KW_VIEW, "VIEW"}, +{KW_VIEWS, "VIEWS"}, +{KW_WITH, "WHERE"}, +{KW_WITH, "WITH"}, diff --git a/src/remote/allr.cpp b/src/remote/allr.cpp index a4c12320bd..b7395a7501 100644 --- a/src/remote/allr.cpp +++ b/src/remote/allr.cpp @@ -21,11 +21,12 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include #include "../jrd/ibsetjmp.h" #include "../remote/remote.h" -#include "../jrd/codes.h" +#include "gen/codes.h" #include "../remote/allr_proto.h" #include "../remote/remot_proto.h" #include "../jrd/gds_proto.h" @@ -90,11 +91,11 @@ UCHAR* DLL_EXPORT ALLR_alloc(ULONG size) STATUS* status_vector = trdb->trdb_status_vector; if (status_vector) { *status_vector++ = gds_arg_gds; - *status_vector++ = gds__virmemexh; + *status_vector++ = gds_virmemexh; *status_vector = gds_arg_end; } - LONGJMP(*trdb->trdb_setjmp, gds__virmemexh); + LONGJMP(*trdb->trdb_setjmp, gds_virmemexh); return NULL; /* compiler silencer */ } @@ -115,7 +116,7 @@ BLK DLL_EXPORT ALLR_block(UCHAR type, ULONG count) { TEXT errmsg[128]; status_vector[0] = gds_arg_gds; - status_vector[1] = gds__bug_check; + status_vector[1] = gds_bug_check; status_vector[2] = gds_arg_string; status_vector[4] = gds_arg_end; const SSHORT lookup_result = @@ -137,7 +138,7 @@ BLK DLL_EXPORT ALLR_block(UCHAR type, ULONG count) } } - LONGJMP(*trdb->trdb_setjmp, gds__bug_check); + LONGJMP(*trdb->trdb_setjmp, gds_bug_check); } // Compute block length, recasting count to make sure the calculation diff --git a/src/remote/chop.cpp b/src/remote/chop.cpp index 8c1f0bc284..3c6365b711 100644 --- a/src/remote/chop.cpp +++ b/src/remote/chop.cpp @@ -22,6 +22,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ibase.h" #include "../jrd/common.h" diff --git a/src/remote/chuser.cpp b/src/remote/chuser.cpp index b70f57fc87..3bbdf431d4 100644 --- a/src/remote/chuser.cpp +++ b/src/remote/chuser.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include rms #include iodef #include descrip diff --git a/src/remote/cntl.cpp b/src/remote/cntl.cpp index 1d01003789..4be1bc448b 100644 --- a/src/remote/cntl.cpp +++ b/src/remote/cntl.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include "../jrd/common.h" #include "../remote/remote.h" diff --git a/src/remote/decnet.cpp b/src/remote/decnet.cpp index f2a40716fa..56963c68d9 100644 --- a/src/remote/decnet.cpp +++ b/src/remote/decnet.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include descrip #include iodef #include nfbdef @@ -28,7 +29,7 @@ #include "../jrd/ib_stdio.h" #include "../remote/remote.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/thd.h" #include "../remote/decne_proto.h" #include "../remote/remot_proto.h" diff --git a/src/remote/decnet_server.cpp b/src/remote/decnet_server.cpp index b3ad0dc395..06e24feb72 100644 --- a/src/remote/decnet_server.cpp +++ b/src/remote/decnet_server.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/common.h" #include "../jrd/license.h" #include "../jrd/thd.h" diff --git a/src/remote/divorce.cpp b/src/remote/divorce.cpp index bee252588b..8387082415 100644 --- a/src/remote/divorce.cpp +++ b/src/remote/divorce.cpp @@ -25,6 +25,7 @@ #define FD_SETSIZE 256 #endif /* SUPERSERVER */ +#include "firebird.h" #include #include #include diff --git a/src/remote/dllshell.cpp b/src/remote/dllshell.cpp index 3ca124a1b4..eba6974c84 100644 --- a/src/remote/dllshell.cpp +++ b/src/remote/dllshell.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/common.h" #include #include diff --git a/src/remote/dnet.cpp b/src/remote/dnet.cpp index 6b584084ca..de342dfe6c 100644 --- a/src/remote/dnet.cpp +++ b/src/remote/dnet.cpp @@ -21,13 +21,14 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include #include #include #include "../jrd/ib_stdio.h" #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include #include #include "../remote/remote.h" diff --git a/src/remote/dnet_server.cpp b/src/remote/dnet_server.cpp index 4f167b0fe3..613dab8c03 100644 --- a/src/remote/dnet_server.cpp +++ b/src/remote/dnet_server.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/common.h" #include "../jrd/license.h" #include "../remote/remote.h" diff --git a/src/remote/faux.cpp b/src/remote/faux.cpp index dcee9f9ebb..20861a23ab 100644 --- a/src/remote/faux.cpp +++ b/src/remote/faux.cpp @@ -20,7 +20,8 @@ * All Rights Reserved. * Contributor(s): ______________________________________. */ -#ifdef NETWARE_386 +#ifdef N +#include "firebird.h"ETWARE_386 #include #include #include diff --git a/src/remote/ibconfig.cpp b/src/remote/ibconfig.cpp index 6d18e942ae..6c12df172c 100644 --- a/src/remote/ibconfig.cpp +++ b/src/remote/ibconfig.cpp @@ -21,6 +21,7 @@ * All Rights Reserved. * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include #include diff --git a/src/remote/inet.cpp b/src/remote/inet.cpp index f50e7d81b2..b17b8212fc 100644 --- a/src/remote/inet.cpp +++ b/src/remote/inet.cpp @@ -23,8 +23,9 @@ * FSG 16.03.2001 */ /* -$Id: inet.cpp,v 1.2 2001-07-12 05:46:06 bellardo Exp $ +$Id: inet.cpp,v 1.3 2001-07-29 23:43:24 skywalker Exp $ */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include @@ -39,6 +40,10 @@ $Id: inet.cpp,v 1.2 2001-07-12 05:46:06 bellardo Exp $ #include #endif +//#ifdef HAVE_GRP_H +#include +//#endif + #ifdef HAVE_SYS_TYPES_H #include #endif @@ -89,7 +94,7 @@ NETDB_DEFINE_CONTEXT #endif #include "../remote/remote.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/iberr.h" #include "../jrd/thd.h" #include "../remote/inet_proto.h" @@ -536,7 +541,7 @@ static TEXT INET_command_line[MAXPATHLEN + 32], *INET_p; #define pause (*_libgds_pause) #define getenv (*_libgds_getenv) #ifndef SCO -#define initgroups (*_libgds_initgroups) +//#define initgroups (*_libgds_initgroups) #define sigvector (*_libgds_sigvec) #else #define htonl (*_libgds_htonl) @@ -569,8 +574,9 @@ extern int shutdown(); extern int setitimer(); extern int pause(); extern char *getenv(); + #ifndef SCO -extern int initgroups(); +//extern int initgroups(); extern int sigvector(); extern int getppid(); #else @@ -906,7 +912,8 @@ PORT DLL_EXPORT INET_connect(TEXT * name, * is for a server process. * **************************************/ - int l, n; + socklen_t l; + int n; SOCKET s; PORT port; TEXT *protocol; @@ -1162,7 +1169,7 @@ PORT DLL_EXPORT INET_connect(TEXT * name, /* We're a server, so wait for a host to show up */ if (flag & SRVR_multi_client) { - int optlen; + socklen_t optlen; struct linger lingerInfo; lingerInfo.l_onoff = 0; @@ -1718,7 +1725,8 @@ static PORT aux_connect(PORT port, PACKET* packet, XDR_INT (*ast)(void)) **************************************/ P_RESP *response; SOCKET n; - int l, status; + socklen_t l; + int status; PORT new_port; struct sockaddr_in address; #if !(defined VMS || defined NETWARE_386 || defined PC_PLATFORM || \ @@ -1818,7 +1826,7 @@ static PORT aux_request( PORT port, PACKET * packet) PORT new_port; P_RESP *response; SOCKET n; - int length; + socklen_t length; struct sockaddr_in address; #ifndef VMS struct hostent *host; @@ -1954,7 +1962,8 @@ static int check_host( **************************************/ TEXT user[64], rhosts[MAXPATHLEN], *hosts_file; IB_FILE *fp; - int length, result; + socklen_t length; + int result; struct sockaddr_in address; struct hostent *host; @@ -2659,7 +2668,7 @@ static PORT select_accept( PORT main_port) * **************************************/ PORT port; - int l; + socklen_t l; struct sockaddr_in address; int optval = 1; #if !(defined NETWARE_386 || defined PC_PLATFORM || \ diff --git a/src/remote/inet_server.cpp b/src/remote/inet_server.cpp index ddefbafceb..9c6ee235d9 100644 --- a/src/remote/inet_server.cpp +++ b/src/remote/inet_server.cpp @@ -23,8 +23,9 @@ * FSG 16.03.2001 */ /* -$Id: inet_server.cpp,v 1.2 2001-07-12 05:46:06 bellardo Exp $ +$Id: inet_server.cpp,v 1.3 2001-07-29 23:43:24 skywalker Exp $ */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../jrd/common.h" @@ -50,6 +51,11 @@ $Id: inet_server.cpp,v 1.2 2001-07-12 05:46:06 bellardo Exp $ #include #endif +#ifdef HAVE_STRING_H +#include +#endif + + #ifdef WINDOWS_ROUTER #define MAX_ARGS 6 #endif /* WINDOWS_ROUTER */ @@ -61,7 +67,7 @@ $Id: inet_server.cpp,v 1.2 2001-07-12 05:46:06 bellardo Exp $ #ifdef SUPERSERVER #include #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/pwd.h" #endif @@ -113,7 +119,7 @@ $Id: inet_server.cpp,v 1.2 2001-07-12 05:46:06 bellardo Exp $ #define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS))) #define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS))) #define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS))) -#define FD_ZERO(p) bzero((SCHAR *)(p), sizeof(*(p))) +#define FD_ZERO(p) memset((SCHAR *)(p), 0, sizeof(*(p))) #endif #endif @@ -132,10 +138,6 @@ extern "C" { static int assign(SCHAR *); -#ifndef DECOSF -extern "C" void *memset(void* , int , size_t); -static int bzero(void *, int); -#endif static void name_process(UCHAR *); static void signal_handler(void); #ifdef SUPERSERVER @@ -518,28 +520,6 @@ static int assign( SCHAR * string) #endif -#if !(defined DECOSF) -static int bzero( void * addr, int length) -{ -/************************************** - * - * b z e r o - * - ************************************** - * - * Functional description - * Zero a block of memory. - * - **************************************/ - SCHAR *address = (SCHAR*) addr; - - if (length) - do - *address++ = 0; - while (--length); -} -#endif - diff --git a/src/remote/interface.cpp b/src/remote/interface.cpp index 9119798697..70f079a4b5 100644 --- a/src/remote/interface.cpp +++ b/src/remote/interface.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include "../jrd/ibsetjmp.h" #include @@ -36,7 +37,7 @@ #define NFS 1 #endif -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/thd.h" #include "../jrd/license.h" #include "../jrd/fil.h" diff --git a/src/remote/ipc.cpp b/src/remote/ipc.cpp index e12567ba7a..87c90f3229 100644 --- a/src/remote/ipc.cpp +++ b/src/remote/ipc.cpp @@ -21,11 +21,12 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../remote/remote.h" #include "../remote/ipc.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/thd.h" #include "../remote/ipc_proto.h" #include "../remote/remot_proto.h" diff --git a/src/remote/ipc_server.cpp b/src/remote/ipc_server.cpp index 09779c9f1b..2493ad4a3c 100644 --- a/src/remote/ipc_server.cpp +++ b/src/remote/ipc_server.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include "../jrd/common.h" diff --git a/src/remote/merge.cpp b/src/remote/merge.cpp index 9296b5c6c7..ae03c32367 100644 --- a/src/remote/merge.cpp +++ b/src/remote/merge.cpp @@ -21,8 +21,9 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../remote/remote.h" #include "../remote/merge_proto.h" #include "../jrd/gds_proto.h" diff --git a/src/remote/mgr.cpp b/src/remote/mgr.cpp index 98d1b3535c..20106c4041 100644 --- a/src/remote/mgr.cpp +++ b/src/remote/mgr.cpp @@ -21,9 +21,10 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../remote/remote.h" #include "../jrd/license.h" #include "../remote/ambx_proto.h" diff --git a/src/remote/multivx.cpp b/src/remote/multivx.cpp index 08e2b43922..fa6601564b 100644 --- a/src/remote/multivx.cpp +++ b/src/remote/multivx.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include stdio #include iodef #include descrip diff --git a/src/remote/netwcon.cpp b/src/remote/netwcon.cpp index 4712336d2e..e2455b882d 100644 --- a/src/remote/netwcon.cpp +++ b/src/remote/netwcon.cpp @@ -16,6 +16,7 @@ * All Rights Reserved. * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include #include diff --git a/src/remote/nt_server.cpp b/src/remote/nt_server.cpp index c0b91fac77..edffa28972 100644 --- a/src/remote/nt_server.cpp +++ b/src/remote/nt_server.cpp @@ -21,10 +21,11 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../remote/remote.h" -#include "../jrd/codes.h" +#include "gen/codes.h" #include "../jrd/license.h" #include "../jrd/thd.h" #include "../utilities/install_nt.h" diff --git a/src/remote/ntoh.cpp b/src/remote/ntoh.cpp index 4d0d267b4a..4fcdb1dec7 100644 --- a/src/remote/ntoh.cpp +++ b/src/remote/ntoh.cpp @@ -24,7 +24,8 @@ /* only include this code if we are not compiling for windows 32 bit in which case winsock.dll provides the functionality */ -#ifndef __WIN32__ +#ifndef +#include "firebird.h"__WIN32__ #include "../jrd/common.h" typedef union diff --git a/src/remote/nwserv.cpp b/src/remote/nwserv.cpp index 6addbf4453..12e97dc9ba 100644 --- a/src/remote/nwserv.cpp +++ b/src/remote/nwserv.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include #include "../remote/remote.h" diff --git a/src/remote/parser.cpp b/src/remote/parser.cpp index a778dcc8c7..685ee8acb9 100644 --- a/src/remote/parser.cpp +++ b/src/remote/parser.cpp @@ -21,13 +21,14 @@ * Contributor(s): ______________________________________. */ /* -$Id: parser.cpp,v 1.1.1.1 2001-05-23 13:26:39 tamlin Exp $ +$Id: parser.cpp,v 1.2 2001-07-29 23:43:24 skywalker Exp $ */ +#include "firebird.h" #include #include #include "../jrd/ib_stdio.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../remote/remote.h" #include "../jrd/align.h" #include "../jrd/gdsassert.h" diff --git a/src/remote/property.cpp b/src/remote/property.cpp index b5e60834e6..09eb385b0b 100644 --- a/src/remote/property.cpp +++ b/src/remote/property.cpp @@ -30,6 +30,7 @@ #error This is a Win32 only file. #endif +#include "firebird.h" #include #include #include diff --git a/src/remote/protocol.cpp b/src/remote/protocol.cpp index 1e8ffc931d..c7fecf614d 100644 --- a/src/remote/protocol.cpp +++ b/src/remote/protocol.cpp @@ -21,10 +21,11 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../remote/remote.h" -#include "../jrd/codes.h" +#include "gen/codes.h" #include "../jrd/sdl.h" #include "../jrd/gdsassert.h" #include "../remote/parse_proto.h" diff --git a/src/remote/remote.cpp b/src/remote/remote.cpp index e1ac522e52..dfc6b5ec04 100644 --- a/src/remote/remote.cpp +++ b/src/remote/remote.cpp @@ -21,9 +21,10 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../remote/remote.h" #include "../jrd/file_params.h" #include "../jrd/gdsassert.h" diff --git a/src/remote/remote_def.h b/src/remote/remote_def.h index ad95f1de26..169ef24a00 100644 --- a/src/remote/remote_def.h +++ b/src/remote/remote_def.h @@ -112,12 +112,6 @@ #define ARCHITECTURE arch_epson #endif -#ifdef I386 -#ifndef ARCHITECTURE -#define ARCHITECTURE arch_intel_32 -#endif -#endif - #ifdef _PPC_ #define ARCHITECTURE arch_nt_ppc #endif @@ -138,6 +132,13 @@ #define ARCHITECTURE arch_darwin_ppc #endif +#ifdef I386 +#ifndef ARCHITECTURE +#define ARCHITECTURE arch_intel_32 +#endif +#endif + + #define SRVR_server 1 /* 0x0001 server */ #define SRVR_multi_client 2 /* 0x0002 multi-client server */ diff --git a/src/remote/server.cpp b/src/remote/server.cpp index 21303d23a7..6930420dd2 100644 --- a/src/remote/server.cpp +++ b/src/remote/server.cpp @@ -21,10 +21,11 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../jrd/ibsetjmp.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/gdsassert.h" #include "../remote/remote.h" #include "../jrd/thd.h" diff --git a/src/remote/spxesr.cpp b/src/remote/spxesr.cpp index c9656a31eb..d310f92179 100644 --- a/src/remote/spxesr.cpp +++ b/src/remote/spxesr.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include #include "../jrd/common.h" diff --git a/src/remote/spxnet.cpp b/src/remote/spxnet.cpp index 0156fcaff5..b30fbbf18c 100644 --- a/src/remote/spxnet.cpp +++ b/src/remote/spxnet.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include @@ -45,7 +46,7 @@ #include "../jrd/time.h" #include "../jrd/common.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/thd.h" #include "../jrd/gdsasser.h" #include "../remote/remote.h" diff --git a/src/remote/spxnet32.cpp b/src/remote/spxnet32.cpp index 9b93006d75..ebb706977a 100644 --- a/src/remote/spxnet32.cpp +++ b/src/remote/spxnet32.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include @@ -38,7 +39,7 @@ #define GETHOSTNAME gethostname #include "../remote/remote.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/iberr.h" #include "../jrd/thd.h" #include "../remote/spxnet32_proto.h" diff --git a/src/remote/spxwin.cpp b/src/remote/spxwin.cpp index 488cea22a2..748a6e9239 100644 --- a/src/remote/spxwin.cpp +++ b/src/remote/spxwin.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/time.h" #include "../jrd/common.h" @@ -33,7 +34,7 @@ #include #include "../remote/remote.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/iberr.h" #include "../jrd/thd.h" #include "../remote/ntoh_proto.h" diff --git a/src/remote/srvr_w32.cpp b/src/remote/srvr_w32.cpp index b7eb301886..47ee9ebe71 100644 --- a/src/remote/srvr_w32.cpp +++ b/src/remote/srvr_w32.cpp @@ -77,11 +77,12 @@ * copyright (c) 1993, 1996 by Borland International */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include #include "../remote/remote.h" -#include "../jrd/codes.h" +#include "gen/codes.h" #include "../jrd/license.h" #include "../jrd/thd.h" #include "../jrd/license.h" diff --git a/src/remote/ucx.cpp b/src/remote/ucx.cpp index 7f06dd27b4..d3ac67d334 100644 --- a/src/remote/ucx.cpp +++ b/src/remote/ucx.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include diff --git a/src/remote/wfwnp.cpp b/src/remote/wfwnp.cpp index 6b4028e389..66253a3d66 100644 --- a/src/remote/wfwnp.cpp +++ b/src/remote/wfwnp.cpp @@ -35,6 +35,7 @@ * */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #define INCL_ERRORS diff --git a/src/remote/window.cpp b/src/remote/window.cpp index 7c669d84e8..a6f87d235b 100644 --- a/src/remote/window.cpp +++ b/src/remote/window.cpp @@ -16,6 +16,7 @@ * All Rights Reserved. * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include #include diff --git a/src/remote/winmain.cpp b/src/remote/winmain.cpp index 01fdc49d2a..c442fcc4e2 100644 --- a/src/remote/winmain.cpp +++ b/src/remote/winmain.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include #define MSG_DEFINED diff --git a/src/remote/winvx.cpp b/src/remote/winvx.cpp index 33c2ffc867..9849adb796 100644 --- a/src/remote/winvx.cpp +++ b/src/remote/winvx.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include stdio #include iodef #include descrip diff --git a/src/remote/wnet.cpp b/src/remote/wnet.cpp index d6a161f511..859ff7e816 100644 --- a/src/remote/wnet.cpp +++ b/src/remote/wnet.cpp @@ -26,10 +26,11 @@ #define WNET_trace 1 #endif +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../remote/remote.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/thd.h" #include "../jrd/iberr.h" diff --git a/src/remote/xdr.cpp b/src/remote/xdr.cpp index 24e099db45..027c58ba45 100644 --- a/src/remote/xdr.cpp +++ b/src/remote/xdr.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include "../remote/remote.h" #include "../remote/xdr.h" diff --git a/src/remote/xnet.cpp b/src/remote/xnet.cpp index c03add398e..36c9789dc2 100644 --- a/src/remote/xnet.cpp +++ b/src/remote/xnet.cpp @@ -23,10 +23,11 @@ #ifdef XNET +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../remote/remote.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/thd.h" #include "../jrd/iberr.h" #include "../remote/xnet.h" diff --git a/src/utilities/analyse.cpp b/src/utilities/analyse.cpp index 0b2cfe13bd..83fd222290 100644 --- a/src/utilities/analyse.cpp +++ b/src/utilities/analyse.cpp @@ -21,7 +21,8 @@ * Contributor(s): ______________________________________. */ -#ifdef VMS +#ifdef V +#include "firebird.h"MS #include #include "times.h" #else diff --git a/src/utilities/cache.cpp b/src/utilities/cache.cpp index b0fe8caf3f..dcd4ba2ba1 100644 --- a/src/utilities/cache.cpp +++ b/src/utilities/cache.cpp @@ -21,12 +21,13 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include #include #include "../jrd/common.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/license.h" #include "../jrd/gds_proto.h" #include "../jrd/why_proto.h" diff --git a/src/utilities/cmd_util.cpp b/src/utilities/cmd_util.cpp index 66400c5c21..f384deaccb 100644 --- a/src/utilities/cmd_util.cpp +++ b/src/utilities/cmd_util.cpp @@ -21,9 +21,10 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include "../jrd/common.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/gds_proto.h" #include "../jrd/msg_encode.h" #include "../jrd/iberr.h" diff --git a/src/utilities/create_db.cpp b/src/utilities/create_db.cpp index 299b82fece..a5515f55fd 100644 --- a/src/utilities/create_db.cpp +++ b/src/utilities/create_db.cpp @@ -1,3 +1,6 @@ + +#include "firebird.h" + #include "../jrd/ibase.h" #include @@ -19,7 +22,7 @@ int main(int argc, char **argv) *d++ = (UCHAR) isc_dpb_version1; *d++ = (UCHAR) isc_dpb_set_db_readonly; *d++ = 1; - *d++ = TRUE; + *d++ = GDS_TRUE; len = d - dpb; isc_create_database(sv, 0, argv[1], &db, 0, 0, 0); diff --git a/src/utilities/dba.epp b/src/utilities/dba.epp index f2ab222ffa..bc066c441c 100644 --- a/src/utilities/dba.epp +++ b/src/utilities/dba.epp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include @@ -28,7 +29,7 @@ #include "../jrd/ibsetjmp.h" #include "../jrd/common.h" #include "../jrd/time.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/ods.h" #include "../jrd/license.h" #include "../jrd/msg_encode.h" diff --git a/src/utilities/dba_full.epp b/src/utilities/dba_full.epp index ccc0d137fe..5c253e5a69 100644 --- a/src/utilities/dba_full.epp +++ b/src/utilities/dba_full.epp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include diff --git a/src/utilities/drop.cpp b/src/utilities/drop.cpp index 738ad645e7..24eade16da 100644 --- a/src/utilities/drop.cpp +++ b/src/utilities/drop.cpp @@ -21,9 +21,10 @@ * Contributor(s): ______________________________________. */ /* -$Id: drop.cpp,v 1.2 2001-07-12 05:46:06 bellardo Exp $ +$Id: drop.cpp,v 1.3 2001-07-29 23:43:24 skywalker Exp $ */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include @@ -35,11 +36,28 @@ $Id: drop.cpp,v 1.2 2001-07-12 05:46:06 bellardo Exp $ #include "../jrd/common.h" #include "../jrd/isc.h" #include "../lock/lock.h" +#include "../lock/lock_proto.h" #include "../jrd/license.h" #include "../jrd/gds_proto.h" #include "../jrd/isc_proto.h" #include "../utilities/drpv3_proto.h" +#ifdef HAVE_SYS_TYPES_H +#include +#endif + +#ifdef HAVE_UNISTD_H +#include +#endif + +#ifdef HAVE_SYS_WAIT_H +#include +#endif + +#ifdef HAVE_STRING_H +#include +#endif + #define FTOK_KEY 15 static void dummy_init(void); @@ -230,7 +248,7 @@ static void remove_resource( SH_MEM_T shmem_data; SLONG key, shmid, semid; TEXT expanded_filename[MAXPATHLEN]; - int pid; + pid_t pid; #ifdef MANAGER_PROCESS /* Shutdown lock manager process so that shared memory @@ -241,7 +259,8 @@ static void remove_resource( execl(orig_argv[0], orig_argv[0], "-s", 0); _exit(FINI_ERROR); } - wait(pid); + // wait(pid) // this is wrong wait takes a *int anyway. + waitpid(pid, 0, 0); } #endif @@ -318,7 +337,7 @@ static void remove_resource( #ifdef SCO_EV /* 5.5 SCO Port: SCO needs waitpid() to function properly */ waitpid(pid, 0, 0); #else - wait(pid); + waitpid(pid,NULL,0); #endif } #endif diff --git a/src/utilities/dropv3.cpp b/src/utilities/dropv3.cpp index ee7d47b4e5..cf0cb968f4 100644 --- a/src/utilities/dropv3.cpp +++ b/src/utilities/dropv3.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include diff --git a/src/utilities/gsec.cpp b/src/utilities/gsec.cpp index 9f3138f48b..0408bded3f 100644 --- a/src/utilities/gsec.cpp +++ b/src/utilities/gsec.cpp @@ -22,13 +22,14 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include #include #include #include "../jrd/common.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/gds_proto.h" #include "../jrd/msg_encode.h" #include "../jrd/jrd.h" @@ -73,7 +74,7 @@ void UTIL_error_redirect(STATUS *, USHORT, TEXT *, TEXT *); void UTIL_error(USHORT, TEXT *, TEXT *, TEXT *, TEXT *, TEXT *); void UTIL_print(USHORT, TEXT *, TEXT *, TEXT *, TEXT *, TEXT *); void UTIL_print_partial(USHORT, TEXT *, TEXT *, TEXT *, TEXT *, TEXT *); -void util_output(CONST SCHAR *, ...); +static void util_output(CONST SCHAR *, ...); static void data_print(void *, USER_DATA, BOOLEAN); static int get_line(int *, SCHAR **, TEXT *, TSEC); diff --git a/src/utilities/gsecswi.h b/src/utilities/gsecswi.h index e63d0e2f69..90f7f9e1e1 100644 --- a/src/utilities/gsecswi.h +++ b/src/utilities/gsecswi.h @@ -55,33 +55,33 @@ static struct in_sw_tab_t gsec_in_sw_table [] = { - IN_SW_GSEC_ADD, 0, "ADD", 0, 0, 0, FALSE, 0, 1, NULL, /* add user */ - IN_SW_GSEC_UID, isc_spb_sec_userid, "UID", 0, 0, 0, FALSE, 0, 1, NULL, /* user's ID */ - IN_SW_GSEC_GID, isc_spb_sec_groupid, "GID", 0, 0, 0, FALSE, 0, 2, NULL, /* user's group ID */ - IN_SW_GSEC_SYSU, 0, "SYSU", 0, 0, 0, FALSE, 0, 1, NULL, /* sys_user's name */ - IN_SW_GSEC_GROUP, isc_spb_sec_groupname, "GROUP", 0, 0, 0, FALSE, 0, 2, NULL, /* user's group name */ - IN_SW_GSEC_PASSWORD, isc_spb_sec_password, "PW", 0, 0, 0, FALSE, 0, 2, NULL, /* user's password */ - IN_SW_GSEC_FNAME, isc_spb_sec_firstname, "FNAME", 0, 0, 0, FALSE, 0, 1, NULL, /* user's first name */ - IN_SW_GSEC_MNAME, isc_spb_sec_middlename, "MNAME", 0, 0, 0, FALSE, 0, 2, NULL, /* user's middle name/initial */ - IN_SW_GSEC_LNAME, isc_spb_sec_lastname, "LNAME", 0, 0, 0, FALSE, 0, 1, NULL, /* user's last name */ - IN_SW_GSEC_DEL, 0, "DELETE", 0, 0, 0, FALSE, 0, 2, NULL, /* delete user */ - IN_SW_GSEC_DIS, 0, "DISPLAY", 0, 0, 0, FALSE, 0, 2, NULL, /* display user(s) */ - IN_SW_GSEC_MOD, 0, "MODIFY", 0, 0, 0, FALSE, 0, 2, NULL, /* modify user */ - IN_SW_GSEC_QUIT, 0, "QUIT", 0, 0, 0, FALSE, 0, 1, NULL, /* exit command line interface */ - IN_SW_GSEC_HELP, 0, "HELP", 0, 0, 0, FALSE, 0, 1, NULL, /* print help */ - IN_SW_GSEC_Z, 0, "Z", 0, 0, 0, FALSE, 0, 1, NULL, /* version */ - IN_SW_GSEC_DATABASE, isc_spb_dbname, "DATABASE", 0, 0, 0, FALSE, 0, 2, NULL, /* specify database to use */ - IN_SW_GSEC_DBA_USER_NAME, 0, "USER", 0, 0, 0, FALSE, 0, 1, NULL, /* Database Admin. User name */ - IN_SW_GSEC_DBA_PASSWORD, 0, "PASSWORD", 0, 0, 0, FALSE, 0, 2, NULL, /* Database Admin. Password */ - IN_SW_GSEC_SQL_ROLE_NAME, isc_spb_sql_role_name, "ROLE", 0, 0, 0, FALSE, 0, 2, NULL, /* SQL Role to assume */ - IN_SW_GSEC_0, 0, NULL, 0, 0, 0, FALSE, 0, 0, NULL /* End of List */ + {IN_SW_GSEC_ADD, 0, "ADD", 0, 0, 0, FALSE, 0, 1, NULL}, /* add user */ + {IN_SW_GSEC_UID, isc_spb_sec_userid, "UID", 0, 0, 0, FALSE, 0, 1, NULL}, /* user's ID */ + {IN_SW_GSEC_GID, isc_spb_sec_groupid, "GID", 0, 0, 0, FALSE, 0, 2, NULL}, /* user's group ID */ + {IN_SW_GSEC_SYSU, 0, "SYSU", 0, 0, 0, FALSE, 0, 1, NULL}, /* sys_user's name */ + {IN_SW_GSEC_GROUP, isc_spb_sec_groupname, "GROUP", 0, 0, 0, FALSE, 0, 2, NULL}, /* user's group name */ + {IN_SW_GSEC_PASSWORD, isc_spb_sec_password, "PW", 0, 0, 0, FALSE, 0, 2, NULL}, /* user's password */ + {IN_SW_GSEC_FNAME, isc_spb_sec_firstname, "FNAME", 0, 0, 0, FALSE, 0, 1, NULL}, /* user's first name */ + {IN_SW_GSEC_MNAME, isc_spb_sec_middlename, "MNAME", 0, 0, 0, FALSE, 0, 2, NULL}, /* user's middle name/initial */ + {IN_SW_GSEC_LNAME, isc_spb_sec_lastname, "LNAME", 0, 0, 0, FALSE, 0, 1, NULL}, /* user's last name */ + {IN_SW_GSEC_DEL, 0, "DELETE", 0, 0, 0, FALSE, 0, 2, NULL}, /* delete user */ + {IN_SW_GSEC_DIS, 0, "DISPLAY", 0, 0, 0, FALSE, 0, 2, NULL}, /* display user(s) */ + {IN_SW_GSEC_MOD, 0, "MODIFY", 0, 0, 0, FALSE, 0, 2, NULL}, /* modify user */ + {IN_SW_GSEC_QUIT, 0, "QUIT", 0, 0, 0, FALSE, 0, 1, NULL}, /* exit command line interface */ + {IN_SW_GSEC_HELP, 0, "HELP", 0, 0, 0, FALSE, 0, 1, NULL}, /* print help */ + {IN_SW_GSEC_Z, 0, "Z", 0, 0, 0, FALSE, 0, 1, NULL}, /* version */ + {IN_SW_GSEC_DATABASE, isc_spb_dbname, "DATABASE", 0, 0, 0, FALSE, 0, 2, NULL}, /* specify database to use */ + {IN_SW_GSEC_DBA_USER_NAME, 0, "USER", 0, 0, 0, FALSE, 0, 1, NULL}, /* Database Admin. User name */ + {IN_SW_GSEC_DBA_PASSWORD, 0, "PASSWORD", 0, 0, 0, FALSE, 0, 2, NULL}, /* Database Admin. Password */ + {IN_SW_GSEC_SQL_ROLE_NAME, isc_spb_sql_role_name, "ROLE", 0, 0, 0, FALSE, 0, 2, NULL}, /* SQL Role to assume */ + {IN_SW_GSEC_0, 0, NULL, 0, 0, 0, FALSE, 0, 0, NULL} /* End of List */ }; static struct in_sw_tab_t gsec_action_in_sw_table [] = { - IN_SW_GSEC_ADD, isc_action_svc_add_user, "ADD", 0, 0, 0, FALSE, 0, 1, NULL, /* add user */ - IN_SW_GSEC_DEL, isc_action_svc_delete_user, "DELETE", 0, 0, 0, FALSE, 0, 2, NULL, /* delete user */ - IN_SW_GSEC_MOD, isc_action_svc_modify_user, "MODIFY", 0, 0, 0, FALSE, 0, 2, NULL, /* modify user */ - IN_SW_GSEC_DIS, isc_action_svc_display_user, "DISPLAY", 0, 0, 0, FALSE, 0, 2, NULL, /* display user(s) */ - IN_SW_GSEC_0, 0, NULL, 0, 0, 0, FALSE, 0, 0, NULL /* End of List */ + {IN_SW_GSEC_ADD, isc_action_svc_add_user, "ADD", 0, 0, 0, FALSE, 0, 1, NULL}, /* add user */ + {IN_SW_GSEC_DEL, isc_action_svc_delete_user, "DELETE", 0, 0, 0, FALSE, 0, 2, NULL}, /* delete user */ + {IN_SW_GSEC_MOD, isc_action_svc_modify_user, "MODIFY", 0, 0, 0, FALSE, 0, 2, NULL}, /* modify user */ + {IN_SW_GSEC_DIS, isc_action_svc_display_user, "DISPLAY", 0, 0, 0, FALSE, 0, 2, NULL}, /* display user(s) */ + {IN_SW_GSEC_0, 0, NULL, 0, 0, 0, FALSE, 0, 0, NULL} /* End of List */ }; #endif /* _GSEC_GSECSWI_H_ */ diff --git a/src/utilities/guard.cpp b/src/utilities/guard.cpp index 8d1aaaacfb..40679f5197 100644 --- a/src/utilities/guard.cpp +++ b/src/utilities/guard.cpp @@ -15,7 +15,7 @@ * * All Rights Reserved. * Contributor(s): ______________________________________. - * $Id: guard.cpp,v 1.1.1.1 2001-05-23 13:26:41 tamlin Exp $ + * $Id: guard.cpp,v 1.2 2001-07-29 23:43:24 skywalker Exp $ */ /* contains the main() and not shared routines for ibguard */ @@ -30,6 +30,7 @@ #define FIREBIRD_USER "firebird" #define INTERBASE_USER_SHORT "interbas" +#include "firebird.h" #include "../jrd/ib_stdio.h" #include diff --git a/src/utilities/ibmgr.cpp b/src/utilities/ibmgr.cpp index fced9b1e5c..22ec85bb30 100644 --- a/src/utilities/ibmgr.cpp +++ b/src/utilities/ibmgr.cpp @@ -20,16 +20,17 @@ * * All Rights Reserved. * Contributor(s): ______________________________________. - * $Id: ibmgr.cpp,v 1.1.1.1 2001-05-23 13:26:41 tamlin Exp $ + * $Id: ibmgr.cpp,v 1.2 2001-07-29 23:43:24 skywalker Exp $ */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include #include #include #include "../jrd/common.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../utilities/ibmgr.h" #include "../utilities/ibmgrswi.h" #include "../jrd/license.h" diff --git a/src/utilities/install_reg.cpp b/src/utilities/install_reg.cpp index f7c48f7560..0c1abb8161 100644 --- a/src/utilities/install_reg.cpp +++ b/src/utilities/install_reg.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include diff --git a/src/utilities/install_svc.cpp b/src/utilities/install_svc.cpp index 711e3cffe8..8a98100b74 100644 --- a/src/utilities/install_svc.cpp +++ b/src/utilities/install_svc.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include diff --git a/src/utilities/ppg.cpp b/src/utilities/ppg.cpp index 5ebbe7c981..168359604b 100644 --- a/src/utilities/ppg.cpp +++ b/src/utilities/ppg.cpp @@ -21,11 +21,12 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../jrd/common.h" #include "../jrd/time.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/ods.h" #include "../jrd/gds_proto.h" diff --git a/src/utilities/print_pool.cpp b/src/utilities/print_pool.cpp index 87c17dc8ee..f37a93fdb3 100644 --- a/src/utilities/print_pool.cpp +++ b/src/utilities/print_pool.cpp @@ -16,6 +16,7 @@ * All Rights Reserved. * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../jrd/common.h" diff --git a/src/utilities/rebuild.cpp b/src/utilities/rebuild.cpp index ddf9ead191..67e77e5849 100644 --- a/src/utilities/rebuild.cpp +++ b/src/utilities/rebuild.cpp @@ -21,10 +21,11 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/jrd.h" #include "../jrd/time.h" #include "../jrd/pag.h" diff --git a/src/utilities/registry.cpp b/src/utilities/registry.cpp index 0b2df0731c..879e9633ce 100644 --- a/src/utilities/registry.cpp +++ b/src/utilities/registry.cpp @@ -21,7 +21,9 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" +#include "../jrd/isc_proto.h" #include #include #include "../jrd/common.h" @@ -32,8 +34,7 @@ static USHORT remove_subkeys(HKEY, USHORT, USHORT(*)()); -USHORT REGISTRY_install( - HKEY hkey_node, +USHORT REGISTRY_install(HKEY hkey_node, TEXT * directory, USHORT(*err_handler) ()) { /************************************** @@ -53,7 +54,7 @@ USHORT REGISTRY_install( SLONG status; if ((status = RegCreateKeyEx(hkey_node, - "SOFTWARE\\Borland\\InterBase\\CurrentVersion", + WIN32_REG_KEY_PATH_CURRENT_VERSION, 0, "", REG_OPTION_NON_VOLATILE, @@ -104,7 +105,7 @@ USHORT REGISTRY_remove(HKEY hkey_node, SLONG status; if ((status = RegOpenKeyEx(hkey_node, - "SOFTWARE\\Borland\\InterBase", + WIN32_REG_KEY_PATH, 0, KEY_ENUMERATE_SUB_KEYS | KEY_QUERY_VALUE | KEY_WRITE, &hkey_kit)) != ERROR_SUCCESS) { @@ -120,7 +121,7 @@ USHORT REGISTRY_remove(HKEY hkey_node, if (ret == FAILURE) return FAILURE; - if (status = RegDeleteKey(hkey_node, "SOFTWARE\\Borland\\InterBase")) { + if (status = RegDeleteKey(hkey_node, WIN32_REG_KEY_PATH)) { if (silent_flag) return FAILURE; return (*err_handler) (status, "RegDeleteKey", NULL); diff --git a/src/utilities/relay.cpp b/src/utilities/relay.cpp index 2e7e69da34..ff5a9e0928 100644 --- a/src/utilities/relay.cpp +++ b/src/utilities/relay.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include @@ -34,6 +35,10 @@ #include #endif +#ifdef HAVE_STRING_H +#include +#endif + #ifndef NOFILE #define NOFILE 20 #endif diff --git a/src/utilities/rmet.epp b/src/utilities/rmet.epp index 8f750b9a0b..55d7f96ab0 100644 --- a/src/utilities/rmet.epp +++ b/src/utilities/rmet.epp @@ -21,7 +21,8 @@ * Contributor(s): ______________________________________. */ -#include "../include/jrd/gds.h" +#include "firebird.h" +#include "../jrd/gds.h" #include "../jrd/jrd.h" #include "../jrd/tra.h" #include "../jrd/pag.h" diff --git a/src/utilities/rstore.epp b/src/utilities/rstore.epp index 6e5c5e4b8b..64723d26c9 100644 --- a/src/utilities/rstore.epp +++ b/src/utilities/rstore.epp @@ -21,7 +21,8 @@ * Contributor(s): ______________________________________. */ -#include "../include/jrd/gds.h" +#include "firebird.h" +#include "../jrd/gds.h" #include "../utilities/rebuild.h" #include "../utilities/rebui_proto.h" #include "../utilities/rstor_proto.h" diff --git a/src/utilities/run_service.cpp b/src/utilities/run_service.cpp index 69e6dcb9ad..ae86ddac7d 100644 --- a/src/utilities/run_service.cpp +++ b/src/utilities/run_service.cpp @@ -21,10 +21,11 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../jrd/common.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/gds_proto.h" static SCHAR recv_items[] = { gds__info_svc_to_eof }; diff --git a/src/utilities/sbc_print.cpp b/src/utilities/sbc_print.cpp index cddd2b760d..714b5744f9 100644 --- a/src/utilities/sbc_print.cpp +++ b/src/utilities/sbc_print.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include diff --git a/src/utilities/security.epp b/src/utilities/security.epp index e707a994d0..7fdd6913a3 100644 --- a/src/utilities/security.epp +++ b/src/utilities/security.epp @@ -22,11 +22,12 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include #include "../jrd/common.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/pwd.h" #include "../jrd/enc_proto.h" #include "../jrd/gds_proto.h" diff --git a/src/utilities/services.cpp b/src/utilities/services.cpp index 508a89b797..e986a04499 100644 --- a/src/utilities/services.cpp +++ b/src/utilities/services.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include "../jrd/common.h" diff --git a/src/utilities/srvrmgr.cpp b/src/utilities/srvrmgr.cpp index 720c3cc437..70bb21fe3a 100644 --- a/src/utilities/srvrmgr.cpp +++ b/src/utilities/srvrmgr.cpp @@ -20,9 +20,10 @@ * * All Rights Reserved. * Contributor(s): ______________________________________. - * $Id: srvrmgr.cpp,v 1.1.1.1 2001-05-23 13:26:41 tamlin Exp $ + * $Id: srvrmgr.cpp,v 1.2 2001-07-29 23:43:24 skywalker Exp $ */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include @@ -33,7 +34,7 @@ #include "../jrd/common.h" -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../jrd/gdsassert.h" #include "../jrd/svc_undoc.h" #include "../utilities/ibmgr.h" diff --git a/src/utilities/util.cpp b/src/utilities/util.cpp index 496a25ddfe..e70967b431 100644 --- a/src/utilities/util.cpp +++ b/src/utilities/util.cpp @@ -21,9 +21,10 @@ * Contributor(s): ______________________________________. */ /* -$Id: util.cpp,v 1.1.1.1 2001-05-23 13:26:41 tamlin Exp $ +$Id: util.cpp,v 1.2 2001-07-29 23:43:24 skywalker Exp $ */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include diff --git a/src/utilities/v2_dmp.cpp b/src/utilities/v2_dmp.cpp index 0e7c9b8ea8..ba65a7f043 100644 --- a/src/utilities/v2_dmp.cpp +++ b/src/utilities/v2_dmp.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/jrd.h" #include "../jrd/cch.h" #include "../jrd/pag.h" diff --git a/src/v5_examples/empbld.sql b/src/v5_examples/empbld.sql index 0575f8abf9..16f46d7e26 100644 --- a/src/v5_examples/empbld.sql +++ b/src/v5_examples/empbld.sql @@ -17,7 +17,8 @@ * Contributor(s): ______________________________________. */ set sql dialect 1; -create database 'employee.gdb'; +/* create database 'employee.gdb'; */ +create database 'empbuild.gdb'; show version; input empddl.sql; quit; diff --git a/src/v5_examples/empbuild.c b/src/v5_examples/empbuild.c index 025c29e4eb..f865e86627 100644 --- a/src/v5_examples/empbuild.c +++ b/src/v5_examples/empbuild.c @@ -25,8 +25,17 @@ #include #include #include -#include "../jrd/common.h" -#include "../jrd/gds.h" +//#include "../jrd/common.h" + +#include "gds.h" + +/* Some #defines that are used in the program - they actually come from + jrd/common.h but should not be exposed externally with those name so + are reproduced here MOD 15-07-2001 +*/ +/* typedef char TEXT; */ +#define FINI_OK 0 +#define FINI_ERROR 44 /* ** Empbuild.e GPRE with manual switch, since it creates the database @@ -183,7 +192,7 @@ static char /*EXEC SQL SET DATABASE DB = COMPILETIME "empbuild.gdb" RUNTIME :Db_name;*/ -main ( +int main ( int argc, char *argv[]) { diff --git a/src/v5_examples/intlbld.sql b/src/v5_examples/intlbld.sql index 43691143c6..4e12c094bb 100644 --- a/src/v5_examples/intlbld.sql +++ b/src/v5_examples/intlbld.sql @@ -17,7 +17,8 @@ * Contributor(s): ______________________________________. */ set sql dialect 1; -create database 'intlemp.gdb' default character set iso8859_1; +/*create database 'intlemp.gdb' default character set iso8859_1; */ +create database 'intlbuild.gdb' default character set iso8859_1; show version; input intlddl.sql; quit; diff --git a/src/v5_examples/intlddl.sql b/src/v5_examples/intlddl.sql index b7045552dd..1610ef4ce2 100644 --- a/src/v5_examples/intlddl.sql +++ b/src/v5_examples/intlddl.sql @@ -36,6 +36,7 @@ ** - Added 4 sorting stored procedures--may be changed in next build. **/ +/* set echo; */ /* * Define domains. diff --git a/src/wal/driver.cpp b/src/wal/driver.cpp index 45dd9f779d..7221d626de 100644 --- a/src/wal/driver.cpp +++ b/src/wal/driver.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include diff --git a/src/wal/wal.cpp b/src/wal/wal.cpp index b6859b82b9..0e89471ba2 100644 --- a/src/wal/wal.cpp +++ b/src/wal/wal.cpp @@ -21,13 +21,14 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include "../jrd/time.h" #include "../jrd/common.h" #include "../jrd/jrd.h" #include "../wal/wal.h" #include "../jrd/jrn.h" -#include "../jrd/codes.h" +#include "gen/codes.h" #include "../wal/wal_proto.h" #include "../wal/walc_proto.h" #include "../jrd/gds_proto.h" @@ -1088,7 +1089,7 @@ static SSHORT fork_writer( STATUS * status_vector, WAL WAL_handle) if (gds__thread_start (reinterpret_cast < FPTR_INT_VOID_PTR > (main_walw), argv, 0, 0, 0)) { WALC_release(WAL_handle); - IBERR_build_status(status_vector, gds__bug_check, + IBERR_build_status(status_vector, gds_bug_check, gds_arg_string, "cannot start thread", 0); return FAILURE; } @@ -1544,7 +1545,7 @@ static SSHORT sync_with_wal_writer( STATUS * status_vector, WAL WAL_handle) } if (done != SUCCESS) - WAL_ERROR(status_vector, gds__wal_err_ww_sync, + WAL_ERROR(status_vector, gds_wal_err_ww_sync, WAL_handle->wal_dbname); return done; diff --git a/src/wal/wal.h b/src/wal/wal.h index 8c4f5751bc..385bf937fe 100644 --- a/src/wal/wal.h +++ b/src/wal/wal.h @@ -485,7 +485,7 @@ typedef struct walrs { #define WAL_CHECK_BUG(WAL_handle, WAL_segment) if (WAL_segment->wals_flags & WALS_BUG_HAPPENED) \ { \ - IBERR_build_status (status_vector, gds__wal_subsys_corrupt, \ + IBERR_build_status (status_vector, gds_wal_subsys_corrupt, \ gds_arg_gds, WAL_segment->wals_last_bug, 0); \ WALC_release(WAL_handle); \ return FAILURE; \ @@ -494,10 +494,10 @@ typedef struct walrs { #define WAL_CHECK_BUG_ERROR(WAL_handle, WAL_segment) if (WAL_segment->wals_flags & WALS_BUG_OR_ERROR_HAPPENED) \ { \ if (WAL_segment->wals_flags & WALS_BUG_HAPPENED) \ - IBERR_build_status (status_vector, gds__wal_subsys_corrupt, \ + IBERR_build_status (status_vector, gds_wal_subsys_corrupt, \ gds_arg_gds, WAL_segment->wals_last_bug, 0); \ else \ - IBERR_build_status (status_vector, gds__wal_subsys_error, \ + IBERR_build_status (status_vector, gds_wal_subsys_error, \ gds_arg_gds, WAL_segment->wals_last_err, 0); \ WALC_release(WAL_handle); \ return FAILURE; \ diff --git a/src/wal/wal_prnt.cpp b/src/wal/wal_prnt.cpp index d8a39f272b..13242e809e 100644 --- a/src/wal/wal_prnt.cpp +++ b/src/wal/wal_prnt.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include #include "../wal/wal.h" diff --git a/src/wal/walc.cpp b/src/wal/walc.cpp index 5c30c81e7d..fc6c422fbe 100644 --- a/src/wal/walc.cpp +++ b/src/wal/walc.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include "../jrd/time.h" #include "../jrd/jrd.h" @@ -30,7 +31,7 @@ #include "../jrd/jrn.h" #include "../jrd/flags.h" #include "../jrd/isc_signal.h" -#include "../jrd/codes.h" +#include "gen/codes.h" #include "../jrd/llio.h" #include "../wal/walc_proto.h" #include "../wal/walf_proto.h" @@ -212,7 +213,7 @@ SSHORT WALC_bug( STATUS * status_vector, TEXT * dbname, TEXT * string) **************************************/ STATUS local_status[20]; - IBERR_build_status(local_status, gds__wal_bugcheck, + IBERR_build_status(local_status, gds_wal_bugcheck, gds_arg_string, dbname, gds_arg_number, (SLONG) getpid(), gds_arg_string, string, 0); @@ -220,7 +221,7 @@ SSHORT WALC_bug( STATUS * status_vector, TEXT * dbname, TEXT * string) gds__print_status(local_status); if (status_vector) { - IBERR_build_status(status_vector, gds__bug_check, + IBERR_build_status(status_vector, gds_bug_check, gds_arg_string, string, 0); return FAILURE; } @@ -437,7 +438,7 @@ SSHORT WALC_init(STATUS * status_vector, /* NOMEM: return error status, FREE: error returns & WAL_fini() */ if (!wal) { status_vector[0] = gds_arg_gds; - status_vector[1] = gds__virmemexh; + status_vector[1] = gds_virmemexh; status_vector[2] = gds_arg_end; return FAILURE; } @@ -449,7 +450,7 @@ SSHORT WALC_init(STATUS * status_vector, (void(*)(void *, sh_mem *, int))wal_init_routine, (void *) &wal_args, length, &wal->wal_shmem_data)) == NULL) { - WAL_ERROR_APPEND(status_vector, gds__wal_illegal_attach, dbname); + WAL_ERROR_APPEND(status_vector, gds_wal_illegal_attach, dbname); WALC_save_status_strings(status_vector); gds__free((SLONG *) wal); return FAILURE; @@ -839,7 +840,7 @@ static SSHORT setup_wal_params( default: sprintf(err_buffer, "%d", (int) *(p - 1)); - WAL_ERROR(status_vector, gds__wal_invalid_wpb, err_buffer); + WAL_ERROR(status_vector, gds_wal_invalid_wpb, err_buffer); WALC_save_status_strings(status_vector); return FAILURE; } @@ -902,7 +903,7 @@ static SSHORT setup_wal_params( if (wal_args->walc_log_names_count && wal_args->walc_log_rr_files_info) { /* First make sure that an overflow log file specification is provided */ if (!wal_args->walc_log_ovflow_file_info) { - IBERR_build_status(status_vector, gds__wal_ovflow_log_required, + IBERR_build_status(status_vector, gds_wal_ovflow_log_required, 0); return FAILURE; } diff --git a/src/wal/walf.cpp b/src/wal/walf.cpp index cbdb081c68..4a1fd0d5b5 100644 --- a/src/wal/walf.cpp +++ b/src/wal/walf.cpp @@ -21,8 +21,9 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include -#include "../include/jrd/gds.h" +#include "../jrd/gds.h" #include "../wal/wal.h" #include "../jrd/dsc.h" #include "../jrd/llio.h" diff --git a/src/wal/walr.cpp b/src/wal/walr.cpp index 7d62b371f0..8efc1207f7 100644 --- a/src/wal/walr.cpp +++ b/src/wal/walr.cpp @@ -21,9 +21,10 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include #include "../wal/wal.h" -#include "../jrd/codes.h" +#include "gen/codes.h" #include "../jrd/llio.h" #include "../wal/walf_proto.h" #include "../wal/walr_proto.h" @@ -163,7 +164,7 @@ SSHORT WALR_get(STATUS * status_vector, if (reclen > remaining_logrec_bytes) { /* The record is incomplete */ - WAL_FORMAT_ERROR(status_vector, gds__logr_incomplete, + WAL_FORMAT_ERROR(status_vector, gds_logr_incomplete, WALR_handle->walr_logname, *log_offset); return FAILURE; } @@ -429,7 +430,7 @@ static SSHORT log_open( IO_ERR_RETURN; if (read_len < (offset - sector_offset + REC_HDROVHD)) - FORMAT_ERR_RETURN(gds__logr_header_small, offset) + FORMAT_ERR_RETURN(gds_logr_header_small, offset) if (memcmp(log_terminator_block, sector_bytes, REC_HDROVHD) == 0) { @@ -463,7 +464,7 @@ static SSHORT log_open( } if (read_len < BLK_HDROVHD) - FORMAT_ERR_RETURN(gds__logb_small, blk_offset) + FORMAT_ERR_RETURN(gds_logb_small, blk_offset) memcpy((SCHAR *) & blkhdr, sector_bytes, BLK_HDROVHD); @@ -630,7 +631,7 @@ static SSHORT read_next_block( STATUS * status_vector, WALRS WALRS_handle) WALR_handle->walr_log_header->walfh_hibsn) { /* unexpected end of log file. */ - WAL_FORMAT_ERROR(status_vector, gds__logf_unexpected_eof, + WAL_FORMAT_ERROR(status_vector, gds_logf_unexpected_eof, WALR_handle->walr_logname, WALR_handle->walr_offset); return FAILURE; diff --git a/src/wal/walw.cpp b/src/wal/walw.cpp index 9df35c862f..8e65494476 100644 --- a/src/wal/walw.cpp +++ b/src/wal/walw.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../jrd/ib_stdio.h" #include #include @@ -32,7 +33,7 @@ #include "../jrd/jrn.h" #include "../jrd/iberr.h" #include "../jrd/llio.h" -#include "../jrd/codes.h" +#include "gen/codes.h" #include "../jrd/license.h" #include "../wal/wal_proto.h" #include "../wal/walc_proto.h" @@ -122,7 +123,7 @@ typedef struct walwl { #define WALW_WRITER_TIMEOUT_USECS 3000000 #define WALW_DISABLING_JRN 1 #define MAXLOGS 32 -#define WALW_ERROR(status_vector) IBERR_build_status (status_vector, gds__walw_err, 0) +#define WALW_ERROR(status_vector) IBERR_build_status (status_vector, gds_walw_err, 0) #define ENV ((WALWL)WAL_handle->wal_local_info_ptr)->walwl_env #define LOG_FD ((WALWL)WAL_handle->wal_local_info_ptr)->walwl_log_fd @@ -422,7 +423,7 @@ SSHORT WALW_writer(STATUS * status_vector, WAL WAL_handle) &WAL_segment->wals_log_partition_offset, &log_type) != SUCCESS) report_walw_bug_or_error(status_vector, WAL_handle, FAILURE, - (STATUS) gds__wal_err_rollover2); + (STATUS) gds_wal_err_rollover2); } if (strlen(WAL_segment->wals_jrn_dirname)) @@ -458,7 +459,7 @@ SSHORT WALW_writer(STATUS * status_vector, WAL WAL_handle) if (ret != SUCCESS) { report_walw_bug_or_error(status_vector, WAL_handle, ret, - (STATUS) gds__wal_err_setup); + (STATUS) gds_wal_err_setup); if (JOURNAL_HANDLE) JRN_fini(status_vector, &(JOURNAL_HANDLE)); WALW_WRITER_RETURN(ret); @@ -526,7 +527,7 @@ SSHORT WALW_writer(STATUS * status_vector, WAL WAL_handle) SUCCESS) report_walw_bug_or_error(status_vector, WAL_handle, ret, (STATUS) - gds__wal_err_logwrite); + gds_wal_err_logwrite); WALC_acquire(WAL_handle, &WAL_segment); acquired = TRUE; @@ -675,7 +676,7 @@ static void close_log( if ((ret = write_log_header_and_reposition(status_vector, logname, LOG_FD, log_header)) != SUCCESS) report_walw_bug_or_error(status_vector, WAL_handle, ret, - (STATUS) gds__wal_err_logwrite); + (STATUS) gds_wal_err_logwrite); LLIO_close(0, LOG_FD); if (PRINT_DEBUG_MSGS) { @@ -704,7 +705,7 @@ static void close_log( if (ret != SUCCESS) report_walw_bug_or_error(status_vector, WAL_handle, ret, - (STATUS) gds__wal_err_jrn_comm); + (STATUS) gds_wal_err_jrn_comm); } } @@ -896,7 +897,7 @@ static SSHORT flush_all_buffers( STATUS * status_vector, WAL WAL_handle) WAL_segment->wals_logname, LOG_FD)) != SUCCESS) { report_walw_bug_or_error(status_vector, WAL_handle, ret, - gds__wal_err_logwrite); + gds_wal_err_logwrite); return FAILURE; } release_wal_block(WAL_segment, wblk); @@ -1394,16 +1395,16 @@ static SSHORT increase_buffers( &WAL_handle->wal_shmem_data, new_wal_length, TRUE); - if (status_vector[1] == gds__unavailable) { + if (status_vector[1] == gds_unavailable) { WAL_segment = WAL_handle->wal_segment; WAL_segment->wals_flags2 |= WALS2_CANT_EXPAND; return SUCCESS; } if (WAL_segment == (WALS) NULL) { - WAL_ERROR(status_vector, gds__wal_cant_expand, DBNAME); + WAL_ERROR(status_vector, gds_wal_cant_expand, DBNAME); WAL_handle->wal_segment = NULL; report_walw_bug_or_error(status_vector, WAL_handle, FAILURE, - (STATUS) gds__wal_err_expansion); + (STATUS) gds_wal_err_expansion); } old_num_buffers = WAL_segment->wals_maxbufs; @@ -1469,7 +1470,7 @@ static SSHORT init_raw_partitions( STATUS * status_vector, WAL WAL_handle) logf->logf_partitions); if (ret_val != SUCCESS) report_walw_bug_or_error(status_vector, WAL_handle, ret_val, - (STATUS) gds__wal_err_logwrite); + (STATUS) gds_wal_err_logwrite); } } @@ -1519,7 +1520,7 @@ static SSHORT journal_connect( STATUS * status_vector, WAL WAL_handle) WAL_segment->wals_flags |= WALS_JOURNAL_ENABLED; else report_walw_bug_or_error(status_vector, WAL_handle, ret, - (STATUS) gds__wal_err_jrn_comm); + (STATUS) gds_wal_err_jrn_comm); return ret; } @@ -1609,7 +1610,7 @@ static SSHORT journal_enable( STATUS * status_vector, WAL WAL_handle) if (ret != SUCCESS) { WAL_segment->wals_flags &= ~WALS_JOURNAL_ENABLED; report_walw_bug_or_error(status_vector, WAL_handle, ret, - (STATUS) gds__wal_err_jrn_comm); + (STATUS) gds_wal_err_jrn_comm); } else { WAL_segment->wals_flags &= ~WALS_ENABLE_JOURNAL; @@ -1809,9 +1810,9 @@ static SSHORT rollover_log( log_type = 0L; if (get_next_logname(status_vector, WAL_segment, new_logname, &new_log_partition_offset, &log_type) != SUCCESS) { - WAL_ERROR_APPEND(status_vector, gds__wal_err_rollover, new_logname); + WAL_ERROR_APPEND(status_vector, gds_wal_err_rollover, new_logname); report_walw_bug_or_error(status_vector, WAL_handle, FAILURE, - gds__wal_err_rollover2); + gds_wal_err_rollover2); ROLLOVER_LOG_RETURN(FAILURE); } @@ -1882,7 +1883,7 @@ static SSHORT rollover_log( if (ret != SUCCESS) report_walw_bug_or_error(status_vector, WAL_handle, ret, - gds__wal_err_jrn_comm); + gds_wal_err_jrn_comm); } WAL_segment->wals_flags |= WALS_ROLLOVER_HAPPENED; @@ -1896,7 +1897,7 @@ static SSHORT rollover_log( } else { report_walw_bug_or_error(status_vector, WAL_handle, ret, - gds__wal_err_rollover2); + gds_wal_err_rollover2); ROLLOVER_LOG_RETURN(FAILURE); } } @@ -2117,12 +2118,12 @@ SCHAR * prev_logname, SLONG prev_log_partition_offset, SSHORT * takeover) } else if (read_len < sizeof(struct walfh)) { LLIO_close(0, log_fd); - WAL_ERROR(status_vector, gds__logh_small, logname); + WAL_ERROR(status_vector, gds_logh_small, logname); return FAILURE; } else if (log_header->walfh_version != WALFH_VERSION) { LLIO_close(0, log_fd); - WAL_ERROR(status_vector, gds__logh_inv_version, logname); + WAL_ERROR(status_vector, gds_logh_inv_version, logname); return FAILURE; } else if (log_header->walfh_flags & WALFH_OPEN) { @@ -2145,7 +2146,7 @@ SCHAR * prev_logname, SLONG prev_log_partition_offset, SSHORT * takeover) if (strlen(log_header->walfh_next_logname) != 0) { LLIO_close(0, log_fd); - WAL_ERROR(status_vector, gds__logh_open_flag, logname); + WAL_ERROR(status_vector, gds_logh_open_flag, logname); return FAILURE; } } @@ -2156,7 +2157,7 @@ SCHAR * prev_logname, SLONG prev_log_partition_offset, SSHORT * takeover) 'valid looking' block. */ LLIO_close(0, log_fd); - WAL_ERROR(status_vector, gds__logh_open_flag2, logname); + WAL_ERROR(status_vector, gds_logh_open_flag2, logname); return FAILURE; } } diff --git a/src/wal/walw_main.cpp b/src/wal/walw_main.cpp index 12832245ee21e364640cb67f2ceba64cff03187c..1e868c16cdeee1a58eb51bf716b1809763d0f1e9 100644 GIT binary patch delta 32 ncmaFH^p8n`OF1(yIj1xwRY55&vnVwwvnWL`Ly3!PLmDFhx55g3 delta 8 Pcmeyz^o(hvL>eOi5lsUb diff --git a/src/wal/wstatus.cpp b/src/wal/wstatus.cpp index 1085a162a2..505daffde5 100644 --- a/src/wal/wstatus.cpp +++ b/src/wal/wstatus.cpp @@ -21,6 +21,7 @@ * Contributor(s): ______________________________________. */ +#include "firebird.h" #include "../wal/wal.h" #include "../wal/walc_proto.h" #ifdef NETWARE_386