View | Details | Raw Unified
Collapse All | Expand All

(-) firebird-1.5.3.4870-orig/src/burp/burp.cpp (-2 / +2 lines)
 Lines 1606-1612    Link Here 
#ifndef WIN_NT
#ifndef WIN_NT
				signal(SIGPIPE, SIG_IGN);
				signal(SIGPIPE, SIG_IGN);
#endif
#endif
				fil->fil_fd = reinterpret_cast<DESC>(GBAK_STDOUT_DESC);
				fil->fil_fd = GBAK_STDOUT_DESC();
				break;
				break;
			}
			}
			else
			else
 Lines 1724-1730    Link Here 
	tdgbl->action->act_action = ACT_restore;
	tdgbl->action->act_action = ACT_restore;
	if (!strcmp(fil->fil_name, "stdin")) {
	if (!strcmp(fil->fil_name, "stdin")) {
		fil->fil_fd = reinterpret_cast<DESC>(GBAK_STDIN_DESC);
		fil->fil_fd = GBAK_STDIN_DESC();
		tdgbl->file_desc = fil->fil_fd;
		tdgbl->file_desc = fil->fil_fd;
		tdgbl->gbl_sw_files = fil->fil_next;
		tdgbl->gbl_sw_files = fil->fil_next;
	}
	}
(-) firebird-1.5.3.4870-orig/src/burp/std_desc.h (-4 / +25 lines)
 Lines 35-46    Link Here 
#include "firebird.h"
#include "firebird.h"
#ifdef WIN_NT
#ifdef WIN_NT
#include <windows.h>
#include <windows.h>
#define	GBAK_STDIN_DESC			GetStdHandle(STD_INPUT_HANDLE)	/* standart input  file descriptor */
#define	GBAK_STDOUT_DESC		GetStdHandle(STD_OUTPUT_HANDLE)	/* standart output file descriptor */
typedef HANDLE DESC;
static inline DESC GBAK_STDIN_DESC(void)
{
	return GetStdHandle(STD_INPUT_HANDLE); // standard input file descriptor 
}
static inline DESC GBAK_STDOUT_DESC(void)
{
	return GetStdHandle(STD_OUTPUT_HANDLE);	// standard output file descriptor
}
#else //WIN_NT
#else //WIN_NT
#define	GBAK_STDIN_DESC			(int)0	/* standart input  file descriptor */
#define	GBAK_STDOUT_DESC		(int)1	/* standart output file descriptor */
typedef int DESC;
static inline DESC GBAK_STDIN_DESC(void)
{
	return 0;	// standard input file descriptor 
}
static inline DESC GBAK_STDOUT_DESC(void)
{
	return 1;	// standard output file descriptor
}
#endif //WIN_NT
#endif //WIN_NT
#endif  //GBAK_STD_DESC_H
#endif  //GBAK_STD_DESC_H
(-) firebird-1.5.3.4870-orig/src/common/classes/alloc.h (-4 / +10 lines)
 Lines 241-263    Link Here 
void operator delete[](void* mem) throw();
void operator delete[](void* mem) throw();
#if  __GNUC__ < 4
#define STATIC_NEW static
#else
#define STATIC_NEW
#endif
#ifdef DEBUG_GDS_ALLOC
#ifdef DEBUG_GDS_ALLOC
static inline void* operator new(size_t s, Firebird::MemoryPool& pool, char* file, int line) {
STATIC_NEW inline void* operator new(size_t s, Firebird::MemoryPool& pool, char* file, int line) {
	return pool.allocate(s, 0, file, line);
	return pool.allocate(s, 0, file, line);
//	return pool.calloc(s, 0, file, line);
//	return pool.calloc(s, 0, file, line);
}
}
static inline void* operator new[](size_t s, Firebird::MemoryPool& pool, char* file, int line) {
STATIC_NEW inline void* operator new[](size_t s, Firebird::MemoryPool& pool, char* file, int line) {
	return pool.allocate(s, 0, file, line);
	return pool.allocate(s, 0, file, line);
//	return pool.calloc(s, 0, file, line);
//	return pool.calloc(s, 0, file, line);
}
}
#define FB_NEW(pool) new(pool,__FILE__,__LINE__)
#define FB_NEW(pool) new(pool,__FILE__,__LINE__)
#define FB_NEW_RPT(pool,count) new(pool,count,__FILE__,__LINE__)
#define FB_NEW_RPT(pool,count) new(pool,count,__FILE__,__LINE__)
#else
#else
static inline void* operator new(size_t s, Firebird::MemoryPool& pool) {
STATIC_NEW inline void* operator new(size_t s, Firebird::MemoryPool& pool) {
	return pool.allocate(s);
	return pool.allocate(s);
//	return pool.calloc(s);
//	return pool.calloc(s);
}
}
static inline void* operator new[](size_t s, Firebird::MemoryPool& pool) {
STATIC_NEW inline void* operator new[](size_t s, Firebird::MemoryPool& pool) {
	return pool.allocate(s);
	return pool.allocate(s);
//	return pool.calloc(s);
//	return pool.calloc(s);
}
}
(-) firebird-1.5.3.4870-orig/src/common/config/config.cpp (-25 / +25 lines)
 Lines 261-272    Link Here 
int Config::getSortMemBlockSize()
int Config::getSortMemBlockSize()
{
{
	return (int) sysConfig.values[KEY_SORT_MEM_BLOCK_SIZE];
	return (int)(IPTR) sysConfig.values[KEY_SORT_MEM_BLOCK_SIZE];
}
}
int Config::getSortMemUpperLimit()
int Config::getSortMemUpperLimit()
{
{
	return (int) sysConfig.values[KEY_SORT_MEM_UPPER_LIMIT];
	return (int)(IPTR) sysConfig.values[KEY_SORT_MEM_UPPER_LIMIT];
}
}
bool Config::getRemoteFileOpenAbility()
bool Config::getRemoteFileOpenAbility()
 Lines 276-287    Link Here 
int Config::getGuardianOption()
int Config::getGuardianOption()
{
{
	return (int) sysConfig.values[KEY_GUARDIAN_OPTION];
	return (int)(IPTR) sysConfig.values[KEY_GUARDIAN_OPTION];
}
}
int Config::getCpuAffinityMask()
int Config::getCpuAffinityMask()
{
{
	return (int) sysConfig.values[KEY_CPU_AFFINITY_MASK];
	return (int)(IPTR) sysConfig.values[KEY_CPU_AFFINITY_MASK];
}
}
bool Config::getOldParameterOrdering()
bool Config::getOldParameterOrdering()
 Lines 291-297    Link Here 
int Config::getTcpRemoteBufferSize()
int Config::getTcpRemoteBufferSize()
{
{
	return (int) sysConfig.values[KEY_TCP_REMOTE_BUFFER_SIZE];
	return (int)(IPTR) sysConfig.values[KEY_TCP_REMOTE_BUFFER_SIZE];
}
}
bool Config::getTcpNoNagle()
bool Config::getTcpNoNagle()
 Lines 301-337    Link Here 
int Config::getIpcMapSize()
int Config::getIpcMapSize()
{
{
	return (int) sysConfig.values[KEY_IPC_MAP_SIZE];
	return (int)(IPTR) sysConfig.values[KEY_IPC_MAP_SIZE];
}
}
int Config::getDefaultDbCachePages()
int Config::getDefaultDbCachePages()
{
{
	return (int) sysConfig.values[KEY_DEFAULT_DB_CACHE_PAGES];
	return (int)(IPTR) sysConfig.values[KEY_DEFAULT_DB_CACHE_PAGES];
}
}
int Config::getConnectionTimeout()
int Config::getConnectionTimeout()
{
{
	return (int) sysConfig.values[KEY_CONNECTION_TIMEOUT];
	return (int)(IPTR) sysConfig.values[KEY_CONNECTION_TIMEOUT];
}
}
int Config::getDummyPacketInterval()
int Config::getDummyPacketInterval()
{
{
	return (int) sysConfig.values[KEY_DUMMY_PACKET_INTERVAL];
	return (int)(IPTR) sysConfig.values[KEY_DUMMY_PACKET_INTERVAL];
}
}
int Config::getLockMemSize()
int Config::getLockMemSize()
{
{
	return (int) sysConfig.values[KEY_LOCK_MEM_SIZE];
	return (int)(IPTR) sysConfig.values[KEY_LOCK_MEM_SIZE];
}
}
int Config::getLockSemCount()
int Config::getLockSemCount()
{
{
	return (int) sysConfig.values[KEY_LOCK_SEM_COUNT];
	return (int)(IPTR) sysConfig.values[KEY_LOCK_SEM_COUNT];
}
}
int Config::getLockSignal()
int Config::getLockSignal()
{
{
	return (int) sysConfig.values[KEY_LOCK_SIGNAL];
	return (int)(IPTR) sysConfig.values[KEY_LOCK_SIGNAL];
}
}
bool Config::getLockGrantOrder()
bool Config::getLockGrantOrder()
 Lines 341-367    Link Here 
int Config::getLockHashSlots()
int Config::getLockHashSlots()
{
{
	return (int) sysConfig.values[KEY_LOCK_HASH_SLOTS];
	return (int)(IPTR) sysConfig.values[KEY_LOCK_HASH_SLOTS];
}
}
int Config::getLockAcquireSpins()
int Config::getLockAcquireSpins()
{
{
	return (int) sysConfig.values[KEY_LOCK_ACQUIRE_SPINS];
	return (int)(IPTR) sysConfig.values[KEY_LOCK_ACQUIRE_SPINS];
}
}
int Config::getEventMemSize()
int Config::getEventMemSize()
{
{
	return (int) sysConfig.values[KEY_EVENT_MEM_SIZE];
	return (int)(IPTR) sysConfig.values[KEY_EVENT_MEM_SIZE];
}
}
int Config::getDeadlockTimeout()
int Config::getDeadlockTimeout()
{
{
	return (int) sysConfig.values[KEY_DEADLOCK_TIMEOUT];
	return (int)(IPTR) sysConfig.values[KEY_DEADLOCK_TIMEOUT];
}
}
int Config::getSolarisStallValue()
int Config::getSolarisStallValue()
{
{
	return (int) sysConfig.values[KEY_SOLARIS_STALL_VALUE];
	return (int)(IPTR) sysConfig.values[KEY_SOLARIS_STALL_VALUE];
}
}
bool Config::getTraceMemoryPools()
bool Config::getTraceMemoryPools()
 Lines 371-377    Link Here 
int Config::getPrioritySwitchDelay()
int Config::getPrioritySwitchDelay()
{
{
	int rc = (int) sysConfig.values[KEY_PRIORITY_SWITCH_DELAY];
	int rc = (int)(IPTR) sysConfig.values[KEY_PRIORITY_SWITCH_DELAY];
	if (rc < 1)
	if (rc < 1)
		rc = 1;
		rc = 1;
	return rc;
	return rc;
 Lines 379-385    Link Here 
int Config::getDeadThreadsCollection()
int Config::getDeadThreadsCollection()
{
{
	int rc = (int) sysConfig.values[KEY_DEAD_THREADS_COLLECTION];
	int rc = (int)(IPTR) sysConfig.values[KEY_DEAD_THREADS_COLLECTION];
	if (rc < 1)
	if (rc < 1)
		rc = 1;
		rc = 1;
	return rc;
	return rc;
 Lines 387-393    Link Here 
int Config::getPriorityBoost()
int Config::getPriorityBoost()
{
{
	int rc = (int) sysConfig.values[KEY_PRIORITY_BOOST];
	int rc = (int)(IPTR) sysConfig.values[KEY_PRIORITY_BOOST];
	if (rc < 1)
	if (rc < 1)
		rc = 1;
		rc = 1;
	if (rc > 1000)
	if (rc > 1000)
 Lines 402-408    Link Here 
int Config::getRemoteServicePort()
int Config::getRemoteServicePort()
{
{
	return (int) sysConfig.values[KEY_REMOTE_SERVICE_PORT];
	return (int)(IPTR) sysConfig.values[KEY_REMOTE_SERVICE_PORT];
}
}
const char *Config::getRemotePipeName()
const char *Config::getRemotePipeName()
 Lines 417-433    Link Here 
int Config::getMaxUnflushedWrites()
int Config::getMaxUnflushedWrites()
{
{
	return (int) sysConfig.values[KEY_MAX_UNFLUSHED_WRITES];
	return (int)(IPTR) sysConfig.values[KEY_MAX_UNFLUSHED_WRITES];
}
}
int Config::getMaxUnflushedWriteTime()
int Config::getMaxUnflushedWriteTime()
{
{
	return (int) sysConfig.values[KEY_MAX_UNFLUSHED_WRITE_TIME];
	return (int)(IPTR) sysConfig.values[KEY_MAX_UNFLUSHED_WRITE_TIME];
}
}
int Config::getProcessPriorityLevel()
int Config::getProcessPriorityLevel()
{
{
	return (int) sysConfig.values[KEY_PROCESS_PRIORITY_LEVEL];
	return (int)(IPTR) sysConfig.values[KEY_PROCESS_PRIORITY_LEVEL];
}
}
bool Config::getCreateInternalWindow()
bool Config::getCreateInternalWindow()
 Lines 443-449    Link Here 
int Config::getRemoteAuxPort()
int Config::getRemoteAuxPort()
{
{
#ifdef SUPERSERVER
#ifdef SUPERSERVER
	return (int) sysConfig.values[KEY_REMOTE_AUX_PORT];
	return (int)(IPTR) sysConfig.values[KEY_REMOTE_AUX_PORT];
#else
#else
	return 0;
	return 0;
#endif
#endif
(-) firebird-1.5.3.4870-orig/src/dsql/parse.cpp (-15 / +15 lines)
 Lines 6421-6427    Link Here 
case 79:
case 79:
{ 
{ 
			lex.g_field->fld_dtype = dtype_cstring; 
			lex.g_field->fld_dtype = dtype_cstring; 
			lex.g_field->fld_character_length = (USHORT) yyvsp[-2]; }
			lex.g_field->fld_character_length = (USHORT)(IPTR) yyvsp[-2]; }
break;
break;
case 80:
case 80:
{ yyval = (DSQL_NOD) NULL; }
{ yyval = (DSQL_NOD) NULL; }
 Lines 7541-7567    Link Here 
case 507:
case 507:
{ 
{ 
			lex.g_field->fld_dtype = dtype_blob; 
			lex.g_field->fld_dtype = dtype_blob; 
			lex.g_field->fld_seg_length = (USHORT) yyvsp[-1];
			lex.g_field->fld_seg_length = (USHORT)(IPTR) yyvsp[-1];
			lex.g_field->fld_sub_type = 0;
			lex.g_field->fld_sub_type = 0;
			}
			}
break;
break;
case 508:
case 508:
{ 
{ 
			lex.g_field->fld_dtype = dtype_blob; 
			lex.g_field->fld_dtype = dtype_blob; 
			lex.g_field->fld_seg_length = (USHORT) yyvsp[-3];
			lex.g_field->fld_seg_length = (USHORT)(IPTR) yyvsp[-3];
			lex.g_field->fld_sub_type = (USHORT) yyvsp[-1];
			lex.g_field->fld_sub_type = (USHORT)(IPTR) yyvsp[-1];
			}
			}
break;
break;
case 509:
case 509:
{ 
{ 
			lex.g_field->fld_dtype = dtype_blob; 
			lex.g_field->fld_dtype = dtype_blob; 
			lex.g_field->fld_seg_length = 80;
			lex.g_field->fld_seg_length = 80;
			lex.g_field->fld_sub_type = (USHORT) yyvsp[-1];
			lex.g_field->fld_sub_type = (USHORT)(IPTR) yyvsp[-1];
			}
			}
break;
break;
case 510:
case 510:
{
{
			lex.g_field->fld_seg_length = (USHORT) yyvsp[0];
			lex.g_field->fld_seg_length = (USHORT)(IPTR) yyvsp[0];
		  	}
		  	}
break;
break;
case 511:
case 511:
 Lines 7571-7577    Link Here 
break;
break;
case 512:
case 512:
{
{
			lex.g_field->fld_sub_type = (USHORT) yyvsp[0];
			lex.g_field->fld_sub_type = (USHORT)(IPTR) yyvsp[0];
			}
			}
break;
break;
case 513:
case 513:
 Lines 7592-7598    Link Here 
case 517:
case 517:
{ 
{ 
			lex.g_field->fld_dtype = dtype_text; 
			lex.g_field->fld_dtype = dtype_text; 
			lex.g_field->fld_character_length = (USHORT) yyvsp[-1]; 
			lex.g_field->fld_character_length = (USHORT)(IPTR) yyvsp[-1]; 
			lex.g_field->fld_flags |= FLD_national;
			lex.g_field->fld_flags |= FLD_national;
			}
			}
break;
break;
 Lines 7606-7619    Link Here 
case 519:
case 519:
{ 
{ 
			lex.g_field->fld_dtype = dtype_varying; 
			lex.g_field->fld_dtype = dtype_varying; 
			lex.g_field->fld_character_length = (USHORT) yyvsp[-1]; 
			lex.g_field->fld_character_length = (USHORT)(IPTR) yyvsp[-1]; 
			lex.g_field->fld_flags |= FLD_national;
			lex.g_field->fld_flags |= FLD_national;
			}
			}
break;
break;
case 520:
case 520:
{ 
{ 
			lex.g_field->fld_dtype = dtype_text; 
			lex.g_field->fld_dtype = dtype_text; 
			lex.g_field->fld_character_length = (USHORT) yyvsp[-1]; 
			lex.g_field->fld_character_length = (USHORT)(IPTR) yyvsp[-1]; 
			}
			}
break;
break;
case 521:
case 521:
 Lines 7625-7631    Link Here 
case 522:
case 522:
{ 
{ 
			lex.g_field->fld_dtype = dtype_varying; 
			lex.g_field->fld_dtype = dtype_varying; 
			lex.g_field->fld_character_length = (USHORT) yyvsp[-1]; 
			lex.g_field->fld_character_length = (USHORT)(IPTR) yyvsp[-1]; 
			}
			}
break;
break;
case 531:
case 531:
 Lines 7705-7711    Link Here 
			    	lex.g_field->fld_dtype = dtype_long; 
			    	lex.g_field->fld_dtype = dtype_long; 
			    	lex.g_field->fld_length = sizeof (SLONG); 
			    	lex.g_field->fld_length = sizeof (SLONG); 
			    	}
			    	}
			lex.g_field->fld_precision = (USHORT) yyvsp[-1];
			lex.g_field->fld_precision = (USHORT)(IPTR) yyvsp[-1];
			}
			}
break;
break;
case 536:
case 536:
 Lines 7765-7772    Link Here 
			    	lex.g_field->fld_length = sizeof (SLONG); 
			    	lex.g_field->fld_length = sizeof (SLONG); 
			    	}
			    	}
			    }
			    }
			lex.g_field->fld_precision = (USHORT) yyvsp[-3];
			lex.g_field->fld_precision = (USHORT)(IPTR) yyvsp[-3];
			lex.g_field->fld_scale = - (SSHORT) yyvsp[-1];
			lex.g_field->fld_scale = - (SSHORT)(IPTR) yyvsp[-1];
			}
			}
break;
break;
case 539:
case 539:
 Lines 7932-7938    Link Here 
{ yyval = make_node (nod_table_lock, (int) 2, make_list (yyvsp[-1]), yyvsp[0]); }
{ yyval = make_node (nod_table_lock, (int) 2, make_list (yyvsp[-1]), yyvsp[0]); }
break;
break;
case 602:
case 602:
{ yyval = make_flag_node (nod_lock_mode, (SSHORT) ((SSHORT) yyvsp[-1] | (SSHORT) yyvsp[0]), (SSHORT) 0, NULL); }
{ yyval = make_flag_node (nod_lock_mode, (SSHORT) ((SSHORT)(IPTR) yyvsp[-1] | (SSHORT)(IPTR) yyvsp[0]), (SSHORT) 0, NULL); }
break;
break;
case 603:
case 603:
{ yyval = 0; }
{ yyval = 0; }
(-) firebird-1.5.3.4870-orig/src/gpre/c_cxx.cpp (-2 / +2 lines)
 Lines 2184-2190    Link Here 
	args.pat_database = (DBB) init->nod_arg[3];
	args.pat_database = (DBB) init->nod_arg[3];
	args.pat_vector1 = status_vector(action);
	args.pat_vector1 = status_vector(action);
	args.pat_long1 = (int) init->nod_arg[2];
	args.pat_long1 = (int)(IPTR) init->nod_arg[2];
	args.pat_value2 = (int) event_list->nod_count;
	args.pat_value2 = (int) event_list->nod_count;
//  generate call to dynamically generate event blocks 
//  generate call to dynamically generate event blocks 
 Lines 2255-2261    Link Here 
		event_init = (GPRE_NOD) event_action->act_object;
		event_init = (GPRE_NOD) event_action->act_object;
		stack_name = (SYM) event_init->nod_arg[0];
		stack_name = (SYM) event_init->nod_arg[0];
		if (!strcmp(event_name->sym_string, stack_name->sym_string)) {
		if (!strcmp(event_name->sym_string, stack_name->sym_string)) {
			ident = (int) event_init->nod_arg[2];
			ident = (int)(IPTR) event_init->nod_arg[2];
			database = (DBB) event_init->nod_arg[3];
			database = (DBB) event_init->nod_arg[3];
		}
		}
	}
	}
(-) firebird-1.5.3.4870-orig/src/gpre/cmd.cpp (-1 / +1 lines)
 Lines 204-210    Link Here 
	case ACT_drop_shadow:
	case ACT_drop_shadow:
		put_numeric(request, gds_dyn_delete_shadow,
		put_numeric(request, gds_dyn_delete_shadow,
					(SSHORT) action->act_object);
					(SSHORT)(IPTR) action->act_object);
		STUFF_END;
		STUFF_END;
		break;
		break;
(-) firebird-1.5.3.4870-orig/src/gpre/cme.cpp (-2 / +2 lines)
 Lines 251-257    Link Here 
// ** Begin date/time/timestamp support *
// ** Begin date/time/timestamp support *
	case nod_extract:
	case nod_extract:
		STUFF(blr_extract);
		STUFF(blr_extract);
		switch ((KWWORDS) (int) node->nod_arg[0])
		switch ((KWWORDS) (int)(IPTR) node->nod_arg[1])
		{
		{
		case KW_YEAR:
		case KW_YEAR:
			STUFF(blr_extract_year);
			STUFF(blr_extract_year);
 Lines 478-484    Link Here 
// ** Begin date/time/timestamp support *
// ** Begin date/time/timestamp support *
	case nod_extract:
	case nod_extract:
		{
		{
			KWWORDS kw_word = (KWWORDS) (int) node->nod_arg[0];
			KWWORDS kw_word = (KWWORDS) (int)(IPTR) node->nod_arg[0];
			CME_get_dtype(node->nod_arg[1], f);
			CME_get_dtype(node->nod_arg[1], f);
			switch (f->fld_dtype)
			switch (f->fld_dtype)
			{
			{
(-) firebird-1.5.3.4870-orig/src/gpre/cob.cpp (-7 / +7 lines)
 Lines 382-388    Link Here 
static void	gen_on_error (ACT);
static void	gen_on_error (ACT);
static void	gen_procedure (ACT);
static void	gen_procedure (ACT);
static void	gen_put_segment (ACT);
static void	gen_put_segment (ACT);
static void	gen_raw (UCHAR *, enum req_t, int, int);
static void	gen_raw (UCHAR *, enum req_t, int, IPTR);
static void	gen_ready (ACT);
static void	gen_ready (ACT);
static void	gen_receive (ACT, POR);
static void	gen_receive (ACT, POR);
static void	gen_release (ACT);
static void	gen_release (ACT);
 Lines 2656-2662    Link Here 
	args.pat_database = (DBB) init->nod_arg[3];
	args.pat_database = (DBB) init->nod_arg[3];
	args.pat_vector1 = status_vector(action);
	args.pat_vector1 = status_vector(action);
	args.pat_value1 = (int) init->nod_arg[2];
	args.pat_value1 = (IPTR) init->nod_arg[2];
	args.pat_value2 = (int) event_list->nod_count;
	args.pat_value2 = (int) event_list->nod_count;
	args.pat_string1 = ISC_EVENT_BLOCK;
	args.pat_string1 = ISC_EVENT_BLOCK;
	args.pat_string2 = ISC_EVENT_WAIT;
	args.pat_string2 = ISC_EVENT_WAIT;
 Lines 2712-2718    Link Here 
	LLS stack_ptr;
	LLS stack_ptr;
	ACT event_action;
	ACT event_action;
	SSHORT column;
	SSHORT column;
	int ident;
	IPTR ident;
	TEXT s[64];
	TEXT s[64];
	TEXT *pattern1 =
	TEXT *pattern1 =
		"CALL \"%S2\" USING %V1, %RF%DH%RE, %VF%S4%N1L%VE, %VF%S4%N1A%VE, %VF%S4%N1B%VE";
		"CALL \"%S2\" USING %V1, %RF%DH%RE, %VF%S4%N1L%VE, %VF%S4%N1A%VE, %VF%S4%N1B%VE";
 Lines 2730-2736    Link Here 
		event_init = (GPRE_NOD) event_action->act_object;
		event_init = (GPRE_NOD) event_action->act_object;
		stack_name = (SYM) event_init->nod_arg[0];
		stack_name = (SYM) event_init->nod_arg[0];
		if (!strcmp(event_name->sym_string, stack_name->sym_string)) {
		if (!strcmp(event_name->sym_string, stack_name->sym_string)) {
			ident = (int) event_init->nod_arg[2];
			ident = (IPTR) event_init->nod_arg[2];
			database = (DBB) event_init->nod_arg[3];
			database = (DBB) event_init->nod_arg[3];
		}
		}
	}
	}
 Lines 3845-3851    Link Here 
static void gen_raw(
static void gen_raw(
			   UCHAR * blr,
			   UCHAR * blr,
			   enum req_t request_type, int request_length, int ident)
			   enum req_t request_type, int request_length, IPTR ident)
{
{
	UCHAR *c;
	UCHAR *c;
	TEXT s[256];
	TEXT s[256];
 Lines 4193-4199    Link Here 
			printa(names[COLUMN_0], FALSE, "01  %s%d.",
			printa(names[COLUMN_0], FALSE, "01  %s%d.",
				   names[ISC_], blob->blb_bpb_ident);
				   names[ISC_], blob->blb_bpb_ident);
			gen_raw(blob->blb_bpb, request->req_type, blob->blb_bpb_length,
			gen_raw(blob->blb_bpb, request->req_type, blob->blb_bpb_length,
					(int) request);
					(IPTR) request);
			printa(names[COMMENT], FALSE, " ");
			printa(names[COMMENT], FALSE, " ");
		}
		}
#ifdef PYXIS
#ifdef PYXIS
 Lines 4703-4709    Link Here 
static void gen_type( ACT action)
static void gen_type( ACT action)
{
{
	printa(names[COLUMN], TRUE, "%ld", action->act_object);
	printa(names[COLUMN], TRUE, "%ld", (IPTR) action->act_object);
}
}
(-) firebird-1.5.3.4870-orig/src/gpre/pat.h (-1 / +1 lines)
 Lines 85-91    Link Here 
	USHORT pat_ident2;
	USHORT pat_ident2;
	TEXT *pat_vector1;
	TEXT *pat_vector1;
	TEXT *pat_vector2;
	TEXT *pat_vector2;
	int pat_value1;
	IPTR pat_value1;
	int pat_value2;
	int pat_value2;
	int pat_value3;
	int pat_value3;
	int pat_value4;
	int pat_value4;
(-) firebird-1.5.3.4870-orig/src/jrd/blb.cpp (-2 / +2 lines)
 Lines 860-867    Link Here 
	request = tdbb->tdbb_request;
	request = tdbb->tdbb_request;
	source = (BID) from_desc->dsc_address;
	source = (BID) from_desc->dsc_address;
	destination = (BID) to_desc->dsc_address;
	destination = (BID) to_desc->dsc_address;
	id = (USHORT) field->nod_arg[e_fld_id];
	id = (USHORT)(IPTR) field->nod_arg[e_fld_id];
	rpb = &request->req_rpb[(int) field->nod_arg[e_fld_stream]];
	rpb = &request->req_rpb[(int)(IPTR) field->nod_arg[e_fld_stream]];
	relation = rpb->rpb_relation;
	relation = rpb->rpb_relation;
	record = rpb->rpb_record;
	record = rpb->rpb_record;
(-) firebird-1.5.3.4870-orig/src/jrd/cmp.cpp (-66 / +66 lines)
 Lines 958-966    Link Here 
			FMT format;
			FMT format;
			USHORT id;
			USHORT id;
			id = (USHORT) node->nod_arg[e_fld_id];
			id = (USHORT)(IPTR) node->nod_arg[e_fld_id];
			format =
			format =
				CMP_format(tdbb, csb, (USHORT) node->nod_arg[e_fld_stream]);
				CMP_format(tdbb, csb, (USHORT)(IPTR) node->nod_arg[e_fld_stream]);
			if (id >= format->fmt_count) {
			if (id >= format->fmt_count) {
				desc->dsc_dtype = dtype_null;
				desc->dsc_dtype = dtype_null;
				desc->dsc_length = 0;
				desc->dsc_length = 0;
 Lines 983-991    Link Here 
			sub = node->nod_arg[e_scl_field];
			sub = node->nod_arg[e_scl_field];
			relation =
			relation =
				csb->csb_rpt[(USHORT) sub->
				csb->csb_rpt[(USHORT)(IPTR) sub->
							 nod_arg[e_fld_stream]].csb_relation;
							 nod_arg[e_fld_stream]].csb_relation;
			id = (USHORT) sub->nod_arg[e_fld_id];
			id = (USHORT)(IPTR) sub->nod_arg[e_fld_id];
			field = MET_get_field(relation, id);
			field = MET_get_field(relation, id);
			if (!field || !(array = field->fld_array))
			if (!field || !(array = field->fld_array))
				IBERROR(223);	/* msg 223 argument of scalar operation must be an array */
				IBERROR(223);	/* msg 223 argument of scalar operation must be an array */
 Lines 1661-1667    Link Here 
		return;
		return;
	case nod_extract:
	case nod_extract:
		if ((ULONG) node->nod_arg[e_extract_part] == blr_extract_second) {
		if ((ULONG)(IPTR) node->nod_arg[e_extract_part] == blr_extract_second) {
			/* QUADDATE - SECOND returns a float, or scaled! */
			/* QUADDATE - SECOND returns a float, or scaled! */
			desc->dsc_dtype = dtype_long;
			desc->dsc_dtype = dtype_long;
			desc->dsc_length = sizeof(ULONG);
			desc->dsc_length = sizeof(ULONG);
 Lines 1720-1726    Link Here 
			message = node->nod_arg[e_arg_message];
			message = node->nod_arg[e_arg_message];
			format = (FMT) message->nod_arg[e_msg_format];
			format = (FMT) message->nod_arg[e_msg_format];
			*desc = format->fmt_desc[(int) node->nod_arg[e_arg_number]];
			*desc = format->fmt_desc[(int)(IPTR) node->nod_arg[e_arg_number]];
			return;
			return;
		}
		}
 Lines 2653-2660    Link Here 
				!input->nod_arg[e_fld_id] && !input->nod_arg[e_fld_stream])
				!input->nod_arg[e_fld_id] && !input->nod_arg[e_fld_stream])
				--field_id;
				--field_id;
			else
			else
				field_id = (USHORT) input->nod_arg[e_fld_id];
				field_id = (USHORT)(IPTR) input->nod_arg[e_fld_id];
			stream = (USHORT) input->nod_arg[e_fld_stream];
			stream = (USHORT)(IPTR) input->nod_arg[e_fld_stream];
			if (remap_fld) {
			if (remap_fld) {
				JRD_REL relation;
				JRD_REL relation;
				JRD_FLD field;
				JRD_FLD field;
 Lines 2662-2668    Link Here 
				relation = (*csb)->csb_rpt[stream].csb_relation;
				relation = (*csb)->csb_rpt[stream].csb_relation;
				field = MET_get_field(relation, field_id);
				field = MET_get_field(relation, field_id);
				if (field->fld_source)
				if (field->fld_source)
					field_id = (USHORT) field->fld_source->nod_arg[e_fld_id];
					field_id = (USHORT)(IPTR) field->fld_source->nod_arg[e_fld_id];
			}
			}
			if (remap)
			if (remap)
				stream = remap[stream];
				stream = remap[stream];
 Lines 2773-2779    Link Here 
			node->nod_type = input->nod_type;
			node->nod_type = input->nod_type;
			node->nod_count = 0;
			node->nod_count = 0;
			stream = (USHORT) input->nod_arg[e_rel_stream];
			stream = (USHORT)(IPTR) input->nod_arg[e_rel_stream];
	/** 
	/** 
	    Last entry in the remap contains the the original stream number.
	    Last entry in the remap contains the the original stream number.
	    Get that stream number so that the flags can be copied 
	    Get that stream number so that the flags can be copied 
 Lines 2853-2859    Link Here 
			node->nod_arg[e_prc_inputs] =
			node->nod_arg[e_prc_inputs] =
				copy(tdbb, csb, input->nod_arg[e_prc_inputs], remap, field_id,
				copy(tdbb, csb, input->nod_arg[e_prc_inputs], remap, field_id,
					 node->nod_arg[e_prc_in_msg], remap_fld);
					 node->nod_arg[e_prc_in_msg], remap_fld);
			stream = (USHORT) input->nod_arg[e_prc_stream];
			stream = (USHORT)(IPTR) input->nod_arg[e_prc_stream];
			new_stream = (*csb)->csb_n_stream++;
			new_stream = (*csb)->csb_n_stream++;
			node->nod_arg[e_prc_stream] = (JRD_NOD) (SLONG) new_stream;
			node->nod_arg[e_prc_stream] = (JRD_NOD) (SLONG) new_stream;
			/* TMN: Here we should really have the following assert */
			/* TMN: Here we should really have the following assert */
 Lines 2863-2869    Link Here 
			element = CMP_csb_element(csb, new_stream);
			element = CMP_csb_element(csb, new_stream);
			// SKIDDER: Maybe we need to check if we really found a procedure ?
			// SKIDDER: Maybe we need to check if we really found a procedure ?
			element->csb_procedure = MET_lookup_procedure_id(tdbb,
			element->csb_procedure = MET_lookup_procedure_id(tdbb,
			  (SSHORT)node->nod_arg[e_prc_procedure],FALSE,FALSE,0);
			  (SSHORT)(IPTR)node->nod_arg[e_prc_procedure],FALSE,FALSE,0);
			(*csb)->csb_rpt[new_stream].csb_flags |=
			(*csb)->csb_rpt[new_stream].csb_flags |=
				(*csb)->csb_rpt[stream].csb_flags & csb_no_dbkey;
				(*csb)->csb_rpt[stream].csb_flags & csb_no_dbkey;
 Lines 2876-2882    Link Here 
		node = PAR_make_node(tdbb, e_agg_length);
		node = PAR_make_node(tdbb, e_agg_length);
		node->nod_type = input->nod_type;
		node->nod_type = input->nod_type;
		node->nod_count = 0;
		node->nod_count = 0;
		stream = (USHORT) input->nod_arg[e_agg_stream];
		stream = (USHORT)(IPTR) input->nod_arg[e_agg_stream];
		assert(stream <= MAX_STREAMS);
		assert(stream <= MAX_STREAMS);
		new_stream = (*csb)->csb_n_stream++;
		new_stream = (*csb)->csb_n_stream++;
		assert(new_stream <= MAX_STREAMS);
		assert(new_stream <= MAX_STREAMS);
 Lines 2905-2911    Link Here 
		node = PAR_make_node(tdbb, e_uni_length);
		node = PAR_make_node(tdbb, e_uni_length);
		node->nod_type = input->nod_type;
		node->nod_type = input->nod_type;
		node->nod_count = 2;
		node->nod_count = 2;
		stream = (USHORT) input->nod_arg[e_uni_stream];
		stream = (USHORT)(IPTR) input->nod_arg[e_uni_stream];
		new_stream = (*csb)->csb_n_stream++;
		new_stream = (*csb)->csb_n_stream++;
		node->nod_arg[e_uni_stream] = (JRD_NOD) (SLONG) new_stream;
		node->nod_arg[e_uni_stream] = (JRD_NOD) (SLONG) new_stream;
		/* TMN: Here we should really have the following assert */
		/* TMN: Here we should really have the following assert */
 Lines 3043-3049    Link Here 
			csb_repeat *tail;
			csb_repeat *tail;
			JRD_REL relation;
			JRD_REL relation;
			stream = (USHORT) node->nod_arg[e_rel_stream];
			stream = (USHORT)(IPTR) node->nod_arg[e_rel_stream];
			csb->csb_rpt[stream].csb_flags |= csb_no_dbkey;
			csb->csb_rpt[stream].csb_flags |= csb_no_dbkey;
			tail = &csb->csb_rpt[stream];
			tail = &csb->csb_rpt[stream];
			if ( (relation = tail->csb_relation) )
			if ( (relation = tail->csb_relation) )
 Lines 3271-3277    Link Here 
			JRD_FLD field;
			JRD_FLD field;
			UCHAR *map, local_map[MAP_LENGTH];
			UCHAR *map, local_map[MAP_LENGTH];
			stream = (USHORT) node->nod_arg[e_fld_stream];
			stream = (USHORT)(IPTR) node->nod_arg[e_fld_stream];
			/* Look at all rse's which are lower in scope than the rse which this field 
			/* Look at all rse's which are lower in scope than the rse which this field 
			   is referencing, and mark them as varying -- the rule is that if a field 
			   is referencing, and mark them as varying -- the rule is that if a field 
 Lines 3292-3298    Link Here 
			if (!(relation = tail->csb_relation) ||
			if (!(relation = tail->csb_relation) ||
				!(field =
				!(field =
				  MET_get_field(relation,
				  MET_get_field(relation,
								(USHORT) node->nod_arg[e_fld_id]))) break;
								(USHORT)(IPTR) node->nod_arg[e_fld_id]))) break;
			/* if this is a modify or store, check REFERENCES access to any foreign keys. */
			/* if this is a modify or store, check REFERENCES access to any foreign keys. */
 Lines 3404-3412    Link Here 
			sub = node->nod_arg[e_asgn_from];
			sub = node->nod_arg[e_asgn_from];
			if (sub->nod_type == nod_field) {
			if (sub->nod_type == nod_field) {
				stream = (USHORT) sub->nod_arg[e_fld_stream];
				stream = (USHORT)(IPTR) sub->nod_arg[e_fld_stream];
				field = MET_get_field((*csb)->csb_rpt[stream].csb_relation,
				field = MET_get_field((*csb)->csb_rpt[stream].csb_relation,
									  (USHORT) sub->nod_arg[e_fld_id]);
									  (USHORT)(IPTR) sub->nod_arg[e_fld_id]);
				if (field)
				if (field)
					node->nod_arg[e_asgn_missing2] = field->fld_missing_value;
					node->nod_arg[e_asgn_missing2] = field->fld_missing_value;
			}
			}
 Lines 3414-3425    Link Here 
			sub = node->nod_arg[e_asgn_to];
			sub = node->nod_arg[e_asgn_to];
			if (sub->nod_type != nod_field)
			if (sub->nod_type != nod_field)
				break;
				break;
			stream = (USHORT) sub->nod_arg[e_fld_stream];
			stream = (USHORT)(IPTR) sub->nod_arg[e_fld_stream];
			tail = &(*csb)->csb_rpt[stream];
			tail = &(*csb)->csb_rpt[stream];
			if (!
			if (!
				(field =
				(field =
				 MET_get_field(tail->csb_relation,
				 MET_get_field(tail->csb_relation,
							   (USHORT) sub->nod_arg[e_fld_id]))) break;
							   (USHORT)(IPTR) sub->nod_arg[e_fld_id]))) break;
			if (field->fld_missing_value) {
			if (field->fld_missing_value) {
				node->nod_arg[e_asgn_missing] = field->fld_missing_value;
				node->nod_arg[e_asgn_missing] = field->fld_missing_value;
				node->nod_count = 3;
				node->nod_count = 3;
 Lines 3433-3439    Link Here 
		break;
		break;
	case nod_modify:
	case nod_modify:
		stream = (USHORT) node->nod_arg[e_mod_new_stream];
		stream = (USHORT)(IPTR) node->nod_arg[e_mod_new_stream];
		tail = &(*csb)->csb_rpt[stream];
		tail = &(*csb)->csb_rpt[stream];
		tail->csb_flags |= csb_modify;
		tail->csb_flags |= csb_modify;
		pass1_modify(tdbb, csb, node);
		pass1_modify(tdbb, csb, node);
 Lines 3441-3453    Link Here 
		/* assert(node->nod_arg [e_mod_new_stream] <= MAX_USHORT); */
		/* assert(node->nod_arg [e_mod_new_stream] <= MAX_USHORT); */
		if ( (node->nod_arg[e_mod_validate] =
		if ( (node->nod_arg[e_mod_validate] =
			make_validation(tdbb, csb,
			make_validation(tdbb, csb,
							(USHORT) node->
							(USHORT)(IPTR) node->
							nod_arg[e_mod_new_stream])) ) node->nod_count =
							nod_arg[e_mod_new_stream])) ) node->nod_count =
				MAX(node->nod_count, (USHORT) e_mod_validate + 1);
				MAX(node->nod_count, (USHORT) e_mod_validate + 1);
		break;
		break;
	case nod_erase:
	case nod_erase:
		stream = (USHORT) node->nod_arg[e_erase_stream];
		stream = (USHORT)(IPTR) node->nod_arg[e_erase_stream];
		tail = &(*csb)->csb_rpt[stream];
		tail = &(*csb)->csb_rpt[stream];
		tail->csb_flags |= csb_erase;
		tail->csb_flags |= csb_erase;
		pass1_erase(tdbb, csb, node);
		pass1_erase(tdbb, csb, node);
 Lines 3463-3474    Link Here 
	case nod_store:
	case nod_store:
		sub = node->nod_arg[e_sto_relation];
		sub = node->nod_arg[e_sto_relation];
		stream = (USHORT) sub->nod_arg[e_rel_stream];
		stream = (USHORT)(IPTR) sub->nod_arg[e_rel_stream];
		tail = &(*csb)->csb_rpt[stream];
		tail = &(*csb)->csb_rpt[stream];
		tail->csb_flags |= csb_store;
		tail->csb_flags |= csb_store;
		sub = pass1_store(tdbb, csb, node);
		sub = pass1_store(tdbb, csb, node);
		if (sub) {
		if (sub) {
			stream = (USHORT) sub->nod_arg[e_rel_stream];
			stream = (USHORT)(IPTR) sub->nod_arg[e_rel_stream];
			if ((!node->nod_arg[e_sto_sub_store]) &&
			if ((!node->nod_arg[e_sto_sub_store]) &&
				(node->nod_arg[e_sto_validate] =
				(node->nod_arg[e_sto_validate] =
				 make_validation(tdbb, csb, stream))) node->nod_count =
				 make_validation(tdbb, csb, stream))) node->nod_count =
 Lines 3495-3501    Link Here 
	case nod_aggregate:
	case nod_aggregate:
		assert((int)node->nod_arg[e_agg_stream] <= MAX_STREAMS);
		assert((int)node->nod_arg[e_agg_stream] <= MAX_STREAMS);
		(*csb)->csb_rpt[(USHORT) node->nod_arg[e_agg_stream]].csb_flags |=
		(*csb)->csb_rpt[(USHORT)(IPTR) node->nod_arg[e_agg_stream]].csb_flags |=
			csb_no_dbkey;
			csb_no_dbkey;
		ignore_dbkey(tdbb, *csb, (RSE) node->nod_arg[e_agg_rse], view);
		ignore_dbkey(tdbb, *csb, (RSE) node->nod_arg[e_agg_rse], view);
		node->nod_arg[e_agg_rse] =
		node->nod_arg[e_agg_rse] =
 Lines 3523-3529    Link Here 
			NOD_T type;
			NOD_T type;
			type = node->nod_type;
			type = node->nod_type;
			stream = (USHORT) node->nod_arg[0];
			stream = (USHORT)(IPTR) node->nod_arg[0];
			if (!(*csb)->csb_rpt[stream].csb_map) 
			if (!(*csb)->csb_rpt[stream].csb_map) 
				return node;
				return node;
 Lines 3558-3564    Link Here 
		break;
		break;
	case nod_cardinality:
	case nod_cardinality:
		stream = (USHORT) node->nod_arg[e_card_stream];
		stream = (USHORT)(IPTR) node->nod_arg[e_card_stream];
		(*csb)->csb_rpt[stream].csb_flags |= csb_compute;
		(*csb)->csb_rpt[stream].csb_flags |= csb_compute;
		break;
		break;
 Lines 3625-3631    Link Here 
/* To support views of views, loop until we hit a real relation */
/* To support views of views, loop until we hit a real relation */
	for (;;) {
	for (;;) {
		stream = new_stream = (USHORT) node->nod_arg[e_erase_stream];
		stream = new_stream = (USHORT)(IPTR) node->nod_arg[e_erase_stream];
		tail = &(*csb)->csb_rpt[stream];
		tail = &(*csb)->csb_rpt[stream];
		tail->csb_flags |= csb_erase;
		tail->csb_flags |= csb_erase;
		relation = (*csb)->csb_rpt[stream].csb_relation;
		relation = (*csb)->csb_rpt[stream].csb_relation;
 Lines 3693-3699    Link Here 
		parent = relation;
		parent = relation;
		parent_stream = stream;
		parent_stream = stream;
		new_stream = (USHORT) source->nod_arg[e_rel_stream];
		new_stream = (USHORT)(IPTR) source->nod_arg[e_rel_stream];
		node->nod_arg[e_erase_stream] = (JRD_NOD) (SLONG) map[new_stream];
		node->nod_arg[e_erase_stream] = (JRD_NOD) (SLONG) map[new_stream];
	}
	}
}
}
 Lines 3740-3746    Link Here 
				field = MET_get_field(relation, id);
				field = MET_get_field(relation, id);
				if (field->fld_source)
				if (field->fld_source)
					new_id =
					new_id =
						(USHORT) (JRD_NOD) (field->fld_source)->nod_arg[e_fld_id];
						(USHORT)(IPTR) (JRD_NOD) (field->fld_source)->nod_arg[e_fld_id];
				else
				else
					new_id = id;
					new_id = id;
			}
			}
 Lines 3802-3809    Link Here 
/* To support views of views, loop until we hit a real relation */
/* To support views of views, loop until we hit a real relation */
	for (;;) {
	for (;;) {
		stream = (USHORT) node->nod_arg[e_mod_org_stream];
		stream = (USHORT)(IPTR) node->nod_arg[e_mod_org_stream];
		new_stream = (USHORT) node->nod_arg[e_mod_new_stream];
		new_stream = (USHORT)(IPTR) node->nod_arg[e_mod_new_stream];
		tail = &(*csb)->csb_rpt[new_stream];
		tail = &(*csb)->csb_rpt[new_stream];
		tail->csb_flags |= csb_modify;
		tail->csb_flags |= csb_modify;
		relation = (*csb)->csb_rpt[stream].csb_relation;
		relation = (*csb)->csb_rpt[stream].csb_relation;
 Lines 3842-3848    Link Here 
			node->nod_count =
			node->nod_count =
				MAX(node->nod_count, (USHORT) e_mod_map_view + 1);
				MAX(node->nod_count, (USHORT) e_mod_map_view + 1);
			map = (*csb)->csb_rpt[stream].csb_map;
			map = (*csb)->csb_rpt[stream].csb_map;
			stream = (USHORT) source->nod_arg[e_rel_stream];
			stream = (USHORT)(IPTR) source->nod_arg[e_rel_stream];
			stream = map[stream];
			stream = map[stream];
			view_stream = new_stream;
			view_stream = new_stream;
 Lines 3850-3867    Link Here 
			map =
			map =
				alloc_map(tdbb, csb,
				alloc_map(tdbb, csb,
						  (SSHORT) node->nod_arg[e_mod_new_stream]);
						  (SSHORT)(IPTR) node->nod_arg[e_mod_new_stream]);
			source = copy(tdbb, csb, source, map, 0, NULL, FALSE);
			source = copy(tdbb, csb, source, map, 0, NULL, FALSE);
			/* TMN: Here we should really have the following assert */
			/* TMN: Here we should really have the following assert */
			/* assert(source->nod_arg [e_rel_stream] <= MAX_UCHAR); */
			/* assert(source->nod_arg [e_rel_stream] <= MAX_UCHAR); */
			map[new_stream] = (UCHAR) source->nod_arg[e_rel_stream];
			map[new_stream] = (UCHAR)(IPTR) source->nod_arg[e_rel_stream];
			view_node = copy(tdbb, csb, node, map, 0, NULL, TRUE);
			view_node = copy(tdbb, csb, node, map, 0, NULL, TRUE);
			view_node->nod_arg[e_mod_org_stream] = (JRD_NOD) (SLONG) stream;
			view_node->nod_arg[e_mod_org_stream] = (JRD_NOD) (SLONG) stream;
			view_node->nod_arg[e_mod_new_stream] =
			view_node->nod_arg[e_mod_new_stream] =
				source->nod_arg[e_rel_stream];
				source->nod_arg[e_rel_stream];
			view_node->nod_arg[e_mod_map_view] = NULL;
			view_node->nod_arg[e_mod_map_view] = NULL;
			node->nod_arg[e_mod_sub_mod] = view_node;
			node->nod_arg[e_mod_sub_mod] = view_node;
			new_stream = (USHORT) source->nod_arg[e_rel_stream];
			new_stream = (USHORT)(IPTR) source->nod_arg[e_rel_stream];
			view_node->nod_arg[e_mod_statement] =
			view_node->nod_arg[e_mod_statement] =
				pass1_expand_view(tdbb, *csb, view_stream, new_stream, TRUE);
				pass1_expand_view(tdbb, *csb, view_stream, new_stream, TRUE);
			node->nod_count =
			node->nod_count =
 Lines 3874-3887    Link Here 
			/* View passes muster -- do some translation.  Start with source stream */
			/* View passes muster -- do some translation.  Start with source stream */
			map = (*csb)->csb_rpt[stream].csb_map;
			map = (*csb)->csb_rpt[stream].csb_map;
			stream = (USHORT) source->nod_arg[e_rel_stream];
			stream = (USHORT)(IPTR) source->nod_arg[e_rel_stream];
			node->nod_arg[e_mod_org_stream] = (JRD_NOD) (SLONG) map[stream];
			node->nod_arg[e_mod_org_stream] = (JRD_NOD) (SLONG) map[stream];
			/* Next, do update stream */
			/* Next, do update stream */
			map =
			map =
				alloc_map(tdbb, csb,
				alloc_map(tdbb, csb,
						  (SSHORT) node->nod_arg[e_mod_new_stream]);
						  (SSHORT)(IPTR) node->nod_arg[e_mod_new_stream]);
			source = copy(tdbb, csb, source, map, 0, NULL, FALSE);
			source = copy(tdbb, csb, source, map, 0, NULL, FALSE);
			node->nod_arg[e_mod_new_stream] = source->nod_arg[e_rel_stream];
			node->nod_arg[e_mod_new_stream] = source->nod_arg[e_rel_stream];
		}
		}
 Lines 4128-4134    Link Here 
		pass1(tdbb, csb, source, parent_view, view_stream, FALSE);
		pass1(tdbb, csb, source, parent_view, view_stream, FALSE);
		procedure = MET_lookup_procedure_id(tdbb, 
		procedure = MET_lookup_procedure_id(tdbb, 
		  (SSHORT)source->nod_arg[e_prc_procedure], FALSE, FALSE, 0);
		  (SSHORT)(IPTR)source->nod_arg[e_prc_procedure], FALSE, FALSE, 0);
		post_procedure_access(tdbb, *csb, procedure);
		post_procedure_access(tdbb, *csb, procedure);
		CMP_post_resource(&(*csb)->csb_resources, (BLK) procedure,
		CMP_post_resource(&(*csb)->csb_resources, (BLK) procedure,
						  Resource::rsc_procedure, procedure->prc_id);
						  Resource::rsc_procedure, procedure->prc_id);
 Lines 4160-4166    Link Here 
					  view->rel_id);
					  view->rel_id);
	source->nod_arg[e_rel_view] = (JRD_NOD) parent_view;
	source->nod_arg[e_rel_view] = (JRD_NOD) parent_view;
	stream = (USHORT) source->nod_arg[e_rel_stream];
	stream = (USHORT)(IPTR) source->nod_arg[e_rel_stream];
	element = CMP_csb_element(csb, stream);
	element = CMP_csb_element(csb, stream);
	element->csb_view = parent_view;
	element->csb_view = parent_view;
/* TMN: Here we should really have the following assert */
/* TMN: Here we should really have the following assert */
 Lines 4175-4181    Link Here 
		for (vcx_ptr = &parent_view->rel_view_contexts; *vcx_ptr;
		for (vcx_ptr = &parent_view->rel_view_contexts; *vcx_ptr;
			 vcx_ptr = &(*vcx_ptr)->vcx_next)
			 vcx_ptr = &(*vcx_ptr)->vcx_next)
			if ((*vcx_ptr)->vcx_context ==
			if ((*vcx_ptr)->vcx_context ==
				(USHORT) source->nod_arg[e_rel_context]) {
				(USHORT)(IPTR) source->nod_arg[e_rel_context]) {
				element->csb_alias = (*vcx_ptr)->vcx_context_name;
				element->csb_alias = (*vcx_ptr)->vcx_context_name;
				break;
				break;
			}
			}
 Lines 4319-4325    Link Here 
	for (;;) {
	for (;;) {
		original = node->nod_arg[e_sto_relation];
		original = node->nod_arg[e_sto_relation];
		stream = (USHORT) original->nod_arg[e_rel_stream];
		stream = (USHORT)(IPTR) original->nod_arg[e_rel_stream];
		tail = &(*csb)->csb_rpt[stream];
		tail = &(*csb)->csb_rpt[stream];
		tail->csb_flags |= csb_store;
		tail->csb_flags |= csb_store;
		relation = (*csb)->csb_rpt[stream].csb_relation;
		relation = (*csb)->csb_rpt[stream].csb_relation;
 Lines 4373-4379    Link Here 
			node->nod_arg[e_sto_relation] =
			node->nod_arg[e_sto_relation] =
				copy(tdbb, csb, source, map, 0, NULL, FALSE);
				copy(tdbb, csb, source, map, 0, NULL, FALSE);
			new_stream =
			new_stream =
				(USHORT) node->nod_arg[e_sto_relation]->nod_arg[e_rel_stream];
				(USHORT)(IPTR) node->nod_arg[e_sto_relation]->nod_arg[e_rel_stream];
			node->nod_arg[e_sto_statement] =
			node->nod_arg[e_sto_statement] =
				pass1_expand_view(tdbb, *csb, stream, new_stream, TRUE);
				pass1_expand_view(tdbb, *csb, stream, new_stream, TRUE);
			node->nod_arg[e_sto_statement] =
			node->nod_arg[e_sto_statement] =
 Lines 4721-4729    Link Here 
		/* AB: Mark the streams involved with an UPDATE statement
		/* AB: Mark the streams involved with an UPDATE statement
		   active. So that the optimizer can use indices for 
		   active. So that the optimizer can use indices for 
		   eventually used sub-selects. */
		   eventually used sub-selects. */
		stream = (USHORT) node->nod_arg[e_mod_org_stream];
		stream = (USHORT)(IPTR) node->nod_arg[e_mod_org_stream];
		csb->csb_rpt[stream].csb_flags |= csb_active;
		csb->csb_rpt[stream].csb_flags |= csb_active;
		stream = (USHORT) node->nod_arg[e_mod_new_stream];
		stream = (USHORT)(IPTR) node->nod_arg[e_mod_new_stream];
		csb->csb_rpt[stream].csb_flags |= csb_active;
		csb->csb_rpt[stream].csb_flags |= csb_active;
	}
	}
 Lines 4735-4743    Link Here 
	if (node->nod_type == nod_modify) {
	if (node->nod_type == nod_modify) {
		/* AB: Remove the previous flags */
		/* AB: Remove the previous flags */
		stream = (USHORT) node->nod_arg[e_mod_org_stream];
		stream = (USHORT)(IPTR) node->nod_arg[e_mod_org_stream];
		csb->csb_rpt[stream].csb_flags &= ~csb_active;
		csb->csb_rpt[stream].csb_flags &= ~csb_active;
		stream = (USHORT) node->nod_arg[e_mod_new_stream];
		stream = (USHORT)(IPTR) node->nod_arg[e_mod_new_stream];
		csb->csb_rpt[stream].csb_flags &= ~csb_active;
		csb->csb_rpt[stream].csb_flags &= ~csb_active;
	}
	}
 Lines 4836-4842    Link Here 
			FMT format;
			FMT format;
			fmt::fmt_desc_iterator desc;
			fmt::fmt_desc_iterator desc;
			stream = (USHORT) node->nod_arg[e_mod_org_stream];
			stream = (USHORT)(IPTR) node->nod_arg[e_mod_org_stream];
			csb->csb_rpt[stream].csb_flags |= csb_update;
			csb->csb_rpt[stream].csb_flags |= csb_update;
			format = CMP_format(tdbb, csb, stream);
			format = CMP_format(tdbb, csb, stream);
			desc = format->fmt_desc.begin();
			desc = format->fmt_desc.begin();
 Lines 4861-4873    Link Here 
		break;
		break;
	case nod_erase:
	case nod_erase:
		stream = (USHORT) node->nod_arg[e_erase_stream];
		stream = (USHORT)(IPTR) node->nod_arg[e_erase_stream];
		csb->csb_rpt[stream].csb_flags |= csb_update;
		csb->csb_rpt[stream].csb_flags |= csb_update;
		break;
		break;
	case nod_field:
	case nod_field:
		stream = (USHORT) node->nod_arg[e_fld_stream];
		stream = (USHORT)(IPTR) node->nod_arg[e_fld_stream];
		id = (USHORT) node->nod_arg[e_fld_id];
		id = (USHORT)(IPTR) node->nod_arg[e_fld_id];
		SBM_set(tdbb, &csb->csb_rpt[stream].csb_fields, id);
		SBM_set(tdbb, &csb->csb_rpt[stream].csb_fields, id);
		if (node->nod_flags & nod_value) {
		if (node->nod_flags & nod_value) {
			csb->csb_impure += sizeof(struct vlux);
			csb->csb_impure += sizeof(struct vlux);
 Lines 4941-4947    Link Here 
		pass2_rse(tdbb, csb, (RSE) node->nod_arg[e_agg_rse]);
		pass2_rse(tdbb, csb, (RSE) node->nod_arg[e_agg_rse]);
		pass2(tdbb, csb, node->nod_arg[e_agg_map], node);
		pass2(tdbb, csb, node->nod_arg[e_agg_map], node);
		pass2(tdbb, csb, node->nod_arg[e_agg_group], node);
		pass2(tdbb, csb, node->nod_arg[e_agg_group], node);
		stream = (USHORT) node->nod_arg[e_agg_stream];
		stream = (USHORT)(IPTR) node->nod_arg[e_agg_stream];
		assert(stream <= MAX_STREAMS);
		assert(stream <= MAX_STREAMS);
		process_map(tdbb, csb, node->nod_arg[e_agg_map],
		process_map(tdbb, csb, node->nod_arg[e_agg_map],
					&csb->csb_rpt[stream].csb_format);
					&csb->csb_rpt[stream].csb_format);
 Lines 5050-5056    Link Here 
		node = *ptr;
		node = *ptr;
		if (node->nod_type == nod_relation) {
		if (node->nod_type == nod_relation) {
			USHORT stream = (USHORT) node->nod_arg[e_rel_stream];
			USHORT stream = (USHORT)(IPTR) node->nod_arg[e_rel_stream];
			csb->csb_rpt[stream].csb_flags |= csb_active;
			csb->csb_rpt[stream].csb_flags |= csb_active;
			pass2(tdbb, csb, node, (JRD_NOD) rse);
			pass2(tdbb, csb, node, (JRD_NOD) rse);
		}
		}
 Lines 5058-5069    Link Here 
			pass2_rse(tdbb, csb, (RSE) node);
			pass2_rse(tdbb, csb, (RSE) node);
		}
		}
		else if (node->nod_type == nod_procedure) {
		else if (node->nod_type == nod_procedure) {
			USHORT stream = (USHORT) node->nod_arg[e_prc_stream];
			USHORT stream = (USHORT)(IPTR) node->nod_arg[e_prc_stream];
			csb->csb_rpt[stream].csb_flags |= csb_active;
			csb->csb_rpt[stream].csb_flags |= csb_active;
			pass2(tdbb, csb, node, (JRD_NOD) rse);
			pass2(tdbb, csb, node, (JRD_NOD) rse);
		}
		}
		else if (node->nod_type == nod_aggregate) {
		else if (node->nod_type == nod_aggregate) {
			USHORT stream = (USHORT) node->nod_arg[e_agg_stream];
			USHORT stream = (USHORT)(IPTR) node->nod_arg[e_agg_stream];
			assert(stream <= MAX_STREAMS);
			assert(stream <= MAX_STREAMS);
			csb->csb_rpt[stream].csb_flags |= csb_active;
			csb->csb_rpt[stream].csb_flags |= csb_active;
			pass2(tdbb, csb, node, (JRD_NOD) rse);
			pass2(tdbb, csb, node, (JRD_NOD) rse);
 Lines 5118-5124    Link Here 
/* Make up a format block sufficiently large to hold instantiated record */
/* Make up a format block sufficiently large to hold instantiated record */
	clauses = node->nod_arg[e_uni_clauses];
	clauses = node->nod_arg[e_uni_clauses];
	id = (USHORT) node->nod_arg[e_uni_stream];
	id = (USHORT)(IPTR) node->nod_arg[e_uni_stream];
	format = &csb->csb_rpt[id].csb_format;
	format = &csb->csb_rpt[id].csb_format;
/* Process alternating rse and map blocks */
/* Process alternating rse and map blocks */
 Lines 5160-5166    Link Here 
	for (ptr = rse->rse_relation, end = ptr + rse->rse_count; ptr < end;
	for (ptr = rse->rse_relation, end = ptr + rse->rse_count; ptr < end;
		 ptr++) if ((*ptr)->nod_type == nod_relation) {
		 ptr++) if ((*ptr)->nod_type == nod_relation) {
			stream = (USHORT) (*ptr)->nod_arg[e_rel_stream];
			stream = (USHORT)(IPTR) (*ptr)->nod_arg[e_rel_stream];
			if (!(csb->csb_rpt[stream].csb_plan))
			if (!(csb->csb_rpt[stream].csb_plan))
				ERR_post(gds_no_stream_plan, gds_arg_string,
				ERR_post(gds_no_stream_plan, gds_arg_string,
						 csb->csb_rpt[stream].csb_relation->rel_name, 0);
						 csb->csb_rpt[stream].csb_relation->rel_name, 0);
 Lines 5213-5219    Link Here 
/* find the tail for the relation specified in the rse */
/* find the tail for the relation specified in the rse */
	stream = (USHORT) plan_relation_node->nod_arg[e_rel_stream];
	stream = (USHORT)(IPTR) plan_relation_node->nod_arg[e_rel_stream];
	tail = &csb->csb_rpt[stream];
	tail = &csb->csb_rpt[stream];
/* if the plan references a view, find the real base relation 
/* if the plan references a view, find the real base relation 
 Lines 5449-5463    Link Here 
		 ptr < end; ptr++) {
		 ptr < end; ptr++) {
		node = *ptr;
		node = *ptr;
		if (node->nod_type == nod_relation) {
		if (node->nod_type == nod_relation) {
			USHORT stream = (USHORT) node->nod_arg[e_rel_stream];
			USHORT stream = (USHORT)(IPTR) node->nod_arg[e_rel_stream];
			csb->csb_rpt[stream].csb_flags &= ~csb_active;
			csb->csb_rpt[stream].csb_flags &= ~csb_active;
		}
		}
		else if (node->nod_type == nod_procedure) {
		else if (node->nod_type == nod_procedure) {
			USHORT stream = (USHORT) node->nod_arg[e_prc_stream];
			USHORT stream = (USHORT)(IPTR) node->nod_arg[e_prc_stream];
			csb->csb_rpt[stream].csb_flags &= ~csb_active;
			csb->csb_rpt[stream].csb_flags &= ~csb_active;
		}
		}
		else if (node->nod_type == nod_aggregate) {
		else if (node->nod_type == nod_aggregate) {
			USHORT stream = (USHORT) node->nod_arg[e_agg_stream];
			USHORT stream = (USHORT)(IPTR) node->nod_arg[e_agg_stream];
			assert(stream <= MAX_STREAMS);
			assert(stream <= MAX_STREAMS);
			csb->csb_rpt[stream].csb_flags &= ~csb_active;
			csb->csb_rpt[stream].csb_flags &= ~csb_active;
		}
		}
 Lines 5553-5559    Link Here 
	for (end = ptr + map->nod_count; ptr < end; ptr++) {
	for (end = ptr + map->nod_count; ptr < end; ptr++) {
		assignment = *ptr;
		assignment = *ptr;
		field = assignment->nod_arg[e_asgn_to];
		field = assignment->nod_arg[e_asgn_to];
		id = (USHORT) field->nod_arg[e_fld_id];
		id = (USHORT)(IPTR) field->nod_arg[e_fld_id];
		if (id >= format->fmt_count) {
		if (id >= format->fmt_count) {
			format->fmt_desc.resize(id + 1);
			format->fmt_desc.resize(id + 1);
		}
		}
 Lines 5689-5701    Link Here 
		/* for aggregates, check current rse, if not found then check 
		/* for aggregates, check current rse, if not found then check 
		   the sub-rse */
		   the sub-rse */
		if (sub->nod_type == nod_aggregate) {
		if (sub->nod_type == nod_aggregate) {
			if ((stream == (USHORT) sub->nod_arg[e_rel_stream]) ||
			if ((stream == (USHORT)(IPTR) sub->nod_arg[e_rel_stream]) ||
				(stream_in_rse(stream, (RSE) sub->nod_arg[e_agg_rse])))
				(stream_in_rse(stream, (RSE) sub->nod_arg[e_agg_rse])))
				return TRUE;	/* do not mark as variant */
				return TRUE;	/* do not mark as variant */
		}
		}
		if ((sub->nod_type == nod_relation) &&
		if ((sub->nod_type == nod_relation) &&
			(stream == (USHORT) sub->nod_arg[e_rel_stream]))
			(stream == (USHORT)(IPTR) sub->nod_arg[e_rel_stream]))
			return TRUE;		/* do not mark as variant */
			return TRUE;		/* do not mark as variant */
	}
	}
(-) firebird-1.5.3.4870-orig/src/jrd/common.h (-2 / +2 lines)
 Lines 856-863    Link Here 
#define JRD_BUGCHK 15			/* facility code for bugcheck messages */
#define JRD_BUGCHK 15			/* facility code for bugcheck messages */
#ifndef OFFSET
#ifndef OFFSET
#define OFFSET(struct,fld)      ((int) &((struct) 0)->fld)
#define OFFSET(struct,fld)      ((int)(IPTR) &((struct) 0)->fld)
#define OFFSETA(struct,fld)     ((int) ((struct) 0)->fld)
#define OFFSETA(struct,fld)     ((int)(IPTR) ((struct) 0)->fld)
#endif
#endif
#ifndef ODS_ALIGNMENT
#ifndef ODS_ALIGNMENT
(-) firebird-1.5.3.4870-orig/src/jrd/dpm.epp (-2 / +2 lines)
 Lines 2119-2125    Link Here 
	DEBUG if (stack)
	DEBUG if (stack)
		while (*stack)
		while (*stack)
			CCH_precedence(tdbb, &rpb->rpb_window, (SLONG) LLS_POP(stack));
			CCH_precedence(tdbb, &rpb->rpb_window, (SLONG)(IPTR) LLS_POP(stack));
	CCH_precedence(tdbb, &rpb->rpb_window, -rpb->rpb_transaction);
	CCH_precedence(tdbb, &rpb->rpb_window, -rpb->rpb_transaction);
	CCH_MARK(tdbb, &rpb->rpb_window);
	CCH_MARK(tdbb, &rpb->rpb_window);
 Lines 2736-2742    Link Here 
   If the page need to be compressed, compress it. */
   If the page need to be compressed, compress it. */
	while (*stack)
	while (*stack)
		CCH_precedence(tdbb, &rpb->rpb_window, (SLONG) LLS_POP(stack));
		CCH_precedence(tdbb, &rpb->rpb_window, (SLONG)(IPTR) LLS_POP(stack));
	CCH_MARK(tdbb, &rpb->rpb_window);
	CCH_MARK(tdbb, &rpb->rpb_window);
	i = page->dpg_count + ((slot) ? 0 : 1);
	i = page->dpg_count + ((slot) ? 0 : 1);
(-) firebird-1.5.3.4870-orig/src/jrd/evl.cpp (-18 / +18 lines)
 Lines 248-254    Link Here 
		arg_number = (int)(IPTR)node->nod_arg[e_arg_number];
		arg_number = (int)(IPTR)node->nod_arg[e_arg_number];
		desc = &format->fmt_desc[arg_number];
		desc = &format->fmt_desc[arg_number];
		impure->vlu_desc.dsc_address =
		impure->vlu_desc.dsc_address =
			(UCHAR *) request + message->nod_impure + (int) desc->dsc_address;
			(UCHAR *) request + message->nod_impure + (int)(IPTR) desc->dsc_address;
		impure->vlu_desc.dsc_dtype = desc->dsc_dtype;
		impure->vlu_desc.dsc_dtype = desc->dsc_dtype;
		impure->vlu_desc.dsc_length = desc->dsc_length;
		impure->vlu_desc.dsc_length = desc->dsc_length;
		impure->vlu_desc.dsc_scale = desc->dsc_scale;
		impure->vlu_desc.dsc_scale = desc->dsc_scale;
 Lines 288-295    Link Here 
		// may happen. I checked triggers and insert/update statements.
		// may happen. I checked triggers and insert/update statements.
		// All seem to work fine.
		// All seem to work fine.
		record =
		record =
			request->req_rpb[(int) node->nod_arg[e_fld_stream]].rpb_record;
			request->req_rpb[(int)(IPTR) node->nod_arg[e_fld_stream]].rpb_record;
		EVL_field(0, record, (USHORT) node->nod_arg[e_fld_id],
		EVL_field(0, record, (USHORT)(IPTR) node->nod_arg[e_fld_id],
				  &impure->vlu_desc);
				  &impure->vlu_desc);
		if (!impure->vlu_desc.dsc_address)
		if (!impure->vlu_desc.dsc_address)
			ERR_post(gds_read_only_field, 0);
			ERR_post(gds_read_only_field, 0);
 Lines 359-365    Link Here 
			impure = (INV) ((SCHAR *) tdbb->tdbb_request + node->nod_impure);
			impure = (INV) ((SCHAR *) tdbb->tdbb_request + node->nod_impure);
			SBM_reset(&impure->inv_bitmap);
			SBM_reset(&impure->inv_bitmap);
			desc = EVL_expr(tdbb, node->nod_arg[0]);
			desc = EVL_expr(tdbb, node->nod_arg[0]);
			id = 1 + 2 * (USHORT) node->nod_arg[1];
			id = 1 + 2 * (USHORT)(IPTR) node->nod_arg[1];
			numbers = desc->dsc_address;
			numbers = desc->dsc_address;
			numbers += id * sizeof(SLONG);
			numbers += id * sizeof(SLONG);
			MOVE_FAST(numbers, &rel_dbkey, sizeof(SLONG));
			MOVE_FAST(numbers, &rel_dbkey, sizeof(SLONG));
 Lines 828-837    Link Here 
			}
			}
			message = node->nod_arg[e_arg_message];
			message = node->nod_arg[e_arg_message];
			format = (FMT) message->nod_arg[e_msg_format];
			format = (FMT) message->nod_arg[e_msg_format];
			desc = &format->fmt_desc[(int) node->nod_arg[e_arg_number]];
			desc = &format->fmt_desc[(int)(IPTR) node->nod_arg[e_arg_number]];
			impure->vlu_desc.dsc_address = (UCHAR *) request +
			impure->vlu_desc.dsc_address = (UCHAR *) request +
				message->nod_impure + (int) desc->dsc_address;
				message->nod_impure + (int)(IPTR) desc->dsc_address;
			impure->vlu_desc.dsc_dtype = desc->dsc_dtype;
			impure->vlu_desc.dsc_dtype = desc->dsc_dtype;
			impure->vlu_desc.dsc_length = desc->dsc_length;
			impure->vlu_desc.dsc_length = desc->dsc_length;
			impure->vlu_desc.dsc_scale = desc->dsc_scale;
			impure->vlu_desc.dsc_scale = desc->dsc_scale;
 Lines 851-864    Link Here 
	case nod_field:
	case nod_field:
		{
		{
			REC record =
			REC record =
				request->req_rpb[(int)node->nod_arg[e_fld_stream]].rpb_record;
				request->req_rpb[(int)(IPTR)node->nod_arg[e_fld_stream]].rpb_record;
			/* In order to "map a null to a default" value (in EVL_field()), 
			/* In order to "map a null to a default" value (in EVL_field()), 
			 * the relation block is referenced. 
			 * the relation block is referenced. 
			 * Reference: Bug 10116, 10424 
			 * Reference: Bug 10116, 10424 
			 */
			 */
			if (!EVL_field(request->req_rpb[(USHORT) node->nod_arg[e_fld_stream]].rpb_relation,
			if (!EVL_field(request->req_rpb[(USHORT)(IPTR) node->nod_arg[e_fld_stream]].rpb_relation,
							record,
							record,
							(USHORT) node->nod_arg[e_fld_id],
							(USHORT)(IPTR) node->nod_arg[e_fld_id],
							&impure->vlu_desc))
							&impure->vlu_desc))
			{
			{
				request->req_flags |= req_null;
				request->req_flags |= req_null;
 Lines 997-1003    Link Here 
			ULONG extract_part;
			ULONG extract_part;
			impure = (VLU) ((SCHAR *) request + node->nod_impure);
			impure = (VLU) ((SCHAR *) request + node->nod_impure);
			extract_part = (ULONG) node->nod_arg[e_extract_part];
			extract_part = (ULONG)(IPTR) node->nod_arg[e_extract_part];
			value = EVL_expr(tdbb, node->nod_arg[e_extract_value]);
			value = EVL_expr(tdbb, node->nod_arg[e_extract_value]);
			impure->vlu_desc.dsc_dtype = dtype_short;
			impure->vlu_desc.dsc_dtype = dtype_short;
 Lines 1173-1180    Link Here 
		switch (node->nod_type) {
		switch (node->nod_type) {
		case nod_gen_id:		/* return a 32-bit generator value */
		case nod_gen_id:		/* return a 32-bit generator value */
			impure->vlu_misc.vlu_long = (SLONG) DPM_gen_id(tdbb,
			impure->vlu_misc.vlu_long = (SLONG)(IPTR) DPM_gen_id(tdbb,
														   (SLONG)
														   (SLONG)(IPTR)
														   node->nod_arg
														   node->nod_arg
														   [e_gen_id], 0,
														   [e_gen_id], 0,
														   MOV_get_int64
														   MOV_get_int64
 Lines 1189-1195    Link Here 
		case nod_gen_id2:
		case nod_gen_id2:
			impure->vlu_misc.vlu_int64 = DPM_gen_id(tdbb,
			impure->vlu_misc.vlu_int64 = DPM_gen_id(tdbb,
													(SLONG)
													(SLONG)(IPTR)
													node->nod_arg[e_gen_id],
													node->nod_arg[e_gen_id],
													0,
													0,
													MOV_get_int64(values[0],
													MOV_get_int64(values[0],
 Lines 1383-1389    Link Here 
		return FALSE;
		return FALSE;
	}
	}
	desc->dsc_address = record->rec_data + (int) desc->dsc_address;
	desc->dsc_address = record->rec_data + (int)(IPTR) desc->dsc_address;
	if (TEST_NULL(record, id)) {
	if (TEST_NULL(record, id)) {
		desc->dsc_flags |= DSC_null;
		desc->dsc_flags |= DSC_null;
 Lines 1725-1733    Link Here 
	{
	{
		from = (*ptr)->nod_arg[e_asgn_from];
		from = (*ptr)->nod_arg[e_asgn_from];
		field = (*ptr)->nod_arg[e_asgn_to];
		field = (*ptr)->nod_arg[e_asgn_to];
		id = (USHORT) field->nod_arg[e_fld_id];
		id = (USHORT)(IPTR) field->nod_arg[e_fld_id];
		record =
		record =
			request->req_rpb[(int) field->nod_arg[e_fld_stream]].rpb_record;
			request->req_rpb[(int)(IPTR) field->nod_arg[e_fld_stream]].rpb_record;
		impure = (VLUX) ((SCHAR *) request + from->nod_impure);
		impure = (VLUX) ((SCHAR *) request + from->nod_impure);
		switch (from->nod_type)
		switch (from->nod_type)
		{
		{
 Lines 3395-3401    Link Here 
	request = tdbb->tdbb_request;
	request = tdbb->tdbb_request;
	impure = (VLU) ((SCHAR *) request + node->nod_impure);
	impure = (VLU) ((SCHAR *) request + node->nod_impure);
	rpb = &request->req_rpb[(int) node->nod_arg[0]];
	rpb = &request->req_rpb[(int)(IPTR) node->nod_arg[0]];
	relation = rpb->rpb_relation;
	relation = rpb->rpb_relation;
/* Format dbkey as vector of relation id, record number */
/* Format dbkey as vector of relation id, record number */
 Lines 4500-4506    Link Here 
	request = tdbb->tdbb_request;
	request = tdbb->tdbb_request;
	impure = (VLU) ((SCHAR *) request + node->nod_impure);
	impure = (VLU) ((SCHAR *) request + node->nod_impure);
	rpb = &request->req_rpb[(int) node->nod_arg[0]];
	rpb = &request->req_rpb[(int)(IPTR) node->nod_arg[0]];
/* If the current transaction has updated the record, the record version
/* If the current transaction has updated the record, the record version
 * coming in from DSQL will have the original transaction # (or current
 * coming in from DSQL will have the original transaction # (or current
(-) firebird-1.5.3.4870-orig/src/jrd/exe.cpp (-17 / +17 lines)
 Lines 375-382    Link Here 
	if (to->nod_type == nod_field)
	if (to->nod_type == nod_field)
	{
	{
		SSHORT id = (USHORT) to->nod_arg[e_fld_id];
		SSHORT id = (USHORT)(IPTR) to->nod_arg[e_fld_id];
		REC record = request->req_rpb[(int) to->nod_arg[e_fld_stream]].rpb_record;
		REC record = request->req_rpb[(int)(IPTR) to->nod_arg[e_fld_stream]].rpb_record;
		if (null) {
		if (null) {
			SET_NULL(record, id);
			SET_NULL(record, id);
		} else {
		} else {
 Lines 639-645    Link Here 
	message = request->req_message;
	message = request->req_message;
	format = (FMT) message->nod_arg[e_msg_format];
	format = (FMT) message->nod_arg[e_msg_format];
	if (msg != (USHORT) message->nod_arg[e_msg_number])
	if (msg != (USHORT)(IPTR) message->nod_arg[e_msg_number])
		ERR_post(gds_req_sync, 0);
		ERR_post(gds_req_sync, 0);
	if (length != format->fmt_length)
	if (length != format->fmt_length)
 Lines 788-794    Link Here 
		for (ptr = node->nod_arg, end = ptr + node->nod_count; ptr < end;
		for (ptr = node->nod_arg, end = ptr + node->nod_count; ptr < end;
			 ptr++) {
			 ptr++) {
			message = (*ptr)->nod_arg[e_send_message];
			message = (*ptr)->nod_arg[e_send_message];
			if ((USHORT) message->nod_arg[e_msg_number] == msg) {
			if ((USHORT)(IPTR) message->nod_arg[e_msg_number] == msg) {
				request->req_next = *ptr;
				request->req_next = *ptr;
				break;
				break;
			}
			}
 Lines 798-804    Link Here 
	format = (FMT) message->nod_arg[e_msg_format];
	format = (FMT) message->nod_arg[e_msg_format];
	if (msg != (USHORT) message->nod_arg[e_msg_number])
	if (msg != (USHORT)(IPTR) message->nod_arg[e_msg_number])
		ERR_post(gds_req_sync, 0);
		ERR_post(gds_req_sync, 0);
	if (length != format->fmt_length)
	if (length != format->fmt_length)
 Lines 1049-1055    Link Here 
		desc = &format->fmt_desc[n];
		desc = &format->fmt_desc[n];
		if (!desc->dsc_address)
		if (!desc->dsc_address)
			continue;
			continue;
		p = record->rec_data + (SLONG) desc->dsc_address;
		p = record->rec_data + (SLONG)(IPTR) desc->dsc_address;
		if (TEST_NULL(record, n))
		if (TEST_NULL(record, n))
		{
		{
			if (length = desc->dsc_length)
			if (length = desc->dsc_length)
 Lines 1134-1140    Link Here 
	request = tdbb->tdbb_request;
	request = tdbb->tdbb_request;
	transaction = request->req_transaction;
	transaction = request->req_transaction;
	rpb = &request->req_rpb[(int) node->nod_arg[e_erase_stream]];
	rpb = &request->req_rpb[(int)(IPTR) node->nod_arg[e_erase_stream]];
	relation = rpb->rpb_relation;
	relation = rpb->rpb_relation;
#ifdef PC_ENGINE
#ifdef PC_ENGINE
 Lines 2015-2021    Link Here 
			case jrd_req::req_evaluate:
			case jrd_req::req_evaluate:
				if (transaction != dbb->dbb_sys_trans) {
				if (transaction != dbb->dbb_sys_trans) {
					UCHAR operation = (UCHAR) node->nod_arg[e_sav_operation];
					UCHAR operation = (UCHAR)(IPTR) node->nod_arg[e_sav_operation];
					TEXT * node_savepoint_name = (TEXT*) node->nod_arg[e_sav_name]; 
					TEXT * node_savepoint_name = (TEXT*) node->nod_arg[e_sav_name]; 
					// Skip the savepoint created by EXE_start
					// Skip the savepoint created by EXE_start
 Lines 2328-2334    Link Here 
				break;
				break;
			case jrd_req::req_unwind:
			case jrd_req::req_unwind:
				if ((request->req_label == (USHORT) node->nod_arg[e_lbl_label]) &&
				if ((request->req_label == (USHORT)(IPTR) node->nod_arg[e_lbl_label]) &&
						(request->req_flags & (req_leave | req_error_handler))) {
						(request->req_flags & (req_leave | req_error_handler))) {
					request->req_flags &= ~req_leave;
					request->req_flags &= ~req_leave;
					request->req_operation = jrd_req::req_return;
					request->req_operation = jrd_req::req_return;
 Lines 2342-2348    Link Here 
		case nod_leave:
		case nod_leave:
			request->req_flags |= req_leave;
			request->req_flags |= req_leave;
			request->req_operation = jrd_req::req_unwind;
			request->req_operation = jrd_req::req_unwind;
			request->req_label = (USHORT) node->nod_arg[0];
			request->req_label = (USHORT)(IPTR) node->nod_arg[0];
			node = node->nod_parent;
			node = node->nod_parent;
			break;
			break;
 Lines 2652-2658    Link Here 
				DSC *desc;
				DSC *desc;
				desc = EVL_expr(tdbb, node->nod_arg[e_gen_value]);
				desc = EVL_expr(tdbb, node->nod_arg[e_gen_value]);
				(void) DPM_gen_id(tdbb, (SLONG) node->nod_arg[e_gen_id], 1,
				(void) DPM_gen_id(tdbb, (SLONG)(IPTR) node->nod_arg[e_gen_id], 1,
								  MOV_get_int64(desc, 0));
								  MOV_get_int64(desc, 0));
				request->req_operation = jrd_req::req_return;
				request->req_operation = jrd_req::req_return;
			}
			}
 Lines 2664-2670    Link Here 
				DSC *desc;
				DSC *desc;
				desc = EVL_expr(tdbb, node->nod_arg[e_gen_value]);
				desc = EVL_expr(tdbb, node->nod_arg[e_gen_value]);
				(void) DPM_gen_id(tdbb, (SLONG) node->nod_arg[e_gen_id], 1,
				(void) DPM_gen_id(tdbb, (SLONG)(IPTR) node->nod_arg[e_gen_id], 1,
								  MOV_get_int64(desc, 0));
								  MOV_get_int64(desc, 0));
				request->req_operation = jrd_req::req_return;
				request->req_operation = jrd_req::req_return;
			}
			}
 Lines 2794-2804    Link Here 
	transaction = request->req_transaction;
	transaction = request->req_transaction;
	impure = (STA) ((SCHAR *) request + node->nod_impure);
	impure = (STA) ((SCHAR *) request + node->nod_impure);
	org_stream = (USHORT) node->nod_arg[e_mod_org_stream];
	org_stream = (USHORT)(IPTR) node->nod_arg[e_mod_org_stream];
	org_rpb = &request->req_rpb[org_stream];
	org_rpb = &request->req_rpb[org_stream];
	relation = org_rpb->rpb_relation;
	relation = org_rpb->rpb_relation;
	new_stream = (USHORT) node->nod_arg[e_mod_new_stream];
	new_stream = (USHORT)(IPTR) node->nod_arg[e_mod_new_stream];
	new_rpb = &request->req_rpb[new_stream];
	new_rpb = &request->req_rpb[new_stream];
#ifdef PC_ENGINE
#ifdef PC_ENGINE
 Lines 3795-3801    Link Here 
	JRD_REQ    request     = tdbb->tdbb_request;
	JRD_REQ    request     = tdbb->tdbb_request;
	JRD_TRA    transaction = request->req_transaction;
	JRD_TRA    transaction = request->req_transaction;
	STA    impure      = (STA) ((SCHAR *) request + node->nod_impure);
	STA    impure      = (STA) ((SCHAR *) request + node->nod_impure);
	SSHORT stream      = (USHORT) node->nod_arg[e_sto_relation]->nod_arg[e_rel_stream];
	SSHORT stream      = (USHORT)(IPTR) node->nod_arg[e_sto_relation]->nod_arg[e_rel_stream];
	RPB*   rpb         = &request->req_rpb[stream];
	RPB*   rpb         = &request->req_rpb[stream];
	JRD_REL    relation    = rpb->rpb_relation;
	JRD_REL    relation    = rpb->rpb_relation;
 Lines 4201-4208    Link Here 
			if (node->nod_type == nod_field)
			if (node->nod_type == nod_field)
			{
			{
				stream = (USHORT) node->nod_arg[e_fld_stream];
				stream = (USHORT)(IPTR) node->nod_arg[e_fld_stream];
				id = (USHORT) node->nod_arg[e_fld_id];
				id = (USHORT)(IPTR) node->nod_arg[e_fld_id];
				relation = request->req_rpb[stream].rpb_relation;
				relation = request->req_rpb[stream].rpb_relation;
				if ((vector = relation->rel_fields) &&
				if ((vector = relation->rel_fields) &&
(-) firebird-1.5.3.4870-orig/src/jrd/ext.cpp (-4 / +4 lines)
 Lines 266-272    Link Here 
	record = rpb->rpb_record;
	record = rpb->rpb_record;
	format = record->rec_format;
	format = record->rec_format;
	offset = (SSHORT) format->fmt_desc[0].dsc_address;
	offset = (SSHORT)(IPTR) format->fmt_desc[0].dsc_address;
	p = record->rec_data + offset;
	p = record->rec_data + offset;
	l = record->rec_length - offset;
	l = record->rec_length - offset;
 Lines 299-305    Link Here 
			continue;
			continue;
		if ( (literal = (LIT) field->fld_missing_value) ) {
		if ( (literal = (LIT) field->fld_missing_value) ) {
			desc = *desc_ptr;
			desc = *desc_ptr;
			desc.dsc_address = record->rec_data + (int) desc.dsc_address;
			desc.dsc_address = record->rec_data + (int)(IPTR) desc.dsc_address;
			if (!MOV_compare(&literal->lit_desc, &desc))
			if (!MOV_compare(&literal->lit_desc, &desc))
				continue;
				continue;
		}
		}
 Lines 512-518    Link Here 
			desc_ptr->dsc_length &&
			desc_ptr->dsc_length &&
			TEST_NULL(record, i))
			TEST_NULL(record, i))
		{
		{
			p = record->rec_data + (int) desc_ptr->dsc_address;
			p = record->rec_data + (int)(IPTR) desc_ptr->dsc_address;
			if ( (literal = (LIT) field->fld_missing_value) ) {
			if ( (literal = (LIT) field->fld_missing_value) ) {
				desc = *desc_ptr;
				desc = *desc_ptr;
				desc.dsc_address = p;
				desc.dsc_address = p;
 Lines 528-534    Link Here 
		}
		}
	}
	}
	offset = (USHORT) format->fmt_desc[0].dsc_address;
	offset = (USHORT)(IPTR) format->fmt_desc[0].dsc_address;
	p = record->rec_data + offset;
	p = record->rec_data + offset;
	l = record->rec_length - offset;
	l = record->rec_length - offset;
(-) firebird-1.5.3.4870-orig/src/jrd/gds.cpp (-1 / +1 lines)
 Lines 2304-2310    Link Here 
		return result;
		return result;
	if (stdio_flag)
	if (stdio_flag)
		if (!(result = ib_fdopen((int) result, "w+")))
		if (!(result = ib_fdopen((int)(IPTR) result, "w+")))
			return (void *)-1;
			return (void *)-1;
	if (expanded_string)
	if (expanded_string)
(-) firebird-1.5.3.4870-orig/src/jrd/idx.cpp (-3 / +3 lines)
 Lines 1055-1066    Link Here 
			 index_number < idx->idx_foreign_primaries->count();
			 index_number < idx->idx_foreign_primaries->count();
			 index_number++) {
			 index_number++) {
			if (idx->idx_id !=
			if (idx->idx_id !=
				(UCHAR) (*idx->idx_foreign_primaries)[index_number]) continue;
				(UCHAR)(IPTR) (*idx->idx_foreign_primaries)[index_number]) continue;
			partner_relation =
			partner_relation =
				MET_relation(tdbb,
				MET_relation(tdbb,
							 (int) (*idx->idx_foreign_relations)[index_number]);
							 (int)(IPTR) (*idx->idx_foreign_relations)[index_number]);
			index_id =
			index_id =
				(USHORT) (*idx->idx_foreign_indexes)[index_number];
				(USHORT)(IPTR) (*idx->idx_foreign_indexes)[index_number];
			if ( (result =
			if ( (result =
				check_partner_index(tdbb, relation, record, transaction, idx,
				check_partner_index(tdbb, relation, record, transaction, idx,
									partner_relation, index_id)) )
									partner_relation, index_id)) )
(-) firebird-1.5.3.4870-orig/src/jrd/inf.cpp (-1 / +1 lines)
 Lines 972-978    Link Here 
			node = request->req_message;
			node = request->req_message;
			if (item == gds_info_message_number)
			if (item == gds_info_message_number)
				length =
				length =
					INF_convert((SLONG) node->nod_arg[e_msg_number],
					INF_convert((SLONG)(IPTR) node->nod_arg[e_msg_number],
								buffer_ptr);
								buffer_ptr);
			else {
			else {
				format = (FMT) node->nod_arg[e_msg_format];
				format = (FMT) node->nod_arg[e_msg_format];
(-) firebird-1.5.3.4870-orig/src/jrd/met.epp (-11 / +11 lines)
 Lines 932-938    Link Here 
			if (desc->dsc_address)
			if (desc->dsc_address)
			{
			{
				format->fmt_length =
				format->fmt_length =
					(ULONG) desc->dsc_address + desc->dsc_length;
					(ULONG)(IPTR) desc->dsc_address + desc->dsc_length;
				break;
				break;
			}
			}
		}
		}
 Lines 2133-2145    Link Here 
				 index_number < references->frgn_reference_ids->count();
				 index_number < references->frgn_reference_ids->count();
				 index_number++)
				 index_number++)
			{
			{
				if (idx->idx_id == (UCHAR) (*references->frgn_reference_ids)
				if (idx->idx_id == (UCHAR)(IPTR) (*references->frgn_reference_ids)
											[index_number])
											[index_number])
				{
				{
					idx->idx_primary_relation =
					idx->idx_primary_relation =
						(USHORT) (*references->frgn_relations)[index_number];
						(USHORT)(IPTR) (*references->frgn_relations)[index_number];
					idx->idx_primary_index =
					idx->idx_primary_index =
						(UCHAR) (*references->frgn_indexes)[index_number];
						(UCHAR)(IPTR) (*references->frgn_indexes)[index_number];
					return TRUE;
					return TRUE;
				}
				}
			}
			}
 Lines 2155-2161    Link Here 
				 index_number < dependencies->prim_reference_ids->count();
				 index_number < dependencies->prim_reference_ids->count();
				 index_number++)
				 index_number++)
			{
			{
				if (idx->idx_id == (UCHAR) (*dependencies->prim_reference_ids)
				if (idx->idx_id == (UCHAR)(IPTR) (*dependencies->prim_reference_ids)
											[index_number])
											[index_number])
				{
				{
					idx->idx_foreign_primaries =
					idx->idx_foreign_primaries =
 Lines 3001-3010    Link Here 
		{
		{
			if ( (node = csb_->csb_rpt[i].csb_message) )
			if ( (node = csb_->csb_rpt[i].csb_message) )
			{
			{
				if ((int) node->nod_arg[e_msg_number] == 0)
				if ((int)(IPTR) node->nod_arg[e_msg_number] == 0)
				{
				{
					procedure->prc_input_msg = node;
					procedure->prc_input_msg = node;
				} else if ((int) node->nod_arg[e_msg_number] == 1)
				} else if ((int)(IPTR) node->nod_arg[e_msg_number] == 1)
				{
				{
					procedure->prc_output_msg = node;
					procedure->prc_output_msg = node;
				}
				}
 Lines 4580-4586    Link Here 
		node = (JRD_NOD) LLS_POP(&csb->csb_dependencies);
		node = (JRD_NOD) LLS_POP(&csb->csb_dependencies);
		if (!node->nod_arg[e_dep_object])
		if (!node->nod_arg[e_dep_object])
			continue;
			continue;
		dpdo_type = (SSHORT) node->nod_arg[e_dep_object_type];
		dpdo_type = (SSHORT)(IPTR) node->nod_arg[e_dep_object_type];
        relation = NULL;
        relation = NULL;
        procedure = NULL;
        procedure = NULL;
        switch (dpdo_type) {
        switch (dpdo_type) {
 Lines 4593-4605    Link Here 
            dpdo_name = (TEXT*) procedure->prc_name->str_data;
            dpdo_name = (TEXT*) procedure->prc_name->str_data;
            break;
            break;
        case obj_exception:
        case obj_exception:
            number = (SLONG) node->nod_arg [e_dep_object];
            number = (SLONG)(IPTR) node->nod_arg [e_dep_object];
            MET_lookup_exception (tdbb, number, name, NULL);
            MET_lookup_exception (tdbb, number, name, NULL);
            dpdo_name = name;
            dpdo_name = name;
            break;
            break;
            /* CVC: Here I'm going to track those pesky things named generators and UDFs. */
            /* CVC: Here I'm going to track those pesky things named generators and UDFs. */
        case obj_generator:
        case obj_generator:
            number = (SLONG) node->nod_arg [e_dep_object];
            number = (SLONG)(IPTR) node->nod_arg [e_dep_object];
            MET_lookup_generator_id (tdbb, number, name);
            MET_lookup_generator_id (tdbb, number, name);
            dpdo_name = name;
            dpdo_name = name;
            break;
            break;
 Lines 4617-4623    Link Here 
		{
		{
			if (field_node->nod_type == nod_field)
			if (field_node->nod_type == nod_field)
			{
			{
				fld_id = (SSHORT) field_node->nod_arg[0];
				fld_id = (SSHORT)(IPTR) field_node->nod_arg[0];
				if (relation)
				if (relation)
				{
				{
					if ( (field = MET_get_field(relation, fld_id)) )
					if ( (field = MET_get_field(relation, fld_id)) )
(-) firebird-1.5.3.4870-orig/src/jrd/opt.cpp (-40 / +40 lines)
 Lines 380-386    Link Here 
		if (node->nod_type != nod_rse)
		if (node->nod_type != nod_rse)
		{
		{
			stream = (USHORT) node->nod_arg[STREAM_INDEX(node)];
			stream = (USHORT)(IPTR) node->nod_arg[STREAM_INDEX(node)];
			assert(stream <= MAX_UCHAR);
			assert(stream <= MAX_UCHAR);
			assert(beds[0] < MAX_STREAMS && beds[0] < MAX_UCHAR);
			assert(beds[0] < MAX_STREAMS && beds[0] < MAX_UCHAR);
			beds[++beds[0]] = (UCHAR) stream;
			beds[++beds[0]] = (UCHAR) stream;
 Lines 400-406    Link Here 
						  (USHORT) (key_streams[0] - i));
						  (USHORT) (key_streams[0] - i));
			assert(local_streams[0] < MAX_STREAMS && local_streams[0] < MAX_UCHAR);
			assert(local_streams[0] < MAX_STREAMS && local_streams[0] < MAX_UCHAR);
			local_streams[++local_streams[0]] =
			local_streams[++local_streams[0]] =
				(UCHAR) node->nod_arg[e_uni_stream];
				(UCHAR)(IPTR) node->nod_arg[e_uni_stream];
		}
		}
		else if (node->nod_type == nod_aggregate) {
		else if (node->nod_type == nod_aggregate) {
			assert((int)node->nod_arg[e_agg_stream] <= MAX_STREAMS);
			assert((int)node->nod_arg[e_agg_stream] <= MAX_STREAMS);
 Lines 408-420    Link Here 
			rsb = gen_aggregate(tdbb, opt_, node);
			rsb = gen_aggregate(tdbb, opt_, node);
			assert(local_streams[0] < MAX_STREAMS && local_streams[0] < MAX_UCHAR);
			assert(local_streams[0] < MAX_STREAMS && local_streams[0] < MAX_UCHAR);
			local_streams[++local_streams[0]] =
			local_streams[++local_streams[0]] =
				(UCHAR) node->nod_arg[e_agg_stream];
				(UCHAR)(IPTR) node->nod_arg[e_agg_stream];
		}
		}
		else if (node->nod_type == nod_procedure) {
		else if (node->nod_type == nod_procedure) {
			rsb = gen_procedure(tdbb, opt_, node);
			rsb = gen_procedure(tdbb, opt_, node);
			assert(local_streams[0] < MAX_STREAMS && local_streams[0] < MAX_UCHAR);
			assert(local_streams[0] < MAX_STREAMS && local_streams[0] < MAX_UCHAR);
			local_streams[++local_streams[0]] =
			local_streams[++local_streams[0]] =
				(UCHAR) node->nod_arg[e_prc_stream];
				(UCHAR)(IPTR) node->nod_arg[e_prc_stream];
		}
		}
		else if (node->nod_type == nod_rse) {
		else if (node->nod_type == nod_rse) {
			compute_rse_streams(csb, (RSE) node, beds);
			compute_rse_streams(csb, (RSE) node, beds);
 Lines 895-901    Link Here 
/* Make sure we have the correct stream */
/* Make sure we have the correct stream */
	if ((USHORT) dbkey->nod_arg[0] != stream)
	if ((USHORT)(IPTR) dbkey->nod_arg[0] != stream)
		return NULL;
		return NULL;
/* If this is a dbkey for the appropriate stream, it's invertable */
/* If this is a dbkey for the appropriate stream, it's invertable */
 Lines 1687-1693    Link Here 
	switch (node->nod_type) {
	switch (node->nod_type) {
	case nod_field:
	case nod_field:
		n = (USHORT) node->nod_arg[e_fld_stream];
		n = (USHORT)(IPTR) node->nod_arg[e_fld_stream];
		if (allowOnlyCurrentStream) {
		if (allowOnlyCurrentStream) {
			if (n != stream) {
			if (n != stream) {
 Lines 1713-1719    Link Here 
	case nod_dbkey:
	case nod_dbkey:
		n = (USHORT) node->nod_arg[0];
		n = (USHORT)(IPTR) node->nod_arg[0];
		if (allowOnlyCurrentStream) {
		if (allowOnlyCurrentStream) {
			if (n != stream) {
			if (n != stream) {
 Lines 1784-1790    Link Here 
	for (ptr = rse->rse_relation, end = ptr + rse->rse_count; ptr < end; ptr++) {
	for (ptr = rse->rse_relation, end = ptr + rse->rse_count; ptr < end; ptr++) {
		if ((*ptr)->nod_type != nod_rse) {
		if ((*ptr)->nod_type != nod_rse) {
			n = (USHORT) (*ptr)->nod_arg[STREAM_INDEX((*ptr))];
			n = (USHORT)(IPTR) (*ptr)->nod_arg[STREAM_INDEX((*ptr))];
			csb->csb_rpt[n].csb_flags |= csb_active;
			csb->csb_rpt[n].csb_flags |= csb_active;
		}
		}
	}
	}
 Lines 1821-1827    Link Here 
	{
	{
		if ((*ptr)->nod_type != nod_rse)
		if ((*ptr)->nod_type != nod_rse)
		{
		{
			n = (USHORT) (*ptr)->nod_arg[STREAM_INDEX((*ptr))];
			n = (USHORT)(IPTR) (*ptr)->nod_arg[STREAM_INDEX((*ptr))];
			csb->csb_rpt[n].csb_flags &= ~csb_active;
			csb->csb_rpt[n].csb_flags &= ~csb_active;
		}
		}
	}
	}
 Lines 1862-1873    Link Here 
	switch (node->nod_type) {
	switch (node->nod_type) {
	case nod_field:
	case nod_field:
		n = (USHORT) node->nod_arg[e_fld_stream];
		n = (USHORT)(IPTR) node->nod_arg[e_fld_stream];
		SET_DEP_BIT(dependencies, n);
		SET_DEP_BIT(dependencies, n);
		return;
		return;
	case nod_dbkey:
	case nod_dbkey:
		n = (USHORT) node->nod_arg[0];
		n = (USHORT)(IPTR) node->nod_arg[0];
		SET_DEP_BIT(dependencies, n);
		SET_DEP_BIT(dependencies, n);
		return;
		return;
 Lines 1923-1929    Link Here 
	for (ptr = rse->rse_relation, end = ptr + rse->rse_count; ptr < end; ptr++) {
	for (ptr = rse->rse_relation, end = ptr + rse->rse_count; ptr < end; ptr++) {
		if ((*ptr)->nod_type != nod_rse) {
		if ((*ptr)->nod_type != nod_rse) {
			n = (USHORT) (*ptr)->nod_arg[STREAM_INDEX((*ptr))];
			n = (USHORT)(IPTR) (*ptr)->nod_arg[STREAM_INDEX((*ptr))];
			CLEAR_DEP_BIT(dependencies, n);
			CLEAR_DEP_BIT(dependencies, n);
		}
		}
	}
	}
 Lines 1951-1957    Link Here 
	if (node->nod_type == nod_relation) {
	if (node->nod_type == nod_relation) {
		assert(streams[0] < MAX_STREAMS && streams[0] < MAX_UCHAR);
		assert(streams[0] < MAX_STREAMS && streams[0] < MAX_UCHAR);
		streams[++streams[0]] = (UCHAR) node->nod_arg[e_rel_stream];
		streams[++streams[0]] = (UCHAR)(IPTR) node->nod_arg[e_rel_stream];
	}
	}
	else if (node->nod_type == nod_union) {
	else if (node->nod_type == nod_union) {
		clauses = node->nod_arg[e_uni_clauses];
		clauses = node->nod_arg[e_uni_clauses];
 Lines 1991-1997    Link Here 
		node = *ptr;
		node = *ptr;
		if (node->nod_type != nod_rse) {
		if (node->nod_type != nod_rse) {
			assert(streams[0] < MAX_STREAMS && streams[0] < MAX_UCHAR);
			assert(streams[0] < MAX_STREAMS && streams[0] < MAX_UCHAR);
			streams[++streams[0]] = (UCHAR) node->nod_arg[STREAM_INDEX(node)];
			streams[++streams[0]] = (UCHAR)(IPTR) node->nod_arg[STREAM_INDEX(node)];
		}
		}
		else {
		else {
			compute_rse_streams(csb, (RSE) node, streams);
			compute_rse_streams(csb, (RSE) node, streams);
 Lines 3289-3295    Link Here 
	JRD_NOD dbkey_temp, *ptr, *end;
	JRD_NOD dbkey_temp, *ptr, *end;
	DEV_BLKCHK(dbkey, type_nod);
	DEV_BLKCHK(dbkey, type_nod);
	if (dbkey->nod_type == nod_dbkey) {
	if (dbkey->nod_type == nod_dbkey) {
		if ((USHORT) dbkey->nod_arg[0] == stream)
		if ((USHORT)(IPTR) dbkey->nod_arg[0] == stream)
			return dbkey;
			return dbkey;
		else {
		else {
			*position = *position + 1;
			*position = *position + 1;
 Lines 3550-3556    Link Here 
		temp[0]++;
		temp[0]++;
		relation_node = plan_node->nod_arg[e_retrieve_relation];
		relation_node = plan_node->nod_arg[e_retrieve_relation];
		temp[temp[0]] = (UCHAR) relation_node->nod_arg[e_rel_stream];
		temp[temp[0]] = (UCHAR)(IPTR) relation_node->nod_arg[e_rel_stream];
	}
	}
	// just because the user specified a join does not mean that 
	// just because the user specified a join does not mean that 
 Lines 3724-3730    Link Here 
	rsb->rsb_type = rsb_aggregate;
	rsb->rsb_type = rsb_aggregate;
	assert((int)node->nod_arg[e_agg_stream] <= MAX_STREAMS);
	assert((int)node->nod_arg[e_agg_stream] <= MAX_STREAMS);
	assert((int)node->nod_arg[e_agg_stream] <= MAX_UCHAR);
	assert((int)node->nod_arg[e_agg_stream] <= MAX_UCHAR);
	rsb->rsb_stream = (UCHAR) node->nod_arg[e_agg_stream];
	rsb->rsb_stream = (UCHAR)(IPTR) node->nod_arg[e_agg_stream];
	rsb->rsb_format = csb->csb_rpt[rsb->rsb_stream].csb_format;
	rsb->rsb_format = csb->csb_rpt[rsb->rsb_stream].csb_format;
	rsb->rsb_next = OPT_compile(tdbb, csb, rse, NULL);
	rsb->rsb_next = OPT_compile(tdbb, csb, rse, NULL);
	rsb->rsb_arg[0] = (RSB) node;
	rsb->rsb_arg[0] = (RSB) node;
 Lines 4088-4095    Link Here 
		 idx->idx_rpt; ptr < end; ptr++, idx_tail++) {
		 idx->idx_rpt; ptr < end; ptr++, idx_tail++) {
		node = *ptr;
		node = *ptr;
		if (node->nod_type != nod_field
		if (node->nod_type != nod_field
			|| (USHORT) node->nod_arg[e_fld_stream] != stream
			|| (USHORT)(IPTR) node->nod_arg[e_fld_stream] != stream
			|| (USHORT) node->nod_arg[e_fld_id] != idx_tail->idx_field
			|| (USHORT)(IPTR) node->nod_arg[e_fld_id] != idx_tail->idx_field
			|| ptr[2*sort->nod_count] /* do not use index if NULLS FIRST is used */
			|| ptr[2*sort->nod_count] /* do not use index if NULLS FIRST is used */
#ifdef SCROLLABLE_CURSORS
#ifdef SCROLLABLE_CURSORS
			)
			)
 Lines 4249-4255    Link Here 
		{
		{
			stream_ptr[i]->stream_rsb = NULL;
			stream_ptr[i]->stream_rsb = NULL;
			stream_ptr[i]->stream_num =
			stream_ptr[i]->stream_num =
				(USHORT) node->nod_arg[STREAM_INDEX(node)];
				(USHORT)(IPTR) node->nod_arg[STREAM_INDEX(node)];
		}
		}
	}
	}
 Lines 4327-4336    Link Here 
	SET_TDBB(tdbb);
	SET_TDBB(tdbb);
	csb = opt->opt_csb;	
	csb = opt->opt_csb;	
	procedure = MET_lookup_procedure_id(tdbb,
	procedure = MET_lookup_procedure_id(tdbb,
	   (SSHORT)node->nod_arg[e_prc_procedure], FALSE, FALSE, 0);
	   (SSHORT)(IPTR)node->nod_arg[e_prc_procedure], FALSE, FALSE, 0);
	rsb = FB_NEW_RPT(*tdbb->tdbb_default, RSB_PRC_count) Rsb();
	rsb = FB_NEW_RPT(*tdbb->tdbb_default, RSB_PRC_count) Rsb();
	rsb->rsb_type = rsb_procedure;
	rsb->rsb_type = rsb_procedure;
	rsb->rsb_stream = (UCHAR) node->nod_arg[e_prc_stream];
	rsb->rsb_stream = (UCHAR)(IPTR) node->nod_arg[e_prc_stream];
	rsb->rsb_procedure = procedure;
	rsb->rsb_procedure = procedure;
	rsb->rsb_format = procedure->prc_format;
	rsb->rsb_format = procedure->prc_format;
	rsb->rsb_impure = CMP_impure(csb, sizeof(struct irsb_procedure));
	rsb->rsb_impure = CMP_impure(csb, sizeof(struct irsb_procedure));
 Lines 4943-4950    Link Here 
			for (node_ptr = sort->nod_arg; node_ptr < end_node; node_ptr++) {
			for (node_ptr = sort->nod_arg; node_ptr < end_node; node_ptr++) {
				node = *node_ptr;
				node = *node_ptr;
				if (node->nod_type == nod_field
				if (node->nod_type == nod_field
					&& (USHORT) node->nod_arg[e_fld_stream] == *ptr
					&& (USHORT)(IPTR) node->nod_arg[e_fld_stream] == *ptr
					&& (USHORT) node->nod_arg[e_fld_id] == id) {
					&& (USHORT)(IPTR) node->nod_arg[e_fld_id] == id) {
					desc = &descriptor;
					desc = &descriptor;
					CMP_get_desc(tdbb, csb, node, desc);
					CMP_get_desc(tdbb, csb, node, desc);
					/* International type text has a computed key */
					/* International type text has a computed key */
 Lines 5041-5048    Link Here 
		map_item->smb_desc.dsc_address = (UCHAR *) map_length;
		map_item->smb_desc.dsc_address = (UCHAR *) map_length;
		map_length += desc->dsc_length;
		map_length += desc->dsc_length;
		if (node->nod_type == nod_field) {
		if (node->nod_type == nod_field) {
			map_item->smb_stream = (USHORT) node->nod_arg[e_fld_stream];
			map_item->smb_stream = (USHORT)(IPTR) node->nod_arg[e_fld_stream];
			map_item->smb_field_id = (USHORT) node->nod_arg[e_fld_id];
			map_item->smb_field_id = (USHORT)(IPTR) node->nod_arg[e_fld_id];
		}
		}
	}
	}
 Lines 5054-5061    Link Here 
   field has already been mentioned as a sort key, don't bother to repeat
   field has already been mentioned as a sort key, don't bother to repeat
   it. */
   it. */
	while (stream_stack) {
	while (stream_stack) {
		id = (USHORT) LLS_POP(&id_stack);
		id = (USHORT)(IPTR) LLS_POP(&id_stack);
		stream = (USHORT) LLS_POP(&stream_stack);
		stream = (USHORT)(IPTR) LLS_POP(&stream_stack);
		format = CMP_format(tdbb, csb, stream);
		format = CMP_format(tdbb, csb, stream);
		desc = &format->fmt_desc[id];
		desc = &format->fmt_desc[id];
		if (id >= format->fmt_count || desc->dsc_length == 0)
		if (id >= format->fmt_count || desc->dsc_length == 0)
 Lines 5384-5390    Link Here 
	rsb = FB_NEW_RPT(*tdbb->tdbb_default, count + nstreams + 1) Rsb();
	rsb = FB_NEW_RPT(*tdbb->tdbb_default, count + nstreams + 1) Rsb();
	rsb->rsb_type = rsb_union;
	rsb->rsb_type = rsb_union;
	rsb->rsb_count = count;
	rsb->rsb_count = count;
	rsb->rsb_stream = (UCHAR) union_node->nod_arg[e_uni_stream];
	rsb->rsb_stream = (UCHAR)(IPTR) union_node->nod_arg[e_uni_stream];
	rsb->rsb_format = csb->csb_rpt[rsb->rsb_stream].csb_format;
	rsb->rsb_format = csb->csb_rpt[rsb->rsb_stream].csb_format;
	rsb->rsb_impure = CMP_impure(csb, sizeof(struct irsb));
	rsb->rsb_impure = CMP_impure(csb, sizeof(struct irsb));
	rsb_ptr = rsb->rsb_arg;
	rsb_ptr = rsb->rsb_arg;
 Lines 5926-5933    Link Here 
	field = boolean->nod_arg[0];
	field = boolean->nod_arg[0];
	if (field->nod_type != nod_field)
	if (field->nod_type != nod_field)
		return NULL;
		return NULL;
	if ((USHORT) field->nod_arg[e_fld_stream] != stream ||
	if ((USHORT)(IPTR) field->nod_arg[e_fld_stream] != stream ||
		(USHORT) field->nod_arg[e_fld_id] != idx->idx_rpt[0].idx_field)
		(USHORT)(IPTR) field->nod_arg[e_fld_id] != idx->idx_rpt[0].idx_field)
		return NULL;
		return NULL;
	node = make_index_node(tdbb, relation, opt->opt_csb, idx);
	node = make_index_node(tdbb, relation, opt->opt_csb, idx);
	retrieval = (IRB) node->nod_arg[e_idx_retrieval];
	retrieval = (IRB) node->nod_arg[e_idx_retrieval];
 Lines 5995-6002    Link Here 
			return NULL;
			return NULL;
	}
	}
	if ((USHORT) field->nod_arg[e_fld_stream] != stream ||
	if ((USHORT)(IPTR) field->nod_arg[e_fld_stream] != stream ||
		(USHORT) field->nod_arg[e_fld_id] != idx->idx_rpt[0].idx_field
		(USHORT)(IPTR) field->nod_arg[e_fld_id] != idx->idx_rpt[0].idx_field
		|| !(idx->idx_rpt[0].idx_itype == idx_string
		|| !(idx->idx_rpt[0].idx_itype == idx_string
			 || idx->idx_rpt[0].idx_itype == idx_byte_array
			 || idx->idx_rpt[0].idx_itype == idx_byte_array
			 || idx->idx_rpt[0].idx_itype == idx_metadata
			 || idx->idx_rpt[0].idx_itype == idx_metadata
 Lines 6094-6103    Link Here 
		if (access_type) {
		if (access_type) {
			for (arg = access_type->nod_arg, end = arg + plan_count;
			for (arg = access_type->nod_arg, end = arg + plan_count;
				 arg < end; arg += 3) {
				 arg < end; arg += 3) {
				if (relation_id != (SSHORT) * arg)
				if (relation_id != (SSHORT)(IPTR) * arg)
					/* index %s cannot be used in the specified plan */
					/* index %s cannot be used in the specified plan */
					ERR_post(gds_index_unused, gds_arg_string, *(arg + 2), 0);
					ERR_post(gds_index_unused, gds_arg_string, *(arg + 2), 0);
				if (idx->idx_id == (USHORT) * (arg + 1))
				if (idx->idx_id == (USHORT)(IPTR) * (arg + 1))
					if (access_type->nod_type == nod_navigational)
					if (access_type->nod_type == nod_navigational)
						idx->idx_runtime_flags |= idx_plan_navigate;
						idx->idx_runtime_flags |= idx_plan_navigate;
					else		/* nod_indices */
					else		/* nod_indices */
 Lines 6169-6181    Link Here 
		   If left side is still not a field, give up */
		   If left side is still not a field, give up */
		if (match->nod_type != nod_field ||
		if (match->nod_type != nod_field ||
			(USHORT) match->nod_arg[e_fld_stream] != stream ||
			(USHORT)(IPTR) match->nod_arg[e_fld_stream] != stream ||
			!computable(opt->opt_csb, value, stream, true, false))
			!computable(opt->opt_csb, value, stream, true, false))
		{
		{
			match = value;
			match = value;
			value = boolean->nod_arg[0];
			value = boolean->nod_arg[0];
			if (match->nod_type != nod_field ||
			if (match->nod_type != nod_field ||
				(USHORT) match->nod_arg[e_fld_stream] != stream ||
				(USHORT)(IPTR) match->nod_arg[e_fld_stream] != stream ||
				!computable(opt->opt_csb, value, stream, true, false))
				!computable(opt->opt_csb, value, stream, true, false))
			{
			{
				return 0;
				return 0;
 Lines 6194-6200    Link Here 
#ifdef EXPRESSION_INDICES
#ifdef EXPRESSION_INDICES
			(idx->idx_expression ||
			(idx->idx_expression ||
#endif
#endif
			 ((USHORT) match->nod_arg[e_fld_id] == idx->idx_rpt[i].idx_field)
			 ((USHORT)(IPTR) match->nod_arg[e_fld_id] == idx->idx_rpt[i].idx_field)
#ifdef EXPRESSION_INDICES
#ifdef EXPRESSION_INDICES
			)
			)
#endif
#endif
 Lines 6582-6588    Link Here 
		return FALSE;
		return FALSE;
	for (streams = river->riv_streams, end =
	for (streams = river->riv_streams, end =
		 streams + river->riv_count; streams < end; streams++)
		 streams + river->riv_count; streams < end; streams++)
		if ((USHORT) node->nod_arg[e_fld_stream] == *streams)
		if ((USHORT)(IPTR) node->nod_arg[e_fld_stream] == *streams)
			return TRUE;
			return TRUE;
	return FALSE;
	return FALSE;
}
}
 Lines 6779-6785    Link Here 
		 ptr < end; ptr++) {
		 ptr < end; ptr++) {
		node = *ptr;
		node = *ptr;
		if (node->nod_type != nod_rse) {
		if (node->nod_type != nod_rse) {
			stream = (USHORT) node->nod_arg[STREAM_INDEX(node)];
			stream = (USHORT)(IPTR) node->nod_arg[STREAM_INDEX(node)];
			csb->csb_rpt[stream].csb_flags &= ~csb_active;
			csb->csb_rpt[stream].csb_flags &= ~csb_active;
		}
		}
		else
		else
(-) firebird-1.5.3.4870-orig/src/jrd/par.cpp (-1 / +1 lines)
 Lines 2518-2524    Link Here 
		node->nod_arg[e_agg_rse] = parse(tdbb, csb, TYPE_RSE);
		node->nod_arg[e_agg_rse] = parse(tdbb, csb, TYPE_RSE);
		node->nod_arg[e_agg_group] = parse(tdbb, csb, OTHER);
		node->nod_arg[e_agg_group] = parse(tdbb, csb, OTHER);
		node->nod_arg[e_agg_map] =
		node->nod_arg[e_agg_map] =
			par_map(tdbb, csb, (USHORT) node->nod_arg[e_agg_stream]);
			par_map(tdbb, csb, (USHORT)(IPTR) node->nod_arg[e_agg_stream]);
		break;
		break;
	case blr_group_by:
	case blr_group_by:
(-) firebird-1.5.3.4870-orig/src/jrd/rse.cpp (-5 / +5 lines)
 Lines 730-737    Link Here 
				/* Initialize the record number of each stream in the union */
				/* Initialize the record number of each stream in the union */
				ptr = &rsb->rsb_arg[rsb->rsb_count];
				ptr = &rsb->rsb_arg[rsb->rsb_count];
				for (end = ptr + (USHORT) * ptr; ++ptr <= end;)
				for (end = ptr + (USHORT)(IPTR) * ptr; ++ptr <= end;)
					request->req_rpb[(USHORT) * ptr].rpb_number = -1;
					request->req_rpb[(USHORT)(IPTR) * ptr].rpb_number = -1;
				rsb = rsb->rsb_arg[0];
				rsb = rsb->rsb_arg[0];
			}
			}
 Lines 2914-2920    Link Here 
	request = tdbb->tdbb_request;
	request = tdbb->tdbb_request;
	stack = (LLS) rsb->rsb_arg[streams];
	stack = (LLS) rsb->rsb_arg[streams];
	for (; stack; stack = stack->lls_next) {
	for (; stack; stack = stack->lls_next) {
		rpb = &request->req_rpb[(USHORT) stack->lls_object];
		rpb = &request->req_rpb[(USHORT)(IPTR) stack->lls_object];
		/* Make sure a record block has been allocated.  If there isn't
		/* Make sure a record block has been allocated.  If there isn't
		   one, first find the format, then allocate the record block */
		   one, first find the format, then allocate the record block */
 Lines 2972-2978    Link Here 
		   list that contains the data to send back
		   list that contains the data to send back
		 */
		 */
		if (IS_INTL_DATA(&item->smb_desc) &&
		if (IS_INTL_DATA(&item->smb_desc) &&
			(USHORT) item->smb_desc.dsc_address <
			(USHORT)(IPTR) item->smb_desc.dsc_address <
			map->smb_key_length * sizeof(ULONG)) continue;
			map->smb_key_length * sizeof(ULONG)) continue;
		rpb = &request->req_rpb[item->smb_stream];
		rpb = &request->req_rpb[item->smb_stream];
 Lines 3238-3244    Link Here 
				   the sort record, then want to sort by language dependent order */
				   the sort record, then want to sort by language dependent order */
				if (IS_INTL_DATA(&item->smb_desc) &&
				if (IS_INTL_DATA(&item->smb_desc) &&
					(USHORT) item->smb_desc.dsc_address <
					(USHORT)(IPTR) item->smb_desc.dsc_address <
					map->smb_key_length * sizeof(ULONG)) {
					map->smb_key_length * sizeof(ULONG)) {
					INTL_string_to_key(tdbb, INTL_INDEX_TYPE(&item->smb_desc),
					INTL_string_to_key(tdbb, INTL_INDEX_TYPE(&item->smb_desc),
									   from, &to, FALSE);
									   from, &to, FALSE);
(-) firebird-1.5.3.4870-orig/src/jrd/sdl.cpp (-1 / +1 lines)
 Lines 699-705    Link Here 
			}
			}
			element_desc = array_desc->ads_rpt[value].ads_desc;
			element_desc = array_desc->ads_rpt[value].ads_desc;
			element_desc.dsc_address = (BLOB_PTR *) arg->sdl_arg_array +
			element_desc.dsc_address = (BLOB_PTR *) arg->sdl_arg_array +
				(SLONG) element_desc.dsc_address +
				(SLONG)(IPTR) element_desc.dsc_address +
				(array_desc->ads_element_length * subscript);
				(array_desc->ads_element_length * subscript);
			/* Is this element within the array bounds? */
			/* Is this element within the array bounds? */
(-) firebird-1.5.3.4870-orig/src/qli/command.cpp (-8 / +8 lines)
 Lines 311-342    Link Here 
	ptr = node->syn_arg;
	ptr = node->syn_arg;
	for (i = 0; i < node->syn_count; i++) {
	for (i = 0; i < node->syn_count; i++) {
		foo = (USHORT) * ptr++;
		foo = (USHORT)(IPTR) * ptr++;
		sw = (ENUM set_t) foo;
		sw = (ENUM set_t) foo;
		value = *ptr++;
		value = *ptr++;
		switch (sw) {
		switch (sw) {
		case set_blr:
		case set_blr:
			QLI_blr = (USHORT) value;
			QLI_blr = (USHORT)(IPTR) value;
			break;
			break;
		case set_statistics:
		case set_statistics:
			QLI_statistics = (USHORT) value;
			QLI_statistics = (USHORT)(IPTR) value;
			break;
			break;
		case set_columns:
		case set_columns:
			QLI_name_columns = QLI_columns = (USHORT) value;
			QLI_name_columns = QLI_columns = (USHORT)(IPTR) value;
			break;
			break;
		case set_lines:
		case set_lines:
			QLI_lines = (USHORT) value;
			QLI_lines = (USHORT)(IPTR) value;
			break;
			break;
		case set_semi:
		case set_semi:
			QLI_semi = (USHORT) value;
			QLI_semi = (USHORT)(IPTR) value;
			break;
			break;
		case set_echo:
		case set_echo:
			QLI_echo = (USHORT) value;
			QLI_echo = (USHORT)(IPTR) value;
			break;
			break;
		case set_form:
		case set_form:
 Lines 399-405    Link Here 
			break;
			break;
		case set_count:
		case set_count:
			QLI_count = (USHORT) value;
			QLI_count = (USHORT)(IPTR) value;
			break;
			break;
		case set_charset:
		case set_charset:
(-) firebird-1.5.3.4870-orig/src/qli/expand.cpp (-1 / +1 lines)
 Lines 2220-2226    Link Here 
	for (i = 0; i < node->nod_count; i++) {
	for (i = 0; i < node->nod_count; i++) {
		expr = *syn_ptr++;
		expr = *syn_ptr++;
		if (expr->syn_type == nod_position) {
		if (expr->syn_type == nod_position) {
			position = (USHORT) expr->syn_arg[0];
			position = (USHORT)(IPTR) expr->syn_arg[0];
			if (!list || !position || position > list->nod_count)
			if (!list || !position || position > list->nod_count)
				IBERROR(152);	/* Msg152 invalid ORDER BY ordinal */
				IBERROR(152);	/* Msg152 invalid ORDER BY ordinal */
			item = (ITM) list->nod_arg[position - 1];
			item = (ITM) list->nod_arg[position - 1];
(-) firebird-1.5.3.4870-orig/src/qli/meta.epp (-1 / +1 lines)
 Lines 3795-3801    Link Here 
	RLB rlb;
	RLB rlb;
	privileges = (USHORT) node->syn_arg[s_grant_privileges];
	privileges = (USHORT)(IPTR) node->syn_arg[s_grant_privileges];
	relation = (QLI_REL) node->syn_arg[s_grant_relation];
	relation = (QLI_REL) node->syn_arg[s_grant_relation];
	relation->rel_database = database = setup_update(relation->rel_database);
	relation->rel_database = database = setup_update(relation->rel_database);
	relation_name = relation->rel_symbol->sym_string;
	relation_name = relation->rel_symbol->sym_string;