-
-
Notifications
You must be signed in to change notification settings - Fork 641
Description
This bug is unique to the mysql2 npm package - it does not happen with the mysql npm package.
I have a db schema which declares a column as a DOUBLE; mysql docs say this is an eight byte floating point number, presumably a 64-bit IEEE 754 quantity. JS uses, by definition, IEEE 754-2019 numbers.
When I store certain values in my database and select them back out, I sometimes get different numbers. Once such example is 0.45494253843119004
, which gets stored correctly, but selected back out as 0.4549425384311901
.
My platform is [email protected], node v12.22.9 on Linux wes-linux-kds 5.4.0-94-generic #106~18.04.1-Ubuntu SMP Fri Jan 7 07:23:53 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux.
We have an ORM in the way, so I haven't written a minimal test case yet. If the team wants to follow up on this bug, I can produce one. If you want help fixing the issue, point me in the right direction...I am a C and JS programmer with some experience with the mysql and v8 APIs.
This is a complete record of statements executed in our internal test case:
SET NAMES utf8mb4;
SET autocommit=1;
select @@wait_timeout;
START TRANSACTION;
INSERT INTO jobs (status,lastUpdate,maxSlicesPerTask,duplicationLevel) VALUES (?,?,?,?); [ 'map-test-1646070071709', 1646070071710, 1, 0.45494253843119004 ]
SELECT LAST_INSERT_ID() as id, FOUND_ROWS() as found, ROW_COUNT() as count
SELECT SQL_CALC_FOUND_ROWS id, address, uuid, status, startTime, endTime, lastUpdate, owner, paymentAccount, lastSliceNumber, nextSliceNumber, maxSlicesPerTask, absoluteSlicePayment, mvMultSlicePayment, duplicationLevel, duplicationType, flags, dataStorageType, dataStorageDetails, resultStorageType, resultStorageDetails, resultStorageParams, requirements, description, link, name FROM jobs WHERE status LIKE 'map-test-%' AND id>=14659 FOR UPDATE
The callback invoked from mysql2/lib/commands/query.js:86:15
received the following arguments -- the fields object has the wrong value in it:
console.log(results)
[
{
id: '14660',
address: null,
uuid: null,
status: 'map-test-1646071286462',
startTime: null,
endTime: null,
lastUpdate: '1646071286463',
owner: null,
paymentAccount: null,
lastSliceNumber: null,
nextSliceNumber: null,
maxSlicesPerTask: 1,
absoluteSlicePayment: null,
mvMultSlicePayment: null,
duplicationLevel: 0.4549425384311901,
duplicationType: null,
flags: null,
dataStorageType: null,
dataStorageDetails: null,
resultStorageType: null,
resultStorageDetails: null,
resultStorageParams: null,
requirements: null,
description: null,
link: null,
name: null
}
]
undefined
console.log(fields)
[
ColumnDefinition {
_buf: <Buffer 01 00 00 01 1a 3a 00 00 02 03 64 65 66 18 64 63 70 5f 73 63 68 65 64 5f 64 62 5f 31 30 39 30 30 5f 32 37 38 39 32 04 6a 6f 62 73 04 6a 6f 62 73 02 69 ... 2179 more bytes>,
_clientEncoding: 'utf8',
_catalogLength: 3,
_catalogStart: 10,
_schemaLength: 24,
_schemaStart: 14,
_tableLength: 4,
_tableStart: 39,
_orgTableLength: 4,
_orgTableStart: 44,
_orgNameLength: 2,
_orgNameStart: 52,
characterSet: 63,
encoding: 'binary',
name: 'id',
columnLength: 20,
columnType: 8,
flags: 16899,
decimals: 0
},
ColumnDefinition {
_buf: <Buffer 01 00 00 01 1a 3a 00 00 02 03 64 65 66 18 64 63 70 5f 73 63 68 65 64 5f 64 62 5f 31 30 39 30 30 5f 32 37 38 39 32 04 6a 6f 62 73 04 6a 6f 62 73 02 69 ... 2179 more bytes>,
_clientEncoding: 'utf8',
_catalogLength: 3,
_catalogStart: 72,
_schemaLength: 24,
_schemaStart: 76,
_tableLength: 4,
_tableStart: 101,
_orgTableLength: 4,
_orgTableStart: 106,
_orgNameLength: 7,
_orgNameStart: 119,
characterSet: 45,
encoding: 'utf8',
name: 'address',
columnLength: 160,
columnType: 254,
flags: 16516,
decimals: 0
},
ColumnDefinition {
_buf: <Buffer 01 00 00 01 1a 3a 00 00 02 03 64 65 66 18 64 63 70 5f 73 63 68 65 64 5f 64 62 5f 31 30 39 30 30 5f 32 37 38 39 32 04 6a 6f 62 73 04 6a 6f 62 73 02 69 ... 2179 more bytes>,
_clientEncoding: 'utf8',
_catalogLength: 3,
_catalogStart: 144,
_schemaLength: 24,
_schemaStart: 148,
_tableLength: 4,
_tableStart: 173,
_orgTableLength: 4,
_orgTableStart: 178,
_orgNameLength: 4,
_orgNameStart: 188,
characterSet: 45,
encoding: 'utf8',
name: 'uuid',
columnLength: 1020,
columnType: 253,
flags: 128,
decimals: 0
},
ColumnDefinition {
_buf: <Buffer 01 00 00 01 1a 3a 00 00 02 03 64 65 66 18 64 63 70 5f 73 63 68 65 64 5f 64 62 5f 31 30 39 30 30 5f 32 37 38 39 32 04 6a 6f 62 73 04 6a 6f 62 73 02 69 ... 2179 more bytes>,
_clientEncoding: 'utf8',
_catalogLength: 3,
_catalogStart: 210,
_schemaLength: 24,
_schemaStart: 214,
_tableLength: 4,
_tableStart: 239,
_orgTableLength: 4,
_orgTableStart: 244,
_orgNameLength: 6,
_orgNameStart: 256,
characterSet: 45,
encoding: 'utf8',
name: 'status',
columnLength: 1020,
columnType: 253,
flags: 128,
decimals: 0
},
ColumnDefinition {
_buf: <Buffer 01 00 00 01 1a 3a 00 00 02 03 64 65 66 18 64 63 70 5f 73 63 68 65 64 5f 64 62 5f 31 30 39 30 30 5f 32 37 38 39 32 04 6a 6f 62 73 04 6a 6f 62 73 02 69 ... 2179 more bytes>,
_clientEncoding: 'utf8',
_catalogLength: 3,
_catalogStart: 280,
_schemaLength: 24,
_schemaStart: 284,
_tableLength: 4,
_tableStart: 309,
_orgTableLength: 4,
_orgTableStart: 314,
_orgNameLength: 9,
_orgNameStart: 329,
characterSet: 63,
encoding: 'binary',
name: 'startTime',
columnLength: 20,
columnType: 8,
flags: 0,
decimals: 0
},
ColumnDefinition {
_buf: <Buffer 01 00 00 01 1a 3a 00 00 02 03 64 65 66 18 64 63 70 5f 73 63 68 65 64 5f 64 62 5f 31 30 39 30 30 5f 32 37 38 39 32 04 6a 6f 62 73 04 6a 6f 62 73 02 69 ... 2179 more bytes>,
_clientEncoding: 'utf8',
_catalogLength: 3,
_catalogStart: 356,
_schemaLength: 24,
_schemaStart: 360,
_tableLength: 4,
_tableStart: 385,
_orgTableLength: 4,
_orgTableStart: 390,
_orgNameLength: 7,
_orgNameStart: 403,
characterSet: 63,
encoding: 'binary',
name: 'endTime',
columnLength: 20,
columnType: 8,
flags: 0,
decimals: 0
},
ColumnDefinition {
_buf: <Buffer 01 00 00 01 1a 3a 00 00 02 03 64 65 66 18 64 63 70 5f 73 63 68 65 64 5f 64 62 5f 31 30 39 30 30 5f 32 37 38 39 32 04 6a 6f 62 73 04 6a 6f 62 73 02 69 ... 2179 more bytes>,
_clientEncoding: 'utf8',
_catalogLength: 3,
_catalogStart: 428,
_schemaLength: 24,
_schemaStart: 432,
_tableLength: 4,
_tableStart: 457,
_orgTableLength: 4,
_orgTableStart: 462,
_orgNameLength: 10,
_orgNameStart: 478,
characterSet: 63,
encoding: 'binary',
name: 'lastUpdate',
columnLength: 20,
columnType: 8,
flags: 4097,
decimals: 0
},
ColumnDefinition {
_buf: <Buffer 01 00 00 01 1a 3a 00 00 02 03 64 65 66 18 64 63 70 5f 73 63 68 65 64 5f 64 62 5f 31 30 39 30 30 5f 32 37 38 39 32 04 6a 6f 62 73 04 6a 6f 62 73 02 69 ... 2179 more bytes>,
_clientEncoding: 'utf8',
_catalogLength: 3,
_catalogStart: 506,
_schemaLength: 24,
_schemaStart: 510,
_tableLength: 4,
_tableStart: 535,
_orgTableLength: 4,
_orgTableStart: 540,
_orgNameLength: 5,
_orgNameStart: 551,
characterSet: 45,
encoding: 'utf8',
name: 'owner',
columnLength: 160,
columnType: 254,
flags: 128,
decimals: 0
},
ColumnDefinition {
_buf: <Buffer 01 00 00 01 1a 3a 00 00 02 03 64 65 66 18 64 63 70 5f 73 63 68 65 64 5f 64 62 5f 31 30 39 30 30 5f 32 37 38 39 32 04 6a 6f 62 73 04 6a 6f 62 73 02 69 ... 2179 more bytes>,
_clientEncoding: 'utf8',
_catalogLength: 3,
_catalogStart: 574,
_schemaLength: 24,
_schemaStart: 578,
_tableLength: 4,
_tableStart: 603,
_orgTableLength: 4,
_orgTableStart: 608,
_orgNameLength: 14,
_orgNameStart: 628,
characterSet: 45,
encoding: 'utf8',
name: 'paymentAccount',
columnLength: 160,
columnType: 254,
flags: 128,
decimals: 0
},
ColumnDefinition {
_buf: <Buffer 01 00 00 01 1a 3a 00 00 02 03 64 65 66 18 64 63 70 5f 73 63 68 65 64 5f 64 62 5f 31 30 39 30 30 5f 32 37 38 39 32 04 6a 6f 62 73 04 6a 6f 62 73 02 69 ... 2179 more bytes>,
_clientEncoding: 'utf8',
_catalogLength: 3,
_catalogStart: 660,
_schemaLength: 24,
_schemaStart: 664,
_tableLength: 4,
_tableStart: 689,
_orgTableLength: 4,
_orgTableStart: 694,
_orgNameLength: 15,
_orgNameStart: 715,
characterSet: 63,
encoding: 'binary',
name: 'lastSliceNumber',
columnLength: 20,
columnType: 8,
flags: 0,
decimals: 0
},
ColumnDefinition {
_buf: <Buffer 01 00 00 01 1a 3a 00 00 02 03 64 65 66 18 64 63 70 5f 73 63 68 65 64 5f 64 62 5f 31 30 39 30 30 5f 32 37 38 39 32 04 6a 6f 62 73 04 6a 6f 62 73 02 69 ... 2179 more bytes>,
_clientEncoding: 'utf8',
_catalogLength: 3,
_catalogStart: 748,
_schemaLength: 24,
_schemaStart: 752,
_tableLength: 4,
_tableStart: 777,
_orgTableLength: 4,
_orgTableStart: 782,
_orgNameLength: 15,
_orgNameStart: 803,
characterSet: 63,
encoding: 'binary',
name: 'nextSliceNumber',
columnLength: 20,
columnType: 8,
flags: 0,
decimals: 0
},
ColumnDefinition {
_buf: <Buffer 01 00 00 01 1a 3a 00 00 02 03 64 65 66 18 64 63 70 5f 73 63 68 65 64 5f 64 62 5f 31 30 39 30 30 5f 32 37 38 39 32 04 6a 6f 62 73 04 6a 6f 62 73 02 69 ... 2179 more bytes>,
_clientEncoding: 'utf8',
_catalogLength: 3,
_catalogStart: 836,
_schemaLength: 24,
_schemaStart: 840,
_tableLength: 4,
_tableStart: 865,
_orgTableLength: 4,
_orgTableStart: 870,
_orgNameLength: 16,
_orgNameStart: 892,
characterSet: 63,
encoding: 'binary',
name: 'maxSlicesPerTask',
columnLength: 11,
columnType: 3,
flags: 0,
decimals: 0
},
ColumnDefinition {
_buf: <Buffer 01 00 00 01 1a 3a 00 00 02 03 64 65 66 18 64 63 70 5f 73 63 68 65 64 5f 64 62 5f 31 30 39 30 30 5f 32 37 38 39 32 04 6a 6f 62 73 04 6a 6f 62 73 02 69 ... 2179 more bytes>,
_clientEncoding: 'utf8',
_catalogLength: 3,
_catalogStart: 926,
_schemaLength: 24,
_schemaStart: 930,
_tableLength: 4,
_tableStart: 955,
_orgTableLength: 4,
_orgTableStart: 960,
_orgNameLength: 20,
_orgNameStart: 986,
characterSet: 63,
encoding: 'binary',
name: 'absoluteSlicePayment',
columnLength: 33,
columnType: 246,
flags: 0,
decimals: 18
},
ColumnDefinition {
_buf: <Buffer 01 00 00 01 1a 3a 00 00 02 03 64 65 66 18 64 63 70 5f 73 63 68 65 64 5f 64 62 5f 31 30 39 30 30 5f 32 37 38 39 32 04 6a 6f 62 73 04 6a 6f 62 73 02 69 ... 2179 more bytes>,
_clientEncoding: 'utf8',
_catalogLength: 3,
_catalogStart: 1024,
_schemaLength: 24,
_schemaStart: 1028,
_tableLength: 4,
_tableStart: 1053,
_orgTableLength: 4,
_orgTableStart: 1058,
_orgNameLength: 18,
_orgNameStart: 1082,
characterSet: 63,
encoding: 'binary',
name: 'mvMultSlicePayment',
columnLength: 33,
columnType: 246,
flags: 0,
decimals: 18
},
ColumnDefinition {
_buf: <Buffer 01 00 00 01 1a 3a 00 00 02 03 64 65 66 18 64 63 70 5f 73 63 68 65 64 5f 64 62 5f 31 30 39 30 30 5f 32 37 38 39 32 04 6a 6f 62 73 04 6a 6f 62 73 02 69 ... 2179 more bytes>,
_clientEncoding: 'utf8',
_catalogLength: 3,
_catalogStart: 1118,
_schemaLength: 24,
_schemaStart: 1122,
_tableLength: 4,
_tableStart: 1147,
_orgTableLength: 4,
_orgTableStart: 1152,
_orgNameLength: 16,
_orgNameStart: 1174,
characterSet: 63,
encoding: 'binary',
name: 'duplicationLevel',
columnLength: 22,
columnType: 5,
flags: 0,
decimals: 31
},
ColumnDefinition {
_buf: <Buffer 01 00 00 01 1a 3a 00 00 02 03 64 65 66 18 64 63 70 5f 73 63 68 65 64 5f 64 62 5f 31 30 39 30 30 5f 32 37 38 39 32 04 6a 6f 62 73 04 6a 6f 62 73 02 69 ... 2179 more bytes>,
_clientEncoding: 'utf8',
_catalogLength: 3,
_catalogStart: 1208,
_schemaLength: 24,
_schemaStart: 1212,
_tableLength: 4,
_tableStart: 1237,
_orgTableLength: 4,
_orgTableStart: 1242,
_orgNameLength: 15,
_orgNameStart: 1263,
characterSet: 45,
encoding: 'utf8',
name: 'duplicationType',
columnLength: 1020,
columnType: 253,
flags: 128,
decimals: 0
},
ColumnDefinition {
_buf: <Buffer 01 00 00 01 1a 3a 00 00 02 03 64 65 66 18 64 63 70 5f 73 63 68 65 64 5f 64 62 5f 31 30 39 30 30 5f 32 37 38 39 32 04 6a 6f 62 73 04 6a 6f 62 73 02 69 ... 2179 more bytes>,
_clientEncoding: 'utf8',
_catalogLength: 3,
_catalogStart: 1296,
_schemaLength: 24,
_schemaStart: 1300,
_tableLength: 4,
_tableStart: 1325,
_orgTableLength: 4,
_orgTableStart: 1330,
_orgNameLength: 5,
_orgNameStart: 1341,
characterSet: 63,
encoding: 'binary',
name: 'flags',
columnLength: 10,
columnType: 3,
flags: 32,
decimals: 0
},
ColumnDefinition {
_buf: <Buffer 01 00 00 01 1a 3a 00 00 02 03 64 65 66 18 64 63 70 5f 73 63 68 65 64 5f 64 62 5f 31 30 39 30 30 5f 32 37 38 39 32 04 6a 6f 62 73 04 6a 6f 62 73 02 69 ... 2179 more bytes>,
_clientEncoding: 'utf8',
_catalogLength: 3,
_catalogStart: 1364,
_schemaLength: 24,
_schemaStart: 1368,
_tableLength: 4,
_tableStart: 1393,
_orgTableLength: 4,
_orgTableStart: 1398,
_orgNameLength: 15,
_orgNameStart: 1419,
characterSet: 45,
encoding: 'utf8',
name: 'dataStorageType',
columnLength: 1020,
columnType: 253,
flags: 128,
decimals: 0
},
ColumnDefinition {
_buf: <Buffer 01 00 00 01 1a 3a 00 00 02 03 64 65 66 18 64 63 70 5f 73 63 68 65 64 5f 64 62 5f 31 30 39 30 30 5f 32 37 38 39 32 04 6a 6f 62 73 04 6a 6f 62 73 02 69 ... 2179 more bytes>,
_clientEncoding: 'utf8',
_catalogLength: 3,
_catalogStart: 1452,
_schemaLength: 24,
_schemaStart: 1456,
_tableLength: 4,
_tableStart: 1481,
_orgTableLength: 4,
_orgTableStart: 1486,
_orgNameLength: 18,
_orgNameStart: 1510,
characterSet: 45,
encoding: 'utf8',
name: 'dataStorageDetails',
columnLength: 262140,
columnType: 252,
flags: 144,
decimals: 0
},
ColumnDefinition {
_buf: <Buffer 01 00 00 01 1a 3a 00 00 02 03 64 65 66 18 64 63 70 5f 73 63 68 65 64 5f 64 62 5f 31 30 39 30 30 5f 32 37 38 39 32 04 6a 6f 62 73 04 6a 6f 62 73 02 69 ... 2179 more bytes>,
_clientEncoding: 'utf8',
_catalogLength: 3,
_catalogStart: 1546,
_schemaLength: 24,
_schemaStart: 1550,
_tableLength: 4,
_tableStart: 1575,
_orgTableLength: 4,
_orgTableStart: 1580,
_orgNameLength: 17,
_orgNameStart: 1603,
characterSet: 45,
encoding: 'utf8',
name: 'resultStorageType',
columnLength: 1020,
columnType: 253,
flags: 128,
decimals: 0
},
ColumnDefinition {
_buf: <Buffer 01 00 00 01 1a 3a 00 00 02 03 64 65 66 18 64 63 70 5f 73 63 68 65 64 5f 64 62 5f 31 30 39 30 30 5f 32 37 38 39 32 04 6a 6f 62 73 04 6a 6f 62 73 02 69 ... 2179 more bytes>,
_clientEncoding: 'utf8',
_catalogLength: 3,
_catalogStart: 1638,
_schemaLength: 24,
_schemaStart: 1642,
_tableLength: 4,
_tableStart: 1667,
_orgTableLength: 4,
_orgTableStart: 1672,
_orgNameLength: 20,
_orgNameStart: 1698,
characterSet: 45,
encoding: 'utf8',
name: 'resultStorageDetails',
columnLength: 262140,
columnType: 252,
flags: 144,
decimals: 0
},
ColumnDefinition {
_buf: <Buffer 01 00 00 01 1a 3a 00 00 02 03 64 65 66 18 64 63 70 5f 73 63 68 65 64 5f 64 62 5f 31 30 39 30 30 5f 32 37 38 39 32 04 6a 6f 62 73 04 6a 6f 62 73 02 69 ... 2179 more bytes>,
_clientEncoding: 'utf8',
_catalogLength: 3,
_catalogStart: 1736,
_schemaLength: 24,
_schemaStart: 1740,
_tableLength: 4,
_tableStart: 1765,
_orgTableLength: 4,
_orgTableStart: 1770,
_orgNameLength: 19,
_orgNameStart: 1795,
characterSet: 45,
encoding: 'utf8',
name: 'resultStorageParams',
columnLength: 4294967295,
columnType: 252,
flags: 144,
decimals: 0
},
ColumnDefinition {
_buf: <Buffer 01 00 00 01 1a 3a 00 00 02 03 64 65 66 18 64 63 70 5f 73 63 68 65 64 5f 64 62 5f 31 30 39 30 30 5f 32 37 38 39 32 04 6a 6f 62 73 04 6a 6f 62 73 02 69 ... 2179 more bytes>,
_clientEncoding: 'utf8',
_catalogLength: 3,
_catalogStart: 1832,
_schemaLength: 24,
_schemaStart: 1836,
_tableLength: 4,
_tableStart: 1861,
_orgTableLength: 4,
_orgTableStart: 1866,
_orgNameLength: 12,
_orgNameStart: 1884,
characterSet: 45,
encoding: 'utf8',
name: 'requirements',
columnLength: 4294967295,
columnType: 252,
flags: 144,
decimals: 0
},
ColumnDefinition {
_buf: <Buffer 01 00 00 01 1a 3a 00 00 02 03 64 65 66 18 64 63 70 5f 73 63 68 65 64 5f 64 62 5f 31 30 39 30 30 5f 32 37 38 39 32 04 6a 6f 62 73 04 6a 6f 62 73 02 69 ... 2179 more bytes>,
_clientEncoding: 'utf8',
_catalogLength: 3,
_catalogStart: 1914,
_schemaLength: 24,
_schemaStart: 1918,
_tableLength: 4,
_tableStart: 1943,
_orgTableLength: 4,
_orgTableStart: 1948,
_orgNameLength: 11,
_orgNameStart: 1965,
characterSet: 45,
encoding: 'utf8',
name: 'description',
columnLength: 1020,
columnType: 253,
flags: 128,
decimals: 0
},
ColumnDefinition {
_buf: <Buffer 01 00 00 01 1a 3a 00 00 02 03 64 65 66 18 64 63 70 5f 73 63 68 65 64 5f 64 62 5f 31 30 39 30 30 5f 32 37 38 39 32 04 6a 6f 62 73 04 6a 6f 62 73 02 69 ... 2179 more bytes>,
_clientEncoding: 'utf8',
_catalogLength: 3,
_catalogStart: 1994,
_schemaLength: 24,
_schemaStart: 1998,
_tableLength: 4,
_tableStart: 2023,
_orgTableLength: 4,
_orgTableStart: 2028,
_orgNameLength: 4,
_orgNameStart: 2038,
characterSet: 45,
encoding: 'utf8',
name: 'link',
columnLength: 1020,
columnType: 253,
flags: 128,
decimals: 0
},
ColumnDefinition {
_buf: <Buffer 01 00 00 01 1a 3a 00 00 02 03 64 65 66 18 64 63 70 5f 73 63 68 65 64 5f 64 62 5f 31 30 39 30 30 5f 32 37 38 39 32 04 6a 6f 62 73 04 6a 6f 62 73 02 69 ... 2179 more bytes>,
_clientEncoding: 'utf8',
_catalogLength: 3,
_catalogStart: 2060,
_schemaLength: 24,
_schemaStart: 2064,
_tableLength: 4,
_tableStart: 2089,
_orgTableLength: 4,
_orgTableStart: 2094,
_orgNameLength: 4,
_orgNameStart: 2104,
characterSet: 45,
encoding: 'utf8',
name: 'name',
columnLength: 1020,
columnType: 253,
flags: 128,
decimals: 0
}
]
Schema --
+----------------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+------------------+------+-----+---------+----------------+
| id | bigint(20) | NO | PRI | NULL | auto_increment |
| address | char(40) | YES | UNI | NULL | |
| uuid | varchar(255) | YES | | NULL | |
| status | varchar(255) | YES | | NULL | |
| startTime | bigint(20) | YES | | NULL | |
| endTime | bigint(20) | YES | | NULL | |
| lastUpdate | bigint(20) | NO | | NULL | |
| owner | char(40) | YES | | NULL | |
| paymentAccount | char(40) | YES | | NULL | |
| lastSliceNumber | bigint(20) | YES | | NULL | |
| nextSliceNumber | bigint(20) | YES | | NULL | |
| maxSlicesPerTask | int(11) | YES | | NULL | |
| absoluteSlicePayment | decimal(31,18) | YES | | NULL | |
| mvMultSlicePayment | decimal(31,18) | YES | | NULL | |
| duplicationLevel | double | YES | | NULL | |
| duplicationType | varchar(255) | YES | | NULL | |
| flags | int(10) unsigned | YES | | NULL | |
| dataStorageType | varchar(255) | YES | | NULL | |
| dataStorageDetails | text | YES | | NULL | |
| resultStorageType | varchar(255) | YES | | NULL | |
| resultStorageDetails | text | YES | | NULL | |
| resultStorageParams | longtext | YES | | NULL | |
| requirements | longtext | YES | | NULL | |
| description | varchar(255) | YES | | NULL | |
| link | varchar(255) | YES | | NULL | |
| name | varchar(255) | YES | | NULL | |
+----------------------+------------------+------+-----+---------+----------------+
26 rows in set (0.00 sec)