[interchange] Fix error creating indexes in MySQL and other dbs when QUOTE_IDENTIFIERS is set
Peter Ajamian <[email protected]> Mon, 25 Apr 2016 08:34:40 +0000
| Newsgroups | gmane.comp.web.interchange.cvs |
|---|---|
| Message-ID | <[email protected]> |
commit c15c57cf4b973ad0978daf634c373b066588dd00 Author: Peter Ajamian <[email protected]> Date: Mon Apr 25 20:28:23 2016 +1200 Fix error creating indexes in MySQL and other dbs when QUOTE_IDENTIFIERS is set The problem was that Vend::Table::DBI was assembling an index name based on the quoted table name plus '_' plus quoted column name, resulting in a syntactically invalid name like `variants`_`sku`, leading to errors. Instead assemble the name unquoted, and quote the final result. This is related to commit 86fbcb14c402efda89b2329b73270ae513715ddf which fixes the same issue for PostgreSQL, the error also needed correcting for the other db types as well. lib/Vend/Table/DBI.pm | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) --- diff --git a/lib/Vend/Table/DBI.pm b/lib/Vend/Table/DBI.pm index 06b4791..de2e7e4 100644 --- a/lib/Vend/Table/DBI.pm +++ b/lib/Vend/Table/DBI.pm @@ -176,9 +176,9 @@ my %known_capability = ( Pg => 'ALTER TABLE _TABLE_ ADD COLUMN _COLUMN_ _DEF_', }, ALTER_INDEX => { - mysql => 'CREATE _UNIQUE_ INDEX $TABLE$_$COLUMN$ ON _TABLE_ (_COLUMN_)', + mysql => 'CREATE _UNIQUE_ INDEX $TABLE_COLUMN$ ON _TABLE_ (_COLUMN_)', Pg => 'CREATE _UNIQUE_ INDEX $TABLE_COLUMN$ ON _TABLE_ (_COLUMN_)', - default => 'CREATE _UNIQUE_ INDEX $TABLE$_$COLUMN$ ON _TABLE_ (_COLUMN_)', + default => 'CREATE _UNIQUE_ INDEX $TABLE_COLUMN$ ON _TABLE_ (_COLUMN_)', }, LIST_FIELDS_QUERY => { mysql => 'SELECT * FROM `_TABLE_` WHERE 2 = 1',