mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Improve test for odbc_columns()
Hopefully, intermittent test failures will be fixed by creating and using a separate database. Furthermore, more meaningful test cases are added which also assert the output, as well as wildcard character based searching.
This commit is contained in:
@@ -3,46 +3,421 @@ odbc_columns(): Basic test
|
||||
--EXTENSIONS--
|
||||
odbc
|
||||
--SKIPIF--
|
||||
<?php include 'skipif.inc'; ?>
|
||||
--CONFLICTS--
|
||||
odbc
|
||||
<?php
|
||||
include 'skipif.inc';
|
||||
|
||||
$conn = odbc_connect($dsn, $user, $pass);
|
||||
$result = @odbc_exec($conn, "SELECT @@Version");
|
||||
if ($result) {
|
||||
$array = odbc_fetch_array($result);
|
||||
$info = (string) reset($array);
|
||||
if (!str_contains($info, "Microsoft SQL Server")) {
|
||||
echo "skip MS SQL specific test";
|
||||
}
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
include 'config.inc';
|
||||
|
||||
$conn = odbc_connect($dsn, $user, $pass);
|
||||
odbc_exec($conn, 'CREATE DATABASE ColumnsTest');
|
||||
odbc_exec($conn, 'USE ColumnsTest');
|
||||
odbc_exec($conn, 'CREATE TABLE columns (foo INT NOT NULL, bar VARCHAR(20))');
|
||||
|
||||
var_dump($result = odbc_columns($conn, '', '', '', ''));
|
||||
var_dump(odbc_fetch_row($result));
|
||||
odbc_free_result($result);
|
||||
$res = odbc_columns($conn, "ColumnsTest", "dbo", "columns", "foo");
|
||||
var_dump(odbc_fetch_array($res));
|
||||
odbc_free_result($res);
|
||||
|
||||
var_dump($result = odbc_columns($conn));
|
||||
var_dump(odbc_fetch_row($result));
|
||||
var_dump(odbc_free_result($result));
|
||||
$res = odbc_columns($conn, "ColumnsTest", "dbo", "columns", null);
|
||||
var_dump(odbc_fetch_array($res));
|
||||
odbc_free_result($res);
|
||||
|
||||
var_dump($result = odbc_columns($conn, NULL, NULL, NULL, NULL));
|
||||
var_dump(odbc_fetch_row($result));
|
||||
var_dump(odbc_free_result($result));
|
||||
$res = odbc_columns($conn, "ColumnsTest", "dbo", null);
|
||||
var_dump(odbc_fetch_array($res));
|
||||
odbc_free_result($res);
|
||||
|
||||
var_dump($result = odbc_columns($conn, 'FOO', 'FOO', 'FOO', 'FOO'));
|
||||
var_dump(odbc_fetch_row($result));
|
||||
odbc_free_result($result);
|
||||
$res = odbc_columns($conn, "ColumnsTest", "db%", "columns", "foo");
|
||||
var_dump(odbc_fetch_array($res));
|
||||
odbc_free_result($res);
|
||||
|
||||
$res = odbc_columns($conn, "ColumnsTest", "dbo", "column_", "bar");
|
||||
var_dump(odbc_fetch_array($res));
|
||||
odbc_free_result($res);
|
||||
|
||||
$res = odbc_columns($conn, "ColumnsTest", "dbo", "columns", "b%");
|
||||
var_dump(odbc_fetch_array($res));
|
||||
odbc_free_result($res);
|
||||
|
||||
?>
|
||||
--CLEAN--
|
||||
<?php
|
||||
require 'config.inc';
|
||||
$conn = odbc_connect($dsn, $user, $pass);
|
||||
odbc_exec($conn, 'USE ColumnsTest');
|
||||
odbc_exec($conn, 'DROP TABLE columns');
|
||||
odbc_exec($conn, 'USE master');
|
||||
odbc_exec($conn, 'DROP DATABASE ColumnsTest');
|
||||
?>
|
||||
--EXPECTF--
|
||||
resource(%d) of type (odbc result)
|
||||
bool(false)
|
||||
resource(%d) of type (odbc result)
|
||||
bool(true)
|
||||
bool(true)
|
||||
resource(%d) of type (odbc result)
|
||||
bool(true)
|
||||
bool(true)
|
||||
resource(%d) of type (odbc result)
|
||||
bool(false)
|
||||
array(29) {
|
||||
["TABLE_CAT"]=>
|
||||
string(11) "ColumnsTest"
|
||||
["TABLE_SCHEM"]=>
|
||||
string(3) "dbo"
|
||||
["TABLE_NAME"]=>
|
||||
string(7) "columns"
|
||||
["COLUMN_NAME"]=>
|
||||
string(3) "foo"
|
||||
["DATA_TYPE"]=>
|
||||
string(1) "4"
|
||||
["TYPE_NAME"]=>
|
||||
string(3) "int"
|
||||
["COLUMN_SIZE"]=>
|
||||
string(2) "10"
|
||||
["BUFFER_LENGTH"]=>
|
||||
string(1) "4"
|
||||
["DECIMAL_DIGITS"]=>
|
||||
string(1) "0"
|
||||
["NUM_PREC_RADIX"]=>
|
||||
string(2) "10"
|
||||
["NULLABLE"]=>
|
||||
string(1) "0"
|
||||
["REMARKS"]=>
|
||||
NULL
|
||||
["COLUMN_DEF"]=>
|
||||
NULL
|
||||
["SQL_DATA_TYPE"]=>
|
||||
string(1) "4"
|
||||
["SQL_DATETIME_SUB"]=>
|
||||
NULL
|
||||
["CHAR_OCTET_LENGTH"]=>
|
||||
NULL
|
||||
["ORDINAL_POSITION"]=>
|
||||
string(1) "1"
|
||||
["IS_NULLABLE"]=>
|
||||
string(2) "NO"
|
||||
["SS_IS_SPARSE"]=>
|
||||
string(1) "0"
|
||||
["SS_IS_COLUMN_SET"]=>
|
||||
string(1) "0"
|
||||
["SS_IS_COMPUTED"]=>
|
||||
string(1) "0"
|
||||
["SS_IS_IDENTITY"]=>
|
||||
string(1) "0"
|
||||
["SS_UDT_CATALOG_NAME"]=>
|
||||
NULL
|
||||
["SS_UDT_SCHEMA_NAME"]=>
|
||||
NULL
|
||||
["SS_UDT_ASSEMBLY_TYPE_NAME"]=>
|
||||
NULL
|
||||
["SS_XML_SCHEMACOLLECTION_CATALOG_NAME"]=>
|
||||
NULL
|
||||
["SS_XML_SCHEMACOLLECTION_SCHEMA_NAME"]=>
|
||||
NULL
|
||||
["SS_XML_SCHEMACOLLECTION_NAME"]=>
|
||||
NULL
|
||||
["SS_DATA_TYPE"]=>
|
||||
string(2) "56"
|
||||
}
|
||||
array(29) {
|
||||
["TABLE_CAT"]=>
|
||||
string(11) "ColumnsTest"
|
||||
["TABLE_SCHEM"]=>
|
||||
string(3) "dbo"
|
||||
["TABLE_NAME"]=>
|
||||
string(7) "columns"
|
||||
["COLUMN_NAME"]=>
|
||||
string(3) "foo"
|
||||
["DATA_TYPE"]=>
|
||||
string(1) "4"
|
||||
["TYPE_NAME"]=>
|
||||
string(3) "int"
|
||||
["COLUMN_SIZE"]=>
|
||||
string(2) "10"
|
||||
["BUFFER_LENGTH"]=>
|
||||
string(1) "4"
|
||||
["DECIMAL_DIGITS"]=>
|
||||
string(1) "0"
|
||||
["NUM_PREC_RADIX"]=>
|
||||
string(2) "10"
|
||||
["NULLABLE"]=>
|
||||
string(1) "0"
|
||||
["REMARKS"]=>
|
||||
NULL
|
||||
["COLUMN_DEF"]=>
|
||||
NULL
|
||||
["SQL_DATA_TYPE"]=>
|
||||
string(1) "4"
|
||||
["SQL_DATETIME_SUB"]=>
|
||||
NULL
|
||||
["CHAR_OCTET_LENGTH"]=>
|
||||
NULL
|
||||
["ORDINAL_POSITION"]=>
|
||||
string(1) "1"
|
||||
["IS_NULLABLE"]=>
|
||||
string(2) "NO"
|
||||
["SS_IS_SPARSE"]=>
|
||||
string(1) "0"
|
||||
["SS_IS_COLUMN_SET"]=>
|
||||
string(1) "0"
|
||||
["SS_IS_COMPUTED"]=>
|
||||
string(1) "0"
|
||||
["SS_IS_IDENTITY"]=>
|
||||
string(1) "0"
|
||||
["SS_UDT_CATALOG_NAME"]=>
|
||||
NULL
|
||||
["SS_UDT_SCHEMA_NAME"]=>
|
||||
NULL
|
||||
["SS_UDT_ASSEMBLY_TYPE_NAME"]=>
|
||||
NULL
|
||||
["SS_XML_SCHEMACOLLECTION_CATALOG_NAME"]=>
|
||||
NULL
|
||||
["SS_XML_SCHEMACOLLECTION_SCHEMA_NAME"]=>
|
||||
NULL
|
||||
["SS_XML_SCHEMACOLLECTION_NAME"]=>
|
||||
NULL
|
||||
["SS_DATA_TYPE"]=>
|
||||
string(2) "56"
|
||||
}
|
||||
array(29) {
|
||||
["TABLE_CAT"]=>
|
||||
string(11) "ColumnsTest"
|
||||
["TABLE_SCHEM"]=>
|
||||
string(3) "dbo"
|
||||
["TABLE_NAME"]=>
|
||||
string(7) "columns"
|
||||
["COLUMN_NAME"]=>
|
||||
string(3) "foo"
|
||||
["DATA_TYPE"]=>
|
||||
string(1) "4"
|
||||
["TYPE_NAME"]=>
|
||||
string(3) "int"
|
||||
["COLUMN_SIZE"]=>
|
||||
string(2) "10"
|
||||
["BUFFER_LENGTH"]=>
|
||||
string(1) "4"
|
||||
["DECIMAL_DIGITS"]=>
|
||||
string(1) "0"
|
||||
["NUM_PREC_RADIX"]=>
|
||||
string(2) "10"
|
||||
["NULLABLE"]=>
|
||||
string(1) "0"
|
||||
["REMARKS"]=>
|
||||
NULL
|
||||
["COLUMN_DEF"]=>
|
||||
NULL
|
||||
["SQL_DATA_TYPE"]=>
|
||||
string(1) "4"
|
||||
["SQL_DATETIME_SUB"]=>
|
||||
NULL
|
||||
["CHAR_OCTET_LENGTH"]=>
|
||||
NULL
|
||||
["ORDINAL_POSITION"]=>
|
||||
string(1) "1"
|
||||
["IS_NULLABLE"]=>
|
||||
string(2) "NO"
|
||||
["SS_IS_SPARSE"]=>
|
||||
string(1) "0"
|
||||
["SS_IS_COLUMN_SET"]=>
|
||||
string(1) "0"
|
||||
["SS_IS_COMPUTED"]=>
|
||||
string(1) "0"
|
||||
["SS_IS_IDENTITY"]=>
|
||||
string(1) "0"
|
||||
["SS_UDT_CATALOG_NAME"]=>
|
||||
NULL
|
||||
["SS_UDT_SCHEMA_NAME"]=>
|
||||
NULL
|
||||
["SS_UDT_ASSEMBLY_TYPE_NAME"]=>
|
||||
NULL
|
||||
["SS_XML_SCHEMACOLLECTION_CATALOG_NAME"]=>
|
||||
NULL
|
||||
["SS_XML_SCHEMACOLLECTION_SCHEMA_NAME"]=>
|
||||
NULL
|
||||
["SS_XML_SCHEMACOLLECTION_NAME"]=>
|
||||
NULL
|
||||
["SS_DATA_TYPE"]=>
|
||||
string(2) "56"
|
||||
}
|
||||
array(29) {
|
||||
["TABLE_CAT"]=>
|
||||
string(11) "ColumnsTest"
|
||||
["TABLE_SCHEM"]=>
|
||||
string(3) "dbo"
|
||||
["TABLE_NAME"]=>
|
||||
string(7) "columns"
|
||||
["COLUMN_NAME"]=>
|
||||
string(3) "foo"
|
||||
["DATA_TYPE"]=>
|
||||
string(1) "4"
|
||||
["TYPE_NAME"]=>
|
||||
string(3) "int"
|
||||
["COLUMN_SIZE"]=>
|
||||
string(2) "10"
|
||||
["BUFFER_LENGTH"]=>
|
||||
string(1) "4"
|
||||
["DECIMAL_DIGITS"]=>
|
||||
string(1) "0"
|
||||
["NUM_PREC_RADIX"]=>
|
||||
string(2) "10"
|
||||
["NULLABLE"]=>
|
||||
string(1) "0"
|
||||
["REMARKS"]=>
|
||||
NULL
|
||||
["COLUMN_DEF"]=>
|
||||
NULL
|
||||
["SQL_DATA_TYPE"]=>
|
||||
string(1) "4"
|
||||
["SQL_DATETIME_SUB"]=>
|
||||
NULL
|
||||
["CHAR_OCTET_LENGTH"]=>
|
||||
NULL
|
||||
["ORDINAL_POSITION"]=>
|
||||
string(1) "1"
|
||||
["IS_NULLABLE"]=>
|
||||
string(2) "NO"
|
||||
["SS_IS_SPARSE"]=>
|
||||
string(1) "0"
|
||||
["SS_IS_COLUMN_SET"]=>
|
||||
string(1) "0"
|
||||
["SS_IS_COMPUTED"]=>
|
||||
string(1) "0"
|
||||
["SS_IS_IDENTITY"]=>
|
||||
string(1) "0"
|
||||
["SS_UDT_CATALOG_NAME"]=>
|
||||
NULL
|
||||
["SS_UDT_SCHEMA_NAME"]=>
|
||||
NULL
|
||||
["SS_UDT_ASSEMBLY_TYPE_NAME"]=>
|
||||
NULL
|
||||
["SS_XML_SCHEMACOLLECTION_CATALOG_NAME"]=>
|
||||
NULL
|
||||
["SS_XML_SCHEMACOLLECTION_SCHEMA_NAME"]=>
|
||||
NULL
|
||||
["SS_XML_SCHEMACOLLECTION_NAME"]=>
|
||||
NULL
|
||||
["SS_DATA_TYPE"]=>
|
||||
string(2) "56"
|
||||
}
|
||||
array(29) {
|
||||
["TABLE_CAT"]=>
|
||||
string(11) "ColumnsTest"
|
||||
["TABLE_SCHEM"]=>
|
||||
string(3) "dbo"
|
||||
["TABLE_NAME"]=>
|
||||
string(7) "columns"
|
||||
["COLUMN_NAME"]=>
|
||||
string(3) "bar"
|
||||
["DATA_TYPE"]=>
|
||||
string(2) "12"
|
||||
["TYPE_NAME"]=>
|
||||
string(7) "varchar"
|
||||
["COLUMN_SIZE"]=>
|
||||
string(2) "20"
|
||||
["BUFFER_LENGTH"]=>
|
||||
string(2) "20"
|
||||
["DECIMAL_DIGITS"]=>
|
||||
NULL
|
||||
["NUM_PREC_RADIX"]=>
|
||||
NULL
|
||||
["NULLABLE"]=>
|
||||
string(1) "1"
|
||||
["REMARKS"]=>
|
||||
NULL
|
||||
["COLUMN_DEF"]=>
|
||||
NULL
|
||||
["SQL_DATA_TYPE"]=>
|
||||
string(2) "12"
|
||||
["SQL_DATETIME_SUB"]=>
|
||||
NULL
|
||||
["CHAR_OCTET_LENGTH"]=>
|
||||
string(2) "20"
|
||||
["ORDINAL_POSITION"]=>
|
||||
string(1) "2"
|
||||
["IS_NULLABLE"]=>
|
||||
string(3) "YES"
|
||||
["SS_IS_SPARSE"]=>
|
||||
string(1) "0"
|
||||
["SS_IS_COLUMN_SET"]=>
|
||||
string(1) "0"
|
||||
["SS_IS_COMPUTED"]=>
|
||||
string(1) "0"
|
||||
["SS_IS_IDENTITY"]=>
|
||||
string(1) "0"
|
||||
["SS_UDT_CATALOG_NAME"]=>
|
||||
NULL
|
||||
["SS_UDT_SCHEMA_NAME"]=>
|
||||
NULL
|
||||
["SS_UDT_ASSEMBLY_TYPE_NAME"]=>
|
||||
NULL
|
||||
["SS_XML_SCHEMACOLLECTION_CATALOG_NAME"]=>
|
||||
NULL
|
||||
["SS_XML_SCHEMACOLLECTION_SCHEMA_NAME"]=>
|
||||
NULL
|
||||
["SS_XML_SCHEMACOLLECTION_NAME"]=>
|
||||
NULL
|
||||
["SS_DATA_TYPE"]=>
|
||||
string(2) "39"
|
||||
}
|
||||
array(29) {
|
||||
["TABLE_CAT"]=>
|
||||
string(11) "ColumnsTest"
|
||||
["TABLE_SCHEM"]=>
|
||||
string(3) "dbo"
|
||||
["TABLE_NAME"]=>
|
||||
string(7) "columns"
|
||||
["COLUMN_NAME"]=>
|
||||
string(3) "bar"
|
||||
["DATA_TYPE"]=>
|
||||
string(2) "12"
|
||||
["TYPE_NAME"]=>
|
||||
string(7) "varchar"
|
||||
["COLUMN_SIZE"]=>
|
||||
string(2) "20"
|
||||
["BUFFER_LENGTH"]=>
|
||||
string(2) "20"
|
||||
["DECIMAL_DIGITS"]=>
|
||||
NULL
|
||||
["NUM_PREC_RADIX"]=>
|
||||
NULL
|
||||
["NULLABLE"]=>
|
||||
string(1) "1"
|
||||
["REMARKS"]=>
|
||||
NULL
|
||||
["COLUMN_DEF"]=>
|
||||
NULL
|
||||
["SQL_DATA_TYPE"]=>
|
||||
string(2) "12"
|
||||
["SQL_DATETIME_SUB"]=>
|
||||
NULL
|
||||
["CHAR_OCTET_LENGTH"]=>
|
||||
string(2) "20"
|
||||
["ORDINAL_POSITION"]=>
|
||||
string(1) "2"
|
||||
["IS_NULLABLE"]=>
|
||||
string(3) "YES"
|
||||
["SS_IS_SPARSE"]=>
|
||||
string(1) "0"
|
||||
["SS_IS_COLUMN_SET"]=>
|
||||
string(1) "0"
|
||||
["SS_IS_COMPUTED"]=>
|
||||
string(1) "0"
|
||||
["SS_IS_IDENTITY"]=>
|
||||
string(1) "0"
|
||||
["SS_UDT_CATALOG_NAME"]=>
|
||||
NULL
|
||||
["SS_UDT_SCHEMA_NAME"]=>
|
||||
NULL
|
||||
["SS_UDT_ASSEMBLY_TYPE_NAME"]=>
|
||||
NULL
|
||||
["SS_XML_SCHEMACOLLECTION_CATALOG_NAME"]=>
|
||||
NULL
|
||||
["SS_XML_SCHEMACOLLECTION_SCHEMA_NAME"]=>
|
||||
NULL
|
||||
["SS_XML_SCHEMACOLLECTION_NAME"]=>
|
||||
NULL
|
||||
["SS_DATA_TYPE"]=>
|
||||
string(2) "39"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user