Tree:
9c85ced30d
1-10.5-mdev-34687-binlog-corruption-warning
10-7.selectivity
10.0
10.0-galera
10.1
10.10
10.10-MDEV-16440
10.10-MDEV-28632-old-master-fix
10.10-merge-28798
10.10-spider-sts-demo
10.11
10.11-MDEV-16232
10.11-MDEV-16232-remove-unlock_row
10.11-MDEV-17846
10.11-MDEV-19574
10.11-MDEV-19749-orig
10.11-MDEV-21923-35049
10.11-MDEV-29445-MDEV-31956
10.11-MDEV-30073-R1
10.11-MDEV-31517
10.11-MDEV-31772
10.11-MDEV-31887-Wrong-result-with-split-optimization
10.11-MDEV-33515-spinflag
10.11-MDEV-33515-spinlock
10.11-MDEV-33894
10.11-MDEV-34575
10.11-MDEV-35420
10.11-MDEV-35673
10.11-MDEV-35815-use-after-poison_in_get_hash_symbol
10.11-MDEV-36410-review-input
10.11-MDEV-36787
10.11-MDEV-37056
10.11-MDEV-37136
10.11-MDEV-37138
10.11-MDEV-37195-fix
10.11-MDEV-37901-Wrong-result-for-QUICK_GROUP_MIN_MAX_SELECT_WITH-TIES
10.11-MDEV-37901-variant2
10.11-MDEV-5816
10.11-MDEV-5816-1
10.11-MDEV-5816-2
10.11-MDEV-MDEV-36962
10.11-mdev-25039
10.11-mdev-31053-uuid-inet-size-not-allowed
10.11-mdev-35168-null-in-exists-clause
10.11-mdev-35739-linestring-intersection
10.11-mdev-35816-asan-print
10.11-mdev-35955-update-wrong-result
10.11-mdev-36389-indexed-text-column-wrong-result
10.11-mdev-37913
10.11-mdev9101
10.11-merge
10.11-merge-30430
10.11-monty
10.11-psergey-sel-before-fix1
10.11-psergey-sel-v1
10.11-ycp-demo
10.2
10.2-22179
10.2-MDEV-17603
10.2-MDEV-18838
10.2-MDEV-19129
10.2-MDEV-21039
10.2-MDEV-21910
10.2-MDEV-22110-dont-log-unmodified-pages
10.2-MDEV-23580
10.2-MDEV-24026
10.2-MDEV-24100
10.2-MDEV-24853
10.2-MDEV-24962-add
10.2-MDEV-24962-addendum
10.2-MDEV-24962-v5
10.2-MDEV-25114
10.2-MDEV-25768
10.2-MDEV-27355-rpl-ubsan
10.2-MDEV-28294-pre-exec
10.2-compatibility-build22257-opt-fixes
10.2-compatibility-debug
10.2-force_drop
10.2-spider-extra
10.2-sysprg-MDEV-21910
10.2-varun
10.2-vicentiu
10.2-wf
10.3
10.3-MDEV-11369
10.3-MDEV-20219
10.3-MDEV-21770
10.3-MDEV-22929-log_corrupted_pages
10.3-MDEV-23711-redo-log-overwrite
10.3-MDEV-24962
10.3-MDEV-28968-v2-galera
10.3-MENT-878
10.3-alter
10.3-fix-test-suite
10.3-varun
10.3-vicentiu
10.3-vicentiu-json-review
10.4
10.4-MDEV-14321
10.4-MDEV-14959
10.4-MDEV-17805
10.4-MDEV-20094
10.4-MDEV-22646
10.4-MDEV-22929-log_corrupted_pages
10.4-MDEV-23580
10.4-MDEV-23580-addendum
10.4-MDEV-23586-test-case
10.4-MDEV-23711-redo-log-overwrite
10.4-MDEV-24962
10.4-MDEV-29988-merge
10.4-MDEV-30073
10.4-MDEV-31005
10.4-SAMU-292
10.4-mdev-15562
10.4-mdev-21633
10.4-mdev22555
10.4-mdev30218-print-negative-gain
10.4-nikita-merge
10.4-opt_trace
10.4-sysprg-galera_3nodes
10.4-varun
10.4-vicentiu-feedback
10.4-vicentiu-histograms
10.4.20-midenok-samu-131
10.5
10.5-MDEV-11107
10.5-MDEV-13362
10.5-MDEV-15053
10.5-MDEV-15053-fixes
10.5-MDEV-17812
10.5-MDEV-18976-redolog-crc
10.5-MDEV-19165
10.5-MDEV-19229
10.5-MDEV-20153
10.5-MDEV-21452-old
10.5-MDEV-21951
10.5-MDEV-22023
10.5-MDEV-22554
10.5-MDEV-22922
10.5-MDEV-22929-log_corrupted_pages
10.5-MDEV-23580
10.5-MDEV-23711-redo-log-overwrite
10.5-MDEV-23766
10.5-MDEV-24962
10.5-MDEV-33927
10.5-MDEV-34266
10.5-MDEV-34372
10.5-MDEV-34433
10.5-MDEV-34938-wlad
10.5-MDEV-35299
10.5-MDEV-35694
10.5-MDEV-36017
10.5-circular-buffer
10.5-mdev-11588
10.5-mdev-18511
10.5-mdev-22104-psi-batch-assertion
10.5-mdev-23278
10.5-mdev-33616-safemalloc
10.5-mdev-34814
10.5-mdev-35583
10.5-mdev-35648
10.5-mdev-35847-wait-flag
10.5-mdev11563
10.5-mdev21784-reg1-vfuncs
10.5-mdev21829
10.5-mdev21829-unique-interface
10.5-mdev21955
10.5-mdev22011
10.5-mdev22119
10.5-mdev22303
10.5-mdev22509
10.5-mdev6915
10.5-mdev7317
10.5-mdev8306
10.5-mdev8306-2
10.5-mdev9750
10.5-merge-30430
10.5-nikita-MDEV-15990
10.5-olter-v3
10.5-olter-v4
10.5-order_by_limit
10.5-pclmul
10.5-s3-minio
10.5-varun
10.5-varun2
10.5-windows-afunix
10.5-wlad-tp-fibers
10.5.9-recoveryfix
10.56-MDEV-30986
10.6
10.6-4991
10.6-MDEV-16437
10.6-MDEV-16708-1
10.6-MDEV-19574
10.6-MDEV-21130-M4-notes
10.6-MDEV-22929-log_corrupted_pages
10.6-MDEV-23580
10.6-MDEV-23711-redo-log-overwrite
10.6-MDEV-24035
10.6-MDEV-24071
10.6-MDEV-24962
10.6-MDEV-25607-mergefix
10.6-MDEV-25899
10.6-MDEV-28607-rr-backup
10.6-MDEV-28621-no-elimination
10.6-MDEV-28968-galera
10.6-MDEV-30363
10.6-MDEV-30536-galera
10.6-MDEV-31949-gtid_prepare_fail_paths
10.6-MDEV-31949-ver0_andrei
10.6-MDEV-31949-xlle
10.6-MDEV-32175
10.6-MDEV-32242
10.6-MDEV-33796-deadlock_in_subqueries_join
10.6-MDEV-33966
10.6-MDEV-34057
10.6-MDEV-34431
10.6-MDEV-34489
10.6-MDEV-34608
10.6-MDEV-34670
10.6-MDEV-34822-galera
10.6-MDEV-34877
10.6-MDEV-35049
10.6-MDEV-35171
10.6-MDEV-35813
10.6-MDEV-36180
10.6-MDEV-36281
10.6-MDEV-36290
10.6-MDEV-36290-bnestere-additions
10.6-MDEV-37771
10.6-MDEV-38140
10.6-clang-cl
10.6-elenst
10.6-limit
10.6-mdev-10825
10.6-mdev-20250-hf
10.6-mdev-33816
10.6-mdev-35587
10.6-mdev-35765-st_overlaps-wrong-result
10.6-mdev21130-refactor
10.6-mdev21829
10.6-mdev22360
10.6-mdev7317
10.6-mdev8306
10.6-merge
10.6-order_by_limit
10.6-selectivity
10.6-semisync-test
10.6-timestamp
10.6-varun
10.6-vatu
10.6-vlesin-cta
10.6-wlad-purge
10.6.5-MDEV-36472-revert-MDEV-26356
10.7
10.7-mdev-29514
10.7-selectivity
10.7-selectivity-old
10.7-vicentiu-selectivity
10.7-wlad-async-log-io
10.8
10.8-selectivity
10.9
10.9-MDEV-16232
10.9-MDEV-5816
10.9-merge-30430
10.9-wlad
11.0
11.0-MDEV-26603
11.0-MDEV-27293
11.0-MDEV-30889
11.0-MDEV-34156
11.1
11.2
11.2-mdev-35046
11.2-nikita-optimizations
11.3
11.3-MDEV-21322-bnestere
11.3-MDEV-33465-mergefix
11.4
11.4-MDEV-21510-optimizer_trace_should_show_the_index_name
11.4-MDEV-31740
11.4-MDEV-33465-mergefix
11.4-MDEV-34431
11.4-MDEV-35398
11.4-MDEV-35905
11.4-MDEV-36096-partial_join_cost_assertion_failure
11.4-MDEV-36301
11.4-MDEV-36304
11.4-MDEV-36463-rename-expression_cache-to-subquery_cache
11.4-MDEV-36761-all-nulls
11.4-MDEV-36761-all-nulls-v2
11.4-MDEV-36861
11.4-MDEV-37244-spincontrol
11.4-MDEV-37412
11.4-MDEV-37723
11.4-MDEV-37843
11.4-MDEV-37907-new-mode
11.4-MDEV-38390
11.4-MDEV-new-mode-v2
11.4-bar
11.4-compatibility-new
11.4-macos-test-exclusion-mechanism
11.4-mdev-32777
11.4-mdev-33652
11.4-mdev-36389-indexed-text-column-wrong-result
11.4-mdev-37771-pseudo-slave
11.4-midenok-mysqltest
11.4-wlad
11.4-wlad-rebase
11.4-wlad-winarm64-ci
11.5
11.5-MDEV-33924
11.5-bar-MDEV-33281
11.6
11.6-MDEV-21322
11.6-MDEV-34179
11.6-MDEV-34551
11.7
11.7-MDEV-33756
11.7-mdev-35126-gis-wrong-result
11.7-mdev-35126-hf
11.8
11.8-MDEV-19574
11.8-MDEV-28730
11.8-MDEV-34703-followup
11.8-MDEV-35155
11.8-MDEV-37784
11.8-MDEV-37874
11.8-MDEV-37875
11.8-mdev-35510-asan-bootstrap-crash
11.8-mdev-35739-linestring-intersection
11.8-mdev-35848
11.8-mdev-36389-indexed-text-column-wrong-result
11.8-mdev-37029-vcol-row-in
11.8-monty-MDEV-25292
11.8-sn
11.8-sn-av
11.8-sn-av2
11.8-wsrep-schema
12.0
12.0-MDEV-22250
12.0-mdev-36125-index-merge-hint-cleaner
12.0-nikita-global-tmp
12.1
12.1-MDEV-30645
12.1-MDEV-30645-1
12.1-MDEV-35617
12.1-MDEV-36483-dump-ddls-of-tables-views
12.1-MDEV-36511-dump-basic-statistics
12.1-MDEV-36511-dump-basic-statistics-review-input
12.1-MDEV-36511-review-input
12.1-MDEV-37207-dump-ddls-of-tables-for-multi-delete-doesnot-work
12.1-MDEV-37207-multi-delete-v2
12.2
12.2-MDEV-36523-load-basic-stats-back
12.2-MDEV-36523-load-basic-stats-back-review-input
12.2-MDEV-36523-load-basic-stats-back-review-input-2
12.2-MDEV-37789-mdev-35046
12.2-MDEV-37936-v2
12.2-MDEV-38258
12.2-MDEV-38280
12.2-mdev-36813-full-outer-join
12.2-mdev-37260-milestones-one-two-review-input
12.2-mdev-37260-qb-implict-names
12.3-MDEV-36761-new-mode
12.3-MDEV-37354
12.3-MDEV-37932-full-outer-join-syntax
12.3-MDEV-37933-outer-to-left-right-or-inner
12.3-MDEV-37995-name-resolution
12.3-MDEV-38045-impl-qb-name
12.3-MDEV-38045-qb-tidb
12.3-MDEV-38136-table-elimination
12.3-MDEV-38177-allowed-join-orders
12.3-mdev-38120-create-sql_json_lib-file
5.5
5.5-galera
DebuggingStuff
FUNDING_yml
MDEV-24176/10.3_old
MDEV-24298
MDEV-24676_cpp
MDEV-25674.ulong
MDEV-28302
MDEV-28926-query-optimizer-json
MDEV-29770/rm_table_variation
MDEV-31740
MDEV-32067
MDEV-32294-Work_In_Progress
MDEV-32551-bnestere
MDEV-34431
MDEV-35519
MDEV-35665
MDEV-35879
MDEV-36089-rowid-flt-v2
MDEV-36234-wlad
MDEV-36301
MDEV-36733-minimal
MDEV-36812
MDEV-36885
MDEV-37115
MDEV-37146
MDEV-37146.bak
MDEV-37316
MDEV-37530
MDEV-37530.bak
MDEV-37566
MDEV-37949
MDEV-38029
MDEV-4698
MDEV-742-xa_repl
a_simple_question
abychko-10.5-MDEV-26265
atomic
bb-10.10-MDEV-16329
bb-10.10-MDEV-16440
bb-10.10-MDEV-16440-test
bb-10.10-MDEV-23287
bb-10.10-MDEV-27902
bb-10.10-MDEV-28522
bb-10.10-MDEV-28542
bb-10.10-MDEV-28564
bb-10.10-MDEV-28632
bb-10.10-MDEV-28632-review
bb-10.10-MDEV-28656-galera
bb-10.10-MDEV-28771
bb-10.10-MDEV-28817
bb-10.10-MDEV-28869
bb-10.10-MDEV-28881
bb-10.10-MDEV-28883
bb-10.10-MDEV-28930
bb-10.10-MDEV-29021
bb-10.10-MDEV-29181
bb-10.10-MDEV-29947
bb-10.10-MDEV-29989
bb-10.10-MDEV-31173-galera
bb-10.10-MDEV-31757
bb-10.10-MDEV-32453
bb-10.10-MDEV-32726
bb-10.10-all-builders
bb-10.10-andrei
bb-10.10-anel-rpl_fix_assertion
bb-10.10-bar-uca
bb-10.10-buildpass
bb-10.10-columnstore
bb-10.10-danielblack-uca-dump-in-deb
bb-10.10-ddl-nikita
bb-10.10-elenst
bb-10.10-igor
bb-10.10-jan-test
bb-10.10-jan-test2
bb-10.10-marko
bb-10.10-mdev-27575
bb-10.10-mdev-27912
bb-10.10-mdev-28739
bb-10.10-mdev-28883
bb-10.10-mdev-29447
bb-10.10-mdev-29447-31338
bb-10.10-mdev-29502
bb-10.10-mdev-31117
bb-10.10-mdev-31117-merge
bb-10.10-mdev-31400
bb-10.10-mdev-31421
bb-10.10-mdev-31524
bb-10.10-mdev-31787
bb-10.10-mdev-31936
bb-10.10-mdev-31996
bb-10.10-mdev-32046
bb-10.10-mdev-32157
bb-10.10-mdev-32515-bootstrap
bb-10.10-mdev-32559
bb-10.10-mdev-32559-failure-demo
bb-10.10-mdev-32753
bb-10.10-mdev-7487
bb-10.10-mdev28929-v4
bb-10.10-midenok
bb-10.10-midenok-MDEV-20865
bb-10.10-midenok-MDEV-27180
bb-10.10-monty
bb-10.10-nikita
bb-10.10-release-fixssl
bb-10.10-release-rucha
bb-10.10-release-spider-fix
bb-10.10-release-ssl
bb-10.10-serg
bb-10.10-spetrunia
bb-10.10-spetrunia2
bb-10.10-spetrunia3
bb-10.10-ycp
bb-10.10-ycp-mdev-32485
bb-10.10-ycp-spider
bb-10.11-MDEV-16232
bb-10.11-MDEV-20586
bb-10.11-MDEV-24670-memory-pressure
bb-10.11-MDEV-26715
bb-10.11-MDEV-27871
bb-10.11-MDEV-27871-MDEV-31933
bb-10.11-MDEV-28522
bb-10.11-MDEV-28526
bb-10.11-MDEV-28602-wrong-result-with-outer-join-merged-derived-table-and-view
bb-10.11-MDEV-28883
bb-10.11-MDEV-28883-MDEV-29390-tests
bb-10.11-MDEV-29104
bb-10.11-MDEV-29360
bb-10.11-MDEV-29445-ahi-35049
bb-10.11-MDEV-29624
bb-10.11-MDEV-29638
bb-10.11-MDEV-29638-variant2
bb-10.11-MDEV-29638-variant3
bb-10.11-MDEV-29971
bb-10.11-MDEV-30073-8.2
bb-10.11-MDEV-30073-MDEV-32294
bb-10.11-MDEV-30136
bb-10.11-MDEV-30260-mergefix
bb-10.11-MDEV-30406
bb-10.11-MDEV-30411-time-side-by-size
bb-10.11-MDEV-30629
bb-10.11-MDEV-30822-galera
bb-10.11-MDEV-31887-Wrong-result-with-split-optimization
bb-10.11-MDEV-32898-pkgtest
bb-10.11-MDEV-33189
bb-10.11-MDEV-33480
bb-10.11-MDEV-33551-mergefix
bb-10.11-MDEV-33672-mergefix
bb-10.11-MDEV-33799-mergefix
bb-10.11-MDEV-33921-mergefix
bb-10.11-MDEV-33967-handersocket-binlog-pkgtest
bb-10.11-MDEV-34081
bb-10.11-MDEV-34191-systemd-disable-pkgtest
bb-10.11-MDEV-34348-merge-fix
bb-10.11-MDEV-34899
bb-10.11-MDEV-35049
bb-10.11-MDEV-35049-rebase
bb-10.11-MDEV-35072
bb-10.11-MDEV-35673
bb-10.11-MDEV-36319
bb-10.11-MDEV-36592
bb-10.11-MDEV-36765
bb-10.11-MDEV-37157
bb-10.11-MDEV-37541
bb-10.11-MDEV-37680-danblack-pkgtest
bb-10.11-MDEV-37710
bb-10.11-MDEV-38159-pkgtest
bb-10.11-MDEV-38212
bb-10.11-MDEV-5816
bb-10.11-MDEV-7487
bb-10.11-MDEV-7487-MDEV-29390-tests
bb-10.11-MDEV-7487-rebased
bb-10.11-MDEV-7487-rebased-against-11.0
bb-10.11-MDEV-7487-rebased-against-11.0-MDEV-29390-test
bb-10.11-MDEV-7487-rebased-against-11.0-MDEV-29390-test-2
bb-10.11-all-builders
bb-10.11-andrei
bb-10.11-appveyor-fix
bb-10.11-bar
bb-10.11-bar-MDEV-28767
bb-10.11-bar-MDEV-33392
bb-10.11-bar-MDEV-35427
bb-10.11-bar-MDEV-35468
bb-10.11-bar-MDEV-35538
bb-10.11-bar-MDEV-MDEV-35427
bb-10.11-bar-ts-with-tz
bb-10.11-bumpversion
bb-10.11-danblack-MDEV-35904-pkgtest
bb-10.11-danielblack-MDEV-24377-pr2009
bb-10.11-danielblack-MDEV-30205-usr-share-mariadb
bb-10.11-elenst
bb-10.11-fix-rocksdb
bb-10.11-fix-sql-command-flags
bb-10.11-georg
bb-10.11-hashicorp-fixes
bb-10.11-igor
bb-10.11-julius
bb-10.11-julius-galera
bb-10.11-knielsen
bb-10.11-libfmt
bb-10.11-lock-wait-galera
bb-10.11-mdev-22168-hf
bb-10.11-mdev-22979
bb-10.11-mdev-26137
bb-10.11-mdev-26178
bb-10.11-mdev-26247
bb-10.11-mdev-27260
bb-10.11-mdev-27419
bb-10.11-mdev-27419-demo
bb-10.11-mdev-27438-debug
bb-10.11-mdev-27575
bb-10.11-mdev-27912
bb-10.11-mdev-28739
bb-10.11-mdev-29447-31338
bb-10.11-mdev-29502
bb-10.11-mdev-29535
bb-10.11-mdev-29800-hf
bb-10.11-mdev-31117
bb-10.11-mdev-31400
bb-10.11-mdev-31421
bb-10.11-mdev-31516
bb-10.11-mdev-31524
bb-10.11-mdev-31721
bb-10.11-mdev-31787
bb-10.11-mdev-31788
bb-10.11-mdev-31850
bb-10.11-mdev-31996
bb-10.11-mdev-32157
bb-10.11-mdev-32238
bb-10.11-mdev-32524
bb-10.11-mdev-32559
bb-10.11-mdev-32804
bb-10.11-mdev-32986
bb-10.11-mdev-33539
bb-10.11-mdev-34064-ycp-demo
bb-10.11-mdev-34421
bb-10.11-mdev-35249-revert
bb-10.11-mdev-35330
bb-10.11-mdev-35562
bb-10.11-mdev-35622
bb-10.11-mdev-35807
bb-10.11-mdev-35856
bb-10.11-mdev-36230
bb-10.11-mdev-36325
bb-10.11-mdev-37252
bb-10.11-mdev-37568
bb-10.11-mdev-37682
bb-10.11-mdev-37972
bb-10.11-mdev16253-OLD-update-rocksdb-6.29fb
bb-10.11-mdev16253-update-rocksdb-6.29fb
bb-10.11-mdev31577
bb-10.11-mdev31577-v2
bb-10.11-merge
bb-10.11-midenok
bb-10.11-midenok-MDEV-20865
bb-10.11-midenok-MDEV-25292
bb-10.11-midenok-MDEV-25292-fixes
bb-10.11-midenok-MDEV-27180
bb-10.11-midenok-MDEV-37325
bb-10.11-midenok-MDEV-4991
bb-10.11-midenok2
bb-10.11-midenok3
bb-10.11-monty
bb-10.11-monty-merge
bb-10.11-monty2
bb-10.11-monty3
bb-10.11-new-innodb-defaults
bb-10.11-new-innodb-julius
bb-10.11-next-serg
bb-10.11-nikita
bb-10.11-no-capabilities-pkgtest
bb-10.11-oalter
bb-10.11-partexp-hf
bb-10.11-release
bb-10.11-release-spider-fixup
bb-10.11-rucha
bb-10.11-selectivity
bb-10.11-selectivity-rebase-nov
bb-10.11-selectivity-v1
bb-10.11-serg
bb-10.11-spetrunia
bb-10.11-spetrunia-tmp
bb-10.11-thiru
bb-10.11-tmp
bb-10.11-vicentiu-cleanups
bb-10.11-vicentiu-osx
bb-10.11-wlad
bb-10.11-wlad-MDEV-26714
bb-10.11-wlad-MDEV-29251
bb-10.11-wlad-aws-sdk
bb-10.11-ycp
bb-10.11-ycp-spider
bb-10.11.11-mdev16253-rocksdb-6.29fb
bb-10.11.7-todo-4858
bb-10.12-MDEV-28891
bb-10.12-MDEV-29269
bb-10.1_MDEV-14014
bb-10.2-14472
bb-10.2-25709
bb-10.2-27snc1
bb-10.2-KILL-as-TOI-galera
bb-10.2-MDEV-13569
bb-10.2-MDEV-14183-aria_pack
bb-10.2-MDEV-14938
bb-10.2-MDEV-16128
bb-10.2-MDEV-16664
bb-10.2-MDEV-17062
bb-10.2-MDEV-17323
bb-10.2-MDEV-17943
bb-10.2-MDEV-181777
bb-10.2-MDEV-18215-unknown-backup-options
bb-10.2-MDEV-18464
bb-10.2-MDEV-18546-nikita
bb-10.2-MDEV-18565
bb-10.2-MDEV-18838
bb-10.2-MDEV-18874
bb-10.2-MDEV-19129
bb-10.2-MDEV-19344
bb-10.2-MDEV-19741
bb-10.2-MDEV-19746
bb-10.2-MDEV-19950
bb-10.2-MDEV-20194-CHECK-row-size
bb-10.2-MDEV-20516
bb-10.2-MDEV-20787
bb-10.2-MDEV-20928
bb-10.2-MDEV-21039
bb-10.2-MDEV-21050-isnan-isinf-isfinite-ported
bb-10.2-MDEV-21335
bb-10.2-MDEV-21601
bb-10.2-MDEV-21618
bb-10.2-MDEV-21681-page-LSN-doesnt-match-cb
bb-10.2-MDEV-21758
bb-10.2-MDEV-21770
bb-10.2-MDEV-21910
bb-10.2-MDEV-21951
bb-10.2-MDEV-22021
bb-10.2-MDEV-22110-dont-log-unmodified-pages
bb-10.2-MDEV-22398-innodb_xa_rollback-fails
bb-10.2-MDEV-22543
bb-10.2-MDEV-22554-ib_error_flag
bb-10.2-MDEV-22726-aria-non-trans-log
bb-10.2-MDEV-22810-open_files_limit
bb-10.2-MDEV-22929-log_corrupted_pages
bb-10.2-MDEV-23101
bb-10.2-MDEV-23483
bb-10.2-MDEV-23484
bb-10.2-MDEV-23500
bb-10.2-MDEV-23536
bb-10.2-MDEV-23564
bb-10.2-MDEV-23600
bb-10.2-MDEV-23711-redo-log-overwrite
bb-10.2-MDEV-23746
bb-10.2-MDEV-23851
bb-10.2-MDEV-23857
bb-10.2-MDEV-23888
bb-10.2-MDEV-23925
bb-10.2-MDEV-23926
bb-10.2-MDEV-24169
bb-10.2-MDEV-24240
bb-10.2-MDEV-24443
bb-10.2-MDEV-24704
bb-10.2-MDEV-24719-last-skipped-lsn-check
bb-10.2-MDEV-24837
bb-10.2-MDEV-24853
bb-10.2-MDEV-24903
bb-10.2-MDEV-24978
bb-10.2-MDEV-25114
bb-10.2-MDEV-25114-galera-v2
bb-10.2-MDEV-25114-planE-galera
bb-10.2-MDEV-25302
bb-10.2-MDEV-25328
bb-10.2-MDEV-25328-plus-spaces
bb-10.2-MDEV-25328-plus-tests
bb-10.2-MDEV-25328-v2
bb-10.2-MDEV-25328-v3
bb-10.2-MDEV-25328-v4
bb-10.2-MDEV-25472
bb-10.2-MDEV-25607
bb-10.2-MDEV-25609
bb-10.2-MDEV-25768
bb-10.2-MDEV-25818
bb-10.2-MDEV-25994
bb-10.2-MDEV-26015
bb-10.2-MDEV-26064-galera
bb-10.2-MDEV-26127
bb-10.2-MDEV-26145
bb-10.2-MDEV-26377-final
bb-10.2-MDEV-26668-schema-mismatch
bb-10.2-MDEV-27025-MDEV-20605
bb-10.2-MDEV-27109
bb-10.2-MDEV-27148-mysqltest-reject
bb-10.2-MDEV-27181
bb-10.2-MDEV-27289-server-embedded-mtr
bb-10.2-MDEV-27462
bb-10.2-MDEV-27524-final
bb-10.2-MDEV-27575
bb-10.2-MDEV-27602
bb-10.2-MDEV-27602-mtr
bb-10.2-MDEV-27740-final
bb-10.2-MDEV-277400
bb-10.2-MDEV-27850
bb-10.2-MDEV-28294
bb-10.2-MDEV-28530
bb-10.2-MDEV26113
bb-10.2-Stepan-fixes
bb-10.2-alice
bb-10.2-anel-MDEV-1448-ctrlc
bb-10.2-comment-hf
bb-10.2-compatibility
bb-10.2-compatibility-build22257-opt-fixes
bb-10.2-compatibility-deadlock
bb-10.2-cpack_rpm-exclude-mysql-test-from-debuginfo
bb-10.2-daniel-getopt-sets-readable-output
bb-10.2-danielblack-MDEV-15393-skip-mysql.gtid_slave_pos-with-master-data
bb-10.2-danielblack-MDEV-16263-mysql_client_test-non-mtr-run
bb-10.2-danielblack-MDEV-21286-remove-bison-warnings
bb-10.2-danielblack-MDEV-23326-timezone-initialization-slow-on-aria
bb-10.2-danielblack-MDEV-24268-mtr-mysql_install_db
bb-10.2-danielblack-MDEV-26363
bb-10.2-danielblack-MDEV-28597-aria-double-free
bb-10.2-elenst
bb-10.2-ext2
bb-10.2-galera
bb-10.2-galera-jan
bb-10.2-group-min-max
bb-10.2-hf
bb-10.2-igor
bb-10.2-jan
bb-10.2-kevgs
bb-10.2-mariabackup-pwd
bb-10.2-mariabackup-remove-nolock
bb-10.2-mariarocks
bb-10.2-mariarocks-merge-pre
bb-10.2-mdev-13626
bb-10.2-mdev-26111
bb-10.2-mdev-26127
bb-10.2-mdev11934
bb-10.2-mdev13153
bb-10.2-mdev13330
bb-10.2-mdev13355
bb-10.2-mdev15245
bb-10.2-mdev16428
bb-10.2-mdev19608
bb-10.2-mdev20371
bb-10.2-mdev22779
bb-10.2-mdev25447
bb-10.2-mdev26047
bb-10.2-mdev26047-v2
bb-10.2-mdev9750
bb-10.2-midenok
bb-10.2-midenok-MDEV-20874
bb-10.2-midenok-MDEV-25794
bb-10.2-midenok-innodb
bb-10.2-midenok-tmp
bb-10.2-monty
bb-10.2-nikita
bb-10.2-nikita-MDEV-26205
bb-10.2-nikita-MDEV-26508
bb-10.2-psergey
bb-10.2-ramesh
bb-10.2-release-fix-mdev23811
bb-10.2-robert
bb-10.2-sachin
bb-10.2-semisync
bb-10.2-semisync_ali
bb-10.2-serg
bb-10.2-spider-extra-jacob
bb-10.2-ssl
bb-10.2-sujatha
bb-10.2-svoj
bb-10.2-sysprg
bb-10.2-varun
bb-10.2-vicentiu
bb-10.2-vicentiu-mdev-17964
bb-10.2-vicentiu3
bb-10.2.32-22529-22456
bb-10.2.36-MDEV-24449-MDEV-24709
bb-10.2.4-spider-extra-jacob
bb-10.2.7
bb-10.2gr
bb-10.3-10.3.23-MDEV-21109-wrong-page-no
bb-10.3-10.3.23-MDEV-22929
bb-10.3-16272
bb-10.3-17390
bb-10.3-20574
bb-10.3-21265
bb-10.3-KILL-as-TOI-galera
bb-10.3-MDEV-14500
bb-10.3-MDEV-14642
bb-10.3-MDEV-14959
bb-10.3-MDEV-14959.version
bb-10.3-MDEV-15058
bb-10.3-MDEV-15058-2
bb-10.3-MDEV-15447
bb-10.3-MDEV-16128
bb-10.3-MDEV-16246
bb-10.3-MDEV-16951
bb-10.3-MDEV-17516
bb-10.3-MDEV-18546-nikita
bb-10.3-MDEV-19415
bb-10.3-MDEV-19845
bb-10.3-MDEV-20100
bb-10.3-MDEV-20485
bb-10.3-MDEV-21027
bb-10.3-MDEV-21109-wrong-page-no
bb-10.3-MDEV-21117
bb-10.3-MDEV-21601
bb-10.3-MDEV-21770
bb-10.3-MDEV-21770-v2
bb-10.3-MDEV-21910
bb-10.3-MDEV-22543
bb-10.3-MDEV-23101
bb-10.3-MDEV-23483
bb-10.3-MDEV-23536
bb-10.3-MDEV-23851
bb-10.3-MDEV-24283
bb-10.3-MDEV-24387
bb-10.3-MDEV-25114
bb-10.3-MDEV-25609
bb-10.3-MDEV-26064-galera
bb-10.3-MDEV-26171-galera
bb-10.3-MDEV-26247
bb-10.3-MDEV-26633
bb-10.3-MDEV-26831-fallout
bb-10.3-MDEV-26915-galera
bb-10.3-MDEV-27524-tests
bb-10.3-MDEV-27575
bb-10.3-MDEV-28599
bb-10.3-MDEV-28656-galera
bb-10.3-MDEV-28669-galera
bb-10.3-MDEV-28739
bb-10.3-MDEV-28758
bb-10.3-MDEV-28758-galera
bb-10.3-MDEV-28798
bb-10.3-MDEV-28968-galera
bb-10.3-MDEV-29294
bb-10.3-MDEV-29433-lock_delete_updated
bb-10.3-MDEV-29644
bb-10.3-MDEV-30052-variant2
bb-10.3-MDEV-30157-galera
bb-10.3-MDEV-30608
bb-10.3-MDEV-31668
bb-10.3-TODO-3498-custom-galera
bb-10.3-abychko
bb-10.3-andrei
bb-10.3-anel-PR796
bb-10.3-bar-MDEV-9777
bb-10.3-cpp11
bb-10.3-danielblack-MDEV-16194-pkgtest-remove-offset
bb-10.3-danielblack-MDEV-18702
bb-10.3-danielblack-MDEV-24268-mtr-mysql_install_db
bb-10.3-danielblack-MDEV-27008-aarch-atomics
bb-10.3-danielblack-MDEV-29015-my_seek-avoid-wsl8443
bb-10.3-danielblack-alloca_h_service-pkgtest
bb-10.3-danielblack-rocksdb-featureinfo
bb-10.3-elenst
bb-10.3-findgssapi
bb-10.3-galera
bb-10.3-georg
bb-10.3-hf
bb-10.3-hf-2
bb-10.3-igor
bb-10.3-jani
bb-10.3-kevgs
bb-10.3-mariarocks
bb-10.3-mdev-24523
bb-10.3-mdev-26247
bb-10.3-mdev-26364
bb-10.3-mdev-26544_3
bb-10.3-mdev-27912
bb-10.3-mdev-29447
bb-10.3-mdev-29447-wip
bb-10.3-mdev-30464
bb-10.3-mdev12179
bb-10.3-mdev15101
bb-10.3-mdev17518
bb-10.3-mdev20109
bb-10.3-mdev21603
bb-10.3-mdev22866
bb-10.3-mdev26249
bb-10.3-mdev26337
bb-10.3-mdev26337-v1
bb-10.3-midenok
bb-10.3-midenok-MDEV-18706
bb-10.3-midenok-MDEV-21138
bb-10.3-midenok-MDEV-28931
bb-10.3-midenok2
bb-10.3-monty
bb-10.3-nikita
bb-10.3-nikita-mdev-24511
bb-10.3-nikita-old
bb-10.3-ramesh
bb-10.3-robert
bb-10.3-sachin
bb-10.3-sachin-rpl
bb-10.3-sachin-tmp
bb-10.3-serg
bb-10.3-spetrunia
bb-10.3-spider
bb-10.3-sujatha
bb-10.3-svoj
bb-10.3-sysprg
bb-10.3-sysprg-vcheck
bb-10.3-varun
bb-10.3-vicentiu
bb-10.3-vicentiu-dtoa
bb-10.3-vicentiu-json-review
bb-10.3-vicentiu-tmp-table
bb-10.3-vicentiu-travis
bb-10.3-vicentiu-travis2
bb-10.3.10-mdev21243
bb-10.3.11-xtrabackup_copy_logfile_failed-MDEV-18611
bb-10.3.16-MDEV-21109-wrong-page-no-assert
bb-10.3.16-MDEV-21109-wrong-page-no-log
bb-10.3.16-xtrabackup_copy_logfile_failed-MDEV-18611-dev
bb-10.3.17-MDEV-21109-wrong-page-no
bb-10.3.21-MDEV-21109-wrong-page-no-log
bb-10.4-10.4.14-MDEV-23711-redo-log-overwrite
bb-10.4-19049
bb-10.4-20131
bb-10.4-20574
bb-10.4-23089
bb-10.4-29882-galera
bb-10.4-31361-v3
bb-10.4-7409
bb-10.4-KILL-as-TOI-galera
bb-10.4-MDEV-13915
bb-10.4-MDEV-14101
bb-10.4-MDEV-15703-1
bb-10.4-MDEV-16249
bb-10.4-MDEV-16462
bb-10.4-MDEV-17520
bb-10.4-MDEV-17520-2
bb-10.4-MDEV-17571
bb-10.4-MDEV-17591
bb-10.4-MDEV-17943
bb-10.4-MDEV-18215-post-push-fix
bb-10.4-MDEV-18215-unknown-backup-options
bb-10.4-MDEV-18215-unknown-backup-options-2
bb-10.4-MDEV-18477
bb-10.4-MDEV-18565
bb-10.4-MDEV-18726
bb-10.4-MDEV-18973
bb-10.4-MDEV-18990
bb-10.4-MDEV-18994
bb-10.4-MDEV-19002
bb-10.4-MDEV-19003
bb-10.4-MDEV-19129
bb-10.4-MDEV-19190-nayuta
bb-10.4-MDEV-19210-environment-file-pkgtest
bb-10.4-MDEV-19520
bb-10.4-MDEV-19781
bb-10.4-MDEV-19803
bb-10.4-MDEV-19950
bb-10.4-MDEV-20100
bb-10.4-MDEV-20185
bb-10.4-MDEV-20230-ftwrl-wait-timeout
bb-10.4-MDEV-20494
bb-10.4-MDEV-20502
bb-10.4-MDEV-20793
bb-10.4-MDEV-20848
bb-10.4-MDEV-21007
bb-10.4-MDEV-21153
bb-10.4-MDEV-21335
bb-10.4-MDEV-21483
bb-10.4-MDEV-21675
bb-10.4-MDEV-21905-v2-galera
bb-10.4-MDEV-21910-v2
bb-10.4-MDEV-22021
bb-10.4-MDEV-22055
bb-10.4-MDEV-22063-galera
bb-10.4-MDEV-22203
bb-10.4-MDEV-22494
bb-10.4-MDEV-22596
bb-10.4-MDEV-22632
bb-10.4-MDEV-22666
bb-10.4-MDEV-22979
bb-10.4-MDEV-22983--option-help
bb-10.4-MDEV-23081
bb-10.4-MDEV-23101
bb-10.4-MDEV-23384
bb-10.4-MDEV-23483
bb-10.4-MDEV-23536
bb-10.4-MDEV-23557
bb-10.4-MDEV-23766
bb-10.4-MDEV-23851
bb-10.4-MDEV-23878
bb-10.4-MDEV-24119
bb-10.4-MDEV-24165
bb-10.4-MDEV-24255
bb-10.4-MDEV-24485
bb-10.4-MDEV-24596
bb-10.4-MDEV-24688
bb-10.4-MDEV-24912-postfix-galera
bb-10.4-MDEV-24964
bb-10.4-MDEV-24978
bb-10.4-MDEV-25047
bb-10.4-MDEV-25089-galera
bb-10.4-MDEV-25114
bb-10.4-MDEV-25869
bb-10.4-MDEV-26171-post-merge
bb-10.4-MDEV-26294-instant-alter-charset
bb-10.4-MDEV-26562-galera
bb-10.4-MDEV-27038-ro-mounts-pkgtest
bb-10.4-MDEV-27233
bb-10.4-MDEV-27233-2
bb-10.4-MDEV-27233-hf
bb-10.4-MDEV-27238
bb-10.4-MDEV-27260
bb-10.4-MDEV-27624
bb-10.4-MDEV-28294
bb-10.4-MDEV-28294-merge
bb-10.4-MDEV-28314
bb-10.4-MDEV-28377
bb-10.4-MDEV-28598
bb-10.4-MDEV-28621
bb-10.4-MDEV-28621-no-remove-unit
bb-10.4-MDEV-28621-reference-counter
bb-10.4-MDEV-28622
bb-10.4-MDEV-28641-galera
bb-10.4-MDEV-28656-galera
bb-10.4-MDEV-28798
bb-10.4-MDEV-28971-galera
bb-10.4-MDEV-29092
bb-10.4-MDEV-29179
bb-10.4-MDEV-29246-galera
bb-10.4-MDEV-29283
bb-10.4-MDEV-29289
bb-10.4-MDEV-29293-galera
bb-10.4-MDEV-29369
bb-10.4-MDEV-29456
bb-10.4-MDEV-29602
bb-10.4-MDEV-29640
bb-10.4-MDEV-29775-galera
bb-10.4-MDEV-29814-galera
bb-10.4-MDEV-29917-galera
bb-10.4-MDEV-29989
bb-10.4-MDEV-30334
bb-10.4-MDEV-30388-galera
bb-10.4-MDEV-30414-galera
bb-10.4-MDEV-30421-andrei
bb-10.4-MDEV-30430
bb-10.4-MDEV-30456-galera
bb-10.4-MDEV-30620
bb-10.4-MDEV-30732-galera
bb-10.4-MDEV-30771
bb-10.4-MDEV-30804-galera
bb-10.4-MDEV-30838-galera
bb-10.4-MDEV-30904-harmut-pkgtest
bb-10.4-MDEV-30955-galera
bb-10.4-MDEV-31004
bb-10.4-MDEV-31005
bb-10.4-MDEV-31062-galera
bb-10.4-MDEV-31062-v2-galera
bb-10.4-MDEV-31130
bb-10.4-MDEV-31173-galera
bb-10.4-MDEV-31185-pins
bb-10.4-MDEV-31327
bb-10.4-MDEV-31403
bb-10.4-MDEV-31439-rpm-conflicts-with-mysql-pkgtest
bb-10.4-MDEV-31477
bb-10.4-MDEV-31905-galera
bb-10.4-MDEV-31933
bb-10.4-MDEV-32017
bb-10.4-MDEV-32024-galera
bb-10.4-MDEV-32034
bb-10.4-MDEV-32130
bb-10.4-MDEV-32168-bnestere
bb-10.4-MDEV-32301
bb-10.4-MDEV-32308
bb-10.4-MDEV-32320
bb-10.4-MDEV-32351-pkgtest
bb-10.4-MDEV-32395
bb-10.4-MDEV-32517
bb-10.4-MDEV-32523
bb-10.4-MDEV-32549-galera
bb-10.4-MDEV-32628
bb-10.4-MDEV-32633-galera
bb-10.4-MDEV-32634-galera
bb-10.4-MDEV-32634-v2-galera
bb-10.4-MDEV-32635-galera
bb-10.4-MDEV-32673
bb-10.4-MDEV-32938-galera
bb-10.4-MDEV-33081
bb-10.4-MDEV-33138-galera
bb-10.4-MDEV-6268
bb-10.4-MDEV-7850
bb-10.4-MDEV-7850-bnestere
bb-10.4-MDEV14101
bb-10.4-MW-336
bb-10.4-all-builders
bb-10.4-andrei
bb-10.4-anel-mysql-secureinstall
bb-10.4-bar-MDEV-27666
bb-10.4-bar-MDEV-27771
bb-10.4-bar-MDEV-28498
bb-10.4-check-toku-ci-failure
bb-10.4-danielblack-atomic-rhel-aarch-fix
bb-10.4-danielblack-pr2435-libressl
bb-10.4-elenst
bb-10.4-elenst-no-mdev371
bb-10.4-galera
bb-10.4-galera-bug
bb-10.4-galera-tests
bb-10.4-georg
bb-10.4-hf
bb-10.4-igor
bb-10.4-igor-MDEV-32466
bb-10.4-igor-rebase-MDEV-32466
bb-10.4-igor2
bb-10.4-jan
bb-10.4-jan-fix
bb-10.4-jan-galera
bb-10.4-julius
bb-10.4-julius-galera
bb-10.4-kevgs
bb-10.4-knielsen
bb-10.4-lenas
bb-10.4-linuxjedi-MDEV-19210
bb-10.4-mdev-22534-demo-exists2in-loop
bb-10.4-mdev-24610
bb-10.4-mdev-26345
bb-10.4-mdev-27666-hf
bb-10.4-mdev-27902
bb-10.4-mdev-27902-gold
bb-10.4-mdev-28506
bb-10.4-mdev-28506-v2
bb-10.4-mdev-28509
bb-10.4-mdev-28856
bb-10.4-mdev-28992
bb-10.4-mdev-29363
bb-10.4-mdev-29363-cheap
bb-10.4-mdev-29363-no-prop-subquery
bb-10.4-mdev-29447
bb-10.4-mdev-29718-gold
bb-10.4-mdev-29962
bb-10.4-mdev-30014
bb-10.4-mdev-30073
bb-10.4-mdev-30073-3
bb-10.4-mdev-30073-3_MDEV-32466
bb-10.4-mdev-30073-4
bb-10.4-mdev-30073-5
bb-10.4-mdev-30370
bb-10.4-mdev-30727
bb-10.4-mdev-30727-demo
bb-10.4-mdev-31101
bb-10.4-mdev-31269
bb-10.4-mdev-31269-3906-fixed-by-mdev-30073
bb-10.4-mdev-31361
bb-10.4-mdev-31766-hf
bb-10.4-mdev-32401
bb-10.4-mdev-32424
bb-10.4-mdev-32849-check-ci
bb-10.4-mdev-32986-gold
bb-10.4-mdev-33008-gold
bb-10.4-mdev-33191-gold
bb-10.4-mdev-33434
bb-10.4-mdev-33441
bb-10.4-mdev-33679
bb-10.4-mdev-33706
bb-10.4-mdev-33728
bb-10.4-mdev-33892-hf
bb-10.4-mdev18608
bb-10.4-mdev19134
bb-10.4-mdev20109
bb-10.4-mdev20371
bb-10.4-mdev20501
bb-10.4-mdev20501-v2
bb-10.4-mdev21794
bb-10.4-mdev22377
bb-10.4-mdev22401
bb-10.4-mdev22993
bb-10.4-mdev26301-with-trace
bb-10.4-mdev27666-hf
bb-10.4-mdev28649-hf
bb-10.4-mdev302018-v2
bb-10.4-mdev30218-part2
bb-10.4-mdev30964
bb-10.4-mdev31121
bb-10.4-mdev31240
bb-10.4-mdev32301
bb-10.4-mdev32351-tests
bb-10.4-mdev9750
bb-10.4-mdev9750-v2
bb-10.4-midenok
bb-10.4-midenok-MDEV-25644
bb-10.4-midenok-MDEV-30421
bb-10.4-midenok-MDEV-30528
bb-10.4-midenok-MDEV-31042
bb-10.4-midenok-tmp
bb-10.4-midenok2
bb-10.4-monty
bb-10.4-multiple-user-binlog
bb-10.4-nayuta
bb-10.4-nikita
bb-10.4-osmirnov
bb-10.4-otto
bb-10.4-psergey
bb-10.4-ramesh
bb-10.4-release-mdev30218
bb-10.4-robert
bb-10.4-rucha
bb-10.4-sachin
bb-10.4-sachin2
bb-10.4-serg
bb-10.4-spetrunia
bb-10.4-spetrunia-tmp
bb-10.4-spider-ks
bb-10.4-sqlserv-bp-hf
bb-10.4-sujatha
bb-10.4-svoj
bb-10.4-sysprg
bb-10.4-sysprg-MDEV-20625
bb-10.4-sysprg-MDEV-20626
bb-10.4-tests-galera
bb-10.4-thiru
bb-10.4-vicentiu
bb-10.4-vicentiu-histograms
bb-10.4-vp-ks
bb-10.4-wlad
bb-10.4-wsrep
bb-10.4-wsrep-update
bb-10.4-ycp
bb-10.4-ycp-mdev-29963
bb-10.4-ycp-mdev-30014
bb-10.4-ycp-spider
bb-10.4-ycp-spider-fix
bb-10.4-ycp-spider-mdev-31117
bb-10.4-ycp-spider-mdev-31524
bb-10.4-ycp-spider-mdev-31524-fail
bb-10.4.20-MDEV-30567
bb-10.5-10.5.22-MDEV-24035-assertion
bb-10.5-10.5.6-MDEV-24197-debug-build
bb-10.5-19708
bb-10.5-23089
bb-10.5-KILL-as-TOI-galera
bb-10.5-MDEV-10962-deadlock-deletes
bb-10.5-MDEV-13362
bb-10.5-MDEV-13915-mergefix
bb-10.5-MDEV-14357
bb-10.5-MDEV-14479-table-locks
bb-10.5-MDEV-14479-table-locks-lock_rec_has_expl
bb-10.5-MDEV-15053
bb-10.5-MDEV-15053-2
bb-10.5-MDEV-15053-3
bb-10.5-MDEV-16039-nikita
bb-10.5-MDEV-16232
bb-10.5-MDEV-16641-test-unmask-mysql_client_test_tests
bb-10.5-MDEV-16978-without-overlaps
bb-10.5-MDEV-16983-period-fk
bb-10.5-MDEV-17395-replace
bb-10.5-MDEV-17943
bb-10.5-MDEV-18188
bb-10.5-MDEV-18215-unknown-backup-options
bb-10.5-MDEV-18582
bb-10.5-MDEV-18863
bb-10.5-MDEV-18976
bb-10.5-MDEV-18976-redolog-crc
bb-10.5-MDEV-19487
bb-10.5-MDEV-19935
bb-10.5-MDEV-20051
bb-10.5-MDEV-20100
bb-10.5-MDEV-20281
bb-10.5-MDEV-20297
bb-10.5-MDEV-20487
bb-10.5-MDEV-21175
bb-10.5-MDEV-21351
bb-10.5-MDEV-21452
bb-10.5-MDEV-21469-2022
bb-10.5-MDEV-21469-2023
bb-10.5-MDEV-21598
bb-10.5-MDEV-21916-try2
bb-10.5-MDEV-21988
bb-10.5-MDEV-22063-galera
bb-10.5-MDEV-22141
bb-10.5-MDEV-22232-galera
bb-10.5-MDEV-22387
bb-10.5-MDEV-22543
bb-10.5-MDEV-22726-aria-non-trans-log
bb-10.5-MDEV-22729
bb-10.5-MDEV-22922
bb-10.5-MDEV-22929-log_corrupted_pages
bb-10.5-MDEV-22979
bb-10.5-MDEV-23101
bb-10.5-MDEV-23299-danielblack-pr-1643
bb-10.5-MDEV-23399
bb-10.5-MDEV-23483
bb-10.5-MDEV-23651
bb-10.5-MDEV-23855
bb-10.5-MDEV-23955
bb-10.5-MDEV-24010
bb-10.5-MDEV-24142
bb-10.5-MDEV-24480
bb-10.5-MDEV-24514
bb-10.5-MDEV-24705-LSN-check
bb-10.5-MDEV-24819
bb-10.5-MDEV-24845-galera
bb-10.5-MDEV-24882-galera
bb-10.5-MDEV-24935
bb-10.5-MDEV-25031
bb-10.5-MDEV-25089-galera
bb-10.5-MDEV-25089-v2-galera
bb-10.5-MDEV-25113
bb-10.5-MDEV-25114
bb-10.5-MDEV-25148
bb-10.5-MDEV-25163
bb-10.5-MDEV-25594
bb-10.5-MDEV-25731-galera
bb-10.5-MDEV-25783
bb-10.5-MDEV-26206-post-push
bb-10.5-MDEV-26266-galera
bb-10.5-MDEV-26450
bb-10.5-MDEV-26516-galera
bb-10.5-MDEV-26826
bb-10.5-MDEV-26852
bb-10.5-MDEV-26929
bb-10.5-MDEV-27366
bb-10.5-MDEV-27366-2
bb-10.5-MDEV-27649-galera
bb-10.5-MDEV-27806-galera
bb-10.5-MDEV-27861-galera
bb-10.5-MDEV-27861-v2-galera
bb-10.5-MDEV-27861-v3-galera
bb-10.5-MDEV-27862-galera
bb-10.5-MDEV-28621-elimination-disabled
bb-10.5-MDEV-28621-no-remove-unit
bb-10.5-MDEV-28709-sup_X_lock-debug
bb-10.5-MDEV-28846
bb-10.5-MDEV-28953-galera
bb-10.5-MDEV-29027
bb-10.5-MDEV-29050-prepare-export-err
bb-10.5-MDEV-29293-galera
bb-10.5-MDEV-29344
bb-10.5-MDEV-29693-v2
bb-10.5-MDEV-29775-galera
bb-10.5-MDEV-29775-v2-galera
bb-10.5-MDEV-29880-galera
bb-10.5-MDEV-29967
bb-10.5-MDEV-29981-log-headers
bb-10.5-MDEV-30073-MDEV-32294
bb-10.5-MDEV-30415
bb-10.5-MDEV-30456-galera
bb-10.5-MDEV-30520-selinux-app-pkgtest
bb-10.5-MDEV-30605
bb-10.5-MDEV-30619-merge
bb-10.5-MDEV-30646
bb-10.5-MDEV-30658-lock_row_lock_current_waits
bb-10.5-MDEV-30686-v2-galera
bb-10.5-MDEV-30700-postfix
bb-10.5-MDEV-30710
bb-10.5-MDEV-30815
bb-10.5-MDEV-30822-galera
bb-10.5-MDEV-30822-v2-galera
bb-10.5-MDEV-31062-galera
bb-10.5-MDEV-31062-v2-galera
bb-10.5-MDEV-31177
bb-10.5-MDEV-31477
bb-10.5-MDEV-31892
bb-10.5-MDEV-32083-cve
bb-10.5-MDEV-32287
bb-10.5-MDEV-32294-WIP
bb-10.5-MDEV-32302
bb-10.5-MDEV-32401
bb-10.5-MDEV-32635-galera
bb-10.5-MDEV-32782-galera
bb-10.5-MDEV-32866
bb-10.5-MDEV-32996-galera
bb-10.5-MDEV-33035-galera
bb-10.5-MDEV-33036-galera
bb-10.5-MDEV-33138-galera
bb-10.5-MDEV-33216-galera
bb-10.5-MDEV-33509-galera
bb-10.5-MDEV-33658
bb-10.5-MDEV-33677-galera
bb-10.5-MDEV-33755
bb-10.5-MDEV-33897-galera
bb-10.5-MDEV-33928-galera
bb-10.5-MDEV-33952-galera
bb-10.5-MDEV-33967-handersocket-binlog-pkgtest
bb-10.5-MDEV-33988-delete-table-alias-pkgtest
bb-10.5-MDEV-33997-galera
bb-10.5-MDEV-34214-galera
bb-10.5-MDEV-34348
bb-10.5-MDEV-34508-ubsan-errors
bb-10.5-MDEV-34580
bb-10.5-MDEV-34594-galera
bb-10.5-MDEV-34594-v2-galera
bb-10.5-MDEV-34842-galera_3nodes-ipv6
bb-10.5-MDEV-34883
bb-10.5-MDEV-34926
bb-10.5-MDEV-34976-galera
bb-10.5-MDEV-34998-tests-galera
bb-10.5-MDEV-35018-galera
bb-10.5-MDEV-35018-v2-galera
bb-10.5-MDEV-35018-v3-galera
bb-10.5-MDEV-35090
bb-10.5-MDEV-35299
bb-10.5-MDEV-35343
bb-10.5-MDEV-35355-galera
bb-10.5-MDEV-35471-galera
bb-10.5-MDEV-35565
bb-10.5-MDEV-35673
bb-10.5-MDEV-35938
bb-10.5-MDEV-35969-galera
bb-10.5-MDEV-36116-galera
bb-10.5-MDEV-36117-galera
bb-10.5-MDEV-36280
bb-10.5-MDEV-36380
bb-10.5-MDEV-36628-galera
bb-10.5-MDEV_21469
bb-10.5-MENT-344-backup_to_s3
bb-10.5-TODO-3821
bb-10.5-abychko
bb-10.5-all-builders
bb-10.5-andrei
bb-10.5-anel-MDEV-24602-check_constraints
bb-10.5-anel-anonymous-user-windows-check
bb-10.5-anel-anonymous-user-windows-check-without-skip-resolve
bb-10.5-anel-rpl-fix-assertion
bb-10.5-aria
bb-10.5-bar
bb-10.5-bar-MDEV-10865
bb-10.5-bar-MDEV-20610
bb-10.5-bar-MDEV-25593
bb-10.5-bar-MDEV-30111
bb-10.5-bar-MDEV-33342
bb-10.5-bar-MDEV-34037
bb-10.5-bar-MDEV-34580
bb-10.5-bar-MDEV-34959
bb-10.5-bumpversion
bb-10.5-clustrixdb
bb-10.5-columnstore
bb-10.5-cs
bb-10.5-danielblack-MDEV-23607
bb-10.5-danielblack-MDEV-23892-pthread-not-aix-specific
bb-10.5-danielblack-MDEV-26891-delay-insert-virt-crash-pr1943
bb-10.5-danielblack-MDEV-28153-deb-explict-deps-salsa-postfix
bb-10.5-danielblack-MDEV-30222-mysqltest-popen-err-display
bb-10.5-danielblack-my_free_undef
bb-10.5-drrtuy
bb-10.5-elenst
bb-10.5-elenst-mdev22249
bb-10.5-galera
bb-10.5-galera-gtid
bb-10.5-hf
bb-10.5-igor
bb-10.5-jan
bb-10.5-julius
bb-10.5-julius-galera
bb-10.5-kevgs
bb-10.5-knielsen
bb-10.5-lateral-fixes
bb-10.5-limit-rows-examined
bb-10.5-mdbf-535-test
bb-10.5-mdev-24610
bb-10.5-mdev-25008
bb-10.5-mdev-25008-monty-patch
bb-10.5-mdev-25008-outer-lookup-keys
bb-10.5-mdev-25008-unit-distinct
bb-10.5-mdev-26247
bb-10.5-mdev-26345-alt
bb-10.5-mdev-26541
bb-10.5-mdev-27575
bb-10.5-mdev-27650
bb-10.5-mdev-27902
bb-10.5-mdev-27912
bb-10.5-mdev-28683
bb-10.5-mdev-28739
bb-10.5-mdev-29002-gold
bb-10.5-mdev-29360-v1
bb-10.5-mdev-29360-v2
bb-10.5-mdev-29363-cheap
bb-10.5-mdev-29447
bb-10.5-mdev-29447-31338
bb-10.5-mdev-29605
bb-10.5-mdev-29644
bb-10.5-mdev-29870
bb-10.5-mdev-29962
bb-10.5-mdev-30014
bb-10.5-mdev-30067
bb-10.5-mdev-30073-6
bb-10.5-mdev-30073-7
bb-10.5-mdev-30073-8
bb-10.5-mdev-30073-8.1
bb-10.5-mdev-30073-8.2
bb-10.5-mdev-30170-gold
bb-10.5-mdev-30370-22979-29904-27912
bb-10.5-mdev-30408
bb-10.5-mdev-30435-30981
bb-10.5-mdev-30576
bb-10.5-mdev-30649
bb-10.5-mdev-31101
bb-10.5-mdev-31117
bb-10.5-mdev-31117-merge
bb-10.5-mdev-31269
bb-10.5-mdev-31400
bb-10.5-mdev-31421
bb-10.5-mdev-31524
bb-10.5-mdev-31673
bb-10.5-mdev-31743
bb-10.5-mdev-31787
bb-10.5-mdev-31996
bb-10.5-mdev-32157
bb-10.5-mdev-32492
bb-10.5-mdev-32492-delete-trx-ha-if-mismatch-share
bb-10.5-mdev-32524
bb-10.5-mdev-33174-gold
bb-10.5-mdev-33220
bb-10.5-mdev-33679
bb-10.5-mdev-33679-print-item-equal
bb-10.5-mdev-33777
bb-10.5-mdev-34036
bb-10.5-mdev-34359
bb-10.5-mdev-34404
bb-10.5-mdev-34421
bb-10.5-mdev-34541
bb-10.5-mdev-34589-restore-dastatus-rollback
bb-10.5-mdev-34589-trans-rollback-pass-error
bb-10.5-mdev-34639
bb-10.5-mdev-34659
bb-10.5-mdev-34708
bb-10.5-mdev-34872
bb-10.5-mdev-34925
bb-10.5-mdev-35064
bb-10.5-mdev-35153-debug
bb-10.5-mdev-35249-revert
bb-10.5-mdev-35326
bb-10.5-mdev-35326-handle-select
bb-10.5-mdev-35452-remove-sgb
bb-10.5-mdev-35622
bb-10.5-mdev-35781
bb-10.5-mdev-35807
bb-10.5-mdev-35874
bb-10.5-mdev-36118
bb-10.5-mdev-36121
bb-10.5-mdev-36245-hf
bb-10.5-mdev-36307
bb-10.5-mdev-36324
bb-10.5-mdev-36335
bb-10.5-mdev-36442
bb-10.5-mdev-36452
bb-10.5-mdev-36454
bb-10.5-mdev-36476
bb-10.5-mdev-36477
bb-10.5-mdev-36478
bb-10.5-mdev-36633
bb-10.5-mdev15101
bb-10.5-mdev20854
bb-10.5-mdev22014
bb-10.5-mdev22331
bb-10.5-mdev23634
bb-10.5-mdev23662
bb-10.5-mdev24953
bb-10.5-mdev25069
bb-10.5-mdev25251
bb-10.5-mdev27382
bb-10.5-mdev7317
bb-10.5-mdev9750
bb-10.5-mdev_742
bb-10.5-ment-1591-debug-demo
bb-10.5-merge-jan
bb-10.5-merge-static-libs-danblack
bb-10.5-midenok
bb-10.5-midenok2
bb-10.5-monty
bb-10.5-my-error
bb-10.5-nikita
bb-10.5-nikita-MDEV-30046
bb-10.5-nikita-expr-arena-old
bb-10.5-nikita-msan
bb-10.5-oalter
bb-10.5-oalter-rebase
bb-10.5-pre_mdev-742
bb-10.5-ps-ks
bb-10.5-ramesh
bb-10.5-rasmus
bb-10.5-release-galera
bb-10.5-release-julius
bb-10.5-release-mdev30218
bb-10.5-release-mtr
bb-10.5-release-spider-fix
bb-10.5-remove-dont
bb-10.5-rex
bb-10.5-robert
bb-10.5-robert-build
bb-10.5-sachin
bb-10.5-serg
bb-10.5-shutdown
bb-10.5-spetrunia
bb-10.5-spider-fixup
bb-10.5-sqlser-hf
bb-10.5-sst-galera
bb-10.5-sujatha
bb-10.5-svoj
bb-10.5-svoj-MDEV-17084
bb-10.5-svoj-MDEV-17084-redo
bb-10.5-svoj-MDEV-19061
bb-10.5-svoj-MDEV-19439
bb-10.5-svoj-MDEV-20630
bb-10.5-svoj-MDEV-22593
bb-10.5-sysprg-MDEV-22554
bb-10.5-thiru
bb-10.5-tmp
bb-10.5-trigger
bb-10.5-upto
bb-10.5-varun
bb-10.5-vicentiu
bb-10.5-vicentiu-buildbot
bb-10.5-vicentiu-buildbot2
bb-10.5-vicentiu-intel-warnings
bb-10.5-vicentiu2
bb-10.5-voting
bb-10.5-wlad
bb-10.5-wlad-15053
bb-10.5-wlad-MDEV-21612
bb-10.5-wlad-constexpr
bb-10.5-wlad-schannel-openssl
bb-10.5-wlad-tpwin
bb-10.5-xa-prepare
bb-10.5-xpand
bb-10.5-ycp
bb-10.5-ycp-mdev-26345
bb-10.5-ycp-mdev-26345-1
bb-10.5-ycp-mdev-28413
bb-10.5-ycp-mdev-29502
bb-10.5-ycp-mdev-34849
bb-10.5-ycp-mdev-35874
bb-10.5-ycp-spider
bb-10.5.19-undo_truncate
bb-10.5.21-undo_truncate
bb-10.6-MDEV-10962-deadlock-deletes
bb-10.6-MDEV-15120_2
bb-10.6-MDEV-16437
bb-10.6-MDEV-16708-2
bb-10.6-MDEV-16708-3
bb-10.6-MDEV-16976
bb-10.6-MDEV-16983-period-fk
bb-10.6-MDEV-17843-lock_rec_queue_validate
bb-10.6-MDEV-18976
bb-10.6-MDEV-19177
bb-10.6-MDEV-20100
bb-10.6-MDEV-20154
bb-10.6-MDEV-20453
bb-10.6-MDEV-20552-remove-innobackupex
bb-10.6-MDEV-21192-galera
bb-10.6-MDEV-21423
bb-10.6-MDEV-21452
bb-10.6-MDEV-21469-rebase
bb-10.6-MDEV-21530
bb-10.6-MDEV-22063-galera
bb-10.6-MDEV-22232-galera
bb-10.6-MDEV-22265
bb-10.6-MDEV-22718
bb-10.6-MDEV-23238
bb-10.6-MDEV-23536
bb-10.6-MDEV-24062-galera
bb-10.6-MDEV-24142-2
bb-10.6-MDEV-24258
bb-10.6-MDEV-24269-galera
bb-10.6-MDEV-24341
bb-10.6-MDEV-24424
bb-10.6-MDEV-24509
bb-10.6-MDEV-24786
bb-10.6-MDEV-24818
bb-10.6-MDEV-24845-galera
bb-10.6-MDEV-24853
bb-10.6-MDEV-24882-galera
bb-10.6-MDEV-24946
bb-10.6-MDEV-25029
bb-10.6-MDEV-25089-galera
bb-10.6-MDEV-25099
bb-10.6-MDEV-25114
bb-10.6-MDEV-25488
bb-10.6-MDEV-25491
bb-10.6-MDEV-25506_FTS
bb-10.6-MDEV-25543
bb-10.6-MDEV-25611
bb-10.6-MDEV-25633
bb-10.6-MDEV-25683
bb-10.6-MDEV-25698-galera
bb-10.6-MDEV-25731-galera
bb-10.6-MDEV-25822
bb-10.6-MDEV-25906
bb-10.6-MDEV-25948-MDEV-25611
bb-10.6-MDEV-25973
bb-10.6-MDEV-26015
bb-10.6-MDEV-26049
bb-10.6-MDEV-26115
bb-10.6-MDEV-26142
bb-10.6-MDEV-26145
bb-10.6-MDEV-26149
bb-10.6-MDEV-26171-post-merge
bb-10.6-MDEV-26206-impl-gap-1
bb-10.6-MDEV-26209
bb-10.6-MDEV-26450
bb-10.6-MDEV-26782
bb-10.6-MDEV-27317-galera
bb-10.6-MDEV-27557-clust-mtr-savepoint
bb-10.6-MDEV-27736
bb-10.6-MDEV-27861-v2-galera
bb-10.6-MDEV-27862-galera
bb-10.6-MDEV-27871
bb-10.6-MDEV-27871-MDEV-31933
bb-10.6-MDEV-27983
bb-10.6-MDEV-28315
bb-10.6-MDEV-28422
bb-10.6-MDEV-28423-v2
bb-10.6-MDEV-28583
bb-10.6-MDEV-28621-delayed-elimination
bb-10.6-MDEV-28621-eliminate-in-optimization
bb-10.6-MDEV-28621-no-elimination
bb-10.6-MDEV-28621-v3-eliminate-carefully
bb-10.6-MDEV-28709-post-push-fix
bb-10.6-MDEV-28709-sup_X_lock-skip_gap_lock_inheritance_n_recs
bb-10.6-MDEV-28800
bb-10.6-MDEV-28953-galera
bb-10.6-MDEV-28968-galera
bb-10.6-MDEV-29050-prepare-export-err
bb-10.6-MDEV-29181
bb-10.6-MDEV-29293-galera
bb-10.6-MDEV-29336
bb-10.6-MDEV-29433-lock_delete_updated
bb-10.6-MDEV-29440
bb-10.6-MDEV-29593
bb-10.6-MDEV-29775-galera
bb-10.6-MDEV-29775-v2-galera
bb-10.6-MDEV-29849
bb-10.6-MDEV-29880-galera
bb-10.6-MDEV-30000
bb-10.6-MDEV-30086
bb-10.6-MDEV-30100-MDEV-25340
bb-10.6-MDEV-30133
bb-10.6-MDEV-30182
bb-10.6-MDEV-30260-mergefix
bb-10.6-MDEV-30289
bb-10.6-MDEV-30456-galera
bb-10.6-MDEV-30536-galera
bb-10.6-MDEV-30658-lock_row_lock_current_waits
bb-10.6-MDEV-30775-try_to_close
bb-10.6-MDEV-30802
bb-10.6-MDEV-30822-galera
bb-10.6-MDEV-30936
bb-10.6-MDEV-30996
bb-10.6-MDEV-30996_fts
bb-10.6-MDEV-31080
bb-10.6-MDEV-31380
bb-10.6-MDEV-31382
bb-10.6-MDEV-31449
bb-10.6-MDEV-31496
bb-10.6-MDEV-31826
bb-10.6-MDEV-31877
bb-10.6-MDEV-31888-galera
bb-10.6-MDEV-31905-galera
bb-10.6-MDEV-31949
bb-10.6-MDEV-31949-21469
bb-10.6-MDEV-31949_ver0
bb-10.6-MDEV-31949_ver0_opt
bb-10.6-MDEV-31983
bb-10.6-MDEV-31983-v2
bb-10.6-MDEV-31983-v3
bb-10.6-MDEV-32067
bb-10.6-MDEV-32080
bb-10.6-MDEV-32096-pkgtest
bb-10.6-MDEV-32253
bb-10.6-MDEV-32265
bb-10.6-MDEV-32297
bb-10.6-MDEV-32523
bb-10.6-MDEV-32549-galera
bb-10.6-MDEV-32554
bb-10.6-MDEV-32628-mergefix
bb-10.6-MDEV-32633-galera
bb-10.6-MDEV-32635-galera
bb-10.6-MDEV-32682
bb-10.6-MDEV-32738-galera
bb-10.6-MDEV-32788
bb-10.6-MDEV-32830-qa
bb-10.6-MDEV-32898-pkgtest
bb-10.6-MDEV-33036-galera
bb-10.6-MDEV-33136-galera
bb-10.6-MDEV-33138-galera
bb-10.6-MDEV-33189
bb-10.6-MDEV-33216-galera
bb-10.6-MDEV-33314
bb-10.6-MDEV-33509-galera
bb-10.6-MDEV-33802-unique-cursor-restore
bb-10.6-MDEV-33828-galera
bb-10.6-MDEV-33850-galera
bb-10.6-MDEV-33896-galera
bb-10.6-MDEV-33897-galera
bb-10.6-MDEV-33952-galera
bb-10.6-MDEV-33997-galera
bb-10.6-MDEV-34090
bb-10.6-MDEV-34122-fixup
bb-10.6-MDEV-34190-tmp
bb-10.6-MDEV-34218-galera
bb-10.6-MDEV-34348-merge-fix
bb-10.6-MDEV-34481
bb-10.6-MDEV-34647-galera
bb-10.6-MDEV-34822-galera
bb-10.6-MDEV-34924-galera
bb-10.6-MDEV-34958
bb-10.6-MDEV-35018-v3-galera
bb-10.6-MDEV-35207
bb-10.6-MDEV-35288
bb-10.6-MDEV-35506
bb-10.6-MDEV-35511
bb-10.6-MDEV-35570
bb-10.6-MDEV-35748-galera
bb-10.6-MDEV-35828
bb-10.6-MDEV-35944
bb-10.6-MDEV-36107
bb-10.6-MDEV-36117-galera
bb-10.6-MDEV-36234-pkgtest
bb-10.6-MDEV-36290-monty
bb-10.6-MDEV-36512-galera
bb-10.6-MDEV-36620-galera
bb-10.6-MDEV-36622-galera
bb-10.6-MDEV-36875
bb-10.6-MDEV-37527
bb-10.6-MDEV-37911
bb-10.6-MDEV-37950
bb-10.6-MDEV-38236
bb-10.6-MDEV-515
bb-10.6-MDEV-6536-addendum
bb-10.6-add-columnstore-mtr
bb-10.6-add-columnstore-mtr-pkgtest
bb-10.6-alice
bb-10.6-all-builders
bb-10.6-andrei
bb-10.6-andrei-MDEV-24660
bb-10.6-anel-rpl_fix_assertion
bb-10.6-avoid-abortive-socket-close
bb-10.6-bar
bb-10.6-bar-MDEV-28001
bb-10.6-bar-MDEV-30111
bb-10.6-bar-MDEV-33472
bb-10.6-bar-MDEV-33648
bb-10.6-bar-MDEV-34189
bb-10.6-bar-assign
bb-10.6-bumpversion
bb-10.6-cache-metadata
bb-10.6-choose_next_log
bb-10.6-cs
bb-10.6-danielblack-MDEV-14096-deprecate-year-parentheses
bb-10.6-danielblack-MDEV-25152
bb-10.6-danielblack-MDEV-25282-Auto-shutdown-on-idle-when-socket-activated
bb-10.6-danielblack-MDEV-25424-my_multi_malloc-large-use-my_large_malloc
bb-10.6-danielblack-MDEV-27955-postfix-func_json_notembedded
bb-10.6-danielblack-MDEV-28011-deb-autobake
bb-10.6-danielblack-MDEV-28153-deb-autobake
bb-10.6-danielblack-MDEV-28534-clang-12-innodb
bb-10.6-danielblack-MDEV-28782-tzinfo-works-in-bootstrap
bb-10.6-danielblack-MDEV-29141-rseg_ext_p2
bb-10.6-danielblack-MDEV-29678-uninit
bb-10.6-drrtuy
bb-10.6-elenst
bb-10.6-fake-select-number
bb-10.6-galera
bb-10.6-galera-jan
bb-10.6-georg
bb-10.6-hf
bb-10.6-hf-2
bb-10.6-ibuf
bb-10.6-igor
bb-10.6-iouring_required-memlock
bb-10.6-julius
bb-10.6-julius-galera
bb-10.6-knielsen
bb-10.6-mac
bb-10.6-marko
bb-10.6-master-timestamp
bb-10.6-mdev-26127
bb-10.6-mdev-26178
bb-10.6-mdev-26247
bb-10.6-mdev-26541
bb-10.6-mdev-27087-rucha
bb-10.6-mdev-27103-demo-ddl
bb-10.6-mdev-27438
bb-10.6-mdev-27912
bb-10.6-mdev-28739
bb-10.6-mdev-29027
bb-10.6-mdev-29447
bb-10.6-mdev-29447-31338
bb-10.6-mdev-29502
bb-10.6-mdev-29644
bb-10.6-mdev-29870
bb-10.6-mdev-30264
bb-10.6-mdev-30435-30981
bb-10.6-mdev-30436
bb-10.6-mdev-31117
bb-10.6-mdev-31400
bb-10.6-mdev-31421
bb-10.6-mdev-31516
bb-10.6-mdev-31524
bb-10.6-mdev-31524-post-merge-fix
bb-10.6-mdev-31577-test
bb-10.6-mdev-31721
bb-10.6-mdev-31787
bb-10.6-mdev-31788
bb-10.6-mdev-32157
bb-10.6-mdev-32524
bb-10.6-mdev-32907
bb-10.6-mdev-33191
bb-10.6-mdev-33242-gold
bb-10.6-mdev-33434
bb-10.6-mdev-33441
bb-10.6-mdev-34588
bb-10.6-mdev-34636
bb-10.6-mdev-34682
bb-10.6-mdev-34813
bb-10.6-mdev-35153-debug
bb-10.6-mdev-35249-revert
bb-10.6-mdev-35422
bb-10.6-mdev-35591-hf
bb-10.6-mdev-35713-hf
bb-10.6-mdev-35959
bb-10.6-mdev-36058-hf
bb-10.6-mdev-36221
bb-10.6-mdev-36678
bb-10.6-mdev-37166-hf
bb-10.6-mdev-37193
bb-10.6-mdev-37682
bb-10.6-mdev-37972
bb-10.6-mdev-7093
bb-10.6-mdev21829
bb-10.6-mdev24325
bb-10.6-mdev24740
bb-10.6-mdev25075
bb-10.6-mdev25154
bb-10.6-mdev25362
bb-10.6-mdev25631
bb-10.6-mdev28749
bb-10.6-mdev30081-variant2
bb-10.6-mdev31067
bb-10.6-mdev31067-variant2
bb-10.6-mdev31067-variant3
bb-10.6-mdev32113
bb-10.6-mdev32113-variant1
bb-10.6-mdev32203
bb-10.6-mdev33752
bb-10.6-mdev33752-v2
bb-10.6-mdev34125-which-platforms
bb-10.6-mdev34720
bb-10.6-mdev34720-v2
bb-10.6-mdev34720-v3
bb-10.6-mdev36948-infer1
bb-10.6-mdev7317
bb-10.6-ment2045
bb-10.6-merge
bb-10.6-merge-galera
bb-10.6-merge-jan
bb-10.6-merge-julius
bb-10.6-midenok
bb-10.6-midenok-MDEV-10962
bb-10.6-midenok-MDEV-12483
bb-10.6-midenok-MDEV-12483-partitioning
bb-10.6-midenok-MDEV-16417-atomic
bb-10.6-midenok-MDEV-16686
bb-10.6-midenok-MDEV-18706
bb-10.6-midenok-MDEV-21053
bb-10.6-midenok-MDEV-21652
bb-10.6-midenok-MDEV-23639
bb-10.6-midenok-review
bb-10.6-midenok-review2
bb-10.6-midenok-tmp
bb-10.6-monty
bb-10.6-monty-xa
bb-10.6-monty2
bb-10.6-no-capabilities-pkgtest
bb-10.6-online-alter
bb-10.6-ramesh
bb-10.6-refactor-limit
bb-10.6-refactor-limit-review
bb-10.6-release
bb-10.6-release-julius
bb-10.6-release-mdev30218
bb-10.6-release-wlad
bb-10.6-remove-m_text_literal
bb-10.6-robert
bb-10.6-rucha
bb-10.6-sachin
bb-10.6-serg
bb-10.6-spetrunia
bb-10.6-spetrunia-tmp1
bb-10.6-spetrunia-tmp2
bb-10.6-spetrunia-tmp3
bb-10.6-sqlser-hf
bb-10.6-sst-galera
bb-10.6-sujatha
bb-10.6-sysschema
bb-10.6-thiru
bb-10.6-tmp
bb-10.6-todo-4509
bb-10.6-todo4799
bb-10.6-varun
bb-10.6-vicentiu-MDEV-17796-check
bb-10.6-vicentiu-uniques
bb-10.6-vicentiu-wip
bb-10.6-wlad-MDEV-22010
bb-10.6-wlad-MDEV-23959
bb-10.6-wlad-lto
bb-10.6-ycp
bb-10.6-ycp-fixup
bb-10.6-ycp-push
bb-10.6-ycp-spider
bb-10.6.11-pkgtest-MDEV-31185-pins
bb-10.6.12-DBS
bb-10.6.12-MDEV-30165
bb-10.6.18-TODO-4984
bb-10.6.8-MDEV-27701
bb-10.6.9-hash-join-improvements
bb-10.6_MDEV-18959
bb-10.6_MDEV-21117
bb-10.7-MDEV-18543-instant-import-bugs
bb-10.7-MDEV-22165
bb-10.7-MDEV-22441-scoped-variable
bb-10.7-MDEV-23766
bb-10.7-MDEV-24623
bb-10.7-MDEV-26238
bb-10.7-MDEV-26391-galera
bb-10.7-MDEV-26843
bb-10.7-MDEV-27575
bb-10.7-MDEV-27892
bb-10.7-MDEV-4742
bb-10.7-MDEV-4958-uuid
bb-10.7-TODO-3121
bb-10.7-danielblack-MDEV-26157-openmp-statistics-fork
bb-10.7-danielblack-mdev-12933-fixup
bb-10.7-elenst
bb-10.7-galera
bb-10.7-hf-mdev-19275
bb-10.7-hs
bb-10.7-igor
bb-10.7-kevgs
bb-10.7-mdev-26285
bb-10.7-mdev-26288
bb-10.7-mdev-27159
bb-10.7-mdev-27159-hf
bb-10.7-mdev-27159-insert-hf
bb-10.7-mdev-27831-hf
bb-10.7-mdev-7487
bb-10.7-mdev21130
bb-10.7-mdev23143
bb-10.7-mdev26519
bb-10.7-mdev27188
bb-10.7-mdev29677
bb-10.7-midenok
bb-10.7-midenok-MDEV-22166
bb-10.7-midenok-MDEV-22166-tmp
bb-10.7-midenok-MDEV-27180
bb-10.7-monty
bb-10.7-nayuta
bb-10.7-repl_tests
bb-10.7-robert
bb-10.7-selectivity
bb-10.7-serg
bb-10.7-sujatha
bb-10.7-upgrade-version
bb-10.7-vicentiu
bb-10.7-vicentiu-MDEV-26242
bb-10.8-C++-14
bb-10.8-C++-14-TODO-3121
bb-10.8-MCOL-4944
bb-10.8-MDEV-13915-mergefix
bb-10.8-MDEV-14425-flush_order_mutex
bb-10.8-MDEV-14481-async-recv
bb-10.8-MDEV-18477
bb-10.8-MDEV-19129
bb-10.8-MDEV-19308
bb-10.8-MDEV-22441-scoped-variable
bb-10.8-MDEV-25342-autosize-innodb-buffer-pool-chunk-size
bb-10.8-MDEV-25719
bb-10.8-MDEV-26238-my-print-defaults
bb-10.8-MDEV-26938
bb-10.8-MDEV-26971
bb-10.8-MDEV-27009-uca-1400
bb-10.8-MDEV-27036
bb-10.8-MDEV-27158-humanize-numbers-innodb
bb-10.8-MDEV-27204
bb-10.8-MDEV-27206
bb-10.8-MDEV-27208-crc32c
bb-10.8-MDEV-27233
bb-10.8-MDEV-27266-MDEV-27265-uca-performance
bb-10.8-MDEV-27849
bb-10.8-MDEV-29043
bb-10.8-MDEV-29934
bb-10.8-MDEV-5816
bb-10.8-MENT-662-tmp
bb-10.8-TODO-3121
bb-10.8-andrei
bb-10.8-bumpversion
bb-10.8-danielblack-MDEV-25282-Auto-shutdown-on-idle-when-socket-activated
bb-10.8-elenst
bb-10.8-georg
bb-10.8-igor
bb-10.8-mcs_lock
bb-10.8-mdev-27106
bb-10.8-mdev-27912
bb-10.8-mdev-29447
bb-10.8-mdev-30370-compare-tests
bb-10.8-mdev-5271
bb-10.8-mdev26996-no-sel-arg-ascending
bb-10.8-mdev27021
bb-10.8-midenok
bb-10.8-monty
bb-10.8-online-alter
bb-10.8-openssl3.0
bb-10.8-robert
bb-10.8-serg
bb-10.8-spetrunia
bb-10.8-vicentiu-mariadbd.pc
bb-10.8-wlad-MDEV-33387
bb-10.9-MDEV-13915-mergefix
bb-10.9-MDEV-17554-auto-create-partition
bb-10.9-MDEV-19281
bb-10.9-MDEV-19281-v2
bb-10.9-MDEV-19281-v3
bb-10.9-MDEV-19281-v4
bb-10.9-MDEV-19281-v5
bb-10.9-MDEV-21423-MDEV-26603
bb-10.9-MDEV-24560
bb-10.9-MDEV-26278
bb-10.9-MDEV-26562-galera
bb-10.9-MDEV-26603-async-redo-write
bb-10.9-MDEV-26971-JSON-status
bb-10.9-MDEV-26971-JSON-status-v2
bb-10.9-MDEV-27021-MDEV-10000-MDEV-27776
bb-10.9-MDEV-27021-MDEV-10000-show-analyze
bb-10.9-MDEV-27246-galera-allowlist
bb-10.9-MDEV-27657
bb-10.9-MDEV-27659
bb-10.9-MDEV-27699
bb-10.9-MDEV-27844
bb-10.9-MDEV-28015-galera
bb-10.9-MDEV-28275
bb-10.9-MDEV-28313-21423-26603
bb-10.9-MDEV-28423-galera
bb-10.9-MDEV-28423-v2
bb-10.9-MDEV-28583
bb-10.9-MDEV-28656-galera
bb-10.9-MDEV-29381
bb-10.9-MDEV-30100
bb-10.9-MDEV-30619-merge
bb-10.9-MDEV-31432
bb-10.9-MDEV-31432-v2
bb-10.9-MDEV-32008
bb-10.9-MDEV-5816-1
bb-10.9-all-builders
bb-10.9-anel-repl-slave_report-v2
bb-10.9-anel-rpl_fix_assert
bb-10.9-danielblack-MDEV-27791-test-postfix
bb-10.9-danielblack-MDEV-27791-test-postfix_2
bb-10.9-danielblack-deb-limited-columnstore-platforms
bb-10.9-danielblack-deb-pkg-fix-pr2112
bb-10.9-deb-autobake-no-lsb_release
bb-10.9-elenst
bb-10.9-georg
bb-10.9-mcs
bb-10.9-mdbf-535-test
bb-10.9-mdev-22979-27095-27233
bb-10.9-mdev-22979-27095-27233-query-ready
bb-10.9-mdev-22979-31400
bb-10.9-mdev-22979-31400-force-ci
bb-10.9-mdev-22979-mysql-func-udf
bb-10.9-mdev-27159
bb-10.9-mdev-27912
bb-10.9-mdev-29447
bb-10.9-mdev-29447-31338
bb-10.9-mdev-29644
bb-10.9-mdev-29644-post-merge-fix
bb-10.9-mdev-31400
bb-10.9-mdev-31401-demo-udf-initialized
bb-10.9-mdev-31421
bb-10.9-mdev-31524
bb-10.9-mdev29382
bb-10.9-midenok
bb-10.9-midenok-MDEV-28931
bb-10.9-midenok-tmp
bb-10.9-post-MDEV-26971
bb-10.9-spetrunia
bb-10.9-sysprg-hashicorp-stats
bb-10.9-vicentiu-reverse-privileges
bb-10.9-ycp-spider
bb-11-5-monty
bb-11-midenok
bb-11.0
bb-11.0-MDEV-16329-online-alter
bb-11.0-MDEV-27871
bb-11.0-MDEV-27871-MDEV-31933
bb-11.0-MDEV-29985
bb-11.0-MDEV-30032
bb-11.0-MDEV-30059
bb-11.0-MDEV-30205-pkgtest-usr-share-mariadb
bb-11.0-MDEV-30318
bb-11.0-MDEV-30318-v2
bb-11.0-MDEV-30944
bb-11.0-MDEV-31022
bb-11.0-MDEV-31022-variant2
bb-11.0-MDEV-31022-variant3
bb-11.0-MDEV-31022-variant4
bb-11.0-MDEV-31793
bb-11.0-MDEV-31793-fix-loosescan-derived
bb-11.0-MDEV-32335
bb-11.0-MDEV-32628-mergefix
bb-11.0-MDEV-33648
bb-11.0-MDEV-5816
bb-11.0-MDEV-8320
bb-11.0-all-builders
bb-11.0-analyze-fixes
bb-11.0-bar-MDEV-15750
bb-11.0-before-feb
bb-11.0-bumpversion
bb-11.0-danielblack-MDEV-30203-pkgtest-symlink-packages
bb-11.0-danielblack-MDEV-30203-pkgtest-symlink-packages-salsa
bb-11.0-danielblack-preview-MDEV-30203-MDEV-30574-MDEV-30571-fix-pkgtest
bb-11.0-danielblack-preview-MDEV-30203-fix
bb-11.0-danielblack-preview-MDEV-30203-fix-pkgtest
bb-11.0-danielblack-preview-MDEV-30203-pkgtest
bb-11.0-danielblack-rpm-fix
bb-11.0-galera-split-wsrep-provider-options
bb-11.0-igor
bb-11.0-jan23-rebase
bb-11.0-jan23-rebase-try2
bb-11.0-jan23-rebase-try3
bb-11.0-mdbf-535-do-not-merge
bb-11.0-mdev-22979
bb-11.0-mdev-22979-bootstrap-test-demo
bb-11.0-mdev-22979-create-handler-no-wait
bb-11.0-mdev-22979-init-query-in-spider-db-init
bb-11.0-mdev-22979-init-spider-last
bb-11.0-mdev-22979-init-spider-last-poc
bb-11.0-mdev-22979-old
bb-11.0-mdev-25292-ycp-spider-maint
bb-11.0-mdev-26137
bb-11.0-mdev-26137-unsquashed
bb-11.0-mdev-26137-wip-alter-import
bb-11.0-mdev-26137-wip-cfg-clone
bb-11.0-mdev-26137-wip-minimal-create-table
bb-11.0-mdev-26247
bb-11.0-mdev-26345
bb-11.0-mdev-27902
bb-11.0-mdev-27912
bb-11.0-mdev-28152
bb-11.0-mdev-28152-alter-value-type
bb-11.0-mdev-28152-longlong-hybrid-class-fields
bb-11.0-mdev-28152-round-2
bb-11.0-mdev-28152-squashed
bb-11.0-mdev-28526
bb-11.0-mdev-28739
bb-11.0-mdev-28992
bb-11.0-mdev-29002
bb-11.0-mdev-29269
bb-11.0-mdev-29363
bb-11.0-mdev-29363-adjust-extraction-flag
bb-11.0-mdev-29363-no-propagate-with-subquery
bb-11.0-mdev-29363-with-subquery-processor
bb-11.0-mdev-29447-31338
bb-11.0-mdev-29502
bb-11.0-mdev-29502-revert-20502
bb-11.0-mdev-29663
bb-11.0-mdev-29676
bb-11.0-mdev-29676-on-mdev-25292
bb-11.0-mdev-29718
bb-11.0-mdev-29962
bb-11.0-mdev-29962-funlck-demo
bb-11.0-mdev-30014
bb-11.0-mdev-30170
bb-11.0-mdev-30265
bb-11.0-mdev-31117
bb-11.0-mdev-31400
bb-11.0-mdev-31421
bb-11.0-mdev-31524
bb-11.0-mdev-31524-failure-why
bb-11.0-mdev-31586
bb-11.0-mdev-31787
bb-11.0-mdev-31996
bb-11.0-mdev-32238
bb-11.0-mdev-32524
bb-11.0-mdev-32524-wrong
bb-11.0-mdev-32609
bb-11.0-mdev-32804
bb-11.0-mdev-32901
bb-11.0-mdev-32901-v2
bb-11.0-mdev-33742
bb-11.0-mdev30310-updated
bb-11.0-mdev30596
bb-11.0-mdev30693
bb-11.0-mdev30956
bb-11.0-mdev31223
bb-11.0-merge-spider-fixup
bb-11.0-midenok
bb-11.0-midenok-MDEV-20865
bb-11.0-midenok-MDEV-25292
bb-11.0-midenok-MDEV-27180
bb-11.0-midenok-MDEV-30421
bb-11.0-midenok-mydumper
bb-11.0-monty
bb-11.0-oalter
bb-11.0-release-mdev30143
bb-11.0-serg
bb-11.0-spetrunia-tmp
bb-11.0-sysschema-optimizer_switch
bb-11.0-tmp
bb-11.0-ycp
bb-11.0-ycp-mdev-26151
bb-11.0-ycp-mdev-26151-exp
bb-11.0-ycp-mdev-26151-hypothesis
bb-11.0-ycp-mdev-26247
bb-11.0-ycp-mdev-26247-disable-gbh
bb-11.0-ycp-mdev-26247-first-table-holder-spider
bb-11.0-ycp-mdev-26247-optimized-away-const-table
bb-11.0-ycp-mdev-26247-remove-spdgbh-const-table-handling
bb-11.0-ycp-mdev-26247-spider-fields-wrong-spider
bb-11.0-ycp-mdev-26247-unsquashed
bb-11.0-ycp-mdev-28998
bb-11.0-ycp-mdev-29502
bb-11.0-ycp-mdev-29963
bb-11.0-ycp-mdev-30014
bb-11.0-ycp-mdev-31586
bb-11.0-ycp-mdev-31996
bb-11.0-ycp-spider
bb-11.0-ycp-spider-mdev-29502
bb-11.0-ycp-spider-mdev-31117
bb-11.0-ycp-spider-mdev-31524
bb-11.1-MDEV-16329-online-alter
bb-11.1-MDEV-26137
bb-11.1-MDEV-27871-MDEV-31933
bb-11.1-MDEV-29911
bb-11.1-MDEV-31005
bb-11.1-MDEV-31599
bb-11.1-MDEV-33533
bb-11.1-MDEV-33533-v2
bb-11.1-MDEV-34649
bb-11.1-all-builders
bb-11.1-bar
bb-11.1-bumpversion
bb-11.1-columnstore
bb-11.1-danielblack-MDEV-25282-Auto-shutdown-on-idle-when-socket-activated-pkgtest
bb-11.1-handle-instant-metadata
bb-11.1-igor
bb-11.1-mdev-22534
bb-11.1-mdev-22534-cleanup
bb-11.1-mdev-22534-cleanup2
bb-11.1-mdev-22534-poc
bb-11.1-mdev-22534-unsquashed-2
bb-11.1-mdev-22979-31400
bb-11.1-mdev-25008
bb-11.1-mdev-25080
bb-11.1-mdev-26137
bb-11.1-mdev-26137-round-9
bb-11.1-mdev-26137-squashed
bb-11.1-mdev-26137-unsquashed
bb-11.1-mdev-26178
bb-11.1-mdev-27201
bb-11.1-mdev-27419
bb-11.1-mdev-27912
bb-11.1-mdev-28363
bb-11.1-mdev-28522
bb-11.1-mdev-29447-31338
bb-11.1-mdev-29502
bb-11.1-mdev-29630
bb-11.1-mdev-29676
bb-11.1-mdev-30435-30981
bb-11.1-mdev-30920
bb-11.1-mdev-31117
bb-11.1-mdev-31400
bb-11.1-mdev-31421
bb-11.1-mdev-31586
bb-11.1-mdev-31788
bb-11.1-mdev-31902
bb-11.1-mdev-32157
bb-11.1-mdev-32238
bb-11.1-mdev-34002
bb-11.1-mdev-34757
bb-11.1-midenok
bb-11.1-monty
bb-11.1-release-fix-debian-columnstore-pkgtest
bb-11.1-remove-save-prep-leaf-tables
bb-11.1-serg
bb-11.1-ycp
bb-11.1-ycp-mdev-22534
bb-11.1-ycp-spider
bb-11.1-ycp-spider-maint
bb-11.2-MDEV-27871
bb-11.2-MDEV-30100
bb-11.2-MDEV-30145
bb-11.2-MDEV-30822-galera
bb-11.2-MDEV-30822-v2-galera
bb-11.2-MDEV-31005
bb-11.2-MDEV-31411
bb-11.2-MDEV-31431
bb-11.2-MDEV-31799
bb-11.2-MDEV-32123
bb-11.2-MDEV-32628-mergefix
bb-11.2-MDEV-33525
bb-11.2-MDEV-33921-mergefix
bb-11.2-MDEV-35072
bb-11.2-MDEV-5816
bb-11.2-bar
bb-11.2-bar-MDEV-33182
bb-11.2-bumpversion
bb-11.2-columnstore
bb-11.2-getcpu-counter
bb-11.2-growt
bb-11.2-innodb-preview
bb-11.2-mdev-22168-hf
bb-11.2-mdev-22534
bb-11.2-mdev-22534-demo-exists2in-loop
bb-11.2-mdev-22534-item-ref-propagate
bb-11.2-mdev-22534-item-ref-propagate-review-fixes
bb-11.2-mdev-22534-item-ref-propagate-unsquashed
bb-11.2-mdev-22534-unpatched-equal-fields
bb-11.2-mdev-22534-unsquashed
bb-11.2-mdev-26137-fix-import-recovery
bb-11.2-mdev-28856
bb-11.2-mdev-28856-static-fallback
bb-11.2-mdev-29502
bb-11.2-mdev-31117
bb-11.2-mdev-31400
bb-11.2-mdev-31524
bb-11.2-mdev-31586
bb-11.2-mdev-31788
bb-11.2-mdev-31788-merge-practice-run
bb-11.2-mdev-32046
bb-11.2-mdev-32157
bb-11.2-mdev-34659
bb-11.2-mdev-35073
bb-11.2-merge
bb-11.2-midenok-MDEV-25495
bb-11.2-midenok-MDEV-27180
bb-11.2-midenok-MDEV-4991
bb-11.2-oalter
bb-11.2-oalter-MDEV-31185
bb-11.2-opentables
bb-11.2-serg
bb-11.2-spetrunia-merge
bb-11.2-thiru
bb-11.2-vicentiu
bb-11.2-ycp
bb-11.2-ycp-mdev-15935
bb-11.2-ycp-mdev-28856
bb-11.2-ycp-mdev-28856-sysvar-option-same
bb-11.3-MDEV-25870
bb-11.3-MDEV-27247-restrict-domains
bb-11.3-MDEV-29167
bb-11.3-MDEV-30953-mariadb-server-galera-pkgtest
bb-11.3-MDEV-31496-sargable-casefold
bb-11.3-MDEV-31496-sargable-casefold-v2
bb-11.3-MDEV-31684
bb-11.3-MDEV-32184
bb-11.3-all-builders
bb-11.3-bar-MDEV-12252
bb-11.3-bar-MDEV-20034
bb-11.3-bar-MDEV-31431
bb-11.3-bar-MDEV-32148
bb-11.3-bumpversion
bb-11.3-elenst
bb-11.3-georg
bb-11.3-mdev-15935
bb-11.3-mdev-22534
bb-11.3-mdev-22534-item-ref-no-direct
bb-11.3-mdev-22534-ps-fix2
bb-11.3-mdev-27576
bb-11.3-mdev-28856
bb-11.3-mdev-28856-and-fixes
bb-11.3-mdev-28856-delete-all-rows
bb-11.3-mdev-31996
bb-11.3-mdev-32234
bb-11.3-mdev-32254
bb-11.3-mdev-32486
bb-11.3-mdev-32568
bb-11.3-mdev-32640
bb-11.3-mdev-32640-commented-global
bb-11.3-mdev19177-hf
bb-11.3-merge
bb-11.3-mini-MDEV-31431
bb-11.3-monty
bb-11.3-release-ycp-fix
bb-11.3-serg
bb-11.3-timestamp
bb-11.3-vicentiu
bb-11.3-ycp-mdev-15935
bb-11.3-ycp-mdev-28856
bb-11.4-MCOL-6069
bb-11.4-MDEV-18478
bb-11.4-MDEV-18478-v2
bb-11.4-MDEV-18478-v3
bb-11.4-MDEV-18478-v4
bb-11.4-MDEV-18478-v4-MDEV-12404
bb-11.4-MDEV-27871-MDEV-31933
bb-11.4-MDEV-29981-merge
bb-11.4-MDEV-30073-8.3
bb-11.4-MDEV-30260-mergefix
bb-11.4-MDEV-30366-bulk-results
bb-11.4-MDEV-30366-bulk-results-2
bb-11.4-MDEV-30469
bb-11.4-MDEV-30469-goose
bb-11.4-MDEV-30877-v3
bb-11.4-MDEV-31404
bb-11.4-MDEV-31855-ssl
bb-11.4-MDEV-31933
bb-11.4-MDEV-32216-parallel-mysqldump
bb-11.4-MDEV-32575
bb-11.4-MDEV-32694
bb-11.4-MDEV-32841
bb-11.4-MDEV-33436
bb-11.4-MDEV-33500-v2-mergefix
bb-11.4-MDEV-33640
bb-11.4-MDEV-34122-mergefix
bb-11.4-MDEV-34200
bb-11.4-MDEV-34322
bb-11.4-MDEV-34348-merge-fix
bb-11.4-MDEV-34408-effcplusplus_warning_test
bb-11.4-MDEV-34649
bb-11.4-MDEV-34779
bb-11.4-MDEV-34877
bb-11.4-MDEV-35342
bb-11.4-MDEV-35694-merge
bb-11.4-MDEV-35958
bb-11.4-MDEV-35969-galera
bb-11.4-MDEV-36321-review-input
bb-11.4-MDEV-36389-review-input
bb-11.4-MDEV-36462
bb-11.4-MDEV-36663-mergefix
bb-11.4-MDEV-36809
bb-11.4-MDEV-36843-galera
bb-11.4-MDEV-36861
bb-11.4-MDEV-37143
bb-11.4-MDEV-37680-danblack-pkgtest
bb-11.4-MDEV-37723-try2
bb-11.4-MDEV-37864
bb-11.4-MDEV-7850
bb-11.4-MDEV-7850-galera-testfix
bb-11.4-add-columnstore-mtr-pkgtest
bb-11.4-all-builders
bb-11.4-andrei
bb-11.4-anel-MDEV-31404
bb-11.4-anel-check-bb
bb-11.4-bar
bb-11.4-bar-MDEV-12252
bb-11.4-bar-MDEV-20034
bb-11.4-bar-MDEV-20912
bb-11.4-bar-MDEV-25829
bb-11.4-bar-MDEV-31340
bb-11.4-bar-MDEV-31531
bb-11.4-bar-MDEV-32380
bb-11.4-bar-MDEV-33386
bb-11.4-bar-MDEV-33428
bb-11.4-bar-MDEV-33729
bb-11.4-bar-MDEV-34085
bb-11.4-bar-MDEV-35688
bb-11.4-bar-MDEV-36047
bb-11.4-bar-MDEV-36053
bb-11.4-bar-MDEV-36213
bb-11.4-bar-MDEV-36216
bb-11.4-bar-MDEV-36361
bb-11.4-bar-MDEV-36390
bb-11.4-bar-MDEV-36565
bb-11.4-bar-m35677
bb-11.4-bumpversion
bb-11.4-compatibility
bb-11.4-danblack-MCOL-5825-selinux-test-pkgtest
bb-11.4-elenst
bb-11.4-georg
bb-11.4-julius-galera
bb-11.4-knielsen
bb-11.4-mdev-15696
bb-11.4-mdev-27186
bb-11.4-mdev-27260
bb-11.4-mdev-27576-preview
bb-11.4-mdev-27998
bb-11.4-mdev-28105
bb-11.4-mdev-28152
bb-11.4-mdev-28861
bb-11.4-mdev-28861-old
bb-11.4-mdev-28861-warning-demo
bb-11.4-mdev-31788
bb-11.4-mdev-32627
bb-11.4-mdev-32627-empty-check-ci
bb-11.4-mdev-32627-empty-check-ci-2
bb-11.4-mdev-32640
bb-11.4-mdev-32856-preview
bb-11.4-mdev-32999
bb-11.4-mdev-33190-hf
bb-11.4-mdev-33608
bb-11.4-mdev-34272
bb-11.4-mdev-34272-options
bb-11.4-mdev-34272-socket-length
bb-11.4-mdev-35783-debug
bb-11.4-mdev-35840
bb-11.4-mdev-36323
bb-11.4-mdev-37193
bb-11.4-mdev-37484
bb-11.4-mdev-37484-spider-federatedx
bb-11.4-mdev-37810
bb-11.4-mdev-38164
bb-11.4-mdev12404-asserts
bb-11.4-merge
bb-11.4-midenok
bb-11.4-midenok-MDEV-16417
bb-11.4-midenok-MDEV-20865
bb-11.4-midenok-MDEV-30973
bb-11.4-monty
bb-11.4-nikita
bb-11.4-nikita-merge
bb-11.4-no-capabilities-pkgtest
bb-11.4-parallel-mysqldump
bb-11.4-pr2726-MDEV-19210-environment-file-pkgtest
bb-11.4-release
bb-11.4-release-julius
bb-11.4-serg
bb-11.4-sts-crd
bb-11.4-testMDEV-32441
bb-11.4-thiru
bb-11.4-timestamp
bb-11.4-timestamp-windows
bb-11.4-timofey1
bb-11.4-todo-5687
bb-11.4-vec
bb-11.4-vec-intel
bb-11.4-vec-vicentiu
bb-11.4-vec-vicentiu-hugo
bb-11.4-wlad
bb-11.4-wlad-MDEV-33474
bb-11.4-ycp-fix
bb-11.4-ycp-fixup
bb-11.4.3-mdev-34925
bb-11.4.6-histogram-getter
bb-11.5-MDEV-18478
bb-11.5-MDEV-31005
bb-11.5-MDEV-32854
bb-11.5-MDEV-33144-slow-query-log-always-write-time
bb-11.5-MDEV-33188-multithreaded-dump
bb-11.5-MDEV-33625
bb-11.5-MDEV-33677-galera
bb-11.5-MDEV-33988-delete-table-alias-pkgtest
bb-11.5-all-builders
bb-11.5-andrei
bb-11.5-bar
bb-11.5-bar-MDEV-11339
bb-11.5-bar-MDEV-12668
bb-11.5-bar-MDEV-19123
bb-11.5-bar-MDEV-20610
bb-11.5-bar-MDEV-25829
bb-11.5-bar-MDEV-30716
bb-11.5-bar-MDEV-31340
bb-11.5-bar-MDEV-31531
bb-11.5-bar-MDEV-33281
bb-11.5-bar-MDEV-33281-v2
bb-11.5-bar-MDEV-33621
bb-11.5-bar-MDEV-33696
bb-11.5-bar-MDEV-33827
bb-11.5-bar-MDEV-34025
bb-11.5-bar-preview
bb-11.5-bumpversion
bb-11.5-elenst
bb-11.5-hints
bb-11.5-hints-bar-parser-v2
bb-11.5-hints-bar-parser-v3
bb-11.5-mdev-22168
bb-11.5-mdev-28152
bb-11.5-mdev-30929-sleep
bb-11.5-mdev-30929-wait-and-die
bb-11.5-mdev-30929-wait-and-retry
bb-11.5-mdev-31609
bb-11.5-mdev-31789
bb-11.5-mdev-31789-gold
bb-11.5-mdev-33734
bb-11.5-mdev-33739
bb-11.5-mdev-33836
bb-11.5-mdev-34404
bb-11.5-mdev-34518
bb-11.5-mdev-34745-init-val
bb-11.5-mdev12404-extras
bb-11.5-midenok
bb-11.5-monty
bb-11.5-monty2
bb-11.5-opentables
bb-11.5-opentables-2
bb-11.5-opentables-further
bb-11.5-opentables-mysyshash
bb-11.5-opentables-testlab
bb-11.5-serg
bb-11.5-timestamp
bb-11.5-ycp-mtr-ubsan-overflow
bb-11.6-2-hf
bb-11.6-MDEV-12320
bb-11.6-MDEV-19191-fk_partitioning
bb-11.6-MDEV-27293-sysver
bb-11.6-MDEV-31809-galera
bb-11.6-MDEV-32618-auth-plugin
bb-11.6-MDEV-33697
bb-11.6-MDEV-33748
bb-11.6-MDEV-33748-2
bb-11.6-MDEV-33856-bnestere
bb-11.6-MDEV-33856-seconds_behind_master
bb-11.6-MDEV-34551
bb-11.6-MDEV-34649
bb-11.6-MDEV-34704
bb-11.6-all-builders
bb-11.6-bar
bb-11.6-bar-34817
bb-11.6-bar-MDEV-12252
bb-11.6-bar-MDEV-15751
bb-11.6-bar-MDEV-19123
bb-11.6-bar-MDEV-27277
bb-11.6-bar-MDEV-34829
bb-11.6-bar-MDEV-34922
bb-11.6-bar-MDEV-35041
bb-11.6-bumpversion
bb-11.6-fix-is-test
bb-11.6-hf
bb-11.6-hints-max-exec-time-v2
bb-11.6-hints-max-exec-time-v3
bb-11.6-hints-max-exec-time-v3-review
bb-11.6-hints-v2
bb-11.6-hints-v2-input
bb-11.6-hints-v2-input2
bb-11.6-mdev-15696
bb-11.6-mdev-22168-hf
bb-11.6-mdev-22168-test-hf
bb-11.6-mdev-25008
bb-11.6-mdev-28009
bb-11.6-mdev-32492-27902-29962
bb-11.6-mdev-34518
bb-11.6-mdev-34757
bb-11.6-mdev-35041
bb-11.6-mdev20250-hf
bb-11.6-midenok
bb-11.6-midenok-MDEV-16417
bb-11.6-monty
bb-11.6-parsec
bb-11.6-pkgtest
bb-11.6-release-spider-ptr-fix
bb-11.6-remove-save-prep-leaf-tables
bb-11.6-serg
bb-11.6-vicentiu
bb-11.6-vicentiu-wip
bb-11.6-wlad
bb-11.7-MDEV-15751-timestamp
bb-11.7-MDEV-19191-fk_partitioning
bb-11.7-MDEV-20153
bb-11.7-MDEV-27293-sysver
bb-11.7-MDEV-30908-session-user
bb-11.7-MDEV-31005-fix
bb-11.7-MDEV-31466
bb-11.7-MDEV-33144-slow-query-log-always-write-time
bb-11.7-MDEV-33710-uuid
bb-11.7-MDEV-33756
bb-11.7-MDEV-34930
bb-11.7-MDEV-35793
bb-11.7-MDEV-35939
bb-11.7-MDEV-36057
bb-11.7-MDEV-6017-variant3
bb-11.7-all-builders
bb-11.7-bar-MDEV-12252-sp-row
bb-11.7-bar-MDEV-34317-ora-record
bb-11.7-bar-MDEV-34817
bb-11.7-bar-MDEV-35229
bb-11.7-bar-MDEV-35250
bb-11.7-bnestere
bb-11.7-bumpversion
bb-11.7-check-table
bb-11.7-cset-narrowing-on
bb-11.7-knielsen
bb-11.7-mdev-15696
bb-11.7-mdev-15696-before-squash
bb-11.7-mdev-24813-debug
bb-11.7-mdev-25008
bb-11.7-mdev-28009
bb-11.7-mdev-30576
bb-11.7-mdev-34120-gis-functions
bb-11.7-mdev-34872
bb-11.7-mdev-34915
bb-11.7-mdev-34915-old-format
bb-11.7-mdev-35318
bb-11.7-mdev-35318-just-reprepare
bb-11.7-mdev-35318-own-reprepare-system
bb-11.7-mdev-35557
bb-11.7-mdev-35662
bb-11.7-mdev-36080
bb-11.7-merge
bb-11.7-parsec
bb-11.7-serg
bb-11.7-spetrunia-tmp
bb-11.7-wlad
bb-11.7-xaxa
bb-11.7-xaxaxa
bb-11.7.release
bb-11.8-MDEV-10164
bb-11.8-MDEV-14091
bb-11.8-MDEV-30877
bb-11.8-MDEV-30877-v2
bb-11.8-MDEV-30877-v3
bb-11.8-MDEV-31933
bb-11.8-MDEV-33603-nossl-socket
bb-11.8-MDEV-33677-galera
bb-11.8-MDEV-34551
bb-11.8-MDEV-34699-vector-arm
bb-11.8-MDEV-34724
bb-11.8-MDEV-34822-galera
bb-11.8-MDEV-34979
bb-11.8-MDEV-35155
bb-11.8-MDEV-35450-vec_distance
bb-11.8-MDEV-35694-merge
bb-11.8-MDEV-36079
bb-11.8-MDEV-36390
bb-11.8-MDEV-36398
bb-11.8-MDEV-36474
bb-11.8-MDEV-36527-galera
bb-11.8-MDEV-37463
bb-11.8-MDEV-37732
bb-11.8-MDEV-6017-variant3
bb-11.8-MDEV-7850-opt
bb-11.8-MDEV-9101_err
bb-11.8-MDEV-9158-file-key-manager
bb-11.8-MDEV30877
bb-11.8-add-columnstore-mtr-pkgtest
bb-11.8-all-builders
bb-11.8-av-MDEV-19123-fixup
bb-11.8-bar-MDEV-10862-opt-params
bb-11.8-bar-MDEV-22217-utf8mb4
bb-11.8-bar-MDEV-31736-format_bytes
bb-11.8-bar-MDEV-34189
bb-11.8-bar-MDEV-34317
bb-11.8-bar-MDEV-36322
bb-11.8-bar-MDEV-37849
bb-11.8-bar-MDEV-MDEV-26115
bb-11.8-bumpversion
bb-11.8-check-table
bb-11.8-dbart
bb-11.8-identity
bb-11.8-innodb-ahi-cursor
bb-11.8-knielsen
bb-11.8-mdev-22491
bb-11.8-mdev-30469
bb-11.8-mdev-34680-custom-hf
bb-11.8-mdev-34680-hf
bb-11.8-mdev-34911
bb-11.8-mdev-34911-plus-cleanup
bb-11.8-mdev-34911-review
bb-11.8-mdev-35323
bb-11.8-mdev-35662
bb-11.8-mdev-35866-rnd-next-twice
bb-11.8-mdev-36080
bb-11.8-mdev-36087
bb-11.8-mdev-36758
bb-11.8-mdev-36791
bb-11.8-mdev-37723
bb-11.8-mdev-37810
bb-11.8-midenok
bb-11.8-midenok-merge
bb-11.8-midenok-merge2
bb-11.8-monty
bb-11.8-monty-fix-get-examined-rows
bb-11.8-monty-mdl_name
bb-11.8-monty2
bb-11.8-monty3
bb-11.8-nikita-global-tmp
bb-11.8-no-parameterless-new
bb-11.8-release
bb-11.8-serg
bb-11.8-sn
bb-11.8-sn-av
bb-11.8-sn-av2
bb-11.8-wlad
bb-11.9-mdev-22168-hf
bb-12.0-MDEV-10164
bb-12.0-MDEV-20022
bb-12.0-MDEV-20065-galera
bb-12.0-MDEV-20299-authorization
bb-12.0-MDEV-20299-sudo
bb-12.0-MDEV-29981-merge
bb-12.0-MDEV-33834-audit
bb-12.0-MDEV-34822-fk-ist
bb-12.0-MDEV-35856-index-hints-v2-ycp-cleanup
bb-12.0-MDEV-36077-galera
bb-12.0-MDEV-36484-rename
bb-12.0-MDEV-36675-is-error
bb-12.0-MDEV-37035-timeout
bb-12.0-bar-MDEV-20022
bb-12.0-bar-MDEV-20022-v1
bb-12.0-bar-MDEV-20034
bb-12.0-bar-MDEV-34319
bb-12.0-bar-MDEV-36503
bb-12.0-bar-MDEV-36705
bb-12.0-bar-MDEV-36716
bb-12.0-bumpversion
bb-12.0-mdev-21376-hf
bb-12.0-mdev-22491-35866-no-36032
bb-12.0-mdev-22491-36032-35866
bb-12.0-mdev-32732
bb-12.0-mdev-32732-demo-remove-null-range
bb-12.0-mdev-34120-gis-functions
bb-12.0-mdev-34680-hf
bb-12.0-mdev-34680x2-hf
bb-12.0-mdev-34712
bb-12.0-mdev-35866
bb-12.0-mdev-36032
bb-12.0-mdev-36032-check-on-writing
bb-12.0-mdev-37099-hf
bb-12.0-mdev-37131-hf
bb-12.0-nikita-autoinc-lite
bb-12.0-nikita-global-tmp
bb-12.0-release
bb-12.0-serg
bb-12.0-unstable-join-order
bb-12.1-MDEV-20065-galera
bb-12.1-MDEV-20065-v2-galera
bb-12.1-MDEV-31949_part_III
bb-12.1-MDEV-32830_xa
bb-12.1-MDEV-35617
bb-12.1-MDEV-35617-drop-user
bb-12.1-MDEV-36077-galera
bb-12.1-MDEV-36077-v2-galera
bb-12.1-MDEV-36205-subdist
bb-12.1-MDEV-36483-review-input
bb-12.1-MDEV-9804-sha2
bb-12.1-andrei
bb-12.1-bar-MDEV-20022
bb-12.1-bar-MDEV-33830
bb-12.1-bar-MDEV-33830-oldway
bb-12.1-bar-MDEV-36053
bb-12.1-bar-MDEV-36053-v2
bb-12.1-bar-MDEV-37319
bb-12.1-bar-MDEV-37408
bb-12.1-bar-MDEV-37430
bb-12.1-bar-MDEV-37863
bb-12.1-bumpver
bb-12.1-bumpversion
bb-12.1-columnstore-23.10
bb-12.1-elenst
bb-12.1-elenst-MDEV-19749-MDL
bb-12.1-elenst-MDEV-36205-subdist
bb-12.1-mdev-28792
bb-12.1-mdev-36132
bb-12.1-mdev-36132-base
bb-12.1-mdev-36132-covering
bb-12.1-mdev-36132-group-by
bb-12.1-mdev-36132-keyread-with-vcol
bb-12.1-mdev-36132-replace-all-fields-item
bb-12.1-mdev-36132-subst
bb-12.1-mdev-36132-subst-covering
bb-12.1-mdev-36132-try-fix-covering
bb-12.1-mdev-36132-wip
bb-12.1-mdev-36132-wip-fixes
bb-12.1-mdev-37178
bb-12.1-mdev-37252
bb-12.1-mdev-37422
bb-12.1-mdev-37422-dedup-1
bb-12.1-mdev-37422-reinit-rollup
bb-12.1-mdev-37422-v2
bb-12.1-mdev-37422-v3
bb-12.1-mdev-37435
bb-12.1-mdev-38040-demo
bb-12.1-monty
bb-12.1-monty-MDEV-20023
bb-12.1-release
bb-12.1-serg
bb-12.1-spetrunia
bb-12.1-ycp-fixup
bb-12.2-MDEV-37082
bb-12.2-MDEV-38240
bb-12.2-MDEV-38272
bb-12.2-MDEV-38295
bb-12.2-audit-version
bb-12.2-bar-MDEV-10152
bb-12.2-bar-MDEV-10152-old
bb-12.2-bar-MDEV-10152-old00
bb-12.2-bar-MDEV-10152-old01
bb-12.2-bar-MDEV-20022
bb-12.2-bar-MDEV-38109
bb-12.2-bar-MDEV-38161
bb-12.2-bar-MDEV-38162
bb-12.2-bar-MDEV-38249
bb-12.2-bumpversion
bb-12.2-frm-staging
bb-12.2-mdev-36055
bb-12.2-mdev-36055-basic
bb-12.2-mdev-36055-check-mdev-36331
bb-12.2-mdev-36055-graph
bb-12.2-mdev-36055-limit-heuristic-pruning
bb-12.2-mdev-36055-prune-level-0
bb-12.2-mdev-37261-hf
bb-12.2-mdev-38040
bb-12.2-mdev38164
bb-12.2-nikita-global-tmp
bb-12.2-release
bb-12.2-serg
bb-12.3-MDEV-10267-ngram
bb-12.3-MDEV-19683-to_date
bb-12.3-MDEV-34391-path
bb-12.3-MDEV-34723
bb-12.3-MDEV-37072
bb-12.3-MDEV-38212
bb-12.3-andrei
bb-12.3-bar-MDEV-33830
bb-12.3-bar-MDEV-37261
bb-12.3-knielsen
bb-12.3-mdev-37261-hf
bb-12.3-mdev-37261-hf-v0
bb-12.3-serg
bb-12.3_MDEV-28212
bb-12.3_MDEV-38212
bb-14005-hf
bb-19248-libmariadb
bb-19248-libmariadb.bak.1
bb-MDEV-17856
bb-MDEV-21092-21095-29997-optimizer-trace-updates
bb-MDEV-24-monty
bb-MDEV-36234-wlad
bb-MDEV-7487-rebased-against-11.0.1
bb-MDEV-7487-rebased-against-11.0.1-MDEV-29390-test
bb-MDEV-9804-wolfssl-fixes
bb-MDEV14101
bb-ahi-monty
bb-hf-10.4-mdev7974
bb-hf-sup25102
bb-json_depth-rucha
bb-linuxjedi-mdev-33479
bb-main-MDEV-13817
bb-main-MDEV-13817-2
bb-main-MDEV-13817-2-ycp-review
bb-main-MDEV-13817-review-input
bb-main-MDEV-31741
bb-main-MDEV-33387
bb-main-MDEV-36830
bb-main-MDEV-37339
bb-main-MDEV-37339-2
bb-main-ahi
bb-main-all-builders
bb-main-mdev-27260
bb-main-mdev-27260-any-item-processor
bb-main-mdev-27260-unsquashed
bb-main-mdev-32907
bb-main-mdev-37110
bb-main-mdev-37111
bb-main-mdev-37114
bb-main-mdev-37193
bb-main-mdev-37193-demo
bb-main-mdev-37193-unsquashed
bb-main-mdev-37330
bb-main-mdev-37330-assert
bb-main-mdev-37330-reverse-index
bb-main-mdev-37435
bb-main-mdev-9826-option-2
bb-main-mdev-9826-v2
bb-main-mdev-9826-v3
bb-main-mdev-9826-v4
bb-main-mdev-9826-wip
bb-main-midenok-MDEV-16417
bb-main-midenok-MDEV-16417-rebase
bb-main-midenok-MDEV-16417-refactorings
bb-main-midenok-MDEV-19191
bb-main-midenok-MDEV-25292
bb-main-midenok-MDEV-37008
bb-main-monty
bb-main-release
bb-main-thiru
bb-main-vicentiu-test-bb
bb-main-vicentiu-uniques
bb-main-vicentiu-uniques-rebase
bb-main-wlad-denies
bb-main-ycp
bb-maria-s3
bb-mcs-10.9
bb-mdev-10.5-mdev-32180
bb-mdev-14472
bb-mdev-31766-hf
bb-mdev-36132-demo
bb-mdev21211-hf
bb-nikita-MDEV-16440
bb-opt-hints-1
bb-opt-hints-1-cleanup
bb-pr-689
bb-pr-774
bb-sup37463
bb-wip-11.4-mdev-12404
bb-wlad-main
bb_mdev14101
chk-11.0-merge
clone_changes_thiru
clone_history
codership-10.4-MDEV-21697
codership-10.4-MDEV-22227
codership-sst-ssl-fixes-10.2
columnstore_cache
detached
fk_in_progress
fk_list_span
for_vanislavskiy
for_vanislavskiy_speedup
hf-10.11.11-mdev16253-rocksdb-6.29fb
hf-10.5-10.5.22-MDEV-25163
hf-10.6-10.6.10-auth-pam
hf-10.6-10.6.11-pkgtest-MDEV-31185-pins
hf-10.6-10.6.12-MDEV-30165
hf-s25102
howard0su-10.2
https/jira.mariadb.org/browse/MDEV-11588
ib_fix_plugin_init
jan-MDEV-29171-galera
kakurin_sampling
knielsen-binlog-in-engine-xa
knielsen-mdev36934-10.11
knielsen-mdev36934-10.6
knielsen_alt_domain_wait
knielsen_binlog_in_engine
knielsen_binlog_in_engine_11.8
knielsen_binlog_in_engine_12.3
knielsen_binlog_in_engine_semisync
knielsen_catalog_rpl
knielsen_detect_non_trans_optimistic
knielsen_fixes_12.0
knielsen_mdev22351
knielsen_mdev24948
knielsen_mdev31949_review
knielsen_mdev32020
knielsen_mdev32673
knielsen_mdev35643
knielsen_mdev35643_11.4
knielsen_mdev36137_10.11
knielsen_mdev36137_10.4
knielsen_mdev37606_dll_crash_safe_slave
knielsen_rpl_fixes_10.6
knielsen_rpl_fixes_11.8
knielsen_rpl_print_deadlocks
knielsen_rpl_print_deadlocks-10.5
knielsen_start_alter
knielsen_xa_sched_minimal_fix
leblanc-10.5-cs
main
main-MDEV-19574
main-MDEV-28730
main-MDEV-31741
main-MDEV-32570
main-MDEV-32570-preview
main-MDEV-34705-bnestere-mtr-additions
main-MDEV-35248
main-MDEV-36290
main-MDEV-36733
main-MDEV-37487-mysqlbinlog_slave_consistency
main-MDEV-38117
main-spetrunia-tmp
main-vicentiu
main-wlad-denies
maria-s3
mdev-13625
mdev-13626
mdev-17856.tmp
mdev-18983
mdev-18983.px5.bak
mdev-19248
mdev-23077
mdev-24813
mdev-35474
mdev-35599
mdev-35599.dup_bounds_error
mdev-35879.test
mdev-35948-replicate
mdev-36245-hf
mdev-36839
mdev-37102
mdev-37116
merge-10.11-MDEV-33668
midenok-tmp
nc-10.11-merge-spider
nikita-11.4-MDEV-33049
nikita-autoinc
nikita-autoinc-lite
nikita/MDEV-25774
nikita/periods-fk-rebase
nm/period-fk-fallback
nm/period-fk-linear
nm/replace
nm/versioning-combinatoin
nm/without-overlaps-rebased
nn-10.10-merge
nn-10.11-merge
nn-10.5-merge
nn-10.6-merge
nn-11.0-merge
nn-11.1-merge
nn-11.2-merge
nn-11.3-merge
ok-10.2-connect-no-new-files-in-stable-releases
orig-12.0-mdev-36167-gis-assertion-reset-field
origin/bb-10.3-MDEV-21117
pkcg
preview-12.0-preview
preview-12.1-preview
preview-12.2-preview
preview-12.3-preview
prot-st-10.2-vicentiu
px5-rpl-filter
px5-rpl-filter.sysvar-member.bak
px5-rpl-filter.tmp
px5.mdev-35758
px5.mysqld_error_find_printf_error
px5.pull_request_template
px5.sss_inc_vars
px5.yes_san
qa-11.7-MDEV-32014
qa-11.7-MDEV-34857
queue-v1
raw-10.6-MDEV-16983-period-fk
review-11.4-MDEV-33049
review__knielsen_xa_sched_minimal_fix
rpl_start-stop_inc
scope_exit
selectivity-10.7-rbz
st-10.11-MDEV-31953
st-10.11-MDEV-34422
st-10.11-julius
st-10.11-knielsen
st-10.11-merge
st-10.11-merge-draft
st-10.11-merge-wip
st-10.11-wlad
st-10.2-danielblack-MDEV-27279-mariadb-upgrade-check-if-needed
st-10.4-anel-MDEV-22486-mysql_secure_installation
st-10.4-julius
st-10.4-merge-julius
st-10.5-MDEV-10962-deadlock-deletes
st-10.5-julius
st-10.5-vicentiu
st-10.6-MDEV-10962-deadlock-deletes
st-10.6-MDEV-29575-is_crash
st-10.6-julius
st-10.6-julius-galera
st-10.6-julius-v2
st-10.6-merge-julius
st-10.6-vicentiu
st-11.1-merge-fix
st-11.2-thiru
st-11.4-MDEV-34388
st-11.4-julius
st-11.4-merge-julius
st-11.4-merge-spider-fixup
st-11.4-wlad
st-11.6-vlad-test
st-11.6-wlad
st-12.0-merge-julius
st-12.1-MDEV-33966
sup-37643-hf
svoj-szworkshop
svoj-workshop
szworkshop
tmp_sachin
tst-10.8-elenst
vice-1
vicentiu-deny-command
vicentiu-docker
vicentiu-filter-2
vicentiu-tmp
wip-11.4-mdev-12404
xx.x-mdev-12513-INTERVAL-data-type
base_4_16217
beta-3.23.23
clone-4.0.25-build
clone-4.0.26-build
clone-4.0.27-build
clone-4.0.28-build
clone-4.0.29-build
clone-4.0.30-build
clone-4.1.12-build
clone-4.1.13-build
clone-4.1.14-build
clone-4.1.15-build
clone-4.1.16-build
clone-4.1.17-build
clone-4.1.18-build
clone-4.1.19-build
clone-4.1.21-build
clone-4.1.22-build
clone-4.1.23-build
clone-4.1.24-build
clone-4.1.25-build
clone-5.0.10-build
clone-5.0.11-build
clone-5.0.12-build
clone-5.0.13-build
clone-5.0.14-build
clone-5.0.15-build
clone-5.0.16-build
clone-5.0.17-build
clone-5.0.18-build
clone-5.0.19-build
clone-5.0.20-build
clone-5.0.21-build
clone-5.0.23-build
clone-5.0.24-build
clone-5.0.25-build
clone-5.0.26-build
clone-5.0.3-build
clone-5.0.30-build
clone-5.0.32-build
clone-5.0.34-build
clone-5.0.36-build
clone-5.0.37-build
clone-5.0.38-build
clone-5.0.4-build
clone-5.0.40-build
clone-5.0.41-build
clone-5.0.42-build
clone-5.0.44-build
clone-5.0.45-build
clone-5.0.46-build
clone-5.0.48-build
clone-5.0.5-build
clone-5.0.50-build
clone-5.0.51-build
clone-5.0.52-build
clone-5.0.54-build
clone-5.0.56-build
clone-5.0.58-build
clone-5.0.6-build
clone-5.0.60-build
clone-5.0.60sp1-build
clone-5.0.62-build
clone-5.0.64-build
clone-5.0.66-build
clone-5.0.66sp1-build
clone-5.0.67-build
clone-5.0.68-build
clone-5.0.7-build
clone-5.0.70-build
clone-5.0.72-build
clone-5.0.72sp1-build
clone-5.0.74-build
clone-5.0.74sp1-build
clone-5.0.75-build
clone-5.0.76-build
clone-5.0.78-build
clone-5.0.79-build
clone-5.0.8-build
clone-5.0.80-build
clone-5.0.81-build
clone-5.0.82-build
clone-5.0.83-build
clone-5.0.84-build
clone-5.0.85-build
clone-5.0.86-build
clone-5.0.87-build
clone-5.0.88-build
clone-5.0.89-build
clone-5.0.9-build
clone-5.0.90-build
clone-5.0.91-build
clone-5.0.92-build
clone-5.0.93-build
clone-5.0.94-build
clone-5.0.95-build
clone-5.0.96-build
clone-5.1.0-build
clone-5.1.1-build
clone-5.1.10-build
clone-5.1.11-build
clone-5.1.12-build
clone-5.1.13-build
clone-5.1.14-build
clone-5.1.15-build
clone-5.1.16-build
clone-5.1.17-build
clone-5.1.18-build
clone-5.1.19-build
clone-5.1.20-build
clone-5.1.21-build
clone-5.1.22-build
clone-5.1.23-build
clone-5.1.23a-maria-alpha-build
clone-5.1.24-build
clone-5.1.25-build
clone-5.1.26-build
clone-5.1.27-build
clone-5.1.28-build
clone-5.1.29-build
clone-5.1.3-build
clone-5.1.30-build
clone-5.1.31-build
clone-5.1.31-pv-0.2.0-build
clone-5.1.32-build
clone-5.1.33-build
clone-5.1.34-build
clone-5.1.35-build
clone-5.1.36-build
clone-5.1.37-build
clone-5.1.38-build
clone-5.1.39-build
clone-5.1.4-build
clone-5.1.40-build
clone-5.1.41-build
clone-5.1.42-build
clone-5.1.43-build
clone-5.1.44-build
clone-5.1.45-build
clone-5.1.46-build
clone-5.1.47-build
clone-5.1.48-build
clone-5.1.49-build
clone-5.1.5-build
clone-5.1.50-build
clone-5.1.51-build
clone-5.1.52-build
clone-5.1.53-build
clone-5.1.54-build
clone-5.1.55-build
clone-5.1.56-build
clone-5.1.57-build
clone-5.1.58-build
clone-5.1.59-build
clone-5.1.6-build
clone-5.1.60-build
clone-5.1.61-build
clone-5.1.62-build
clone-5.1.63-build
clone-5.1.65-build
clone-5.1.66-build
clone-5.1.67-build
clone-5.1.68-build
clone-5.1.69-build
clone-5.1.7-build
clone-5.1.70-build
clone-5.1.71-build
clone-5.1.72-build
clone-5.1.73-build
clone-5.1.8-build
clone-5.4.0-build
clone-5.4.1-build
clone-5.4.2-build
clone-5.4.3-build
clone-5.5.0-build
clone-5.5.1-build
clone-5.5.10-build
clone-5.5.11-build
clone-5.5.12-build
clone-5.5.13-build
clone-5.5.14-build
clone-5.5.15-build
clone-5.5.17-build
clone-5.5.18-build
clone-5.5.19-build
clone-5.5.2-m2-build
clone-5.5.20-build
clone-5.5.21-build
clone-5.5.22-build
clone-5.5.23-build
clone-5.5.24-build
clone-5.5.25-build
clone-5.5.27-build
clone-5.5.28-build
clone-5.5.29-build
clone-5.5.3-build
clone-5.5.30-build
clone-5.5.31-build
clone-5.5.32-build
clone-5.5.33-build
clone-5.5.34-build
clone-5.5.35-build
clone-5.5.36-build
clone-5.5.5-m3-build
clone-5.5.6-m3-build
clone-5.5.7-rc-build
clone-5.5.8-build
clone-5.5.9-build
import-bdb-4.3.28
import-bdb-4.4.16
import-readline-5.0
import-zlib-1.2.3
mariadb-10.0.0
mariadb-10.0.1
mariadb-10.0.10
mariadb-10.0.11
mariadb-10.0.12
mariadb-10.0.13
mariadb-10.0.14
mariadb-10.0.15
mariadb-10.0.16
mariadb-10.0.17
mariadb-10.0.18
mariadb-10.0.19
mariadb-10.0.2
mariadb-10.0.20
mariadb-10.0.21
mariadb-10.0.22
mariadb-10.0.23
mariadb-10.0.24
mariadb-10.0.25
mariadb-10.0.26
mariadb-10.0.27
mariadb-10.0.28
mariadb-10.0.29
mariadb-10.0.3
mariadb-10.0.30
mariadb-10.0.31
mariadb-10.0.32
mariadb-10.0.33
mariadb-10.0.34
mariadb-10.0.35
mariadb-10.0.36
mariadb-10.0.37
mariadb-10.0.38
mariadb-10.0.4
mariadb-10.0.5
mariadb-10.0.6
mariadb-10.0.7
mariadb-10.0.8
mariadb-10.0.9
mariadb-10.1.0
mariadb-10.1.1
mariadb-10.1.10
mariadb-10.1.11
mariadb-10.1.12
mariadb-10.1.13
mariadb-10.1.14
mariadb-10.1.15
mariadb-10.1.16
mariadb-10.1.17
mariadb-10.1.18
mariadb-10.1.19
mariadb-10.1.2
mariadb-10.1.20
mariadb-10.1.21
mariadb-10.1.22
mariadb-10.1.23
mariadb-10.1.24
mariadb-10.1.25
mariadb-10.1.26
mariadb-10.1.27
mariadb-10.1.28
mariadb-10.1.29
mariadb-10.1.3
mariadb-10.1.30
mariadb-10.1.31
mariadb-10.1.32
mariadb-10.1.33
mariadb-10.1.34
mariadb-10.1.35
mariadb-10.1.36
mariadb-10.1.37
mariadb-10.1.38
mariadb-10.1.39
mariadb-10.1.4
mariadb-10.1.40
mariadb-10.1.41
mariadb-10.1.42
mariadb-10.1.43
mariadb-10.1.44
mariadb-10.1.45
mariadb-10.1.46
mariadb-10.1.47
mariadb-10.1.48
mariadb-10.1.5
mariadb-10.1.6
mariadb-10.1.7
mariadb-10.1.8
mariadb-10.1.9
mariadb-10.10.1
mariadb-10.10.2
mariadb-10.10.2-release
mariadb-10.10.3
mariadb-10.10.4
mariadb-10.10.5
mariadb-10.10.6
mariadb-10.10.7
mariadb-10.11.1
mariadb-10.11.10
mariadb-10.11.11
mariadb-10.11.12
mariadb-10.11.13
mariadb-10.11.14
mariadb-10.11.15
mariadb-10.11.2
mariadb-10.11.3
mariadb-10.11.4
mariadb-10.11.5
mariadb-10.11.6
mariadb-10.11.7
mariadb-10.11.8
mariadb-10.11.9
mariadb-10.2.0
mariadb-10.2.1
mariadb-10.2.10
mariadb-10.2.11
mariadb-10.2.12
mariadb-10.2.13
mariadb-10.2.14
mariadb-10.2.15
mariadb-10.2.16
mariadb-10.2.17
mariadb-10.2.18
mariadb-10.2.19
mariadb-10.2.2
mariadb-10.2.20
mariadb-10.2.21
mariadb-10.2.22
mariadb-10.2.23
mariadb-10.2.24
mariadb-10.2.25
mariadb-10.2.26
mariadb-10.2.27
mariadb-10.2.28
mariadb-10.2.29
mariadb-10.2.3
mariadb-10.2.30
mariadb-10.2.31
mariadb-10.2.32
mariadb-10.2.33
mariadb-10.2.34
mariadb-10.2.35
mariadb-10.2.36
mariadb-10.2.37
mariadb-10.2.38
mariadb-10.2.39
mariadb-10.2.4
mariadb-10.2.40
mariadb-10.2.41
mariadb-10.2.42
mariadb-10.2.43
mariadb-10.2.44
mariadb-10.2.5
mariadb-10.2.6
mariadb-10.2.7
mariadb-10.2.8
mariadb-10.2.9
mariadb-10.3.0
mariadb-10.3.1
mariadb-10.3.10
mariadb-10.3.11
mariadb-10.3.12
mariadb-10.3.13
mariadb-10.3.14
mariadb-10.3.15
mariadb-10.3.16
mariadb-10.3.17
mariadb-10.3.18
mariadb-10.3.19
mariadb-10.3.2
mariadb-10.3.20
mariadb-10.3.21
mariadb-10.3.22
mariadb-10.3.23
mariadb-10.3.24
mariadb-10.3.25
mariadb-10.3.26
mariadb-10.3.27
mariadb-10.3.28
mariadb-10.3.29
mariadb-10.3.3
mariadb-10.3.30
mariadb-10.3.31
mariadb-10.3.32
mariadb-10.3.33
mariadb-10.3.34
mariadb-10.3.35
mariadb-10.3.36
mariadb-10.3.37
mariadb-10.3.38
mariadb-10.3.39
mariadb-10.3.4
mariadb-10.3.5
mariadb-10.3.6
mariadb-10.3.7
mariadb-10.3.8
mariadb-10.3.9
mariadb-10.4.0
mariadb-10.4.1
mariadb-10.4.10
mariadb-10.4.11
mariadb-10.4.12
mariadb-10.4.13
mariadb-10.4.14
mariadb-10.4.15
mariadb-10.4.16
mariadb-10.4.17
mariadb-10.4.18
mariadb-10.4.19
mariadb-10.4.2
mariadb-10.4.20
mariadb-10.4.21
mariadb-10.4.22
mariadb-10.4.23
mariadb-10.4.24
mariadb-10.4.25
mariadb-10.4.26
mariadb-10.4.27
mariadb-10.4.28
mariadb-10.4.29
mariadb-10.4.3
mariadb-10.4.30
mariadb-10.4.31
mariadb-10.4.32
mariadb-10.4.33
mariadb-10.4.34
mariadb-10.4.4
mariadb-10.4.5
mariadb-10.4.6
mariadb-10.4.7
mariadb-10.4.8
mariadb-10.4.9
mariadb-10.5.0
mariadb-10.5.1
mariadb-10.5.10
mariadb-10.5.11
mariadb-10.5.12
mariadb-10.5.13
mariadb-10.5.14
mariadb-10.5.15
mariadb-10.5.16
mariadb-10.5.17
mariadb-10.5.18
mariadb-10.5.19
mariadb-10.5.2
mariadb-10.5.20
mariadb-10.5.21
mariadb-10.5.22
mariadb-10.5.23
mariadb-10.5.24
mariadb-10.5.25
mariadb-10.5.26
mariadb-10.5.27
mariadb-10.5.28
mariadb-10.5.29
mariadb-10.5.3
mariadb-10.5.4
mariadb-10.5.5
mariadb-10.5.6
mariadb-10.5.7
mariadb-10.5.8
mariadb-10.5.9
mariadb-10.6.0
mariadb-10.6.1
mariadb-10.6.10
mariadb-10.6.11
mariadb-10.6.12
mariadb-10.6.13
mariadb-10.6.14
mariadb-10.6.15
mariadb-10.6.16
mariadb-10.6.17
mariadb-10.6.18
mariadb-10.6.19
mariadb-10.6.2
mariadb-10.6.20
mariadb-10.6.21
mariadb-10.6.22
mariadb-10.6.23
mariadb-10.6.24
mariadb-10.6.3
mariadb-10.6.4
mariadb-10.6.5
mariadb-10.6.6
mariadb-10.6.7
mariadb-10.6.8
mariadb-10.6.9
mariadb-10.7.1
mariadb-10.7.2
mariadb-10.7.3
mariadb-10.7.4
mariadb-10.7.5
mariadb-10.7.6
mariadb-10.7.7
mariadb-10.7.8
mariadb-10.8.1
mariadb-10.8.2
mariadb-10.8.3
mariadb-10.8.4
mariadb-10.8.5
mariadb-10.8.6
mariadb-10.8.7
mariadb-10.8.8
mariadb-10.9.1
mariadb-10.9.2
mariadb-10.9.3
mariadb-10.9.4
mariadb-10.9.5
mariadb-10.9.6
mariadb-10.9.7
mariadb-10.9.8
mariadb-11.0.1
mariadb-11.0.2
mariadb-11.0.3
mariadb-11.0.4
mariadb-11.0.5
mariadb-11.0.6
mariadb-11.1.1
mariadb-11.1.1-23.02.3-2
mariadb-11.1.2
mariadb-11.1.3
mariadb-11.1.4
mariadb-11.1.5
mariadb-11.1.6
mariadb-11.2.1
mariadb-11.2.2
mariadb-11.2.3
mariadb-11.2.4
mariadb-11.2.5
mariadb-11.2.6
mariadb-11.3.0
mariadb-11.3.1
mariadb-11.3.2
mariadb-11.4.0
mariadb-11.4.1
mariadb-11.4.2
mariadb-11.4.3
mariadb-11.4.4
mariadb-11.4.5
mariadb-11.4.6
mariadb-11.4.7
mariadb-11.4.8
mariadb-11.4.9
mariadb-11.5.0
mariadb-11.5.1
mariadb-11.5.2
mariadb-11.6.0
mariadb-11.6.1
mariadb-11.6.2
mariadb-11.7.0
mariadb-11.7.1
mariadb-11.7.2
mariadb-11.8.0
mariadb-11.8.1
mariadb-11.8.2
mariadb-11.8.3
mariadb-11.8.4
mariadb-11.8.5
mariadb-12.0.1
mariadb-12.0.2
mariadb-12.1.1
mariadb-12.1.2
mariadb-12.2.1
mariadb-5.1.38-beta
mariadb-5.1.39-beta
mariadb-5.1.41
mariadb-5.1.41-rc
mariadb-5.1.42
mariadb-5.1.42-rc
mariadb-5.1.44
mariadb-5.1.44a
mariadb-5.1.44b
mariadb-5.1.47
mariadb-5.1.49
mariadb-5.1.50
mariadb-5.1.51
mariadb-5.1.53
mariadb-5.1.55
mariadb-5.1.61
mariadb-5.1.62
mariadb-5.1.66
mariadb-5.1.67
mariadb-5.2.0-beta
mariadb-5.2.1-beta
mariadb-5.2.10
mariadb-5.2.11
mariadb-5.2.12
mariadb-5.2.13
mariadb-5.2.14
mariadb-5.2.2-gamma
mariadb-5.2.3
mariadb-5.2.4
mariadb-5.2.5
mariadb-5.2.6
mariadb-5.2.7
mariadb-5.2.8
mariadb-5.2.9
mariadb-5.3.0-beta
mariadb-5.3.1
mariadb-5.3.10
mariadb-5.3.11
mariadb-5.3.12
mariadb-5.3.2-beta
mariadb-5.3.3-rc
mariadb-5.3.4
mariadb-5.3.5-ga
mariadb-5.3.6
mariadb-5.3.7
mariadb-5.3.8
mariadb-5.3.9
mariadb-5.5.20-alpha
mariadb-5.5.21-beta
mariadb-5.5.22-rc
mariadb-5.5.23
mariadb-5.5.24
mariadb-5.5.25
mariadb-5.5.27
mariadb-5.5.28
mariadb-5.5.28a
mariadb-5.5.29
mariadb-5.5.30
mariadb-5.5.31
mariadb-5.5.32
mariadb-5.5.33
mariadb-5.5.33a
mariadb-5.5.34
mariadb-5.5.35
mariadb-5.5.36
mariadb-5.5.37
mariadb-5.5.38
mariadb-5.5.39
mariadb-5.5.40
mariadb-5.5.41
mariadb-5.5.42
mariadb-5.5.43
mariadb-5.5.44
mariadb-5.5.45
mariadb-5.5.46
mariadb-5.5.47
mariadb-5.5.48
mariadb-5.5.49
mariadb-5.5.50
mariadb-5.5.51
mariadb-5.5.52
mariadb-5.5.53
mariadb-5.5.54
mariadb-5.5.55
mariadb-5.5.56
mariadb-5.5.57
mariadb-5.5.58
mariadb-5.5.59
mariadb-5.5.60
mariadb-5.5.61
mariadb-5.5.62
mariadb-5.5.63
mariadb-5.5.64
mariadb-5.5.65
mariadb-5.5.66
mariadb-5.5.67
mariadb-5.5.68
mariadb-galera-10.0.10
mariadb-galera-10.0.11
mariadb-galera-10.0.12
mariadb-galera-10.0.13
mariadb-galera-10.0.14
mariadb-galera-10.0.15
mariadb-galera-10.0.16
mariadb-galera-10.0.17
mariadb-galera-10.0.19
mariadb-galera-10.0.20
mariadb-galera-10.0.21
mariadb-galera-10.0.22
mariadb-galera-10.0.23
mariadb-galera-10.0.24
mariadb-galera-10.0.25
mariadb-galera-10.0.26
mariadb-galera-10.0.27
mariadb-galera-10.0.28
mariadb-galera-10.0.29
mariadb-galera-10.0.30
mariadb-galera-10.0.31
mariadb-galera-10.0.32
mariadb-galera-10.0.33
mariadb-galera-10.0.34
mariadb-galera-10.0.35
mariadb-galera-10.0.36
mariadb-galera-10.0.37
mariadb-galera-10.0.38
mariadb-galera-10.0.7
mariadb-galera-10.0.7a
mariadb-galera-5.5.25
mariadb-galera-5.5.28a
mariadb-galera-5.5.29
mariadb-galera-5.5.32
mariadb-galera-5.5.32a
mariadb-galera-5.5.34
mariadb-galera-5.5.35
mariadb-galera-5.5.36
mariadb-galera-5.5.36a
mariadb-galera-5.5.37
mariadb-galera-5.5.38
mariadb-galera-5.5.39
mariadb-galera-5.5.40
mariadb-galera-5.5.41
mariadb-galera-5.5.42
mariadb-galera-5.5.43
mariadb-galera-5.5.44
mariadb-galera-5.5.45
mariadb-galera-5.5.46
mariadb-galera-5.5.47
mariadb-galera-5.5.48
mariadb-galera-5.5.49
mariadb-galera-5.5.50
mariadb-galera-5.5.51
mariadb-galera-5.5.52
mariadb-galera-5.5.53
mariadb-galera-5.5.54
mariadb-galera-5.5.55
mariadb-galera-5.5.56
mariadb-galera-5.5.57
mariadb-galera-5.5.58
mariadb-galera-5.5.59
mariadb-galera-5.5.60
mariadb-galera-5.5.61
mariadb-galera-5.5.62
mariadb-galera-5.5.63
mariadb-merge-mysql-5.1.34plus
mariadb-merge-mysql-5.1.38minus
mariadb-merge-mysql-5.1.39
mariadb-merge-mysql-5.1.41
mariadb-merge-mysql-5.1.42
mariadb-merge-mysql-5.1.44
mariadb-merge-mysql-5.1.46
mysql-3.23.22-beta
mysql-3.23.24-beta
mysql-3.23.27-beta
mysql-3.23.28-gamma
mysql-3.23.29a-gamma
mysql-3.23.30-gamma
mysql-3.23.31
mysql-3.23.32
mysql-3.23.33
mysql-3.23.34
mysql-3.23.35
mysql-3.23.36
mysql-3.23.37
mysql-3.23.38
mysql-3.23.39
mysql-3.23.41
mysql-3.23.42
mysql-3.23.44
mysql-3.23.45
mysql-3.23.46
mysql-3.23.47
mysql-3.23.48
mysql-3.23.50
mysql-3.23.51
mysql-3.23.52
mysql-3.23.53
mysql-3.23.54
mysql-3.23.55
mysql-3.23.56
mysql-3.23.57
mysql-3.23.58
mysql-4.0.1
mysql-4.0.10
mysql-4.0.11
mysql-4.0.12
mysql-4.0.13
mysql-4.0.14
mysql-4.0.15
mysql-4.0.16
mysql-4.0.17
mysql-4.0.18
mysql-4.0.19
mysql-4.0.2
mysql-4.0.20
mysql-4.0.21
mysql-4.0.22
mysql-4.0.23
mysql-4.0.24
mysql-4.0.25
mysql-4.0.26
mysql-4.0.27
mysql-4.0.28
mysql-4.0.3
mysql-4.0.30
mysql-4.0.4
mysql-4.0.5
mysql-4.0.6
mysql-4.0.7
mysql-4.0.8
mysql-4.0.9
mysql-4.1.0
mysql-4.1.1
mysql-4.1.10
mysql-4.1.10a
mysql-4.1.10b
mysql-4.1.11
mysql-4.1.12
mysql-4.1.13
mysql-4.1.13a
mysql-4.1.14
mysql-4.1.15
mysql-4.1.16
mysql-4.1.18
mysql-4.1.19
mysql-4.1.2
mysql-4.1.20
mysql-4.1.21
mysql-4.1.22
mysql-4.1.23
mysql-4.1.24
mysql-4.1.3
mysql-4.1.4
mysql-4.1.5
mysql-4.1.6
mysql-4.1.7
mysql-4.1.8
mysql-4.1.9
mysql-5.0.0
mysql-5.0.1
mysql-5.0.10
mysql-5.0.10a
mysql-5.0.11
mysql-5.0.12
mysql-5.0.13
mysql-5.0.14
mysql-5.0.15
mysql-5.0.16
mysql-5.0.16a
mysql-5.0.17
mysql-5.0.17b
mysql-5.0.18
mysql-5.0.19
mysql-5.0.19a
mysql-5.0.2
mysql-5.0.2-alpha
mysql-5.0.20
mysql-5.0.20a
mysql-5.0.21
mysql-5.0.22
mysql-5.0.23
mysql-5.0.24
mysql-5.0.24a
mysql-5.0.25
mysql-5.0.26
mysql-5.0.27
mysql-5.0.28
mysql-5.0.3
mysql-5.0.30
mysql-5.0.32
mysql-5.0.33
mysql-5.0.34
mysql-5.0.36
mysql-5.0.37
mysql-5.0.38
mysql-5.0.4
mysql-5.0.40
mysql-5.0.41
mysql-5.0.42
mysql-5.0.44
mysql-5.0.45
mysql-5.0.46
mysql-5.0.48
mysql-5.0.5
mysql-5.0.50
mysql-5.0.51
mysql-5.0.51a
mysql-5.0.52
mysql-5.0.54
mysql-5.0.54a
mysql-5.0.56
mysql-5.0.58
mysql-5.0.6
mysql-5.0.60
mysql-5.0.60sp1
mysql-5.0.62
mysql-5.0.64
mysql-5.0.66
mysql-5.0.66a
mysql-5.0.66sp1
mysql-5.0.67
mysql-5.0.68
mysql-5.0.7
mysql-5.0.70
mysql-5.0.72
mysql-5.0.72sp1
mysql-5.0.74
mysql-5.0.74sp1
mysql-5.0.75
mysql-5.0.76
mysql-5.0.77
mysql-5.0.78
mysql-5.0.79
mysql-5.0.8
mysql-5.0.80
mysql-5.0.81
mysql-5.0.82
mysql-5.0.82sp1
mysql-5.0.83
mysql-5.0.84
mysql-5.0.84sp1
mysql-5.0.85
mysql-5.0.86
mysql-5.0.87
mysql-5.0.87sp1
mysql-5.0.88
mysql-5.0.9
mysql-5.0.90
mysql-5.0.91
mysql-5.0.92
mysql-5.0.93
mysql-5.0.94
mysql-5.0.95
mysql-5.0.96
mysql-5.1.11
mysql-5.1.12
mysql-5.1.13
mysql-5.1.14
mysql-5.1.15
mysql-5.1.16
mysql-5.1.17
mysql-5.1.18
mysql-5.1.18-ndb-6.2.1
mysql-5.1.19
mysql-5.1.20
mysql-5.1.20-beta
mysql-5.1.21
mysql-5.1.22
mysql-5.1.23
mysql-5.1.23a-maria-alpha
mysql-5.1.24
mysql-5.1.25
mysql-5.1.26
mysql-5.1.28
mysql-5.1.29
mysql-5.1.3
mysql-5.1.30
mysql-5.1.31
mysql-5.1.31sp1
mysql-5.1.32
mysql-5.1.33
mysql-5.1.34
mysql-5.1.34sp1
mysql-5.1.35
mysql-5.1.36
mysql-5.1.37
mysql-5.1.37sp1
mysql-5.1.38
mysql-5.1.39
mysql-5.1.4
mysql-5.1.40
mysql-5.1.40sp1
mysql-5.1.41
mysql-5.1.42
mysql-5.1.43
mysql-5.1.43sp1
mysql-5.1.44
mysql-5.1.45
mysql-5.1.46
mysql-5.1.46sp1
mysql-5.1.47
mysql-5.1.48
mysql-5.1.49
mysql-5.1.49sp1
mysql-5.1.5
mysql-5.1.5-for-windows
mysql-5.1.50
mysql-5.1.51
mysql-5.1.52
mysql-5.1.52sp1
mysql-5.1.53
mysql-5.1.54
mysql-5.1.55
mysql-5.1.56
mysql-5.1.57
mysql-5.1.58
mysql-5.1.59
mysql-5.1.6
mysql-5.1.60
mysql-5.1.61
mysql-5.1.62
mysql-5.1.63
mysql-5.1.65
mysql-5.1.66
mysql-5.1.67
mysql-5.1.68
mysql-5.1.69
mysql-5.1.69-retag
mysql-5.1.7
mysql-5.1.70
mysql-5.1.71
mysql-5.1.72
mysql-5.1.73
mysql-5.1.9
mysql-5.4.1
mysql-5.4.2
mysql-5.4.3
mysql-5.5.0
mysql-5.5.1-m2
mysql-5.5.10
mysql-5.5.11
mysql-5.5.12
mysql-5.5.13
mysql-5.5.14
mysql-5.5.15
mysql-5.5.16
mysql-5.5.17
mysql-5.5.18
mysql-5.5.19
mysql-5.5.2-m2
mysql-5.5.20
mysql-5.5.21
mysql-5.5.22
mysql-5.5.23
mysql-5.5.24
mysql-5.5.25
mysql-5.5.27
mysql-5.5.28
mysql-5.5.29
mysql-5.5.3-m3
mysql-5.5.30
mysql-5.5.31
mysql-5.5.32
mysql-5.5.33
mysql-5.5.34
mysql-5.5.35
mysql-5.5.36
mysql-5.5.37
mysql-5.5.38
mysql-5.5.39
mysql-5.5.40
mysql-5.5.41
mysql-5.5.42
mysql-5.5.43
mysql-5.5.44
mysql-5.5.45
mysql-5.5.46
mysql-5.5.47
mysql-5.5.48
mysql-5.5.49
mysql-5.5.5-m3
mysql-5.5.50
mysql-5.5.51
mysql-5.5.52
mysql-5.5.53
mysql-5.5.54
mysql-5.5.55
mysql-5.5.56
mysql-5.5.57
mysql-5.5.58
mysql-5.5.59
mysql-5.5.6-rc
mysql-5.5.60
mysql-5.5.61
mysql-5.5.62
mysql-5.5.7
mysql-5.5.8
mysql-5.5.9
mysql_4.0
percona-xtradb-1.0.2-1
serg-5.1.64
tokudb-7.1.0
tokudb-7.1.5
tokudb-7.1.5-rc.1
tokudb-7.1.5-rc.2
tokudb-7.1.5-rc.3
tokudb-7.1.5-rc.4
tokudb-ps-1
tokudb-ps-2
tokumx-1.0.0-rc.0
tokumx-1.0.0-rc.2
tokumx-1.0.0-rc.4
tokumx-1.0.0-rc.5
tokumx-1.0.0-rc.6
tokumx-1.0.2
tokumx-1.0.4
tokumx-1.0.4-rc.0
tokumx-1.0.4-rc.1
tokumx-1.0.4-rc.2
tokumx-1.1.0
tokumx-1.1.1
tokumx-1.1.1-rc.0
tokumx-1.2.0-rc.2
tokumx-1.3.0-rc.0
tokumx-1.3.0-rc.1
tokumx-1.4.0+hotfix.0
${ noResults }
334 Commits (9c85ced30dc4f6d28b4fe7ad1b73ca76f3c43a44)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
9c85ced30d |
Merge fix.
|
12 years ago |
|
|
0a9216835f |
Initial merge result with mariaDB 10: lp:maria
|
13 years ago |
|
|
50dda403b7 |
Fix test errors like:
-Note 1031 Table storage engine for 't1' doesn't have this option +Note 1031 Table storage engine for 'InnoDB' doesn't have this option They were caused by a change in MariaDB which changed ER_ILLEGAL_HA message text to be like: "Storage engine InnoDB of the table `test`.`t1` doesn't have this option" Some the error calls were changed to pass new parameters, but some were left to be old. Also the error text in errmsg-ut8.txt was not changed. |
13 years ago |
|
|
94d722b6a4 |
ha_partition.cc and ha_partition.h are now completely merged
Added sql_mode_t to simplify merges |
13 years ago |
|
|
2534521f9a |
Fixed some merge issues:
- temporary tables now works - mysql-system_tables updated to not use temporary tables - PASSWORD() function fixed - Support for STATS_AUTO_RECALC, STATS_PERSISTENT and STATS_SAMPLE_PAGES table options |
13 years ago |
|
|
3ad01d00f2 |
error messages: name the storage engine explicitly,
instead of "used storage engine" and similar changes. |
13 years ago |
|
|
474fe6d9d9 |
fixes for test failures
and small collateral changes mysql-test/lib/My/Test.pm: somehow with "print" we get truncated writes sometimes mysql-test/suite/perfschema/r/digest_table_full.result: md5 hashes of statement digests differ, because yacc token codes are different in mariadb mysql-test/suite/perfschema/r/dml_handler.result: host table is not ported over yet mysql-test/suite/perfschema/r/information_schema.result: host table is not ported over yet mysql-test/suite/perfschema/r/nesting.result: this differs, because we don't rewrite general log queries, and multi-statement packets are logged as a one entry. this result file is identical to what mysql-5.6.5 produces with the --log-raw option. mysql-test/suite/perfschema/r/relaylog.result: MariaDB modifies the binlog index file directly, while MySQL 5.6 has a feature "crash-safe binlog index" and modifies a special "crash-safe" shadow copy of the index file and then moves it over. That's why this test shows "NONE" index file writes in MySQL and "MANY" in MariaDB. mysql-test/suite/perfschema/r/server_init.result: MariaDB initializes the "manager" resources from the "manager" thread, and starts this thread only when --flush-time is not 0. MySQL 5.6 initializes "manager" resources unconditionally on server startup. mysql-test/suite/perfschema/r/stage_mdl_global.result: this differs, because MariaDB disables query cache when query_cache_size=0. MySQL does not do that, and this causes useless mutex locks and waits. mysql-test/suite/perfschema/r/statement_digest.result: md5 hashes of statement digests differ, because yacc token codes are different in mariadb mysql-test/suite/perfschema/r/statement_digest_consumers.result: md5 hashes of statement digests differ, because yacc token codes are different in mariadb mysql-test/suite/perfschema/r/statement_digest_long_query.result: md5 hashes of statement digests differ, because yacc token codes are different in mariadb mysql-test/suite/rpl/r/rpl_mixed_drop_create_temp_table.result: will be updated to match 5.6 when alfranio.correia@oracle.com-20110512172919-c1b5kmum4h52g0ni and anders.song@greatopensource.com-20110105052107-zoab0bsf5a6xxk2y are merged mysql-test/suite/rpl/r/rpl_non_direct_mixed_mixing_engines.result: will be updated to match 5.6 when anders.song@greatopensource.com-20110105052107-zoab0bsf5a6xxk2y is merged |
13 years ago |
|
|
ddd3e261b2 |
MDEV-254: Server hang with FLUSH TABLES WITH READ LOCK AND DISABLE CHECKPOINT
The code to re-enable checkpointing after UNLOCK TABLES was lost in the 5.5 merge, so re-add it back in. |
14 years ago |
|
|
9ef537ac61 |
Fixed lp:963603 "Assertion `lock_type != TL_UNLOCK && (lock_type == TL_IGNORE || file->lock.type == TL_UNLOCK)' failed in ha_maria::store_lock with DML, triggers, views"
mysys/thr_lock.c: Ensure that all locks are marked as TL_UNLOCK in case of error (Safety fix) sql/lock.cc: Ensure that all locks are marked as TL_UNLOCK in case of error (This is the real fix for lp:963603) |
14 years ago |
|
|
a579adea66 |
Cleanups:
- Don't use SAFEMALLOC on valgrind builds (slows things down) - Added back lost option from 5.3: debug-mutex-deadlock-detector - Flush pages before taking lock mutex (speeds up closing of Aria tables). BUILD/SETUP.sh: - Don't use SAFEMALLOC on valgrind builds (slows things down) sql/lock.cc: Make default argument explicit (improves readability) sql/mysqld.cc: Removed compiler warnings Sorted debug options alphabetically Added back lost option from 5.3: debug-mutex-deadlock-detector storage/maria/ma_close.c: Flush pages before taking lock mutex (speeds up closing of Aria tables). storage/maria/ma_open.c: More DBUG_PRINT storage/maria/maria_def.h: Better DBUG_PRINT storage/maria/trnman.c: Better DBUG_PRINT |
14 years ago |
|
|
2b625ac3e0 |
Fixed lp:933719, "Assertion open_tables == 0 ... " in THD::restore_backup_open_tables_state.
This also fixes a (not likely) crashing bug when forcing a thread that was doing a table lock to re-open it's files, for example by creating a trigger. mysys/thr_lock.c: Added more checking to find wrong locks. Removed one, not needed, parameter to thr_lock sql/lock.cc: Fixed mysql_lock_tables() to retry with new sql_lock if lock fails. This was needed as table may be closed and reopened between retry's and then the old sql_lock will point to stale data. sql/mysql_priv.h: Updated prototype sql/sql_base.cc: Ensure that all tables are closed if opening of system table failes; This fixes the assert in THD::restore_backup_open_tables_state sql/sql_handler.cc: Updated variable type |
14 years ago |
|
|
8e25dcfcd7 |
BUG#868908: Crash in check_simple_equality() with semijoin + materialization + prepared statement
- Part 1 of the fix: for semi-join merged subqueries, calling child_join->optimize() until we're done with all PS-lifetime optimizations in the parent. |
14 years ago |
|
|
5e7b949e61 |
Fix crash due to wrong my_error() call (5.5 after-merge fix).
|
14 years ago |
|
|
44135d4725 |
Updated/added copyright headers
|
15 years ago |
|
|
6da8ac5f71 |
Added option "AND DISABLE CHECKPOINT" to "FLUSH TABLES WITH READ LOCK"
This makes it possible to do safe multi volume snapshots as long as one snapshots the volume with the transaction logs last. include/mysql_com.h: Added REFRESH_CHECKPOINT mysql-test/r/flush.result: Added test of new FLUSH TABLES syntax + calls to checkpoint_status handler calls mysql-test/t/flush.test: Added test of new FLUSH TABLES syntax + calls to checkpoint_status handler calls sql/handler.cc: Added code to call checkpoint_state for all handlertons that supports it sql/handler.h: Added new checkpoint_state() handlerton call to temporarly disable checkpoints. sql/lex.h: Added CHECKPOINT keyword sql/sql_yacc.yy: Added support for FLUSH TABLES WITH READ LOCK AND DISABLE CHECKPOINT storage/maria/ha_maria.cc: Added handlerton call to disable checkpoints. storage/maria/ma_checkpoint.c: Don't do checkpoint if checkpoints are disabled. storage/maria/ma_static.c: Added maria_checkpoint_disabled storage/maria/maria_def.h: Added maria_checkpoint_disabled storage/xtradb/handler/ha_innodb.cc: Added handlerton call to disable checkpoints. storage/xtradb/include/log0log.h: Added option to log_checkpoint() to allow one to ignore not critical checkpoints during the time checkpoints are disabled. storage/xtradb/log/log0log.c: Added code to allow one to disable checkpoints during a FLUSH TABLES ... DISABLE CHECKPOINT This was done by adding a new argument to log_checkpoint() which tells us when the checkpoint is called by srv_master_thread (which are safe to ignore) storage/xtradb/srv/srv0srv.c: Tell log_checkpoint() that checkpoints from srv_master_thread() are safe to ignore (will just delay recovery time a bit). |
15 years ago |
|
|
0accbd0364 |
lots of post-merge changes
|
15 years ago |
|
|
fd926652de |
Removed no longer needed header files
|
15 years ago |
|
|
ff3da0f963 |
Change TABLE->alias to String for less memory reallocation
Changed some String.ptr() -> String.c_ptr() for String that are not guaranteed to end with \0 Removed some c_ptr() usage from parameters to functions that takes ptr & length Use preallocate buffers to avoid calling malloc() for most operations. sql/event_db_repository.cc: alias is now a String sql/event_scheduler.cc: c_ptr -> c_ptr_safe() to avoid warnings from valgrind. sql/events.cc: c_ptr -> c_ptr_safe() to avoid warnings from valgrind. c_ptr -> ptr() as function takes ptr & length sql/field.cc: alias is now a String sql/field.h: alias is now a String sql/ha_partition.cc: alias is now a String sql/handler.cc: alias is now a String ptr() -> c_ptr() as string is not guaranteed to be \0 terminated sql/item.cc: Store error parameter in separarte buffer to ensure correct error message sql/item_func.cc: ptr() -> c_ptr_safe() as string is not guaranteed to be \0 terminated sql/item_sum.h: Use my_strtod() instead of my_atof() to not have to make string \0 terminated sql/lock.cc: alias is now a String sql/log.cc: c_ptr() -> ptr() as function takes ptr & length sql/log_event.cc: c_ptr_quick() -> ptr() as we only want to get the pointer to String buffer sql/opt_range.cc: ptr() -> c_ptr() as string is not guaranteed to be \0 terminated sql/opt_table_elimination.cc: alias is now a String sql/set_var.cc: ptr() -> c_ptr() as string is not guaranteed to be \0 terminated c_ptr() -> c_ptr_safe() to avoid warnings from valgrind. c_ptr() -> ptr() as function takes ptr & length Simplify some code. sql/sp.cc: c_ptr() -> ptr() as function takes ptr & length sql/sp_rcontext.cc: alias is now a String sql/sql_base.cc: alias is now a String. Here we win a realloc() for most alias usage. sql/sql_class.cc: Use size descriptor for printf() to avoid accessing bytes outside of buffer sql/sql_insert.cc: Change allocation of TABLE as it's now contains a String _ptr() -> ptr() as function takes ptr & length sql/sql_load.cc: Use preallocate buffers to avoid calling malloc() for most operations. sql/sql_parse.cc: Use c_ptr_safe() to ensure string is \0 terminated. sql/sql_plugin.cc: c_ptr_quick() -> ptr() as function takes ptr & length sql/sql_select.cc: alias is now a String sql/sql_show.cc: alias is now a String sql/sql_string.h: Added move() function to change who owns the string (owner does the free) sql/sql_table.cc: alias is now a String c_ptr() -> c_ptr_safe() to avoid warnings from valgrind. sql/sql_test.cc: c_ptr() -> c_ptr_safe() to avoid warnings from valgrind. alias is now a String sql/sql_trigger.cc: c_ptr() -> c_ptr_safe() to avoid warnings from valgrind. Use field->init() to setup pointers to alias. sql/sql_update.cc: alias is now a String sql/sql_view.cc: ptr() -> c_ptr_safe() as string is not guaranteed to be \0 terminated sql/sql_yacc.yy: r() -> c_ptr() as string is not guaranteed to be \0 terminated sql/table.cc: alias is now a String sql/table.h: alias is now a String storage/federatedx/ha_federatedx.cc: Remove extra 1 byte alloc that is automaticly done by strmake() Ensure that error message ends with \0 storage/maria/ha_maria.cc: alias is now a String storage/myisam/ha_myisam.cc: alias is now a String |
15 years ago |
|
|
69fe020f01 |
Fixed bugs found by buildbot:
- Use -Wno-uninitialized if -DFORCE_INIT_OF_VARS is not used, to avoid warnings about not initialized variables. - Fixed compiler warnings - Added a name for each thr_lock to get better error messages (This is needed to find out why 'archive.test' sometimes fails) BUILD/SETUP.sh: Use -Wno-uninitialized if -DFORCE_INIT_OF_VARS is not used, to avoid warnings about not initialized variables. BUILD/build_mccge.sh: Use -Wno-uninitialized if -DFORCE_INIT_OF_VARS is not used, to avoid warnings about not initialized variables. client/mysqltest.cc: Fixed bug in remove_files_wildcards (the orignal code never removed anything) extra/libevent/devpoll.c: Fixed compiler warning include/thr_lock.h: Added a name for each thr_lock to get better error messages. mysql-test/suite/maria/t/maria3.test: Speed up test. mysys/thr_lock.c: Added a name for each thr_lock to get better error messages. Added a second 'check_locks' to find if something goes wrong in 'wake_up_waiters'. sql/lock.cc: Added a name for each thr_lock to get better error messages. storage/xtradb/fil/fil0fil.c: Fixed compiler warning |
15 years ago |
|
|
e63b5546c5 |
Implementation of MWL#172: Add support for prepared statements to HANDLER READ
It includes speed optimizations for HANDLER READ by caching as much as possible in HANDLER OPEN Other things: - Added mysqld option --disable-thr-alarm to be able to benchmark things without thr_alarm - Changed 'Locked' state to 'System lock' and 'Table lock' (these where used in the code but never shown to end user) - Better error message if mysql_install_db.sh fails - Moved handler function prototypes to sql_handler.h - Remove not anymore used 'thd->locked' member include/thr_alarm.h: Added my_disable_thr_alarm include/thr_lock.h: Add new member to THR_LOCK_DATA to remember original lock type state. This is needed as thr_unlock() resets type to TL_UNLOCK. mysql-test/include/check_no_concurrent_insert.inc: Locked -> Table lock mysql-test/include/handler.inc: Locked -> Table lock mysql-test/r/handler_innodb.result: Updated results for new tests mysql-test/r/handler_myisam.result: Updated results for new tests mysql-test/r/sp-threads.result: Locked -> Table lock mysql-test/suite/binlog/t/binlog_stm_row.test: Locked -> Table lock mysql-test/suite/funcs_1/datadict/processlist_val.inc: Locked -> Table lock mysql-test/suite/pbxt/t/lock_multi.test: Locked -> Table lock mysql-test/suite/sys_vars/r/concurrent_insert_func.result: Locked -> Table lock mysql-test/suite/sys_vars/t/concurrent_insert_func.test: Locked -> Table lock mysql-test/suite/sys_vars/t/delayed_insert_limit_func.test: Locked -> Table lock mysql-test/suite/sys_vars/t/query_cache_wlock_invalidate_func.test: Locked -> Table lock mysql-test/suite/sys_vars/t/sql_low_priority_updates_func.test: Locked -> Table lock mysql-test/t/insert_notembedded.test: Locked -> Table lock mysql-test/t/lock_multi.test: Locked -> Table lock mysql-test/t/merge-big.test: Locked -> Table lock mysql-test/t/multi_update.test: Locked -> Table lock mysql-test/t/query_cache_28249.test: Locked -> Table lock mysql-test/t/sp_notembedded.test: Locked -> Table lock mysql-test/t/sp_sync.test: Locked -> Table lock mysql-test/t/status.test: Locked -> Table lock mysql-test/t/trigger_notembedded.test: Locked -> Table lock mysys/thr_alarm.c: Added option to disable thr_alarm mysys/thr_lock.c: Detect loops scripts/mysql_install_db.sh: Give better error message if something goes wrong sql/Makefile.am: Added sql_handler.h sql/lock.cc: Split functions to allow one to cache value if store_lock() (for HANDLER functions). - Split mysql_lock_tables() into two functions, where first one allocates MYSQL_LOCK and other other one uses it. - Made get_lock_data() an external function. - Added argument to mysql_unlock_tables() to not free sql_lock. - Added argument to reset_lock_data() to reset lock structure to initial state (as after get_lock_data()) sql/mysql_priv.h: Moved handler function prototypes to sql_handler.h Added new lock functions. sql/mysqld.cc: Added --thread-alarm startup option sql/net_serv.cc: Don't call vio_blocking() if not needed sql/sql_base.cc: include sql_handler.h sql/sql_class.cc: include sql_handler.h Remove not anymore used 'thd->locked' member sql/sql_class.h: Remove not anymore used 'thd->locked' member sql/sql_db.cc: include sql_handler.h sql/sql_delete.cc: include sql_handler.h sql/sql_handler.cc: Rewrote all code to use SQL_HANDLER instead of TABLE_LIST (original interface) Rewrote mysql_ha_open() to cache all things from TABLE_LIST and items for field list, where etc. In mysql_ha_open() also cache MYSQL_LOCK structure from get_lock_data(). Split functions into smaller sub functions (needed to be able to implement mysql_ha_read_prepare()) Added mysql_ha_read_prepare() to allow one to prepare HANDLER READ. sql/sql_handler.h: Interface to sql_handler.cc sql/sql_parse.cc: include sql_handler.h sql/sql_prepare.cc: Added mysql_test_handler_read(), prepare for HANDLER READ sql/sql_rename.cc: include sql_handler.h sql/sql_show.cc: Removed usage of thd->locked sql/sql_table.cc: include sql_handler.h sql/sql_trigger.cc: include sql_handler.h |
15 years ago |
|
|
52090a4434 |
Code cleanup to get fewer reallocs() during execution.
- Changed TABLE->alias to String to get fewer reallocs when alias are used. - Preallocate some buffers Changed some String->c_ptr() -> String->ptr() when \0 is not needed. Fixed wrong usage of String->ptr() when we need a \0 terminated string. Use my_strtod() instead of my_atof() to avoid having to add \0 to string. c_ptr() -> c_ptr_safe() to avoid warnings from valgrind. zr sql/event_db_repository.cc: Update usage of TABLE->alias sql/event_scheduler.cc: c_ptr() -> c_ptr_safe() sql/events.cc: c_ptr() -> ptr() as \0 was not needed sql/field.cc: Update usage of TABLE->alias sql/field.h: Update usage of TABLE->alias sql/ha_partition.cc: Update usage of TABLE->alias sql/handler.cc: Update usage of TABLE->alias Fixed wrong usage of str.ptr() sql/item.cc: Fixed error where code wrongly assumed string was \0 terminated. sql/item_func.cc: c_ptr() -> c_ptr_safe() Update usage of TABLE->alias sql/item_sum.h: Use my_strtod() instead of my_atof() to avoid having to add \0 to string sql/lock.cc: Update usage of TABLE->alias sql/log.cc: c_ptr() -> ptr() as \0 was not needed sql/log_event.cc: c_ptr_quick() -> ptr() as \0 was not needed sql/opt_range.cc: ptr() -> c_ptr() as \0 is needed sql/opt_subselect.cc: Update usage of TABLE->alias sql/opt_table_elimination.cc: Update usage of TABLE->alias sql/set_var.cc: ptr() -> c_ptr() as \0 is needed c_ptr() -> c_ptr_safe() sql/sp.cc: c_ptr() -> ptr() as \0 was not needed sql/sp_rcontext.cc: Update usage of TABLE->alias sql/sql_base.cc: Preallocate buffers Update usage of TABLE->alias sql/sql_class.cc: Fix arguments to sprintf() to work even if string is not \0 terminated sql/sql_insert.cc: Update usage of TABLE->alias c_ptr() -> ptr() as \0 was not needed sql/sql_load.cc: Preallocate buffers Trivial optimizations sql/sql_parse.cc: Trivial optimization sql/sql_plugin.cc: c_ptr() -> ptr() as \0 was not needed sql/sql_select.cc: Update usage of TABLE->alias sql/sql_show.cc: Update usage of TABLE->alias sql/sql_string.h: Added move() function to move allocated memory from one object to another. sql/sql_table.cc: Update usage of TABLE->alias c_ptr() -> c_ptr_safe() sql/sql_test.cc: ptr() -> c_ptr_safe() sql/sql_trigger.cc: Update usage of TABLE->alias c_ptr() -> c_ptr_safe() sql/sql_update.cc: Update usage of TABLE->alias sql/sql_view.cc: ptr() -> c_ptr_safe() sql/sql_yacc.yy: ptr() -> c_ptr() sql/table.cc: Update usage of TABLE->alias sql/table.h: Changed TABLE->alias to String to get fewer reallocs when alias are used. storage/federatedx/ha_federatedx.cc: Use c_ptr_safe() to ensure strings are \0 terminated. storage/maria/ha_maria.cc: Update usage of TABLE->alias storage/myisam/ha_myisam.cc: Update usage of TABLE->alias storage/xtradb/row/row0sel.c: Ensure that null bits in record are properly reset. (Old code didn't work as row_search_for_mysql() can be called twice while reading fields from one row. |
15 years ago |
|
|
6bf6272fda |
Patch that refactors global read lock implementation and fixes
bug #57006 "Deadlock between HANDLER and FLUSH TABLES WITH READ LOCK" and bug #54673 "It takes too long to get readlock for 'FLUSH TABLES WITH READ LOCK'". The first bug manifested itself as a deadlock which occurred when a connection, which had some table open through HANDLER statement, tried to update some data through DML statement while another connection tried to execute FLUSH TABLES WITH READ LOCK concurrently. What happened was that FTWRL in the second connection managed to perform first step of GRL acquisition and thus blocked all upcoming DML. After that it started to wait for table open through HANDLER statement to be flushed. When the first connection tried to execute DML it has started to wait for GRL/the second connection creating deadlock. The second bug manifested itself as starvation of FLUSH TABLES WITH READ LOCK statements in cases when there was a constant stream of concurrent DML statements (in two or more connections). This has happened because requests for protection against GRL which were acquired by DML statements were ignoring presence of pending GRL and thus the latter was starved. This patch solves both these problems by re-implementing GRL using metadata locks. Similar to the old implementation acquisition of GRL in new implementation is two-step. During the first step we block all concurrent DML and DDL statements by acquiring global S metadata lock (each DML and DDL statement acquires global IX lock for its duration). During the second step we block commits by acquiring global S lock in COMMIT namespace (commit code acquires global IX lock in this namespace). Note that unlike in old implementation acquisition of protection against GRL in DML and DDL is semi-automatic. We assume that any statement which should be blocked by GRL will either open and acquires write-lock on tables or acquires metadata locks on objects it is going to modify. For any such statement global IX metadata lock is automatically acquired for its duration. The first problem is solved because waits for GRL become visible to deadlock detector in metadata locking subsystem and thus deadlocks like one in the first bug become impossible. The second problem is solved because global S locks which are used for GRL implementation are given preference over IX locks which are acquired by concurrent DML (and we can switch to fair scheduling in future if needed). Important change: FTWRL/GRL no longer blocks DML and DDL on temporary tables. Before this patch behavior was not consistent in this respect: in some cases DML/DDL statements on temporary tables were blocked while in others they were not. Since the main use cases for FTWRL are various forms of backups and temporary tables are not preserved during backups we have opted for consistently allowing DML/DDL on temporary tables during FTWRL/GRL. Important change: This patch changes thread state names which are used when DML/DDL of FTWRL is waiting for global read lock. It is now either "Waiting for global read lock" or "Waiting for commit lock" depending on the stage on which FTWRL is. Incompatible change: To solve deadlock in events code which was exposed by this patch we have to replace LOCK_event_metadata mutex with metadata locks on events. As result we have to prohibit DDL on events under LOCK TABLES. This patch also adds extensive test coverage for interaction of DML/DDL and FTWRL. Performance of new and old global read lock implementations in sysbench tests were compared. There were no significant difference between new and old implementations. mysql-test/include/check_ftwrl_compatible.inc: Added helper script which allows to check that a statement is compatible with FLUSH TABLES WITH READ LOCK. mysql-test/include/check_ftwrl_incompatible.inc: Added helper script which allows to check that a statement is incompatible with FLUSH TABLES WITH READ LOCK. mysql-test/include/handler.inc: Adjusted test case to the fact that now DROP TABLE closes open HANDLERs for the table to be dropped before checking if there active FTWRL in this connection. mysql-test/include/wait_show_condition.inc: Fixed small error in the timeout message. The correct name of variable used as parameter for this script is "$condition" and not "$wait_condition". mysql-test/r/delayed.result: Added test coverage for scenario which triggered assert in metadata locking subsystem. mysql-test/r/events_2.result: Updated test results after prohibiting event DDL operations under LOCK TABLES. mysql-test/r/flush.result: Added test coverage for bug #57006 "Deadlock between HANDLER and FLUSH TABLES WITH READ LOCK". mysql-test/r/flush_read_lock.result: Added test coverage for various aspects of FLUSH TABLES WITH READ LOCK functionality. mysql-test/r/flush_read_lock_kill.result: Adjusted test case after replacing custom global read lock implementation with one based on metadata locks. Use new debug_sync point. Do not disable concurrent inserts as now InnoDB we always use InnoDB table. mysql-test/r/handler_innodb.result: Adjusted test case to the fact that now DROP TABLE closes open HANDLERs for the table to be dropped before checking if there active FTWRL in this connection. mysql-test/r/handler_myisam.result: Adjusted test case to the fact that now DROP TABLE closes open HANDLERs for the table to be dropped before checking if there active FTWRL in this connection. mysql-test/r/mdl_sync.result: Adjusted test case after replacing custom global read lock implementation with one based on metadata locks. Replaced usage of GRL-specific debug_sync's with appropriate sync points in MDL subsystem. mysql-test/suite/perfschema/r/dml_setup_instruments.result: Updated test results after removing global COND_global_read_lock condition variable. mysql-test/suite/perfschema/r/func_file_io.result: Ensure that this test doesn't affect subsequent tests. At the end of its execution enable back P_S instrumentation which this test disables at some point. mysql-test/suite/perfschema/r/func_mutex.result: Ensure that this test doesn't affect subsequent tests. At the end of its execution enable back P_S instrumentation which this test disables at some point. mysql-test/suite/perfschema/r/global_read_lock.result: Adjusted test case to take into account that new GRL implementation is based on MDL. mysql-test/suite/perfschema/r/server_init.result: Adjusted test case after replacing custom global read lock implementation with one based on MDL and replacing LOCK_event_metadata mutex with metadata lock. mysql-test/suite/perfschema/t/func_file_io.test: Ensure that this test doesn't affect subsequent tests. At the end of its execution enable back P_S instrumentation which this test disables at some point. mysql-test/suite/perfschema/t/func_mutex.test: Ensure that this test doesn't affect subsequent tests. At the end of its execution enable back P_S instrumentation which this test disables at some point. mysql-test/suite/perfschema/t/global_read_lock.test: Adjusted test case to take into account that new GRL implementation is based on MDL. mysql-test/suite/perfschema/t/server_init.test: Adjusted test case after replacing custom global read lock implementation with one based on MDL and replacing LOCK_event_metadata mutex with metadata lock. mysql-test/suite/rpl/r/rpl_tmp_table_and_DDL.result: Updated test results after prohibiting event DDL under LOCK TABLES. mysql-test/t/delayed.test: Added test coverage for scenario which triggered assert in metadata locking subsystem. mysql-test/t/events_2.test: Updated test case after prohibiting event DDL operations under LOCK TABLES. mysql-test/t/flush.test: Added test coverage for bug #57006 "Deadlock between HANDLER and FLUSH TABLES WITH READ LOCK". mysql-test/t/flush_block_commit.test: Adjusted test case after changing thread state name which is used when COMMIT waits for FLUSH TABLES WITH READ LOCK from "Waiting for release of readlock" to "Waiting for commit lock". mysql-test/t/flush_block_commit_notembedded.test: Adjusted test case after changing thread state name which is used when DML waits for FLUSH TABLES WITH READ LOCK. Now we use "Waiting for global read lock" in this case. mysql-test/t/flush_read_lock.test: Added test coverage for various aspects of FLUSH TABLES WITH READ LOCK functionality. mysql-test/t/flush_read_lock_kill-master.opt: We no longer need to use make_global_read_lock_block_commit_loop debug tag in this test. Instead we rely on an appropriate debug_sync point in MDL code. mysql-test/t/flush_read_lock_kill.test: Adjusted test case after replacing custom global read lock implementation with one based on metadata locks. Use new debug_sync point. Do not disable concurrent inserts as now InnoDB we always use InnoDB table. mysql-test/t/lock_multi.test: Adjusted test case after changing thread state names which are used when DML or DDL waits for FLUSH TABLES WITH READ LOCK to "Waiting for global read lock". mysql-test/t/mdl_sync.test: Adjusted test case after replacing custom global read lock implementation with one based on metadata locks. Replaced usage of GRL-specific debug_sync's with appropriate sync points in MDL subsystem. Updated thread state names which are used when DDL waits for FTWRL. mysql-test/t/trigger_notembedded.test: Adjusted test case after changing thread state names which are used when DML or DDL waits for FLUSH TABLES WITH READ LOCK to "Waiting for global read lock". sql/event_data_objects.cc: Removed Event_queue_element::status/last_executed_changed members and Event_queue_element::update_timing_fields() method. We no longer use this class for updating mysql.events once event is chosen for execution. Accesses to instances of this class in scheduler thread require protection by Event_queue::LOCK_event_queue mutex and we try to avoid updating table while holding this lock. sql/event_data_objects.h: Removed Event_queue_element::status/last_executed_changed members and Event_queue_element::update_timing_fields() method. We no longer use this class for updating mysql.events once event is chosen for execution. Accesses to instances of this class in scheduler thread require protection by Event_queue::LOCK_event_queue mutex and we try to avoid updating table while holding this lock. sql/event_db_repository.cc: - Changed Event_db_repository methods to not release all metadata locks once they are done updating mysql.events table. This allows to keep metadata lock protecting against GRL and lock protecting particular event around until corresponding DDL statement is written to the binary log. - Removed logic for conditional update of "status" and "last_executed" fields from update_timing_fields_for_event() method. In the only case when this method is called now "last_executed" is always modified and tracking change of "status" is too much hassle. sql/event_db_repository.h: Removed logic for conditional update of "status" and "last_executed" fields from Event_db_repository:: update_timing_fields_for_event() method. In the only case when this method is called now "last_executed" is always modified and tracking change of "status" field is too much hassle. sql/event_queue.cc: Changed event scheduler code not to update mysql.events table while holding Event_queue::LOCK_event_queue mutex. Doing so led to a deadlock with a new GRL implementation. This deadlock didn't occur with old implementation due to fact that code acquiring protection against GRL ignored pending GRL requests (which lead to GRL starvation). One of goals of new implementation is to disallow GRL starvation and so we have to solve problem with this deadlock in a different way. sql/events.cc: Changed methods of Events class to acquire protection against GRL while perfoming DDL statement and keep it until statement is written to the binary log. Unfortunately this step together with new GRL implementation exposed deadlock involving Events::LOCK_event_metadata and GRL. To solve it Events::LOCK_event_metadata mutex was replaced with a metadata lock on event. As a side-effect events DDL has to be prohibited under LOCK TABLES even in cases when mysql.events table was explicitly locked for write. sql/events.h: Replaced Events::LOCK_event_metadata mutex with a metadata lock on event. sql/ha_ndbcluster.cc: Updated code after replacing custom global read lock implementation with one based on MDL. Since MDL subsystem should now be able to detect deadlocks involving metadata locks and GRL there is no need for special handling of active GRL. sql/handler.cc: Replaced custom implementation of global read lock with one based on metadata locks. Consequently when doing commit instead of calling method of Global_read_lock class to acquire protection against GRL we simply acquire IX in COMMIT namespace. sql/lock.cc: Replaced custom implementation of global read lock with one based on metadata locks. This step allows to expose wait for GRL to deadlock detector of MDL subsystem and thus succesfully resolve deadlocks similar to one behind bug #57006 "Deadlock between HANDLER and FLUSH TABLES WITH READ LOCK". It also solves problem with GRL starvation described in bug #54673 "It takes too long to get readlock for 'FLUSH TABLES WITH READ LOCK'" since metadata locks used by GRL give preference to FTWRL statement instead of DML statements (if needed in future this can be changed to fair scheduling). Similar to old implementation of acquisition of GRL is two-step. During the first step we block all concurrent DML and DDL statements by acquiring global S metadata lock (each DML and DDL statement acquires global IX lock for its duration). During the second step we block commits by acquiring global S lock in COMMIT namespace (commit code acquires global IX lock in this namespace). Note that unlike in old implementation acquisition of protection against GRL in DML and DDL is semi-automatic. We assume that any statement which should be blocked by GRL will either open and acquires write-lock on tables or acquires metadata locks on objects it is going to modify. For any such statement global IX metadata lock is automatically acquired for its duration. To support this change: - Global_read_lock::lock/unlock_global_read_lock and make_global_read_lock_block_commit methods were changed accordingly. - Global_read_lock::wait_if_global_read_lock() and start_waiting_global_read_lock() methods were dropped. It is now responsibility of code acquiring metadata locks opening tables to acquire protection against GRL by explicitly taking global IX lock with statement duration. - Global variables, mutex and condition variable used by old implementation was removed. - lock_routine_name() was changed to use statement duration for its global IX lock. It was also renamed to lock_object_name() as it now also used to take metadata locks on events. - Global_read_lock::set_explicit_lock_duration() was added which allows not to release locks used for GRL when leaving prelocked mode. sql/lock.h: - Renamed lock_routine_name() to lock_object_name() and changed its signature to allow its usage for events. - Removed broadcast_refresh() function. It is no longer needed with new GRL implementation. sql/log_event.cc: Release metadata locks with statement duration at the end of processing legacy event for LOAD DATA. This ensures that replication thread processing such event properly releases its protection against global read lock. sql/mdl.cc: Changed MDL subsystem to support new MDL-based implementation of global read lock. Added COMMIT and EVENTS namespaces for metadata locks. Changed thread state name for GLOBAL namespace to "Waiting for global read lock". Optimized MDL_map::find_or_insert() method to avoid taking m_mutex mutex when looking up MDL_lock objects for GLOBAL or COMMIT namespaces. We keep pre-created MDL_lock objects for these namespaces around and simply return pointers to these global objects when needed. Changed MDL_lock/MDL_scoped_lock to properly handle notification of insert delayed handler threads when FTWRL takes global S lock. Introduced concept of lock duration. In addition to locks with transaction duration which work in the way which is similar to how locks worked before (i.e. they are released at the end of transaction), locks with statement and explicit duration were introduced. Locks with statement duration are automatically released at the end of statement. Locks with explicit duration require explicit release and obsolete concept of transactional sentinel. * Changed MDL_request and MDL_ticket classes to support notion of duration. * Changed MDL_context to keep locks with different duration in different lists. Changed code handling ticket list to take this into account. * Changed methods responsible for releasing locks to take into account duration of tickets. Particularly public MDL_context::release_lock() method now only can release tickets with explicit duration (there is still internal method which allows to specify duration). To release locks with statement or transaction duration one have to use release_statement/transactional_locks() methods. * Concept of savepoint for MDL subsystem now has to take into account locks with statement duration. Consequently MDL_savepoint class was introduced and methods working with savepoints were updated accordingly. * Added methods which allow to set duration for one or all locks in the context. sql/mdl.h: Changed MDL subsystem to support new MDL-based implementation of global read lock. Added COMMIT and EVENTS namespaces for metadata locks. Introduced concept of lock duration. In addition to locks with transaction duration which work in the way which is similar to how locks worked before (i.e. they are released at the end of transaction), locks with statement and explicit duration were introduced. Locks with statement duration are automatically released at the end of statement. Locks with explicit duration require explicit release and obsolete concept of transactional sentinel. * Changed MDL_request and MDL_ticket classes to support notion of duration. * Changed MDL_context to keep locks with different duration in different lists. Changed code handling ticket list to take this into account. * Changed methods responsible for releasing locks to take into account duration of tickets. Particularly public MDL_context::release_lock() method now only can release tickets with explicit duration (there is still internal method which allows to specify duration). To release locks with statement or transaction duration one have to use release_statement/transactional_locks() methods. * Concept of savepoint for MDL subsystem now has to take into account locks with statement duration. Consequently MDL_savepoint class was introduced and methods working with savepoints were updated accordingly. * Added methods which allow to set duration for one or all locks in the context. sql/mysqld.cc: Removed global mutex and condition variables which were used by old implementation of GRL. Also we no longer need to initialize Events::LOCK_event_metadata mutex as it was replaced with metadata locks on events. sql/mysqld.h: Removed global variable, mutex and condition variables which were used by old implementation of GRL. sql/rpl_rli.cc: When slave thread closes tables which were open for handling of RBR events ensure that it releases global IX lock which was acquired as protection against GRL. sql/sp.cc: Adjusted code to the new signature of lock_object/routine_name(), to the fact that one now needs specify duration of lock when initializing MDL_request and to the fact that savepoints for MDL subsystem are now represented by MDL_savepoint class. sql/sp_head.cc: Ensure that statements in stored procedures release statement metadata locks and thus release their protectiong against GRL in proper moment in time. Adjusted code to the fact that one now needs specify duration of lock when initializing MDL_request. sql/sql_admin.cc: Adjusted code to the fact that one now needs specify duration of lock when initializing MDL_request. sql/sql_base.cc: - Implemented support for new approach to acquiring protection against global read lock. We no longer acquire such protection explicitly on the basis of statement flags. Instead we always rely on code which is responsible for acquiring metadata locks on object to be changed acquiring this protection. This is achieved by acquiring global IX metadata lock with statement duration. Code doing this also responsible for checking that current connection has no active GRL by calling an Global_read_lock::can_acquire_protection() method. Changed code in open_table() and lock_table_names() accordingly. Note that as result of this change DDL and DML on temporary tables is always compatible with GRL (before it was incompatible in some cases and compatible in other cases). - To speed-up code acquiring protection against GRL introduced m_has_protection_against_grl member in Open_table_context class. It indicates that protection was already acquired sometime during open_tables() execution and new attempts can be skipped. - Thanks to new GRL implementation calls to broadcast_refresh() became unnecessary and were removed. - Adjusted code to the fact that one now needs specify duration of lock when initializing MDL_request and to the fact that savepoints for MDL subsystem are now represented by MDL_savepoint class. sql/sql_base.h: Adjusted code to the fact that savepoints for MDL subsystem are now represented by MDL_savepoint class. Also introduced Open_table_context::m_has_protection_against_grl member which allows to avoid acquiring protection against GRL while opening tables if such protection was already acquired. sql/sql_class.cc: Changed THD::leave_locked_tables_mode() after transactional sentinel for metadata locks was obsoleted by introduction of locks with explicit duration. sql/sql_class.h: - Adjusted code to the fact that savepoints for MDL subsystem are now represented by MDL_savepoint class. - Changed Global_read_lock class according to changes in global read lock implementation: * wait_if_global_read_lock and start_waiting_global_read_lock are now gone. Instead code needing protection against GRL has to acquire global IX metadata lock with statement duration itself. To help it new can_acquire_protection() was introduced. Also as result of the above change m_protection_count member is gone too. * Added m_mdl_blocks_commits_lock member to store metadata lock blocking commits. * Adjusted code to the fact that concept of transactional sentinel was obsoleted by concept of lock duration. - Removed CF_PROTECT_AGAINST_GRL flag as it is no longer necessary. New GRL implementation acquires protection against global read lock automagically when statement acquires metadata locks on tables or other objects it is going to change. sql/sql_db.cc: Adjusted code to the fact that one now needs specify duration of lock when initializing MDL_request. sql/sql_handler.cc: Removed call to broadcast_refresh() function. It is no longer needed with new GRL implementation. Adjusted code after introducing duration concept for metadata locks. Particularly to the fact transactional sentinel was replaced with explicit duration. sql/sql_handler.h: Renamed mysql_ha_move_tickets_after_trans_sentinel() to mysql_ha_set_explicit_lock_duration() after transactional sentinel was obsoleted by locks with explicit duration. sql/sql_insert.cc: Adjusted code handling delaying inserts after switching to new GRL implementation. Now connection thread initiating delayed insert has to acquire global IX lock in addition to metadata lock on table being inserted into. This IX lock protects against GRL and similarly to SW lock on table being inserted into has to be passed to handler thread in order to avoid deadlocks. sql/sql_lex.cc: LEX::protect_against_global_read_lock member is no longer necessary since protection against GRL is automatically taken by code acquiring metadata locks/opening tables. sql/sql_lex.h: LEX::protect_against_global_read_lock member is no longer necessary since protection against GRL is automatically taken by code acquiring metadata locks/opening tables. sql/sql_parse.cc: - Implemented support for new approach to acquiring protection against global read lock. We no longer acquire such protection explicitly on the basis of statement flags. Instead we always rely on code which is responsible for acquiring metadata locks on object to be changed acquiring this protection. This is achieved by acquiring global IX metadata lock with statement duration. This lock is automatically released at the end of statement execution. - Changed implementation of CREATE/DROP PROCEDURE/FUNCTION not to release metadata locks and thus protection against of GRL in the middle of statement execution. - Adjusted code to the fact that one now needs specify duration of lock when initializing MDL_request and to the fact that savepoints for MDL subsystem are now represented by MDL_savepoint class. sql/sql_prepare.cc: Adjusted code to the to the fact that savepoints for MDL subsystem are now represented by MDL_savepoint class. sql/sql_rename.cc: With new GRL implementation there is no need to explicitly acquire protection against GRL before renaming tables. This happens automatically in code which acquires metadata locks on tables being renamed. sql/sql_show.cc: Adjusted code to the fact that one now needs specify duration of lock when initializing MDL_request and to the fact that savepoints for MDL subsystem are now represented by MDL_savepoint class. sql/sql_table.cc: - With new GRL implementation there is no need to explicitly acquire protection against GRL before dropping tables. This happens automatically in code which acquires metadata locks on tables being dropped. - Changed mysql_alter_table() not to release lock on new table name explicitly and to rely on automatic release of locks at the end of statement instead. This was necessary since now MDL_context::release_lock() is supported only for locks for explicit duration. sql/sql_trigger.cc: With new GRL implementation there is no need to explicitly acquire protection against GRL before changing table triggers. This happens automatically in code which acquires metadata locks on tables which triggers are to be changed. sql/sql_update.cc: Fix bug exposed by GRL testing. During prepare phase acquire only S metadata locks instead of SW locks to keep prepare of multi-UPDATE compatible with concurrent LOCK TABLES WRITE and global read lock. sql/sql_view.cc: With new GRL implementation there is no need to explicitly acquire protection against GRL before creating view. This happens automatically in code which acquires metadata lock on view to be created. sql/sql_yacc.yy: LEX::protect_against_global_read_lock member is no longer necessary since protection against GRL is automatically taken by code acquiring metadata locks/opening tables. sql/table.cc: Adjusted code to the fact that one now needs specify duration of lock when initializing MDL_request. sql/table.h: Adjusted code to the fact that one now needs specify duration of lock when initializing MDL_request. sql/transaction.cc: Replaced custom implementation of global read lock with one based on metadata locks. Consequently when doing commit instead of calling method of Global_read_lock class to acquire protection against GRL we simply acquire IX in COMMIT namespace. Also adjusted code to the fact that MDL savepoint is now represented by MDL_savepoint class. |
15 years ago |
|
|
20acfbf30d |
Fix for: LP #634955: Assert in _ma_update_at_original_place()
Added locking of lock mutex when updating status in external_unlock() for Aria and MyISAM tables. Fixed that 'source' command doesn't cause mysql command line tool to exit on error. DEBUG_EXECUTE() and DEBUG_EVALUATE_IF() should not execute things based on wildcards. (Allows one to run --debug with mysql-test-run scripts that uses @debug) Fixed several core dump, deadlock and crashed table bugs in handling of LOCK TABLE with MERGE tables: - Added priority of locks to avoid crashes with MERGE tables. - Added thr_lock_merge() to allow one to merge two results of thr_lock(). Fixed 'not found row' bug in REPLACE with Aria tables. Mark MyISAM tables that are part of MERGE with HA_OPEN_MERGE_TABLE and set the locks to have priority THR_LOCK_MERGE_PRIV. - By sorting MERGE tables last in thr_multi_unlock() it's safer to release and relock them many times (can happen when TRIGGERS are created) Avoid printing (null) in debug file (to easier find out wrong NULL pointer usage with %s). client/mysql.cc: Fixed that 'source' command doesn't cause mysql command line tool to exit on error. client/mysqltest.cc: Don't send NULL to fn_format(). (Can cause crash on Solaris when using --debug) dbug/dbug.c: DEBUG_EXECUTE() and DEBUG_EVALUATE_IF() should not execute things based on wildcards. include/my_base.h: Added flag to signal if one opens a MERGE table. Added extra() command to signal that one is not part of a MERGE table anymore. include/thr_lock.h: Added priority for locks (needed to fix bug in thr_lock when using MERGE tables) Added option to thr_unlock() if get_status() should be called. Added prototype for thr_merge_locks(). mysql-test/mysql-test-run.pl: Ignore crashed table warnings for tables named 'crashed'. mysql-test/r/merge.result: Renamed triggers to make debugging easier. Added some CHECK TABLES to catch errors earlier. Additional tests. mysql-test/r/merge_debug.result: Test of error handling when reopening MERGE tables. mysql-test/r/udf_query_cache.result: Added missing flush status mysql-test/suite/parts/r/partition_repair_myisam.result: Update results mysql-test/t/merge.test: Renamed triggers to make debugging easier. Added some CHECK TABLES to catch errors earlier. Additional tests. mysql-test/t/merge_debug.test: Test of error handling when reopening MERGE tables. mysql-test/t/udf_query_cache.test: Added missing flush status mysys/my_getopt.c: Removed not used variable mysys/my_symlink2.c: Changed (null) to (NULL) to make it easier to find NULL arguments to DBUG_PRINT() functions. (On linux, NULL to sprintf is printed 'null') mysys/thr_lock.c: Added priority of locks to avoid crashes with MERGE tables. Added thr_lock_merge() to allow one to merge two results of thr_lock(). - This is needed for MyISAM as all locked table must share the same status. If not, you will not see newly inserted rows in other instances of the table. If calling thr_unlock() with THR_UNLOCK_UPDATE_STATUS, call update_status() and restore_status() for the locks. This is needed in some rare cases where we call thr_unlock() followed by thr_lock() without calling external_unlock/external_lock in between. Simplify loop in thr_multi_lock(). Added 'start_trans', which is called at end of thr_multi_lock() when all locks are taken. - This was needed by Aria to ensure that transaction is started when we got all locks, not at get_status(). Without this, some rows could not be visible when we lock two tables at the same time, causing REPLACE using two tables to fail unexpectedly. sql/handler.cc: Add an assert() in handler::print_error() for "impossible errors" (like table is crashed) when --debug-assert-if-crashed-table is used. sql/lock.cc: Simplify mysql_lock_tables() code if get_lock_data() returns 0 locks. Added new parameter to thr_multi_unlock() In mysql_unlock_read_tables(), call first externa_unlock(), then thr_multi_unlock(); This is same order as we do in mysql_unlock_tables(). Don't abort locks in mysql_lock_abort() for merged tables when a MERGE table is deleted; Would cause a spin lock. Added call to thr_merge_locks() in mysql_lock_merge() to ensure consistency in thr_locks(). - New locks of same type and table is stored after the old lock to ensure that we get the status from the original lock. sql/mysql_priv.h: Added debug_assert_if_crashed_table sql/mysqld.cc: Added --debug-assert-if-crashed-table sql/parse_file.cc: Don't print '(null)' in DBUG_PRINT of no dir given sql/set_var.cc: Increase default size of buffer for @debug variable. sql/sql_base.cc: In case of error from reopen_table() in reopen_tables(), call unlock_open_table() and restart loop. - This fixed bug when we twice deleted same table from open_cache. Don't take name lock for already name locked table in open_unireg_entry(). - Fixed bug when doing repair in reopen_table(). - In detach_merge_children(), always detach if 'clear_refs' is given. We can't trust parent->children_attached as this function can be called twice, first time with clear_refs set to 0. sql/sql_class.cc: Changed printing of (null) to "" in set_thd_proc_info() sql/sql_parse.cc: Added DBUG sql/sql_trigger.cc: Don't call unlink_open_table() if reopen_table() fails as the table may already be freed. storage/maria/ma_bitmap.c: Fixed DBUG_ASSERT() in allocate_tail() storage/maria/ma_blockrec.c: Fixed wrong calculation of row length for very small rows in undo_row_update(). - Fixes ASSERT() when doing undo. storage/maria/ma_blockrec.h: Added _ma_block_start_trans() and _ma_block_start_trans_no_versioning() storage/maria/ma_locking.c: Call _ma_update_status_with_lock() when releasing write locks. - Fixes potential problem with updating status without the proper lock. storage/maria/ma_open.c: Changed to use start_trans() instead of get_status() to ensure that we see all rows in all locked tables when we got the locks. - Fixed 'not found row' bug in REPLACE with Aria tables. storage/maria/ma_state.c: Added _ma_update_status_with_lock() and _ma_block_start_trans(). This is to ensure that we see all rows in all locked tables when we got the locks. storage/maria/ma_state.h: Added _ma_update_status_with_lock() storage/maria/ma_write.c: More DBUG_PRINT storage/myisam/mi_check.c: Fixed error message storage/myisam/mi_extra.c: Added HA_EXTRA_DETACH_CHILD: - Detach MyISAM table to not be part of MERGE table (remove flag & lock priority). storage/myisam/mi_locking.c: Call mi_update_status_with_lock() when releasing write locks. - Fixes potential problem with updating status without the proper lock. Change to use new HA_OPEN_MERGE_TABLE flag to test if MERGE table. Added mi_fix_status(), called by thr_merge(). storage/myisam/mi_open.c: Added marker if part of MERGE table. Call mi_fix_status() in thr_lock() for transactional tables. storage/myisam/myisamdef.h: Change my_once_flag to uint, as it stored different values than just 0/1 Added 'open_flag' to store state given to mi_open() storage/myisammrg/ha_myisammrg.cc: Add THR_LOCK_MERGE_PRIV to THR_LOCK_DATA to get MERGE locks sorted after other types of locks. storage/myisammrg/myrg_locking.c: Remove windows specific code. storage/myisammrg/myrg_open.c: Use HA_OPEN_MERGE_TABLE to mi_open(). Set HA_OPEN_MERGE_TABLE for linked MyISAM tables. storage/xtradb/buf/buf0buf.c: Fixed compiler warning storage/xtradb/buf/buf0lru.c: Initialize variable that could be used not initialized. |
15 years ago |
|
|
4dff0296f4 |
Added more wait states for THD wait service
|
15 years ago |
|
|
2881b8014c |
Bug#37780: Make KILL reliable (main.kill fails randomly)
- A prerequisite cleanup patch for making KILL reliable. The test case main.kill did not work reliably. The following problems have been identified: 1. A kill signal could go lost if it came in, short before a thread went reading on the client connection. 2. A kill signal could go lost if it came in, short before a thread went waiting on a condition variable. These problems have been solved as follows. Please see also added code comments for more details. 1. There is no safe way to detect, when a thread enters the blocking state of a read(2) or recv(2) system call, where it can be interrupted by a signal. Hence it is not possible to wait for the right moment to send a kill signal. It has been decided, not to fix it in the code. Instead, the test case repeats the KILL statement until the connection terminates. 2. Before waiting on a condition variable, we register it together with a synchronizating mutex in THD::mysys_var. After this, we need to test THD::killed again. At some places we did only test it in a loop condition before the registration. When THD::killed had been set between this test and the registration, we entered waiting without noticing the killed flag. Additional checks ahve been introduced where required. In addition to the above, a re-write of the main.kill test case has been done. All sleeps have been replaced by Debug Sync Facility synchronization. A couple of sync points have been added to the server code. To avoid further problems, if the test case fails in spite of the fixes, the test case has been added to the "experimental" list for now. - Most of the work on this patch is authored by Ingo Struewing mysql-test/t/kill.test: Re-wrote test case to use Debug Sync points instead of sleeps sql/event_queue.cc: Fixed kill detection in Event_queue::cond_wait() by adding a check after enter_cond(). sql/lock.cc: Moved Debug Sync points behind enter_cond(). Fixed comments. sql/slave.cc: Fixed kill detection in start_slave_thread() by adding a check after enter_cond(). sql/sql_class.cc: Swapped order of kill and close in THD::awake(). Added comments. sql/sql_class.h: Added a comment to THD::killed. sql/sql_parse.cc: Added a sync point in do_command(). sql/sql_select.cc: Added a sync point in JOIN::optimize(). |
15 years ago |
|
|
3e9c52250a |
Bug#45288: pb2 returns a lot of compilation warnings
Fix assorted warnings that are generated in optimized builds. Most of it is silencing variables that are set but unused. This patch also introduces the MY_ASSERT_UNREACHABLE macro which helps the compiler to deduce that a certain piece of code is unreachable. include/my_compiler.h: Use GCC's __builtin_unreachable if available. It allows GCC to deduce the unreachability of certain code paths, thus avoiding warnings that, for example, accused that a variable could be used without being initialized (due to unreachable code paths). |
15 years ago |
|
|
00496b7acd |
Fix for bug #52044 "FLUSH TABLES WITH READ LOCK and FLUSH
TABLES <list> WITH READ LOCK are incompatible". The problem was that FLUSH TABLES <list> WITH READ LOCK which was issued when other connection has acquired global read lock using FLUSH TABLES WITH READ LOCK was blocked and has to wait until global read lock is released. This issue stemmed from the fact that FLUSH TABLES <list> WITH READ LOCK implementation has acquired X metadata locks on tables to be flushed. Since these locks required acquiring of global IX lock this statement was incompatible with global read lock. This patch addresses problem by using SNW metadata type of lock for tables to be flushed by FLUSH TABLES <list> WITH READ LOCK. It is OK to acquire them without global IX lock as long as we won't try to upgrade those locks. Since SNW locks allow concurrent statements using same table FLUSH TABLE <list> WITH READ LOCK now has to wait until old versions of tables to be flushed go away after acquiring metadata locks. Since such waiting can lead to deadlock MDL deadlock detector was extended to take into account waits for flush and resolve such deadlocks. As a bonus code in open_tables() which was responsible for waiting old versions of tables to go away was refactored. Now when we encounter old version of table in open_table() we don't back-off and wait for all old version to go away, but instead wait for this particular table to be flushed. Such approach supported by deadlock detection should reduce number of scenarios in which FLUSH TABLES aborts concurrent multi-statement transactions. Note that active FLUSH TABLES <list> WITH READ LOCK still blocks concurrent FLUSH TABLES WITH READ LOCK statement as the former keeps tables open and thus prevents the latter statement from doing flush. mysql-test/include/handler.inc: Adjusted test case after changing status which is set when FLUSH TABLES waits for tables to be flushed from "Flushing tables" to "Waiting for table". mysql-test/r/flush.result: Added test which checks that "flush tables <list> with read lock" is compatible with active "flush tables with read lock" but not vice-versa. This test also covers bug #52044 "FLUSH TABLES WITH READ LOCK and FLUSH TABLES <list> WITH READ LOCK are incompatible". mysql-test/r/mdl_sync.result: Added scenarios in which wait for table to be flushed causes deadlocks to the coverage of MDL deadlock detector. mysql-test/suite/perfschema/r/dml_setup_instruments.result: Adjusted test results after removal of COND_refresh condition variable. mysql-test/suite/perfschema/r/server_init.result: Adjusted test and its results after removal of COND_refresh condition variable. mysql-test/suite/perfschema/t/server_init.test: Adjusted test and its results after removal of COND_refresh condition variable. mysql-test/t/flush.test: Added test which checks that "flush tables <list> with read lock" is compatible with active "flush tables with read lock" but not vice-versa. This test also covers bug #52044 "FLUSH TABLES WITH READ LOCK and FLUSH TABLES <list> WITH READ LOCK are incompatible". mysql-test/t/kill.test: Adjusted test case after changing status which is set when FLUSH TABLES waits for tables to be flushed from "Flushing tables" to "Waiting for table". mysql-test/t/lock_multi.test: Adjusted test case after changing status which is set when FLUSH TABLES waits for tables to be flushed from "Flushing tables" to "Waiting for table". mysql-test/t/mdl_sync.test: Added scenarios in which wait for table to be flushed causes deadlocks to the coverage of MDL deadlock detector. sql/ha_ndbcluster.cc: Adjusted code after adding one more parameter for close_cached_tables() call - timeout for waiting for table to be flushed. sql/ha_ndbcluster_binlog.cc: Adjusted code after adding one more parameter for close_cached_tables() call - timeout for waiting for table to be flushed. sql/lock.cc: Removed COND_refresh condition variable. See comment for sql_base.cc for details. sql/mdl.cc: Now MDL deadlock detector takes into account information about waits for table flushes when searching for deadlock. To implement this change: - Declaration of enum_deadlock_weight and Deadlock_detection_visitor were moved to mdl.h header to make them available to the code in table.cc which implements deadlock detector traversal through edges of waiters graph representing waiting for flush. - Since now MDL_context may wait not only for metadata lock but also for table to be flushed an abstract Wait_for_edge class was introduced. Its descendants MDL_ticket and Flush_ticket incapsulate specifics of inspecting waiters graph when following through edge representing wait of particular type. We no longer require global IX metadata lock when acquiring SNW or SNRW locks. Such locks are needed only when metadata locks of these types are upgraded to X locks. This allows to use SNW locks in FLUSH TABLES <list> WITH READ LOCK implementation and keep the latter compatible with global read lock. sql/mdl.h: Now MDL deadlock detector takes into account information about waits for table flushes when searching for deadlock. To implement this change: - Declaration of enum_deadlock_weight and Deadlock_detection_visitor were moved to mdl.h header to make them available to the code in table.cc which implements deadlock detector traversal through edges of waiters graph representing waiting for flush. - Since now MDL_context may wait not only for metadata lock but also for table to be flushed an abstract Wait_for_edge class was introduced. Its descendants MDL_ticket and Flush_ticket incapsulate specifics of inspecting waiters graph when following through edge representing wait of particular type. - Deadlock_detection_visitor now has m_table_shares_visited member which allows to support recursive locking for LOCK_open. This is required when deadlock detector inspects waiters graph which contains several edges representing waits for flushes or needs to come through the such edge more than once. sql/mysqld.cc: Removed COND_refresh condition variable. See comment for sql_base.cc for details. sql/mysqld.h: Removed COND_refresh condition variable. See comment for sql_base.cc for details. sql/sql_base.cc: Changed approach to how threads are waiting for table to be flushed. Now thread that wants to wait for old table to go away subscribes for notification by adding Flush_ticket to table's share and waits using MDL_context::m_wait object. Once table gets flushed (i.e. all tables are closed and table share is ready to be destroyed) all such waiters are notified individually. Thanks to this change MDL deadlock detector can take such waits into account. To implement this/as result of this change: - tdc_wait_for_old_versions() was replaced with tdc_wait_for_old_version() which waits for individual old share to go away and which is called by open_table() after finding out that share is outdated. We don't need to perform back-off before such waiting thanks to the fact that deadlock detector now sees such waits. - As result Open_table_ctx::m_mdl_requests became unnecessary and was removed. We no longer allocate copies of MDL_request objects on MEM_ROOT when MYSQL_OPEN_FORCE_SHARED/SHARED_HIGH_PRIO flags are in effect. - close_cached_tables() and tdc_wait_for_old_version() share code which implements waiting for share to be flushed - the both use TABLE_SHARE::wait_until_flush() method. Thanks to this close_cached_tables() supports timeouts and has extra parameter for this. - Open_table_context::OT_MDL_CONFLICT enum element was renamed to OT_CONFLICT as it is now also used in cases when back-off is required to resolve deadlock caused by waiting for flush and not metadata lock. - In cases when we discover that current connection tries to open tables from different generation we now simply back-off and restart process of opening tables. To support this Open_table_context::OT_REOPEN_TABLES enum element was added. - COND_refresh condition variable became unnecessary and was removed. - mysql_notify_thread_having_shared_lock() no longer wakes up connections waiting for flush as all such connections can be waken up by deadlock detector if necessary. sql/sql_base.h: - close_cached_tables() now has one more parameter - timeout for waiting for table to be flushed. - Open_table_context::OT_MDL_CONFLICT enum element was renamed to OT_CONFLICT as it is now also used in cases when back-off is required to resolve deadlock caused by waiting for flush and not metadata lock. Added new OT_REOPEN_TABLES enum element to be used in cases when we need to restart open tables process even in the middle of transaction. - Open_table_ctx::m_mdl_requests became unnecessary and was removed. sql/sql_class.h: Added assert ensuring that we won't use LOCK_open mutex with THD::enter_cond(). Otherwise deadlocks can arise in MDL deadlock detector. sql/sql_parse.cc: Changed FLUSH TABLES <list> WITH READ LOCK to take SNW metadata locks instead of X locks on tables to be flushed. Since we no longer require global IX lock to be taken when SNW locks are taken this makes this statement compatible with FLUSH TABLES WITH READ LOCK statement. Since SNW locks allow other connections to have table opened FLUSH TABLES <list> WITH READ LOCK now has to wait during open_tables() for old version to go away. Such waits can lead to deadlocks which will be detected by MDL deadlock detector which now takes waits for table to be flushed into account. Also adjusted code after adding one more parameter for close_cached_tables() call - timeout for waiting for table to be flushed. sql/sql_yacc.yy: FLUSH TABLES <list> WITH READ LOCK now needs only SNW metadata locks on tables. sql/sys_vars.cc: Adjusted code after adding one more parameter for close_cached_tables() call - timeout for waiting for table to be flushed. sql/table.cc: Implemented new approach to how threads are waiting for table to be flushed. Now thread that wants to wait for old table to go away subscribes for notification by adding Flush_ticket to table's share and waits using MDL_context::m_wait object. Once table gets flushed (i.e. all tables are closed and table share is ready to be destroyed) all such waiters are notified individually. This change allows to make such waits visible inside of MDL deadlock detector. To do it: - Added list of waiters/Flush_tickets to TABLE_SHARE class. - Changed free_table_share() to postpone freeing of share memory until last waiter goes away and to wake up subscribed waiters. - Added TABLE_SHARE::wait_until_flushed() method which implements subscription to the list of waiters for table to be flushed and waiting for this event. Implemented interface which allows to expose waits for flushes to MDL deadlock detector: - Introduced Flush_ticket class a descendant of Wait_for_edge class. - Added TABLE_SHARE::find_deadlock() method which allows deadlock detector to find out what contexts are still using old version of table in question (i.e. to find out what contexts are waited for by owner of Flush_ticket). sql/table.h: In order to support new strategy of waiting for table flush (see comment for table.cc for details) added list of waiters/Flush_tickets to TABLE_SHARE class. Implemented interface which allows to expose waits for flushes to MDL deadlock detector: - Introduced Flush_ticket class a descendant of Wait_for_edge class. - Added TABLE_SHARE::find_deadlock() method which allows deadlock detector to find out what contexts are still using old version of table in question (i.e. to find out what contexts are waited for by owner of Flush_ticket). |
16 years ago |
|
|
740c0d3a87 |
Implement WL#5502 Remove dead 5.0 class Sensitive_cursor.
Remove dead and unused code. Update to reflect the code review requests. include/thr_lock.h: Remove declarations for THR_LOCK_OWNER, added along with the patch for sensitive cursors. mysys/thr_lock.c: Remove support for multiple thr_lock requestors per THD. sql/lock.cc: Revert the patch that added support for sensitive cursors. sql/sp_rcontext.cc: Updated the use of mysql_open_cursor(). sql/sql_class.cc: Move the instance of Server_side_cursor from class Prepared_statement to class Statement. sql/sql_class.h: Move the isntance of Server_side_cursor from class Prepared_statement to class Statement. Remove multiple lock_ids of thr_lock. sql/sql_cursor.cc: Remove Sensitive_cursor implementation. sql/sql_cursor.h: Remove declarations for sensitive cursors. sql/sql_prepare.cc: Move the declaration of instance of Server_side_cursor from class Statement to class Prepared_statement, where it's used. sql/sql_select.cc: Remove sensitive cursor support. sql/sql_select.h: Remove sensitive cursor support. sql/sql_union.cc: Remove sensitive cursor support. |
16 years ago |
|
|
f56dd32bf7 |
Bug#34043: Server loops excessively in _checkchunk() when safemalloc is enabled
Essentially, the problem is that safemalloc is excruciatingly slow as it checks all allocated blocks for overrun at each memory management primitive, yielding a almost exponential slowdown for the memory management functions (malloc, realloc, free). The overrun check basically consists of verifying some bytes of a block for certain magic keys, which catches some simple forms of overrun. Another minor problem is violation of aliasing rules and that its own internal list of blocks is prone to corruption. Another issue with safemalloc is rather the maintenance cost as the tool has a significant impact on the server code. Given the magnitude of memory debuggers available nowadays, especially those that are provided with the platform malloc implementation, maintenance of a in-house and largely obsolete memory debugger becomes a burden that is not worth the effort due to its slowness and lack of support for detecting more common forms of heap corruption. Since there are third-party tools that can provide the same functionality at a lower or comparable performance cost, the solution is to simply remove safemalloc. Third-party tools can provide the same functionality at a lower or comparable performance cost. The removal of safemalloc also allows a simplification of the malloc wrappers, removing quite a bit of kludge: redefinition of my_malloc, my_free and the removal of the unused second argument of my_free. Since free() always check whether the supplied pointer is null, redudant checks are also removed. Also, this patch adds unit testing for my_malloc and moves my_realloc implementation into the same file as the other memory allocation primitives. client/mysqldump.c: Pass my_free directly as its signature is compatible with the callback type -- which wasn't the case for free_table_ent. |
16 years ago |
|
|
9ff272fbbd |
A 5.5 version of the fix for Bug #54360 "Deadlock DROP/ALTER/CREATE
DATABASE with open HANDLER" Remove LOCK_create_db, database name locks, and use metadata locks instead. This exposes CREATE/DROP/ALTER DATABASE statements to the graph-based deadlock detector in MDL, and paves the way for a safe, deadlock-free implementation of RENAME DATABASE. Database DDL statements will now take exclusive metadata locks on the database name, while table/view/routine DDL statements take intention exclusive locks on the database name. This prevents race conditions between database DDL and table/view/routine DDL. (e.g. DROP DATABASE with concurrent CREATE/ALTER/DROP TABLE) By adding database name locks, this patch implements WL#4450 "DDL locking: CREATE/DROP DATABASE must use database locks" and WL#4985 "DDL locking: namespace/hierarchical locks". The patch also changes code to use init_one_table() where appropriate. The new lock_table_names() function requires TABLE_LIST::db_length to be set correctly, and this is taken care of by init_one_table(). This patch also adds a simple template to help work with the mysys HASH data structure. Most of the patch was written by Konstantin Osipov. |
16 years ago |
|
|
52f361ecb8 |
A fix for Bug#54811 "Assert in mysql_lock_have_duplicate()".
Remove mysql_lock_have_duplicate(), since now we always have TABLE_LIST objects for MyISAMMRG children in lex->query_tables and keep it till the end of the statement (sub-statement). mysql-test/r/merge.result: Update results (Bug#54811). mysql-test/t/merge-big.test: Update to new wait state. mysql-test/t/merge.test: Add a test case for Bug#54811. sql/lock.cc: Remove a function that is now unused. sql/lock.h: Remove a function that is now unused. sql/sql_base.cc: Don't try to search for duplicate table among THR_LOCK objects, TABLE_LIST list contains all used tables. |
16 years ago |
|
|
33c57e2f9e |
WL#5419 "LOCK_open scalability: make tdc_refresh_version
an atomic counter" Split the large LOCK_open section in open_table(). Do not call open_table_from_share() under LOCK_open. Remove thd->version. This fixes Bug#50589 "Server hang on a query evaluated using a temporary table" Bug#51557 "LOCK_open and kernel_mutex are not happy together" Bug#49463 "LOCK_table and innodb are not nice when handler instances are created". This patch has effect on storage engines that rely on ha_open() PSEA method being called under LOCK_open. In particular: 1) NDB is broken and left unfixed. NDB relies on LOCK_open being kept as part of ha_open(), since it uses auto-discovery. While previously the NDB open code was race-prone, now it simply fails on asserts. 2) HEAP engine had a race in ha_heap::open() when a share for the same table could be added twice to the list of shares, or a dangling reference to a share stored in HEAP handler. This patch aims to address this problem by 'pinning' the newly created share in the internal HEAP engine share list until at least one handler instance is created using that share. include/heap.h: Add members to HP_CREATE_INFO. Declare heap_release_share(). sql/lock.cc: Remove thd->version, use thd->open_tables->s->version instead. sql/repl_failsafe.cc: Remove thd->version. sql/sql_base.cc: - close_thread_table(): move handler cleanup code outside the critical section protected by LOCK_open. - remove thd->version - split the large critical section in open_table() that opens a new table from share and is protected by LOCK_open into 2 critical sections, thus reducing the critical path. - make check_if_table_exists() acquire LOCK_open internally. - use thd->open_tables->s->version instead of thd->refresh_version to make sure that all tables in thd->open_tables are in the same refresh series. sql/sql_base.h: Add declaration for check_if_table_exists(). sql/sql_class.cc: Remove init_open_tables_state(), it's now equal to reset_open_tables_state(). sql/sql_class.h: Remove thd->version, THD::init_open_tables_state(). sql/sql_plugin.cc: Use table->m_needs_reopen to mark the table as stale rather than manipulate with thd->version, which is no more. sql/sql_udf.cc: Use table->m_needs_reopen to mark the table as stale rather than manipulate with thd->version, which is no more. sql/table.h: Remove an unused variable. sql/tztime.cc: Use table->m_needs_reopen to mark the table as stale rather than manipulate with thd->version, which is no more. storage/heap/CMakeLists.txt: Add heap tests to cmake build files. storage/heap/ha_heap.cc: Fix a race when ha_heap::ha_open() could insert two HP_SHARE objects into the internal share list or store a dangling reference to a share in ha_heap instance, or wrongly set implicit_emptied. storage/heap/hp_create.c: Optionally pin a newly created share in the list of shares by increasing its open_count. This is necessary to make sure that a newly created share doesn't disappear while a HP_INFO object is being created to reference it. storage/heap/hp_open.c: When adding a new HP_INFO object to the list of objects in the heap share, make sure the open_count is not increased twice. storage/heap/hp_test1.c: Adjust the test to new function signatures. storage/heap/hp_test2.c: Adjust the test to new function signatures. |
16 years ago |
|
|
1164841167 |
Backport: Remove unused and ancient files, functions, and facilities.
client/mysql.cc: Remove unused functions. client/sql_string.cc: Remove unused functions. include/my_pthread.h: Remove unused prototype. mysys/my_pthread.c: Remove unused function. sql/lock.cc: Remove unused function. sql/lock.h: Remove unused and duplicated prototypes. sql/sql_class.h: Removed unused variables. sql/sql_const.h: Remove unused defines. sql/sql_priv.h: Remove unused defines. sql/sql_string.cc: Remove unused prototype. sql/thr_malloc.cc: Remove unused function. sql/thr_malloc.h: Remove unused prototype. storage/myisam/CMakeLists.txt: Remove obsolete fulltext file. storage/myisam/Makefile.am: Remove obsolete files (were already commented out). storage/myisam/ft_eval.c: Remove obsolete fulltext file. storage/myisam/ft_eval.h: Remove obsolete fulltext file. storage/myisam/ft_stem.c: Remove obsolete fulltext file. storage/myisam/ft_test1.c: Remove obsolete fulltext file. storage/myisam/ft_test1.h: Remove obsolete fulltext file. |
16 years ago |
|
|
ae1ae4bd63 |
Fix for bug #51263 "Deadlock between transactional
SELECT and ALTER TABLE ... REBUILD PARTITION". ALTER TABLE on InnoDB table (including partitioned tables) acquired exclusive locks on rows of table being altered. In cases when there was concurrent transaction which did locking reads from this table this sometimes led to a deadlock which was not detected by MDL subsystem nor by InnoDB engine (and was reported only after exceeding innodb_lock_wait_timeout). This problem stemmed from the fact that ALTER TABLE acquired TL_WRITE_ALLOW_READ lock on table being altered. This lock was interpreted as a write lock and thus for table being altered handler::external_lock() method was called with F_WRLCK as an argument. As result InnoDB engine treated ALTER TABLE as an operation which is going to change data and acquired LOCK_X locks on rows being read from old version of table. In case when there was a transaction which already acquired SR metadata lock on table and some LOCK_S locks on its rows (e.g. by using it in subquery of DML statement) concurrent ALTER TABLE was blocked at the moment when it tried to acquire LOCK_X lock before reading one of these rows. The transaction's attempt to acquire SW metadata lock on table being altered led to deadlock, since it had to wait for ALTER TABLE to release SNW lock. This deadlock was not detected and got resolved only after timeout expiring because waiting were happening in two different subsystems. Similar deadlocks could have occured in other situations. This patch tries to solve the problem by changing ALTER TABLE implementation to use TL_READ_NO_INSERT lock instead of TL_WRITE_ALLOW_READ. After this step handler::external_lock() is called with F_RDLCK as an argument and InnoDB engine correctly interprets ALTER TABLE as operation which only reads data from original version of table. Thanks to this ALTER TABLE acquires only LOCK_S locks on rows it reads. This, in its turn, causes inter-subsystem deadlocks to go away, as all potential lock conflicts and thus deadlocks will be limited to metadata locking subsystem: - When ALTER TABLE reads rows from table being altered it can't encounter any locks which conflict with LOCK_S row locks. There should be no concurrent transactions holding LOCK_X row locks. Such a transaction should have been acquired SW metadata lock on table first which would have conflicted with ALTER's SNW lock. - Vice versa, when DML which runs concurrently with ALTER TABLE tries to lock row it should be requesting only LOCK_S lock which is compatible with locks acquired by ALTER, as otherwise such DML must own an SW metadata lock on table which would be incompatible with ALTER's SNW lock. mysql-test/r/innodb_mysql_lock2.result: Added test for bug #51263 "Deadlock between transactional SELECT and ALTER TABLE ... REBUILD PARTITION". mysql-test/suite/rpl_ndb/r/rpl_ndb_binlog_format_errors.result: Since CREATE TRIGGER no longer acquires write lock on table it is no longer interpreted as an operation which modifies table data and therefore no longer fails if invoked for SBR-only engine in ROW mode. mysql-test/suite/rpl_ndb/t/rpl_ndb_binlog_format_errors.test: Since CREATE TRIGGER no longer acquires write lock on table it is no longer interpreted as an operation which modifies table data and therefore no longer fails if invoked for SBR-only engine in ROW mode. mysql-test/t/innodb_mysql_lock2.test: Added test for bug #51263 "Deadlock between transactional SELECT and ALTER TABLE ... REBUILD PARTITION". sql/ha_partition.cc: When ALTER TABLE creates a new partition to be filled from other partition lock it in F_WRLCK mode instead of using mode which was used for locking the whole table (it is F_RDLCK now). sql/lock.cc: Replaced conditions which used TL_WRITE_ALLOW_READ lock type with equivalent conditions using TL_WRITE_ALLOW_WRITE. This should allow to get rid of TL_WRITE_ALLOW_READ lock type eventually. sql/mdl.cc: Updated outdated comment to reflect current situation. sql/sql_base.cc: Replaced conditions which used TL_WRITE_ALLOW_READ lock type with equivalent conditions using TL_WRITE_ALLOW_WRITE. This should allow to get rid of TL_WRITE_ALLOW_READ lock type eventually. sql/sql_table.cc: mysql_admin_table(): Use TL_WRITE_ALLOW_WRITE lock type instead of TL_WRITE_ALLOW_READ to determine that we need to acquire upgradable metadata lock. This should allow to completely get rid of TL_WRITE_ALLOW_READ in long term. mysql_recreate_table(): ALTER TABLE now requires TL_READ_NO_INSERT thr_lock.c lock instead of TL_WRITE_ALLOW_READ. sql/sql_trigger.cc: Changed CREATE/DROP TRIGGER implementation to use TL_READ_NO_INSERT lock instead of TL_WRITE_ALLOW_READ lock. The latter is no longer necessary since: a) We now can rely on metadata locks to achieve proper isolation between two DDL statements or DDL and DML statements. b) This statement does not change any data in table so there is no need to inform storage engine about it. sql/sql_yacc.yy: Changed implementation of ALTER TABLE (and CREATE/DROP INDEX as a consequence) to use TL_READ_NO_INSERT lock instead of TL_WRITE_ALLOW_READ lock. This is possible since: a) We now can rely on metadata locks to achieve proper isolation between two DDL statements or DDL and DML statements. b) This statement only reads data in table being open. We write data only to the new version of table and then replace with it old version of table under X metadata lock. Thanks to this change InnoDB will no longer acquire LOCK_X locks on rows being read by ALTER TABLE (instead LOCK_S locks will be acquired) and thus cause of bug #51263 "Deadlock between transactional SELECT and ALTER TABLE ... REBUILD PARTITION" is removed. Did the similar change for CREATE TRIGGER (see comments for sql_trigger.cc for details). |
16 years ago |
|
|
bee0f214fd |
Pre-requisite patch for bug #51263 "Deadlock between
transactional SELECT and ALTER TABLE ... REBUILD PARTITION".
The goal of this patch is to decouple type of metadata
lock acquired for table by open_tables() from type of
table-level lock to be acquired on it.
To achieve this we change approach to how we determine what
type of metadata lock should be acquired on table to be open.
Now instead of inferring it at open_tables() time from flags
and type of table-level lock we rely on that type of metadata
lock is properly set at parsing time and is not changed
further.
sql/ha_ndbcluster.cc:
Now one needs to properly initialize table list element's
MDL_request object before calling mysql_rm_table_part2().
sql/lock.cc:
lock_table_names() no longer initializes table list elements'
MDL_request objects. Now proper initialization of these
requests is a responsibility of the caller.
sql/lock.h:
Removed MYSQL_OPEN_TAKE_UPGRADABLE_MDL flag which became
unnecessary. Thanks to the fact that we don't reset type of
requests for metadata locks between re-executions we now can
figure out that upgradable locks are requested by simply
looking at their type which were set in the parser. As result
this flag became redundant.
sql/mdl.h:
Added version of new operator which simplifies allocation of
MDL_request objects on a MEM_ROOT.
sql/sp_head.cc:
Added comment explaining why it is OK to infer type of
metadata lock to request from type of table-level lock
for prelocking.
Added enum_mdl_type argument to sp_add_to_query_tables()
to simplify its usage in trigger implementation.
sql/sp_head.h:
Added enum_mdl_type argument to sp_add_to_query_tables()
to simplify its usage in trigger implementation.
sql/sql_base.cc:
- open_table_get_mdl_lock():
Preserve type of MDL_request for table list element which
was set in the parser by creating MDL_request objects on
memory root if MYSQL_OPEN_FORCE_SHARED_MDL or
MYSQL_OPEN_FORCE_SHARED_HIGH_PRIO_MDL flag were specified.
Thanks to this and to the fact that we no longer reset
type of requests for metadata locks between re-executions
we no longer need to acquire exclusive metadata lock on
table to be created in a special way. This lock is acquired
by code handling acquiring of upgradable locks.
Also changed signature/calling convention for this function
to simplify its usage.
- Accordingly special lock strategy for table list elements
which was used for such locks became unnecessary and was
removed. Other strategies were renamed.
- Since we no longer have guarantee that MDL_request object
which were not satisfied due to lock conflict belongs to
table list element Open_table_context class and its methods
were extended to remember pointer to MDL_request which has
caused problem at request_backoff_action() time and use it
in recover_from_failed_open(). Similar approach is used
for cases when problem from which we need to recover is
not related to MDL but to the table itself. In this case
we store pointer to the element of table list.
- Changed open_tables()/open_tables_check_upgradable_mdl()/
open_tables_acquire_upgradable_mdl() not to rely on
MYSQL_OPEN_TAKE_UPGRADABLE_MDL flag to understand when
upgradable metadata locks should be acquired and not to
infer type of MDL lock from type of table-level lock.
Instead we assume that type of MDL to be acquired was set
in the parser (we can do this as type of MDL_request is
no longer reset between re-executions).
sql/sql_class.h:
Since we no longer have guarantee that MDL_request object
which were not satisfied due to lock conflict belongs to
table list element Open_table_context class and its methods
were extended to remember pointer to MDL_request which has
caused problem at request_backoff_action() time and use it
in recover_from_failed_open(). Similar approach is used
for cases when problem from which we need to recover is
not related to MDL but to the table itself. In this case
we store pointer to the element of table list.
sql/sql_db.cc:
Now one needs to properly initialize table list element's
MDL_request object before calling mysql_rm_table_part2()
or mysql_rename_tables().
sql/sql_lex.cc:
st_select_lex/st_select_lex_node::add_table_to_list() method
now has argument which allows specify type of metadata lock
to be requested for table list element being added.
sql/sql_lex.h:
- st_select_lex/st_select_lex_node::add_table_to_list()
method now has argument which specifies type of metadata
lock to be requested for table list element being added.
This allows to explicitly set type of MDL lock to be
acquired for a DDL statement in parser. It is also more
future-proof than inferring type of MDL request from type
of table-level lock.
- Added Yacc_state::m_mdl_type member which specifies which
type of metadata lock should be requested for tables to be
added to table list by a grammar rule in cases when the same
rule is used in several statements requiring different kinds
of metadata locks.
sql/sql_parse.cc:
- st_select_lex::add_table_to_list() method now has argument
which specifies type of metadata lock to be requested for
table list element being added. This allows to explicitly
set type of MDL lock to be acquired for a DDL statement in
parser. It is also more future-proof than inferring type of
MDL request from type of table-level lock.
- EXCLUSIVE_DOWNGRADABLE_MDL lock strategy has a new name -
OTLS_DOWNGRADE_IF_EXISTS.
- Adjusted LOCK TABLES implementation to the fact that we no
longer infer type of metadata lock to be acquired from table
level lock and that type of MDL request is set at parsing.
And thus MYSQL_OPEN_TAKE_UPGRADABLE_MDL flag became
unnecessary.
sql/sql_prepare.cc:
TABLE_LIST's lock strategy SHARED_MDL was renamed to OTLS_NONE
as now it means that metadata lock should not be changed during
call to open_table() (if it has been already acquired) and is
also used for exclusive metadata lock.
sql/sql_show.cc:
st_select_lex::add_table_to_list() method now has argument
which specifies type of metadata lock to be requested for
table list element being added.
sql/sql_table.cc:
- Adjusted mysql_admin_table()'s code to the fact that
open_tables() no longer determines what kind of metadata
lock should be obtained basing on type of table-level
lock and flags. Instead type of metadata lock for table
to be open should be set before calling open_tables().
- Changed mysql_alter_table() code to the facts:
a) that now it is responsibility of caller to properly
initalize MDL_request in table list elements before calling
lock_table_names()
b) and that MYSQL_OPEN_TAKE_UPGRADABLE_MDL is no longer
necessary since type of metadata lock to be obtained
at open_tables() time is set during parsing.
- Changed code of mysql_recreate_table() to properly set
type of metadata and table-level lock to be obtained
by mysql_alter_table() which it calls.
sql/sql_trigger.cc:
Instead of relying on MYSQL_OPEN_TAKE_UPGRADABLE_MDL flag to
force open_tables() to take an upgradable lock we now specify
exact type of lock to be taken when constructing table list
element for table to be open for CREATE/DROP TRIGGER.
sql/sql_view.cc:
We no longer use TABLE_LIST::EXCLUSIVE_MDL strategy to force
open_tables() to take an exclusive metadata lock on view to
be created. Instead we rely on parser setting proper type of
metadata lock to request and open_tables() acquiring it.
This became possible thanks to the fact that we no longer
reset type of MDL_request between statement re-executions.
sql/sql_yacc.yy:
Instead of inferring type of MDL_request for table to be
open from type of table-level lock and flags passed to
open_tables() we now explicitly specify them at parsing.
This became possible thanks to the fact that we no longer
reset type of MDL_request between statement re-executions.
In future this should allow to decouple type of metadata
lock from type of table-level lock.
The only exception to this approach is statements implemented
through mysql_admin_table() which re-uses same table list
element several times with different types of table-level
and metadata locks.
We now also properly initialize MDL_request objects for table
list elements which are later passed to lock_table_names()
function.
sql/table.cc:
Do not reset type of MDL_request between statement
re-executions. This became unnecessesary as we no longer
change type of MDL_request residing in table list element.
In its turn this change allows to set type of MDL_request
only once - at parsing time.
sql/table.h:
Got rid of TABLE_LIST::EXCLUSIVE_MDL lock strategy.
Now we can specify that we need to acquire exclusive lock
on table to be processed by open_tables() through setting
an appropriate type of MDL_request at parsing time (this
became possible thanks to the fact that we no longer reset
types of MDL_request's belonging to table list elements
between statement re-execution).
Strategy SHARED_MDL was renamed to OTLS_NONE as now it
means that metadata lock should not be changed during call
to open_table() (if it has been already acquired) and is
also used for exclusive metadata lock.
Strategy EXCLUSIVE_DOWNGRADABLE_MDL was renamed to
OTLS_DOWNGRADE_IF_EXISTS.
|
16 years ago |
|
|
23d8586dbf |
WL#5030: Split and remove mysql_priv.h
This patch: - Moves all definitions from the mysql_priv.h file into header files for the component where the variable is defined - Creates header files if the component lacks one - Eliminates all include directives from mysql_priv.h - Eliminates all circular include cycles - Rename time.cc to sql_time.cc - Rename mysql_priv.h to sql_priv.h |
16 years ago |
|
|
7116431a8a |
A review comment for the fix for Bug#46672.
Remove unnecessary need_reopen loops. |
16 years ago |
|
|
b11740894e |
Bug#33669: Transactional temporary tables do not work under --read-only
The problem was that in read only mode (read_only enabled), the server would mistakenly deny data modification attempts for temporary tables which belong to a transactional storage engine (eg. InnoDB). The solution is to allow transactional temporary tables to be modified under read only mode. As a whole, the read only mode does not apply to any kind of temporary table. mysql-test/r/read_only_innodb.result: Add test case result for Bug#33669 mysql-test/t/read_only_innodb.test: Add test case for Bug#33669 sql/lock.cc: Rename mysql_lock_tables_check to lock_tables_check and make it static. Move locking related checks from get_lock_data to lock_tables_check. Allow write locks to temporary tables even under read-only. |
16 years ago |
|
|
e60ef89317 |
Followup to Bug#45225 Locking: hang if drop table with no timeout
This patch prevents system threads and system table accesses from using user-specified values for "lock_wait_timeout". Instead all such accesses are done using the default value (1 year). This prevents background tasks (such as replication, events, accessing stored function definitions, logging, reading time-zone information, etc.) from failing in cases where the global value of "lock_wait_timeout" is set very low. The patch also simplifies the open tables API. Rather than adding another convenience function for opening and locking system tables, this patch removes most of the existing convenience functions for open_and_lock_tables_derived(). Before, open_and_lock_tables() was a convenience function that enforced derived tables handling, while open_and_lock_tables_derived() was the main function where derived tables handling was optional. Now, this convencience function is gone and the main function is renamed to open_and_lock_tables(). No test case added as it would have required the use of --sleep to check that system threads and system tables have a different timeout value from the user-specified "lock_wait_timeout" system variable. |
16 years ago |
|
|
3d6a89e792 |
Bug #45225 Locking: hang if drop table with no timeout
This patch introduces timeouts for metadata locks. The timeout is specified in seconds using the new dynamic system variable "lock_wait_timeout" which has both GLOBAL and SESSION scopes. Allowed values range from 1 to 31536000 seconds (= 1 year). The default value is 1 year. The new server parameter "lock-wait-timeout" can be used to set the default value parameter upon server startup. "lock_wait_timeout" applies to all statements that use metadata locks. These include DML and DDL operations on tables, views, stored procedures and stored functions. They also include LOCK TABLES, FLUSH TABLES WITH READ LOCK and HANDLER statements. The patch also changes thr_lock.c code (table data locks used by MyISAM and other simplistic engines) to use the same system variable. InnoDB row locks are unaffected. One exception to the handling of the "lock_wait_timeout" variable is delayed inserts. All delayed inserts are executed with a timeout of 1 year regardless of the setting for the global variable. As the connection issuing the delayed insert gets no notification of delayed insert timeouts, we want to avoid unnecessary timeouts. It's important to note that the timeout value is used for each lock acquired and that one statement can take more than one lock. A statement can therefore block for longer than the lock_wait_timeout value before reporting a timeout error. When lock timeout occurs, ER_LOCK_WAIT_TIMEOUT is reported. Test case added to lock_multi.test. include/my_pthread.h: Added macros for comparing two timespec structs. include/thr_lock.h: Introduced timeouts for thr_lock.c locks. mysql-test/r/mysqld--help-notwin.result: Updated result file with the new server variable. mysql-test/r/mysqld--help-win.result: Updated result file with the new server variable. mysql-test/suite/sys_vars/r/lock_wait_timeout_basic.result: Added basic test for the new server variable. mysql-test/suite/sys_vars/t/lock_wait_timeout_basic.test: Added basic test for the new server variable. mysys/thr_lock.c: Introduced timeouts for thr_lock.c locks. sql/mdl.cc: Introduced timeouts for metadata locks. sql/mdl.h: Introduced timeouts for metadata locks. sql/sql_base.cc: Introduced timeouts in tdc_wait_for_old_versions(). sql/sql_class.h: Added new server variable lock_wait_timeout. sql/sys_vars.cc: Added new server variable lock_wait_timeout. |
16 years ago |
|
|
d77e3cde5f |
When one does a drop table, the indexes are not flushed to disk before drop anymore (with MyISAM/Maria)
myisam-recover options changed from OFF to 'DEFAULT' to get less change of data loss when using MyISAM. (The disadvantage is that changed MyISAM tables will be checked at access time; Use --myisam-recover=OFF for old behavior) Don't call extra(HA_EXTRA_FORCE_REOPEN) in ALTER TABLE if table is locked as this will mark table as crashed! Added assert to detect if we accidently would use MyISAM versioning in MySQL include/my_base.h: Mark NOT_USED as USED, as we now use this as a flag to not call extra() mysql-test/mysql-test-run.pl: Don't write all options when there is something wrong with the arguments mysql-test/r/sp-destruct.result: Add missing flush of mysql.proc (as the test copied live tables) mysql-test/r/variables.result: myisam-recover options changed to 'default' mysql-test/r/view.result: Don't show create time in result mysql-test/suite/maria/t/maria-recovery2-master.opt: Don't run test with myisam-recover (as this produces extra warnings during simulated death) mysql-test/t/sp-destruct.test: Add missing flush of mysql.proc (as the test copied live tables) mysql-test/t/view.test: Don't show create time in result sql/lock.cc: Added marker if table was deleted to argument list sql/mysql_priv.h: Added marker if table was deleted to argument list sql/mysqld.cc: myisam-recover options changed from OFF to 'DEFAULT' to get less change of data loss when using MyISAM Allow one to specify OFF as argument to myisam-recover (was default before but one couldn't specify it) sql/sql_base.cc: Mark if table is going to be deleted sql/sql_delete.cc: Mark if table is going to be deleted sql/sql_table.cc: Mark if table is going to be deleted Don't call extra(HA_EXTRA_FORCE_REOPEN) in ALTER TABLE if table is locked as this will mark table as crashed! sql/table.cc: Signal to handler if table is getting deleted as part of getting droped from table cache. sql/table.h: Added marker if table is going to be deleted. storage/maria/ha_maria.cc: Don't search for transaction handler if file is not transactional or outside of transaction (Fixed possible core dump) storage/maria/ma_blockrec.c: Don't write changed information if table is going to be deleted. storage/maria/ma_close.c: Don't write changed information if table is going to be deleted. storage/maria/ma_extra.c: Mark tables that are deleted as crased, to ensure good behavior on restart if we suddenly crash. storage/maria/ma_locking.c: Cleanup storage/maria/ma_recovery.c: We need trnman to be inited during redo phase (to be able to open tables checked with maria_chk) storage/maria/maria_def.h: Added marker if table is going to be deleted. storage/myisam/mi_close.c: Don't write changed information if table is going to be deleted. storage/myisam/mi_extra.c: Mark tables that are deleted as crased, to ensure good behavior on restart if we suddenly crash. storage/myisam/mi_open.c: Added assert to detect if we accidently would use MyISAM versioning in MySQL storage/myisam/myisamdef.h: Added marker if table is going to be deleted. |
16 years ago |
|
|
8018ec5adb |
Fix for bug #50913 "Deadlock between open_and_lock_tables_derived
and MDL". Concurrent execution of a multi-DELETE statement and ALTER TABLE statement which affected one of the tables used in the multi-DELETE sometimes led to deadlock. Similar deadlocks might have occured when one performed INSERT/UPDATE/DELETE on a view and concurrently executed ALTER TABLE for the view's underlying table, or when one concurrently executed TRUNCATE TABLE for InnoDB table and ALTER TABLE for the same table. These deadlocks were caused by a discrepancy between types of metadata and thr_lock.cc locks acquired by those statements. What happened was that multi-DELETE/TRUNCATE/DML-through-the- view statement in the first connection acquired SR lock on a table, then ALTER TABLE would come in in the second connection and acquire SNW metadata lock and TL_WRITE_ALLOW_READ thr_lock.c lock and then would start waiting for the first connection during lock upgrade. After that the statement in the first connection would try to acquire TL_WRITE lock on table and would start waiting for the second connection, creating a deadlock. This patch solves this problem by ensuring that we acquire SW metadata lock in all cases in which we acquiring write thr_lock.c lock. This guarantees that deadlocks like the one described above won't occur since all lock conflicts in such situation are resolved within MDL subsystem. This patch also adds assert which should guarantee that such situations won't arise in future. mysql-test/r/lock_multi.result: Added main test for bug #50913 "Deadlock between open_and_lock_tables_derived and MDL". mysql-test/r/mdl_sync.result: Added additional coverage for bug #50913 "Deadlock between open_and_lock_tables_derived and MDL". mysql-test/t/lock_multi.test: Added main test for bug #50913 "Deadlock between open_and_lock_tables_derived and MDL". mysql-test/t/mdl_sync.test: Added additional coverage for bug #50913 "Deadlock between open_and_lock_tables_derived and MDL". sql/lock.cc: Added assert that enforces that when we are locking a non-temporary table we have an appropriate type of metadata lock on this table. sql/mysql_priv.h: Added separate flag for open_tables() to be able specify that SH metadata locks on table to be open should be acquired. We can no longer use MYSQL_LOCK_IGNORE_FLUSH flag for this as in addition to use in I_S implementation it is also used for opening system tables. Since in the latter case we also acquire thr_lock.c locks using SH metadata lock in it instead of SR or SW locks may lead to deadlock. sql/sql_base.cc: When opening tables don't interpret MYSQL_LOCK_IGNORE_FLUSH flag as request to acquire SH metadata locks. This flag is also used for opening system tables for which we also take thr_lock.c locks and thus proper metadata lock to take in this case is SR or SW lock (otherwise deadlocks can occur). In cases when SH lock is really required (e.g. when tables are open by I_S implementation) we rely on that newly introduced MYSQL_OPEN_FORCE_SHARED_HIGH_PRIO_MDL flag is used. sql/sql_delete.cc: mysql_truncate_by_delete(): Adjust type of metadata lock to be requested after changing type of thr_lock.c lock for table list element from one which was set in parser to TL_WRITE. This removes discrepancy between types of these locks which allowed deadlocks to creep in. sql/sql_handler.cc: When closing table which was open by HANDLER statement clear TABLE::open_by_handler flag. This allows to use this flag as a reliable indication that TABLE instance was open by HANDLER statement in assert which was added to mysql_lock_tables(). sql/sql_parse.cc: multi_delete_set_locks_and_link_aux_tables(): Adjust type of metadata lock to be requested after changing type of thr_lock.c lock for table list element from one which was set in parser to TL_WRITE. This removes discrepancy between types of these locks which allowed deadlocks to creep in. sql/sql_show.cc: Use newly introduced MYSQL_OPEN_FORCE_SHARED_HIGH_PRIO_MDL flag in order to acquire SH metadata locks when opening tables in I_S implementation. sql/sql_update.cc: Added comment explaining why in multi-update after deciding that we need weaker thr_lock.c lock on a table we don't downgrade metadata lock on it. sql/sql_view.cc: When merging view into main statement adjust type of metadata lock to be requested after changing type of thr_lock.c lock for table. This removes discrepancy between types of these locks which allowed deadlocks to creep in. |
16 years ago |
|
|
eba5d30e67 |
Implement new type-of-operation-aware metadata locks.
Add a wait-for graph based deadlock detector to the MDL subsystem. Fixes bug #46272 "MySQL 5.4.4, new MDL: unnecessary deadlock" and bug #37346 "innodb does not detect deadlock between update and alter table". The first bug manifested itself as an unwarranted abort of a transaction with ER_LOCK_DEADLOCK error by a concurrent ALTER statement, when this transaction tried to repeat use of a table, which it has already used in a similar fashion before ALTER started. The second bug showed up as a deadlock between table-level locks and InnoDB row locks, which was "detected" only after innodb_lock_wait_timeout timeout. A transaction would start using the table and modify a few rows. Then ALTER TABLE would come in, and start copying rows into a temporary table. Eventually it would stumble on the modified records and get blocked on a row lock. The first transaction would try to do more updates, and get blocked on thr_lock.c lock. This situation of circular wait would only get resolved by a timeout. Both these bugs stemmed from inadequate solutions to the problem of deadlocks occurring between different locking subsystems. In the first case we tried to avoid deadlocks between metadata locking and table-level locking subsystems, when upgrading shared metadata lock to exclusive one. Transactions holding the shared lock on the table and waiting for some table-level lock used to be aborted too aggressively. We also allowed ALTER TABLE to start in presence of transactions that modify the subject table. ALTER TABLE acquires TL_WRITE_ALLOW_READ lock at start, and that block all writes against the table (naturally, we don't want any writes to be lost when switching the old and the new table). TL_WRITE_ALLOW_READ lock, in turn, would block the started transaction on thr_lock.c lock, should they do more updates. This, again, lead to the need to abort such transactions. The second bug occurred simply because we didn't have any mechanism to detect deadlocks between the table-level locks in thr_lock.c and row-level locks in InnoDB, other than innodb_lock_wait_timeout. This patch solves both these problems by moving lock conflicts which are causing these deadlocks into the metadata locking subsystem, thus making it possible to avoid or detect such deadlocks inside MDL. To do this we introduce new type-of-operation-aware metadata locks, which allow MDL subsystem to know not only the fact that transaction has used or is going to use some object but also what kind of operation it has carried out or going to carry out on the object. This, along with the addition of a special kind of upgradable metadata lock, allows ALTER TABLE to wait until all transactions which has updated the table to go away. This solves the second issue. Another special type of upgradable metadata lock is acquired by LOCK TABLE WRITE. This second lock type allows to solve the first issue, since abortion of table-level locks in event of DDL under LOCK TABLES becomes also unnecessary. Below follows the list of incompatible changes introduced by this patch: - From now on, ALTER TABLE and CREATE/DROP TRIGGER SQL (i.e. those statements that acquire TL_WRITE_ALLOW_READ lock) wait for all transactions which has *updated* the table to complete. - From now on, LOCK TABLES ... WRITE, REPAIR/OPTIMIZE TABLE (i.e. all statements which acquire TL_WRITE table-level lock) wait for all transaction which *updated or read* from the table to complete. As a consequence, innodb_table_locks=0 option no longer applies to LOCK TABLES ... WRITE. - DROP DATABASE, DROP TABLE, RENAME TABLE no longer abort statements or transactions which use tables being dropped or renamed, and instead wait for these transactions to complete. - Since LOCK TABLES WRITE now takes a special metadata lock, not compatible with with reads or writes against the subject table and transaction-wide, thr_lock.c deadlock avoidance algorithm that used to ensure absence of deadlocks between LOCK TABLES WRITE and other statements is no longer sufficient, even for MyISAM. The wait-for graph based deadlock detector of MDL subsystem may sometimes be necessary and is involved. This may lead to ER_LOCK_DEADLOCK error produced for multi-statement transactions even if these only use MyISAM: session 1: session 2: begin; update t1 ... lock table t2 write, t1 write; -- gets a lock on t2, blocks on t1 update t2 ... (ER_LOCK_DEADLOCK) - Finally, support of LOW_PRIORITY option for LOCK TABLES ... WRITE was abandoned. LOCK TABLE ... LOW_PRIORITY WRITE from now on has the same priority as the usual LOCK TABLE ... WRITE. SELECT HIGH PRIORITY no longer trumps LOCK TABLE ... WRITE in the wait queue. - We do not take upgradable metadata locks on implicitly locked tables. So if one has, say, a view v1 that uses table t1, and issues: LOCK TABLE v1 WRITE; FLUSH TABLE t1; -- (or just 'FLUSH TABLES'), an error is produced. In order to be able to perform DDL on a table under LOCK TABLES, the table must be locked explicitly in the LOCK TABLES list. mysql-test/include/handler.inc: Adjusted test case to trigger an execution path on which bug 41110 "crash with handler command when used concurrently with alter table" and bug 41112 "crash in mysql_ha_close_table/get_lock_data with alter table" were originally discovered. Left old test case which no longer triggers this execution path for the sake of coverage. Added test coverage for HANDLER SQL statements and type-aware metadata locks. Added a test for the global shared lock and HANDLER SQL. Updated tests to take into account that the old simple deadlock detection heuristics was replaced with a graph-based deadlock detector. mysql-test/r/debug_sync.result: Updated results (see debug_sync.test). mysql-test/r/handler_innodb.result: Updated results (see handler.inc test). mysql-test/r/handler_myisam.result: Updated results (see handler.inc test). mysql-test/r/innodb-lock.result: Updated results (see innodb-lock.test). mysql-test/r/innodb_mysql_lock.result: Updated results (see innodb_mysql_lock.test). mysql-test/r/lock.result: Updated results (see lock.test). mysql-test/r/lock_multi.result: Updated results (see lock_multi.test). mysql-test/r/lock_sync.result: Updated results (see lock_sync.test). mysql-test/r/mdl_sync.result: Updated results (see mdl_sync.test). mysql-test/r/sp-threads.result: SHOW PROCESSLIST output has changed due to the fact that waiting for LOCK TABLES WRITE now happens within metadata locking subsystem. mysql-test/r/truncate_coverage.result: Updated results (see truncate_coverage.test). mysql-test/suite/funcs_1/datadict/processlist_val.inc: SELECT FROM I_S.PROCESSLIST output has changed due to fact that waiting for LOCK TABLES WRITE now happens within metadata locking subsystem. mysql-test/suite/funcs_1/r/processlist_val_no_prot.result: SELECT FROM I_S.PROCESSLIST output has changed due to fact that waiting for LOCK TABLES WRITE now happens within metadata locking subsystem. mysql-test/suite/rpl/t/rpl_sp.test: Updated to a new SHOW PROCESSLIST state name. mysql-test/t/debug_sync.test: Use LOCK TABLES READ instead of LOCK TABLES WRITE as the latter no longer allows to trigger execution path involving waiting on thr_lock.c lock and therefore reaching debug sync-point covered by this test. mysql-test/t/innodb-lock.test: Adjusted test case to the fact that innodb_table_locks=0 option is no longer supported, since LOCK TABLES WRITE handles all its conflicts within MDL subsystem. mysql-test/t/innodb_mysql_lock.test: Added test for bug #37346 "innodb does not detect deadlock between update and alter table". mysql-test/t/lock.test: Added test coverage which checks the fact that we no longer support DDL under LOCK TABLES on tables which were locked implicitly. Adjusted existing test cases accordingly. mysql-test/t/lock_multi.test: Added test for bug #46272 "MySQL 5.4.4, new MDL: unnecessary deadlock". Adjusted other test cases to take into account the fact that waiting for LOCK TABLES ... WRITE now happens within MDL subsystem. mysql-test/t/lock_sync.test: Since LOCK TABLES ... WRITE now takes SNRW metadata lock for tables locked explicitly we have to implicitly lock InnoDB tables (through view) to trigger the table-level lock conflict between TL_WRITE and TL_WRITE_ALLOW_WRITE. mysql-test/t/mdl_sync.test: Added basic test coverage for type-of-operation-aware metadata locks. Also covered with tests some use cases involving HANDLER statements in which a deadlock could arise. Adjusted existing tests to take type-of-operation-aware MDL into account. mysql-test/t/multi_update.test: Update to a new SHOW PROCESSLIST state name. mysql-test/t/truncate_coverage.test: Adjusted test case after making LOCK TABLES WRITE to wait until transactions that use the table to be locked are completed. Updated to the changed name of DEBUG_SYNC point. sql/handler.cc: Global read lock functionality has been moved into a class. sql/lock.cc: Global read lock functionality has been moved into a class. Updated code to use the new MDL API. sql/mdl.cc: Introduced new type-of-operation aware metadata locks. To do this: - Changed MDL_lock to use one list for waiting requests and one list for granted requests. For each list, added a bitmap that holds information what lock types a list contains. Added a helper class MDL_lock::List to manipulate with granted and waited lists while keeping the bitmaps in sync with list contents. - Changed lock-compatibility functions to use bitmaps that define compatibility. - Introduced a graph based deadlock detector inspired by waiting_threads.c from Maria implementation. - Now that we have a deadlock detector, and no longer have a global lock to protect individual lock objects, but rather use an rw lock per object, removed redundant code for upgrade, and the global read lock. Changed the MDL API to no longer require the caller to acquire the global intention exclusive lock by means of a separate method. Removed a few more methods that became redundant. - Removed deadlock detection heuristic, it has been made obsolete by the deadlock detector. - With operation-type-aware metadata locks, MDL subsystem has become aware of potential conflicts between DDL and open transactions. This made it possible to remove calls to mysql_abort_transactions_with_shared_lock() from acquisition paths for exclusive lock and lock upgrade. Now we can simply wait for these transactions to complete without fear of deadlock. Function mysql_lock_abort() has also become unnecessary for all conflicting cases except when a DDL conflicts with a connection that has an open HANDLER. sql/mdl.h: Introduced new type-of-operation aware metadata locks. Introduced a graph based deadlock detector and supporting methods. Added comments. God rid of redundant API calls. Renamed m_lt_or_ha_sentinel to m_trans_sentinel, since now it guards the global read lock as well as LOCK TABLES and HANDLER locks. sql/mysql_priv.h: Moved the global read lock functionality into a class. Added MYSQL_OPEN_FORCE_SHARED_MDL flag which forces open_tables() to take MDL_SHARED on tables instead of metadata locks specified in the parser. We use this to allow PREPARE run concurrently in presence of LOCK TABLES ... WRITE. Added signature for find_table_for_mdl_ugprade(). sql/set_var.cc: Global read lock functionality has been moved into a class. sql/sp_head.cc: When creating TABLE_LIST elements for prelocking or system tables set the type of request for metadata lock according to the operation that will be performed on the table. sql/sql_base.cc: - Updated code to use the new MDL API. - In order to avoid locks starvation we take upgradable locks all at once. As result implicitly locked tables no longer get an upgradable lock. Consequently DDL and FLUSH TABLES for such tables is prohibited. find_write_locked_table() was replaced by find_table_for_mdl_upgrade() function. open_table() was adjusted to return TABLE instance with upgradable ticket when necessary. - We no longer wait for all locks on OT_WAIT back off action -- only on the lock that caused the wait conflict. Moreover, now we distinguish cases when we have to wait due to conflict in MDL and old version of table in TDC. - Upate mysql_notify_threads_having_share_locks() to only abort thr_lock.c waits of threads that have open HANDLERs, since lock conflicts with only these threads now can lead to deadlocks not detectable by the MDL deadlock detector. - Remove mysql_abort_transactions_with_shared_locks() which is no longer needed. sql/sql_class.cc: Global read lock functionality has been moved into a class. Re-arranged code in THD::cleanup() to simplify assert. sql/sql_class.h: Introduced class to incapsulate global read lock functionality. Now sentinel in MDL subsystem guards the global read lock as well as LOCK TABLES and HANDLER locks. Adjusted code accordingly. sql/sql_db.cc: Global read lock functionality has been moved into a class. sql/sql_delete.cc: We no longer acquire upgradable metadata locks on tables which are locked by LOCK TABLES implicitly. As result TRUNCATE TABLE is no longer allowed for such tables. Updated code to use the new MDL API. sql/sql_handler.cc: Inform MDL_context about presence of open HANDLERs. Since HANLDERs break MDL protocol by acquiring table-level lock while holding only S metadata lock on a table MDL subsystem should take special care about such contexts (Now this is the only case when mysql_lock_abort() is used). sql/sql_parse.cc: Global read lock functionality has been moved into a class. Do not take upgradable metadata locks when opening tables for CREATE TABLE SELECT as it is not necessary and limits concurrency. When initializing TABLE_LIST objects before adding them to the table list set the type of request for metadata lock according to the operation that will be performed on the table. We no longer acquire upgradable metadata locks on tables which are locked by LOCK TABLES implicitly. As result FLUSH TABLES is no longer allowed for such tables. sql/sql_prepare.cc: Use MYSQL_OPEN_FORCE_SHARED_MDL flag when opening tables during PREPARE. This allows PREPARE to run concurrently in presence of LOCK TABLES ... WRITE. sql/sql_rename.cc: Global read lock functionality has been moved into a class. sql/sql_show.cc: Updated code to use the new MDL API. sql/sql_table.cc: Global read lock functionality has been moved into a class. We no longer acquire upgradable metadata locks on tables which are locked by LOCK TABLES implicitly. As result DROP TABLE is no longer allowed for such tables. Updated code to use the new MDL API. sql/sql_trigger.cc: Global read lock functionality has been moved into a class. We no longer acquire upgradable metadata locks on tables which are locked by LOCK TABLES implicitly. As result CREATE/DROP TRIGGER is no longer allowed for such tables. Updated code to use the new MDL API. sql/sql_view.cc: Global read lock functionality has been moved into a class. Fixed results of wrong merge that led to misuse of GLR API. CREATE VIEW statement is not a commit statement. sql/table.cc: When resetting TABLE_LIST objects for PS or SP re-execution set the type of request for metadata lock according to the operation that will be performed on the table. Do the same in auxiliary function initializing metadata lock requests in a table list. sql/table.h: When initializing TABLE_LIST objects set the type of request for metadata lock according to the operation that will be performed on the table. sql/transaction.cc: Global read lock functionality has been moved into a class. |
16 years ago |
|
|
6ddd01c27a |
Patch that changes metadata locking subsystem to use mutex per lock and
condition variable per context instead of one mutex and one conditional variable for the whole subsystem. This should increase concurrency in this subsystem. It also opens the way for further changes which are necessary to solve such bugs as bug #46272 "MySQL 5.4.4, new MDL: unnecessary deadlock" and bug #37346 "innodb does not detect deadlock between update and alter table". Two other notable changes done by this patch: - MDL subsystem no longer implicitly acquires global intention exclusive metadata lock when per-object metadata lock is acquired. Now this has to be done by explicit calls outside of MDL subsystem. - Instead of using separate MDL_context for opening system tables/tables for purposes of I_S we now create MDL savepoint in the main context before opening tables and rollback to this savepoint after closing them. This means that it is now possible to get ER_LOCK_DEADLOCK error even not inside a transaction. This might happen in unlikely case when one runs DDL on one of system tables while also running DDL on some other tables. Cases when this ER_LOCK_DEADLOCK error is not justified will be addressed by advanced deadlock detector for MDL subsystem which we plan to implement. mysql-test/include/handler.inc: Adjusted handler_myisam.test and handler_innodb.test to the fact that exclusive metadata locks on tables are now acquired according to alphabetical order of fully qualified table names instead of order in which tables are mentioned in statement. mysql-test/r/handler_innodb.result: Adjusted handler_myisam.test and handler_innodb.test to the fact that exclusive metadata locks on tables are now acquired according to alphabetical order of fully qualified table names instead of order in which tables are mentioned in statement. mysql-test/r/handler_myisam.result: Adjusted handler_myisam.test and handler_innodb.test to the fact that exclusive metadata locks on tables are now acquired according to alphabetical order of fully qualified table names instead of order in which tables are mentioned in statement. mysql-test/r/mdl_sync.result: Adjusted mdl_sync.test to the fact that exclusive metadata locks on tables are now acquired according to alphabetical order of fully qualified table names instead of order in which tables are mentioned in statement. mysql-test/t/mdl_sync.test: Adjusted mdl_sync.test to the fact that exclusive metadata locks on tables are now acquired according to alphabetical order of fully qualified table names instead of order in which tables are mentioned in statement. sql/events.cc: Instead of using separate MDL_context for opening system tables we now create MDL savepoint in the main context before opening such tables and rollback to this savepoint after closing them. To support this change methods of THD responsible for saving/restoring open table state were changed to use Open_tables_backup class which in addition to Open_table_state has a member for this savepoint. As result code opening/closing system tables was changed to use Open_tables_backup instead of Open_table_state class as well. sql/ha_ndbcluster.cc: Since manipulations with open table state no longer install proxy MDL_context it does not make sense to perform them in order to satisfy assert in mysql_rm_tables_part2(). Removed them per agreement with Cluster team. This has not broken test suite since scenario in which deadlock can occur and assertion fails is not covered by tests. sql/lock.cc: MDL subsystem no longer implicitly acquires global intention exclusive metadata lock when per-object exclusive metadata lock is acquired. Now this has to be done by explicit calls outside of MDL subsystem. sql/log.cc: Instead of using separate MDL_context for opening system tables we now create MDL savepoint in the main context before opening such tables and rollback to this savepoint after closing them. To support this change methods of THD responsible for saving/restoring open table state were changed to use Open_tables_backup class which in addition to Open_table_state has a member for this savepoint. As result code opening/closing system tables was changed to use Open_tables_backup instead of Open_table_state class as well. sql/mdl.cc: Changed metadata locking subsystem to use mutex per lock and condition variable per context instead of one mutex and one conditional variable for the whole subsystem. Changed approach to handling of global metadata locks. Instead of implicitly acquiring intention exclusive locks when user requests per-object upgradeable or exclusive locks now we require them to be acquired explicitly in the same way as ordinary metadata locks. In fact global lock are now ordinary metadata locks in new GLOBAL namespace. To implement these changes: - Removed LOCK_mdl mutex and COND_mdl condition variable. - Introduced MDL_lock::m_mutex mutexes which protect individual lock objects. - Replaced mdl_locks hash with MDL_map class, which has hash for MDL_lock objects as a member and separate mutex which protects this hash. Methods of this class allow to find(), find_or_create() or remove() MDL_lock objects in concurrency-friendly fashion (i.e. for most common operation, find_or_create(), we don't acquire MDL_lock::m_mutex while holding MDL_map::m_mutex. Thanks to MikaelR for this idea and benchmarks!). Added three auxiliary members to MDL_lock class (m_is_destroyed, m_ref_usage, m_ref_release) to support this concurrency-friendly behavior. - Introduced MDL_context::m_ctx_wakeup_cond condition variable to be used for waiting until this context's pending request can be satisfied or its thread has to perform actions to resolve potential deadlock. Context which want to wait add ticket corresponding to the request to an appropriate queue of waiters in MDL_lock object so they can be noticed when other contexts change state of lock and be awaken by them by signalling on MDL_context::m_ctx_wakeup_cond. As consequence MDL_ticket objects has to be used for any waiting in metadata locking subsystem including one which happens in MDL_context::wait_for_locks() method. Another consequence is that MDL_context is no longer copyable and can't be saved/restored when working with system tables. - Made MDL_lock an abstract class, which delegates specifying exact compatibility matrix to its descendants. Added MDL_global_lock child class for global lock (The old is_lock_type_compatible() method became can_grant_lock() method of this class). Added MDL_object_lock class to represent per-object lock (The old MDL_lock::can_grant_lock() became its method). Choice between two classes happens based on MDL namespace in MDL_lock::create() method. - Got rid of MDL_lock::type member as its meaning became ambigous for global locks. - To simplify waking up of contexts waiting for lock split waiting queue in MDL_lock class in two queues. One for pending requests for exclusive (including intention exclusive) locks and another for requests for shared locks. - Added virtual wake_up_waiters() method to MDL_lock, MDL_global_lock and MDL_object_lock classes which allows to wake up waiting contexts after state of lock changes. Replaced old duplicated code with calls to this method. - Adjusted MDL_context::try_acquire_shared_lock()/exclusive_lock()/ global_shared_lock(), MDL_ticket::upgrade_shared_lock_to_exclusive_lock() and MDL_context::release_ticket() methods to use MDL_map and MDL_lock::m_mutex instead of single LOCK_mdl mutex and wake up waiters according to the approach described above. The latter method also was renamed to MDL_context::release_lock(). - Changed MDL_context::try_acquire_shared_lock()/exclusive_lock() and release_lock() not to handle global locks. They are now supposed to be taken explicitly like ordinary metadata locks. - Added helper MDL_context::try_acquire_global_intention_exclusive_lock() and acquire_global_intention_exclusive_lock() methods. - Moved common code from MDL_context::acquire_global_shared_lock() and acquire_global_intention_exclusive_lock() to new method - MDL_context::acquire_lock_impl(). - Moved common code from MDL_context::try_acquire_shared_lock(), try_acquire_global_intention_exclusive_lock()/exclusive_lock() to MDL_context::try_acquire_lock_impl(). - Since acquiring of several exclusive locks can no longer happen under single LOCK_mdl mutex the approach to it had to be changed. Now we do it in one by one fashion. This is done in alphabetical order to avoid deadlocks. Changed MDL_context::acquire_exclusive_locks() accordingly (as part of this change moved code responsible for acquiring single exclusive lock to new MDL_context::acquire_exclusive_lock_impl() method). - Since we no longer have single LOCK_mdl mutex which protects all MDL_context::m_is_waiting_in_mdl members using these members to determine if we have really awaken context holding conflicting shared lock became inconvinient. Got rid of this member and changed notify_shared_lock() helper function and process of acquiring of/upgrading to exclusive lock not to rely on such information. Now in MDL_context::acquire_exclusive_lock_impl() and MDL_ticket::upgrade_shared_lock_to_exclusive_lock() we simply re-try to wake up threads holding conflicting shared locks after small time out. - Adjusted MDL_context::can_wait_lead_to_deadlock() and MDL_ticket::has_pending_conflicting_lock() to use per-lock mutexes instead of LOCK_mdl. To do this introduced MDL_lock::has_pending_exclusive_lock() method. sql/mdl.h: Changed metadata locking subsystem to use mutex per lock and condition variable per context instead of one mutex and one conditional variable for the whole subsystem. In order to implement this change: - Added MDL_key::cmp() method to be able to sort MDL_key objects alphabetically. Changed length fields in MDL_key class to uint16 as 16-bit is enough for length of any key. - Changed MDL_ticket::get_ctx() to return pointer to non-const object in order to be able to use MDL_context::awake() method for such contexts. - Got rid of unlocked versions of can_wait_lead_to_deadlock()/ has_pending_conflicting_lock() methods in MDL_context and MDL_ticket. We no longer has single mutex which protects all locks. Thus one always has to use versions of these methods which acquire per-lock mutexes. - MDL_request_list type of list now counts its elements. - Added MDL_context::m_ctx_wakeup_cond condition variable to be used for waiting until this context's pending request can be satisfied or its thread has to perform actions to resolve potential deadlock. Added awake() method to wake up context from such wait. Addition of condition variable made MDL_context uncopyable. As result we no longer can save/restore MDL_context when working with system tables. Instead we create MDL savepoint before opening those tables and rollback to it once they are closed. - MDL_context::release_ticket() became release_lock() method. - Added auxiliary MDL_context::acquire_exclusive_lock_impl() method which does all necessary work to acquire exclusive lock on one object but should not be used directly as it does not enforce any asserts ensuring that no deadlocks are possible. - Since we no longer need to know if thread trying to acquire exclusive lock managed to wake up any threads having conflicting shared locks (as, anyway, we will try to wake up such threads again shortly) - MDL_context::m_is_waiting_in_mdl member became unnecessary and notify_shared_lock() no longer needs to be friend of MDL_context. Changed approach to handling of global metadata locks. Instead of implicitly acquiring intention exclusive locks when user requests per-object upgradeable or exclusive locks now we require them to be acquired explicitly in the same way as ordinary metadata locks. - Added new GLOBAL namespace for such locks. - Added new type of lock to be requested MDL_INTENTION_EXCLISIVE. - Added MDL_context::try_acquire_global_intention_exclusive_lock() and acquire_global_intention_exclusive_lock() methods. - Moved common code from MDL_context::acquire_global_shared_lock() and acquire_global_intention_exclusive_lock() to new method - MDL_context::acquire_lock_impl(). - Moved common code from MDL_context::try_acquire_shared_lock(), try_acquire_global_intention_exclusive_lock()/exclusive_lock() to MDL_context::try_acquire_lock_impl(). - Added helper MDL_context::is_global_lock_owner() method to be able easily to find what kind of global lock this context holds. - MDL_context::m_has_global_shared_lock became unnecessary as global read lock is now represented by ordinary ticket. - Removed assert in MDL_context::set_lt_or_ha_sentinel() which became false for cases when we execute LOCK TABLES under global read lock mode. sql/mysql_priv.h: Instead of using separate MDL_context for opening system tables we now create MDL savepoint in the main context before opening such tables and rollback to this savepoint after closing them. To support this change methods of THD responsible for saving/restoring open table state were changed to use Open_tables_backup class which in addition to Open_table_state has a member for this savepoint. As result calls opening/closing system tables were changed to use Open_tables_backup instead of Open_table_state class as well. sql/sp.cc: Instead of using separate MDL_context for opening system tables we now create MDL savepoint in the main context before opening such tables and rollback to this savepoint after closing them. To support this change methods of THD responsible for saving/restoring open table state were changed to use Open_tables_backup class which in addition to Open_table_state has a member for this savepoint. As result code opening/closing system tables was changed to use Open_tables_backup instead of Open_table_state class as well. sql/sp.h: Instead of using separate MDL_context for opening system tables we now create MDL savepoint in the main context before opening such tables and rollback to this savepoint after closing them. To support this change methods of THD responsible for saving/restoring open table state were changed to use Open_tables_backup class which in addition to Open_table_state has a member for this savepoint. As result code opening/closing system tables was changed to use Open_tables_backup instead of Open_table_state class as well. sql/sql_base.cc: close_thread_tables(): Since we no longer use separate MDL_context for opening system tables we need to avoid releasing all transaction locks when closing system table. Releasing metadata lock on system table is now responsibility of THD::restore_backup_open_tables_state(). open_table_get_mdl_lock(), Open_table_context::recover_from_failed_open(): MDL subsystem no longer implicitly acquires global intention exclusive metadata lock when per-object upgradable or exclusive metadata lock is acquired. So this have to be done explicitly from these calls. Changed Open_table_context class to store MDL_request object for global intention exclusive lock acquired when opening tables. open_table(): Do not release metadata lock if we have failed to open table as this lock might have been acquired by one of previous statements in transaction, and therefore should not be released. open_system_tables_for_read()/close_system_tables()/ open_performance_schema_table(): Instead of using separate MDL_context for opening system tables we now create MDL savepoint in the main context before opening such tables and rollback to this savepoint after closing them. To support this change methods of THD responsible for saving/restoring open table state were changed to use Open_tables_backup class which in addition to Open_table_state has a member for this savepoint. As result code opening/closing system tables was changed to use Open_tables_backup instead of Open_table_state class as well. close_performance_schema_table(): Got rid of duplicated code. sql/sql_class.cc: Instead of using separate MDL_context for opening system tables we now create MDL savepoint in the main context before opening such tables and rollback to this savepoint after closing them. To support this change methods of THD responsible for saving/restoring open table state were changed to use Open_tables_backup class which in addition to Open_table_state has a member for this savepoint. Also releasing metadata lock on system table is now responsibility of THD::restore_backup_open_tables_state(). Adjusted assert in THD::cleanup() to take into account fact that now we also use MDL sentinel for global read lock. sql/sql_class.h: Instead of using separate MDL_context for opening system tables we now create MDL savepoint in the main context before opening such tables and rollback to this savepoint after closing them. As result: - 'mdl_context' member was moved out of Open_tables_state to THD class. enter_locked_tables_mode()/leave_locked_tables_mode() had to follow. - Methods of THD responsible for saving/restoring open table state were changed to use Open_tables_backup class which in addition to Open_table_state has a member for this savepoint. Changed Open_table_context class to store MDL_request object for global intention exclusive lock acquired when opening tables. sql/sql_delete.cc: MDL subsystem no longer implicitly acquires global intention exclusive metadata lock when per-object exclusive metadata lock is acquired. Now this has to be done by explicit calls outside of MDL subsystem. sql/sql_help.cc: Instead of using separate MDL_context for opening system tables we now create MDL savepoint in the main context before opening such tables and rollback to this savepoint after closing them. To support this change methods of THD responsible for saving/restoring open table state were changed to use Open_tables_backup class which in addition to Open_table_state has a member for this savepoint. As result code opening/closing system tables was changed to use Open_tables_backup instead of Open_table_state class as well. sql/sql_parse.cc: Adjusted assert reload_acl_and_cache() to the fact that global read lock now takes full-blown metadata lock. sql/sql_plist.h: Added support for element counting to I_P_List list template. One can use policy classes to specify if such counting is needed or not needed for particular list. sql/sql_show.cc: Instead of using separate MDL_context for opening tables for I_S purposes we now create MDL savepoint in the main context before opening tables and rollback to this savepoint after closing them. To support this and similar change for system tables methods of THD responsible for saving/restoring open table state were changed to use Open_tables_backup class which in addition to Open_table_state has a member for this savepoint. As result code opening/closing tables for I_S purposes was changed to use Open_tables_backup instead of Open_table_state class as well. sql/sql_table.cc: mysql_rm_tables_part2(): Since now global intention exclusive metadata lock is ordinary metadata lock we no longer can rely that by releasing MDL locks on all tables we will release all locks acquired by this routine. So in non-LOCK-TABLES mode we have to release all locks acquired explicitly. prepare_for_repair(), mysql_alter_table(): MDL subsystem no longer implicitly acquires global intention exclusive metadata lock when per-object exclusive metadata lock is acquired. Now this has to be done by explicit calls outside of MDL subsystem. sql/tztime.cc: Instead of using separate MDL_context for opening system tables we now create MDL savepoint in the main context before opening such tables and rollback to this savepoint after closing them. To support this change methods of THD responsible for saving/restoring open table state were changed to use Open_tables_backup class which in addition to Open_table_state has a member for this savepoint. As result code opening/closing system tables was changed to use Open_tables_backup instead of Open_table_state class as well. Also changed code not to use special mechanism for open system tables when it is not really necessary. |
16 years ago |
|
|
e0e0f9e3d4 |
WL#2360 Performance schema
Part V: performance schema implementation |
16 years ago |
|
|
3d91522561 |
WL#2360 Performance schema
Part IV: sql instrumentation |
16 years ago |
|
|
bf9c1b7353 |
Apply and review:
3655 Jon Olav Hauglid 2009-10-19 Bug #30977 Concurrent statement using stored function and DROP FUNCTION breaks SBR Bug #48246 assert in close_thread_table Implement a fix for: Bug #41804 purge stored procedure cache causes mysterious hang for many minutes Bug #49972 Crash in prepared statements The problem was that concurrent execution of DML statements that use stored functions and DDL statements that drop/modify the same function might result in incorrect binary log in statement (and mixed) mode and therefore break replication. This patch fixes the problem by introducing metadata locking for stored procedures and functions. This is similar to what is done in Bug#25144 for views. Procedures and functions now are locked using metadata locks until the transaction is either committed or rolled back. This prevents other statements from modifying the procedure/function while it is being executed. This provides commit ordering - guaranteeing serializability across multiple transactions and thus fixes the reported binlog problem. Note that we do not take locks for top-level CALLs. This means that procedures called directly are not protected from changes by simultaneous DDL operations so they are executed at the state they had at the time of the CALL. By not taking locks for top-level CALLs, we still allow transactions to be started inside procedures. This patch also changes stored procedure cache invalidation. Upon a change of cache version, we no longer invalidate the entire cache, but only those routines which we use, only when a statement is executed that uses them. This patch also changes the logic of prepared statement validation. A stored procedure used by a prepared statement is now validated only once a metadata lock has been acquired. A version mismatch causes a flush of the obsolete routine from the cache and statement reprepare. Incompatible changes: 1) ER_LOCK_DEADLOCK is reported for a transaction trying to access a procedure/function that is locked by a DDL operation in another connection. 2) Procedure/function DDL operations are now prohibited in LOCK TABLES mode as exclusive locks must be taken all at once and LOCK TABLES provides no way to specifiy procedures/functions to be locked. Test cases have been added to sp-lock.test and rpl_sp.test. Work on this bug has very much been a team effort and this patch includes and is based on contributions from Davi Arnaut, Dmitry Lenev, Magne Mæhre and Konstantin Osipov. mysql-test/r/ps_ddl.result: Update results (Bug#30977). mysql-test/r/ps_ddl1.result: Update results (Bug#30977). mysql-test/r/sp-error.result: Update results (Bug#30977). mysql-test/r/sp-lock.result: Update results (Bug#30977). mysql-test/suite/rpl/r/rpl_sp.result: Update results (Bug#30977). mysql-test/suite/rpl/t/rpl_sp.test: Add a test case for Bug#30977. mysql-test/t/ps_ddl.test: Update comments. We no longer re-prepare a prepared statement when a stored procedure used in top-level CALL is changed. mysql-test/t/ps_ddl1.test: Modifying stored procedure p1 no longer invalidates prepared statement "call p1" -- we can re-use the prepared statement without invalidation. mysql-test/t/sp-error.test: Use a constant for an error value. mysql-test/t/sp-lock.test: Add test coverage for Bug#30977. sql/lock.cc: Implement lock_routine_name() - a way to acquire an exclusive metadata lock (ex- name-lock) on stored procedure/function. sql/sp.cc: Change semantics of sp_cache_routine() -- now it has an option to make sure that the routine that is cached is up to date (has the latest sp cache version). Add sp_cache_invalidate() to sp_drop_routine(), where it was missing (a bug!). Acquire metadata locks for SP DDL (ALTER/CREATE/DROP). This is the core of the fix for Bug#30977. Since caching and cache invalidation scheme was changed, make sure we don't invalidate the SP cache in the middle of a stored routine execution. At the same time, make sure we don't access stale data due to lack of invalidation. For that, change ALTER FUNCTION/PROCEDURE to not use the cache, and SHOW PROCEDURE CODE/SHOW CREATE PROCEDURE/FUNCTION to always read an up to date version of the routine from the cache. sql/sp.h: Add a helper wrapper around sp_cache_routine(). sql/sp_cache.cc: Implement new sp_cache_version() and sp_cache_flush_obsolete(). Now we flush stale routines individually, rather than all at once. sql/sp_cache.h: Update signatures of sp_cache_version() and sp_cache_flush_obsolete(). sql/sp_head.cc: Add a default initialization of sp_head::m_sp_cache_version. Remove a redundant sp_head::create(). sql/sp_head.h: Add m_sp_cache_version to sp_head class - we now keep track of every routine in the stored procedure cache, rather than of the entire cache. sql/sql_base.cc: Implement prelocking for stored routines. Validate stored routines after they were locked. Flush obsolete routines upon next access, one by one, not all at once (Bug#41804). Style fixes. sql/sql_class.h: Rename a Open_table_context method. sql/sql_parse.cc: Make sure stored procedures DDL commits the active transaction (issues an implicit commit before and after). Remove sp_head::create(), a pure redundancy. Move the semantical check during alter routine inside sp_update_routine() code in order to: - avoid using SP cache during update, it may be obsolete. - speed up and simplify the update procedure. Remove sp_cache_flush_obsolete() calls, we no longer flush the entire cache, ever, stale routines are flushed before next use, one at a time. sql/sql_prepare.cc: Move routine metadata validation to open_and_process_routine(). Fix Bug#49972 (don't swap flags at reprepare). Reset Sroutine_hash_entries in reinit_stmt_before_use(). Remove SP cache invalidation, it's now done by open_tables(). sql/sql_show.cc: Fix a warning: remove an unused label. sql/sql_table.cc: Reset mdl_request.ticket for tickets acquired for routines inlined through a view, in CHECK TABLE statement, to satisfy an MDL assert. sql/sql_update.cc: Move the cleanup of "translation items" to close_tables_for_reopen(), since it's needed in all cases when we back off, not just the back-off in multi-update. This fixes a bug when the server would crash on attempt to back off when opening tables for a statement that uses information_schema tables. |
16 years ago |
|
|
dfdbc84585 |
A prerequisite patch for the fix for Bug#46224
"HANDLER statements within a transaction might lead to deadlocks". Introduce a notion of a sentinel to MDL_context. A sentinel is a ticket that separates all tickets in the context into two groups: before and after it. Currently we can have (and need) only one designated sentinel -- it separates all locks taken by LOCK TABLE or HANDLER statement, which must survive COMMIT and ROLLBACK and all other locks, which must be released at COMMIT or ROLLBACK. The tricky part is maintaining the sentinel up to date when someone release its corresponding ticket. This can happen, e.g. if someone issues DROP TABLE under LOCK TABLES (generally, see all calls to release_all_locks_for_name()). MDL_context::release_ticket() is modified to take care of it. ****** A fix and a test case for Bug#46224 "HANDLER statements within a transaction might lead to deadlocks". An attempt to mix HANDLER SQL statements, which are transaction- agnostic, an open multi-statement transaction, and DDL against the involved tables (in a concurrent connection) could lead to a deadlock. The deadlock would occur when HANDLER OPEN or HANDLER READ would have to wait on a conflicting metadata lock. If the connection that issued HANDLER statement also had other metadata locks (say, acquired in scope of a transaction), a classical deadlock situation of mutual wait could occur. Incompatible change: entering LOCK TABLES mode automatically closes all open HANDLERs in the current connection. Incompatible change: previously an attempt to wait on a lock in a connection that has an open HANDLER statement could wait indefinitely/deadlock. After this patch, an error ER_LOCK_DEADLOCK is produced. The idea of the fix is to merge thd->handler_mdl_context with the main mdl_context of the connection, used for transactional locks. This makes deadlock detection possible, since all waits with locks are "visible" and available to analysis in a single MDL context of the connection. Since HANDLER locks and transactional locks have a different life cycle -- HANDLERs are explicitly open and closed, and so are HANDLER locks, explicitly acquired and released, whereas transactional locks "accumulate" till the end of a transaction and are released only with COMMIT, ROLLBACK and ROLLBACK TO SAVEPOINT, a concept of "sentinel" was introduced to MDL_context. All locks, HANDLER and others, reside in the same linked list. However, a selected element of the list separates locks with different life cycle. HANDLER locks always reside at the end of the list, after the sentinel. Transactional locks are prepended to the beginning of the list, before the sentinel. Thus, ROLLBACK, COMMIT or ROLLBACK TO SAVEPOINT, only release those locks that reside before the sentinel. HANDLER locks must be released explicitly as part of HANDLER CLOSE statement, or an implicit close. The same approach with sentinel is also employed for LOCK TABLES locks. Since HANDLER and LOCK TABLES statement has never worked together, the implementation is made simple and only maintains one sentinel, which is used either for HANDLER locks, or for LOCK TABLES locks. mysql-test/include/handler.inc: Add test coverage for Bug#46224 "HANDLER statements within a transaction might lead to deadlocks". Extended HANDLER coverage to cover a mix of HANDLER, transactions and DDL statements. mysql-test/r/handler_innodb.result: Update results (Bug#46224). mysql-test/r/handler_myisam.result: Update results (Bug#46224). sql/lock.cc: Remove thd->some_tables_deleted, it's never used. sql/log_event.cc: No need to check for thd->locked_tables_mode, it's done inside release_transactional_locks(). sql/mdl.cc: Implement the concept of HANDLER and LOCK TABLES "sentinel". Implement a method to clone an acquired ticket. Do not return tickets beyond the sentinel when acquiring locks, create a copy. Remove methods to merge and backup MDL_context, they are now not used (Hurra!). This opens a path to a proper constructor and destructor of class MDL_context (to be done in a separate patch). Modify find_ticket() to provide information about where the ticket position is with regard to the sentinel. sql/mdl.h: Add declarations necessary for the implementation of the concept of "sentinel", a dedicated ticket separating transactional and non-transactional locks. sql/mysql_priv.h: Add mark_tmp_table_for_reuse() declaration, a function to "close" a single session (temporary) table. sql/sql_base.cc: Remove thd->some_tables_deleted. Modify deadlock-prevention asserts and deadlock detection heuristics to take into account that from now on HANDLER locks reside in the same locking context. Add broadcast_refresh() to mysql_notify_thread_having_shared_lock(): this is necessary for the case when a thread having a shared lock is asleep in tdc_wait_for_old_versions(). This situation is only possible with HANDLER t1 OPEN; FLUSH TABLE (since all over code paths that lead to tdc_wait_for_old_versions() always have an empty MDL_context). Previously the server would simply deadlock in this situation. sql/sql_class.cc: Remove now unused member "THD::some_tables_deleted". Move mysql_ha_cleanup() a few lines above in THD::cleanup() to make sure that all handlers are closed when it's time to destroy the MDL_context of this connection. Remove handler_mdl_context and handler_tables. sql/sql_class.h: Remove THD::handler_tables, THD::handler_mdl_context, THD::some_tables_deleted. sql/sql_handler.cc: Remove thd->handler_tables. Remove thd->handler_mdl_context. Rewrite mysql_ha_open() to have no special provision for MERGE tables, now that we don't have to manipulate with thd->handler_tables it's easy to do. Remove dead code. Fix a bug in mysql_ha_flush() when we would always flush a temporary HANDLER when mysql_ha_flush() is called (actually mysql_ha_flush() never needs to flush temporary tables). sql/sql_insert.cc: Update a comment, no more thd->some_tables_deleted. sql/sql_parse.cc: Implement an incompatible change: entering LOCK TABLES closes active HANDLERs, if any. Now that we have a sentinel, we don't need to check for thd->locked_tables_mode when releasing metadata locks in COMMIT/ROLLBACK. sql/sql_plist.h: Add new (now necessary) methods to the list class. sql/sql_prepare.cc: Make sure we don't release HANDLER locks when rollback to a savepoint, set to not keep locks taken at PREPARE. sql/sql_servers.cc: Update to a new signature of MDL_context::release_all_locks(). sql/sql_table.cc: Remove thd->some_tables_deleted. sql/transaction.cc: Add comments. Make sure rollback to (MDL) savepoint works under LOCK TABLES and with HANDLER tables. |
16 years ago |
|
|
0531f85e16 |
Merge cleanup
|
16 years ago |
|
|
3d062adf25 |
Backport of revno: 3685
Bug #48210 FLUSH TABLES WITH READ LOCK deadlocks against concurrent CREATE PROCEDURE This deadlock occured between a) CREATE PROCEDURE (or other commands listed below) b) FLUSH TABLES WITH READ LOCK If the execution of them happened in the following order: - a) opens a table (e.g. mysql.proc) - b) locks the global read lock (or GRL) - a) sleeps inside wait_if_global_read_lock() - b) increases refresh_version and sleeps waiting for old tables to go away Note that a) must start waiting on the GRL before FLUSH increases refresh_version. Otherwise a) won't wait on the GRL and instead close its tables for reopen, allowing FLUSH to complete and thus avoid the deadlock. With this patch the deadlock is avoided by making CREATE PROCEDURE acquire a protection against global read locks before it starts executing. This means that FLUSH TABLES WITH READ LOCK will have to wait until CREATE PROCEDURE completes before acquiring the global read lock, thereby avoiding the deadlock. This is implemented by introducing a new SQL command flag called CF_PROTECT_AGAINST_GRL. Commands marked with this flag will acquire a GRL protection in the beginning of mysql_execute_command(). This patch adds the flag to CREATE, ALTER and DROP for PROCEDURE and FUNCTION, as well as CREATE USER, DROP USER, RENAME USER and REVOKE ALL. All these commands either call open_grant_tables() or open_system_table_for_updated() which make them susceptible for this deadlock. The patch also adds the CF_PROTECT_AGAINST_GRL flag to a number of commands that previously acquired GRL protection in their respective SQLCOM case in mysql_execute_command(). Test case that checks for GRL protection for CREATE PROCEDURE and CREATE USER added to mdl_sync.test. |
16 years ago |