This function reads a specified log file to check it for compatibility with the current database and to enumerate its labels.
MCO_RET mco_translog_query_info ( mco_db_h db, char const *file_path, mco_TL_labels_proc labels_proc, void * user_data, mco_TL_log_info_h info )
db | Database connection handle |
file_path | The path and filename or disk partition of the log file. |
labels_proc | A user defined call-back function that enumerates labels inside the log file. (Note: May be NULL if is not used). |
user_data | A pointer to user-specified data that will be passed to the call-back function labels_proc . |
info | A pointer to a structure defined as:typedef struct mco_TL_log_info_ { mco_trans_counter_t start_trans_counter; mco_trans_counter_t stop_trans_counter; mco_trans_counter_t stored_transactions; uint2 disk_page_size; uint2 page_size; mco_size_t log_size; int labels_count; mco_bool crc; mco_bool aligned; mco_bool dictionary_compat; mco_bool transaction_apply_compat; mco_bool transaction_append_compat; mco_bool not_corrupted; mco_bool iteratable; } mco_TL_log_info_t,*mco_TL_log_info_h; Note: May be NULL if is not used (i.e. is used only to enumerate the labels). (The structure elements are explained below.) |
This function reads a specified log file to check it for compatibility with the current database and to enumerate its labels.
The structure elements for structure mco_TL_log_info
are defined as follows:
start_trans_counter | The value of the transaction counter when the log file was started. |
last_trans_counter | The value of the transaction counter when the log file was finished. |
stored_transactions | The count of transactions stored in the log file. |
disk_page_size | Size of a single disk page. |
page_size | Size of an in-memory database page. |
log_size | The total size of the log file, in bytes. |
labels_count | The count of labels stored in the log file. |
crc | MCO_YES if the log was created with MCO_TRANSLOG_CRC flag; otherwise MCO_NO . |
aligned | MCO_YES if the log was created with MCO_TRANSLOG_ALIGNED flag; otherwise MCO_NO . |
dictionary_compat | MCO_YES if the log file is compatible with the database specified by the argument "db"; otherwise MCO_NO . |
transaction_apply_compat | MCO_YES if the log file is compatible for applying to the database specified by argument "db" (by transaction number); otherwise MCO_NO . |
transaction_append_compat | MCO_YES if the log file is compatible for appending to the database specified by argument "db" (by transaction number); otherwise MCO_NO . |
not_corrupted | MCO_YES if no data has been lost since the last save-point. |
iteratable | MCO_YES if the log file was written with the MCO_TRANSLOG_ITERABLE flag. |
The user-defined callback procedure labels_proc
must have the following prototype:
typedef void(*mco_TL_labels_proc)(const char *label, int label_id, void *data);
where label
is the label text, label_id
is the integer value associated with this label (that was generated by the TL runtime when the function mco_translog_label()
was called), and data is a pointer to application-specific data that may be used in the implementation of the label procedure.