News:

Support the VirtueMart project and become a member

Main Menu

Module corresponding tables

Started by psm, March 02, 2019, 22:32:54 PM

Previous topic - Next topic

psm

Hello,
please is there any way how to find which tables are used by module Cherry picker - advanced search for Virtuemart?

I have problem with error:  Too many keys specified; max 64 keys allowed when I import parameters and values of each product to custom fields.

I read it is possible to fix it by change type of tables from MyISAM to InnoDB. but I do not know which tables I should change.

Thank you

Jörgen

You have not given any VM, Joomla or PHP versions, buta since this is actually not a VM question, this should be directed to cherry picker.

The used db files are of course shown in the cherry picker code, check this for database calls.

Search through the database and you will probably see tables named cherry_picker or similar.

Jörgen @ Kreativ Fotografi


Joomla 3.9.18
Virtuemart 3.4.x
Olympiantheme Hera (customized)
This reflects current status when viewing old post.

psm

#2
Thank you and which code shoul contain this information, please? I know it must follow some predefined structure.

And can be this problem solve by change type of tables to InnoDB?


Studio 42

Check in your cherry picker Module the loaded files, you should see the tables inside this files

psm

And how can I chcek loaded files, please?

Studio 42

You have do a screenshot, the main files are in mod_cherry... folder.
If you dont see any query, then you have to check in function buildfiltertable ....

psm

Hello,
just for notice: after we imported 12000 products with 10 custom fields in average for 1 product from supplier this module stopped to work. (For example with 200 products this module works well.)

Finally I changed all tables in DB to InnoDB type and it did not help.

I found one command for create temporary table by Cherry Picker module. Could you please advice me if this part of module can be problematic and how to solve it?

$selectStatement = "SELECT  ". implode(', ', $columns) .
            " FROM (". implode(', ', $tables) .") ". implode(' ', $joins) .
            " WHERE ". implode(' AND ', $where) .
            " GROUP BY vpc.virtuemart_product_id";

    // In case Dynamic Mode enabled after the Static Mode, we need to clear Static table
    if ($filtersTableMode == CP_FILTER_TABLE_DYNAMIC) {
        $this->deleteFiltersTable();

        $q = "CREATE TEMPORARY TABLE `#__cp_filters`".
        " (". $tableOptions .") ENGINE=MyISAM  DEFAULT CHARSET=utf8".
        " (". $selectStatement .")";
    } else {
        $q = "CREATE TABLE `#__cp_filters`".
        " (". $tableOptions .") ENGINE=MyISAM  DEFAULT CHARSET=utf8".
        " (". $selectStatement .")";
    }

I already tried to change engine in code to InnoDb but it did not help too.

Module developer still do not respond to my emails.

Thank you very much.

Studio 42

Sorry but this is not a virtuemart problem. You have to know or see the code to help you, i think that no one can give you an answer here, you have to hire someone to do it.