help-glpk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-glpk] Error: requires numeric data.


From: Marcello Henrique
Subject: Re: [Help-glpk] Error: requires numeric data.
Date: Mon, 6 Sep 2010 13:59:02 -0300

Hi Xypron,

SELECT * FROM shifts;
Field   1:  `id`
Catalog:    `def`
Database:   `nsp`
Table:      `shifts`
Org_table:  `shifts`
Type:       LONG
Collation:  binary (63)
Length:     11
Max_length: 1
Decimals:   0
Flags:      NOT_NULL PRI_KEY UNSIGNED AUTO_INCREMENT NUM PART_KEY

Field   2:  `shift`
Catalog:    `def`
Database:   `nsp`
Table:      `shifts`
Org_table:  `shifts`
Type:       VAR_STRING
Collation:  latin1_swedish_ci (8)
Length:     100
Max_length: 6
Decimals:   0
Flags:

Field   3:  `duration_in_hours`
Catalog:    `def`
Database:   `nsp`
Table:      `shifts`
Org_table:  `shifts`
Type:       TINY
Collation:  binary (63)
Length:     4
Max_length: 1
Decimals:   0
Flags:      NOT_NULL NO_DEFAULT_VALUE NUM

Field   4:  `cost`
Catalog:    `def`
Database:   `nsp`
Table:      `shifts`
Org_table:  `shifts`
Type:       DOUBLE
Collation:  binary (63)
Length:     3
Max_length: 5
Decimals:   3
Flags:      NUM


+----+--------+-------------------+-------+
| id | shift  | duration_in_hours | cost  |
+----+--------+-------------------+-------+
|  1 | turno1 |                 8 | 1.000 |
|  2 | turno2 |                 8 | 1.200 |
|  3 | turno3 |                 8 | 1.300 |
+----+--------+-------------------+-------+
3 rows in set (0.02 sec)

I applied yours patches and works fine, I did do other things as:

removed libmysqlclient15-dev from old mysql-server-5.0.
Added libmysqlclient-dev version 5.1.49-1 relative mysql-server-5.1

I using debian/i386 squeeze, I have other machine squeze/amd64 and was
with same problem, so did do:

upgrade mysql-server-5.0 include libmysqlclient-dev

I ran GLPSOL: GLPK LP/MIP Solver, v4.43 this version squeeze packaged
and work but with multi lines sql got segmentation fault, so I
downloaded glpk-4.44 applied patch "SQL statements split over multiple
lines" and now that's fine.

Thanks for you good job.
Hugs.

On Sun, Sep 5, 2010 at 06:42, glpk xypron <address@hidden> wrote:
> Hello Marcello,
>
> it seems that in your MySQL 5.1 client library the flag NUM_FLAG is not
> set for the column shifts.
>
> Please, run
> mysql -u _your_user_ -p --column-type-info
>
> and report the result of
> SELECT * FROM shifts;
>
> See
> http://bugs.mysql.com/bug.php?id=42980
> http://dev.mysql.com/doc/refman/5.1/en/c-api-data-structures.html
>
> An alternative test for a numeric column is:
> if (IS_NUM(field->type))
>    printf("Field is numeric\n");
>
> Please, download the GLPK source from
> ftp://ftp.gnu.org/gnu/glpk/glpk-4.44.tar.gz
> and apply the following patch:
> --- glpk-4.44/src/glpsql.c      2010-09-05 09:02:46.000000000 +0000
> +++ glpk-4.44_NUM/src/glpsql.c  2010-09-05 09:05:53.000000000 +0000
> @@ -1511,7 +1511,7 @@
>             len = 255;
>          strncpy(buf, (const char *) row[i-1], len);
>          buf[len] = 0x00;
> -         if (0 != (fields[i-1].flags & NUM_FLAG))
> +         if (IS_NUM(fields[i-1].type))
>          {  strspx(buf); /* remove spaces*/
>             if (str2num(buf, &num) != 0)
>             {  xprintf("'%s' cannot be converted to a number.\n", buf);
>
> Please, also apply the following patch which addresses a problem
> with SQL statements split over multiple lines
>
> --- glpk-4.44/src/glpsql.c      2010-06-03 08:00:00.000000000 +0000
> +++ glpk-4.44-sql/src/glpsql.c  2010-07-16 20:32:07.000000000 +0000
> @@ -117,9 +117,10 @@
>       arg = mpl_tab_get_arg(dca, j);
>       len = strlen(arg);
>       lentot += len;
> +      lentot++;
>       if (arg[len-1] == ';' || j == narg)
>       {  /* Join arguments for a single SQL statement */
> -         sqllines[i] = xmalloc(lentot+1);
> +         sqllines[i] = xmalloc(lentot);
>          sqllines[i+1] = NULL;
>          sqllines[i][0] = 0x00;
>          for (j1 = j0; j1 <= j; j1++)
>
> Please, build GLPK again and report if this fixes your problem.
>
> Best regards
>
> Xypron
>
> -------- Original-Nachricht --------
>> Datum: Sat, 4 Sep 2010 22:16:47 -0300
>> Betreff: Re: [Help-glpk] Error: requires numeric data.
>
>> Hello Xypron,
>>
>> $ echo $LANG
>> pt_BR.UTF-8
>>
>> But I tested changed to C, en_US.UTF-8 and not worked.
>>
>> $ glpsol -m nurse.mod
>> GLPSOL: GLPK LP/MIP Solver, v4.43
>> Parameter(s) specified in the command line:
>>  -m nurse.mod
>> Reading model section from nurse.mod...
>> 20 lines were read
>> Reading shifts_cost...
>> SELECT id,cost FROM shifts
>> Display statement at line 19
>> I:
>>    (1,'1.000')
>>    (2,'1.200')
>>    (3,'1.300')
>> Model has been successfully generated
>> GLPK Simplex Optimizer, v4.43
>> 0 rows, 0 columns, 0 non-zeros
>> ~     0: obj =   0.000000000e+00  infeas =  0.000e+00
>> OPTIMAL SOLUTION FOUND
>> Time used:   0.0 secs
>> Memory used: 0.1 Mb (70106 bytes)
>>
>> Thanks for you agility.
>>
>> On Sat, Sep 4, 2010 at 22:01, glpk xypron <address@hidden> wrote:
>> > Hello Marcello,
>> >
>> > please, run the following:
>> >
>> > set I, dimen 2;
>> > table shifts_cost IN "MySQL" 'Database=nsp;UID=nsp;PWD=nurseproblem'
>> >  'SELECT id,cost FROM shifts' :
>> >  I <- [id, cost];
>> > display I;
>> > end;
>> >
>> > and send the result.
>> >
>> > What is the output of system command locale?
>> >
>> > Best regards
>> >
>> > Xypron
>> >
>> >
>> > -------- Original-Nachricht --------
>> >> Datum: Sat, 4 Sep 2010 20:53:14 -0300
>> >> Betreff: Re: [Help-glpk] Error: requires numeric data.
>> >
>> >> Hello Xypron,
>> >>
>> >> mysql> desc shifts;
>> >>
>> +-------------------+------------------+------+-----+---------+----------------+
>> >> | Field             | Type             | Null | Key |
>> Default | Extra
>> >>     |
>> >>
>> +-------------------+------------------+------+-----+---------+----------------+
>> >> | id                | int(11) unsigned | NO   | PRI | NULL
>>  |
>> >> auto_increment |
>> >> | shift             | varchar(100)     | YES  |     |
>>     |
>> >>     |
>> >> | duration_in_hours | tinyint(4)       | NO   |     | NULL    |
>> >>     |
>> >> | cost              | double           | YES  |     |
>> NULL    |
>> >>     |
>> >>
>> +-------------------+------------------+------+-----+---------+----------------+
>> >> 4 rows in set (0.00 sec)
>> >>
>> >> mysql> select * from shifts;
>> >> +----+--------+-------------------+------------------+
>> >> | id | shift  | duration_in_hours | cost             |
>> >> +----+--------+-------------------+------------------+
>> >> |  1 | turno1 |                 8 |                1 |
>> >> |  2 | turno2 |                 8 | 1.20000004768372 |
>> >> |  3 | turno3 |                 8 | 1.29999995231628 |
>> >> +----+--------+-------------------+------------------+
>> >> 3 rows in set (0.00 sec)
>> >>
>> >> $ mysql --version
>> >> mysql  Ver 14.14 Distrib 5.1.49, for debian-linux-gnu (i486) using
>> >> readline 6.1
>> >>
>> >> $ dpkg -l|grep mysql
>> >> ii  libaprutil1-dbd-mysql   1.3.9+dfsg-3   The Apache Portable
>> Runtime
>> >> Utility Library - MySQL Dri
>> >> ii  libdbd-mysql-perl   4.016-1   Perl5 database interface to the
>> MySQL
>> >> database
>> >> ii  libmysql-ruby   2.8.2-1   MySQL module for Ruby
>> >> ii  libmysql-ruby1.8   2.8.2-1   MySQL module for Ruby 1.8
>> >> ii  libmysqlclient15-dev   5.0.51a-24+lenny2   MySQL database
>> development
>> >> files
>> >> ii  libmysqlclient15off   5.0.51a-24+lenny2   MySQL database client
>> >> library
>> >> ii  libmysqlclient16   5.1.49-1   MySQL database client library
>> >> ii  libqt4-sql-mysql   4:4.6.3-1   Qt 4 MySQL database driver
>> >> ii  mysql-client-5.1   5.1.49-1   MySQL database client binaries
>> >> ii  mysql-common   5.1.49-1   MySQL database common files, e.g.
>> >> /etc/mysql/my.cnf
>> >> ii  mysql-server   5.1.49-1   MySQL database server (metapackage
>> >> depending on the lat
>> >> ii  mysql-server-5.1   5.1.49-1   MySQL database server binaries and
>> >> system database setu
>> >> ii  mysql-server-core-5.1   5.1.49-1   MySQL database server
>> binaries
>> >> ii  php5-mysql   5.3.2-2   MySQL module for php5
>> >>
>> >> $ glpsol -m nurse.mod
>> >> GLPSOL: GLPK LP/MIP Solver, v4.43
>> >> Parameter(s) specified in the command line:
>> >>  -m nurse.mod
>> >> Reading model section from nurse.mod...
>> >> Reading data section from nurse.mod...
>> >> 30 lines were read
>> >> Reading shifts_cost...
>> >> SELECT shift, cost FROM shifts
>> >> nurse.mod:12: Shifts_cost requires numeric data
>> >> MathProg model processing error
>> >>
>> >> I was careful to restart mysql, do not you think that strange?
>> >> I await your advice.
>> >>
>> >> Thanks.
>> >>
>> >> On Sat, Sep 4, 2010 at 19:01, glpk xypron <address@hidden> wrote:
>> >> > Hello Marcello,
>> >> >
>> >> > your examples runs fine, when I use the following to create the
>> >> > MySQL table:
>> >> >
>> >> > USE nsp;
>> >> >
>> >> > DROP TABLE IF EXISTS shifts;
>> >> >
>> >> > CREATE TABLE shifts (
>> >> >  id   INT,
>> >> >  cost DOUBLE,
>> >> >  PRIMARY KEY ( id )
>> >> >  );
>> >> >
>> >> > INSERT INTO shifts ( id, cost ) VALUES
>> >> >  ( 1, 1.  ),
>> >> >  ( 2, 2.  ),
>> >> >  ( 3, 4.3 );
>> >> >
>> >> >
>> >> > Please, check the definition of column cost in
>> >> > your MySQL table using one of the following commands:
>> >> >
>> >> > SHOW CREATE TABLE shifts;
>> >> > DESCRIBE shifts;
>> >> >
>> >> > Best regards
>> >> >
>> >> > Xypron
>> >> >
>> >> > -------- Original-Nachricht --------
>> >> >> Datum: Sat, 4 Sep 2010 15:27:18 -0300
>> >> >> Betreff: [Help-glpk] Error: requires numeric data.
>> >> >
>> >> >> Hello,
>> >> >>
>> >> >> Looking in my bare bone model, see this error down, can you help me?
>> >> >>
>> >> >> $ glpsol -m nurse.mod
>> >> >> GLPSOL: GLPK LP/MIP Solver, v4.43
>> >> >> Parameter(s) specified in the command line:
>> >> >>  -m nurse.mod
>> >> >> Reading model section from nurse.mod...
>> >> >> Reading data section from nurse.mod...
>> >> >> 32 lines were read
>> >> >> Reading shifts_cost...
>> >> >> SELECT id,cost FROM shifts
>> >> >> nurse.mod:14: Shifts_cost requires numeric data
>> >> >> MathProg model processing error
>> >> >>
>> >> >> /* nurse.mod - Solve simple NSP - Nurse Scneduling Problem
>> >> >> /*** Variables ***/
>> >> >> set SHIFTS;
>> >> >>
>> >> >> /*** Parameters ***/
>> >> >> /* Custo por turno */
>> >> >> param Shifts_cost{i in SHIFTS};
>> >> >> table shifts_cost IN "MySQL" 'Database=nsp;UID=nsp;PWD=nurseproblem'
>> >> >>  'SELECT id,cost FROM shifts' : SHIFTS <- [id], Shifts_cost~cost;
>> >> >>
>> >> >> param Time_work >= 0;
>> >> >>
>> >> >> /*** solve section ***/
>> >> >> solve;
>> >> >> for {i in SHIFTS}
>> >> >> {
>> >> >>  printf "%d",Shifts_cost[i];
>> >> >>  printf "\n";
>> >> >> }
>> >> >>
>> >> >> /*** data  section ***/
>> >> >> data;
>> >> >>
>> >> >> #param Shifts_cost  := 1 1, 2 2, 3 4.3;
>> >> >> end;
>> >> >>
>> >> >> --
>> >> >> Marcello Henrique
>> >> >
>> >> > --
>> >> > GMX DSL SOMMER-SPECIAL: Surf & Phone Flat 16.000 für nur 19,99
>> >> Euro/mtl.!*
>> >> > http://portal.gmx.net/de/go/dsl
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> Marcello Henrique
>> >> Blog - http://faraohh.wordpress.com
>> >> Associação Software Livre de Goiás (www.aslgo.org.br)
>> >> Cercomp - UFG (www.cercomp.ufg.br)
>> >>
>> >> _______________________________________________
>> >> Help-glpk mailing list
>> >> address@hidden
>> >> http://lists.gnu.org/mailman/listinfo/help-glpk
>> >
>> > --
>> > GMX DSL SOMMER-SPECIAL: Surf & Phone Flat 16.000 für nur 19,99
>> Euro/mtl.!*
>> > http://portal.gmx.net/de/go/dsl
>> >
>>
>>
>>
>> --
>> Marcello Henrique
>> Blog - http://faraohh.wordpress.com
>> Associação Software Livre de Goiás (www.aslgo.org.br)
>> Cercomp - UFG (www.cercomp.ufg.br)
>
> --
> GMX DSL SOMMER-SPECIAL: Surf & Phone Flat 16.000 für nur 19,99 Euro/mtl.!*
> http://portal.gmx.net/de/go/dsl
>



-- 
Marcello Henrique
Blog - http://faraohh.wordpress.com
Associação Software Livre de Goiás (www.aslgo.org.br)
Cercomp - UFG (www.cercomp.ufg.br)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]