Browse Source

Added regression test for MDEV_5871

pull/136/merge
Andrew McDonnell 11 years ago
committed by Sergey Vojtovich
parent
commit
59b6b99ce3
  1. 1
      storage/oqgraph/ha_oqgraph.cc
  2. 2
      storage/oqgraph/mysql-test/oqgraph/general.inc
  3. 86
      storage/oqgraph/mysql-test/oqgraph/regression_mdev5871.result
  4. 121
      storage/oqgraph/mysql-test/oqgraph/regression_mdev5871.test

1
storage/oqgraph/ha_oqgraph.cc

@ -1,5 +1,6 @@
/* Copyright (C) 2007-2015 Arjen G Lentz & Antony T Curtis for Open Query
Copyright (C) 2013-2015 Andrew McDonnell
Copyright (C) 2014 Sergei Golubchik
Portions of this file copyright (C) 2000-2006 MySQL AB
This program is free software; you can redistribute it and/or modify

2
storage/oqgraph/mysql-test/oqgraph/general.inc

@ -14,7 +14,7 @@ eval CREATE TABLE graph_base (
INDEX (to_id)
) ENGINE= $oqgraph_use_table_type ;
# Since late June 2014 OQGraph supports 'assisted discovery' as per https://mariadb.atlassian.net/browse/MDEV-5871
CREATE TABLE graph ENGINE=OQGRAPH DATA_TABLE='graph_base' ORIGID='from_id', DESTID='to_id';
# Regression for MDEV-5891

86
storage/oqgraph/mysql-test/oqgraph/regression_mdev5871.result

@ -0,0 +1,86 @@
DROP TABLE IF EXISTS graph_base;
DROP TABLE IF EXISTS graph;
CREATE TABLE graph_base (
from_id INT UNSIGNED NOT NULL,
to_id INT UNSIGNED NOT NULL,
weight DOUBLE NOT NULL,
PRIMARY KEY (from_id,to_id),
INDEX (to_id)
) ENGINE=MyISAM;
CREATE TABLE graph ENGINE=OQGRAPH DATA_TABLE='graph_base' ORIGID='from_id' DESTID='to_id';
DESCRIBE graph;
Field Type Null Key Default Extra
latch varchar(32) YES MUL NULL
origid bigint(20) unsigned YES NULL
destid bigint(20) unsigned YES NULL
weight double YES NULL
seq bigint(20) unsigned YES NULL
linkid bigint(20) unsigned YES NULL
DROP TABLE IF EXISTS graph;
CREATE TABLE graph ENGINE=OQGRAPH DATA_TABLE='graph_base' ORIGID='from_id' DESTID='to_id' WEIGHT='weight';
DESCRIBE graph;
Field Type Null Key Default Extra
latch varchar(32) YES MUL NULL
origid bigint(20) unsigned YES NULL
destid bigint(20) unsigned YES NULL
weight double YES NULL
seq bigint(20) unsigned YES NULL
linkid bigint(20) unsigned YES NULL
DROP TABLE IF EXISTS graph;
CREATE TABLE graph ENGINE=OQGRAPH DATA_TABLE='graph_base_xxx' ORIGID='from_id' DESTID='to_id_xxx' WEIGHT='weight';
# Expect 'Table 'test.graph_base_xxx' doesn't exist'
DESCRIBE graph;
ERROR 42S02: Table 'test.graph_base_xxx' doesn't exist
DROP TABLE IF EXISTS graph;
CREATE TABLE graph ENGINE=OQGRAPH DATA_TABLE='graph_base' ORIGID='from_id' DESTID='to_id' WEIGHT='weight_xxx';
# Expect 'Invalid OQGRAPH backing store description ('graph.weight' attribute not set to a valid column of 'graph_base')'
DESCRIBE graph;
ERROR HY000: Got error -1 'Invalid OQGRAPH backing store ('graph.weight' attribute not set to a valid column of 'graph_base')' from OQGRAPH
DROP TABLE IF EXISTS graph;
CREATE TABLE graph ENGINE=OQGRAPH DATA_TABLE='graph_base' ORIGID='from_id' DESTID='to_id_xxx' WEIGHT='weight';
# Expect 'Invalid OQGRAPH backing store description ('graph.destid' attribute not set to a valid column of 'graph_base')'
DESCRIBE graph;
ERROR HY000: Got error -1 'Invalid OQGRAPH backing store ('graph.destid' attribute not set to a valid column of 'graph_base')' from OQGRAPH
DROP TABLE IF EXISTS graph;
CREATE TABLE graph ENGINE=OQGRAPH DATA_TABLE='graph_base' ORIGID='from_id_xxx' DESTID='to_id' WEIGHT='weight';
# Expect 'Invalid OQGRAPH backing store description ('graph.origid' attribute not set to a valid column of 'graph_base')'
DESCRIBE graph;
ERROR HY000: Got error -1 'Invalid OQGRAPH backing store ('graph.origid' attribute not set to a valid column of 'graph_base')' from OQGRAPH
DROP TABLE IF EXISTS graph;
CREATE TABLE graph ENGINE=OQGRAPH;
# Expect: 'Invalid OQGRAPH backing store description (unspecified or empty data_table attribute)'
DESCRIBE graph;
ERROR HY000: Got error -1 'Invalid OQGRAPH backing store description (unspecified or empty data_table attribute)' from OQGRAPH
DROP TABLE IF EXISTS graph;
CREATE TABLE graph ENGINE=OQGRAPH DATA_TABLE='graph_base';
# Expect: 'Invalid OQGRAPH backing store description (unspecified or empty origid attribute)'
DESCRIBE graph;
ERROR HY000: Got error -1 'Invalid OQGRAPH backing store description (unspecified or empty origid attribute)' from OQGRAPH
DROP TABLE IF EXISTS graph;
CREATE TABLE graph ENGINE=OQGRAPH DATA_TABLE='graph_base' ORIGID='from_id';
# Expect: 'Invalid OQGRAPH backing store description (unspecified or empty destid attribute)'
DESCRIBE graph;
ERROR HY000: Got error -1 'Invalid OQGRAPH backing store description (unspecified or empty destid attribute)' from OQGRAPH
DROP TABLE IF EXISTS graph;
CREATE TABLE graph ENGINE=OQGRAPH DATA_TABLE='graph_base' DESTID='to_id';
# Expect: 'Invalid OQGRAPH backing store description (unspecified or empty origid attribute)'
DESCRIBE graph;
ERROR HY000: Got error -1 'Invalid OQGRAPH backing store description (unspecified or empty origid attribute)' from OQGRAPH
DROP TABLE IF EXISTS graph;
CREATE TABLE graph ENGINE=OQGRAPH ORIGID='from_id';
# Expect: 'Invalid OQGRAPH backing store description (unspecified or empty data_table attribute)'
DESCRIBE graph;
ERROR HY000: Got error -1 'Invalid OQGRAPH backing store description (unspecified or empty data_table attribute)' from OQGRAPH
DROP TABLE IF EXISTS graph;
CREATE TABLE graph ENGINE=OQGRAPH DESTID='to_id';
# Expect: 'Invalid OQGRAPH backing store description (unspecified or empty data_table attribute)'
DESCRIBE graph;
ERROR HY000: Got error -1 'Invalid OQGRAPH backing store description (unspecified or empty data_table attribute)' from OQGRAPH
DROP TABLE IF EXISTS graph;
CREATE TABLE graph ENGINE=OQGRAPH ORIGID='from_id', DESTID='to_id';
# Expect: 'Invalid OQGRAPH backing store description (unspecified or empty data_table attribute)'
DESCRIBE graph;
ERROR HY000: Got error -1 'Invalid OQGRAPH backing store description (unspecified or empty data_table attribute)' from OQGRAPH
DROP TABLE IF EXISTS graph;
DROP TABLE IF EXISTS graph;
DROP TABLE IF EXISTS graph_base;

121
storage/oqgraph/mysql-test/oqgraph/regression_mdev5871.test

@ -0,0 +1,121 @@
--disable_warnings
DROP TABLE IF EXISTS graph_base;
DROP TABLE IF EXISTS graph;
--enable_warnings
CREATE TABLE graph_base (
from_id INT UNSIGNED NOT NULL,
to_id INT UNSIGNED NOT NULL,
weight DOUBLE NOT NULL,
PRIMARY KEY (from_id,to_id),
INDEX (to_id)
) ENGINE=MyISAM;
# Since late June 2014 OQGraph supports 'assisted discovery' as per https://mariadb.atlassian.net/browse/MDEV-5871
CREATE TABLE graph ENGINE=OQGRAPH DATA_TABLE='graph_base' ORIGID='from_id' DESTID='to_id';
DESCRIBE graph;
--disable_warnings
DROP TABLE IF EXISTS graph;
--enable_warnings
CREATE TABLE graph ENGINE=OQGRAPH DATA_TABLE='graph_base' ORIGID='from_id' DESTID='to_id' WEIGHT='weight';
DESCRIBE graph;
--disable_warnings
DROP TABLE IF EXISTS graph;
--enable_warnings
CREATE TABLE graph ENGINE=OQGRAPH DATA_TABLE='graph_base_xxx' ORIGID='from_id' DESTID='to_id_xxx' WEIGHT='weight';
--echo # Expect 'Table 'test.graph_base_xxx' doesn't exist'
--error 1146
DESCRIBE graph;
--disable_warnings
DROP TABLE IF EXISTS graph;
--enable_warnings
CREATE TABLE graph ENGINE=OQGRAPH DATA_TABLE='graph_base' ORIGID='from_id' DESTID='to_id' WEIGHT='weight_xxx';
--echo # Expect 'Invalid OQGRAPH backing store description ('graph.weight' attribute not set to a valid column of 'graph_base')'
--error 1296
DESCRIBE graph;
--disable_warnings
DROP TABLE IF EXISTS graph;
--enable_warnings
CREATE TABLE graph ENGINE=OQGRAPH DATA_TABLE='graph_base' ORIGID='from_id' DESTID='to_id_xxx' WEIGHT='weight';
--echo # Expect 'Invalid OQGRAPH backing store description ('graph.destid' attribute not set to a valid column of 'graph_base')'
--error 1296
DESCRIBE graph;
--disable_warnings
DROP TABLE IF EXISTS graph;
--enable_warnings
CREATE TABLE graph ENGINE=OQGRAPH DATA_TABLE='graph_base' ORIGID='from_id_xxx' DESTID='to_id' WEIGHT='weight';
--echo # Expect 'Invalid OQGRAPH backing store description ('graph.origid' attribute not set to a valid column of 'graph_base')'
--error 1296
DESCRIBE graph;
--disable_warnings
DROP TABLE IF EXISTS graph;
--enable_warnings
# The following combinations should be invalid
CREATE TABLE graph ENGINE=OQGRAPH;
--echo # Expect: 'Invalid OQGRAPH backing store description (unspecified or empty data_table attribute)'
--error 1296
DESCRIBE graph;
--disable_warnings
DROP TABLE IF EXISTS graph;
--enable_warnings
CREATE TABLE graph ENGINE=OQGRAPH DATA_TABLE='graph_base';
--echo # Expect: 'Invalid OQGRAPH backing store description (unspecified or empty origid attribute)'
--error 1296
DESCRIBE graph;
--disable_warnings
DROP TABLE IF EXISTS graph;
--enable_warnings
CREATE TABLE graph ENGINE=OQGRAPH DATA_TABLE='graph_base' ORIGID='from_id';
--echo # Expect: 'Invalid OQGRAPH backing store description (unspecified or empty destid attribute)'
--error 1296
DESCRIBE graph;
--disable_warnings
DROP TABLE IF EXISTS graph;
--enable_warnings
CREATE TABLE graph ENGINE=OQGRAPH DATA_TABLE='graph_base' DESTID='to_id';
--echo # Expect: 'Invalid OQGRAPH backing store description (unspecified or empty origid attribute)'
--error 1296
DESCRIBE graph;
--disable_warnings
DROP TABLE IF EXISTS graph;
--enable_warnings
CREATE TABLE graph ENGINE=OQGRAPH ORIGID='from_id';
--echo # Expect: 'Invalid OQGRAPH backing store description (unspecified or empty data_table attribute)'
--error 1296
DESCRIBE graph;
--disable_warnings
DROP TABLE IF EXISTS graph;
--enable_warnings
CREATE TABLE graph ENGINE=OQGRAPH DESTID='to_id';
--echo # Expect: 'Invalid OQGRAPH backing store description (unspecified or empty data_table attribute)'
--error 1296
DESCRIBE graph;
--disable_warnings
DROP TABLE IF EXISTS graph;
--enable_warnings
CREATE TABLE graph ENGINE=OQGRAPH ORIGID='from_id', DESTID='to_id';
--echo # Expect: 'Invalid OQGRAPH backing store description (unspecified or empty data_table attribute)'
--error 1296
DESCRIBE graph;
--disable_warnings
DROP TABLE IF EXISTS graph;
--enable_warnings
--disable_warnings
DROP TABLE IF EXISTS graph;
DROP TABLE IF EXISTS graph_base;
--enable_warnings
Loading…
Cancel
Save