Skip to content

Commit da32b13

Browse files
committed
Remove per-class constants, fixes #139
1 parent 9080ad5 commit da32b13

File tree

6 files changed

+50
-112
lines changed

6 files changed

+50
-112
lines changed

lib/mysql-libmysqlclient.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,16 @@ if (!bindings) {
5555
**/
5656
exports.bindings = bindings;
5757

58+
// Populate all constants from bindings
59+
for (var key in bindings) {
60+
if (bindings.hasOwnProperty(key)) {
61+
if (typeof bindings[key] === 'number') {
62+
exports[key] = bindings[key];
63+
delete bindings[key];
64+
}
65+
}
66+
}
67+
5868
/**
5969
* MysqlLibmysqlclient
6070
*

src/mysql_bindings_connection.cc

Lines changed: 0 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -30,58 +30,6 @@ void MysqlConnection::Init(Handle<Object> target) {
3030
Local<ObjectTemplate> instance_template = constructor_template->InstanceTemplate();
3131
instance_template->SetInternalFieldCount(1);
3232

33-
// Constants for connect flags
34-
NODE_DEFINE_CONSTANT(instance_template, CLIENT_COMPRESS);
35-
NODE_DEFINE_CONSTANT(instance_template, CLIENT_FOUND_ROWS);
36-
NODE_DEFINE_CONSTANT(instance_template, CLIENT_IGNORE_SIGPIPE);
37-
NODE_DEFINE_CONSTANT(instance_template, CLIENT_IGNORE_SPACE);
38-
NODE_DEFINE_CONSTANT(instance_template, CLIENT_INTERACTIVE);
39-
// Not yet implemented
40-
// NODE_DEFINE_CONSTANT(instance_template, CLIENT_LOCAL_FILES);
41-
NODE_DEFINE_CONSTANT(instance_template, CLIENT_MULTI_RESULTS);
42-
NODE_DEFINE_CONSTANT(instance_template, CLIENT_MULTI_STATEMENTS);
43-
NODE_DEFINE_CONSTANT(instance_template, CLIENT_NO_SCHEMA);
44-
// Unused by MySQL
45-
// NODE_DEFINE_CONSTANT(instance_template, CLIENT_ODBC);
46-
// This option should not be set by application programs;
47-
// it is set internally in the client library. Instead,
48-
// use setSslSync() before calling connect() or connectSync().
49-
// NODE_DEFINE_CONSTANT(instance_template, CLIENT_SSL);
50-
// Known issue: conn.CLIENT_REMEMBER_OPTIONS === -2147483648
51-
NODE_DEFINE_CONSTANT(instance_template, CLIENT_REMEMBER_OPTIONS);
52-
53-
// Constants for setOption
54-
NODE_DEFINE_CONSTANT(instance_template, MYSQL_INIT_COMMAND);
55-
NODE_DEFINE_CONSTANT(instance_template, MYSQL_OPT_COMPRESS);
56-
NODE_DEFINE_CONSTANT(instance_template, MYSQL_OPT_CONNECT_TIMEOUT);
57-
// Unused, embedded
58-
// NODE_DEFINE_CONSTANT(MYSQL_OPT_GUESS_CONNECTION);
59-
// Not yet implemented
60-
// NODE_DEFINE_CONSTANT(instance_template, MYSQL_OPT_LOCAL_INFILE);
61-
// Unused, windows
62-
// NODE_DEFINE_CONSTANT(instance_template, MYSQL_OPT_NAMED_PIPE);
63-
NODE_DEFINE_CONSTANT(instance_template, MYSQL_OPT_PROTOCOL);
64-
NODE_DEFINE_CONSTANT(instance_template, MYSQL_OPT_READ_TIMEOUT);
65-
NODE_DEFINE_CONSTANT(instance_template, MYSQL_OPT_RECONNECT);
66-
// Unused, embedded
67-
// NODE_DEFINE_CONSTANT(MYSQL_SET_CLIENT_IP);
68-
NODE_DEFINE_CONSTANT(instance_template, MYSQL_OPT_SSL_VERIFY_SERVER_CERT);
69-
// Unused, embedded
70-
// NODE_DEFINE_CONSTANT(MYSQL_OPT_USE_EMBEDDED_CONNECTION);
71-
// Unused, embedded
72-
// NODE_DEFINE_CONSTANT(MYSQL_OPT_USE_REMOTE_CONNECTION);
73-
// Unused by MySQL
74-
// NODE_DEFINE_CONSTANT(MYSQL_OPT_USE_RESULT);
75-
NODE_DEFINE_CONSTANT(instance_template, MYSQL_OPT_WRITE_TIMEOUT);
76-
NODE_DEFINE_CONSTANT(instance_template, MYSQL_READ_DEFAULT_FILE);
77-
NODE_DEFINE_CONSTANT(instance_template, MYSQL_READ_DEFAULT_GROUP);
78-
NODE_DEFINE_CONSTANT(instance_template, MYSQL_REPORT_DATA_TRUNCATION);
79-
NODE_DEFINE_CONSTANT(instance_template, MYSQL_SECURE_AUTH);
80-
NODE_DEFINE_CONSTANT(instance_template, MYSQL_SET_CHARSET_DIR);
81-
NODE_DEFINE_CONSTANT(instance_template, MYSQL_SET_CHARSET_NAME);
82-
// Unused, windows
83-
// NODE_DEFINE_CONSTANT(instance_template, MYSQL_SHARED_MEMORY_BASE_NAME);
84-
8533
// Properties
8634
instance_template->SetAccessor(V8STR("connectErrno"), MysqlConnection::ConnectErrnoGetter);
8735
instance_template->SetAccessor(V8STR("connectError"), MysqlConnection::ConnectErrorGetter);

src/mysql_bindings_statement.cc

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,6 @@ void MysqlStatement::Init(Handle<Object> target) {
3434
Local<ObjectTemplate> instance_template = constructor_template->InstanceTemplate();
3535
instance_template->SetInternalFieldCount(1);
3636

37-
// Constants
38-
NODE_DEFINE_CONSTANT(instance_template, STMT_ATTR_UPDATE_MAX_LENGTH);
39-
NODE_DEFINE_CONSTANT(instance_template, STMT_ATTR_CURSOR_TYPE);
40-
NODE_DEFINE_CONSTANT(instance_template, STMT_ATTR_PREFETCH_ROWS);
41-
4237
// Properties
4338
instance_template->SetAccessor(V8STR("paramCount"), ParamCountGetter);
4439

tests/complex/test-fetchAll-options.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -308,8 +308,8 @@ exports.setOptionSyncQueryFetchAll = function (test) {
308308
var conn = cfg.mysql_libmysqlclient.createConnectionSync();
309309

310310
conn.initSync();
311-
conn.setOptionSync(conn.MYSQL_OPT_RECONNECT, 1);
312-
conn.setOptionSync(conn.MYSQL_SET_CHARSET_NAME, "utf8");
311+
conn.setOptionSync(cfg.mysql_libmysqlclient.MYSQL_OPT_RECONNECT, 1);
312+
conn.setOptionSync(cfg.mysql_libmysqlclient.MYSQL_SET_CHARSET_NAME, "utf8");
313313
conn.realConnectSync(cfg.host, cfg.user, cfg.password, cfg.database);
314314

315315
conn.query("SELECT size, colors FROM " + cfg.test_table + " WHERE size;", function (err, res) {

tests/low-level-sync/test-class-mysqlconnection-sync.js

Lines changed: 29 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -121,37 +121,24 @@ exports.New = function (test) {
121121
};
122122

123123
exports.ConnectFlagsConstants = function (test) {
124-
test.expect(18);
124+
test.expect(9);
125125

126126
var conn = cfg.mysql_libmysqlclient.createConnectionSync();
127127

128-
test.equals(conn.CLIENT_COMPRESS, 32);
129-
test.equals(conn.CLIENT_FOUND_ROWS, 2);
130-
test.equals(conn.CLIENT_IGNORE_SIGPIPE, 4096);
131-
test.equals(conn.CLIENT_IGNORE_SPACE, 256);
132-
test.equals(conn.CLIENT_INTERACTIVE, 1024);
133-
// Not yet implemented
134-
// test.equals(conn.CLIENT_LOCAL_FILES, 128);
135-
test.equals(conn.CLIENT_MULTI_RESULTS, 131072);
136-
test.equals(conn.CLIENT_MULTI_STATEMENTS, 65536);
137-
test.equals(conn.CLIENT_NO_SCHEMA, 16);
138-
// Known issue: conn.CLIENT_REMEMBER_OPTIONS === -2147483648
139-
test.equals(conn.CLIENT_REMEMBER_OPTIONS, -2147483648);
140-
141-
test.equals(cfg.mysql_bindings.CLIENT_COMPRESS, 32);
142-
test.equals(cfg.mysql_bindings.CLIENT_FOUND_ROWS, 2);
143-
test.equals(cfg.mysql_bindings.CLIENT_IGNORE_SIGPIPE, 4096);
144-
test.equals(cfg.mysql_bindings.CLIENT_IGNORE_SPACE, 256);
145-
test.equals(cfg.mysql_bindings.CLIENT_INTERACTIVE, 1024);
128+
test.equals(cfg.mysql_libmysqlclient.CLIENT_COMPRESS, 32);
129+
test.equals(cfg.mysql_libmysqlclient.CLIENT_FOUND_ROWS, 2);
130+
test.equals(cfg.mysql_libmysqlclient.CLIENT_IGNORE_SIGPIPE, 4096);
131+
test.equals(cfg.mysql_libmysqlclient.CLIENT_IGNORE_SPACE, 256);
132+
test.equals(cfg.mysql_libmysqlclient.CLIENT_INTERACTIVE, 1024);
146133
// Not yet implemented
147-
// test.equals(cfg.mysql_bindings.CLIENT_LOCAL_FILES, 128);
148-
test.equals(cfg.mysql_bindings.CLIENT_MULTI_RESULTS, 131072);
149-
test.equals(cfg.mysql_bindings.CLIENT_MULTI_STATEMENTS, 65536);
150-
test.equals(cfg.mysql_bindings.CLIENT_NO_SCHEMA, 16);
151-
// Known issue: cfg.mysql_bindings.CLIENT_REMEMBER_OPTIONS === -2147483648
152-
test.equals(cfg.mysql_bindings.CLIENT_REMEMBER_OPTIONS, -2147483648);
153-
154-
conn.connectSync(cfg.host, cfg.user, cfg.password, cfg.database, null, null, cfg.mysql_bindings.CLIENT_REMEMBER_OPTIONS);
134+
// test.equals(cfg.mysql_libmysqlclient.CLIENT_LOCAL_FILES, 128);
135+
test.equals(cfg.mysql_libmysqlclient.CLIENT_MULTI_RESULTS, 131072);
136+
test.equals(cfg.mysql_libmysqlclient.CLIENT_MULTI_STATEMENTS, 65536);
137+
test.equals(cfg.mysql_libmysqlclient.CLIENT_NO_SCHEMA, 16);
138+
// Known issue: cfg.mysql_libmysqlclient.CLIENT_REMEMBER_OPTIONS === -2147483648
139+
test.equals(cfg.mysql_libmysqlclient.CLIENT_REMEMBER_OPTIONS, -2147483648);
140+
141+
conn.connectSync(cfg.host, cfg.user, cfg.password, cfg.database, null, null, cfg.mysql_libmysqlclient.CLIENT_REMEMBER_OPTIONS);
155142
conn.closeSync();
156143

157144
test.done();
@@ -160,21 +147,19 @@ exports.ConnectFlagsConstants = function (test) {
160147
exports.SetOptionsConstants = function (test) {
161148
test.expect(11);
162149

163-
var conn = cfg.mysql_libmysqlclient.createConnectionSync();
164-
165-
test.equals(conn.MYSQL_INIT_COMMAND, 3);
166-
test.equals(conn.MYSQL_OPT_COMPRESS, 1);
167-
test.equals(conn.MYSQL_OPT_CONNECT_TIMEOUT, 0);
150+
test.equals(cfg.mysql_libmysqlclient.MYSQL_INIT_COMMAND, 3);
151+
test.equals(cfg.mysql_libmysqlclient.MYSQL_OPT_COMPRESS, 1);
152+
test.equals(cfg.mysql_libmysqlclient.MYSQL_OPT_CONNECT_TIMEOUT, 0);
168153
// Not yet implemented
169-
// test.equals(conn.MYSQL_OPT_LOCAL_INFILE, 8);
170-
test.equals(conn.MYSQL_OPT_PROTOCOL, 9);
171-
test.equals(conn.MYSQL_OPT_READ_TIMEOUT, 11);
172-
test.equals(conn.MYSQL_OPT_RECONNECT, 20);
173-
test.equals(conn.MYSQL_OPT_WRITE_TIMEOUT, 12);
174-
test.equals(conn.MYSQL_READ_DEFAULT_FILE, 4);
175-
test.equals(conn.MYSQL_READ_DEFAULT_GROUP, 5);
176-
test.equals(conn.MYSQL_SET_CHARSET_DIR, 6);
177-
test.equals(conn.MYSQL_SET_CHARSET_NAME, 7);
154+
// test.equals(cfg.mysql_libmysqlclient.MYSQL_OPT_LOCAL_INFILE, 8);
155+
test.equals(cfg.mysql_libmysqlclient.MYSQL_OPT_PROTOCOL, 9);
156+
test.equals(cfg.mysql_libmysqlclient.MYSQL_OPT_READ_TIMEOUT, 11);
157+
test.equals(cfg.mysql_libmysqlclient.MYSQL_OPT_RECONNECT, 20);
158+
test.equals(cfg.mysql_libmysqlclient.MYSQL_OPT_WRITE_TIMEOUT, 12);
159+
test.equals(cfg.mysql_libmysqlclient.MYSQL_READ_DEFAULT_FILE, 4);
160+
test.equals(cfg.mysql_libmysqlclient.MYSQL_READ_DEFAULT_GROUP, 5);
161+
test.equals(cfg.mysql_libmysqlclient.MYSQL_SET_CHARSET_DIR, 6);
162+
test.equals(cfg.mysql_libmysqlclient.MYSQL_SET_CHARSET_NAME, 7);
178163

179164
test.done();
180165
};
@@ -656,20 +641,20 @@ exports.SetOptionSync = function (test) {
656641

657642
// Test MYSQL_INIT_COMMAND
658643
conn.initSync();
659-
conn.setOptionSync(conn.MYSQL_INIT_COMMAND, "SET NAMES " + other_cs + ";");
644+
conn.setOptionSync(cfg.mysql_libmysqlclient.MYSQL_INIT_COMMAND, "SET NAMES " + other_cs + ";");
660645
conn.realConnectSync(cfg.host, cfg.user, cfg.password);
661646
test.equals(conn.querySync("SHOW VARIABLES LIKE 'character_set_connection';").fetchAllSync()[0].Value, other_cs, "setOptionSync(MYSQL_INIT_COMMAND. 'SET NAMES')");
662647
conn.closeSync();
663648

664649
// Test MYSQL_OPT_RECONNECT
665650
conn.initSync();
666-
conn.setOptionSync(conn.MYSQL_OPT_RECONNECT, 1);
651+
conn.setOptionSync(cfg.mysql_libmysqlclient.MYSQL_OPT_RECONNECT, 1);
667652
conn.realConnectSync(cfg.host, cfg.user, cfg.password);
668653
conn.closeSync();
669654

670655
// Test MYSQL_OPT_RECONNECT (issue #90)
671656
conn.initSync();
672-
conn.setOptionSync(conn.MYSQL_OPT_CONNECT_TIMEOUT, 3);
657+
conn.setOptionSync(cfg.mysql_libmysqlclient.MYSQL_OPT_CONNECT_TIMEOUT, 3);
673658
conn.realConnectSync(cfg.host, cfg.user, cfg.password);
674659
conn.closeSync();
675660

tests/low-level-sync/test-class-mysqlstatement-sync.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,15 @@ var testAttrGetAndSetSync = function (test) {
2727

2828
stmt = conn.initStatementSync();
2929

30-
test.equals(typeof stmt.attrGetSync(stmt.STMT_ATTR_UPDATE_MAX_LENGTH), "boolean", "Value of STMT_ATTR_UPDATE_MAX_LENGTH attribute is boolean");
31-
test.equals(typeof stmt.attrGetSync(stmt.STMT_ATTR_CURSOR_TYPE), "number", "Value of STMT_ATTR_CURSOR_TYPE attribute is number");
32-
test.equals(typeof stmt.attrGetSync(stmt.STMT_ATTR_PREFETCH_ROWS), "number", "Value of STMT_ATTR_PREFETCH_ROWS attribute is number");
33-
34-
test.equals(stmt.attrGetSync(stmt.STMT_ATTR_PREFETCH_ROWS), 1, "Get default value of STMT_ATTR_PREFETCH_ROWS");
35-
stmt.attrSetSync(stmt.STMT_ATTR_PREFETCH_ROWS, 100);
36-
test.equals(stmt.attrGetSync(stmt.STMT_ATTR_PREFETCH_ROWS), 100, "Get new value of STMT_ATTR_PREFETCH_ROWS");
37-
stmt.attrSetSync(stmt.STMT_ATTR_PREFETCH_ROWS, 4294967295);
38-
test.equals(stmt.attrGetSync(stmt.STMT_ATTR_PREFETCH_ROWS), 4294967295, "Get new value of STMT_ATTR_PREFETCH_ROWS");
30+
test.equals(typeof stmt.attrGetSync(cfg.mysql_libmysqlclient.STMT_ATTR_UPDATE_MAX_LENGTH), "boolean", "Value of STMT_ATTR_UPDATE_MAX_LENGTH attribute is boolean");
31+
test.equals(typeof stmt.attrGetSync(cfg.mysql_libmysqlclient.STMT_ATTR_CURSOR_TYPE), "number", "Value of STMT_ATTR_CURSOR_TYPE attribute is number");
32+
test.equals(typeof stmt.attrGetSync(cfg.mysql_libmysqlclient.STMT_ATTR_PREFETCH_ROWS), "number", "Value of STMT_ATTR_PREFETCH_ROWS attribute is number");
33+
34+
test.equals(stmt.attrGetSync(cfg.mysql_libmysqlclient.STMT_ATTR_PREFETCH_ROWS), 1, "Get default value of STMT_ATTR_PREFETCH_ROWS");
35+
stmt.attrSetSync(cfg.mysql_libmysqlclient.STMT_ATTR_PREFETCH_ROWS, 100);
36+
test.equals(stmt.attrGetSync(cfg.mysql_libmysqlclient.STMT_ATTR_PREFETCH_ROWS), 100, "Get new value of STMT_ATTR_PREFETCH_ROWS");
37+
stmt.attrSetSync(cfg.mysql_libmysqlclient.STMT_ATTR_PREFETCH_ROWS, 4294967295);
38+
test.equals(stmt.attrGetSync(cfg.mysql_libmysqlclient.STMT_ATTR_PREFETCH_ROWS), 4294967295, "Get new value of STMT_ATTR_PREFETCH_ROWS");
3939

4040
conn.closeSync();
4141

0 commit comments

Comments
 (0)