php-sqlsrv/test/functional/sqlsrv/TC84_LargeColumnName.phpt
Jenny Tam 9654020d67
Dev (#820)
* Fixed the potential error reported by Prefast code analysis

* Use SQLSRV_ASSERT for checking NULL ptrs

* For these AKV tests check env despite not AE connected

* Added the driver option to run functional tests

* Fixed connection pooling tests for more than one ODBC drivers

* added driver option to pdo isPooled.php

* Removed win32 ifdefs re connection resiliency (#802)

* Set the driver argument for getDSN to null by default (#798)

* Added the driver argument to getDSN

* Dropped the driver argument but set to null as default

* Removed the AE condition in locale support

* Modified the AE condition for locale support

* Changed int to SQLLEN to avoid infinite loop (#806)

* Version 5.3.0 (#803)

* Version 5.3.0

* Fixed the wrong replacements

* Added comments block to m4 files

* Use dnl for comments

*  Modified AE fetch phptypes test to insert only one row at a time and loop through php types (#801)

* Modified AE fetch phptypes test to insert only one row at a time and loop through php types

* Fixed formatting

* Streamlined two very similar large column name tests (#807)

* Streamlined two very similar large column name tests

* Changed the EOL

* Updates to change log and readme (#811)

* Updates to change log and readme

* Dropped support for Ubuntu 17

* Modified as per review comments

* Fixed connection resiliency tests for Unix, updated AppVeyor for ODBC 17.2

* Fixed expected output

* Fixed output and skipifs

* Fixed skipifs and output

* Fixed driver name

* Updated installation instructions and sample script (#813)

* Updated instructions and sample test for 5.3.0 RTW

* Fixed sample code to adhere to php coding standard

* Fixed cases and spaces

* Modified NOTE for UB 18.04 based on review comments

* Added 'exit'

* Modified change log and readme based on review to PR 811

* Applied review comments

* build output to debug appveyor failure

* removed debug output

* Streamlined two very similar large column name tests (#815)

* Streamlined two very similar large column name tests

* Added random number of test table names to avoid operand clash issues

* Replaced to with for based on review

* Changelog updated

* changelog updated, test skipif changed to run on unix platforms

* Fixed skipif typo

* Fixed typo in skipif for pdo

* Fixed some output for Travis

* Moved error checking inside pdo connres tests

* Added links back to changelog

* Fixed output for sqlsrv connres tests

* Fixed output

* Fixed output again
2018-07-20 17:24:48 -07:00

84 lines
2 KiB
PHP

--TEST--
PHP - Large Column Name Test
--DESCRIPTION--
Verifies that long column names are supported (up to 128 chars).
--ENV--
PHPT_EXEC=true
--SKIPIF--
<?php require('skipif.inc'); ?>
--FILE--
<?php
require_once('MsCommon.inc');
function largeColumnNameTest($columnName, $expectFail = false)
{
setup();
$conn = connect();
$tableName = "LargeColumnNameTest";
dropTable($conn, $tableName);
$stmt = sqlsrv_query($conn, "CREATE TABLE [$tableName] ([$columnName] int)");
if ($stmt == null) {
if (!$expectFail) {
fatalError("Possible regression: Unable to create test $tableName.");
} else {
$expected = 'is too long. Maximum length is 128.';
if (strpos(sqlsrv_errors()[0]['message'], $expected) === false) {
print_r(sqlsrv_errors());
}
echo "$";
echo "stmt = null";
echo "\n";
}
} else {
sqlsrv_query($conn, "INSERT INTO [$tableName] ([$columnName]) VALUES (5)");
$stmt = sqlsrv_query($conn, "SELECT * from [$tableName]");
if (null == sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
if (!$expectFail) {
fatalError("Possible regression: Unable to retrieve inserted value.");
}
}
sqlsrv_free_stmt($stmt);
}
dropTable($conn, $tableName);
sqlsrv_close($conn);
}
//--------------------------------------------------------------------
// repro
//
//--------------------------------------------------------------------
function repro()
{
$testName = "PHP - Large Column Name Test";
startTest($testName);
// The maximum size of a column name is 128 characters
$maxlen = 128;
$columnName = str_repeat('a', $maxlen);
largeColumnNameTest($columnName);
// Now add another character to the name
$columnName .= "A";
largeColumnNameTest($columnName, true);
endTest($testName);
}
repro();
?>
--EXPECT--
$stmt = null
Test "PHP - Large Column Name Test" completed successfully.