Annotation of embedaddon/php/ext/sybase_ct/tests/bug29064.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Sybase-CT bug #29064 (Exact numeric/decimal/money datatypes lose precision)
3: --SKIPIF--
4: <?php require('skipif.inc'); ?>
5: --FILE--
6: <?php
7: /* This file is part of PHP test framework for ext/sybase_ct
8: *
9: * $Id: bug29064.phpt 268583 2008-11-08 13:32:29Z thekid $
10: */
11:
12: require('test.inc');
13:
14: $db= sybase_connect_ex();
15:
16: // Create a temporary table and fill it with test values
17: var_dump(sybase_query('
18: create table #test (
19: test_decimal decimal(38, 6) null,
20: test_numeric numeric(38, 12) null,
21: test_money money null,
22: test_bigint decimal(38, 0) null,
23: test_int int null,
24: test_smallmoney smallmoney null,
25: test_smallint smallint null,
26: test_tinyint tinyint null,
27: test_real float null,
28: test_double float null
29: )
30: ', $db));
31: var_dump(sybase_query('
32: insert into #test (
33: test_decimal,
34: test_numeric,
35: test_money,
36: test_bigint,
37: test_int,
38: test_smallmoney,
39: test_smallint,
40: test_tinyint,
41: test_real,
42: test_double
43: ) values (
44: 12345678901234567890123456789012.123456,
45: 12345678901234567890123456.123456789012,
46: 123456789012345.1234,
47: 12345678901234567890123456789012345678,
48: 1234567890,
49: 123456.1234,
50: 12345,
51: 123,
52: 123456789.12345679,
53: 123456789.12345679
54: )
55: ', $db));
56: var_dump(sybase_query('
57: insert into #test (
58: test_decimal,
59: test_numeric,
60: test_money,
61: test_bigint,
62: test_int,
63: test_smallmoney,
64: test_smallint,
65: test_tinyint,
66: test_real,
67: test_double
68: ) values (
69: -12345678901234567890123456789012.123456,
70: -12345678901234567890123456.123456789012,
71: -123456789012345.1234,
72: -12345678901234567890123456789012345678,
73: -1234567890,
74: -123456.1234,
75: -12345,
76: 255,
77: -123456789.12345679,
78: -123456789.12345679
79: )
80: ', $db));
81:
82: // Select the data
83: var_dump(sybase_select_ex($db, 'select * from #test'));
84:
85: // Clean up and close connection
86: var_dump(sybase_query('drop table #test', $db));
87: sybase_close($db);
88: ?>
89: --EXPECTF--
90: bool(true)
91: bool(true)
92: bool(true)
93: >>> Query: select * from #test
94: <<< Return: resource
95: array(2) {
96: [0]=>
97: array(10) {
98: ["test_decimal"]=>
99: string(39) "12345678901234567890123456789012.123456"
100: ["test_numeric"]=>
101: string(39) "12345678901234567890123456.123456789012"
102: ["test_money"]=>
103: string(18) "123456789012345.12"
104: ["test_bigint"]=>
105: string(38) "12345678901234567890123456789012345678"
106: ["test_int"]=>
107: int(1234567890)
108: ["test_smallmoney"]=>
109: float(123456.12)
110: ["test_smallint"]=>
111: int(12345)
112: ["test_tinyint"]=>
113: int(123)
114: ["test_real"]=>
115: string(18) "123456789.12345679"
116: ["test_double"]=>
117: string(18) "123456789.12345679"
118: }
119: [1]=>
120: array(10) {
121: ["test_decimal"]=>
122: string(40) "-12345678901234567890123456789012.123456"
123: ["test_numeric"]=>
124: string(40) "-12345678901234567890123456.123456789012"
125: ["test_money"]=>
126: string(19) "-123456789012345.12"
127: ["test_bigint"]=>
128: string(39) "-12345678901234567890123456789012345678"
129: ["test_int"]=>
130: int(-1234567890)
131: ["test_smallmoney"]=>
132: float(-123456.12)
133: ["test_smallint"]=>
134: int(-12345)
135: ["test_tinyint"]=>
136: int(255)
137: ["test_real"]=>
138: string(19) "-123456789.12345679"
139: ["test_double"]=>
140: string(19) "-123456789.12345679"
141: }
142: }
143: bool(true)
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>