{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":9454675,"defaultBranch":"fb-mysql-8.0.32","name":"mysql-5.6","ownerLogin":"facebook","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2013-04-15T17:54:43.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/69631?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1700499724.0","currentOid":""},"activityList":{"items":[{"before":"ce211faf772e0df52dc3f4ff5be480f50d3c6c65","after":"16c8cfc63aefb2743b324e9f54c2675ed3b32bfa","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-05-04T00:23:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Add SESSION_SYSVARS_TRACKER to st_ok_metadata upon tracker change\n\nSummary: Add MTR tests now that D56169813 D56169278 have landed.\n\nDifferential Revision: D56802898\n\nfbshipit-source-id: 99dced69290d8e4388f24df9dbaeea0eaad5df37","shortMessageHtmlLink":"Add SESSION_SYSVARS_TRACKER to st_ok_metadata upon tracker change"}},{"before":"e38937cd5a8ae5d79586dfeb05041e3457887b33","after":"ce211faf772e0df52dc3f4ff5be480f50d3c6c65","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-05-02T21:53:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"update instant ddl variables for myrocks\n\nSummary:\nPrevious the variable name rocksdb_disable_instant_ddl is confusing. Use rocksdb_enable_instant_ddl instead and deprecate rocksdb_disable_instant_ddl. rocksdb_enable_instant_ddl is for emergency use to turn off all instant-ddl knobs.\n\nadd a new variable rocksdb-enable-instant-ddl-for-append-column to enable/disable append column DDL scenario.\n\nIn future, each instant scenario should add its own switch to control whether support that scenario.\n\nNOTE: These INSTANT variables are only to control future INSTANT DDLs behavior. Doesn't affect the DDL has been committed.\n\nDifferential Revision: D53697104\n\nfbshipit-source-id: 31fc60f0f60bdb5950164d5c055d5064d635f27e","shortMessageHtmlLink":"update instant ddl variables for myrocks"}},{"before":"eba5163c57c16d868a920f24bee3715ce38ec006","after":"e38937cd5a8ae5d79586dfeb05041e3457887b33","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-05-01T05:13:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"fb_vector_dimension column attribute\n\nSummary:\nintroduce fb_vector_dimension column attribute to indicate a column contains vector data\n\nwith this attribute, the server\n- checks the column is 'JSON NOT NULL'\n- checks the column contains a valid vector with specified dimension\n- these checks are performed when setting the field before storage engine\n\nif vector index is created on such column, the vector index dimension value is set with the column's dimension value. in the future, vector index will require column to have this attribute.\n\nDifferential Revision: D56664387\n\nfbshipit-source-id: 695d3bf92d9c98cc3c09b900bc189233578475be","shortMessageHtmlLink":"fb_vector_dimension column attribute"}},{"before":"8173866e1850f4814def1ffb91c662be6d91d572","after":"eba5163c57c16d868a920f24bee3715ce38ec006","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-04-30T18:21:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Disable binlog.binlog_mysqlbinlog_source_gipk_info (#1448)\n\nSummary:\nMeta's patch has changed the table map log event and this test uses\npre-generated upstream ones, which are incompatible. It would be possible to\nrecreate pre-generated events in Meta format, but there is little value in\nrestoring the functionality of this test anyway.\n\nSquash with e13fd4103d3c9347aedf9cad02a2b7e445288413\n\nPull Request resolved: https://github.com/facebook/mysql-5.6/pull/1448\n\nDifferential Revision: D56589203\n\nfbshipit-source-id: 5132ab38b423dd37650a6accea1c6249d088a71e","shortMessageHtmlLink":"Disable binlog.binlog_mysqlbinlog_source_gipk_info (#1448)"}},{"before":"f0108427fb4704ad203516284cf2614233f8253d","after":"8173866e1850f4814def1ffb91c662be6d91d572","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-04-30T04:19:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Add SESSION_SYSVARS_TRACKER to st_ok_metadata upon tracker change\n\nSummary:\n### Background\nBased on https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_session_track_system_variables, session_track_system_variables will detect the change of the system value `time_zone, autocommit, character_set_client, character_set_results, character_set_connection`.\n\nThrift server plugin needs this tracker's information to decide if these sysvar have been changed and what the new values are. If so, it will reset sessions.\n\n### Approach\n- I moved Session_sysvars_tracker definition and part of impl from .cc to .h to be able to cast that in `sql/sql_class.cc`.\n- Added populate_changed_sysvars helper function in Session_sysvars_tracker.\n\nDifferential Revision: D56169278\n\nfbshipit-source-id: a980dd8d10db21c195d3e27d1f7314d495e2ca9a","shortMessageHtmlLink":"Add SESSION_SYSVARS_TRACKER to st_ok_metadata upon tracker change"}},{"before":"05605eac64ce2788856c7b4d5a58b966a3480456","after":"f0108427fb4704ad203516284cf2614233f8253d","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-04-29T20:22:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"replace python with python3 for cpplint.py\n\nSummary: For cpplint.py, use python3 instead of python2\n\nDifferential Revision: D56717362\n\nfbshipit-source-id: bc9309da7d0ea0827578d04cab6e25b3a9f86eca","shortMessageHtmlLink":"replace python with python3 for cpplint.py"}},{"before":"1271283895eb9e08595a3d19d2a31e4bacd9827f","after":"05605eac64ce2788856c7b4d5a58b966a3480456","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-04-29T18:00:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Switch crc32_z to crc32\n\nSummary: Change to crc32 to support other versions.\n\nDifferential Revision: D56586899\n\nfbshipit-source-id: 283557daf3c96a0f6ea3bfe947fddd67b449b765","shortMessageHtmlLink":"Switch crc32_z to crc32"}},{"before":"b09f052510c5ac360fb6e30ef3f24ab2d915a7f2","after":"1271283895eb9e08595a3d19d2a31e4bacd9827f","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-04-29T05:24:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"record for --rocksdb-debug-skip-bloom-filter-check-on-iterator-bounds\n\nSummary: As title\n\nDifferential Revision: D56677115\n\nfbshipit-source-id: 14febe3f52bd7e61219897d9e0e201c0f074ead7","shortMessageHtmlLink":"record for --rocksdb-debug-skip-bloom-filter-check-on-iterator-bounds"}},{"before":"ec74bef8f3fca5633403cf2dae9e9f5541b0eff6","after":"b09f052510c5ac360fb6e30ef3f24ab2d915a7f2","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-04-28T18:08:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Pass ColumnFamilyHandle around by reference; wrap Iterator in unique_ptr (#1445)\n\nSummary:\nIn preparation for the range locking patch, clean up some code related to\niterators:\n- Pass rocksdb::ColumnFamilyHandle around and store in classes by references\n instead of pointers. It is never nullptr, nor is ever reseated in the classes\n using it.\n- Wrap the rocksdb::Iterator objects in std::unique_ptr: change the factory\n method return types and class fields.\n- In both cases above mark the classes containing reference fields as\n non-copyable and non-moveable as needed, matching their current usage.\n- Mark touched methods [[nodiscard]] as applicable. In rdb_index_merge.h, remove\n many instances of redundant MY_ATTRIBUTE((__nonnull__)) too.\n- Make touched local vars auto, but with reference or pointer pulled out,\n sometimes avoiding redundant returned object copies.\n- Remove redundant instances of const from passed-by-value arguments.\n\nPull Request resolved: https://github.com/facebook/mysql-5.6/pull/1445\n\nDifferential Revision: D56051402\n\nfbshipit-source-id: 82f67c712a3ddf1cbc38db1d78c86c9be00dc16e","shortMessageHtmlLink":"Pass ColumnFamilyHandle around by reference; wrap Iterator in unique_…"}},{"before":"55a6565968d2b6d78e366df954537a96aba585f6","after":"ec74bef8f3fca5633403cf2dae9e9f5541b0eff6","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-04-27T04:26:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"mysql: CHECKSUM TABLE column list support\n\nSummary:\nThis diff extends CHECKSUM TABLE to support a list of columns over which\nto compute a checksum.\n\nDifferential Revision: D56383480\n\nfbshipit-source-id: 173c2e8e52076cfc572d875ebc18ba1d90bdaf54","shortMessageHtmlLink":"mysql: CHECKSUM TABLE column list support"}},{"before":"39be853aa8e7327a613972fbe5e8928bac0a61e0","after":"55a6565968d2b6d78e366df954537a96aba585f6","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-04-26T17:14:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"mysql: add dump column list to DUMP TABLE stmt\n\nSummary:\nThis allows syntax like\n\n```\nDUMP TABLE [ ( [, , ... ] ) ]\n...\n```\nE.g.\n```\nDUMP TABLE t1 INTO 'foo'; -- as before\nDUMP TABLE t1 (a, b, c) INTO 'foo'; -- new\n```\nto allow for a finer grain of selection of columns to dump.\n\nThe motivation is to support OSC's usecase which dumps only those\ncolumns needed for the destination table as an optimization. I.e. if\na column is dropped in the after-schema, we don't need to dump it.\n\nDifferential Revision: D55775540\n\nfbshipit-source-id: 60d6abd8a0070daeac0d72df30705fba54560108","shortMessageHtmlLink":"mysql: add dump column list to DUMP TABLE stmt"}},{"before":"f109280ab8b17552c7997b835b5aa00d901f8c1b","after":"39be853aa8e7327a613972fbe5e8928bac0a61e0","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-04-26T02:23:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"debug flag to test iterator bounds with bloom filters\n\nSummary:\nWhen bloom filter is configured on a column family, it may be hard to test the correctness of the new, tighter, iterator bounds for typical queries where bloom filters are applicable (since we use either bloom filters or iterator bounds).\n\nThis debug flag can be used to test the iterator bounds (select correctness etc) for all kinds of queries even when bloom filters would otherwise have worked (and prevented iterator bounds from being set).\n\nUsage:\n SET global ROCKSDB_DEBUG_SKIP_BLOOM_FILTER_CHECK_ON_ITERATOR_BOUNDS = 1;\n\nDifferential Revision: D56591849\n\nfbshipit-source-id: c55b04ce628b5fce61386a36652a07f9fc933087","shortMessageHtmlLink":"debug flag to test iterator bounds with bloom filters"}},{"before":"fdf68f720c84fba51b0ef02029577ef970d3b914","after":"f109280ab8b17552c7997b835b5aa00d901f8c1b","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-04-25T23:13:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Revert \"innodb: Add thd_wait_begin/end for Sync IO\"\n\nSummary:\nThis reverts commit 721fbd660dad59614e8759b74a200ea7f0fda8f8.\n\nThe stall mentioned in the commit above already has DISKIO wait begin/end in `buf_read_page_low`. So this extra DISKIO wait is not needed for that. However, this API is also used to write to the log on the commit code path while the binlog mutex is held, which causes lots of commit stalls.\n\nDifferential Revision: D56561026\n\nfbshipit-source-id: 868bc18ceb3a24548c567891a8c50af01c130d3e","shortMessageHtmlLink":"Revert \"innodb: Add thd_wait_begin/end for Sync IO\""}},{"before":"65821cafe0bc8444c65eb640ffec722114d4b15b","after":"fdf68f720c84fba51b0ef02029577ef970d3b914","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-04-25T20:15:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"MyRocks: merge the key packing buffer allocation, annotate m_pack_buffer lifetime (#1446)\n\nSummary:\nAll the key packing buffers in the MyRocks handler have exactly the same\nlifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single\nlarge buffer and point the key packing buffers to offsets inside it, reducing\nnumber of calls to the heap allocator on table opening/close code path. Annotate\nthe padding bytes for Valgrind as inaccessible. Add additional handling for\nm_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record,\nannotate it as such.\n\nPull Request resolved: https://github.com/facebook/mysql-5.6/pull/1446\n\nDifferential Revision: D56051395\n\nfbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9","shortMessageHtmlLink":"MyRocks: merge the key packing buffer allocation, annotate m_pack_buf…"}},{"before":"87aa2c2951fc5dc2d4c487a4d3c8689dbc78fe2a","after":"65821cafe0bc8444c65eb640ffec722114d4b15b","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-04-25T17:40:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Update thrift MTR tetsts\n\nSummary: Update to account for recent plugin changes in D56539567\n\nDifferential Revision: D56581016\n\nfbshipit-source-id: a8b199ba370ecbd73fe636aca4aa576cc1a75e39","shortMessageHtmlLink":"Update thrift MTR tetsts"}},{"before":"160466ceaa8f0e18d061fe276c6e1603c2d40c83","after":"87aa2c2951fc5dc2d4c487a4d3c8689dbc78fe2a","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-04-25T16:31:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"set up tighter iterator bounds in myrocks\n\nSummary:\nMyRocks supports per-row TTL for tables, with some common config at the table level, for example:\n\n CREATE TABLE t1 (\n a int NOT NULL,\n b int NOT NULL,\n c int NOT NULL,\n ts bigint UNSIGNED NOT NULL,\n PRIMARY KEY (a),\n KEY kb (b) COMMENT 'kb',\n KEY kc (c) COMMENT 'kc'\n ) ENGINE=ROCKSDB\n COMMENT='ttl_duration=1;ttl_col=ts;';\nwhere individual rows expire after `ttl_duration` seconds have passed (1) from either the time when the rows were created or updated (implicit timestamp), or (2) from the timestamp value in the column specified as `ttl_col=ts` in the above case (explicit timestamp). In the second scheme, the `ttl_col` value can be updated by the user.\n\nIf a lot of rows are created with an implicit timestamp scheme, or if the same ttl_col value is used for a lot of rows, then it implies that a lot of rows will expire roughly around the same time. Till the next compaction job runs, when these rows get \"taken care of\", any range scan queries running on such tables may end up having to deal with a lot of expired rows that should be skipped (TTL filtering) before sending responses back to the user.\n\nTTL filtering is implemented in the MyRocks layer within the RDB iterators that directly call the RocksDB iterators. If the index range scan AccessMethod is being used by the SQL layer, the index conditions get pushed down to the storage engine (ICP). The range conditions are checked in MyRocks at the handler API level (outer) iterators, which in turn instantiate and call RDB iterators.\n\nIf the range scan encounters a large number of consecutive expired rows, then this can lead to the RDB iterator continuously filtering all these rows in a long running loop. In fact, the RDB and RocksDB iterators may have long gone past the actual range conditions. This can lead to long running queries that would have returned very quickly if there was a way to check range conditions in the outer iterator from time to time, or if the iterator bounds were tight enough that RocksDB itself would detect the end of the iterator range and return much sooner.\n\nThe iterator bounds currently being set by MyRocks for RocksDB iterators was very conservative (read: loose). It would check for the common prefix for the lower and upper bounds and, using that as a starting point, would use the predecessor and successor for this common prefix as the iterator bound. Because of this, the \"valid range\" for a RockDB iterator was much wider than what was dictated by the SQL query. This would normally not cause any issues as the query iterators would always seek to the start range, and the outer level MyRocks iterators will end the RocksDB iterator as soon as the end range is reached. If we hit the scenario detailed above, because of the TTL check implemented in the lower level RDBIterator, the outer MyRocks iterators don't get a chance to perform their end range check, while the loose iterator bounds at the RockDB level means that the RocksDB level iterator keeps on iterating way past the SQL query upper bound.\n\nThis fix could also be implemented by allowing the TTL check to be deferred till after the range check if we fail a configured # of TTL checks. This solution works as well, and is less risky overall: D54104480.\n\nA better fix is to tighten up the iterator bounds themselves. This has the advantage of benefiting all queries (not just the ones affected by the TTLDB issue), as well as keeping the TTL checking logic in one place (easier to reason about). This is the approach taken in the present diff, and can be more risky as, again, it would affect all queries. A large number of MTR tests have been added to test the correctness of the boundary conditions in several ways.\n\nDifferential Revision: D55305366\n\nfbshipit-source-id: 4a17514a25633b0311fd8cf74d7644fc80fe30cc","shortMessageHtmlLink":"set up tighter iterator bounds in myrocks"}},{"before":"f5ddb37ed297c1055a0f8398bd018d1f567a2772","after":"160466ceaa8f0e18d061fe276c6e1603c2d40c83","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-04-25T02:46:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"add compress parallel threads variable for bulk loading\n\nSummary:\nperf data show bulk loading spend a lot time to compress data block during creating PK/SK sst files.\n\nFrom rocksdb code, it support compression_opts.parallel_threads, which use multiple thread to do parallel compression.\n\nAdd a new variable to enable parallel compression during bulk load.\n\ninitial data : bulk-load-compression-parallel-threads == 4\n - for big table with multiple SKs, the time to generate SK ssts file will 3X faster.\n - for big table, overall bulk loading process will take 50-60% time, 2X faster.\n - these sst file size will increase by 0.1%\n\nDifferential Revision: D56340150\n\nfbshipit-source-id: feebf587b11395b1168e0dece4fd76ebadfc5060","shortMessageHtmlLink":"add compress parallel threads variable for bulk loading"}},{"before":"bd7de771930ccea9b80afa03d5d77b194917310a","after":"f5ddb37ed297c1055a0f8398bd018d1f567a2772","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-04-24T23:49:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Fix vectordb build, including macOS portability fixes (#1447)\n\nSummary:\nFix some vectordb build issues, both general and macOS-specific:\n- cmake/faiss.cmake references a non-existing BUILD_DIR CMake variable. Since it\n gets expanded to nothing, the FAISS build dir becomes /faiss, and then, if the\n root dir is unwritable:\n -- Adding faiss and its dependencies\n CMake Error at _build-debug/FAISS_EXTERNAL-prefix/tmp/FAISS_EXTERNAL-mkdirs.cmake:6 (file):\n file failed to create directory:\n\n /faiss\n\n because: Read-only file system\n Call Stack (most recent call first):\n /opt/homebrew/Cellar/cmake/3.29.2/share/cmake/Modules/ExternalProject.cmake:1816 (include)\n /opt/homebrew/Cellar/cmake/3.29.2/share/cmake/Modules/ExternalProject.cmake:4392 (_ep_set_directories)\n cmake/faiss.cmake:14 (ExternalProject_Add)\n CMakeLists.txt:2214 (INCLUDE)\n- If Ninja is used as the CMake build generator, the build fails with:\n ninja: error: 'faiss/faiss/libfaiss.a', needed by 'runtime_output_directory/mysqld', missing and no known rule to make it\n This is fixed by setting BUILD_BYPRODUCTS option on ExternalProject_Add to the\n static library name.\n- Replace INCLUDE_DIRECTORIES for sql_main with more idiomatic and non-polluting\n globally TARGET_INCLUDE_DIRECTORIES\n- Fix trivial macOS specific build errors on storage/rocksdb/rdb_vector_db.cc:\nstorage/rocksdb/rdb_vector_db.cc:90:26: error: cannot initialize a parameter of type 'uint64 *' (aka 'unsigned long long *') with an rvalue of type 'size_t *' (aka 'unsigned long *')\n if (reader.read_uint64(&actual_list_id)) {\n ^~~~~~~~~~~~~~~\nstorage/rocksdb/./rdb_buff.h:325:34: note: passing argument to parameter 'res' here\n bool read_uint64(uint64 *const res) {\n ^\nstorage/rocksdb/rdb_vector_db.cc:144:63: error: format specifies type 'unsigned long' but the argument has type 'value_type' (aka 'long long') [-Werror,-Wformat]\n \"Failed to find matching pk for %lu\", vector_id);\n ~~~ ^~~~~~~~~\n %lld\ninclude/mysql/components/services/log_builtins.h:838:66: note: expanded from macro 'LogPluginErrMsg'\n .message_quoted(\"Plugin \" LOG_COMPONENT_TAG \" reported\", ##__VA_ARGS__)\n ^~~~~~~~~~~\nstorage/rocksdb/rdb_vector_db.cc:145:63: error: format specifies type 'unsigned long' but the argument has type 'value_type' (aka 'long long') [-Werror,-Wformat]\n \"Failed to find matching pk for %lu\", vector_id);\n ~~~ ^~~~~~~~~\n %lld\ninclude/mysql/components/services/log_builtins.h:838:66: note: expanded from macro 'LogPluginErrMsg'\n .message_quoted(\"Plugin \" LOG_COMPONENT_TAG \" reported\", ##__VA_ARGS__)\n ^~~~~~~~~~~\n\nPull Request resolved: https://github.com/facebook/mysql-5.6/pull/1447\n\nDifferential Revision: D56359321\n\nfbshipit-source-id: f227d3b8f1eb50aabf536dc7ce396294cc083f37","shortMessageHtmlLink":"Fix vectordb build, including macOS portability fixes (#1447)"}},{"before":"6fecae25e4d8849b842a3e57f2f43b866ad5820a","after":"bd7de771930ccea9b80afa03d5d77b194917310a","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-04-22T22:08:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Add raft yield wait type\n\nSummary: Adding a yield wait type for raft to be able to control it separately.\n\nDifferential Revision: D56429413\n\nfbshipit-source-id: 6dc6edd5e11f3dca1ae75e3e4cfa5ab6da72d9c7","shortMessageHtmlLink":"Add raft yield wait type"}},{"before":"f8e28cd0274a65b9c921a225514aa1b19c59188d","after":"6fecae25e4d8849b842a3e57f2f43b866ad5820a","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-04-21T00:43:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Bump P_S version for processlist and threads tables changes\n\nSummary:\nThe previous change D52988122 missed the version bump. As a result, the data dictionary on prod instances doesn't get updated and new columns do not show up.\n\nSquash with D52988122.\n\nDifferential Revision: D56020631\n\nfbshipit-source-id: 81e7b50b8f4fbf648c69ef3c80b767baf042b4bb","shortMessageHtmlLink":"Bump P_S version for processlist and threads tables changes"}},{"before":"02d44375b910de01abdb5fb4bf7da40bb910fabb","after":"f8e28cd0274a65b9c921a225514aa1b19c59188d","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-04-20T01:14:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Fix fd out of range error for WSfile\n\nSummary:\nWhen mysys try to find filename from its fd, for WSFiles, its data isn't stored in FileInfoVector, thus in my_filename(), it will return \"\", which is very confusing.\n\nThe change is to fetch WSFile name during my_filename() by checking fd\n\nDifferential Revision: D54728856\n\nfbshipit-source-id: 992265e8518582054e9c096dc587598ae32a2aff","shortMessageHtmlLink":"Fix fd out of range error for WSfile"}},{"before":"0b5bfa3df95078ed608c106e80ed5a1cfef0c0e2","after":"02d44375b910de01abdb5fb4bf7da40bb910fabb","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-04-17T18:21:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Remove duplicate keys that were causing errors with clang-format\n\nSummary:\nclang-format complains about duplicate keys that were added by\nupstream, so remove the older settings.\n\nDifferential Revision: D56257889\n\nfbshipit-source-id: a47ffdc1b57183074bfab36eacd152e846fea6e5","shortMessageHtmlLink":"Remove duplicate keys that were causing errors with clang-format"}},{"before":"4a4357aadec54d61757c63f801ebee3588528cdf","after":"0b5bfa3df95078ed608c106e80ed5a1cfef0c0e2","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-04-16T00:57:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"implement ivfpq vector index\n\nSummary:\nchanges in set up ivf index\n- read product quantizer from vector index data table\n- read product quantizer config pq_M, pq_nbits from metadata row\n- read nlist, check the quantizer code and product quantizer code size matches nlist\n- consolidate flat index implementation to be a special case of ivf index\n\ninformation schema\n- expose code size, nlist, pq_m, pq_nbits\n\nDifferential Revision: D55488430\n\nfbshipit-source-id: 081076406d4521246024f4fabd234eaf1114e80c","shortMessageHtmlLink":"implement ivfpq vector index"}},{"before":"ee2c2fb6197262b70ffa2819c0a75de7ce93a8ef","after":"4a4357aadec54d61757c63f801ebee3588528cdf","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-04-15T07:51:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Add support for K as a session variable and query hint\n\nSummary:\nFor a similarity search query like the following:\n SELECT *, fb_vector_l2(vector1, '[1, 2, 3]')\n AS dis\n FROM t1\n WHERE\n color IN ('red')\n HAVING\n dis > 10 AND dis < 100\n ORDER BY dis\n LIMIT 10;\nwe need to find the K nearest neighbors that satisfy the filters specified via the WHERE and HAVING clauses, with K mapping to the LIMIT value (10 in this case).\nThe way similarity search is being done at the moment using the current vector index implementation, we find the K nearest neighbors first, and then send up the result set to be filtered by the SQL layer iterators. This can of course mean that if we get 10 nearest neighbors and half of them get filtered out, then we're only left with 5 rows, while the user would expect 10.\n\nThis diff adds a session variable `fb_vector_search_limit_multiplier`, that can also be used as a query hint, to make K a multiple of the LIMIT value, rather than taking the LIMIT value directly. With a default value of 10, for the above query, the actual K will become 10 * 10 = 100. This is a way for users to get enough results back, even after the filtering clauses.\n\nThis is certainly not foolproof, and it requires users to have some idea of the filtering effect of their query filters. This problem will be solved in a watertight way in the coming months with the VectorSort query execution node. But till then, this can be a good way to get around the filtering effect of WHERE and HAVING.\n\nUsage:\n\n set fb_vector_search_limit_multiplier = 20;\n SELECT ...\n\nor as a query hint:\n\n SELECT /*+ SET_VAR(fb_vector_search_limit_multiplier = 20) */\n *, fb_vector_l2(vector1, '[2.5, 3.5, 2.5]')\n AS dis\n FROM t1\n WHERE\n color IN ('red')\n HAVING\n dis > 10 AND dis < 100\n ORDER BY dis\n LIMIT 10;\n\nUsing the query hint option will leave the session variable's value unchanged.\n\nDifferential Revision: D56102527\n\nfbshipit-source-id: cf34017a124e2bcc4bb7957996d9eb8f7edf6ae1","shortMessageHtmlLink":"Add support for K as a session variable and query hint"}},{"before":"9258bbd96e576bcd336967c03e37fa41a2498faa","after":"ee2c2fb6197262b70ffa2819c0a75de7ce93a8ef","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-04-14T01:15:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Refactor MyRocks iterator status handling (#1444)\n\nSummary:\n- Move is_valid_iterator from ha_rocksdb.cc to rdb_iterator.cc, rename to\n is_valid_rdb_iterator, make its argument const reference. Remove redundant\n rdb_persist_corruption_marker call because rdb_handle_io_error calls it too.\n- Introduce Rdb_iterator_base::convert_iterator_status similar to existing\n Rdb_iterator_base::convert_get_status, move HA_ERR_END_OF_FILE-returning logic\n there and additionally handle any other non-I/O errors by saving them in the\n transaction for a later return.\n- Make Rdb_iterator_base::convert_get_status take transaction by reference, make\n it const method. Propagate down the callstack pointer-to-reference changes:\n rdb_should_hide_ttl_rec, rdb_tx_set_status_error.\n- Mark touched functions and methods [[nodiscard]] where appropriate.\n- Annotate rdb_persist_corruption_marker with cold and noinline attributes.\n- Remove dbug_change_status_to_corrupted, use DBUG_EVALUATE_IF so that the\n variable gets its final value right at the declaration and could be made const\n too.\n\nThis is split out from the range locking feature.\n\nPull Request resolved: https://github.com/facebook/mysql-5.6/pull/1444\n\nDifferential Revision: D55642013\n\nfbshipit-source-id: eeb5d5bac41f6383b3ad6dfd9639b9cd2f849b4c","shortMessageHtmlLink":"Refactor MyRocks iterator status handling (#1444)"}},{"before":"5cc0084be68873f5f65de9ac541b5579c44e0a03","after":"9258bbd96e576bcd336967c03e37fa41a2498faa","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-04-12T18:56:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"disallow plan to switch from table scan to index scan (vector index)\n\nSummary:\nVector index may not be a suitable index for several queries where similarity search is not involved. For example, vector index wouldn't guarantee ordered reads.\n\nIn some case, the optimizer tries to switch from a table scan (which implicitly implies scanning of the table using the explicitly-defined or hidden primary key) to an index scan, with the understanding that the index scan might be cheaper if the # of columns being accessed is less than the # of columns present in the PK.\n\nTo prevent situations where the vector index might get picked by the optimizer to convert a table scan to an index scan, we need an explicit check to avoid this. Otherwise, there is a discrepancy between the JOIN TYPE (index scan) and the index picked (none), and this can lead to a crash in various places.\n\nThis can happen, for example, when [ USE | FORCE INDEX ] (vector index) was present in the query that otherwise would have used a table scan.\n\nDifferential Revision: D55611035\n\nfbshipit-source-id: 77d48ab8d2def1a439833292e7bf79272088a6b9","shortMessageHtmlLink":"disallow plan to switch from table scan to index scan (vector index)"}},{"before":"a32ec0591c814392b2cd72b0e54a51e1fc858fc6","after":"5cc0084be68873f5f65de9ac541b5579c44e0a03","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-04-12T18:24:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"add support for cached items for vector search\n\nSummary:\nSome SQL queries can result in constant items getting cached. This won't typically happen with literals, but can happen with strings that can be interpreted as JSON fields.\n\nFor the vector search queries, HAVING can cause this caching behavior, which can break our logic downstream. This happens after the vector index selection triggered due to ORDER BY has already taken place, and therefore won't necessarily disrupt query planning.\n\nThe item is stored after conversion to Json, and gets wrapped in an Item_cache object (subclassed as Item_cache_json). The cached item's value is recovered during this call path: get_json_wrapper() -> json_value() -> val_json(), where Item_cache_json::val_json() will return the Json-converted and cached Json_wrapper object back. This is then utilized by parse_fb_vector().\n\nDifferential Revision: D55949681\n\nfbshipit-source-id: 498c1e8960074a3d8d0f273ac05f6f3e3d9a19bc","shortMessageHtmlLink":"add support for cached items for vector search"}},{"before":"5a0ddcb6f1f2f0838efae63664cffd289b10e1da","after":"a32ec0591c814392b2cd72b0e54a51e1fc858fc6","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-04-12T00:44:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Update RocksDB submodule\n\nSummary:\nUpdate Rocksdb submodule from fb.9.0 to fb.9.1. This is to include UDT in memtable related changes.\n\nWhy we make changes on CMakeLists.txt\n\nBuild failed because of redefinition for the following fields.\n```\nextern void* (*mallocx)(size_t, int);\nextern void* (*rallocx)(void*, size_t, int);\nextern size_t (*xallocx)(void*, size_t, size_t, int);\nextern size_t (*sallocx)(const void*, int);\nextern void (*dallocx)(void*, int);\nextern void (*sdallocx)(void*, size_t, int);\nextern size_t (*nallocx)(size_t, int);\nextern int (*mallctl)(const char*, void*, size_t*, void*, size_t);\nextern int (*mallctlnametomib)(const char*, size_t*, size_t*);\nextern int (*mallctlbymib)(\n const size_t*, size_t, void*, size_t*, void*, size_t);\n```\n\nThe redefinition happens between folly and jemalloc.\n\nThe build failure is surfaced in D54231896. ```#include \"port/jemalloc_helper.h\"``` in db_impl.cc throws redefinition error.\n\nIn Folly, there is a check around USE_JEMALLOC to avoid redefinition error. Pass the flag in CMakeLists.txt to avoid redefinition\n```\n#if (!defined(USE_JEMALLOC) && !defined(FOLLY_USE_JEMALLOC)) || FOLLY_SANITIZE\n// we do not want to declare these if we have jemalloc support\n// to avoid redefinition errors\nextern void* (*mallocx)(size_t, int);\n...\n...\nextern int (*mallctlbymib)(\n const size_t*, size_t, void*, size_t*, void*, size_t);\n#endif\n```\n\nAlso, D54021583 added one more perf context level. Set rocksdb_perf_context_level = 4 to remain the same perf context level.\n\nupdate-submodule: rocksdb\n\nDifferential Revision: D55924596\n\nfbshipit-source-id: 9a14b497edf7438ebfa469840cc9b31126c2c49a","shortMessageHtmlLink":"Update RocksDB submodule"}},{"before":"d10c6c545029a4ae6992bd25d6b461c2d2b0b26b","after":"5a0ddcb6f1f2f0838efae63664cffd289b10e1da","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-04-11T20:45:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Fix tests errors for rocksdb dynamic row format check\n\nSummary:\nFixing test failures for the rocksdb dynamic row format check.\n\nSquash with D54644216\n\nDifferential Revision: D56027204\n\nfbshipit-source-id: a114f96441f71eda2a7c9e392f1b0f6284030809","shortMessageHtmlLink":"Fix tests errors for rocksdb dynamic row format check"}},{"before":"0504b4d384bf31366d204e469897a6ef0f309d85","after":"d10c6c545029a4ae6992bd25d6b461c2d2b0b26b","ref":"refs/heads/fb-mysql-8.0.32","pushedAt":"2024-04-11T19:02:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Add sys var to enable/disable udt in mem feature\n\nSummary:\nAddress comments of D55938587. Will squash with it.\n\nSquash with D55938587\n\nDifferential Revision: D56026336\n\nfbshipit-source-id: 838408054804da46d5adb9382597ecc27a257c19","shortMessageHtmlLink":"Add sys var to enable/disable udt in mem feature"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEQTJC-QA","startCursor":null,"endCursor":null}},"title":"Activity · facebook/mysql-5.6"}