New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix "not empty" condition in SegmentExpression #13386

Merged
merged 4 commits into from Sep 16, 2018

Conversation

Projects
None yet
4 participants
@splinter89
Contributor

splinter89 commented Sep 4, 2018

Currently condition "is empty" works fine, but "is not empty" effectively returns all rows.
I've also changed "is empty" one to make these two expressions negations of each other, just as one would expect.

@tsteur

This comment has been minimized.

Member

tsteur commented Sep 8, 2018

Good find 👍 looks good to me. We'll only need to fix the tests. I presume this is something we might need to do as tests not always finish currently.

@tsteur

tsteur approved these changes Sep 8, 2018

We'll need to fix tests

@diosmosis

This comment has been minimized.

Member

diosmosis commented Sep 10, 2018

Not sure why, but from the tests this seems to break some segments, including visitIp, userId, visitorId. Using segments like userId!= (user ID is not empty) returns nothing in the AutoSuggestAPITest test.

@tsteur

This comment has been minimized.

Member

tsteur commented Sep 10, 2018

Maybe there is no entry with UserId and it was never working before?

@diosmosis

This comment has been minimized.

Member

diosmosis commented Sep 10, 2018

You can see from the tests it was getting results before, so there should be entries.

EDIT: other segments behave as expected, <row>0</row> which was there before in some segments eg is now gone.

@tsteur

This comment has been minimized.

Member

tsteur commented Sep 10, 2018

Just checked it generates this query:

SELECT
				log_visit.*
			FROM
				piwik_log_visit AS log_visit
			WHERE
				( log_visit.idsite in (1) 
				AND log_visit.visit_last_action_time >= '2015'
				AND  log_visit.visit_last_action_time <= '2020' )
                AND
                ( ( log_visit.user_id IS NOT NULL AND log_visit.user_id <> '' AND log_visit.user_id <> 0 ) )
			ORDER BY
				idsite DESC, visit_last_action_time DESC LIMIT 0, 8010

And the AND log_visit.user_id <> 0 prevents it from being considered but AND log_visit.user_id <> '0' works. I presume MySQL casts the text to an integer and compares it.

@@ -263,12 +263,12 @@ protected function getSqlMatchFromDefinition($def, &$availableTables)
break;
case self::MATCH_IS_NOT_NULL_NOR_EMPTY:
$sqlMatch = '%s IS NOT NULL AND (%s <> \'\' OR %s = 0)';
$sqlMatch = '%s IS NOT NULL AND %s <> \'\' AND %s <> 0';

This comment has been minimized.

@tsteur

tsteur Sep 10, 2018

Member

To fix the tests we may need to check <> '0'

$value = null;
break;
case self::MATCH_IS_NULL_OR_EMPTY:
$sqlMatch = '%s IS NULL OR %s = \'\' ';
$sqlMatch = '%s IS NULL OR %s = \'\' OR %s = 0';

This comment has been minimized.

@tsteur

tsteur Sep 10, 2018

Member

Probably needed here as well? OR 5s = '0'?

splinter89 added some commits Sep 10, 2018

@tsteur

This comment has been minimized.

Member

tsteur commented Sep 10, 2018

Cheers @splinter89 I presume the other failing tests might be because the bug is fixed?

@splinter89

This comment has been minimized.

Contributor

splinter89 commented Sep 11, 2018

It might be the case.
However, I don't know how to verify aggregated statistics in the results (with nb_visits, etc.)
And I probably won't be able to fix UI tests as I'm on Windows and can't match the requirements.

@tsteur

This comment has been minimized.

Member

tsteur commented Sep 12, 2018

The changes in the tests are expected and we can replace the fixtures. I've executed the tests and looked at the raw data it generated and the new results look correct and fixes the issue. So to merge this issue, we basically only need to update the test fixtures and that's it. @splinter89 is this something you can do? otherwise happy to do it... great fix :)

Here is eg the visit table that it generates:

INSERT INTO `log_visit` (`idvisit`, `idsite`, `idvisitor`, `visit_last_action_time`, `config_id`, `location_ip`, `user_id`, `visit_first_action_time`, `visit_goal_buyer`, `visit_goal_converted`, `visitor_days_since_first`, `visitor_days_since_order`, `visitor_returning`, `visitor_count_visits`, `visit_entry_idaction_name`, `visit_entry_idaction_url`, `visit_exit_idaction_name`, `visit_exit_idaction_url`, `visit_total_actions`, `visit_total_interactions`, `visit_total_searches`, `referer_keyword`, `referer_name`, `referer_type`, `referer_url`, `location_browser_lang`, `config_browser_engine`, `config_browser_name`, `config_browser_version`, `config_device_brand`, `config_device_model`, `config_device_type`, `config_os`, `config_os_version`, `visit_total_events`, `visitor_localtime`, `visitor_days_since_last`, `config_resolution`, `config_cookie`, `config_director`, `config_flash`, `config_gears`, `config_java`, `config_pdf`, `config_quicktime`, `config_realplayer`, `config_silverlight`, `config_windowsmedia`, `visit_total_time`, `location_city`, `location_country`, `location_latitude`, `location_longitude`, `location_region`, `custom_var_k1`, `custom_var_v1`, `custom_var_k2`, `custom_var_v2`, `custom_var_k3`, `custom_var_v3`, `custom_var_k4`, `custom_var_v4`, `custom_var_k5`, `custom_var_v5`, `last_idlink_va`, `custom_dimension_1`, `custom_dimension_2`, `custom_dimension_3`, `custom_dimension_4`, `custom_dimension_5`)
VALUES
	(1, 1, X'A9B7BA70783B617E', '2018-01-01 00:00:00', X'0FC8A7B5C1071E7D', X'01020400', NULL, '2018-01-01 00:00:00', 0, 1, 0, 0, 0, 1, 1, 2, 1, 2, 1, 1, 0, NULL, NULL, 1, '', 'fr', 'Gecko', 'FF', '3.6', '', 'generic desktop', 0, 'WIN', 'XP', 0, '12:34:06', 0, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 'Stratford-upon-Avon', 'gb', 123.456000, 21.321000, 'WAR', 'Cvar 1 name', 'Cvar1 value is 0', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 0', 1, NULL, NULL, NULL, NULL, NULL),
	(2, 1, X'A9B7BA70783B617E', '2018-01-01 01:27:00', X'0FC8A7B5C1071E7D', X'01020400', NULL, '2018-01-01 01:00:00', 0, 1, 100, 50, 2, 5, 3, 4, 5, NULL, 5, 2, 1, NULL, NULL, 1, '', 'fr', 'Gecko', 'FF', '3.6', '', 'generic desktop', 0, 'WIN', 'XP', 1, '12:34:06', 10, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1621, 'Stratford-upon-Avon', 'gb', 123.456000, 21.321000, 'WAR', 'Cvar 1 name', 'Cvar1 value is 0', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 0', 6, NULL, NULL, NULL, NULL, NULL),
	(3, 1, X'B8C37E33DEFDE51C', '2018-01-02 00:00:00', X'F482ECAA17F17080', X'01020401', NULL, '2018-01-02 00:00:00', 0, 1, 101, 51, 2, 5, 1, 2, 1, 2, 1, 1, 0, NULL, NULL, 1, '', 'fr', 'Gecko', 'FF', '3.6', '', 'generic desktop', 0, 'WIN', 'XP', 0, '12:34:06', 11, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 'Nuneaton and Bedworth', 'gb', NULL, NULL, 'WAR', 'Cvar 1 name', 'Cvar1 value is 1', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 1', 7, NULL, NULL, NULL, NULL, NULL),
	(4, 1, X'B8C37E33DEFDE51C', '2018-01-02 01:27:00', X'F482ECAA17F17080', X'01020401', NULL, '2018-01-02 01:00:00', 0, 1, 100, 50, 2, 5, 3, 4, 3, 4, 4, 1, 0, NULL, NULL, 1, '', 'fr', 'Gecko', 'FF', '3.6', '', 'generic desktop', 0, 'WIN', 'XP', 1, '12:34:06', 10, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1621, 'Nuneaton and Bedworth', 'gb', NULL, NULL, 'WAR', 'Cvar 1 name', 'Cvar1 value is 1', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 1', 11, NULL, NULL, NULL, NULL, NULL),
	(5, 1, X'FBA9D88164F3E2D9', '2018-01-03 00:00:00', X'85AAA85A2071DAF5', X'01020402', NULL, '2018-01-03 00:00:00', 0, 1, 101, 51, 2, 5, 1, 2, 1, 2, 1, 1, 0, NULL, NULL, 1, '', 'fr', 'Gecko', 'FF', '3.6', '', 'generic desktop', 0, 'WIN', 'XP', 0, '12:34:06', 11, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 'Stratford-upon-Avon', 'gb', 124.456000, 22.231000, 'WAR', 'Cvar 1 name', 'Cvar1 value is 2', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 2', 12, NULL, NULL, NULL, NULL, NULL),
	(6, 1, X'FBA9D88164F3E2D9', '2018-01-03 01:27:00', X'85AAA85A2071DAF5', X'01020402', NULL, '2018-01-03 01:00:00', 0, 1, 100, 50, 2, 5, 3, 4, 5, NULL, 5, 2, 1, NULL, NULL, 1, '', 'fr', 'Gecko', 'FF', '3.6', '', 'generic desktop', 0, 'WIN', 'XP', 1, '12:34:06', 10, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1621, 'Stratford-upon-Avon', 'gb', 124.456000, 22.231000, 'WAR', 'Cvar 1 name', 'Cvar1 value is 2', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 2', 17, NULL, NULL, NULL, NULL, NULL),
	(7, 1, X'AA68C75C4A77C87F', '2018-01-04 00:00:00', X'9B641F2D195745F4', X'01020403', NULL, '2018-01-04 00:00:00', 0, 1, 101, 51, 2, 5, 1, 2, 1, 2, 1, 1, 0, NULL, NULL, 1, '', 'fr', 'Gecko', 'FF', '3.6', '', 'generic desktop', 0, 'WIN', 'XP', 0, '12:34:06', 11, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 'London', 'gb', NULL, NULL, 'LND', 'Cvar 1 name', 'Cvar1 value is 3', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 3', 18, NULL, NULL, NULL, NULL, NULL),
	(8, 1, X'AA68C75C4A77C87F', '2018-01-04 01:27:00', X'9B641F2D195745F4', X'01020403', NULL, '2018-01-04 01:00:00', 0, 1, 100, 50, 2, 5, 3, 4, 3, 4, 4, 1, 0, NULL, NULL, 1, '', 'fr', 'Gecko', 'FF', '3.6', '', 'generic desktop', 0, 'WIN', 'XP', 1, '12:34:06', 10, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1621, 'London', 'gb', NULL, NULL, 'LND', 'Cvar 1 name', 'Cvar1 value is 3', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 3', 22, NULL, NULL, NULL, NULL, NULL),
	(9, 1, X'FED33392D3A48AA1', '2018-01-05 00:00:00', X'17B5AC19CCE8A192', X'01020404', NULL, '2018-01-05 00:00:00', 0, 1, 101, 51, 2, 5, 1, 2, 1, 2, 1, 1, 0, NULL, NULL, 1, '', 'fr', 'Gecko', 'FF', '3.6', '', 'generic desktop', 0, 'WIN', 'XP', 0, '12:34:06', 11, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 'Stratford-upon-Avon', 'gb', NULL, NULL, 'KEN', 'Cvar 1 name', 'Cvar1 value is 4', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 4', 23, NULL, NULL, NULL, NULL, NULL),
	(10, 1, X'FED33392D3A48AA1', '2018-01-05 01:27:00', X'17B5AC19CCE8A192', X'01020404', NULL, '2018-01-05 01:00:00', 0, 1, 100, 50, 2, 5, 3, 4, 5, NULL, 5, 2, 1, NULL, NULL, 1, '', 'fr', 'Gecko', 'FF', '3.6', '', 'generic desktop', 0, 'WIN', 'XP', 1, '12:34:06', 10, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1621, 'Stratford-upon-Avon', 'gb', NULL, NULL, 'KEN', 'Cvar 1 name', 'Cvar1 value is 4', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 4', 28, NULL, NULL, NULL, NULL, NULL),
	(11, 1, X'2387337BA1E0B024', '2018-01-06 00:00:00', X'3E5F540B8952A4AB', X'01020405', NULL, '2018-01-06 00:00:00', 0, 1, 101, 51, 2, 5, 1, 2, 1, 2, 1, 1, 0, NULL, NULL, 1, '', 'fr', 'Gecko', 'FF', '3.6', '', 'generic desktop', 0, 'WIN', 'XP', 0, '12:34:06', 11, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 'Stratford-upon-Avon', 'ru', NULL, NULL, 'SPE', 'Cvar 1 name', 'Cvar1 value is 5', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 5', 29, NULL, NULL, NULL, NULL, NULL),
	(12, 1, X'2387337BA1E0B024', '2018-01-06 01:27:00', X'3E5F540B8952A4AB', X'01020405', NULL, '2018-01-06 01:00:00', 0, 1, 100, 50, 2, 5, 3, 4, 3, 4, 4, 1, 0, NULL, NULL, 1, '', 'fr', 'Gecko', 'FF', '3.6', '', 'generic desktop', 0, 'WIN', 'XP', 1, '12:34:06', 10, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1621, 'Stratford-upon-Avon', 'ru', NULL, NULL, 'SPE', 'Cvar 1 name', 'Cvar1 value is 5', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 5', 33, NULL, NULL, NULL, NULL, NULL),
	(13, 1, X'9246444D94F081E3', '2018-01-07 00:00:00', X'289E2FCBB06929FA', X'01020406', NULL, '2018-01-07 00:00:00', 0, 1, 101, 51, 2, 5, 1, 2, 1, 2, 1, 1, 0, NULL, NULL, 1, '', 'fr', 'Gecko', 'FF', '3.6', '', 'generic desktop', 0, 'WIN', 'XP', 0, '12:34:06', 11, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 'Hluboká nad Vltavou', 'ru', NULL, NULL, 'SPE', 'Cvar 1 name', 'Cvar1 value is 6', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 6', 34, NULL, NULL, NULL, NULL, NULL),
	(14, 1, X'9246444D94F081E3', '2018-01-07 01:27:00', X'289E2FCBB06929FA', X'01020406', NULL, '2018-01-07 01:00:00', 0, 1, 100, 50, 2, 5, 3, 4, 5, NULL, 5, 2, 1, NULL, NULL, 1, '', 'fr', 'Gecko', 'FF', '3.6', '', 'generic desktop', 0, 'WIN', 'XP', 1, '12:34:06', 10, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1621, 'Hluboká nad Vltavou', 'ru', NULL, NULL, 'SPE', 'Cvar 1 name', 'Cvar1 value is 6', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 6', 39, NULL, NULL, NULL, NULL, NULL),
	(15, 1, X'D7322ED717DEDF1E', '2018-01-08 00:00:00', X'28A7EE52024F3A89', X'01020407', NULL, '2018-01-08 00:00:00', 0, 1, 101, 51, 2, 5, 1, 2, 1, 2, 1, 1, 0, NULL, NULL, 1, '', 'fr', 'Gecko', 'FF', '3.6', '', 'generic desktop', 0, 'WIN', 'XP', 0, '12:34:06', 11, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 'Stratford-upon-Avon', 'mk', NULL, NULL, '18', 'Cvar 1 name', 'Cvar1 value is 7', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 7', 40, NULL, NULL, NULL, NULL, NULL),
	(16, 1, X'D7322ED717DEDF1E', '2018-01-08 01:27:00', X'28A7EE52024F3A89', X'01020407', NULL, '2018-01-08 01:00:00', 0, 1, 100, 50, 2, 5, 3, 4, 3, 4, 4, 1, 0, NULL, NULL, 1, '', 'fr', 'Gecko', 'FF', '3.6', '', 'generic desktop', 0, 'WIN', 'XP', 1, '12:34:06', 10, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1621, 'Stratford-upon-Avon', 'mk', NULL, NULL, '18', 'Cvar 1 name', 'Cvar1 value is 7', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 7', 44, NULL, NULL, NULL, NULL, NULL),
	(17, 1, X'1587965FB4D4B5AF', '2018-01-09 00:00:00', X'A36244DB4114AFA7', X'01020408', NULL, '2018-01-09 00:00:00', 0, 1, 101, 51, 2, 5, 1, 2, 1, 2, 1, 1, 0, NULL, NULL, 1, '', 'fr', 'Gecko', 'FF', '3.6', '', 'generic desktop', 0, 'WIN', 'XP', 0, '12:34:06', 11, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, NULL, 'xx', NULL, NULL, NULL, 'Cvar 1 name', 'Cvar1 value is 8', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 8', 45, NULL, NULL, NULL, NULL, NULL),
	(18, 1, X'1587965FB4D4B5AF', '2018-01-09 01:27:00', X'A36244DB4114AFA7', X'01020408', NULL, '2018-01-09 01:00:00', 0, 1, 100, 50, 2, 5, 3, 4, 5, NULL, 5, 2, 1, NULL, NULL, 1, '', 'fr', 'Gecko', 'FF', '3.6', '', 'generic desktop', 0, 'WIN', 'XP', 1, '12:34:06', 10, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1621, NULL, 'xx', NULL, NULL, NULL, 'Cvar 1 name', 'Cvar1 value is 8', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 8', 50, NULL, NULL, NULL, NULL, NULL),
	(19, 1, X'08F90C1A41715536', '2018-01-01 00:00:00', X'CC20676F98F5D568', X'C2395BD7', NULL, '2018-01-01 00:00:00', 0, 1, 0, 0, 0, 1, 1, 2, 1, 2, 1, 1, 0, NULL, NULL, 1, '', 'fr', 'Blink', 'CM', '33.0', 'GO', 'Nexus 4', 1, 'AND', '4.4', 0, '12:34:06', 0, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 'Besançon', 'fr', 47.249000, 6.018000, 'BFC', 'Cvar 1 name', 'Cvar1 value is 0', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 0', 51, NULL, NULL, NULL, NULL, NULL),
	(20, 1, X'08F90C1A41715536', '2018-01-01 01:27:00', X'CC20676F98F5D568', X'C2395BD7', NULL, '2018-01-01 01:00:00', 0, 1, 100, 50, 2, 5, 3, 4, 5, NULL, 5, 2, 1, NULL, NULL, 1, '', 'fr', 'Blink', 'CM', '33.0', 'GO', 'Nexus 4', 1, 'AND', '4.4', 1, '12:34:06', 10, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1621, 'Besançon', 'fr', 47.249000, 6.018000, 'BFC', 'Cvar 1 name', 'Cvar1 value is 0', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 0', 56, NULL, NULL, NULL, NULL, NULL),
	(21, 1, X'D0FB963FF976F9C3', '2018-01-02 00:00:00', X'65EEFC1C2B3AA35C', X'00000000000000000000FFFF89528231', NULL, '2018-01-02 00:00:00', 0, 1, 101, 51, 2, 5, 1, 2, 1, 2, 1, 1, 0, NULL, NULL, 1, '', 'fr', 'WebKit', 'AN', '', 'HT', 'Desire', 1, 'MLD', '8.0', 0, '12:34:06', 11, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 'Vancouver', 'ca', 49.250000, -123.133000, 'BC', 'Cvar 1 name', 'Cvar1 value is 1', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 1', 57, NULL, NULL, NULL, NULL, NULL),
	(22, 1, X'D0FB963FF976F9C3', '2018-01-02 01:27:00', X'65EEFC1C2B3AA35C', X'00000000000000000000FFFF89528231', NULL, '2018-01-02 01:00:00', 0, 1, 100, 50, 2, 5, 3, 4, 3, 4, 4, 1, 0, NULL, NULL, 1, '', 'fr', 'WebKit', 'AN', '', 'HT', 'Desire', 1, 'MLD', '8.0', 1, '12:34:06', 10, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1621, 'Vancouver', 'ca', 49.250000, -123.133000, 'BC', 'Cvar 1 name', 'Cvar1 value is 1', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 1', 61, NULL, NULL, NULL, NULL, NULL),
	(23, 1, X'E93028BDC1AACDFB', '2018-01-01 00:00:00', X'DD5A3C85624C2D3B', X'89528200', NULL, '2018-01-01 00:00:00', 0, 1, 0, 0, 0, 1, 1, 2, 1, 2, 1, 1, 0, NULL, NULL, 1, '', 'fr', 'Blink', 'CH', '32.0', '', 'generic desktop', 0, 'WIN', '8.1', 0, '12:34:06', 0, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 'Vancouver', 'ca', 49.250000, -123.133000, 'BC', 'Cvar 1 name', 'Cvar1 value is 0', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 0', 62, NULL, NULL, NULL, NULL, NULL),
	(24, 1, X'E93028BDC1AACDFB', '2018-01-01 01:27:00', X'6E61D30774AE8214', X'89528200', NULL, '2018-01-01 01:00:00', 0, 1, 100, 50, 2, 5, 3, 4, 5, NULL, 5, 2, 1, NULL, NULL, 1, '', '', 'Blink', 'CH', '32.0', '', 'generic desktop', 0, 'WIN', '8.1', 1, '12:34:06', 10, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1621, 'Vancouver', 'ca', 49.250000, -123.133000, 'BC', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 67, NULL, NULL, NULL, NULL, NULL),
	(25, 1, X'908C9A564A864265', '2018-01-02 00:00:00', X'31EA532C06BF48A0', X'89520000', NULL, '2018-01-02 00:00:00', 0, 1, 101, 51, 2, 5, 1, 2, 1, 2, 1, 1, 0, NULL, NULL, 1, '', '', 'Trident', 'IE', '8.0', '', 'generic desktop', 0, 'WIN', 'Vista', 0, '12:34:06', 11, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 'Vancouver', 'ca', 49.250000, -123.133000, 'BC', 'Cvar 1 name', 'Cvar1 value is 1', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 1', 68, NULL, NULL, NULL, NULL, NULL),
	(26, 1, X'908C9A564A864265', '2018-01-02 01:27:00', X'31EA532C06BF48A0', X'89520000', NULL, '2018-01-02 01:00:00', 0, 1, 100, 50, 2, 5, 3, 4, 3, 4, 4, 1, 0, NULL, NULL, 1, '', '', 'Trident', 'IE', '8.0', '', 'generic desktop', 0, 'WIN', 'Vista', 1, '12:34:06', 10, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1621, 'Vancouver', 'ca', 49.250000, -123.133000, 'BC', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 72, NULL, NULL, NULL, NULL, NULL),
	(27, 1, X'D806CA13CA3449AF', '2018-01-03 00:00:00', X'B6F1D5120B2B15A2', X'200300F693BF026F9EC7A6FFFE2927DF', NULL, '2018-01-03 00:00:00', 0, 1, 101, 51, 2, 5, 1, 2, 1, 2, 1, 1, 0, NULL, NULL, 1, '', '', 'Trident', 'IE', '11.0', 'DL', 'generic desktop', 0, 'WIN', '7', 0, '12:34:06', 11, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, NULL, 'us', 38.000000, -97.000000, NULL, 'Cvar 1 name', 'Cvar1 value is 2', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 2', 73, NULL, NULL, NULL, NULL, NULL),
	(28, 1, X'D806CA13CA3449AF', '2018-01-03 01:27:00', X'B6F1D5120B2B15A2', X'200300F693BF026F9EC7A6FFFE2927DF', NULL, '2018-01-03 01:00:00', 0, 1, 100, 50, 2, 5, 3, 4, 5, NULL, 5, 2, 1, NULL, NULL, 1, '', '', 'Trident', 'IE', '11.0', 'DL', 'generic desktop', 0, 'WIN', '7', 1, '12:34:06', 10, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1621, NULL, 'us', 38.000000, -97.000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 78, NULL, NULL, NULL, NULL, NULL),
	(29, 1, X'A4380923DD651C19', '2018-01-04 00:00:00', X'D5A95C7FE2A8286D', X'713E0101', NULL, '2018-01-04 00:00:00', 0, 1, 101, 51, 2, 5, 1, 2, 1, 2, 1, 1, 0, NULL, NULL, 1, '', '', 'Blink', 'CH', '34.0', 'SO', 'Xperia Tablet S', 2, 'AND', '4.1', 0, '12:34:06', 11, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 'Lhasa', 'cn', 29.650000, 91.100000, 'XZ', 'Cvar 1 name', 'Cvar1 value is 3', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 3', 79, NULL, NULL, NULL, NULL, NULL),
	(30, 1, X'A4380923DD651C19', '2018-01-04 01:27:00', X'D5A95C7FE2A8286D', X'713E0101', NULL, '2018-01-04 01:00:00', 0, 1, 100, 50, 2, 5, 3, 4, 3, 4, 4, 1, 0, NULL, NULL, 1, '', '', 'Blink', 'CH', '34.0', 'SO', 'Xperia Tablet S', 2, 'AND', '4.1', 1, '12:34:06', 10, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1621, 'Lhasa', 'cn', 29.650000, 91.100000, 'XZ', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 83, NULL, NULL, NULL, NULL, NULL),
	(31, 1, X'1BD69C7DF3112FB9', '2018-01-01 00:00:00', X'05F59D2B325126C8', X'9764655C', NULL, '2018-01-01 00:00:00', 0, 1, 0, 0, 0, 1, 1, 2, 1, 2, 1, 1, 0, NULL, NULL, 1, '', 'fr', 'WebKit', 'QQ', '5.0', 'SA', 'GALAXY Note 3', 10, 'AND', '4.3', 0, '12:34:06', 0, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, NULL, 'it', NULL, NULL, NULL, 'Cvar 1 name', 'Cvar1 value is 0', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 0', 84, NULL, NULL, NULL, NULL, NULL),
	(32, 1, X'1BD69C7DF3112FB9', '2018-01-01 01:27:00', X'05F59D2B325126C8', X'9764655C', NULL, '2018-01-01 01:00:00', 0, 1, 100, 50, 2, 5, 3, 4, 5, NULL, 5, 2, 1, NULL, NULL, 1, '', 'fr', 'WebKit', 'QQ', '5.0', 'SA', 'GALAXY Note 3', 10, 'AND', '4.3', 1, '12:34:06', 10, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1621, NULL, 'it', NULL, NULL, NULL, 'Cvar 1 name', 'Cvar1 value is 0', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 0', 89, NULL, NULL, NULL, NULL, NULL),
	(33, 1, X'FFC58105BF6F8A91', '2018-01-02 00:00:00', X'E61A3357F12D99F5', X'671DC4E5', NULL, '2018-01-02 00:00:00', 0, 1, 101, 51, 2, 5, 1, 2, 1, 2, 1, 1, 0, NULL, NULL, 1, '', 'fr', 'Gecko', 'FF', '3.0', '', 'generic desktop', 0, 'UBT', '9.04', 0, '12:34:06', 11, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, NULL, 'id', NULL, NULL, NULL, 'Cvar 1 name', 'Cvar1 value is 1', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 1', 90, NULL, NULL, NULL, NULL, NULL),
	(34, 1, X'FFC58105BF6F8A91', '2018-01-02 01:27:00', X'E61A3357F12D99F5', X'671DC4E5', NULL, '2018-01-02 01:00:00', 0, 1, 100, 50, 2, 5, 3, 4, 3, 4, 4, 1, 0, NULL, NULL, 1, '', 'fr', 'Gecko', 'FF', '3.0', '', 'generic desktop', 0, 'UBT', '9.04', 1, '12:34:06', 10, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1621, NULL, 'id', NULL, NULL, NULL, 'Cvar 1 name', 'Cvar1 value is 1', NULL, NULL, NULL, NULL, NULL, NULL, 'Cvar 5 name', 'Cvar5 value is 1', 94, NULL, NULL, NULL, NULL, NULL),
	(35, 1, X'E64BC481700C5D69', '2018-01-21 00:00:00', X'5BC9628006479118', X'C2395BD7', 'userid.email@example.org', '2018-01-21 00:00:00', 0, 1, 0, 0, 0, 1, 52, 2, 52, 2, 1, 1, 0, 'wikileaks ftw', 'Google', 2, 'http://google.com/?q=Wikileaks FTW', 'fr', 'WebKit', 'SF', '', '', 'generic desktop', 0, 'WIN', 'XP', 0, '12:34:06', 0, '1024x768', 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 'not a city', 'us', 1.000000, 2.000000, 'CA', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 95, NULL, NULL, NULL, NULL, NULL);
@splinter89

This comment has been minimized.

Contributor

splinter89 commented Sep 14, 2018

@tsteur yes, please, I'd appreciate your help with this.

@mattab mattab added this to the 3.6.1 milestone Sep 14, 2018

@tsteur tsteur changed the base branch from 3.x-dev to notemptysegmentbug Sep 16, 2018

@tsteur

This comment has been minimized.

Member

tsteur commented Sep 16, 2018

@splinter89 wanted to push the test fixes into your branch but noticed that branch is still on Piwik 2 by the looks and things got a bit complicated. Merging first into a Matomo 3 branch, and then into Matomo 3.

@tsteur tsteur merged commit e1250b9 into matomo-org:notemptysegmentbug Sep 16, 2018

1 check failed

continuous-integration/travis-ci/pr The Travis CI build could not complete due to an error
Details

tsteur added a commit that referenced this pull request Sep 16, 2018

Fix "not empty" condition in SegmentExpression (#13386) (#13431)
* Fix "not empty" condition in SegmentExpression (#13386)

* Fix "not empty" condition in SegmentExpression

* fix tests

* update expected values in AutoSuggestAPITest, SegmentTest

* fix some tests

* fix more tests

@splinter89 splinter89 deleted the splinter89:patch-2 branch Sep 19, 2018

@splinter89 splinter89 restored the splinter89:patch-2 branch Sep 19, 2018

diosmosis added a commit that referenced this pull request Sep 20, 2018

Fix "not empty" condition in SegmentExpression (#13386) (#13431)
* Fix "not empty" condition in SegmentExpression (#13386)

* Fix "not empty" condition in SegmentExpression

* fix tests

* update expected values in AutoSuggestAPITest, SegmentTest

* fix some tests

* fix more tests

InfinityVoid added a commit to InfinityVoid/matomo that referenced this pull request Oct 11, 2018

Fix "not empty" condition in SegmentExpression (matomo-org#13386) (ma…
…tomo-org#13431)

* Fix "not empty" condition in SegmentExpression (matomo-org#13386)

* Fix "not empty" condition in SegmentExpression

* fix tests

* update expected values in AutoSuggestAPITest, SegmentTest

* fix some tests

* fix more tests
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment