/* * PROGRAM: Interactive SQL utility * MODULE: isql.h * DESCRIPTION: Component wide include file * * 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): ______________________________________. * $Id: isql.h,v 1.19 2003-12-27 17:59:57 fsg Exp $ * Revision 1.2 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 * Apparently this has to be done in show.e also, * but that is for another day :-) * * 2002.10.30 Sean Leyne - Removed support for obsolete "PC_PLATFORM" define * */ #ifndef ISQL_ISQL_H #define ISQL_ISQL_H #include "../jrd/flags.h" #include /* Define lengths used in isql.e */ /* Increased this to allow display of somewhat lengthy plans hope this will last a year or so :-) FSG 17.Nov.2000 */ #define PRINT_BUFFER_LENGTH 2048 #define MAXTERM_LENGTH 32 /* SQL termination character */ #define USER_LENGTH 128 #define PASSWORD_LENGTH 128 #define ROLE_LENGTH 128 /* these constants are purely idiotic; there's no point in having a predefined constant with no meaning, but that's Ed Simon the master programmer for you! */ #define BUFFER_LENGTH128 128 #define BUFFER_LENGTH155 155 #define BUFFER_LENGTH256 256 #define BUFFER_LENGTH360 360 #define BUFFER_LENGTH400 400 #define BUFFER_LENGTH512 512 #define BUFFER_LENGTH80 80 #define BUFFER_LENGTH60 60 #define BUFFER_LENGTH120 120 #define BUFFER_LENGTH180 180 /* Define the possible states of processing commands */ enum processing_state { FOUND_EOF = EOF, CONT = 0, EXIT = 1, BACKOUT = 2, ERR = 3, END = 4, SKIP = 5, FAIL = 6, EXTRACT = 7, EXTRACTALL = 8, FETCH = 9, OBJECT_NOT_FOUND = 53 // See NOT_FOUND below, solves compilation problem. }; /* Which blob subtypes to print */ #define ALL_BLOBS -2 #define NO_BLOBS -1 /* Flag to decode all vs sql only objects */ #define SQL_objects 0 #define ALL_objects 1 #define WORDLENGTH 32 #define DEFTERM ";" #define DEFCHARSET "NONE" #define NULL_DISP_LEN 6 /* Error codes */ #define MSG_LENGTH 256 #define ISQL_MSG_FAC 17 #define GEN_ERR 0 /* General non-zero SQLCODE error */ #define USAGE1 1 /* Usage message 1 */ #define SWITCH 2 /* Bad command line arg */ #define NO_DB 3 /* No database specified */ #define FILE_OPEN_ERR 4 /* Can't open specified file */ #define COMMIT_PROMPT 5 /* Commit or rollback question */ #define COMMIT_MSG 6 /* Committing ... */ #define ROLLBACK_MSG 7 /* Rolling back */ #define CMD_ERR 8 /* Unknown frontend command */ #define ADD_PROMPT 9 /* Prompt for add function */ #define VERSION 10 /* Version string for -z */ #define USAGE2 11 /* Usage message 2 */ #define NUMBER_PAGES 12 /* Number of DB pages allocated = %d \n */ #define SWEEP_INTERV 13 /* Sweep interval = %d \n */ #define NUM_WAL_BUFF 14 /* Number of wal buffers = %d \n */ #define WAL_BUFF_SIZE 15 /* Wal buffer size = %d \n */ #define CKPT_LENGTH 16 /* Check point length = %d \n */ #define CKPT_INTERV 17 /* Check point interval = %d \n */ #define WAL_GRPC_WAIT 18 /* Wal group commit wait = %d \n */ #define BASE_LEVEL 19 /* Base level = %d \n */ #define LIMBO 20 /* Transaction in limbo = %d \n */ /* Help list */ #define HLP_FRONTEND 21 /* Frontend commands:\n */ #define HLP_BLOBVIEW 22 /* BLOBVIEW [] -- edit a blob\n */ #define HLP_BLOBDMP 23 /* BLOBDUMP -- dump blob to a file\n */ #define HLP_EDIT 24 /* EDIT [] -- edit and read a SQL file\n\tWithout file name, edits current command buffer\n */ #define HLP_INPUT 25 /* INput -- enter a named SQL file\n */ #define HLP_OUTPUT 26 /* OUTput [] -- write output to named file\n */ #define HLP_SHELL 27 /* SHELL -- execute command shell\n */ #define HLP_HELP 28 /* HELP -- Displays this menu\n */ #define HLP_SETCOM 29 /* "Set commands: " */ #define HLP_SET 30 /* \tSET -- Display current options \n */ #define HLP_SETAUTO 31 /* \tSET AUTOcommit -- toggle autocommit of DDL statments\n */ #define HLP_SETBLOB 32 /* \tSET BLOBdisplay [ALL|N]-- Display blobs of type N\n\t SET BLOB turns off blob display\n */ #define HLP_SETCOUNT 33 /* \tSET COUNT -- toggle count of selected rows on/off \n */ #define HLP_SETECHO 34 /* \tSET ECHO -- toggle command echo on/off \n */ #define HLP_SETSTAT 35 /* \tSET STATs -- toggles performance statistics display\n */ #define HLP_SETTERM 36 /* \tSET TERM -- changes termination character\n */ #define HLP_SHOW 37 /* SHOW [] -- displays information on metadata\n */ #define HLP_OBJTYPE 38 /* " = 'DB', 'TABLE', 'PROCedure', 'INDEX',\n 'GRANT', 'DOMAIN', 'VERSION'\n" */ #define HLP_EXIT 39 /* EXIT -- Exit program and commit changes\n */ #define HLP_QUIT 40 /* QUIT -- Exit program and rollback changes\n\n */ #define HLP_ALL 41 /* All commands may be abbreviated to letters in CAPs\n */ #define HLP_SETSCHEMA 42 /* \tSET SCHema/DB -- changes current database\n */ #define YES_ANS 43 /* Yes */ #define REPORT1 44 /* Current memory = !c\nDelta memory = !d\nMax memory = !x\nElapsed time= !e sec\n */ #if (defined WIN_NT) #define REPORT2 93 /* Buffers = !b\nReads = !r\nWrites = !w\nFetches = !f\n */ #else #define REPORT2 45 /* Cpu = !u sec\nBuffers = !b\nReads = !r\nWrites = !w\nFetches = !f\n */ #endif #define BLOB_SUBTYPE 46 /* Blob display set to subtype %d. This blob: subtype = %d\n */ #define BLOB_PROMPT 47 /* Blob: %s, type 'edit' or filename to load> */ #define DATE_PROMPT 48 /* Enter %s as M/D/Y> */ #define NAME_PROMPT 49 /* Enter %s> */ #define DATE_ERR 50 /* Bad date %s\n */ #define CON_PROMPT 51 /* "CON> " */ #define HLP_SETLIST 52 /* \tSET LIST -- toggles column or table display\n */ #define NOT_FOUND 53 /* %s not found\n */ #define COPY_ERR 54 /* Errors occured(possibly duplicate domains) in creating %s in %s\n" */ #define SERVER_TOO_OLD 55 /* Server version too old to support the isql command */ #define REC_COUNT 56 /* Total returned: %ld */ #define UNLICENSED 57 /* Unlicensed for database "%s" */ #define HLP_SETWIDTH 58 /* \tSET WIDTH [] --sets/unsets print width for column name */ #define HLP_SETPLAN 59 /* Toggle display of query access plan */ #define HLP_SETTIME 60 /* Toggle display of timestamp with DATE values */ #define HLP_EDIT2 61 /* edits current command buffer\n */ #define HLP_OUTPUT2 62 /* \tWithout file name, returns output to ib_stdout\n */ #define HLP_SETNAMES 63 /* Set current character set */ #define HLP_OBJTYPE2 64 /* More objects */ #define HLP_SETBLOB2 65 /* \t SET BLOB turns off blob display\n */ #define HLP_SET_ROOT 66 /* (Use HELP SET for set options) */ #define NO_TABLES 67 /* There are no tables in this database */ #define NO_TABLE 68 /* There is no table %s in this database */ #define NO_VIEWS 69 /* There are no views in this database */ #define NO_VIEW 70 /* There is no view %s in this database */ #define NO_INDICES_ON_REL 71 /* There are no indices on table %s in this database */ #define NO_REL_OR_INDEX 72 /* There is no table or index %s in this database */ #define NO_INDICES 73 /* There are no indices in this database */ #define NO_DOMAIN 74 /* There is no domain %s in this database */ #define NO_DOMAINS 75 /* There are no domains in this database */ #define NO_EXCEPTION 76 /* There is no exception %s in this database */ #define NO_EXCEPTIONS 77 /* There are no exceptions in this database */ #define NO_FILTER 78 /* There is no filter %s in this database */ #define NO_FILTERS 79 /* There are no filters in this database */ #define NO_FUNCTION 80 /* There is no user-defined function %s in this database */ #define NO_FUNCTIONS 81 /* There are no user-defined functions in this database */ #define NO_GEN 82 /* There is no generator %s in this database */ #define NO_GENS 83 /* There are no generators in this database */ #define NO_GRANT_ON_REL 84 /* There is no privilege granted on table %s in this database */ #define NO_GRANT_ON_PROC 85 /* There is no privilege granted on stored procedure %s in this database */ #define NO_REL_OR_PROC 86 /* There is no table or stored procedure %s in this database */ #define NO_PROC 87 /* There is no stored procedure %s in this database */ #define NO_PROCS 88 /* There are no stored procedures in this database */ #define NO_TRIGGERS_ON_REL 89 /* There are no triggers on table %s in this database */ #define NO_REL_OR_TRIGGER 90 /* There is no table or trigger %s in this database */ #define NO_TRIGGERS 91 /* There are no triggers in this database */ #define NO_CHECKS_ON_REL 92 /* There are no check constraints on table %s in this database */ #define BUFFER_OVERFLOW 94 /* An isql command exceeded maximum buffer size */ #ifdef SCROLLABLE_CURSORS #define HLP_SETFETCH 95 /* \tSET AUTOfetch -- toggle autofetch of records\n */ #endif #define NO_ROLES 95 /* There are no roles in this database */ #define NO_REL_OR_PROC_OR_ROLE 96 /* There is no table, stored procedure, or role %s in this database */ #define NO_GRANT_ON_ROL 97 /* There is no membership privilege granted on %s in this database */ #define UNEXPECTED_EOF 98 /* Expected end of statement, encountered EOF */ #define TIME_ERR 101 /* Bad TIME: %s\n */ #define HLP_OBJTYPE3 102 /* Some more objects */ #define NO_ROLE 103 #define USAGE3 104 /* Usage message 3 */ #define INCOMPLETE_STR 105 /* Incomplete string in %s */ #define HLP_SETSQLDIALECT 106 /* \tSET SQL DIALECT -- set sql dialect to */ #define NO_GRANT_ON_ANY 107 /* There is no privilege granted in this database. */ #define HLP_SETPLANONLY 108 /* Toggle display of query plan without executing */ #ifndef DEBUG #define Trace 0 #endif #ifdef DEBUG #define Trace 1 #endif #ifdef ISQL_MAIN #define EXTERN #else #define EXTERN extern #endif /* Utility transaction handle */ EXTERN isc_tr_handle M__trans; EXTERN isc_tr_handle D__trans; EXTERN isc_stmt_handle global_Stmt; EXTERN IB_FILE *Ofp, *Out, *Ifp, *Errfp; EXTERN SCHAR global_Term[MAXTERM_LENGTH]; EXTERN SCHAR global_Db_name[128]; EXTERN SCHAR global_Target_db[128]; EXTERN SCHAR User[128], Password[128], Role[128], Charset[128]; EXTERN SCHAR global_Numbufs[16]; /* # of cache buffers on connect */ EXTERN bool Merge_stderr; EXTERN USHORT SQL_dialect; EXTERN USHORT db_SQL_dialect; #undef EXTERN struct sqltypes { SSHORT type; SCHAR type_name[WORDLENGTH]; }; #define MAXSUBTYPES 8 /* Top of subtypes array */ #define SMALLINT 7 #define INTEGER 8 #define QUAD 9 #define FLOAT 10 #define FCHAR 14 #define DOUBLE_PRECISION 27 #define DATE 35 #define VARCHAR 37 #define CSTRING 40 #define BLOB_ID 45 #define BLOB 261 #ifdef VMS #include #define LIB$_INPSTRTRU 0x15821c #endif #ifdef UNIX #define UNIX_LINE 1 #endif #if (defined WIN_NT) #define UNIX_LINE 1 #define PC_FILE_SEEK #endif #ifdef SMALL_FILE_NAMES #define SCRATCH "fb_q" #else #define SCRATCH "fb_query_" #endif #ifndef STDERROUT #define STDERROUT(st,l) { ib_fprintf (Errfp, "%s", st);\ if (l) ib_fprintf (Errfp, "\n");\ ib_fflush (Errfp); } #endif #ifndef ISQL_ALLOC #define ISQL_ALLOC(x) gds__alloc (x) #endif #ifndef ISQL_FREE #define ISQL_FREE(x) {isc_free ((char*) x); x = NULL;} #endif #ifndef NEWLINE #define NEWLINE "\n" #endif #define TAB_AS_SPACES " " #define BLANK '\040' #define DBL_QUOTE '\042' #define SINGLE_QUOTE '\'' const SCHAR wal_items[] = { isc_info_num_wal_buffers, isc_info_wal_buffer_size, isc_info_wal_ckpt_length, isc_info_wal_grpc_wait_usecs, isc_info_end }; #endif /* ISQL_ISQL_H */