Page MenuHomePhabricator

Nuke extension w/PostgreSQL: column "recentchanges.rc_timestamp" should be in GROUP BY
Closed, ResolvedPublic

Description

Author: dnessett

Description:
Downloading the version of Nuke specified for 1.13 yields incorrect extension code. The download is Nuke-MW1.13-r37906.tar.gz. When expanded, all routines are named SpecialNuke*.php. They are supposed to be named Nuke*.php (according to the installation instructions). When I modified the instructions to require_once(../Nuke/SpecialNuke.php) and tried to use the extension, I get a db error.

The SQL is attempting to access columns rc_log_type and rc_log_action. However, these columns (in table recentchanges) don't exist. There are columns rc_log_type_text and rc_log_action_text. The SQL appears to be corrupt, since the error message specifies it can't find column "upload".


Version: unspecified
Severity: major

Details

Reference
bz23600

Related Objects

View Standalone Graph
This task is connected to more than 200 other tasks. Only direct parents and subtasks are shown here. Use View Standalone Graph to show more of the graph.

Event Timeline

bzimport raised the priority of this task from to Low.Nov 21 2014, 11:07 PM
bzimport set Reference to bz23600.
bzimport added a subscriber: Unknown Object (MLST).

The names were changed last month (r65214). On 1.13 the names were SpecialNuke.

The columns on 1.13 are called rc_log_type and rc_log_action
http://svn.wikimedia.org/viewvc/mediawiki/branches/REL1_13/phase3/maintenance/tables.sql?view=markup

How did you create your mw table? It dosn't see any rc_log_action_text column...

And FYI, 1.13 is out of date and not supported

dnessett wrote:

(In reply to comment #1)

The names were changed last month (r65214). On 1.13 the names were SpecialNuke.

The columns on 1.13 are called rc_log_type and rc_log_action
http://svn.wikimedia.org/viewvc/mediawiki/branches/REL1_13/phase3/maintenance/tables.sql?view=markup

How did you create your mw table? It dosn't see any rc_log_action_text
column...

OK.

However, the documentation for installing the extension states to add the following line to LocalSettings.php:

require_once("$IP/extensions/Nuke/Nuke.php");

see: http://www.mediawiki.org/wiki/Extension:Nuke

So, someone should update it.

Is it possible the SQL you cite is for MySQL? We are running over Postgres. When I use pgAdmim to look at the tables, there isn't one called mw. (There is one called mwuser, however).

So, someone should update it.

It is updated. You are using an outdated extension.

Is it possible the SQL you cite is for MySQL? We are running over Postgres.
When I use pgAdmim to look at the tables, there isn't one called mw. (There is
one called mwuser, however).

I suspected so. But even on postgres they have those names, http://svn.wikimedia.org/viewvc/mediawiki/branches/REL1_13/phase3/maintenance/postgres/tables.sql?view=markup

They are however of type text, so perhaps the output you saw was concatenating them.

dnessett wrote:

(In reply to comment #4)

So, someone should update it.

It is updated. You are using an outdated extension.

Are you stating that there is functionality now in the core (of versions greater than 1.13) that implements the Nuke function? Or is there a newer extension (name?) that works only on versions that do not include 1.13?

Is it possible the SQL you cite is for MySQL? We are running over Postgres.
When I use pgAdmim to look at the tables, there isn't one called mw. (There is
one called mwuser, however).

I suspected so. But even on postgres they have those names,
http://svn.wikimedia.org/viewvc/mediawiki/branches/REL1_13/phase3/maintenance/postgres/tables.sql?view=markup

They are however of type text, so perhaps the output you saw was concatenating
them.

Yes, that was the problem. The pgAdmin utility was cramming together the column name and its type. So, the substance of this bug ticket now rests on whether the Nuke extension is supported at all, is supported only for more recent versions of MW than 1.13 or whether 1.13 code is still available.

In all cases, I think the extension description page needs to be updated. In the first case, a deprecated/no support banner would be helpful. In the second case the download options should be modified to eliminate 1.13 and lower. In the third case, then the ticket describes a legitimate problem.

I was referring to MediaWiki itself

You mentioned 1.13, but 1.15.3 is the current stable, with 1.16 just around the corner.

Per Platonides, the documentation refers to the current trunk installation. In most cases, this is fine for stable, but can be wrong for unsupported older versions

See http://www.mediawiki.org/w/index.php?title=Extension:Nuke&action=historysubmit&diff=323969&oldid=317365

Which is correct

dnessett wrote:

(In reply to comment #6)

I was referring to MediaWiki itself

You mentioned 1.13, but 1.15.3 is the current stable, with 1.16 just around the
corner.

Per Platonides, the documentation refers to the current trunk installation. In
most cases, this is fine for stable, but can be wrong for unsupported older
versions

See
http://www.mediawiki.org/w/index.php?title=Extension:Nuke&action=historysubmit&diff=323969&oldid=317365

Which is correct

Thanks. I guess since that page is so new it hasn't made it up the SEO ladder.

dnessett wrote:

(In reply to comment #5)

(In reply to comment #4)

So, someone should update it.

It is updated. You are using an outdated extension.

By the way, the release status side-bar on the new description page states the supported versions for the extension are: "1.11+, verified under 1.16 beta". So, either that should be changed so it isn't misleading or the download pulldown menu needs to reference a release of the extension that works on 1.13

dnessett wrote:

Error message from SpecialNuke extension for MW1.13/postgres

Under the assumption that the side-bar on the new extension description page is correct and the extension should work for MW 1.13, the attachment presents the error text appearing when the extension is used for the user "Dummy User1".

attachment Error_text ignored as obsolete

It gives the error "Column upload does not exist", but on the SQL upload is not a column name, but a *content* that you compare with text fields.

SELECT rc_namespace,rc_title,rc_timestamp,COUNT(rev_id) AS edits FROM recentchanges LEFT JOIN revision ON ((rc_cur_id=rev_page)) WHERE rc_user_text = 'Dummy User1' AND ((rc_new = 1) OR (rc_log_type = "upload" AND rc_log_action = "upload")) GROUP BY rc_namespace, rc_title, rc_timestamp ORDER BY rc_timestamp DESC

ERROR: column "upload" does not exist

Seems that Postgres doesn't support double quotes for constants.

http://www.postgresql.org/docs/8.4/interactive/sql-syntax-lexical.html#SQL-SYNTAX-CONSTANTS

A string constant in SQL is an arbitrary sequence of characters bounded by
single quotes ('), for example 'This is a string'. To include a single-quote
character within a string constant, write two adjacent single quotes, e.g.,
'Dianne''s horse'. Note that this is not the same as a double-quote character (").

Double quotes are used to delimit identifiers.

I have fixed it on the trunk version at r66693.

Apparently, that version should work even for an old one like 1.13, so give it a try.

dnessett wrote:

SQL error for updated code

Now I get a different error message. Its attached.

Attached:

dnessett wrote:

Reopening, since code change didn't fix problem.

*** Bug 23618 has been marked as a duplicate of this bug. ***

sumanah wrote:

Are you still experiencing this error with MediaWiki 1.17.0?

dnessett wrote:

(In reply to comment #14)

Are you still experiencing this error with MediaWiki 1.17.0?

We are running 1.16.2, so I haven't checked to see if the problem exists in 1.17.0. Right now I am swamped with other things, so it isn't likely I will be able to check 1.17.0 in the near future.

Doesn't seem to be fixed in trunk as of r111298

Jdforrester-WMF subscribed.

Migrating from the old tracking task to a tag for PostgreSQL-related tasks.