1
0
Fork 0
mirror of https://github.com/DBD-SQLite/DBD-SQLite synced 2025-06-08 22:58:17 -04:00

DBD-SQLite: tentatively disabled collation_needed stuff as it leaks badly

This commit is contained in:
Kenichi Ishigaki 2009-07-23 15:50:12 +00:00
parent 976d04a682
commit 6cfea888c7
4 changed files with 18 additions and 4 deletions

View file

@ -81,6 +81,7 @@ create_collation(dbh, name, func)
OUTPUT: OUTPUT:
RETVAL RETVAL
#if 0
static void static void
collation_needed(dbh, callback) collation_needed(dbh, callback)
@ -93,6 +94,7 @@ collation_needed(dbh, callback)
sqlite_db_collation_needed(aTHX_ dbh, callback ); sqlite_db_collation_needed(aTHX_ dbh, callback );
} }
#endif
static int static int
progress_handler(dbh, n_opcodes, handler) progress_handler(dbh, n_opcodes, handler)

View file

@ -1300,6 +1300,7 @@ sqlite_db_create_collation(pTHX_ SV *dbh, const char *name, SV *func )
return TRUE; return TRUE;
} }
#if 0
void void
sqlite_db_collation_needed_dispatcher ( sqlite_db_collation_needed_dispatcher (
void *info, void *info,
@ -1349,6 +1350,7 @@ sqlite_db_collation_needed(pTHX_ SV *dbh, SV *callback )
sqlite_db_collation_needed_dispatcher ); sqlite_db_collation_needed_dispatcher );
} }
#endif
int int
sqlite_db_generic_callback_dispatcher( void *callback ) sqlite_db_generic_callback_dispatcher( void *callback )

View file

@ -78,11 +78,13 @@ struct aggrInfo {
int inited; int inited;
}; };
#if 0
typedef struct collationNeededInfo collationNeededInfo; typedef struct collationNeededInfo collationNeededInfo;
struct collationNeededInfo { struct collationNeededInfo {
SV *dbh; SV *dbh;
SV *callback; SV *callback;
}; };
#endif
int sqlite_db_create_function(pTHX_ SV *dbh, const char *name, int argc, SV *func); int sqlite_db_create_function(pTHX_ SV *dbh, const char *name, int argc, SV *func);
int sqlite_db_enable_load_extension(pTHX_ SV *dbh, int onoff); int sqlite_db_enable_load_extension(pTHX_ SV *dbh, int onoff);
@ -95,7 +97,9 @@ int sqlite_db_busy_timeout (pTHX_ SV *dbh, int timeout );
int sqlite_db_backup_from_file(pTHX_ SV *dbh, char *filename); int sqlite_db_backup_from_file(pTHX_ SV *dbh, char *filename);
int sqlite_db_backup_to_file(pTHX_ SV *dbh, char *filename); int sqlite_db_backup_to_file(pTHX_ SV *dbh, char *filename);
#if 0
void sqlite_db_collation_needed(pTHX_ SV *dbh, SV *callback ); void sqlite_db_collation_needed(pTHX_ SV *dbh, SV *callback );
#endif
SV* sqlite_db_commit_hook( pTHX_ SV *dbh, SV *hook ); SV* sqlite_db_commit_hook( pTHX_ SV *dbh, SV *hook );
SV* sqlite_db_rollback_hook( pTHX_ SV *dbh, SV *hook ); SV* sqlite_db_rollback_hook( pTHX_ SV *dbh, SV *hook );
SV* sqlite_db_update_hook( pTHX_ SV *dbh, SV *hook ); SV* sqlite_db_update_hook( pTHX_ SV *dbh, SV *hook );

View file

@ -46,7 +46,7 @@ sub driver {
DBD::SQLite::db->install_method('sqlite_create_function'); DBD::SQLite::db->install_method('sqlite_create_function');
DBD::SQLite::db->install_method('sqlite_create_aggregate'); DBD::SQLite::db->install_method('sqlite_create_aggregate');
DBD::SQLite::db->install_method('sqlite_create_collation'); DBD::SQLite::db->install_method('sqlite_create_collation');
DBD::SQLite::db->install_method('sqlite_collation_needed'); # DBD::SQLite::db->install_method('sqlite_collation_needed');
DBD::SQLite::db->install_method('sqlite_progress_handler'); DBD::SQLite::db->install_method('sqlite_progress_handler');
DBD::SQLite::db->install_method('sqlite_commit_hook'); DBD::SQLite::db->install_method('sqlite_commit_hook');
DBD::SQLite::db->install_method('sqlite_rollback_hook'); DBD::SQLite::db->install_method('sqlite_rollback_hook');
@ -120,9 +120,15 @@ sub connect {
DBD::SQLite::db::_login($dbh, $real, $user, $auth) or return undef; DBD::SQLite::db::_login($dbh, $real, $user, $auth) or return undef;
# Register the on-demand collation installer # Register the on-demand collation installer
$DBI::VERSION >= 1.608 # $DBI::VERSION >= 1.608
? $dbh->sqlite_collation_needed(\&install_collation) # ? $dbh->sqlite_collation_needed(\&install_collation)
: $dbh->func(\&install_collation, "collation_needed"); # : $dbh->func(\&install_collation, "collation_needed");
# XXX: Current collation_needed implementation is leaking badly.
# Don't use it before we fix the leak.
foreach my $collation_name(keys %DBD::SQLite::COLLATION) {
install_collation($dbh, $collation_name);
}
# Register the REGEXP function # Register the REGEXP function
$DBI::VERSION >= 1.608 $DBI::VERSION >= 1.608