Error when matching table names in mysql helper
I use the following configuration in the backupninja mysql config:
databases = tinytinyrss nodata = tinytinyrss.ttrss_cat_counters_cache tinytinyrss.ttrss_counters_cache tinytinyrss.ttrss_entries tinytinyrss.ttrss_error_log tinytinyrss.ttrss_sessions tinytinyrss.ttrss_user_entries tinytinyrss.ttrss_feedbrowser_cache@
The backup aborts with the following message:
Debug: su -c "( /usr/bin/mysqldump --defaults-extra-file=/root/.my.cnf --lock-tables --complete-insert --add-drop-table --quick --quote-names --ignore-table=tinytinyrss.ttrss_cat_counters_cache --ignore-table=tinytinyrss.ttrss_counters_cache --ignore-table=tinytinyrss.ttrss_entries --ignore-table=tinytinyrss.ttrss_error_log --ignore-table=tinytinyrss.ttrss_sessions --ignore-table=tinytinyrss.ttrss_user_entries --ignore-table=tinytinyrss.ttrss_feedbrowser_cache tinytinyrss; /usr/bin/mysqldump --defaults-extra-file=/root/.my.cnf --lock-tables --complete-insert --add-drop-table --quick --quote-names --no-data tinytinyrss ttrss_cat_counters_cache ttrss_counters_cache ttrss_entries ttrss_error_log ttrss_sessions ttrss_user_entries ttrss_feedbro ) | /bin/gzip > '/home/backup/out/mysql/sqldump/tinytinyrss.sql.gz'" Warning: mysqldump: Couldn't find table: "ttrss_feedbro" Warning: Failed to dump mysql databases tinytinyrss
I nailed it down to the following expression in the mysql helper:
$ expr match "tinytinyrss.ttrss_feedbrowser_cache" "tinytinyrss\.\([^\w]*\)" ttrss_feedbro
I don't quite understand why @([^\w])@ is used here. If I use @(\w)@ the expected values is returned:
$ expr match "tinytinyrss.ttrss_feedbrowser_cache" "tinytinyrss\.\(\w*\)" ttrss_feedbrowser_cache
(from redmine: created on 2013-05-19)