[MDEV-18008] Significant memory usage with COLUMN_GET Created: 2018-12-13  Updated: 2018-12-28

Status: Open
Project: MariaDB Server
Component/s: Dynamic Columns
Affects Version/s: 10.2
Fix Version/s: 10.2

Type: Bug Priority: Minor
Reporter: Ryan Grout Assignee: Oleksandr Byelkin
Resolution: Unresolved Votes: 0
Labels: None
Environment:

MariaDB 10.2.12 on RHEL 7.3


Attachments: PNG File query_column_get.png    

 Description   

I've noticed significant memory usage with the repeated use of COLUMN_GET() in a query.

The structure of the table is:

CREATE TABLE mystats (
  id int(10) UNSIGNED NOT NULL,
  stats blob NOT NULL,
  PRIMARY KEY (id)
)
ENGINE = INNODB,
CHARACTER SET utf8,
COLLATE utf8_general_ci,
ROW_FORMAT=DYNAMIC;

This table is about 44GB (with 25 million rows). For each row, the blob contains on average about 120 dynamic columns (out of a set of 317 possible elements).
The datatype of these columns is primarily INT or DOUBLE.

The query tested performs limited select and selects a variable number columns from the stats blob.
The result set of this query is 209076 rows. The only difference between the queries in this test are the number of COLUMN_GET clauses used.
I recorded the memory usage of the same query using 3, 10, 30, 60, 100, 150, 200, 317 COLUMN_GET clauses in the SELECT statement.

I'm trying to understand why COLUMN_GET uses so much memory. The query with 3 COLUMN_GET clauses uses about 40MB of memory, but with 317 clauses memory usage balloons up to near 4.4GB.
Using COLUMN_JSON (replacing the COLUMN_GET clauses) doesn't seem to use any noticeable amount of memory running with the same query.

The form of the query is:

SELECT COLUMN_GET(stats, <stat> as DOUBLE), ... FROM mystats LIMIT 209076;

(where <stat> is the stat name as a string).

I'm not sure if this is a bug or expected behavior, but it appears anomalous to me.

Attached is a quick plot of memory usage of the mysql process as these queries have been executed. The y-axis is Resident memory usage in MB.
The values at each local maxima are

Elapsed time
7.537    10162.422  (3 clauses)
14.871    10272.504  (10 clauses)
23.611    10611.875  (30 clauses)
32.176    11129.355  (60 clauses)
42.730    11622.684  (100 clauses)
54.795    12225.711  (150 clauses)
70.572    12843.094  (200 clauses)
93.901    14540.383  (317 clauses)

The idle periods average about 10148.24 MB



 Comments   
Comment by Elena Stepanova [ 2018-12-28 ]

I'm getting a smaller imprint, but it's definitely there.
It doesn't seem to depend on the total number of rows in the table, or on the total amount of dynamic columns in the blob; only on the number of selected rows and instances of COLUMN_GET. Examples are below.
The growth is temporary, when the query (or the query stage, rather) is finished, the memory consumption is back to normal.
I'll leave it to sanja to decide if it's expected.

100,000 rows out of 131072, 300 COLUMN_GET out of 300

29836 elenst    20   0 2110812 350880  17328 S   0.0  1.1   2:24.60 mysqld
...
29836 elenst    20   0 2962780 1.138g  17328 S  99.7  3.6   2:33.30 mysqld
...
29836 elenst    20   0 2110812 350912  17328 S   0.0  1.1   2:33.52 mysqld

100,000 rows out of 131072, 100 COLUMN_GET out of 300

29836 elenst    20   0 2110812 350912  17328 S   0.0  1.1   2:33.58 mysqld
...
29836 elenst    20   0 2307420 549700  17328 S  99.7  1.7   2:36.14 mysqld
...
29836 elenst    20   0 2110812 350912  17328 S   0.0  1.1   2:36.62 mysqld

100,000 rows out of 1,048,576, 300 COLUMN_GET out of 300

29836 elenst    20   0 2110812 374108  17328 S   0.0  1.1   3:21.61 mysqld
...
29836 elenst    20   0 2962780 1.140g  17328 S 109.7  3.6   3:30.40 mysqld
...
29836 elenst    20   0 2110812 350892  17328 S   0.0  1.1   3:30.58 mysqld

Results are from 10.2 734029fa79. I didn't check any other versions, but I don't expect any difference.

I was running this:

CREATE TABLE IF NOT EXISTS mystats (id int(10) UNSIGNED NOT NULL AUTO_INCREMENT, stats blob NOT NULL, PRIMARY KEY (id)) ENGINE = INNODB, CHARACTER SET utf8, COLLATE utf8_general_ci, ROW_FORMAT=DYNAMIC;
INSERT INTO mystats (stats) VALUES (COLUMN_CREATE('col1', 1, 'col2', 2, 'col3', 3, 'col4', 4, 'col5', 5, 'col6', 6, 'col7', 7, 'col8', 8, 'col9', 9, 'col10', 10, 'col11', 11, 'col12', 12, 'col13', 13, 'col14', 14, 'col15', 15, 'col16', 16, 'col17', 17, 'col18', 18, 'col19', 19, 'col20', 20, 'col21', 21, 'col22', 22, 'col23', 23, 'col24', 24, 'col25', 25, 'col26', 26, 'col27', 27, 'col28', 28, 'col29', 29, 'col30', 30, 'col31', 31, 'col32', 32, 'col33', 33, 'col34', 34, 'col35', 35, 'col36', 36, 'col37', 37, 'col38', 38, 'col39', 39, 'col40', 40, 'col41', 41, 'col42', 42, 'col43', 43, 'col44', 44, 'col45', 45, 'col46', 46, 'col47', 47, 'col48', 48, 'col49', 49, 'col50', 50, 'col51', 51, 'col52', 52, 'col53', 53, 'col54', 54, 'col55', 55, 'col56', 56, 'col57', 57, 'col58', 58, 'col59', 59, 'col60', 60, 'col61', 61, 'col62', 62, 'col63', 63, 'col64', 64, 'col65', 65, 'col66', 66, 'col67', 67, 'col68', 68, 'col69', 69, 'col70', 70, 'col71', 71, 'col72', 72, 'col73', 73, 'col74', 74, 'col75', 75, 'col76', 76, 'col77', 77, 'col78', 78, 'col79', 79, 'col80', 80, 'col81', 81, 'col82', 82, 'col83', 83, 'col84', 84, 'col85', 85, 'col86', 86, 'col87', 87, 'col88', 88, 'col89', 89, 'col90', 90, 'col91', 91, 'col92', 92, 'col93', 93, 'col94', 94, 'col95', 95, 'col96', 96, 'col97', 97, 'col98', 98, 'col99', 99, 'col100', 100, 'col101', 101, 'col102', 102, 'col103', 103, 'col104', 104, 'col105', 105, 'col106', 106, 'col107', 107, 'col108', 108, 'col109', 109, 'col110', 110, 'col111', 111, 'col112', 112, 'col113', 113, 'col114', 114, 'col115', 115, 'col116', 116, 'col117', 117, 'col118', 118, 'col119', 119, 'col120', 120, 'col121', 121, 'col122', 122, 'col123', 123, 'col124', 124, 'col125', 125, 'col126', 126, 'col127', 127, 'col128', 128, 'col129', 129, 'col130', 130, 'col131', 131, 'col132', 132, 'col133', 133, 'col134', 134, 'col135', 135, 'col136', 136, 'col137', 137, 'col138', 138, 'col139', 139, 'col140', 140, 'col141', 141, 'col142', 142, 'col143', 143, 'col144', 144, 'col145', 145, 'col146', 146, 'col147', 147, 'col148', 148, 'col149', 149, 'col150', 150, 'col151', 151, 'col152', 152, 'col153', 153, 'col154', 154, 'col155', 155, 'col156', 156, 'col157', 157, 'col158', 158, 'col159', 159, 'col160', 160, 'col161', 161, 'col162', 162, 'col163', 163, 'col164', 164, 'col165', 165, 'col166', 166, 'col167', 167, 'col168', 168, 'col169', 169, 'col170', 170, 'col171', 171, 'col172', 172, 'col173', 173, 'col174', 174, 'col175', 175, 'col176', 176, 'col177', 177, 'col178', 178, 'col179', 179, 'col180', 180, 'col181', 181, 'col182', 182, 'col183', 183, 'col184', 184, 'col185', 185, 'col186', 186, 'col187', 187, 'col188', 188, 'col189', 189, 'col190', 190, 'col191', 191, 'col192', 192, 'col193', 193, 'col194', 194, 'col195', 195, 'col196', 196, 'col197', 197, 'col198', 198, 'col199', 199, 'col200', 200, 'col201', 201, 'col202', 202, 'col203', 203, 'col204', 204, 'col205', 205, 'col206', 206, 'col207', 207, 'col208', 208, 'col209', 209, 'col210', 210, 'col211', 211, 'col212', 212, 'col213', 213, 'col214', 214, 'col215', 215, 'col216', 216, 'col217', 217, 'col218', 218, 'col219', 219, 'col220', 220, 'col221', 221, 'col222', 222, 'col223', 223, 'col224', 224, 'col225', 225, 'col226', 226, 'col227', 227, 'col228', 228, 'col229', 229, 'col230', 230, 'col231', 231, 'col232', 232, 'col233', 233, 'col234', 234, 'col235', 235, 'col236', 236, 'col237', 237, 'col238', 238, 'col239', 239, 'col240', 240, 'col241', 241, 'col242', 242, 'col243', 243, 'col244', 244, 'col245', 245, 'col246', 246, 'col247', 247, 'col248', 248, 'col249', 249, 'col250', 250, 'col251', 251, 'col252', 252, 'col253', 253, 'col254', 254, 'col255', 255, 'col256', 256, 'col257', 257, 'col258', 258, 'col259', 259, 'col260', 260, 'col261', 261, 'col262', 262, 'col263', 263, 'col264', 264, 'col265', 265, 'col266', 266, 'col267', 267, 'col268', 268, 'col269', 269, 'col270', 270, 'col271', 271, 'col272', 272, 'col273', 273, 'col274', 274, 'col275', 275, 'col276', 276, 'col277', 277, 'col278', 278, 'col279', 279, 'col280', 280, 'col281', 281, 'col282', 282, 'col283', 283, 'col284', 284, 'col285', 285, 'col286', 286, 'col287', 287, 'col288', 288, 'col289', 289, 'col290', 290, 'col291', 291, 'col292', 292, 'col293', 293, 'col294', 294, 'col295', 295, 'col296', 296, 'col297', 297, 'col298', 298, 'col299', 299, 'col300', 300));
START TRANSACTION;
INSERT INTO mystats (stats) SELECT stats FROM mystats;
INSERT INTO mystats (stats) SELECT stats FROM mystats;
INSERT INTO mystats (stats) SELECT stats FROM mystats;
INSERT INTO mystats (stats) SELECT stats FROM mystats;
INSERT INTO mystats (stats) SELECT stats FROM mystats;
INSERT INTO mystats (stats) SELECT stats FROM mystats;
INSERT INTO mystats (stats) SELECT stats FROM mystats;
INSERT INTO mystats (stats) SELECT stats FROM mystats;
INSERT INTO mystats (stats) SELECT stats FROM mystats;
INSERT INTO mystats (stats) SELECT stats FROM mystats;
INSERT INTO mystats (stats) SELECT stats FROM mystats;
INSERT INTO mystats (stats) SELECT stats FROM mystats;
INSERT INTO mystats (stats) SELECT stats FROM mystats;
INSERT INTO mystats (stats) SELECT stats FROM mystats;
INSERT INTO mystats (stats) SELECT stats FROM mystats;
INSERT INTO mystats (stats) SELECT stats FROM mystats;
INSERT INTO mystats (stats) SELECT stats FROM mystats;
COMMIT;

And the queries like

SELECT COLUMN_GET(stats, 'col1' AS DOUBLE), COLUMN_GET(stats, 'col2' AS DOUBLE), COLUMN_GET(stats, 'col3' AS DOUBLE), COLUMN_GET(stats, 'col4' AS DOUBLE), COLUMN_GET(stats, 'col5' AS DOUBLE), COLUMN_GET(stats, 'col6' AS DOUBLE), COLUMN_GET(stats, 'col7' AS DOUBLE), COLUMN_GET(stats, 'col8' AS DOUBLE), COLUMN_GET(stats, 'col9' AS DOUBLE), COLUMN_GET(stats, 'col10' AS DOUBLE), COLUMN_GET(stats, 'col11' AS DOUBLE), COLUMN_GET(stats, 'col12' AS DOUBLE), COLUMN_GET(stats, 'col13' AS DOUBLE), COLUMN_GET(stats, 'col14' AS DOUBLE), COLUMN_GET(stats, 'col15' AS DOUBLE), COLUMN_GET(stats, 'col16' AS DOUBLE), COLUMN_GET(stats, 'col17' AS DOUBLE), COLUMN_GET(stats, 'col18' AS DOUBLE), COLUMN_GET(stats, 'col19' AS DOUBLE), COLUMN_GET(stats, 'col20' AS DOUBLE), COLUMN_GET(stats, 'col21' AS DOUBLE), COLUMN_GET(stats, 'col22' AS DOUBLE), COLUMN_GET(stats, 'col23' AS DOUBLE), COLUMN_GET(stats, 'col24' AS DOUBLE), COLUMN_GET(stats, 'col25' AS DOUBLE), COLUMN_GET(stats, 'col26' AS DOUBLE), COLUMN_GET(stats, 'col27' AS DOUBLE), COLUMN_GET(stats, 'col28' AS DOUBLE), COLUMN_GET(stats, 'col29' AS DOUBLE), COLUMN_GET(stats, 'col30' AS DOUBLE), COLUMN_GET(stats, 'col31' AS DOUBLE), COLUMN_GET(stats, 'col32' AS DOUBLE), COLUMN_GET(stats, 'col33' AS DOUBLE), COLUMN_GET(stats, 'col34' AS DOUBLE), COLUMN_GET(stats, 'col35' AS DOUBLE), COLUMN_GET(stats, 'col36' AS DOUBLE), COLUMN_GET(stats, 'col37' AS DOUBLE), COLUMN_GET(stats, 'col38' AS DOUBLE), COLUMN_GET(stats, 'col39' AS DOUBLE), COLUMN_GET(stats, 'col40' AS DOUBLE), COLUMN_GET(stats, 'col41' AS DOUBLE), COLUMN_GET(stats, 'col42' AS DOUBLE), COLUMN_GET(stats, 'col43' AS DOUBLE), COLUMN_GET(stats, 'col44' AS DOUBLE), COLUMN_GET(stats, 'col45' AS DOUBLE), COLUMN_GET(stats, 'col46' AS DOUBLE), COLUMN_GET(stats, 'col47' AS DOUBLE), COLUMN_GET(stats, 'col48' AS DOUBLE), COLUMN_GET(stats, 'col49' AS DOUBLE), COLUMN_GET(stats, 'col50' AS DOUBLE), COLUMN_GET(stats, 'col51' AS DOUBLE), COLUMN_GET(stats, 'col52' AS DOUBLE), COLUMN_GET(stats, 'col53' AS DOUBLE), COLUMN_GET(stats, 'col54' AS DOUBLE), COLUMN_GET(stats, 'col55' AS DOUBLE), COLUMN_GET(stats, 'col56' AS DOUBLE), COLUMN_GET(stats, 'col57' AS DOUBLE), COLUMN_GET(stats, 'col58' AS DOUBLE), COLUMN_GET(stats, 'col59' AS DOUBLE), COLUMN_GET(stats, 'col60' AS DOUBLE), COLUMN_GET(stats, 'col61' AS DOUBLE), COLUMN_GET(stats, 'col62' AS DOUBLE), COLUMN_GET(stats, 'col63' AS DOUBLE), COLUMN_GET(stats, 'col64' AS DOUBLE), COLUMN_GET(stats, 'col65' AS DOUBLE), COLUMN_GET(stats, 'col66' AS DOUBLE), COLUMN_GET(stats, 'col67' AS DOUBLE), COLUMN_GET(stats, 'col68' AS DOUBLE), COLUMN_GET(stats, 'col69' AS DOUBLE), COLUMN_GET(stats, 'col70' AS DOUBLE), COLUMN_GET(stats, 'col71' AS DOUBLE), COLUMN_GET(stats, 'col72' AS DOUBLE), COLUMN_GET(stats, 'col73' AS DOUBLE), COLUMN_GET(stats, 'col74' AS DOUBLE), COLUMN_GET(stats, 'col75' AS DOUBLE), COLUMN_GET(stats, 'col76' AS DOUBLE), COLUMN_GET(stats, 'col77' AS DOUBLE), COLUMN_GET(stats, 'col78' AS DOUBLE), COLUMN_GET(stats, 'col79' AS DOUBLE), COLUMN_GET(stats, 'col80' AS DOUBLE), COLUMN_GET(stats, 'col81' AS DOUBLE), COLUMN_GET(stats, 'col82' AS DOUBLE), COLUMN_GET(stats, 'col83' AS DOUBLE), COLUMN_GET(stats, 'col84' AS DOUBLE), COLUMN_GET(stats, 'col85' AS DOUBLE), COLUMN_GET(stats, 'col86' AS DOUBLE), COLUMN_GET(stats, 'col87' AS DOUBLE), COLUMN_GET(stats, 'col88' AS DOUBLE), COLUMN_GET(stats, 'col89' AS DOUBLE), COLUMN_GET(stats, 'col90' AS DOUBLE), COLUMN_GET(stats, 'col91' AS DOUBLE), COLUMN_GET(stats, 'col92' AS DOUBLE), COLUMN_GET(stats, 'col93' AS DOUBLE), COLUMN_GET(stats, 'col94' AS DOUBLE), COLUMN_GET(stats, 'col95' AS DOUBLE), COLUMN_GET(stats, 'col96' AS DOUBLE), COLUMN_GET(stats, 'col97' AS DOUBLE), COLUMN_GET(stats, 'col98' AS DOUBLE), COLUMN_GET(stats, 'col99' AS DOUBLE), COLUMN_GET(stats, 'col100' AS DOUBLE), COLUMN_GET(stats, 'col101' AS DOUBLE), COLUMN_GET(stats, 'col102' AS DOUBLE), COLUMN_GET(stats, 'col103' AS DOUBLE), COLUMN_GET(stats, 'col104' AS DOUBLE), COLUMN_GET(stats, 'col105' AS DOUBLE), COLUMN_GET(stats, 'col106' AS DOUBLE), COLUMN_GET(stats, 'col107' AS DOUBLE), COLUMN_GET(stats, 'col108' AS DOUBLE), COLUMN_GET(stats, 'col109' AS DOUBLE), COLUMN_GET(stats, 'col110' AS DOUBLE), COLUMN_GET(stats, 'col111' AS DOUBLE), COLUMN_GET(stats, 'col112' AS DOUBLE), COLUMN_GET(stats, 'col113' AS DOUBLE), COLUMN_GET(stats, 'col114' AS DOUBLE), COLUMN_GET(stats, 'col115' AS DOUBLE), COLUMN_GET(stats, 'col116' AS DOUBLE), COLUMN_GET(stats, 'col117' AS DOUBLE), COLUMN_GET(stats, 'col118' AS DOUBLE), COLUMN_GET(stats, 'col119' AS DOUBLE), COLUMN_GET(stats, 'col120' AS DOUBLE), COLUMN_GET(stats, 'col121' AS DOUBLE), COLUMN_GET(stats, 'col122' AS DOUBLE), COLUMN_GET(stats, 'col123' AS DOUBLE), COLUMN_GET(stats, 'col124' AS DOUBLE), COLUMN_GET(stats, 'col125' AS DOUBLE), COLUMN_GET(stats, 'col126' AS DOUBLE), COLUMN_GET(stats, 'col127' AS DOUBLE), COLUMN_GET(stats, 'col128' AS DOUBLE), COLUMN_GET(stats, 'col129' AS DOUBLE), COLUMN_GET(stats, 'col130' AS DOUBLE), COLUMN_GET(stats, 'col131' AS DOUBLE), COLUMN_GET(stats, 'col132' AS DOUBLE), COLUMN_GET(stats, 'col133' AS DOUBLE), COLUMN_GET(stats, 'col134' AS DOUBLE), COLUMN_GET(stats, 'col135' AS DOUBLE), COLUMN_GET(stats, 'col136' AS DOUBLE), COLUMN_GET(stats, 'col137' AS DOUBLE), COLUMN_GET(stats, 'col138' AS DOUBLE), COLUMN_GET(stats, 'col139' AS DOUBLE), COLUMN_GET(stats, 'col140' AS DOUBLE), COLUMN_GET(stats, 'col141' AS DOUBLE), COLUMN_GET(stats, 'col142' AS DOUBLE), COLUMN_GET(stats, 'col143' AS DOUBLE), COLUMN_GET(stats, 'col144' AS DOUBLE), COLUMN_GET(stats, 'col145' AS DOUBLE), COLUMN_GET(stats, 'col146' AS DOUBLE), COLUMN_GET(stats, 'col147' AS DOUBLE), COLUMN_GET(stats, 'col148' AS DOUBLE), COLUMN_GET(stats, 'col149' AS DOUBLE), COLUMN_GET(stats, 'col150' AS DOUBLE), COLUMN_GET(stats, 'col151' AS DOUBLE), COLUMN_GET(stats, 'col152' AS DOUBLE), COLUMN_GET(stats, 'col153' AS DOUBLE), COLUMN_GET(stats, 'col154' AS DOUBLE), COLUMN_GET(stats, 'col155' AS DOUBLE), COLUMN_GET(stats, 'col156' AS DOUBLE), COLUMN_GET(stats, 'col157' AS DOUBLE), COLUMN_GET(stats, 'col158' AS DOUBLE), COLUMN_GET(stats, 'col159' AS DOUBLE), COLUMN_GET(stats, 'col160' AS DOUBLE), COLUMN_GET(stats, 'col161' AS DOUBLE), COLUMN_GET(stats, 'col162' AS DOUBLE), COLUMN_GET(stats, 'col163' AS DOUBLE), COLUMN_GET(stats, 'col164' AS DOUBLE), COLUMN_GET(stats, 'col165' AS DOUBLE), COLUMN_GET(stats, 'col166' AS DOUBLE), COLUMN_GET(stats, 'col167' AS DOUBLE), COLUMN_GET(stats, 'col168' AS DOUBLE), COLUMN_GET(stats, 'col169' AS DOUBLE), COLUMN_GET(stats, 'col170' AS DOUBLE), COLUMN_GET(stats, 'col171' AS DOUBLE), COLUMN_GET(stats, 'col172' AS DOUBLE), COLUMN_GET(stats, 'col173' AS DOUBLE), COLUMN_GET(stats, 'col174' AS DOUBLE), COLUMN_GET(stats, 'col175' AS DOUBLE), COLUMN_GET(stats, 'col176' AS DOUBLE), COLUMN_GET(stats, 'col177' AS DOUBLE), COLUMN_GET(stats, 'col178' AS DOUBLE), COLUMN_GET(stats, 'col179' AS DOUBLE), COLUMN_GET(stats, 'col180' AS DOUBLE), COLUMN_GET(stats, 'col181' AS DOUBLE), COLUMN_GET(stats, 'col182' AS DOUBLE), COLUMN_GET(stats, 'col183' AS DOUBLE), COLUMN_GET(stats, 'col184' AS DOUBLE), COLUMN_GET(stats, 'col185' AS DOUBLE), COLUMN_GET(stats, 'col186' AS DOUBLE), COLUMN_GET(stats, 'col187' AS DOUBLE), COLUMN_GET(stats, 'col188' AS DOUBLE), COLUMN_GET(stats, 'col189' AS DOUBLE), COLUMN_GET(stats, 'col190' AS DOUBLE), COLUMN_GET(stats, 'col191' AS DOUBLE), COLUMN_GET(stats, 'col192' AS DOUBLE), COLUMN_GET(stats, 'col193' AS DOUBLE), COLUMN_GET(stats, 'col194' AS DOUBLE), COLUMN_GET(stats, 'col195' AS DOUBLE), COLUMN_GET(stats, 'col196' AS DOUBLE), COLUMN_GET(stats, 'col197' AS DOUBLE), COLUMN_GET(stats, 'col198' AS DOUBLE), COLUMN_GET(stats, 'col199' AS DOUBLE), COLUMN_GET(stats, 'col200' AS DOUBLE), COLUMN_GET(stats, 'col201' AS DOUBLE), COLUMN_GET(stats, 'col202' AS DOUBLE), COLUMN_GET(stats, 'col203' AS DOUBLE), COLUMN_GET(stats, 'col204' AS DOUBLE), COLUMN_GET(stats, 'col205' AS DOUBLE), COLUMN_GET(stats, 'col206' AS DOUBLE), COLUMN_GET(stats, 'col207' AS DOUBLE), COLUMN_GET(stats, 'col208' AS DOUBLE), COLUMN_GET(stats, 'col209' AS DOUBLE), COLUMN_GET(stats, 'col210' AS DOUBLE), COLUMN_GET(stats, 'col211' AS DOUBLE), COLUMN_GET(stats, 'col212' AS DOUBLE), COLUMN_GET(stats, 'col213' AS DOUBLE), COLUMN_GET(stats, 'col214' AS DOUBLE), COLUMN_GET(stats, 'col215' AS DOUBLE), COLUMN_GET(stats, 'col216' AS DOUBLE), COLUMN_GET(stats, 'col217' AS DOUBLE), COLUMN_GET(stats, 'col218' AS DOUBLE), COLUMN_GET(stats, 'col219' AS DOUBLE), COLUMN_GET(stats, 'col220' AS DOUBLE), COLUMN_GET(stats, 'col221' AS DOUBLE), COLUMN_GET(stats, 'col222' AS DOUBLE), COLUMN_GET(stats, 'col223' AS DOUBLE), COLUMN_GET(stats, 'col224' AS DOUBLE), COLUMN_GET(stats, 'col225' AS DOUBLE), COLUMN_GET(stats, 'col226' AS DOUBLE), COLUMN_GET(stats, 'col227' AS DOUBLE), COLUMN_GET(stats, 'col228' AS DOUBLE), COLUMN_GET(stats, 'col229' AS DOUBLE), COLUMN_GET(stats, 'col230' AS DOUBLE), COLUMN_GET(stats, 'col231' AS DOUBLE), COLUMN_GET(stats, 'col232' AS DOUBLE), COLUMN_GET(stats, 'col233' AS DOUBLE), COLUMN_GET(stats, 'col234' AS DOUBLE), COLUMN_GET(stats, 'col235' AS DOUBLE), COLUMN_GET(stats, 'col236' AS DOUBLE), COLUMN_GET(stats, 'col237' AS DOUBLE), COLUMN_GET(stats, 'col238' AS DOUBLE), COLUMN_GET(stats, 'col239' AS DOUBLE), COLUMN_GET(stats, 'col240' AS DOUBLE), COLUMN_GET(stats, 'col241' AS DOUBLE), COLUMN_GET(stats, 'col242' AS DOUBLE), COLUMN_GET(stats, 'col243' AS DOUBLE), COLUMN_GET(stats, 'col244' AS DOUBLE), COLUMN_GET(stats, 'col245' AS DOUBLE), COLUMN_GET(stats, 'col246' AS DOUBLE), COLUMN_GET(stats, 'col247' AS DOUBLE), COLUMN_GET(stats, 'col248' AS DOUBLE), COLUMN_GET(stats, 'col249' AS DOUBLE), COLUMN_GET(stats, 'col250' AS DOUBLE), COLUMN_GET(stats, 'col251' AS DOUBLE), COLUMN_GET(stats, 'col252' AS DOUBLE), COLUMN_GET(stats, 'col253' AS DOUBLE), COLUMN_GET(stats, 'col254' AS DOUBLE), COLUMN_GET(stats, 'col255' AS DOUBLE), COLUMN_GET(stats, 'col256' AS DOUBLE), COLUMN_GET(stats, 'col257' AS DOUBLE), COLUMN_GET(stats, 'col258' AS DOUBLE), COLUMN_GET(stats, 'col259' AS DOUBLE), COLUMN_GET(stats, 'col260' AS DOUBLE), COLUMN_GET(stats, 'col261' AS DOUBLE), COLUMN_GET(stats, 'col262' AS DOUBLE), COLUMN_GET(stats, 'col263' AS DOUBLE), COLUMN_GET(stats, 'col264' AS DOUBLE), COLUMN_GET(stats, 'col265' AS DOUBLE), COLUMN_GET(stats, 'col266' AS DOUBLE), COLUMN_GET(stats, 'col267' AS DOUBLE), COLUMN_GET(stats, 'col268' AS DOUBLE), COLUMN_GET(stats, 'col269' AS DOUBLE), COLUMN_GET(stats, 'col270' AS DOUBLE), COLUMN_GET(stats, 'col271' AS DOUBLE), COLUMN_GET(stats, 'col272' AS DOUBLE), COLUMN_GET(stats, 'col273' AS DOUBLE), COLUMN_GET(stats, 'col274' AS DOUBLE), COLUMN_GET(stats, 'col275' AS DOUBLE), COLUMN_GET(stats, 'col276' AS DOUBLE), COLUMN_GET(stats, 'col277' AS DOUBLE), COLUMN_GET(stats, 'col278' AS DOUBLE), COLUMN_GET(stats, 'col279' AS DOUBLE), COLUMN_GET(stats, 'col280' AS DOUBLE), COLUMN_GET(stats, 'col281' AS DOUBLE), COLUMN_GET(stats, 'col282' AS DOUBLE), COLUMN_GET(stats, 'col283' AS DOUBLE), COLUMN_GET(stats, 'col284' AS DOUBLE), COLUMN_GET(stats, 'col285' AS DOUBLE), COLUMN_GET(stats, 'col286' AS DOUBLE), COLUMN_GET(stats, 'col287' AS DOUBLE), COLUMN_GET(stats, 'col288' AS DOUBLE), COLUMN_GET(stats, 'col289' AS DOUBLE), COLUMN_GET(stats, 'col290' AS DOUBLE), COLUMN_GET(stats, 'col291' AS DOUBLE), COLUMN_GET(stats, 'col292' AS DOUBLE), COLUMN_GET(stats, 'col293' AS DOUBLE), COLUMN_GET(stats, 'col294' AS DOUBLE), COLUMN_GET(stats, 'col295' AS DOUBLE), COLUMN_GET(stats, 'col296' AS DOUBLE), COLUMN_GET(stats, 'col297' AS DOUBLE), COLUMN_GET(stats, 'col298' AS DOUBLE), COLUMN_GET(stats, 'col299' AS DOUBLE), COLUMN_GET(stats, 'col300' AS DOUBLE) FROM mystats LIMIT 100000;

Generated at Thu Feb 08 08:40:48 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.