39
#include <drizzled/common.h>
41
#define uchar unsigned char
43
#include <mysql_priv.h>
47
typedef bool (*IsPBMSFilterFunc)(Field *field);
39
50
* pbms_initialize() should be called from the engines plugIn's 'init()' function.
40
51
* The engine_name is the name of your engine, "PBXT" or "InnoDB" for example.
43
54
* true if this is being built into the server's handler code above the engine level
46
extern bool pbms_initialize(const char *engine_name, bool isServer, PBMSResultPtr result);
57
extern bool pbms_initialize(const char *engine_name, bool isServer, bool isTransactional, PBMSResultPtr result, IsPBMSFilterFunc is_pbms_blob);
49
60
* pbms_finalize() should be called from the engines plugIn's 'deinit()' function.
51
extern void pbms_finalize();
62
extern void pbms_finalize(const char *engine_name);
54
65
* pbms_write_row_blobs() should be called from the engine's 'write_row' function.
55
66
* It can alter the row data so it must be called before any other function using the row data.
56
* It should also be called from engine's 'update_row' function for the new row.
58
* pbms_completed() must be called after calling pbms_write_row_blobs() and just before
59
* returning from write_row() to indicate if the operation completed successfully.
61
extern int pbms_write_row_blobs(TABLE *table, uchar *buf, PBMSResultPtr result);
68
* pbms_completed() must be called after calling pbms_write_row_blobs() and just before
69
* returning from write_row() to indicate if the operation completed successfully.
71
extern int pbms_write_row_blobs(const TABLE *table, unsigned char *buf, PBMSResultPtr result);
74
* pbms_update_row_blobs() should be called from the engine's 'update_row' function.
75
* It can alter the row data so it must be called before any other function using the row data.
77
* pbms_completed() must be called after calling pbms_write_row_blobs() and just before
78
* returning from write_row() to indicate if the operation completed successfully.
80
extern int pbms_update_row_blobs(const TABLE *table, const unsigned char *old_row, unsigned char *new_row, PBMSResultPtr result);
64
83
* pbms_delete_row_blobs() should be called from the engine's 'delete_row' function.
65
* It should also be called from engine's 'update_row' function for the old row.
67
85
* pbms_completed() must be called after calling pbms_delete_row_blobs() and just before
68
86
* returning from delete_row() to indicate if the operation completed successfully.
70
extern int pbms_delete_row_blobs(TABLE *table, const uchar *buf, PBMSResultPtr result);
88
extern int pbms_delete_row_blobs(const TABLE *table, const unsigned char *buf, PBMSResultPtr result);
73
91
* pbms_rename_table_with_blobs() should be called from the engine's 'rename_table' function.
98
116
* pbms_completed() has the effect of committing or rolling back the changes made if the session
99
117
* is in 'autocommit' mode.
101
extern void pbms_completed(TABLE *table, bool ok);
119
extern void pbms_completed(const TABLE *table, bool ok);