Home » Database » MDB » Bug #1292
[MDB1] mssql feature request: listTableIndexes()
Details
| Submitted | 2004-04-26 22:57 UTC |
|---|---|
| From | thierry dot bo at netcourrier dot com |
| Assigned | lsmith |
| Status | Closed |
| Package | MDB |
| PHP Version | 4.3.4 |
| OS | win32XP |
| Roadmaps | (Not assigned) |
Comments
[2004-04-26 22:57 UTC] thierry dot bo at netcourrier dot com
Description:
------------
Hi,
here is my proposal for listTableIndexes() method for MDB1 mssql driver.
The important thing is that I get it working no matter the value of 'optimize' option. That is what I want the method behaves, but as mysql method does not behaves like that, I don't know if this is a bug or a feature:
If you call '$mdb->listTableIndexes('my_table')' with MDB1.3 and mysql with 'portability' option, you get a null result instead of an array.
Reproduce code:
---------------
http://www.thierrybo.freesurf.fr/temp/
[2004-05-19 09:23 UTC] smith at backendmedia dot com
I have added the method.
I cant reproduce your problems on MySQL though. Could you provide more details about your MySQl setup? Or better yet paste the output of the following query:
SHOW INDEX FROM [table]
where [table] is a table with a bunch of different indexes
[2004-05-19 17:54 UTC] thierry dot bo at netcourrier dot com
Well, now I can't reproduce the problem, instead but it fails whatever option I choose. This is with 1.3, not cvs. The problem is at the begining of fetchCol() in common.php:
function fetchCol($result, $colnum = 0)
{
$fetchmode = is_numeric($colnum) ? MDB_FETCHMODE_ORDERED : MDB_FETCHMODE_ASSOC;
$column = array();
$row = $this->fetchInto($result, $fetchmode);
if (is_array($row)) {
if (!array_key_exists($colnum, $row)) {
return($this->raiseError(MDB_ERROR_TRUNCATED));
}
If optimize is set to 'portability', $colnum == 'Key_name' and keys in $row are lowercased ('key_name'), so this raise error MDB_ERROR_TRUNCATED.
If optimize is set to 'performance', $colnum == 'key_name' but keys in $row are left unchanged ('Key_name'), so this also raise error MDB_ERROR_TRUNCATED.
TB
[2004-05-19 18:01 UTC] smith at backendmedia dot com
This bug has been fixed in CVS.
In case this was a documentation problem, the fix will show up at the
end of next Sunday (CET) on pear.php.net.
In case this was a pear.php.net website problem, the change will show
up on the website in short time.
Thank you for the report, and for helping us make PEAR better.
actually I lied in my last commit .. I just flipped things around to be more clear. I will try to reproduce the problem. Can you give me the information I asked in my previous reply (mysql version and output from the sql query)?
[2004-05-19 18:19 UTC] thierry dot bo at netcourrier dot com
Actually I reproduced my initial behavior (bug only with portability). This is againt the cvs version, but at the moment I did not updated it since 09 april 2004.
SHOW index FROM mrbs_entry
mrbs_entry, 0, mrbs_entry_pkey, 1, id, A, 0, , , , BTREE, ,
mrbs_entry, 1, idxStartTime, 1, start_time, A, 0, , , , BTREE, ,
mrbs_entry, 1, idxEndTime, 1, end_time, A, 0, , , , BTREE,
Mysql version: Mysql 4.0.13-nt --standalone
SHOW STATUS:
Aborted_clients, 24,
Aborted_connects, 0,
Bytes_received, 3526,
Bytes_sent, 20190,
Com_admin_commands, 0,
Com_alter_table, 0,
Com_analyze, 0,
Com_backup_table, 0,
Com_begin, 0,
Com_change_db, 48,
Com_change_master, 0,
Com_check, 0,
Com_commit, 0,
Com_create_db, 0,
Com_create_function, 0,
Com_create_index, 0,
Com_create_table, 0,
Com_delete, 0,
Com_delete_multi, 0,
Com_drop_db, 0,
Com_drop_function, 0,
Com_drop_index, 0,
Com_drop_table, 0,
Com_flush, 0,
Com_grant, 0,
Com_ha_close, 0,
Com_ha_open, 0,
Com_ha_read, 0,
Com_insert, 0,
Com_insert_select, 0,
Com_kill, 0,
Com_load, 0,
Com_load_master_data, 0,
Com_load_master_table, 0,
Com_lock_tables, 0,
Com_optimize, 0,
Com_purge, 0,
Com_rename_table, 0,
Com_repair, 0,
Com_replace, 0,
Com_replace_select, 0,
Com_reset, 0,
Com_restore_table, 0,
Com_revoke, 0,
Com_rollback, 0,
Com_select, 31,
Com_set_option, 0,
Com_show_binlog_events, 0,
Com_show_binlogs, 0,
Com_show_create, 0,
Com_show_databases, 2,
Com_show_fields, 8,
Com_show_grants, 0,
Com_show_keys, 24,
Com_show_logs, 0,
Com_show_master_status, 0,
Com_show_new_master, 0,
Com_show_open_tables, 0,
Com_show_processlist, 0,
Com_show_slave_hosts, 0,
Com_show_slave_status, 0,
Com_show_status, 1,
Com_show_innodb_status, 0,
Com_show_tables, 3,
Com_show_variables, 0,
Com_slave_start, 0,
Com_slave_stop, 0,
Com_truncate, 0,
Com_unlock_tables, 0,
Com_update, 0,
Connections, 27,
Created_tmp_disk_tables, 0,
Created_tmp_tables, 0,
Created_tmp_files, 0,
Delayed_insert_threads, 0,
Delayed_writes, 0,
Delayed_errors, 0,
Flush_commands, 1,
Handler_commit, 0,
Handler_delete, 0,
Handler_read_first, 12,
Handler_read_key, 0,
Handler_read_next, 0,
Handler_read_prev, 0,
Handler_read_rnd, 0,
Handler_read_rnd_next, 25,
Handler_rollback, 0,
Handler_update, 0,
Handler_write, 0,
Key_blocks_used, 1,
Key_read_requests, 2,
Key_reads, 1,
Key_write_requests, 0,
Key_writes, 0,
Max_used_connections, 1,
Not_flushed_key_blocks, 0,
Not_flushed_delayed_rows, 0,
Open_tables, 3,
Open_files, 6,
Open_streams, 0,
Opened_tables, 11,
Questions, 119,
Qcache_queries_in_cache, 0,
Qcache_inserts, 0,
Qcache_hits, 0,
Qcache_lowmem_prunes, 0,
Qcache_not_cached, 0,
Qcache_free_memory, 0,
Qcache_free_blocks, 0,
Qcache_total_blocks, 0,
Rpl_status, NULL,
Select_full_join, 0,
Select_full_range_join, 0,
Select_range, 0,
Select_range_check, 0,
Select_scan, 0,
Slave_open_temp_tables, 0,
Slave_running, OFF,
Slow_launch_threads, 0,
Slow_queries, 0,
Sort_merge_passes, 0,
Sort_range, 0,
Sort_rows, 0,
Sort_scan, 0,
Table_locks_immediate, 13,
Table_locks_waited, 0,
Threads_cached, 0,
Threads_created, 26,
Threads_connected, 1,
Threads_running, 1,
Uptime, 3832
SHOW VARIABLES:
back_log, 50,
basedir, F:\MYSQL\,
binlog_cache_size, 32768,
bulk_insert_buffer_size, 8388608,
character_set, latin1,
character_sets, latin1 big5 czech euc_kr gb2312 gbk latin1_de sjis tis620 ujis dec8 dos german1 hp8 koi8_ru latin2 swe7 usa7 cp1251 danish hebrew win1251 estonia hungarian koi8_ukr win1251ukr greek win1250 croat cp1257 latin5,
concurrent_insert, ON,
connect_timeout, 5,
convert_character_set, ,
datadir, F:\MYSQL\data\,
delay_key_write, ON,
delayed_insert_limit, 100,
delayed_insert_timeout, 300,
delayed_queue_size, 1000,
flush, OFF,
flush_time, 1800,
ft_boolean_syntax, + -><()~*:""&|,
ft_min_word_len, 4,
ft_max_word_len, 254,
ft_max_word_len_for_sort, 20,
ft_stopword_file, (built-in),
have_bdb, NO,
have_crypt, NO,
have_innodb, YES,
have_isam, YES,
have_raid, NO,
have_symlink, YES,
have_openssl, NO,
have_query_cache, YES,
init_file, ,
innodb_additional_mem_pool_size, 1048576,
innodb_buffer_pool_size, 8388608,
innodb_data_file_path, ibdata1:10M:autoextend,
innodb_data_home_dir, ,
innodb_file_io_threads, 4,
innodb_force_recovery, 0,
innodb_thread_concurrency, 8,
innodb_flush_log_at_trx_commit, 1,
innodb_fast_shutdown, ON,
innodb_flush_method, ,
innodb_lock_wait_timeout, 50,
innodb_log_arch_dir, .\,
innodb_log_archive, OFF,
innodb_log_buffer_size, 1048576,
innodb_log_file_size, 5242880,
innodb_log_files_in_group, 2,
innodb_log_group_home_dir, .\,
innodb_mirrored_log_groups, 1,
innodb_max_dirty_pages_pct, 90,
interactive_timeout, 28800,
join_buffer_size, 131072,
key_buffer_size, 8388600,
language, F:\MYSQL\share\french\,
large_files_support, ON,
local_infile, ON,
log, OFF,
log_update, OFF,
log_bin, OFF,
log_slave_updates, OFF,
log_slow_queries, OFF,
log_warnings, OFF,
long_query_time, 10,
low_priority_updates, OFF,
lower_case_table_names, ON,
max_allowed_packet, 1048576,
max_binlog_cache_size, 4294967295,
max_binlog_size, 1073741824,
max_connections, 100,
max_connect_errors, 10,
max_delayed_threads, 20,
max_heap_table_size, 16777216,
max_join_size, 4294967295,
max_sort_length, 1024,
max_user_connections, 0,
max_tmp_tables, 32,
max_write_lock_count, 4294967295,
myisam_max_extra_sort_file_size, 268435456,
myisam_max_sort_file_size, 2147483647,
myisam_repair_threads, 1,
myisam_recover_options, OFF,
myisam_sort_buffer_size, 8388608,
named_pipe, OFF,
net_buffer_length, 16384,
net_read_timeout, 30,
net_retry_count, 10,
net_write_timeout, 60,
new, OFF,
open_files_limit, 0,
pid_file, F:\MYSQL\data\thierry.pid,
log_error, .\thierry.err,
port, 3306,
protocol_version, 10,
read_buffer_size, 131072,
read_rnd_buffer_size, 262144,
rpl_recovery_rank, 0,
query_cache_limit, 1048576,
query_cache_size, 0,
query_cache_type, ON,
server_id, 0,
slave_net_timeout, 3600,
skip_external_locking, ON,
skip_networking, OFF,
skip_show_database, OFF,
slow_launch_time, 2,
sort_buffer_size, 2097144,
sql_mode, 0,
table_cache, 64,
table_type, MYISAM,
thread_cache_size, 0,
thread_stack, 196608,
tx_isolation, REPEATABLE-READ,
timezone, Amér. du Sud occid.,
tmp_table_size, 33554432,
tmpdir, C:\DOCUME~1\T6C56~1.BOT\LOCALS~1\Temp\,
version, 4.0.13-nt,
wait_timeout, 28800