|
From: <di...@us...> - 2012-11-01 01:36:35
|
Revision: 57271
http://firebird.svn.sourceforge.net/firebird/?rev=57271&view=rev
Author: dimitr
Date: 2012-11-01 01:36:27 +0000 (Thu, 01 Nov 2012)
Log Message:
-----------
Wiped out the code that never worked due to the missing support for native quads.
Modified Paths:
--------------
firebird/trunk/builds/mac_os_x/CS/CS.pbproj/project.pbxproj
firebird/trunk/builds/win32/msvc10/common.vcxproj
firebird/trunk/builds/win32/msvc8/common.vcproj
firebird/trunk/builds/win32/msvc9/common.vcproj
firebird/trunk/src/common/common.h
firebird/trunk/src/common/cvt.cpp
firebird/trunk/src/dsql/AggNodes.cpp
firebird/trunk/src/dsql/BoolNodes.cpp
firebird/trunk/src/dsql/ExprNodes.cpp
firebird/trunk/src/dsql/Nodes.h
firebird/trunk/src/gpre/cme.cpp
firebird/trunk/src/isql/isql.epp
firebird/trunk/src/jrd/align.h
firebird/trunk/src/jrd/cvt2.cpp
firebird/trunk/src/jrd/evl.cpp
Modified: firebird/trunk/builds/mac_os_x/CS/CS.pbproj/project.pbxproj
===================================================================
--- firebird/trunk/builds/mac_os_x/CS/CS.pbproj/project.pbxproj 2012-11-01 00:16:55 UTC (rev 57270)
+++ firebird/trunk/builds/mac_os_x/CS/CS.pbproj/project.pbxproj 2012-11-01 01:36:27 UTC (rev 57271)
@@ -5073,21 +5073,6 @@
path = qatest.cpp;
refType = 4;
};
- F616C6910200B0D001EF0ADE = {
- isa = PBXFileReference;
- path = quad.cpp;
- refType = 4;
- };
- F616C6920200B0D001EF0ADE = {
- isa = PBXFileReference;
- path = quad.h;
- refType = 4;
- };
- F616C6930200B0D001EF0ADE = {
- isa = PBXFileReference;
- path = quad_proto.h;
- refType = 4;
- };
F616C6940200B0D001EF0ADE = {
isa = PBXFileReference;
path = que.h;
Modified: firebird/trunk/builds/win32/msvc10/common.vcxproj
===================================================================
--- firebird/trunk/builds/win32/msvc10/common.vcxproj 2012-11-01 00:16:55 UTC (rev 57270)
+++ firebird/trunk/builds/win32/msvc10/common.vcxproj 2012-11-01 01:36:27 UTC (rev 57271)
@@ -66,7 +66,6 @@
<ClCompile Include="..\..\..\src\common\os\win32\os_utils.cpp" />
<ClCompile Include="..\..\..\src\common\os\win32\path_utils.cpp" />
<ClCompile Include="..\..\..\src\common\pretty.cpp" />
- <ClCompile Include="..\..\..\src\common\quad.cpp" />
<ClCompile Include="..\..\..\src\common\ScanDir.cpp" />
<ClCompile Include="..\..\..\src\common\sdl.cpp" />
<ClCompile Include="..\..\..\src\common\security.cpp" />
@@ -165,8 +164,6 @@
<ClInclude Include="..\..\..\src\common\os\os_utils.h" />
<ClInclude Include="..\..\..\src\common\os\path_utils.h" />
<ClInclude Include="..\..\..\src\common\prett_proto.h" />
- <ClInclude Include="..\..\..\src\common\quad.h" />
- <ClInclude Include="..\..\..\src\common\quad_proto.h" />
<ClInclude Include="..\..\..\src\common\ScanDir.h" />
<ClInclude Include="..\..\..\src\common\sdl.h" />
<ClInclude Include="..\..\..\src\common\sdltable.h" />
Modified: firebird/trunk/builds/win32/msvc8/common.vcproj
===================================================================
--- firebird/trunk/builds/win32/msvc8/common.vcproj 2012-11-01 00:16:55 UTC (rev 57270)
+++ firebird/trunk/builds/win32/msvc8/common.vcproj 2012-11-01 01:36:27 UTC (rev 57271)
@@ -384,10 +384,6 @@
>
</File>
<File
- RelativePath="..\..\..\src\common\quad.cpp"
- >
- </File>
- <File
RelativePath="..\..\..\src\common\ScanDir.cpp"
>
</File>
@@ -797,14 +793,6 @@
>
</File>
<File
- RelativePath="..\..\..\src\common\quad.h"
- >
- </File>
- <File
- RelativePath="..\..\..\src\common\quad_proto.h"
- >
- </File>
- <File
RelativePath="..\..\..\src\common\classes\QualifiedName.h"
>
</File>
Modified: firebird/trunk/builds/win32/msvc9/common.vcproj
===================================================================
--- firebird/trunk/builds/win32/msvc9/common.vcproj 2012-11-01 00:16:55 UTC (rev 57270)
+++ firebird/trunk/builds/win32/msvc9/common.vcproj 2012-11-01 01:36:27 UTC (rev 57271)
@@ -384,10 +384,6 @@
>
</File>
<File
- RelativePath="..\..\..\src\common\quad.cpp"
- >
- </File>
- <File
RelativePath="..\..\..\src\common\ScanDir.cpp"
>
</File>
@@ -797,14 +793,6 @@
>
</File>
<File
- RelativePath="..\..\..\src\common\quad.h"
- >
- </File>
- <File
- RelativePath="..\..\..\src\common\quad_proto.h"
- >
- </File>
- <File
RelativePath="..\..\..\src\common\classes\QualifiedName.h"
>
</File>
Modified: firebird/trunk/src/common/common.h
===================================================================
--- firebird/trunk/src/common/common.h 2012-11-01 00:16:55 UTC (rev 57270)
+++ firebird/trunk/src/common/common.h 2012-11-01 01:36:27 UTC (rev 57271)
@@ -916,6 +916,14 @@
#define FB_LONG_DOUBLE_SECOND 1
#endif
+// Used in quad operations
+#ifndef WORDS_BIGENDIAN
+const int LOW_WORD = 0;
+const int HIGH_WORD = 1;
+#else
+const int LOW_WORD = 1;
+const int HIGH_WORD = 0;
+#endif
#ifndef HAVE_WORKING_VFORK
#define vfork fork
Modified: firebird/trunk/src/common/cvt.cpp
===================================================================
--- firebird/trunk/src/common/cvt.cpp 2012-11-01 00:16:55 UTC (rev 57270)
+++ firebird/trunk/src/common/cvt.cpp 2012-11-01 01:36:27 UTC (rev 57271)
@@ -45,7 +45,6 @@
#include "../common/classes/timestamp.h"
#include "../common/cvt.h"
#include "../jrd/intl.h"
-#include "../common/quad.h"
#include "../jrd/val.h"
#include "../common/classes/VaryStr.h"
#include "../common/classes/FpeControl.h"
@@ -144,7 +143,6 @@
class DummyException {};
-#ifndef NATIVE_QUAD
#ifndef WORDS_BIGENDIAN
static const SQUAD quad_min_int = { 0, SLONG_MIN };
static const SQUAD quad_max_int = { -1, SLONG_MAX };
@@ -152,7 +150,6 @@
static const SQUAD quad_min_int = { SLONG_MIN, 0 };
static const SQUAD quad_max_int = { SLONG_MAX, -1 };
#endif
-#endif
static const double eps_double = 1e-14;
@@ -314,7 +311,7 @@
* nice, formatted text.
*
**************************************/
-#ifndef NATIVE_QUAD
+
// For now, this routine does not handle quadwords unless this is
// supported by the platform as a native datatype.
@@ -323,7 +320,6 @@
fb_assert(false);
cb->err(Arg::Gds(isc_badblk)); // internal error
}
-#endif
SSHORT pad_count = 0, decimal = 0, neg = 0;
@@ -1081,16 +1077,12 @@
break;
case dtype_quad:
-#ifdef NATIVE_QUAD
- value = *((SQUAD *) desc->dsc_address);
-#else
value = ((SLONG *) desc->dsc_address)[HIGH_WORD];
value *= -((double) LONG_MIN_real);
if (value < 0)
value -= ((ULONG *) desc->dsc_address)[LOW_WORD];
else
value += ((ULONG *) desc->dsc_address)[LOW_WORD];
-#endif
break;
case dtype_int64:
@@ -2047,7 +2039,7 @@
* or if it is in hexadecimal notation.
*
**************************************/
-#ifndef NATIVE_QUAD
+
// For now, this routine does not handle quadwords unless this is
// supported by the platform as a native datatype.
@@ -2056,7 +2048,6 @@
fb_assert(false);
err(Arg::Gds(isc_badblk)); // internal error
}
-#endif
dsc errd;
MOVE_CLEAR(&errd, sizeof(errd));
@@ -2371,49 +2362,6 @@
}
break;
- case dtype_real:
- case dtype_double:
- if (desc->dsc_dtype == dtype_real)
- d = *((float*) p);
- else if (desc->dsc_dtype == DEFAULT_DOUBLE)
- d = *((double*) p);
-
- if (scale > 0)
- {
- do {
- d /= 10.;
- } while (--scale);
- }
- else if (scale < 0)
- {
- do {
- d *= 10.;
- } while (++scale);
- }
-
- if (d > 0)
- d += 0.5;
- else
- d -= 0.5;
-
- // make sure the cast will succeed - different machines
- // do different things if the value is larger than a quad
- // can hold
-
- if (d < (double) QUAD_MIN_real || (double) QUAD_MAX_real < d)
- {
- // If rounding would yield a legitimate value, permit it
-
- if (d > (double) QUAD_MIN_real - 1.)
- return QUAD_MIN_int;
-
- if (d < (double) QUAD_MAX_real + 1.)
- return QUAD_MAX_int;
-
- err(Arg::Gds(isc_arith_except) << Arg::Gds(isc_numeric_out_of_range));
- }
- return QUAD_FROM_DOUBLE(d, err);
-
case dtype_varying:
case dtype_cstring:
case dtype_text:
@@ -2442,39 +2390,11 @@
// Last, but not least, adjust for scale
- if (scale == 0)
- return value;
-
-#ifndef NATIVE_QUAD
- fb_assert(false);
- err(Arg::Gds(isc_badblk)); // internal error
-#else
- if (scale > 0)
+ if (scale != 0)
{
- SLONG fraction = 0;
- do {
- if (scale == 1)
- fraction = value % 10;
- value /= 10;
- } while (--scale);
- if (fraction > 4)
- value++;
- // The following 2 lines are correct for platforms where
- // ((-85 / 10 == -8) && (-85 % 10 == -5)). If we port to
- // a platform where ((-85 / 10 == -9) && (-85 % 10 == 5)),
- // we'll have to change this depending on the platform.
- else if (fraction < -4)
- value--;
+ fb_assert(false);
+ err(Arg::Gds(isc_badblk)); // internal error
}
- else
- {
- do {
- if (value > QUAD_LIMIT || value < -QUAD_LIMIT)
- err(Arg::Gds(isc_arith_except) << Arg::Gds(isc_numeric_out_of_range));
- value *= 10;
- } while (++scale);
- }
-#endif
return value;
}
Modified: firebird/trunk/src/dsql/AggNodes.cpp
===================================================================
--- firebird/trunk/src/dsql/AggNodes.cpp 2012-11-01 00:16:55 UTC (rev 57270)
+++ firebird/trunk/src/dsql/AggNodes.cpp 2012-11-01 01:36:27 UTC (rev 57271)
@@ -968,28 +968,17 @@
nodFlags |= FLAG_DOUBLE;
return;
- case dtype_quad:
- desc->dsc_dtype = dtype_quad;
- desc->dsc_length = sizeof(SQUAD);
- desc->dsc_sub_type = 0;
- desc->dsc_flags = 0;
- nodScale = desc->dsc_scale;
- nodFlags |= FLAG_QUAD;
-#ifdef NATIVE_QUAD
- return;
-#endif
-
- default:
- fb_assert(false);
- // fall into
-
case dtype_sql_time:
case dtype_sql_date:
case dtype_timestamp:
+ case dtype_quad:
case dtype_blob:
case dtype_array:
case dtype_dbkey:
break; // break to error reporting code
+
+ default:
+ fb_assert(false);
}
}
else
@@ -1026,28 +1015,17 @@
nodFlags |= FLAG_DOUBLE;
return;
- case dtype_quad:
- desc->dsc_dtype = dtype_quad;
- desc->dsc_length = sizeof(SQUAD);
- desc->dsc_sub_type = 0;
- desc->dsc_flags = 0;
- nodScale = desc->dsc_scale;
- nodFlags |= FLAG_QUAD;
-#ifdef NATIVE_QUAD
- return;
-#endif
-
- default:
- fb_assert(false);
- // fall into
-
case dtype_sql_time:
case dtype_sql_date:
case dtype_timestamp:
+ case dtype_quad:
case dtype_blob:
case dtype_array:
case dtype_dbkey:
break; // break to error reporting code
+
+ default:
+ fb_assert(false);
}
}
Modified: firebird/trunk/src/dsql/BoolNodes.cpp
===================================================================
--- firebird/trunk/src/dsql/BoolNodes.cpp 2012-11-01 00:16:55 UTC (rev 57270)
+++ firebird/trunk/src/dsql/BoolNodes.cpp 2012-11-01 01:36:27 UTC (rev 57271)
@@ -25,7 +25,6 @@
#include "../dsql/StmtNodes.h"
#include "../jrd/align.h"
#include "../jrd/blr.h"
-#include "../common/quad.h"
#include "../jrd/tra.h"
#include "../jrd/recsrc/RecordSource.h"
#include "../jrd/Optimizer.h"
Modified: firebird/trunk/src/dsql/ExprNodes.cpp
===================================================================
--- firebird/trunk/src/dsql/ExprNodes.cpp 2012-11-01 00:16:55 UTC (rev 57270)
+++ firebird/trunk/src/dsql/ExprNodes.cpp 2012-11-01 01:36:27 UTC (rev 57271)
@@ -28,7 +28,6 @@
#include "../dsql/StmtNodes.h"
#include "../jrd/align.h"
#include "../jrd/blr.h"
-#include "../common/quad.h"
#include "../jrd/tra.h"
#include "../jrd/Function.h"
#include "../jrd/SysFunction.h"
@@ -1038,26 +1037,12 @@
return;
case dtype_quad:
- nodFlags |= FLAG_QUAD;
- desc->dsc_dtype = dtype_quad;
- desc->dsc_length = sizeof(SQUAD);
- if (DTYPE_IS_TEXT(desc1.dsc_dtype) || DTYPE_IS_TEXT(desc2.dsc_dtype))
- desc->dsc_scale = 0;
- else
- desc->dsc_scale = MIN(desc1.dsc_scale, desc2.dsc_scale);
- nodScale = desc->dsc_scale;
- desc->dsc_sub_type = 0;
- desc->dsc_flags = 0;
-#ifdef NATIVE_QUAD
- return;
-#endif
- default:
- fb_assert(false);
- // FALLINTO
-
case dtype_blob:
case dtype_array:
break;
+
+ default:
+ fb_assert(false);
}
break;
@@ -1309,27 +1294,12 @@
return;
case dtype_quad:
- nodFlags |= FLAG_QUAD;
- desc->dsc_dtype = dtype_quad;
- desc->dsc_length = sizeof(SQUAD);
- if (DTYPE_IS_TEXT(desc1.dsc_dtype) || DTYPE_IS_TEXT(desc2.dsc_dtype))
- desc->dsc_scale = 0;
- else
- desc->dsc_scale = MIN(desc1.dsc_scale, desc2.dsc_scale);
- nodScale = desc->dsc_scale;
- desc->dsc_sub_type = 0;
- desc->dsc_flags = 0;
-#ifdef NATIVE_QUAD
- return;
-#endif
-
- default:
- fb_assert(false);
- // FALLINTO
-
case dtype_blob:
case dtype_array:
break;
+
+ default:
+ fb_assert(false);
}
break;
@@ -1567,23 +1537,6 @@
return result;
}
- // Handle (oh, ugh) quad arithmetic
-
- if (node->nodFlags & FLAG_QUAD)
- {
- const SQUAD q1 = MOV_get_quad(desc, node->nodScale);
- const SQUAD q2 = MOV_get_quad(&value->vlu_desc, node->nodScale);
-
- result->dsc_dtype = dtype_quad;
- result->dsc_length = sizeof(SQUAD);
- result->dsc_scale = node->nodScale;
- value->vlu_misc.vlu_quad = (blrOp == blr_subtract) ?
- QUAD_SUBTRACT(q2, q1, ERR_post) : QUAD_ADD(q1, q2, ERR_post);
- result->dsc_address = (UCHAR*) &value->vlu_misc.vlu_quad;
-
- return result;
- }
-
// Everything else defaults to longword
// CVC: Maybe we should upgrade the sum to double if it doesn't fit?
@@ -1643,23 +1596,6 @@
return result;
}
- // Handle (oh, ugh) quad arithmetic
-
- if (node->nodFlags & FLAG_QUAD)
- {
- const SQUAD q1 = MOV_get_quad(desc, node->nodScale);
- const SQUAD q2 = MOV_get_quad(&value->vlu_desc, node->nodScale);
-
- result->dsc_dtype = dtype_quad;
- result->dsc_length = sizeof(SQUAD);
- result->dsc_scale = node->nodScale;
- value->vlu_misc.vlu_quad = (blrOp == blr_subtract) ?
- QUAD_SUBTRACT(q2, q1, ERR_post) : QUAD_ADD(q1, q2, ERR_post);
- result->dsc_address = (UCHAR*) &value->vlu_misc.vlu_quad;
-
- return result;
- }
-
// Everything else defaults to int64
SINT64 i1 = MOV_get_int64(desc, node->nodScale);
@@ -1727,22 +1663,6 @@
return &value->vlu_desc;
}
- // Handle (oh, ugh) quad arithmetic
-
- if (nodFlags & FLAG_QUAD)
- {
- const SSHORT scale = NUMERIC_SCALE(value->vlu_desc);
- const SQUAD q1 = MOV_get_quad(desc, nodScale - scale);
- const SQUAD q2 = MOV_get_quad(&value->vlu_desc, scale);
- value->vlu_desc.dsc_dtype = dtype_quad;
- value->vlu_desc.dsc_length = sizeof(SQUAD);
- value->vlu_desc.dsc_scale = nodScale;
- value->vlu_misc.vlu_quad = QUAD_MULTIPLY(q1, q2, ERR_post);
- value->vlu_desc.dsc_address = (UCHAR*) &value->vlu_misc.vlu_quad;
-
- return &value->vlu_desc;
- }
-
// Everything else defaults to longword
/* CVC: With so many problems cropping with dialect 1 and multiplication,
@@ -1817,23 +1737,6 @@
return &value->vlu_desc;
}
- // Handle (oh, ugh) quad arithmetic
-
- if (nodFlags & FLAG_QUAD)
- {
- const SSHORT scale = NUMERIC_SCALE(value->vlu_desc);
- const SQUAD q1 = MOV_get_quad(desc, nodScale - scale);
- const SQUAD q2 = MOV_get_quad(&value->vlu_desc, scale);
-
- value->vlu_desc.dsc_dtype = dtype_quad;
- value->vlu_desc.dsc_length = sizeof(SQUAD);
- value->vlu_desc.dsc_scale = nodScale;
- value->vlu_misc.vlu_quad = QUAD_MULTIPLY(q1, q2, ERR_post);
- value->vlu_desc.dsc_address = (UCHAR*) &value->vlu_misc.vlu_quad;
-
- return &value->vlu_desc;
- }
-
// Everything else defaults to int64
const SSHORT scale = NUMERIC_SCALE(value->vlu_desc);
@@ -7093,7 +6996,10 @@
void NegateNode::getDesc(thread_db* tdbb, CompilerScratch* csb, dsc* desc)
{
arg->getDesc(tdbb, csb, desc);
- nodFlags = arg->nodFlags & (FLAG_DOUBLE | FLAG_QUAD);
+ nodFlags = arg->nodFlags & FLAG_DOUBLE;
+
+ if (desc->dsc_dtype == dtype_quad)
+ IBERROR(224); // msg 224 quad word arithmetic not supported
}
ValueExprNode* NegateNode::copy(thread_db* tdbb, NodeCopier& copier) const
@@ -7147,11 +7053,6 @@
impure->vlu_misc.vlu_double = -impure->vlu_misc.vlu_double;
break;
- case dtype_quad:
- impure->vlu_misc.vlu_quad =
- QUAD_NEGATE(impure->vlu_misc.vlu_quad, ERR_post);
- break;
-
case dtype_int64:
if (impure->vlu_misc.vlu_int64 == MIN_SINT64)
ERR_post(Arg::Gds(isc_exception_integer_overflow));
@@ -9247,29 +9148,18 @@
nodFlags |= FLAG_DOUBLE;
return;
- case dtype_quad:
- desc->dsc_dtype = dtype_quad;
- desc->dsc_length = sizeof(SQUAD);
- desc->dsc_sub_type = 0;
- desc->dsc_flags = 0;
- nodScale = desc->dsc_scale;
- nodFlags |= FLAG_QUAD;
-#ifdef NATIVE_QUAD
- return;
-#endif
-
- default:
- fb_assert(false);
- // fall into
-
case dtype_sql_time:
case dtype_sql_date:
case dtype_timestamp:
+ case dtype_quad:
case dtype_blob:
case dtype_array:
case dtype_dbkey:
// break to error reporting code
break;
+
+ default:
+ fb_assert(false);
}
if (dtype == dtype_quad)
Modified: firebird/trunk/src/dsql/Nodes.h
===================================================================
--- firebird/trunk/src/dsql/Nodes.h 2012-11-01 00:16:55 UTC (rev 57270)
+++ firebird/trunk/src/dsql/Nodes.h 2012-11-01 01:36:27 UTC (rev 57271)
@@ -473,10 +473,9 @@
static const unsigned FLAG_ANSI_NOT = 0x08; // ANY/ALL predicate is prefixed with a NOT one.
// Value flags.
- static const unsigned FLAG_QUAD = 0x10; // Compute in quad (default is long).
- static const unsigned FLAG_DOUBLE = 0x20;
- static const unsigned FLAG_DATE = 0x40;
- static const unsigned FLAG_VALUE = 0x80; // Full value area required in impure space.
+ static const unsigned FLAG_DOUBLE = 0x10;
+ static const unsigned FLAG_DATE = 0x20;
+ static const unsigned FLAG_VALUE = 0x40; // Full value area required in impure space.
explicit ExprNode(Type aType, MemoryPool& pool, Kind aKind)
: DmlNode(pool, aKind),
Modified: firebird/trunk/src/gpre/cme.cpp
===================================================================
--- firebird/trunk/src/gpre/cme.cpp 2012-11-01 00:16:55 UTC (rev 57270)
+++ firebird/trunk/src/gpre/cme.cpp 2012-11-01 01:36:27 UTC (rev 57271)
@@ -700,13 +700,6 @@
f->fld_scale = field1.fld_scale + field2.fld_scale;
f->fld_length = sizeof(SLONG);
break;
-#ifdef NATIVE_QUAD
- case dtype_quad:
- f->fld_dtype = dtype_quad;
- f->fld_scale = field1.fld_scale + field2.fld_scale;
- f->fld_length = sizeof(ISC_QUAD);
- break;
-#endif
case dtype_int64:
f->fld_dtype = dtype_int64;
f->fld_scale = field1.fld_scale + field2.fld_scale;
@@ -804,13 +797,6 @@
f->fld_scale = MIN(field1.fld_scale, field2.fld_scale);
f->fld_length = sizeof(SLONG);
break;
-#ifdef NATIVE_QUAD
- case dtype_quad:
- f->fld_dtype = dtype_quad;
- f->fld_scale = MIN(field1.fld_scale, field2.fld_scale);
- f->fld_length = sizeof(ISC_QUAD);
- break;
-#endif
// Begin date/time/timestamp support
case dtype_sql_date:
f->fld_dtype = dtype_sql_date;
Modified: firebird/trunk/src/isql/isql.epp
===================================================================
--- firebird/trunk/src/isql/isql.epp 2012-11-01 00:16:55 UTC (rev 57270)
+++ firebird/trunk/src/isql/isql.epp 2012-11-01 01:36:27 UTC (rev 57271)
@@ -7386,30 +7386,6 @@
}
break;
-#ifdef NATIVE_QUAD
- case SQL_QUAD:
- if (dscale)
- {
- // Handle floating scale and precision
-
- double numeric = *(SQUAD*) var->sqldata;
- const double exponent = -dscale;
- numeric = numeric / pow(10.0, exponent);
- sprintf(p, "%*.*f ", length, -dscale, numeric);
- if (List) {
- isqlGlob.printf("%.*f%s", -dscale, numeric, NEWLINE);
- }
- }
- else
- {
- sprintf(p, "%*ld ", length, *(SQUAD*) var->sqldata);
- if (List) {
- isqlGlob.printf("%ld%s", *(SQUAD*) var->sqldata, NEWLINE);
- }
- }
- break;
-#endif
-
case SQL_FLOAT:
{
//
@@ -8398,11 +8374,6 @@
case SQL_INT64:
disp_length = INT64_LEN;
break;
-#ifdef NATIVE_QUAD
- case SQL_QUAD:
- disp_length = QUAD_LEN;
- break;
-#endif
case SQL_BOOLEAN:
disp_length = BOOLEAN_LEN;
break;
Modified: firebird/trunk/src/jrd/align.h
===================================================================
--- firebird/trunk/src/jrd/align.h 2012-11-01 00:16:55 UTC (rev 57270)
+++ firebird/trunk/src/jrd/align.h 2012-11-01 01:36:27 UTC (rev 57271)
@@ -92,11 +92,7 @@
sizeof(SCHAR), /* dtype_byte */
sizeof(SSHORT), /* dtype_short */
sizeof(SLONG), /* dtype_long */
-#ifndef NATIVE_QUAD
sizeof(SLONG), /* dtype_quad */
-#else
- sizeof(SQUAD), /* dtype_quad */
-#endif
sizeof(float), /* dtype_real */
FB_DOUBLE_ALIGN, /* dtype_double */
FB_DOUBLE_ALIGN, /* dtype_d_float */
Modified: firebird/trunk/src/jrd/cvt2.cpp
===================================================================
--- firebird/trunk/src/jrd/cvt2.cpp 2012-11-01 00:16:55 UTC (rev 57270)
+++ firebird/trunk/src/jrd/cvt2.cpp 2012-11-01 01:36:27 UTC (rev 57271)
@@ -31,7 +31,6 @@
#include "../jrd/jrd.h"
#include "../jrd/val.h"
-#include "../common/quad.h"
#include "gen/iberror.h"
#include "../jrd/intl.h"
#include "../common/gdsassert.h"
@@ -96,7 +95,31 @@
dtype_boolean // compares with nothing except itself
};
+static inline SSHORT QUAD_COMPARE(const SQUAD* arg1, const SQUAD* arg2)
+{
+/**************************************
+ *
+ * Q U A D _ c o m p a r e
+ *
+ **************************************
+ *
+ * Functional description
+ * Compare two descriptors. Return (-1, 0, 1) if a<b, a=b, or a>b.
+ *
+ **************************************/
+ if (((SLONG *) arg1)[HIGH_WORD] > ((SLONG *) arg2)[HIGH_WORD])
+ return 1;
+ if (((SLONG *) arg1)[HIGH_WORD] < ((SLONG *) arg2)[HIGH_WORD])
+ return -1;
+ if (((ULONG *) arg1)[LOW_WORD] > ((ULONG *) arg2)[LOW_WORD])
+ return 1;
+ if (((ULONG *) arg1)[LOW_WORD] < ((ULONG *) arg2)[LOW_WORD])
+ return -1;
+ return 0;
+}
+
+
bool CVT2_get_binary_comparable_desc(dsc* result, const dsc* arg1, const dsc* arg2)
{
/**************************************
@@ -217,7 +240,7 @@
return -1;
case dtype_quad:
- return QUAD_COMPARE(*(SQUAD *) p1, *(SQUAD *) p2);
+ return QUAD_COMPARE((SQUAD *) p1, (SQUAD *) p2);
case dtype_int64:
if (*(SINT64 *) p1 == *(SINT64 *) p2)
@@ -456,7 +479,7 @@
scale = arg1->dsc_scale;
const SQUAD temp1 = CVT_get_quad(arg1, scale, ERR_post);
const SQUAD temp2 = CVT_get_quad(arg2, scale, ERR_post);
- return QUAD_COMPARE(temp1, temp2);
+ return QUAD_COMPARE(&temp1, &temp2);
}
case dtype_real:
Modified: firebird/trunk/src/jrd/evl.cpp
===================================================================
--- firebird/trunk/src/jrd/evl.cpp 2012-11-01 00:16:55 UTC (rev 57270)
+++ firebird/trunk/src/jrd/evl.cpp 2012-11-01 01:36:27 UTC (rev 57271)
@@ -80,7 +80,6 @@
#include "../jrd/intl.h"
#include "../jrd/intl_classes.h"
#include "../jrd/rse.h"
-#include "../common/quad.h"
#include "../jrd/sort.h"
#include "../jrd/blr.h"
#include "../jrd/tra.h"
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|