
From desmond@eos4.eos.co.uk Thu May  2 14:27:06 1996
Date: Thu, 2 May 1996 09:28:34 +0100
From: Desmond Campbell <desmond@eos4.eos.co.uk>
To: msql-list@bunyip.com
Subject: [mSQL] Bug in mSQL: delete from <table> where <primary_key_field>  <  <int>

----------
X-Sun-Data-Type: text
X-Sun-Data-Description: text
X-Sun-Data-Name: text
X-Sun-Charset: us-ascii
X-Sun-Content-Lines: 101

Hi

I think I've found a bug in mSQL.
When I use the following command from the command line interface 'msql' :-
	delete from <table> where <field>  <  <int>
whether it works or not depends upon whether <field> is a primary key 
field or not.

When <field> is a primary key field it seems to just delete the first 
record in the table.
This also happens for :-
	delete from <table> where <field>  <=  <int>
but not for :- 
	delete from <table> where <field>  >   <int>


I enclose the following files as evidence :-
	msql.dump.nokey 	- create and populate a table with no key
	msql.dump.prikey 	- create and populate a table with a primary key
	msql.test 		- input for msql command line interface
	msql.test.prikey.output	- output from running test on primary key table
	msql.test.nokey.output	- output from running test on table with no key


Test procedure was as follows :-
	msqladmin drop <db>
	msqladmin create <db>
	msql <db> < price.dump.prikey
	msql <db> < msql.test > msql.test.prikey.output
Similarily for table with no key.


eos21% diff price.dump.nokey price.dump.prikey
12c12
<   PRICE_NO INT,
---
>   PRICE_NO INT NOT NULL PRIMARY KEY,



eos21% msqladmin version

Version Details :-

	msqladmin version 	1.0.12
	mSQL connection 	Localhost via UNIX socket
	mSQL server version 	1.0.12
	mSQL protocol version 	6
	mSQL TCP socket 	4333
	mSQL UNIX socket 	/tmp/msql.sock
	mSQL root user 		orbadm

eos21% id
uid=410(orbadm) gid=3100(orbnet)



m My Machine Details

eos21% showrev
Hostname: eos21
Hostid: 80706844
Release: 5.5
Kernel architecture: sun4m
Application architecture: sparc
Hardware provider: Sun_Microsystems
Domain: nis.eos.co.uk
Kernel version: SunOS 5.5 Generic November 1995

eos21% showrev -p
No patches are installed

Operating System: I think it's also known as Solaris 2.5.

>From OpenWindows, Workspace menu, Workstation Info option I get ...
Workstation Type: SUNW,SPARCclassic; sparc; sun4m
Operating System: SunOS Release 5.5 Generic
Window System OpenWindows Version 3.5


Please contact me if you have any further questions, or you know what the 
problem is?

regards

Desmond Campbell
desmond@eos.co.uk



Also:
Mistake in one of your HTML pages
In document 
Unofficial mSQL FAQ 
whose URL is
http://Hughes.com.au/product/msql/faq.html#current-bug
I've found a bug how can I tell its been fixed ?
there is a link to 
http://AusWeb.com.au/computer/Hughes/msql/history.htm
which doesn't exist anymore

----------
X-Sun-Data-Type: default
X-Sun-Data-Description: default
X-Sun-Data-Name: price.dump.prikey
X-Sun-Content-Lines: 50
X-Sun-Charset: us-ascii

#
# mSQL Dump  (requires mSQL-1.0.6 or better)
#
# Host: localhost    Database: ORBNET
#--------------------------------------------------------


#
# Table structure for table 'price'
#
CREATE TABLE price (
  PRICE_NO INT NOT NULL PRIMARY KEY,
  SENSOR_ID CHAR(6),
  SENSOR_DESC CHAR(8),
  PRODUCT_TYPE_ID CHAR(5),
  PRODUCT_TYPE_DESC CHAR(60),
  MEDIA_TYPE_ID CHAR(5),
  MEDIA_TYPE_DESC CHAR(8),
  PRICE REAL
) \g


#
# Dumping data for table 'price'
#

INSERT INTO price VALUES (2,'AVH','AVHRR','L1A','Level 1a','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (3,'AVH','AVHRR','L1B','Level 1b (Coastline/Grid)','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (4,'AVH','AVHRR','L2A','Level 2a (Calibrated data)','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (5,'AVH','AVHRR','L2B','Level 2b (NDVI and SST)','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (6,'AVH','AVHRR','SFD1','Sea Surface Temperature (SST) FDP','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (7,'AVH','AVHRR','NFD1','Normalised Difference Vegetation Index (NDVI) FDP','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (8,'AVH','AVHRR','FFD1','Fire Detection FDP','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (9,'AVH','AVHRR','CFD1','Chlorophyll FDP','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (10,'AVH','AVHRR','TFD1','Toxic Algae FDP','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (11,'AVH','AVHRR','PFD1','Suspended Particulate Matter','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (12,'AVH','AVHRR','LFD1','Atmospherically Resitive Vegetation Index (ARVI) FDP','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (13,'SEA','SeaWiFS','L0','Level 0 (Raw)','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (14,'SEA','SeaWiFS','L1A','Level 1a','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (15,'SEA','SeaWiFS','L1B','Level 1b (Coastline/Grid)','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (16,'SEA','SeaWiFS','L2A','Level 2a (Calibrated data)','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (17,'SEA','SeaWiFS','L2B','Level 2b (NDVI and SST)','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (18,'SEA','SeaWiFS','SFD1','Sea Surface Temperature (SST) FDP','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (19,'SEA','SeaWiFS','NFD1','Normalised Difference Vegetation Index (NDVI) FDP','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (20,'SEA','SeaWiFS','FFD1','Fire Detection FDP','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (21,'SEA','SeaWiFS','CFD1','Chlorophyll FDP','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (22,'SEA','SeaWiFS','TFD1','Toxic Algae FDP','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (23,'SEA','SeaWiFS','PFD1','Suspended Particulate Matter','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (24,'SEA','SeaWiFS','LFD1','Atmospherically Resitive Vegetation Index (ARVI) FDP','EX85','Exabyte',9.99)\g

----------
X-Sun-Data-Type: default
X-Sun-Data-Description: default
X-Sun-Data-Name: price.dump.nokey
X-Sun-Content-Lines: 50
X-Sun-Charset: us-ascii

#
# mSQL Dump  (requires mSQL-1.0.6 or better)
#
# Host: localhost    Database: ORBNET
#--------------------------------------------------------


#
# Table structure for table 'price'
#
CREATE TABLE price (
  PRICE_NO INT,
  SENSOR_ID CHAR(6),
  SENSOR_DESC CHAR(8),
  PRODUCT_TYPE_ID CHAR(5),
  PRODUCT_TYPE_DESC CHAR(60),
  MEDIA_TYPE_ID CHAR(5),
  MEDIA_TYPE_DESC CHAR(8),
  PRICE REAL
) \g


#
# Dumping data for table 'price'
#

INSERT INTO price VALUES (2,'AVH','AVHRR','L1A','Level 1a','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (3,'AVH','AVHRR','L1B','Level 1b (Coastline/Grid)','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (4,'AVH','AVHRR','L2A','Level 2a (Calibrated data)','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (5,'AVH','AVHRR','L2B','Level 2b (NDVI and SST)','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (6,'AVH','AVHRR','SFD1','Sea Surface Temperature (SST) FDP','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (7,'AVH','AVHRR','NFD1','Normalised Difference Vegetation Index (NDVI) FDP','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (8,'AVH','AVHRR','FFD1','Fire Detection FDP','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (9,'AVH','AVHRR','CFD1','Chlorophyll FDP','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (10,'AVH','AVHRR','TFD1','Toxic Algae FDP','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (11,'AVH','AVHRR','PFD1','Suspended Particulate Matter','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (12,'AVH','AVHRR','LFD1','Atmospherically Resitive Vegetation Index (ARVI) FDP','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (13,'SEA','SeaWiFS','L0','Level 0 (Raw)','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (14,'SEA','SeaWiFS','L1A','Level 1a','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (15,'SEA','SeaWiFS','L1B','Level 1b (Coastline/Grid)','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (16,'SEA','SeaWiFS','L2A','Level 2a (Calibrated data)','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (17,'SEA','SeaWiFS','L2B','Level 2b (NDVI and SST)','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (18,'SEA','SeaWiFS','SFD1','Sea Surface Temperature (SST) FDP','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (19,'SEA','SeaWiFS','NFD1','Normalised Difference Vegetation Index (NDVI) FDP','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (20,'SEA','SeaWiFS','FFD1','Fire Detection FDP','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (21,'SEA','SeaWiFS','CFD1','Chlorophyll FDP','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (22,'SEA','SeaWiFS','TFD1','Toxic Algae FDP','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (23,'SEA','SeaWiFS','PFD1','Suspended Particulate Matter','EX85','Exabyte',9.99)\g
INSERT INTO price VALUES (24,'SEA','SeaWiFS','LFD1','Atmospherically Resitive Vegetation Index (ARVI) FDP','EX85','Exabyte',9.99)\g

----------
X-Sun-Data-Type: default
X-Sun-Data-Description: default
X-Sun-Data-Name: msql.test
X-Sun-Content-Lines: 6
X-Sun-Charset: us-ascii

select PRICE_NO from price\g
delete from price where PRICE_NO < 20\g
select PRICE_NO from price\g
delete from price where PRICE_NO < 20\g
select PRICE_NO from price\g

----------
X-Sun-Data-Type: default
X-Sun-Data-Description: default
X-Sun-Data-Name: msql.test.prikey.output
X-Sun-Content-Lines: 121
X-Sun-Charset: us-ascii


Welcome to the miniSQL monitor.  Type \h for help.


mSQL > 
Query OK.

23 rows matched.

 +----------+
 | PRICE_NO |
 +----------+
 | 2        |
 | 3        |
 | 4        |
 | 5        |
 | 6        |
 | 7        |
 | 8        |
 | 9        |
 | 10       |
 | 11       |
 | 12       |
 | 13       |
 | 14       |
 | 15       |
 | 16       |
 | 17       |
 | 18       |
 | 19       |
 | 20       |
 | 21       |
 | 22       |
 | 23       |
 | 24       |
 +----------+



mSQL > 
Query OK.




mSQL > 
Query OK.

22 rows matched.

 +----------+
 | PRICE_NO |
 +----------+
 | 3        |
 | 4        |
 | 5        |
 | 6        |
 | 7        |
 | 8        |
 | 9        |
 | 10       |
 | 11       |
 | 12       |
 | 13       |
 | 14       |
 | 15       |
 | 16       |
 | 17       |
 | 18       |
 | 19       |
 | 20       |
 | 21       |
 | 22       |
 | 23       |
 | 24       |
 +----------+



mSQL > 
Query OK.




mSQL > 
Query OK.

21 rows matched.

 +----------+
 | PRICE_NO |
 +----------+
 | 4        |
 | 5        |
 | 6        |
 | 7        |
 | 8        |
 | 9        |
 | 10       |
 | 11       |
 | 12       |
 | 13       |
 | 14       |
 | 15       |
 | 16       |
 | 17       |
 | 18       |
 | 19       |
 | 20       |
 | 21       |
 | 22       |
 | 23       |
 | 24       |
 +----------+



mSQL >     -> 
Bye!

----------
X-Sun-Data-Type: default
X-Sun-Data-Description: default
X-Sun-Data-Name: msql.test.nokey.output
X-Sun-Content-Lines: 88
X-Sun-Charset: us-ascii


Welcome to the miniSQL monitor.  Type \h for help.


mSQL > 
Query OK.

23 rows matched.

 +----------+
 | PRICE_NO |
 +----------+
 | 2        |
 | 3        |
 | 4        |
 | 5        |
 | 6        |
 | 7        |
 | 8        |
 | 9        |
 | 10       |
 | 11       |
 | 12       |
 | 13       |
 | 14       |
 | 15       |
 | 16       |
 | 17       |
 | 18       |
 | 19       |
 | 20       |
 | 21       |
 | 22       |
 | 23       |
 | 24       |
 +----------+



mSQL > 
Query OK.




mSQL > 
Query OK.

5 rows matched.

 +----------+
 | PRICE_NO |
 +----------+
 | 20       |
 | 21       |
 | 22       |
 | 23       |
 | 24       |
 +----------+



mSQL > 
Query OK.




mSQL > 
Query OK.

5 rows matched.

 +----------+
 | PRICE_NO |
 +----------+
 | 20       |
 | 21       |
 | 22       |
 | 23       |
 | 24       |
 +----------+



mSQL >     -> 
Bye!

--------------------------------------------------------------------------
To remove yourself from the Mini SQL mailing list send a message containing
"unsubscribe" to msql-list-request@bunyip.com.  Send a message containing
"info msql-list" to majordomo@bunyip.com for info on monthly archives of
the list. For more help, mail owner-msql-list@bunyip.com NOT the msql-list!
