Skip to content

Commit ced7c40

Browse files
committed
PHPC-158: Split queryFlags bitmask option into specific options
1 parent 481600d commit ced7c40

File tree

3 files changed

+11
-42
lines changed

3 files changed

+11
-42
lines changed

php_phongo.c

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -999,13 +999,21 @@ bool phongo_query_init(php_phongo_query_t *query, zval *filter, zval *options TS
999999
array_init(zquery);
10001000

10011001
if (options) {
1002-
/* TODO: Ensure batchSize, limit, and skip are 32-bit. Should we ensure
1003-
* that queryFlags is a valid mongoc_query_flags_t combination? */
1002+
/* TODO: Ensure batchSize, limit, and skip are 32-bit */
10041003
query->batch_size = php_array_fetchc_long(options, "batchSize");
1005-
query->flags = php_array_fetchc_long(options, "queryFlags");
10061004
query->limit = php_array_fetchc_long(options, "limit");
10071005
query->skip = php_array_fetchc_long(options, "skip");
10081006

1007+
query->flags = 0;
1008+
query->flags |= php_array_fetchl_bool(options, ZEND_STRS("tailable")) ? MONGOC_QUERY_TAILABLE_CURSOR : 0;
1009+
query->flags |= php_array_fetchl_bool(options, ZEND_STRS("slaveOk")) ? MONGOC_QUERY_SLAVE_OK : 0;
1010+
query->flags |= php_array_fetchl_bool(options, ZEND_STRS("oplogReplay")) ? MONGOC_QUERY_OPLOG_REPLAY : 0;
1011+
query->flags |= php_array_fetchl_bool(options, ZEND_STRS("noCursorTimeout")) ? MONGOC_QUERY_NO_CURSOR_TIMEOUT : 0;
1012+
query->flags |= php_array_fetchl_bool(options, ZEND_STRS("awaitData")) ? MONGOC_QUERY_AWAIT_DATA : 0;
1013+
query->flags |= php_array_fetchl_bool(options, ZEND_STRS("exhaust")) ? MONGOC_QUERY_EXHAUST : 0;
1014+
query->flags |= php_array_fetchl_bool(options, ZEND_STRS("partial")) ? MONGOC_QUERY_PARTIAL : 0;
1015+
1016+
10091017
if (php_array_existsc(options, "modifiers")) {
10101018
zval *modifiers = php_array_fetchc(options, "modifiers");
10111019

src/MongoDB/Query.c

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -176,15 +176,6 @@ PHP_MINIT_FUNCTION(Query)
176176
memcpy(&php_phongo_handler_query, phongo_get_std_object_handlers(), sizeof(zend_object_handlers));
177177
php_phongo_handler_query.get_debug_info = php_phongo_query_get_debug_info;
178178

179-
zend_declare_class_constant_long(php_phongo_query_ce, ZEND_STRL("FLAG_NONE"), MONGOC_QUERY_NONE TSRMLS_CC);
180-
zend_declare_class_constant_long(php_phongo_query_ce, ZEND_STRL("FLAG_TAILABLE_CURSOR"), MONGOC_QUERY_TAILABLE_CURSOR TSRMLS_CC);
181-
zend_declare_class_constant_long(php_phongo_query_ce, ZEND_STRL("FLAG_SLAVE_OK"), MONGOC_QUERY_SLAVE_OK TSRMLS_CC);
182-
zend_declare_class_constant_long(php_phongo_query_ce, ZEND_STRL("FLAG_OPLOG_REPLAY"), MONGOC_QUERY_OPLOG_REPLAY TSRMLS_CC);
183-
zend_declare_class_constant_long(php_phongo_query_ce, ZEND_STRL("FLAG_NO_CURSOR_TIMEOUT"), MONGOC_QUERY_NO_CURSOR_TIMEOUT TSRMLS_CC);
184-
zend_declare_class_constant_long(php_phongo_query_ce, ZEND_STRL("FLAG_AWAIT_DATA"), MONGOC_QUERY_AWAIT_DATA TSRMLS_CC);
185-
zend_declare_class_constant_long(php_phongo_query_ce, ZEND_STRL("FLAG_EXHAUST"), MONGOC_QUERY_EXHAUST TSRMLS_CC);
186-
zend_declare_class_constant_long(php_phongo_query_ce, ZEND_STRL("FLAG_PARTIAL"), MONGOC_QUERY_PARTIAL TSRMLS_CC);
187-
188179
return SUCCESS;
189180
}
190181
/* }}} */

tests/generic/query-constants.phpt

Lines changed: 0 additions & 30 deletions
This file was deleted.

0 commit comments

Comments
 (0)