--disable_query_log was not a good idea, Serg says
mysql-test/r/group_by.result:
bug #1335 tests followup:
--disable_query_log was not a good idea, Serg says
tests results updated
Change optimizer to prefer key lookups before table scan
Change table scans to be done after tables with constrains on scanned table
mysql-test/r/distinct.result:
Update results
mysql-test/r/group_by.result:
Update results
mysql-test/r/heap.result:
Update results
mysql-test/r/join.result:
Update results
mysql-test/r/key_diff.result:
Update results
mysql-test/r/myisam.result:
Update results
mysql-test/r/order_by.result:
Update results
mysql-test/r/select_safe.result:
Update results
mysql-test/t/distinct.test:
Change test to be repeatable
mysql-test/t/join.test:
Change test to be repeatable
mysql-test/t/select_safe.test:
Add tests for MAX_SEEKS_FOR_KEY
sql/handler.h:
Optimize structure for 64 bit machines (and to avoid problems with gdb)
sql/item_cmpfunc.cc:
Initialize not_null_tables_cache properly
sql/mysqld.cc:
Added max_seeks_for_key
sql/set_var.cc:
Added max_seeks_for_key
sql/sql_class.h:
Added max_seeks_for_key
sql/sql_select.cc:
Added max_seeks_for_key
Change optimizer to prefer key lookups before table scan.
Change table scans to be done after tables with constrains on scanned table
(There was a problem on some AMD system when the floating point precision wasn't accurate enough)
mysql-test/r/group_by.result:
new test result
mysql-test/t/group_by.test:
Changed test slightly to make it repeatable
Added optimzation for clustered index
Fixed bug in UPDATE ... ORDER BY
Fixed handling of UPDATE ... LIMIT
BitKeeper/deleted/.del-.cvsignore~7e29af89a3559f4c:
Delete: Images/.cvsignore
BitKeeper/deleted/.del-README~d5a4e7ca3a2e87a9:
Delete: repl-tests/README
BitKeeper/deleted/.del-run-all-tests~4deb6479a13e4568:
Delete: repl-tests/run-all-tests
BitKeeper/deleted/.del-run.test~3dc5b9bd1e9feea5:
Delete: repl-tests/test-repl-alter/run.test
BitKeeper/deleted/.del-run.test~4020771cff278f14:
Delete: repl-tests/test-bad-query/run.test
BitKeeper/deleted/.del-run.test~452f2b66537404a8:
Delete: repl-tests/test-dump/run.test
BitKeeper/deleted/.del-run.test~b1f0c1f96554df8:
Delete: repl-tests/test-auto-inc/run.test
BitKeeper/deleted/.del-table-dump-check.master~e13afeb8c79264b5:
Delete: repl-tests/test-dump/table-dump-check.master
BitKeeper/deleted/.del-table-dump-select.master~744acb955e33f3db:
Delete: repl-tests/test-dump/table-dump-select.master
BitKeeper/deleted/.del-x.master~29a93ed7956c8693:
Delete: repl-tests/test-auto-inc/x.master
BitKeeper/deleted/.del-x.master~3b248cbac9abda2b:
Delete: repl-tests/test-bad-query/x.master
BitKeeper/deleted/.del-foo-dump-master.master~b49ae6bec1e918ee:
Delete: repl-tests/test-repl/foo-dump-master.master
BitKeeper/deleted/.del-foo-dump-slave.master~f16ed20457d59be9:
Delete: repl-tests/test-repl/foo-dump-slave.master
BitKeeper/deleted/.del-repl-timestamp.master.reject~3492d2b74b413771:
Delete: repl-tests/test-repl-ts/repl-timestamp.master.reject
BitKeeper/deleted/.del-repl-timestamp.master~4b7782da5cc13161:
Delete: repl-tests/test-repl-ts/repl-timestamp.master
BitKeeper/deleted/.del-run.test~a1e32ea1e4253af4:
Delete: repl-tests/test-repl/run.test
BitKeeper/deleted/.del-run.test~ce5e626c91b760ec:
Delete: repl-tests/test-repl-ts/run.test
BitKeeper/deleted/.del-sum-wlen-master.master~1a5ea625c79e978:
Delete: repl-tests/test-repl/sum-wlen-master.master
BitKeeper/deleted/.del-sum-wlen-slave.master~f016d98833433084:
Delete: repl-tests/test-repl/sum-wlen-slave.master
BitKeeper/deleted/.del-test.master~5829e7b3770179db:
Delete: repl-tests/test-repl-alter/test.master
BitKeeper/deleted/.del-master-slave.inc~6775f6ae10137c39:
Delete: repl-tests/include/master-slave.inc
include/my_global.h:
Fix for purify/valgrind
myisam/mi_info.c:
Updated comment
mysql-test/r/group_by.result:
New test results
mysql-test/r/innodb.result:
New test results
mysql-test/r/join_outer.result:
New test results
mysql-test/r/multi_update.result:
New test results
mysql-test/r/null_key.result:
New test results
mysql-test/r/update.result:
New test results
mysql-test/t/group_by.test:
Added extra explain to 'suspicious' test.
mysql-test/t/innodb.test:
Added test for UPDATE ... ORDER BY
mysql-test/t/join_outer.test:
Changed test to be repeatable
mysql-test/t/multi_update.test:
Slight change of test to catch more bugs
mysql-test/t/update.test:
Better test for UPDATE ... ORDER BY
sql/field.cc:
Simple optimization
sql/ha_heap.h:
Added optimzation for clustered index
sql/ha_innodb.cc:
Added optimzation for clustered index
sql/ha_innodb.h:
Added optimzation for clustered index
sql/handler.h:
Added optimzation for clustered index
sql/item_sum.cc:
Removed some usage of current_thd
sql/mysqld.cc:
Fix bug when compiling for purify/valgrind
sql/opt_range.cc:
Added optimzation for clustered index
sql/records.cc:
Fixed comment
sql/sql_list.h:
Fixed comment
sql/sql_select.cc:
Removed some usage of current_thd
sql/sql_select.h:
Removed some usage of current_thd
sql/sql_union.cc:
Removed some usage of current_thd
sql/sql_update.cc:
Fixed bug in UPDATE ... ORDER BY
Fixed handling of UPDATE ... LIMIT
support-files/my-huge.cnf.sh:
Added default size for query cache
support-files/my-large.cnf.sh:
Added default size for query cache
proper handling of SUM() in some functions.
BitKeeper/etc/logging_ok:
auto-union
sql/item_cmpfunc.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_db.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/table.cc:
Auto merged
mysql-test/r/group_by.result:
merge with 3.23.56
mysql-test/t/group_by.test:
merge with 3.23.56
sql/item_strfunc.h:
merge with 3.23.56
sql/mysqld.cc:
merge with 3.23.56
sql/sql_parse.cc:
merge with 3.23.56
sql/sql_yacc.yy:
merge with 3.23.56
made bisone 1.75 compatible code
mysql-test/r/group_by.result:
test of function with agregate function inside
mysql-test/t/group_by.test:
test of function with agregate function inside
sql/item_cmpfunc.cc:
fixed functions to be able work with group function as argument
sql/item_cmpfunc.h:
fixed functions to be able work with group function as argument
sql/item_func.cc:
fixed functions to be able work with group function as argument
sql/item_func.h:
fixed functions to be able work with group function as argument
sql/item_strfunc.cc:
fixed functions to be able work with group function as argument
sql/item_strfunc.h:
fixed functions to be able work with group function as argument
sql/sql_yacc.yy:
made bisone 1.75 compatible code
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
Call pthread_mutex_destroy() on not used mutex.
Changed comments in .h and .c files from // -> /* */
Added detection of mutex on which one didn't call pthread_mutex_destroy()
Fixed bug in create_tmp_field() which causes a memory overrun in queries that uses "ORDER BY constant_expression"
Added optimisation for ORDER BY NULL
BitKeeper/deleted/.del-ChangeLog~dfc92e15bee6fc75:
Delete: sql/ChangeLog
BUILD/compile-pentium-valgrind-max:
Don't use valgrind with safemalloc as this can hide some bugs
Makefile.am:
Added platform dirs
bdb/os/os_handle.c:
Portability fix
client/mysql.cc:
Fixes for Netware.
Fixed duplicate output when using 'tee'
Simple optimisations
client/mysqldump.c:
Portability fix
client/mysqltest.c:
Portability fix
configure.in:
Fixes for Netware
extra/resolveip.c:
Fixes for Netware
include/Makefile.am:
Fixes for Netware
include/config-win.h:
Portability fix
include/my_global.h:
Fixes for Netware
include/my_net.h:
Fixes for Netware
include/my_pthread.h:
Fixes for Netware
Added detection of mutexes that was not destroyed
include/my_sys.h:
Fixes for Netware
Added 'extern' before external functions
include/mysql.h:
Fixes for Netware
innobase/configure.in:
Fixes for Netware
innobase/include/os0thread.h:
Fixes for Netware
innobase/os/os0sync.c:
Fixes for Netware
innobase/os/os0thread.c:
Fixes for Netware
innobase/srv/srv0srv.c:
Fixes for Netware
innobase/srv/srv0start.c:
Fixes for Netware
innobase/sync/sync0sync.c:
Fixes for Netware
isam/test3.c:
Disable test on Netware
libmysql/Makefile.shared:
Added my_sleep
libmysql/get_password.c:
Fixes for Netware
libmysql/libmysql.c:
Fixes for Netware
Made mysql_once_init() global
libmysql/manager.c:
Fixes for Netware
myisam/mi_test3.c:
Disable test for netware
mysql-test/mysql-test-run.sh:
Give warning if output file contains errors
mysql-test/r/count_distinct.result:
More tests
mysql-test/r/group_by.result:
Test of ORDER BY NULL
mysql-test/t/backup.test:
Fixes for Netware
mysql-test/t/count_distinct.test:
More tests
mysql-test/t/func_crypt.test:
Fixes for Netware
mysql-test/t/grant_cache.test:
Fixes for Netware
mysql-test/t/group_by.test:
Tests of ORDER BY NULL
mysql-test/t/rpl000015.test:
Fixes for Netware
mysql-test/t/rpl000017.test:
Fixes for Netware
mysql-test/t/rpl_rotate_logs.test:
Fixes for Netware
mysys/Makefile.am:
Added my_sleep.c and my_netware.c
mysys/charset.c:
Fixes for Netware
mysys/default.c:
Fixes for Netware
mysys/mf_tempfile.c:
Fixes for Netware
mysys/my_clock.c:
Fixes for Netware
mysys/my_copy.c:
Fixes for Netware
mysys/my_getwd.c:
Changed function comment from // -> /* */
mysys/my_init.c:
Fixes for Netware
mysys/my_lock.c:
Fixes for Netware
mysys/my_messnc.c:
Fixes for Netware
mysys/my_os2cond.c:
Removed comment
mysys/my_os2dirsrch.c:
Changed function comment from // -> /* */
Fixed indentation
mysys/my_os2dirsrch.h:
Changed function comment from // -> /* */
Fixed indentation
mysys/my_os2file64.c:
Changed function comment from // -> /* */
Fixed indentation
mysys/my_os2mutex.c:
Changed function comment from // -> /* */
Fixed indentation
mysys/my_os2thread.c:
Changed function comment from // -> /* */
Fixed indentation
mysys/my_os2tls.c:
Changed function comment from // -> /* */
Fixed indentation
mysys/my_pthread.c:
Fixes for Netware
mysys/my_redel.c:
Fixes for Netware
mysys/my_tempnam.c:
Fixes for Netware
mysys/my_thr_init.c:
Remove created mutexes when program ends.
mysys/mysys_priv.h:
Cleanup
mysys/safemalloc.c:
Prefix error messages with "Error:"
mysys/thr_alarm.c:
Destroy internal mutex on end_thr_alarm.
mysys/thr_mutex.c:
Added detection of mutex on which one didn't call pthread_mutex_destroy()
scripts/make_binary_distribution.sh:
Fixes for Netware
sql/des_key_file.cc:
Free mutex at end
sql/ha_innodb.cc:
Free mutex at end
sql/ha_myisam.cc:
Changed warnings from REPAIR Note:
(For mysql-test-run)
sql/hostname.cc:
Fixes for Netware
sql/item.h:
Fixed bug in create_tmp_field() which causes a memory overrun
sql/item_func.cc:
Free used mutexes
sql/item_sum.cc:
Fixed bug in create_tmp_field() which causes a memory overrun
sql/log.cc:
Free used mutexes
sql/my_lock.c:
Fixes for Netware
sql/mysql_priv.h:
Fixes for Netware
sql/mysqld.cc:
Fixes for Netware
Added Have_crypt
Properly free mutexes from MYSQL_LOG by calling cleanup
Free mutex before exit
sql/repl_failsafe.cc:
Fixes for Netware
sql/set_var.cc:
Added have_crypt
sql/share/english/errmsg.txt:
Added version socket and port to stderr log
sql/slave.cc:
Remove global MASTER_INFO variable and use instead an allocated variable.
This allows us to correctly free used mutex.
sql/slave.h:
Move constructors and destuctors to slave.cc
(To make it easier to clear all needed variables)
sql/sql_base.cc:
Safety fix
sql/sql_class.h:
Portability fixes.
Added 'cleanup' to log handling to be able to free mutexes.
sql/sql_insert.cc:
Fixes for Netware
mysys/my_sleep.c:
E
sql/sql_parse.cc:
Fixes for Netware
sql/sql_select.cc:
Added optimisation for ORDER BY NULL
sql/sql_select.h:
Fixed bug in create_tmp_field() which causes a memory overrun
sql/sql_table.cc:
Fixed bug in create_tmp_field() which causes a memory overrun
sql/sql_udf.cc:
Free mutex on end
vio/test-ssl.c:
Simple code cleanup
vio/test-sslclient.c:
Simple code cleanup
vio/test-sslserver.c:
Simple code cleanup
vio/viotest-ssl.c:
Simple code cleanup
This fixed a bug in GROUP BY on a BLOB column with NULL values.
myisam/mi_create.c:
Fixed max_key_length when using UNIQUE keys.
myisam/mi_unique.c:
Simple optimization
Make different CRC for keys with null and empty strings.
mysql-test/r/group_by.result:
Updated results
mysql-test/t/group_by.test:
Test of bug
(Patch from 4.0.5)
mysql-test/r/group_by.result:
Updated results
mysql-test/t/group_by.test:
Test for bug
sql/item_cmpfunc.cc:
Fixed bug in MAX() optimization when used with JOIN and ON expressions
sql/item_cmpfunc.h:
Fixed bug in MAX() optimization when used with JOIN and ON expressions
sql/opt_sum.cc:
Fixed bug in MAX() optimization when used with JOIN and ON expressions
Added bug fix from 3.23 for AIX 4.3.3 and gcc 3.x
Small change in EXCHANGE output
Propagate open-files-limit from mysqld_safe -> mysqld
Fixed speed bug in GROUP BY
Added quotes around database name in CREATE DATABASE db_name (for binary log)
BitKeeper/etc/ignore:
added stamp-h1
Docs/manual.texi:
Added 4.1 manual section
Updated changelog
client/mysqltest.c:
Added --skip-safemalloc
include/my_global.h:
Added bug fix from 3.23 for AIX 4.3.3 and gcc 3.x
mysql-test/mysql-test-run.sh:
Start mysqltest with --skip-safemalloc (To get it faster)
mysql-test/r/bdb.result:
Update for new EXPLAIN output
mysql-test/r/compare.result:
Update for new EXPLAIN output
mysql-test/r/create.result:
Update for new EXPLAIN output
mysql-test/r/distinct.result:
Update for new EXPLAIN output
mysql-test/r/explain.result:
Update for new EXPLAIN output
mysql-test/r/group_by.result:
Update for new EXPLAIN output
mysql-test/r/heap.result:
Update for new EXPLAIN output
mysql-test/r/innodb.result:
Update for new EXPLAIN output
mysql-test/r/join_outer.result:
Update for new EXPLAIN output
mysql-test/r/key_diff.result:
Update for new EXPLAIN output
mysql-test/r/merge.result:
Update for new EXPLAIN output
mysql-test/r/null_key.result:
Update for new EXPLAIN output
mysql-test/r/order_by.result:
Update for new EXPLAIN output
mysql-test/r/select.result:
Update for new EXPLAIN output
mysql-test/r/temp_table.result:
Fixed speed bug in GROUP BY
mysql-test/r/type_datetime.result:
Update for new EXPLAIN output
mysql-test/r/user_var.result:
Update for new EXPLAIN output
mysql-test/r/variables.result:
Removed variable safe_show_database
mysql-test/t/temp_table.test:
Fixed speed bug in GROUP BY
mysql-test/t/variables.test:
Removed not used variable safe_show_databases
scripts/mysqld_safe.sh:
Propagate open-files-limit from mysqld_safe -> mysqld
sql/mysqld.cc:
Removed variable safe_show_database
sql/set_var.cc:
Removed variable safe_show_database
sql/slave.cc:
Updated error message
sql/sql_db.cc:
Added quotes around database name in CREATE DATABASE db_name
sql/sql_select.cc:
Fixed speed bug in GROUP BY
Updated WEEK() and DATE information in the manual.
Docs/manual.texi:
Updated WEEK() information.
Added more information of how MySQL stores dates.
libmysql/Makefile.am:
Fix after merge
libmysqld/lib_vio.c:
Use new vio_blocking()
mysql-test/r/group_by.result:
Update results after merge
sql/ha_innodb.cc:
Fix after merge
sql/lex.h:
Fix after merge
sql/slave.cc:
Added missing include file
sql/sql_base.cc:
Added function comments
vio/test-ssl.c:
Fix after merge
(Merge of code from 4.0)
Docs/manual.texi:
Changelog
include/my_base.h:
Fixed bug with GROUP BY on NULL fields.
include/mysql_com.h:
Fixed bug with GROUP BY on NULL fields.
myisam/mi_search.c:
Fixed bug with GROUP BY on NULL fields.
myisam/mi_write.c:
Fixed bug with GROUP BY on NULL fields.
mysql-test/r/group_by.result:
Fixed bug with GROUP BY on NULL fields.
mysql-test/t/group_by.test:
Fixed bug with GROUP BY on NULL fields.
sql/sql_base.cc:
Removed some not-needed comments in the trace file
sql/sql_select.cc:
Fixed bug with GROUP BY on NULL fields.
Fixed problem in access rights testing (from last patch)
mysql-test/r/group_by.result:
Condenced GROUP test case
mysql-test/t/group_by.test:
Condenced GROUP test case
sql/sql_parse.cc:
Fixed problem in access rights testing (from last patch)
sql/sql_select.cc:
Rollback Sinisa's GROUP BY patch and make a better one.
Fix problem with HAVING and MAX() IS NOT NULL
Docs/manual.texi:
Changelog & NULL usage with ORDER BY
client/mysqldump.c:
Cleanup disable keys
mysql-test/r/distinct.result:
Fix results after ORDER BY with NULL fix
mysql-test/r/group_by.result:
Fix results after ORDER BY with NULL fix
mysql-test/r/having.result:
Testcase for bug with HAVING
mysql-test/t/distinct.test:
Test for DISTINCT + ORDER BY DESC bug
mysql-test/t/having.test:
Test of HAVING and MAX IS NOT NULL
sql/filesort.cc:
Fix sorting of NULL values (Should always be first)
sql/item.h:
Fix problem with HAVING and MAX() IS NOT NULL
sql/item_sum.h:
Fix problem with HAVING and MAX() IS NOT NULL
sql/opt_range.cc:
Fix problem with HAVING and MAX() IS NOT NULL
sql/opt_range.h:
Fix sorting of NULL values
sql/sql_select.cc:
Fix sorting of ORDER BY ... DESC on NULL values.
Fixed bug in multi-table-delete
Docs/manual.texi:
Changelog
include/mysql_com.h:
Define MAX_CHAR_WIDTH
myisam/mi_extra.c:
Cleanup
mysql-test/r/bdb.result:
Bug test
mysql-test/r/group_by.result:
Bug test
mysql-test/t/bdb.test:
Bug test
mysql-test/t/group_by.test:
Bug test
sql/ha_berkeley.cc:
More debug statements
sql/handler.cc:
Move HA_EXTRA_NO_READCHECK to ha_open
sql/records.cc:
More DBUG statements
sql/sql_analyse.cc:
Cleanup
sql/sql_base.cc:
Move HA_EXTRA_NO_READCHECK to ha_open
sql/sql_delete.cc:
Fixed bug in multi-table-delete
Cleanup
sql/sql_select.cc:
Move HA_EXTRA_NO_READCHECK to ha_open
sql/sql_update.cc:
Move HA_EXTRA_NO_READCHECK to ha_open
Add ISAM to Windows version
Fix of test results
Fixes for NULL keys in HEAP tables.
Docs/manual.texi:
Changelog
heap/hp_open.c:
Add support for NULL=NULL in keys (for GROUP BY)
heap/hp_rkey.c:
Cleanup
heap/hp_write.c:
Cleanup
include/config-win.h:
Add ISAM to Windows version
include/my_base.h:
Add support for NULL=NULL in keys (for GROUP BY)
libmysqld/Makefile.am:
Rename of innobase to innodb
myisam/mi_write.c:
Add support for NULL=NULL in keys (for GROUP BY)
BitKeeper/etc/ignore:
Added libmysqld/ha_innodb.cc to the ignore list
mysql-test/r/group_by.result:
Test of NULL keys in HEAP tables
mysql-test/r/heap.result:
Test of NULL keys in HEAP tables
mysql-test/r/null.result:
Cleanup
mysql-test/r/order_by.result:
Fix for result of new ORDER BY optimization
mysql-test/t/group_by.test:
Test of NULL keys in HEAP tables
mysql-test/t/heap.test:
Test of NULL keys in HEAP tables
mysql-test/t/null.test:
Cleanup
sql/ha_heap.cc:
Add support of NULL keys
sql/item_strfunc.h:
Fix for BINARY and CAST functions
sql/item_timefunc.h:
Fix for BINARY and CAST functions
sql/sql_parse.cc:
Cleanup
sql/sql_select.cc:
Add support for NULL=NULL in keys (for GROUP BY)
Fixed bug in query cache.
Cleaned up des_crypt code.
BitKeeper/deleted/.del-fsck.mysql~87170d4358b50d60:
Delete: fs/fsck.mysql
Docs/manual.texi:
Changed != to <>
mysql-test/mysql-test-run.sh:
Fix sleep times to take into account creation of InnoDB tables.
mysql-test/r/group_by.result:
More tests
mysql-test/r/query_cache.result:
More tests
mysql-test/r/union.result:
More tests
mysql-test/t/func_str.test:
Fix for FreeBSD
mysql-test/t/query_cache.test:
More tests
mysql-test/t/union.test:
More tests
mysys/my_winsem.c:
Cleanup comments
sql/des_key_file.cc:
Cleanup des_crypt code
sql/item_strfunc.cc:
Cleanup des_crypt code
sql/item_strfunc.h:
Cleanup des_crypt code
sql/mysql_priv.h:
Cleanup des_crypt code
sql/mysqld.cc:
Cleanup des_crypt code
sql/sql_acl.cc:
For for GRANT and lower-case-table names
sql/sql_cache.cc:
Function for integrity checking.
Fixed bug when merging blocks.
sql/sql_cache.h:
Function for integrity checking.
sql/sql_delete.cc:
Cleanup
sql/sql_parse.cc:
For for GRANT and lower-case-table names
sql/sql_union.cc:
Cleanup & fixed bug in LIMIT handling
sql/sql_yacc.yy:
C
Docs/manual.texi:
Changelog
libmysql/libmysql.c:
Fixed bug with mysql_use_result() when mysql_query() is called before mysql_free_result().
mysql-test/r/group_by.result:
New tests
mysql-test/t/group_by.test:
New tests
sql/stacktrace.c:
Fix for SCO
Changed 'lib' to 'master-data'
Fix for slow slaves
Docs/manual.texi:
Changelog
include/mysql.h:
Fixes for Cygwin
libmysql/libmysql.c:
Fixes for Cygwin
mysql-test/Makefile.am:
Include missing test files
mysql-test/include/master-slave.inc:
Fixes for slow slaves
mysql-test/install_test_db.sh:
Change 'lib' to 'master-data'
mysql-test/mysql-test-run.sh:
Change 'lib' to 'master-data'
mysql-test/r/group_by.result:
Test case for count(*) problem
mysql-test/t/group_by.test:
Test case for count(*) problem
mysql-test/t/rpl000018-master.sh:
Change 'lib' to 'master-data'
sql/sql_select.cc:
Fix for count(*) problem