/* * 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.23 2004-04-10 00:25:18 robocop 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 " " const char BLANK = '\040'; const char DBL_QUOTE = '\042'; const char 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