Skip to content

Commit ebf7807

Browse files
committed
*** empty log message ***
1 parent fda3f33 commit ebf7807

File tree

3 files changed

+76
-6
lines changed

3 files changed

+76
-6
lines changed

ext/oci8/tests/field_funcs.phpt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ require dirname(__FILE__).'/drop_table.inc';
5454
echo "Done\n";
5555

5656
?>
57-
--EXPECTF--
57+
--EXPECT--
5858
array(5) {
5959
[0]=>
6060
string(1) "1"
@@ -71,14 +71,14 @@ bool(false)
7171
string(2) "ID"
7272
string(6) "NUMBER"
7373
int(2)
74-
int(%d)
74+
int(-127)
7575
int(0)
7676
int(22)
7777
bool(false)
7878
string(5) "VALUE"
7979
string(6) "NUMBER"
8080
int(2)
81-
int(%d)
81+
int(-127)
8282
int(0)
8383
int(22)
8484
bool(true)

ext/oci8/tests/field_funcs2.phpt

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
--TEST--
2+
Bug #41917 (invalid scale and precision)
3+
--SKIPIF--
4+
<?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?>
5+
--FILE--
6+
<?php
7+
8+
require dirname(__FILE__)."/connect.inc";
9+
require dirname(__FILE__).'/create_table.inc';
10+
11+
$s = oci_parse($c, 'drop table b41917t');
12+
@oci_execute($s);
13+
14+
$t = array("C01" => "NUMBER",
15+
"C02" => "NUMBER(*,1)",
16+
"C03" => "NUMBER(9)",
17+
"C04" => "NUMBER(9,2)",
18+
"C05" => "NUMBER(9,1)",
19+
"C06" => "NUMBER(7,-2)",
20+
"C07" => "DECIMAL(4,9)",
21+
"C08" => "NUMERIC(4,9)",
22+
"C09" => "DECIMAL(4)",
23+
"C10" => "INTEGER",
24+
"C11" => "INT",
25+
"C12" => "SMALLINT",
26+
"C13" => "FLOAT",
27+
"C14" => "FLOAT(9)",
28+
"C15" => "DOUBLE PRECISION",
29+
"C16" => "REAL",
30+
);
31+
32+
$stmt = "create table b41917t (\n";
33+
foreach ($t as $colname => $type) {
34+
$stmt .= "$colname $type,\n";
35+
}
36+
$stmt[strlen($stmt)-2] = ")";
37+
38+
$s = oci_parse($c, $stmt);
39+
oci_execute($s);
40+
41+
$s = oci_parse($c, "select * from b41917t");
42+
oci_execute($s);
43+
44+
for ($i = 1; $i <= oci_num_fields($s); $i++) {
45+
$name = oci_field_name($s, $i);
46+
$precision = oci_field_precision($s, $i);
47+
$scale = oci_field_scale($s, $i);
48+
echo "$name ".$t[$name] .": precision $precision, scale $scale\n";
49+
}
50+
51+
echo "Done\n";
52+
?>
53+
--EXPECT--
54+
C01 NUMBER: precision 0, scale -127
55+
C02 NUMBER(*,1): precision 38, scale 1
56+
C03 NUMBER(9): precision 9, scale 0
57+
C04 NUMBER(9,2): precision 9, scale 2
58+
C05 NUMBER(9,1): precision 9, scale 1
59+
C06 NUMBER(7,-2): precision 7, scale -2
60+
C07 DECIMAL(4,9): precision 4, scale 9
61+
C08 NUMERIC(4,9): precision 4, scale 9
62+
C09 DECIMAL(4): precision 4, scale 0
63+
C10 INTEGER: precision 38, scale 0
64+
C11 INT: precision 38, scale 0
65+
C12 SMALLINT: precision 38, scale 0
66+
C13 FLOAT: precision 126, scale -127
67+
C14 FLOAT(9): precision 9, scale -127
68+
C15 DOUBLE PRECISION: precision 126, scale -127
69+
C16 REAL: precision 63, scale -127
70+
Done

ext/oci8/tests/field_funcs_old.phpt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ require dirname(__FILE__).'/drop_table.inc';
5454
echo "Done\n";
5555

5656
?>
57-
--EXPECTF--
57+
--EXPECT--
5858
array(5) {
5959
[0]=>
6060
string(1) "1"
@@ -71,14 +71,14 @@ bool(false)
7171
string(2) "ID"
7272
string(6) "NUMBER"
7373
int(2)
74-
int(%d)
74+
int(-127)
7575
int(0)
7676
int(22)
7777
bool(false)
7878
string(5) "VALUE"
7979
string(6) "NUMBER"
8080
int(2)
81-
int(%d)
81+
int(-127)
8282
int(0)
8383
int(22)
8484
bool(true)

0 commit comments

Comments
 (0)