Extension talk:Cargo

Pins on Openlayers map not clickable on mobile
I can't get the pins on Openlayers maps to be clickable on mobile (or whatever the word is - touchable?). The same query with Google maps works all right. Jonathan3 (talk) 13:23, 9 January 2023 (UTC)


 * Any ideas? :-) Jonathan3 (talk) 22:42, 27 January 2023 (UTC)

Stripmarkers displayed in query output when using Template Styles Extension on wikitext field
We frequently use templates to inject additional information or styling into wikitext, some of which gets stored in the Cargo tables. When the styling is handled by Common.css, all behavior is normal. If the CSS is moved such that it's managed by the TemplateStyles extension, then the Cargo Query will begin to display Strip Markers in the output. How can this be resolved without moving styling back into Common.css?

I attempted to add a link to an example of this error, but Mediawiki would not allow me. 67.191.180.153 18:47, 10 January 2023 (UTC)


 * Do you mean that this error can be seen on a public wiki? If so, could you put the URL here without the "http" part? Yaron Koren (talk) 03:57, 11 January 2023 (UTC)
 * I set up a demo of the error here. The page is a query which displays a wikitext summary. Cargo behaved as intended in the past, but after introducing TemplateStyles, cargo now displays the stripmarkers for the wikitext fileds' template calls. www.dustloop.com/w/User:PrivateTarkus/sandbox 67.191.180.153 05:51, 12 January 2023 (UTC)
 * As a temporary solution, I've disabled Templatestyles for templates which frequently appear within Cargo fields. As expected, this workaround does resolve the issue for now. It seems to be a problem of cross-compatability between Templatestyles and Cargo, @Yaron Koren. 67.191.180.153 14:05, 16 January 2023 (UTC)

Sort from largest to smallest
Hello, how can I sort the rows in the table so that the table starts from 10 to 1, and not 1 to 10. I use Lua. -- Oleksii 212.80.47.83 07:47, 18 January 2023 (UTC)


 * Just add " DESC" at the end of the "order by" value. Yaron Koren (talk) 19:02, 18 January 2023 (UTC)

Compound Query ordering
Cargo 3.3.1

MW 1.39.0

Is it possible to set the Order by so that it affects all the queries in a compound query?

Example query

This has two queries, but the results are displayed in order for each individual query. Temujen510 (talk) 20:12, 21 January 2023 (UTC)


 * Unfortunately, no. Yaron Koren (talk) 01:22, 23 January 2023 (UTC)

Page references in columns not updated after moving page
What is the expected behavior for a Page data type in a Cargo column? I had expected that when I move a page, all references to that page in Cargo table columns would then be updated, but that doesn't appear to be happening. What is the best approach to keeping two tables, one of which references the other's page name, in sync after page moves? Nicholasalanbrown (talk) 02:08, 5 February 2023 (UTC)


 * No, what's in Cargo just reflects what's in the wikitext (well, usually). You can do something like joining on the _pageData table and using its _pageNameOrRedirect field, but I would recommend just using the Replace Text extension. Yaron Koren (talk) 03:27, 6 February 2023 (UTC)

Hide "Go to date" part of calendar
This part of the calendar doesn't look well when the screen is narrow. What is the best way to hide it? I see that one of the calendars linked to on the documentation page is https://icannwiki.org/IG_Hub/Calendar and it does not have the "Go to date" part. Thanks. Jonathan3 (talk) 08:25, 14 February 2023 (UTC)


 * I'd still be interested in a parameter to remove this. It only appears on recent Cargo versiosn (e.g. on https://discoursedb.org/wiki/Opinion_calendar but not on https://icannwiki.org/IG_Hub/Calendar). I've managed to hide it with CSS, but the lack of id's makes it imperfect:



Link do Drilldown
I am trying to put a link to a pre-filtered drilldown on a wiki page. The link looks fine when I hover over it, but I actually click on it the "&" and other special characters get changed. For example, instead of what it should be and is in the hover over  it becomes , and when I click on it I get an error. How would I build a link to a drilldown in a wiki page? Tenbergen (talk) 16:10, 15 February 2023 (UTC)


 * Right - the only solution I can think of is to make an external link (with the full "http..."), instead of an internal link. Yaron Koren (talk) 16:47, 15 February 2023 (UTC)


 * That works for explicit links, thanks! I was trying to generate the links inside a query (I have an aggregate query that provides counts, and want to link to a drilldown that would list the values that are counted). Some of the values have spaces in them, so the only way I can think of to make this work is to enable the "replace" function in SQL and then turn the spaces into "+" to generate the link. This works, but REPLACE seems to be an especially problematic function to enable. Is there a better solution to generate that link? Tenbergen (talk) 18:06, 15 February 2023 (UTC)
 * Oh, I see. That seems fine - I don't see anything wrong with using REPLACE. Yaron Koren (talk) 20:10, 15 February 2023 (UTC)


 * My concern with enabling the replace function was that it might allow re-writing things inside an SQL query, e.g. SQL injection. Maybe I am being paranoid. Tenbergen (talk) 19:17, 16 February 2023 (UTC)

"Recreate data" issue with Mediawiki 1.39.1
I'm getting the following error. I have ran update.php since upgrading Mediawiki and Cargo. Any ideas?

Error 1054: Unknown column 'tl_namespace' in 'where clause'

Function: SpecialCargoRecreateData::getNumPagesThatCallTemplate

Query: SELECT COUNT(*) AS total FROM `page`,`templatelinks` WHERE (tl_from=page_id) AND tl_namespace = 10 AND tl_title = 'CMTS'

Backtrace:

from /var/www/html/wiki/includes/libs/rdbms/database/Database.php(1618)


 * 1) 0 /var/www/html/wiki/includes/libs/rdbms/database/Database.php(1602): Wikimedia\Rdbms\Database->getQueryException


 * 1) 1 /var/www/html/wiki/includes/libs/rdbms/database/Database.php(1576): Wikimedia\Rdbms\Database->getQueryExceptionAndLog


 * 1) 2 /var/www/html/wiki/includes/libs/rdbms/database/Database.php(952): Wikimedia\Rdbms\Database->reportQueryError


 * 1) 3 /var/www/html/wiki/includes/libs/rdbms/database/Database.php(1708): Wikimedia\Rdbms\Database->query


 * 1) 4 /var/www/html/wiki/includes/libs/rdbms/database/DBConnRef.php(103): Wikimedia\Rdbms\Database->select


 * 1) 5 /var/www/html/wiki/includes/libs/rdbms/database/DBConnRef.php(325): Wikimedia\Rdbms\DBConnRef->__call


 * 1) 6 /var/www/html/wiki/extensions/Cargo/includes/specials/SpecialCargoRecreateData.php(164): Wikimedia\Rdbms\DBConnRef->select


 * 1) 7 /var/www/html/wiki/extensions/Cargo/includes/specials/SpecialCargoRecreateData.php(79): SpecialCargoRecreateData->getNumPagesThatCallTemplate


 * 1) 8 /var/www/html/wiki/extensions/Cargo/includes/CargoRecreateDataAction.php(43): SpecialCargoRecreateData->execute


 * 1) 9 /var/www/html/wiki/includes/MediaWiki.php(542): CargoRecreateDataAction->show


 * 1) 10 /var/www/html/wiki/includes/MediaWiki.php(322): MediaWiki->performAction


 * 1) 11 /var/www/html/wiki/includes/MediaWiki.php(904): MediaWiki->performRequest


 * 1) 12 /var/www/html/wiki/includes/MediaWiki.php(562): MediaWiki->main


 * 1) 13 /var/www/html/wiki/index.php(50): MediaWiki->run


 * 1) 14 /var/www/html/wiki/index.php(46): wfIndexMain


 * 1) 15 {main} Brian Coulter (talk) 05:36, 16 February 2023 (UTC)


 * Please make sure you're using version 3.3.1 or higher of Cargo. Yaron Koren (talk) 13:39, 16 February 2023 (UTC)
 * Sure enough, I was on version 3.2. I thought I was on the latest version.  Thank you. Brian Coulter (talk) 15:28, 16 February 2023 (UTC)

Error using Display Format Tree
I have a query that uses format=tree. The query works fine with default format, but when it includes the tree format I get An error occurred while attempting to preview your changes. [Y@6B0PewgK-G5pKpZ7wu1AAAAA8] Caught exception of type TypeError When I enable debug, it gives [Y@0OWaDWU8Gc8kr4BU0dggAAAA8] /index.php?title=Org_Chart&action=submit TypeError: array_key_exists: Argument #2 ($array) must be of type array, CargoFieldDescription given Backtrace: from /.../extensions/Cargo/includes/formats/CargoTreeFormat.php(40) This CargoTreeFormat.php(40) is if ( array_key_exists( 'isList', $fieldDescriptions[$this->mParentField] ) ) { What is actually wrong here? I think an exception isn't being trapped as intended, but I don't understand what. What do I need to change? Tenbergen (talk) 19:23, 16 February 2023 (UTC)


 * Wow! It must have been a long time since anyone tried to use the "tree" format, because there were various things that were not working there - that "isList" check was just one of them. I just checked in a fix, so it all should work better. Yaron Koren (talk) 21:37, 16 February 2023 (UTC)


 * That fixed it! Yes, it's been a problem for a long time, I just had not got back to troubleshooting it. Thanks! Tenbergen (talk) 00:12, 17 February 2023 (UTC)

Add table row [edit link] when using format=template
I'm displaying results in a table, using format=template for the rows. How can I add a Page Forms edit link next to each row? I know this is possible using format=table by adding the parameter "edit link=yes", but I haven't figured out how to do it when using format=template. Note that I'm using unique numbers as the pagename for each country.

Template:Country

Template:Country row









Template:List of countries

120.28.64.1 09:23, 19 February 2023 (UTC)


 * It sounds like you need to add _pageName to the list of fields in the query - and then have #formlink include . Yaron Koren (talk) 16:09, 20 February 2023 (UTC)
 * Thank you very much! 120.28.64.1 17:29, 21 February 2023 (UTC)

Database error when trying to concat a list field in Cargo Query
I was doing some troubleshooting and tried to run a query in the Special Cargo Query. The query is where SecretaryTo is of type "List of Page, delimiter: ,". When I run the query with a text field I get no error. The query runs and provides sort of the expected result when I just use the field, no Concat. But I think I have some blanks or other problem, so I wanted to add the xs before and the ys after. When I do that, get a red crash:
 * [Y-angD@M5u2uPkXmix1j2QAAAA8] 2023-02-22 23:38:40: Fatal exception of type "Wikimedia\Rdbms\DBQueryError"

With debugging enabled it becomes
 * [Y-amLT@M5u2uPkXmix1jdwAAAA8] /index.php?title=Special%3ACargoQuery&tables=Person&fields=CONCAT%28%22xxx%22%2C+Person.SecretaryTo%2C+%22yyy%22%29&where=_pageName%3D%22Tina+Tenbergen%22&join_on=&group_by=&having=&order_by%5B0%5D=&order_by_options%5B0%5D=ASC&limit=&offset=&format= Wikimedia\Rdbms\DBQueryError: A database query error has occurred. Did you forget to run your application's database schema updater after upgrading or after adding a new extension?
 * Please see https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Upgrading and https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:How_to_debug for more information.
 * Error 1054: Unknown column 'mw_cargo__Person.SecretaryTo' in 'field list'
 * Function: CargoQueryPage::reallyDoQuery
 * Query: SELECT CONCAT("xxx", `mw_cargo__Person`.`SecretaryTo`, "yyy") AS `SecretaryTo, "yyy")` FROM `mw_cargo__Person` WHERE (_pageName="Tina Tenbergen") ::ORDER BY CONCAT("xxx",`mw_cargo__Person`.`SecretaryTo__full`, "yyy") LIMIT 1001
 * Backtrace:
 * from /home/ /includes/libs/rdbms/database/Database.php(1618)
 * 0 /home/ /includes/libs/rdbms/database/Database.php(1602): Wikimedia\Rdbms\Database->getQueryException(string, integer, string, string)
 * 1 /home/ /includes/libs/rdbms/database/Database.php(1576): Wikimedia\Rdbms\Database->getQueryExceptionAndLog(string, integer, string, string)
 * 2 /home/ /includes/libs/rdbms/database/Database.php(952): Wikimedia\Rdbms\Database->reportQueryError(string, integer, string, string, boolean)
 * 3 /home/ /includes/libs/rdbms/database/Database.php(1708): Wikimedia\Rdbms\Database->query(string, string, integer)
 * 4 /home/ /includes/specialpage/QueryPage.php(540): Wikimedia\Rdbms\Database->select(array, array, array, string, array, array)
 * 5 /home/ /includes/specialpage/QueryPage.php(726): QueryPage->reallyDoQuery(integer, integer)
 * 6 /home/ /extensions/Cargo/includes/specials/SpecialCargoQuery.php(36): QueryPage->execute(NULL)
 * 7 /home/ /includes/specialpage/SpecialPage.php(701): SpecialCargoQuery->execute(NULL)
 * 8 /home/ /includes/specialpage/SpecialPageFactory.php(1428): SpecialPage->run(NULL)
 * 9 /home/ /includes/MediaWiki.php(316): MediaWiki\SpecialPage\SpecialPageFactory->executePath(string, RequestContext)
 * 10 /home/ /includes/MediaWiki.php(904): MediaWiki->performRequest
 * 11 /home/ /includes/MediaWiki.php(562): MediaWiki->main
 * 12 /home/ /index.php(50): MediaWiki->run
 * 13 /home/ /index.php(46): wfIndexMain
 * 14 {main}
 * 11 /home/ /includes/MediaWiki.php(562): MediaWiki->main
 * 12 /home/ /index.php(50): MediaWiki->run
 * 13 /home/ /index.php(46): wfIndexMain
 * 14 {main}

I suspect something about lists isn't handled right in this context. Tenbergen (talk) 23:37, 22 February 2023 (UTC)


 * A list field is not a string, so it's not surprising that the CONCAT failed. (And actually, list fields aren't even really fields at all - they're "virtual" fields.) I think you can get this query working by replacing  with  . Yaron Koren (talk) 15:45, 23 February 2023 (UTC)


 * Thanks, I got it working with __full. Error Fatal exception of type "Wikimedia\Rdbms\DBQueryError wasn't very helpful, though, and not all query builders would have access to enable debug to show something more helpful. So, I posted it in case you want to turn the error into something more descriptive. Thanks for your help! Tenbergen (talk) 22:31, 2 March 2023 (UTC)

Duplicate results in Special:Drilldown
Any news on this?


 * Extension_talk:Cargo/Archive_June_to_August_2022
 * Phabricator T317306: On Special:Drilldown, a page which matches n selected values on a filter field is displayed n times (instead of just once)]

Thanks. Jonathan3 (talk) 10:41, 2 March 2023 (UTC)


 * No, sorry - I'm guessing it's still a problem? Yaron Koren (talk) 14:49, 2 March 2023 (UTC)
 * Yes, I'm afraid so - quite a big one, for some tables at least.
 * I had a look at the code and added a suggestion on the Phabricator task. Jonathan3 (talk) 21:40, 2 March 2023 (UTC)

Hidden category for pages containing Cargo queries
Is it possible to set this up? Thanks. Jonathan3 (talk) 22:59, 6 March 2023 (UTC)


 * The cargo_backlinks DB table holds the IDs of all pages containing queries - maybe that's good enough? Yaron Koren (talk) 16:55, 7 March 2023 (UTC)
 * That sounds all right. Can it be queried from a wiki page? Jonathan3 (talk) 21:58, 8 March 2023 (UTC)
 * Not really with the current software... what's the ultimate goal? Yaron Koren (talk) 23:25, 8 March 2023 (UTC)
 * I'm considering changing a Cargo table's structure, and wanted to update queries where necessary. I considered writing a short script querying the cargo_backlinks table, but there aren't that many Cargo queries so I think I can just use Extension:ReplaceText (to search for ). Jonathan3 (talk) 22:39, 16 March 2023 (UTC)

List not populated
Hi! First of all, thanks for creating this extension :D I have some issues however, that I'm trying to sort out. Right now, my main table is not completely getting populated. It should have ~250,000 rows, but it just stops, sometimes at 300, sometimes at 17,0000, but never near expected. I have tried creating replacement tables, but has no effect. Does anyone by any chance know what could be the issue here? Dajasj (talk) 14:55, 16 March 2023 (UTC)


 * I would try populating the table from the command line, by calling cargoRecreateData.php - it might work better, or it might point to whatever is crashing the recreate process. Yaron Koren (talk) 15:01, 16 March 2023 (UTC)
 * If you're using MW 1.38+ and web UI to recreate cargo table then you'll hit this issue (&action=recreatedata), the problem is https://github.com/wikimedia/mediawiki-extensions-Cargo/blob/master/includes/specials/SpecialCargoRecreateData.php#L163 where tl_target_id should actually be a lt_id from linktarget, not the page_id of the ID of the template, following is an updated function that joins with linktarget table to get the correct numPages for creating table recrate jobs. Pandafox1 (talk) 09:50, 18 April 2023 (UTC)
 * public function getNumPagesThatCallTemplate( $dbw, $templateTitle ) {
 * $conds = [ "tl_from=page_id" ];
 * if ( class_exists(  'MediaWiki\CommentFormatter\CommentBatch' ) ) {
 * // MW 1.38+
 * $conds[] = "tl_target_id = lt_id";
 * $conds[ 'lt_namespace'] = $templateTitle->getNamespace;
 * $conds[ 'lt_title'] = $templateTitle->getDBkey;
 * } else {
 * $conds[ 'tl_namespace'] = $templateTitle->getNamespace;
 * $conds[ 'tl_title'] = $templateTitle->getDBkey;
 * }
 * $res = $dbw->select(
 * [  'page' ,  'templatelinks' ,  'linktarget' ],
 *  'COUNT(*) AS total',
 * $conds,
 * __METHOD__,
 * []
 * $row = $res->fetchRow;
 * return intval( $row[ 'total'] );
 * } Pandafox1 (talk) 09:55, 18 April 2023 (UTC)
 * } Pandafox1 (talk) 09:55, 18 April 2023 (UTC)

cargoRecreateData.php not working properly with --replacement parameter
I changed a field of an existing table from  to   and ran   with the   parameter. The  table was created, but when switching in the replacement table using the web interface the "NEXT" tables were not dropped (I've not noticed whether that is normal or not) but more importantly no   was created. This meant that the associated Page Form form didn't work.

I dropped the NEXT tables manually and ran  without the   parameter and it all worked as expected.

MW 1.35.8, Cargo 3.3.1 (dac6b0d). Jonathan3 (talk) 21:53, 19 March 2023 (UTC)


 * It sounds like the problem is with the switch call via the web interface, not with cargoRecreateData.php - no? Yaron Koren (talk) 17:20, 20 March 2023 (UTC)
 * Yes, agreed. Jonathan3 (talk) 19:18, 20 March 2023 (UTC)

Error: the string "`" cannot be used within #cargo_query
I started getting this error since Cargo 3.4.1. In my case, I have a label for a column that contains a space, i.e., and then I'm trying also sort on this column with. This used to work. I can fix it by using  instead, but without seeing the query plan, I think I'm experiencing a slower query because it's not using the same value already calculated in the SELECT clause. I don't know if that's really true, though.

What is the recommendation on sorting or grouping by columns with spaces in their names? &mdash; MusikAnimal  talk  16:52, 20 March 2023 (UTC)


 * Sorry about that - yes, backticks were recently disallowed in #cargo_query, for better or for worse. Yes, I would recommend just sorting on the COUNT call. I don't think it will be slower, but I don't know for sure. You could test it with a no-spaces alias. Yaron Koren (talk) 17:29, 20 March 2023 (UTC)
 * I also have the same problem, this is the only code I am managing in my personal wiki using the Cargo extension --Hispano76 (talk) 17:35, 20 March 2023 (UTC)
 * What is the #cargo_query call that is failing? Yaron Koren (talk) 17:42, 20 March 2023 (UTC)
 * That's the thing. i'm not using #cargo_query: anywhere and i only use the image thing; to use the data collected in Special:Drilldown to better manage the articles i make, ehm, like using the special page as a dictionary or database to create lists or people pages. --Hispano76 (talk) 17:49, 20 March 2023 (UTC)
 * So what is the error you are seeing? Yaron Koren (talk) 19:11, 20 March 2023 (UTC)
 * It occurs on two different special page, for example:
 * Special:CargoTables/Personas:
 * When entering one of the conditions of Special:Drilldown/Personas?_single&Genero=Mujeres:
 * Even when recreating the table, the error persists. --Hispano76 (talk) 19:28, 20 March 2023 (UTC)
 * Please try using the latest Cargo code, if you are not already; there have been some fixes for this "backticks" change, including one last week that may fix at least the Special:Drilldown problem. Yaron Koren (talk) 19:47, 20 March 2023 (UTC)

Cannot Create Cargo Tables
'''SOLVED: I think the problem is that my table name was "STAT_Faction." I removed the underscore...and now it behaves.'''

Might want to update the error text I saw below (testing, shockingly, dashes) to include underscores as not allowed either.

Error: table name "Dash-Test" cannot contain any of the following characters: .,-&lt;&gt;{}[]\/

Original description of problem
 * MediaWiki 	1.39.2
 * PHP 	7.4.33 (litespeed)
 * MySQL 	8.0.32-cll-lve
 * ICU 	64.2

Using Page Forms 5.6.

Tried to create a basic one-parameter template/table (a single text field). Neither SSH nor Create Data Table worked. I confirmed the MediaWiki user has all permissions to the MediaWiki table. Enabling $wgShowSQLErrors = true; and $wgShowExceptionDetails = true; revealed no error messages when running Create Data Table from a Template page.

I temporarily edited ext.cargo.recreatedata.js to log its error in my browser console. It's a database problem of some kind--"internal_api_error_DBQueryError" that doesn't expand (it's not a JSON object with more detail than just the message).

More data, used the old college try and here's what it was trying to send: Going to submit the following query string to MWAPI: {"action":"cargorecreatetables","format":"json","template":"Faction"}

SovereignGFC (talk) 11:28, 22 March 2023 (UTC)


 * Creating and recreating tables with underscores in their names works for me. What version of Cargo are you running? And what error(s) did you see when running cargoRecreateData.php from the command line, if any? Yaron Koren (talk) 14:53, 22 March 2023 (UTC)
 * Cargo version is 3.4.1.
 * When executing from SSH on the command line, no errors were displayed. SovereignGFC (talk) 20:45, 26 March 2023 (UTC)
 * Okay - so what happened when you ran cargoRecreateData.php? Yaron Koren (talk) 02:07, 27 March 2023 (UTC)
 * That's what is weird. Literally nothing.  No output, no errors, no actions taken in the database. SovereignGFC (talk) 01:16, 28 March 2023 (UTC)
 * Let me see if I understand this right: you had exactly one table defined, "STAT_Faction". Calling cargoRecreateData.php at that point did nothing. Then you renamed the table to "STATFaction", and calling cargoRecreateData.php started to work (and still works). Is that correct? Yaron Koren (talk) 14:52, 28 March 2023 (UTC)
 * That is correct.
 * I tried to debug it as described above but couldn't really get any useful data.
 * Since it works for you I'll just assume there's something weird with my web host/server and not put underscores in table names. SovereignGFC (talk) 12:29, 29 March 2023 (UTC)
 * Could it be that just resaving the template fixed the issue, somehow? I'd be very curious to know whether, if you changed the table name back to having an underscore, the problem came back. Yaron Koren (talk) 12:48, 29 March 2023 (UTC)
 * Get this...I accidentally created a table with an underscore today.
 * I have no idea what changed.
 * Ghosts. SovereignGFC (talk) 02:05, 6 April 2023 (UTC)

Missing Columns in CSV
I believe this is a bug. If you output to CSV, and not all rows have the fields you selected, then the output will not have that column in the headers or result set at all. If you output to Table it does. If you output to JSON only the records that have that field will include it. I did not test any other formats but they may be affected as well. I suspect the columns are selected based on the first result set, which is missing the column in my case, and only further rows have it. This is all from a single table. May be related to virtual list fields. BalmyRemission (talk) 17:05, 23 March 2023 (UTC)


 * Do you mean that this only happens if list fields contain empty values? Or does it happen for empty values in all kinds of fields? Yaron Koren (talk) 02:49, 24 March 2023 (UTC)
 * I didn't previously do extensive testing. Here's an example query (edit: I can't seem to post external links, so please visit poewiki dot net, go to CargoQuery, and fill in `items` for tables, `name, drop_areas, acquisition_tags, removal_version` for fields, and `rarity_id="unique"` for WHERE, and set the output format to CSV) where you can see the CSV is missing `drop_areas`, `acquisition_tags` and `removal_version`, and not just in the header, but in the result set as well. The first two are lists, and the last one is a string. If you modify the query at the bottom to output in table or json, those fields show up and are populated normally, but notice they aren't assigned for every row (since they have no data). I thought I ran into the problem in another combination of displays, but I can't remember where and it may have just been csv as well but from one of the other ways to invoke the cargo api. I just tried api.php and ApiSandbox now with json and that one is OK. CargoExport also shows the problem when dumping to CSV but again JSON is fine. So it seems like the problem is only with CSV and only if some of your fields are not populated for every row? And that it affects regular fields and virtual list fields. Hope this helps! BalmyRemission (talk) 04:04, 24 March 2023 (UTC)
 * I see the problem on your wiki, yes - although I can't reproduce that same issue locally. There's at least one other strange thing happening on your wiki, which is that submitting Special:CargoQuery twice (i.e., modifying the values and submitting again) results in all the values going blank. You're using a somewhat old version of Cargo on that wiki - could that be the cause of both of these problems? Or maybe your wiki has some custom modifications? Yaron Koren (talk) 13:27, 24 March 2023 (UTC)
 * Thank you for your time troubleshooting this Yaron, I've reported this to the admins of poewiki and we'll see what they say. I have no access to other wikis so didn't have a way to narrow my testing further. BalmyRemission (talk) 15:22, 24 March 2023 (UTC)

_ID on Cargo Table View
BEST SOLUTION: Use the Cargo query page, select desired fields, and export as Excel or CSV to accomplish the goal of dump and distribute data with IDs to a distributed team.

I am writing because I'd like to enable viewing _ID on the page Special:CargoTables/ in place of   in the query. If not, you'll probably have to do something more complicated, like joining the Cities table to itself. Yaron Koren (talk) 15:11, 1 May 2023 (UTC)

Cargo, Infoboxes, New Paragraph Breaks
So I'm beginning to think the reason my Infoboxes are looking funky is related to how Cargo returns data.





SovereignGFC (talk) 16:13, 29 April 2023 (UTC)


 * Is each of those a separate query? If so, then yes, extra HTML tags are the problem - and you can get rid of those by adding a  to each #cargo_query call. Yaron Koren (talk) 15:13, 1 May 2023 (UTC)
 * I'll try it, thanks! EDIT: I ended up going back to just letting Cargo handle it in "infobox" mode as that was working okay. SovereignGFC (talk) 14:53, 2 May 2023 (UTC)

Self-Inflicted Duplicate Issue
Putting the solution at the top! Don't do this: My MediaWiki Page -> My Template #1 -> Cargo Query using Template #2 for display -> Template #2 stores Cargo data. Re-using Template #2 caused rebuilding of the associated Cargo database to pick up on My Mediawiki Page as something to include in Cargo despite the exact same data being present in Template #2. Thanks to Yaron Koren for patiently debugging my recursive template usage issue.

Original problem follows... This isn't a recurrence of the duplicate rows issue that cropped up in 2021. I am 99.9% sure it's self-inflicted.

Steps
 * 1) Import page data from Excel into MyCargoDB.  All pages are prefixed with CARGO ("CARGO_MyPageName") because they're data, not to be looked at directly by readers.
 * 2) The template MyTemplate queries data pulled into Cargo from the imported CARGO pages.
 * 3) Page called MyPageName uses MyTemplate to display data pulled into Cargo from CARGO_MyPageName.
 * 4) Rebuild MyCargoDB.
 * 5) Now MyPageName using MyTemplate displays Cargo data twice.
 * 6) The view in Cargo Tables of MyCargoDB shows CARGO_MyPageName AND now MyPageName which explains why it's appearing twice.
 * 7) If this keeps up I'll have 150 duplicates.

I'm not sure what mistake I've made to create this circular import into Cargo.

SovereignGFC (talk) 15:06, 2 May 2023 (UTC)


 * That first step sounds odd - are you directly creating a table within the database? If so, you shouldn't do that - the data stored by Cargo should always reflect what's in the wikitext. Could that be the issue? Yaron Koren (talk) 02:56, 3 May 2023 (UTC)
 * Apologies, I am not directly creating a table. I import through an extension that creates wiki pages from said Excel sheet that match MyTemplate.
 * After importing, I immediately execute runJobs.php.
 * I then Recreate data on MyCargoDB.
 * If any MyPageName using MyTemplate that got put into MyCargoDB exists at that point, MyCargoDB gains an entry from MyPageName even though MyCargoDB was already populated by MyTemplate. SovereignGFC (talk) 22:02, 3 May 2023 (UTC)
 * Okay, never mind. Well, it's strange that pages that look simply like "MyPageName" are showing up as holding Cargo data - even though they're meant to only display, not store, Cargo data. What exactly is in the template "MyTemplate"? Yaron Koren (talk) 14:30, 4 May 2023 (UTC)
 * MyTemplate is NOT a Cargo-generated template. It is an actual page template that DOES contain Cargo queries using templates created by Cargo's Create a class. SovereignGFC (talk) 01:11, 5 May 2023 (UTC)
 * Well, does MyTemplate contain a call to #cargo_store? And if not, how are the pages that call it getting Cargo data stored for them? Yaron Koren (talk) 17:32, 5 May 2023 (UTC)
 * MyTemplate does not have calls to #cargo_store.
 * MyPageName -> MyTemplate -> Cargo query in MyTemplate -> Separate Cargo-specific pages/templates referenced in query. SovereignGFC (talk) 18:29, 5 May 2023 (UTC)
 * Alright. Well, barring more information about your setup, I'm totally stumped - I have no idea how pages like MyPageName could show up in Special:CargoTables. Yaron Koren (talk) 18:43, 5 May 2023 (UTC)
 * What additional information might be helpful? SovereignGFC (talk) 00:50, 6 May 2023 (UTC)
 * The contents of MyPageName and MyTemplate, I suppose. Yaron Koren (talk) 13:29, 7 May 2023 (UTC)

Header in dynamic table
How to change header in dynamic table?

Tamplate:

Table header looks like this:

Thanks! -- Oleksii 212.80.47.83 06:58, 6 May 2023 (UTC)


 * Add something like "=ColumnName" after the final ")" - i.e., set an alias for the field. Yaron Koren (talk) 13:30, 7 May 2023 (UTC)
 * how to display format=dynamic table in Lua?
 * the word 'format' seems to be a Lua reserved word
 * --Oleksii 212.80.47.83 15:55, 7 May 2023 (UTC)
 * There might not be any way to display result formats from within a Lua Cargo query - I'm not sure. Yaron Koren (talk) 02:42, 8 May 2023 (UTC)
 * There might not be any way to display result formats from within a Lua Cargo query - I'm not sure. Yaron Koren (talk) 02:42, 8 May 2023 (UTC)

WITHIN statement error when a Hierarchy item has an apostrophe
I have a hierarchy definition in a template that includes the item "St. Mary's Anglican Church". When I try to query this with a WITHIN statement, I get an error that appears to split this at the apostrophe: WHERE Collection IN ( SELECT `_value` FROM `cargo__CollectedIn__Collection__hierarchy` WHERE `_left` >= ( SELECT `_left` FROM `cargo__CollectedIn__Collection__hierarchy` WHERE `_value` = "St. Mary' ) AND `_right` <= ( SELECT `_right` FROM `cargo__CollectedIn__Collection__hierarchy` WHERE `_value` = "St. Mary' ) )s Anglican Church") ORDER BY `cargo__Collection`.`_pageID`,`cargo__Collection`.`_pageName` . When I put double-quotes around a string with an apostrophe in a WHERE clause this seems to work fine. Is this a bug or am I writing the query wrong? Thanks! Tenbergen (talk) 04:10, 9 May 2023 (UTC)

Recreate and 500 Line Bug Again

 * MediaWiki 1.39.3
 * Cargo 3.4.2

When I kick off re-create data from the Cargo tables page, it gets stuck at 500 lines.

When I import a spreadsheet to that same table/template with 500+ lines and execute runJobs.php, the table populates.

What additional diagnostic or debugging data can I provide? SovereignGFC (talk) 03:40, 13 May 2023 (UTC)


 * Sorry, I missed this before. Do you see any errors in the browser's JavaScript console? Yaron Koren (talk) 02:37, 29 May 2023 (UTC)

Vertical list of names be grouped by the initial letters
Sorry if my question has already been asked here, but I have just started using Cargo. How could a vertical list of names (from Cargo databases) be grouped by the letters of the alphabet using a Cargo query? Lalo5555 (talk) 08:49, 27 May 2023 (UTC)


 * If you use the "category" format, it will provide a display that's hopefully close enough to what you are looking for. Yaron Koren (talk) 02:36, 29 May 2023 (UTC)

Export as Excel, Composer, What Did I Miss?
(This is preventing me from properly testing the 500-line recreate bug as I want to back up my big table beforehand!)

When I try to export as Excel, I get a 500 internal server error when I click on the link to download. Unfortunately, even with MediaWiki debug on, that's all I do get: HTTP/1.1 500 Internal Server Error Date: Wed, 31 May 2023 02:41:54 GMT Server: Apache X-Powered-By: PHP/7.4.33 X-Content-Type-Options: nosniff X-Request-Id: ZHaz8pqI3nmiV89-O7ng8wAAAss Strict-Transport-Security: max-age=63072000; includeSubDomains X-Frame-Options: SAMEORIGIN Content-Length: 0 Connection: close Content-Type: text/html; charset=UTF-8

I have Composer installed at the same level of directory as MediaWiki and I confirm that phpoffice/phpspreadsheet is installed (1.19.0). I know it works because I can import spreadsheets just fine...but not export for some reason. SovereignGFC (talk) 02:46, 31 May 2023 (UTC)


 * The "excel" format code is very old, and it actually uses the PHPExcel library, not PhpSpreadsheet. Yaron Koren (talk) 13:04, 31 May 2023 (UTC)
 * Inspired by this discussion, I just added support for PhpSpreadsheet to the "excel" format. At least, in theory - I haven't actually tried running it. But there's a chance that it works! Yaron Koren (talk) 15:54, 1 June 2023 (UTC)