Mailing List Archive



Back to the month index Back to the list index

Henry Minsky (hqm@ua.com)
Sat, 4 Jan 1997 13:52:02 -0800


Date: Sat, 4 Jan 1997 13:52:02 -0800
From: Henry Minsky <hqm@ua.com>
Message-Id: <199701042152.NAA21708@teller.datawave.net>
Subject: [mSQL] Another MSQL-2.0 B 1 UPDATE bug

The following bug with UPDATE actually only happens when I have the
"unofficial UPDATE patch" shown below applied to my sources:

    --- src/msql/table.c.orig Mon Dec 16 03:45:42 1996
    +++ src/msql/table.c Tue Dec 24 09:43:09 1996
    @@ -1337,7 +1337,7 @@
                                                             curField->name);
                                                    return(-1);
                                             }
    - strcpy(curField->value->val.charVal,cp);
    + strcpy(cp, curField->value->val.charVal);
                                            break;

                                    case TEXT_TYPE:

Here is the test case :

    CREATE TABLE employees (
      id INT,
      name CHAR(12),
      age INT
    ) \g

    CREATE UNIQUE INDEX idx1 ON employees (
            id
    ) \g

    #
    # Dumping data for table 'employees'
    #

    INSERT INTO employees VALUES (103,'Kate Mulgrew',45)\g
    UPDATE employees SET age = 55, name = 'Kate Mulgrew' WHERE id = 103 \g

    select * from employees \g

 +----------+--------------+----------+
 | id | name | age |
 +----------+--------------+----------+
 | 103 | Kate Mulgrew | NULL |
 +----------+--------------+----------+

The bug is that that AGE field has become NULL instead of being set to 55

However, if the name() column in the table is created with size 13 or
higher, then the bug doesn't happen.

Version Details :-

        msqladmin version 2.0 Beta 1
        mSQL server version 2.0 Beta 1
        mSQL protocol version 22
        mSQL connection Localhost via UNIX socket
        Target platform BSD_OS-2.0-i386

Configuration Details :-

        Default config file /usr/local/Hughes/msql.conf
        TCP socket 1114
        UNIX socket /usr/local/Hughes/msql2.sock
        mSQL user msql
        Admin user root
        Install directory /usr/local/Hughes
        PID file location /usr/local/Hughes/msql2d.pid

--------------------------------------------------------------------------
To remove yourself from the Mini SQL mailing list send a message containing
"unsubscribe" to "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!