throw $e;
};
+ if ($ENV{TZ}) {
+ try {
+ $dbh->do('SET LOCAL timezone TO ?;',{},$ENV{TZ});
+
+ } catch Error with {
+ my $e = shift;
+ $log->debug("Failed to set timezone: $ENV{TZ}", WARN);
+ };
+ }
- my $death_cb = $client->session->register_callback(
- death => sub {
- __PACKAGE__->pg_rollback_xaction;
- }
- );
-
- $log->debug("Registered 'death' callback [$death_cb] for new transaction with Open-ILS XACT-ID [$xact_id]", DEBUG);
-
- $client->session->session_data( death_cb => $death_cb );
- if ($self->api_name =~ /autocommit$/o) {
- $pg->current_xact_is_auto(1);
- my $dc_cb = $client->session->register_callback(
- disconnect => sub {
- my $ses = shift;
- $ses->unregister_callback(death => $death_cb);
- __PACKAGE__->pg_commit_xaction;
+ if ($client->session) { # not a subrequest
+ my $death_cb = $client->session->register_callback(
+ death => sub {
+ __PACKAGE__->pg_rollback_xaction;
}
);
- $log->debug("Registered 'disconnect' callback [$dc_cb] for new transaction with Open-ILS XACT-ID [$xact_id]", DEBUG);
- if ($client and $client->session) {
- $client->session->session_data( disconnect_cb => $dc_cb );
+
+ $log->debug("Registered 'death' callback [$death_cb] for new transaction with Open-ILS XACT-ID [$xact_id]", DEBUG);
+
+ $client->session->session_data( death_cb => $death_cb );
+
+ if ($self->api_name =~ /autocommit$/o) {
+ $pg->current_xact_is_auto(1);
+ my $dc_cb = $client->session->register_callback(
+ disconnect => sub {
+ my $ses = shift;
+ $ses->unregister_callback(death => $death_cb);
+ __PACKAGE__->pg_commit_xaction;
+ }
+ );
+ $log->debug("Registered 'disconnect' callback [$dc_cb] for new transaction with Open-ILS XACT-ID [$xact_id]", DEBUG);
+ if ($client and $client->session) {
+ $client->session->session_data( disconnect_cb => $dc_cb );
+ }
}
}
$success = 0;
};
- $pg->current_xact_session->unregister_callback( death =>
- $pg->current_xact_session->session_data( 'death_cb' )
- ) if ($pg->current_xact_session);
-
- if ($pg->current_xact_is_auto) {
- $pg->current_xact_session->unregister_callback( disconnect =>
- $pg->current_xact_session->session_data( 'disconnect_cb' )
- );
+ if ($pg->current_xact_session) { # not a subrequest
+ $pg->current_xact_session->unregister_callback( death =>
+ $pg->current_xact_session->session_data( 'death_cb' )
+ ) if ($pg->current_xact_session);
+
+ if ($pg->current_xact_is_auto) {
+ $pg->current_xact_session->unregister_callback( disconnect =>
+ $pg->current_xact_session->session_data( 'disconnect_cb' )
+ );
+ }
}
$pg->unset_xact_session;
$success = 0;
};
- $pg->current_xact_session->unregister_callback( death =>
- $pg->current_xact_session->session_data( 'death_cb' )
- ) if ($pg->current_xact_session);
-
- if ($pg->current_xact_is_auto) {
- $pg->current_xact_session->unregister_callback( disconnect =>
- $pg->current_xact_session->session_data( 'disconnect_cb' )
- );
+ if ($pg->current_xact_session) { # not a subrequest
+ $pg->current_xact_session->unregister_callback( death =>
+ $pg->current_xact_session->session_data( 'death_cb' )
+ ) if ($pg->current_xact_session);
+
+ if ($pg->current_xact_is_auto) {
+ $pg->current_xact_session->unregister_callback( disconnect =>
+ $pg->current_xact_session->session_data( 'disconnect_cb' )
+ );
+ }
}
$pg->unset_xact_session;
$pg->set_audit_session( $client->session );
- my $death_cb = $client->session->register_callback(
- death => sub {
- __PACKAGE__->pg_clear_audit_info;
- }
- );
-
- $log->debug("Registered 'death' callback [$death_cb] for clearing audit information", DEBUG);
-
- $client->session->session_data( death_cb_ai => $death_cb );
+ if ($client->session) { # not a subrequest
+ my $death_cb = $client->session->register_callback(
+ death => sub {
+ __PACKAGE__->pg_clear_audit_info;
+ }
+ );
+
+ $log->debug("Registered 'death' callback [$death_cb] for clearing audit information", DEBUG);
+
+ $client->session->session_data( death_cb_ai => $death_cb );
+ }
return 1;
$log->debug("Failed to clear audit information: ".$e, INFO);
};
- $pg->current_audit_session->unregister_callback( death =>
- $pg->current_audit_session->session_data( 'death_cb_ai' )
- ) if ($pg->current_audit_session);
+ if ($pg->current_audit_session) { # not a subrequest
+ $pg->current_audit_session->unregister_callback( death =>
+ $pg->current_audit_session->session_data( 'death_cb_ai' )
+ ) if ($pg->current_audit_session);
+ }
$pg->unset_audit_session;
}
}
__PACKAGE__->register_method(
api_name => 'open-ils.storage.ordered.metabib.metarecord.records',
+ no_tz_force => 1,
method => 'ordered_records_from_metarecord',
api_level => 1,
cachable => 1,
);
__PACKAGE__->register_method(
api_name => 'open-ils.storage.ordered.metabib.metarecord.records.staff',
+ no_tz_force => 1,
method => 'ordered_records_from_metarecord',
api_level => 1,
cachable => 1,
__PACKAGE__->register_method(
api_name => 'open-ils.storage.ordered.metabib.metarecord.records.atomic',
+ no_tz_force => 1,
method => 'ordered_records_from_metarecord',
api_level => 1,
cachable => 1,
);
__PACKAGE__->register_method(
api_name => 'open-ils.storage.ordered.metabib.metarecord.records.staff.atomic',
+ no_tz_force => 1,
method => 'ordered_records_from_metarecord',
api_level => 1,
cachable => 1,
}
__PACKAGE__->register_method(
api_name => 'open-ils.storage.id_list.biblio.record_entry.search.isbn',
+ no_tz_force => 1,
method => 'isxn_search',
api_level => 1,
stream => 1,
);
__PACKAGE__->register_method(
api_name => 'open-ils.storage.id_list.biblio.record_entry.search.issn',
+ no_tz_force => 1,
method => 'isxn_search',
api_level => 1,
stream => 1,
}
__PACKAGE__->register_method(
api_name => 'open-ils.storage.metabib.metarecord.copy_count',
+ no_tz_force => 1,
method => 'metarecord_copy_count',
api_level => 1,
stream => 1,
);
__PACKAGE__->register_method(
api_name => 'open-ils.storage.metabib.metarecord.copy_count.staff',
+ no_tz_force => 1,
method => 'metarecord_copy_count',
api_level => 1,
stream => 1,
}
__PACKAGE__->register_method(
api_name => 'open-ils.storage.biblio.full_rec.multi_search',
+ no_tz_force => 1,
method => 'biblio_multi_search_full_rec',
api_level => 1,
stream => 1,
);
__PACKAGE__->register_method(
api_name => 'open-ils.storage.biblio.full_rec.multi_search.staff',
+ no_tz_force => 1,
method => 'biblio_multi_search_full_rec',
api_level => 1,
stream => 1,
}
__PACKAGE__->register_method(
api_name => 'open-ils.storage.direct.metabib.full_rec.search_fts.value',
+ no_tz_force => 1,
method => 'search_full_rec',
api_level => 1,
stream => 1,
);
__PACKAGE__->register_method(
api_name => 'open-ils.storage.direct.metabib.full_rec.search_fts.index_vector',
+ no_tz_force => 1,
method => 'search_full_rec',
api_level => 1,
stream => 1,
for my $class ( qw/title author subject keyword series identifier/ ) {
__PACKAGE__->register_method(
api_name => "open-ils.storage.metabib.$class.search_fts.metarecord",
+ no_tz_force => 1,
method => 'search_class_fts',
api_level => 1,
stream => 1,
);
__PACKAGE__->register_method(
api_name => "open-ils.storage.metabib.$class.search_fts.metarecord.unordered",
+ no_tz_force => 1,
method => 'search_class_fts',
api_level => 1,
stream => 1,
);
__PACKAGE__->register_method(
api_name => "open-ils.storage.metabib.$class.search_fts.metarecord.staff",
+ no_tz_force => 1,
method => 'search_class_fts',
api_level => 1,
stream => 1,
);
__PACKAGE__->register_method(
api_name => "open-ils.storage.metabib.$class.search_fts.metarecord.staff.unordered",
+ no_tz_force => 1,
method => 'search_class_fts',
api_level => 1,
stream => 1,
for my $class ( qw/title author subject keyword series identifier/ ) {
__PACKAGE__->register_method(
api_name => "open-ils.storage.metabib.$class.search_fts.metarecord_count",
+ no_tz_force => 1,
method => 'search_class_fts_count',
api_level => 1,
stream => 1,
);
__PACKAGE__->register_method(
api_name => "open-ils.storage.metabib.$class.search_fts.metarecord_count.staff",
+ no_tz_force => 1,
method => 'search_class_fts_count',
api_level => 1,
stream => 1,
for my $class ( qw/title author subject keyword series identifier/ ) {
__PACKAGE__->register_method(
api_name => "open-ils.storage.metabib.$class.post_filter.search_fts.metarecord",
+ no_tz_force => 1,
method => 'postfilter_search_class_fts',
api_level => 1,
stream => 1,
);
__PACKAGE__->register_method(
api_name => "open-ils.storage.metabib.$class.post_filter.search_fts.metarecord.staff",
+ no_tz_force => 1,
method => 'postfilter_search_class_fts',
api_level => 1,
stream => 1,
__PACKAGE__->register_method(
api_name => "open-ils.storage.metabib.post_filter.multiclass.search_fts.metarecord",
+ no_tz_force => 1,
method => 'postfilter_search_multi_class_fts',
api_level => 1,
stream => 1,
);
__PACKAGE__->register_method(
api_name => "open-ils.storage.metabib.post_filter.multiclass.search_fts.metarecord.staff",
+ no_tz_force => 1,
method => 'postfilter_search_multi_class_fts',
api_level => 1,
stream => 1,
__PACKAGE__->register_method(
api_name => "open-ils.storage.metabib.multiclass.search_fts",
+ no_tz_force => 1,
method => 'postfilter_search_multi_class_fts',
api_level => 1,
stream => 1,
);
__PACKAGE__->register_method(
api_name => "open-ils.storage.metabib.multiclass.search_fts.staff",
+ no_tz_force => 1,
method => 'postfilter_search_multi_class_fts',
api_level => 1,
stream => 1,
__PACKAGE__->register_method(
api_name => "open-ils.storage.biblio.multiclass.search_fts.record",
+ no_tz_force => 1,
method => 'biblio_search_multi_class_fts',
api_level => 1,
stream => 1,
);
__PACKAGE__->register_method(
api_name => "open-ils.storage.biblio.multiclass.search_fts.record.staff",
+ no_tz_force => 1,
method => 'biblio_search_multi_class_fts',
api_level => 1,
stream => 1,
);
__PACKAGE__->register_method(
api_name => "open-ils.storage.biblio.multiclass.search_fts",
+ no_tz_force => 1,
method => 'biblio_search_multi_class_fts',
api_level => 1,
stream => 1,
);
__PACKAGE__->register_method(
api_name => "open-ils.storage.biblio.multiclass.search_fts.staff",
+ no_tz_force => 1,
method => 'biblio_search_multi_class_fts',
api_level => 1,
stream => 1,
}
__PACKAGE__->register_method(
api_name => "open-ils.storage.biblio.multiclass.staged.search_fts",
+ no_tz_force => 1,
method => 'staged_fts',
api_level => 0,
stream => 1,
);
__PACKAGE__->register_method(
api_name => "open-ils.storage.biblio.multiclass.staged.search_fts.staff",
+ no_tz_force => 1,
method => 'staged_fts',
api_level => 0,
stream => 1,
);
__PACKAGE__->register_method(
api_name => "open-ils.storage.metabib.multiclass.staged.search_fts",
+ no_tz_force => 1,
method => 'staged_fts',
api_level => 0,
stream => 1,
);
__PACKAGE__->register_method(
api_name => "open-ils.storage.metabib.multiclass.staged.search_fts.staff",
+ no_tz_force => 1,
method => 'staged_fts',
api_level => 0,
stream => 1,
}
__PACKAGE__->register_method(
api_name => "open-ils.storage.fts_paging_estimate",
+ no_tz_force => 1,
method => 'FTS_paging_estimate',
argc => 5,
strict => 1,
}
__PACKAGE__->register_method(
api_name => "open-ils.storage.search.xref",
+ no_tz_force => 1,
method => 'xref_count',
api_level => 1,
);
__PACKAGE__->register_method(
api_name => "open-ils.storage.query_parser.abstract_query.canonicalize",
+ no_tz_force => 1,
method => "abstract_query2str",
api_level => 1,
signature => {
__PACKAGE__->register_method(
api_name => "open-ils.storage.query_parser.abstract_query.from_string",
+ no_tz_force => 1,
method => "str2abstract_query",
api_level => 1,
signature => {
}
__PACKAGE__->register_method(
api_name => "open-ils.storage.query_parser_search",
+ no_tz_force => 1,
method => 'query_parser_fts',
api_level => 1,
stream => 1,
}
__PACKAGE__->register_method(
api_name => "open-ils.storage.biblio.multiclass.staged.search_fts",
+ no_tz_force => 1,
method => 'query_parser_fts_wrapper',
api_level => 1,
stream => 1,
);
__PACKAGE__->register_method(
api_name => "open-ils.storage.biblio.multiclass.staged.search_fts.staff",
+ no_tz_force => 1,
method => 'query_parser_fts_wrapper',
api_level => 1,
stream => 1,
);
__PACKAGE__->register_method(
api_name => "open-ils.storage.metabib.multiclass.staged.search_fts",
+ no_tz_force => 1,
method => 'query_parser_fts_wrapper',
api_level => 1,
stream => 1,
);
__PACKAGE__->register_method(
api_name => "open-ils.storage.metabib.multiclass.staged.search_fts.staff",
+ no_tz_force => 1,
method => 'query_parser_fts_wrapper',
api_level => 1,
stream => 1,