Annotation of embedaddon/php/ext/oci8/tests/field_funcs2.phpt, revision 1.1.1.1
1.1 misho 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:
10: $s = oci_parse($c, 'drop table field_funcs2_tab');
11: @oci_execute($s);
12:
13: $t = array("C01" => "NUMBER",
14: "C02" => "NUMBER(*,1)",
15: "C03" => "NUMBER(9)",
16: "C04" => "NUMBER(9,2)",
17: "C05" => "NUMBER(9,1)",
18: "C06" => "NUMBER(7,-2)",
19: "C07" => "DECIMAL(4,9)",
20: "C08" => "NUMERIC(4,9)",
21: "C09" => "DECIMAL(4)",
22: "C10" => "INTEGER",
23: "C11" => "INT",
24: "C12" => "SMALLINT",
25: "C13" => "FLOAT",
26: "C14" => "FLOAT(9)",
27: "C15" => "DOUBLE PRECISION",
28: "C16" => "REAL",
29: );
30:
31: $stmt = "create table field_funcs2_tab (\n";
32: foreach ($t as $colname => $type) {
33: $stmt .= "$colname $type,\n";
34: }
35: $stmt[strlen($stmt)-2] = ")";
36:
37: $s = oci_parse($c, $stmt);
38: oci_execute($s);
39:
40: $s = oci_parse($c, "select * from field_funcs2_tab");
41: oci_execute($s);
42:
43: for ($i = 1; $i <= oci_num_fields($s); $i++) {
44: $name = oci_field_name($s, $i);
45: $precision = oci_field_precision($s, $i);
46: $scale = oci_field_scale($s, $i);
47: echo "$name ".$t[$name] .": precision $precision, scale $scale\n";
48: }
49:
50: echo "Done\n";
51: ?>
52: --EXPECT--
53: C01 NUMBER: precision 0, scale -127
54: C02 NUMBER(*,1): precision 38, scale 1
55: C03 NUMBER(9): precision 9, scale 0
56: C04 NUMBER(9,2): precision 9, scale 2
57: C05 NUMBER(9,1): precision 9, scale 1
58: C06 NUMBER(7,-2): precision 7, scale -2
59: C07 DECIMAL(4,9): precision 4, scale 9
60: C08 NUMERIC(4,9): precision 4, scale 9
61: C09 DECIMAL(4): precision 4, scale 0
62: C10 INTEGER: precision 38, scale 0
63: C11 INT: precision 38, scale 0
64: C12 SMALLINT: precision 38, scale 0
65: C13 FLOAT: precision 126, scale -127
66: C14 FLOAT(9): precision 9, scale -127
67: C15 DOUBLE PRECISION: precision 126, scale -127
68: C16 REAL: precision 63, scale -127
69: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>