sql-server-raw-file 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 41f203edbad49fe5604df8564fe39edc4f70aef3
4
- data.tar.gz: 6a9215a1fd7c64097ec3e50c3d08649aa76db7d3
3
+ metadata.gz: 97dd8f35e8d1d64c91adf9164cc279a48963aeb2
4
+ data.tar.gz: 2652ef2a7206d844246345042df4b59e5ab29727
5
5
  SHA512:
6
- metadata.gz: 1a3d9a2c0760386dc63e4286b8a77b4830da2bcaaa0d303f0e7594cf810cde1409e8fb622e5208992832c5f71623a38cef9761bc7115257a6fd546520bb68068
7
- data.tar.gz: d4bbae1b9efd3934109b051b87893ef4a7d4cb1cebf84e78cedd5dab5d2454765bddfd41d10c498e518dac7b76f2669d901b442f5b72b665acc76090199bc009
6
+ metadata.gz: 183c48f0e68f56e402263324819505bead820d4f35cda87a565e2d8874b56cd88a2b92ef4562a4035e87ee105835386d1c0e23a7d8f333ef91c8d58ba40f1087
7
+ data.tar.gz: 2ba5ee93660ccce551e46a3b8154fb63c72ebeaed3016abf0140cf5003f319893b9bcb48b6fd2ca059b945101287421014c7aa041abedabb7cb1349d21a8af29
data/CHANGELOG.md CHANGED
@@ -1,3 +1,30 @@
1
+ ## 0.1.2 (Jan 25, 2016)
2
+
3
+ Features:
4
+
5
+ - added SqlServerDts::RawFile#get_len
6
+ * get length of data by data or metadata
7
+ - added support of data types
8
+ * smallint
9
+ * real (float(24))
10
+ * money (decimal(19,4)), smallmoney ((decimal(10,4)))
11
+ * tinyint
12
+ * uniqueidentifier
13
+ * varbinary, binary, timestamp
14
+ * date
15
+ * smalldatetime
16
+ * time
17
+ * datetimeoffset
18
+
19
+ Bugfixes:
20
+
21
+ - fixed mappings for:
22
+ * int
23
+ * float
24
+ * bigint
25
+ * datetime
26
+ * datetime2
27
+
1
28
  ## 0.1.1 (Jan 20, 2016)
2
29
 
3
30
  Features:
@@ -1 +1 @@
1
- 1
1
+ 2
@@ -0,0 +1,53 @@
1
+ select cast(1 as int) [int]
2
+ , cast(3.14159265 as float) [float]
3
+ , cast(1 as bit) [bit]
4
+ , cast(POWER(2,30) as bigint) [bigint]
5
+ , cast('This is a variable length char string' as varchar(128)) [varchar]
6
+ , cast('This is a char string' as char(128)) [char]
7
+ , cast('��� ������ ���������� ����� � �������' as nvarchar(128)) [nvarchar]
8
+ , cast('��� ������ � �������' as nchar(128)) [nchar]
9
+ , cast(9.11 as decimal(18,6)) [decimal]
10
+ , cast(7.62 as numeric(18,6)) [numeric]
11
+ , getdate() [datetime]
12
+ , CAST(SYSDATETIME() AS DATETIME2(0)) [datetime2]
13
+ , NULL AS [NULL]
14
+ , cast(0x30313233343536373839 AS VARBINARY(10)) [varbinary]
15
+ , cast(0x40414243 AS BINARY(10)) [binary]
16
+ , @@DBTS [timestamp]
17
+ , CAST($123.45 AS MONEY) [money]
18
+ , CAST($2.23 AS SMALLMONEY) [smallmoney]
19
+ , CAST(GETDATE() AS DATE) [date]
20
+ , CAST(GETDATE() AS TIME(0)) [time]
21
+ , CAST(GETDATE() AS SMALLDATETIME) [smalldatetime]
22
+ , CAST(SYSDATETIMEOFFSET() AS DATETIMEOFFSET(0)) [datetimeoffset]
23
+ , CAST('6F9619FF-8B86-D011-B42D-00C04FC964FF' AS UNIQUEIDENTIFIER) [uniqueidentifier]
24
+ , CAST(30000 AS SMALLINT) [smallint]
25
+ , CAST(POWER(2.015,30) AS REAL) [real]
26
+ , CAST(200 AS TINYINT) [tinyint]
27
+ UNION ALL
28
+ select cast(-2 as int) [int]
29
+ , cast(-37.0/3.0 as float) [float]
30
+ , cast(0 as bit) [bit]
31
+ , cast(-POWER(3,19) as bigint) [bigint]
32
+ , cast('This is another variable length char string' as varchar(128)) [varchar]
33
+ , cast('This is another char string' as char(128)) [char]
34
+ , cast('��� ��� ���� ������ ���������� ����� � �������' as nvarchar(128)) [nvarchar]
35
+ , cast('��� ��� ���� ������ � �������' as nchar(128)) [nchar]
36
+ , cast(-99.999 as decimal(18,6)) [decimal]
37
+ , cast(-5.56 as numeric(18,6)) [numeric]
38
+ , getdate() [datetime]
39
+ , SYSDATETIME() [datetime2]
40
+ , NULL AS [NULL]
41
+ , cast(0x39383736353433323130 AS VARBINARY(10)) [varbinary]
42
+ , cast(0x43424140 AS BINARY(10)) [binary]
43
+ , @@DBTS [timestamp]
44
+ , CAST($-123.45 AS MONEY) [money]
45
+ , CAST($-2.23 AS SMALLMONEY) [smallmoney]
46
+ , CAST(GETDATE() AS DATE) [date]
47
+ , CAST(GETDATE() AS TIME(7)) [time]
48
+ , CAST(GETDATE() AS SMALLDATETIME) [smalldatetime]
49
+ , SWITCHOFFSET(SYSDATETIMEOFFSET(),'-04:30') [datetimeoffset]
50
+ , CAST('FFEFAA09-8B86-D011-B42D-00C04FC964FF' AS UNIQUEIDENTIFIER) [uniqueidentifier]
51
+ , CAST(-30000 AS SMALLINT) [smallint]
52
+ , CAST(-POWER(3.019,18) AS REAL) [real]
53
+ , CAST(10 AS TINYINT) [tinyint]
@@ -0,0 +1,53 @@
1
+ select cast(1 as int) [int]
2
+ , cast(3.14159265 as float) [float]
3
+ , cast(1 as bit) [bit]
4
+ , cast(POWER(2,30) as bigint) [bigint]
5
+ , cast('This is a variable length char string' as varchar(128)) [varchar]
6
+ , cast('This is a char string' as char(128)) [char]
7
+ , cast('��� ������ ���������� ����� � �������' as nvarchar(128)) [nvarchar]
8
+ , cast('��� ������ � �������' as nchar(128)) [nchar]
9
+ , cast(9.11 as decimal(18,6)) [decimal]
10
+ , cast(7.62 as numeric(18,6)) [numeric]
11
+ , getdate() [datetime]
12
+ , NULL [datetime2]
13
+ , NULL AS [NULL]
14
+ , cast(0x30313233343536373839 AS VARBINARY(10)) [varbinary]
15
+ , cast(0x40414243 AS BINARY(10)) [binary]
16
+ , @@DBTS [timestamp]
17
+ , CAST($123.45 AS MONEY) [money]
18
+ , CAST($2.23 AS SMALLMONEY) [smallmoney]
19
+ , NULL [date]
20
+ , NULL [time]
21
+ , CAST(GETDATE() AS SMALLDATETIME) [smalldatetime]
22
+ , NULL [datetimeoffset]
23
+ , CAST('6F9619FF-8B86-D011-B42D-00C04FC964FF' AS UNIQUEIDENTIFIER) [uniqueidentifier]
24
+ , CAST(30000 AS SMALLINT) [smallint]
25
+ , CAST(POWER(2.015,30) AS REAL) [real]
26
+ , CAST(200 AS TINYINT) [tinyint]
27
+ UNION ALL
28
+ select cast(2 as int) [int]
29
+ , cast(-37.0/3.0 as float) [float]
30
+ , cast(0 as bit) [bit]
31
+ , cast(-POWER(3,19) as bigint) [bigint]
32
+ , cast('This is another variable length char string' as varchar(128)) [varchar]
33
+ , cast('This is another char string' as char(128)) [char]
34
+ , cast('��� ��� ���� ������ ���������� ����� � �������' as nvarchar(128)) [nvarchar]
35
+ , cast('��� ��� ���� ������ � �������' as nchar(128)) [nchar]
36
+ , cast(-99.999 as decimal(18,6)) [decimal]
37
+ , cast(-5.56 as numeric(18,6)) [numeric]
38
+ , getdate() [datetime]
39
+ , NULL [datetime2]
40
+ , NULL AS [NULL]
41
+ , cast(0x39383736353433323130 AS VARBINARY(10)) [varbinary]
42
+ , cast(0x43424140 AS BINARY(10)) [binary]
43
+ , @@DBTS [timestamp]
44
+ , CAST($-123.45 AS MONEY) [money]
45
+ , CAST($-2.23 AS SMALLMONEY) [smallmoney]
46
+ , NULL [date]
47
+ , NULL [time]
48
+ , CAST(GETDATE() AS SMALLDATETIME) [smalldatetime]
49
+ , NULL [datetimeoffset]
50
+ , CAST('FFEFAA09-8B86-D011-B42D-00C04FC964FF' AS UNIQUEIDENTIFIER) [uniqueidentifier]
51
+ , CAST(-30000 AS SMALLINT) [smallint]
52
+ , CAST(-POWER(3.019,18) AS REAL) [real]
53
+ , CAST(10 AS TINYINT) [tinyint]
data/fixtures/sql09.raw CHANGED
Binary file
@@ -1,3 +1,3 @@
1
- int float bit bigint varchar char nvarchar nchar decimal numeric datetime datetime2 NULL
2
- 1 3.14159265 true 1073741824 This is a variable length char string This is a char string Это строка переменной длины в Юникоде Это строка в Юникоде 9.110000 7.620000 2016-01-12 09:26:52.747
3
- 2 -12.333333 false 3132705829 This is another variable length char string This is another char string Это еще одна строка переменной длины в Юникоде Это еще одна строка в Юникоде -99.999000 -5.560000 2016-01-12 09:26:52.747
1
+ int float bit bigint varchar char nvarchar nchar decimal numeric datetime datetime2 NULL varbinary binary timestamp money smallmoney date time smalldatetime datetimeoffset uniqueidentifier smallint real tinyint
2
+ 1 3.14159265 true 1073741824 This is a variable length char string This is a char string Это строка переменной длины в Юникоде Это строка в Юникоде 9.110000 7.620000 2016-01-20 18:33:35.829 30313233343536373839 40414243000000000000 0000000000000fa0 123.4500 2.2300 2016-01-20 18:34:00.000 6f9619ff-8b86-d011-b42d-00c04fc964ff 30000 1343542784.0 200
3
+ 2 -12.333333 false -1162261467 This is another variable length char string This is another char string Это еще одна строка переменной длины в Юникоде Это еще одна строка в Юникоде -99.999000 -5.560000 2016-01-20 18:33:35.829 39383736353433323130 43424140000000000000 0000000000000fa0 -123.4500 -2.2300 2016-01-20 18:34:00.000 ffefaa09-8b86-d011-b42d-00c04fc964ff -30000 -434046272.0 10
@@ -3,8 +3,8 @@
3
3
  "name": "int",
4
4
  "data_type": 3,
5
5
  "max_length": 4,
6
- "p2": 52,
7
- "p3": 0,
6
+ "p2": 232,
7
+ "p3": 12,
8
8
  "p4": -1,
9
9
  "precision": 0,
10
10
  "scale": 0,
@@ -16,8 +16,8 @@
16
16
  "name": "float",
17
17
  "data_type": 5,
18
18
  "max_length": 8,
19
- "p2": 56,
20
- "p3": 4,
19
+ "p2": 120,
20
+ "p3": 16,
21
21
  "p4": -1,
22
22
  "precision": 0,
23
23
  "scale": 0,
@@ -29,8 +29,8 @@
29
29
  "name": "bit",
30
30
  "data_type": 11,
31
31
  "max_length": 2,
32
- "p2": 392,
33
- "p3": 8,
32
+ "p2": 798,
33
+ "p3": 20,
34
34
  "p4": -1,
35
35
  "precision": 0,
36
36
  "scale": 0,
@@ -42,8 +42,8 @@
42
42
  "name": "bigint",
43
43
  "data_type": 20,
44
44
  "max_length": 8,
45
- "p2": 80,
46
- "p3": 12,
45
+ "p2": 176,
46
+ "p3": 24,
47
47
  "p4": -1,
48
48
  "precision": 0,
49
49
  "scale": 0,
@@ -55,8 +55,8 @@
55
55
  "name": "varchar",
56
56
  "data_type": 129,
57
57
  "max_length": 128,
58
- "p2": 92,
59
- "p3": 16,
58
+ "p2": 236,
59
+ "p3": 28,
60
60
  "p4": -1,
61
61
  "precision": 0,
62
62
  "scale": 0,
@@ -68,8 +68,8 @@
68
68
  "name": "char",
69
69
  "data_type": 129,
70
70
  "max_length": 128,
71
- "p2": 244,
72
- "p3": 20,
71
+ "p2": 388,
72
+ "p3": 32,
73
73
  "p4": -1,
74
74
  "precision": 0,
75
75
  "scale": 0,
@@ -81,8 +81,8 @@
81
81
  "name": "nvarchar",
82
82
  "data_type": 130,
83
83
  "max_length": 128,
84
- "p2": 396,
85
- "p3": 24,
84
+ "p2": 540,
85
+ "p3": 36,
86
86
  "p4": -1,
87
87
  "precision": 0,
88
88
  "scale": 0,
@@ -94,8 +94,8 @@
94
94
  "name": "nchar",
95
95
  "data_type": 130,
96
96
  "max_length": 128,
97
- "p2": 656,
98
- "p3": 28,
97
+ "p2": 804,
98
+ "p3": 40,
99
99
  "p4": -1,
100
100
  "precision": 0,
101
101
  "scale": 0,
@@ -107,8 +107,8 @@
107
107
  "name": "decimal",
108
108
  "data_type": 131,
109
109
  "max_length": 19,
110
- "p2": 221,
111
- "p3": 32,
110
+ "p2": 365,
111
+ "p3": 44,
112
112
  "p4": -1,
113
113
  "precision": 18,
114
114
  "scale": 6,
@@ -120,8 +120,8 @@
120
120
  "name": "numeric",
121
121
  "data_type": 131,
122
122
  "max_length": 19,
123
- "p2": 373,
124
- "p3": 36,
123
+ "p2": 517,
124
+ "p3": 48,
125
125
  "p4": -1,
126
126
  "precision": 18,
127
127
  "scale": 6,
@@ -133,8 +133,8 @@
133
133
  "name": "datetime",
134
134
  "data_type": 135,
135
135
  "max_length": 16,
136
- "p2": 64,
137
- "p3": 40,
136
+ "p2": 128,
137
+ "p3": 52,
138
138
  "p4": -1,
139
139
  "precision": 0,
140
140
  "scale": 0,
@@ -146,8 +146,8 @@
146
146
  "name": "datetime2",
147
147
  "data_type": 3,
148
148
  "max_length": 4,
149
- "p2": 88,
150
- "p3": 44,
149
+ "p2": 384,
150
+ "p3": 56,
151
151
  "p4": -1,
152
152
  "precision": 0,
153
153
  "scale": 0,
@@ -159,8 +159,177 @@
159
159
  "name": "NULL",
160
160
  "data_type": 3,
161
161
  "max_length": 4,
162
- "p2": 240,
163
- "p3": 48,
162
+ "p2": 536,
163
+ "p3": 60,
164
+ "p4": -1,
165
+ "precision": 0,
166
+ "scale": 0,
167
+ "code_page": 0,
168
+ "p8": null,
169
+ "p9": null
170
+ },
171
+ {
172
+ "name": "varbinary",
173
+ "data_type": 128,
174
+ "max_length": 10,
175
+ "p2": 1064,
176
+ "p3": 64,
177
+ "p4": 0,
178
+ "precision": 0,
179
+ "scale": 0,
180
+ "code_page": 0,
181
+ "p8": null,
182
+ "p9": null
183
+ },
184
+ {
185
+ "name": "binary",
186
+ "data_type": 128,
187
+ "max_length": 10,
188
+ "p2": 1076,
189
+ "p3": 68,
190
+ "p4": 4,
191
+ "precision": 0,
192
+ "scale": 0,
193
+ "code_page": 0,
194
+ "p8": null,
195
+ "p9": null
196
+ },
197
+ {
198
+ "name": "timestamp",
199
+ "data_type": 128,
200
+ "max_length": 8,
201
+ "p2": 192,
202
+ "p3": 72,
203
+ "p4": 8,
204
+ "precision": 0,
205
+ "scale": 0,
206
+ "code_page": 0,
207
+ "p8": null,
208
+ "p9": null
209
+ },
210
+ {
211
+ "name": "money",
212
+ "data_type": 6,
213
+ "max_length": 8,
214
+ "p2": 184,
215
+ "p3": 76,
216
+ "p4": -1,
217
+ "precision": 0,
218
+ "scale": 0,
219
+ "code_page": 0,
220
+ "p8": null,
221
+ "p9": null
222
+ },
223
+ {
224
+ "name": "smallmoney",
225
+ "data_type": 6,
226
+ "max_length": 8,
227
+ "p2": 200,
228
+ "p3": 80,
229
+ "p4": -1,
230
+ "precision": 0,
231
+ "scale": 0,
232
+ "code_page": 0,
233
+ "p8": null,
234
+ "p9": null
235
+ },
236
+ {
237
+ "name": "date",
238
+ "data_type": 3,
239
+ "max_length": 4,
240
+ "p2": 800,
241
+ "p3": 84,
242
+ "p4": -1,
243
+ "precision": 0,
244
+ "scale": 0,
245
+ "code_page": 0,
246
+ "p8": null,
247
+ "p9": null
248
+ },
249
+ {
250
+ "name": "time",
251
+ "data_type": 3,
252
+ "max_length": 4,
253
+ "p2": 1088,
254
+ "p3": 88,
255
+ "p4": -1,
256
+ "precision": 0,
257
+ "scale": 0,
258
+ "code_page": 0,
259
+ "p8": null,
260
+ "p9": null
261
+ },
262
+ {
263
+ "name": "smalldatetime",
264
+ "data_type": 135,
265
+ "max_length": 16,
266
+ "p2": 144,
267
+ "p3": 92,
268
+ "p4": -1,
269
+ "precision": 0,
270
+ "scale": 0,
271
+ "code_page": 0,
272
+ "p8": null,
273
+ "p9": null
274
+ },
275
+ {
276
+ "name": "datetimeoffset",
277
+ "data_type": 3,
278
+ "max_length": 4,
279
+ "p2": 1092,
280
+ "p3": 96,
281
+ "p4": -1,
282
+ "precision": 0,
283
+ "scale": 0,
284
+ "code_page": 0,
285
+ "p8": null,
286
+ "p9": null
287
+ },
288
+ {
289
+ "name": "uniqueidentifier",
290
+ "data_type": 72,
291
+ "max_length": 16,
292
+ "p2": 160,
293
+ "p3": 100,
294
+ "p4": -1,
295
+ "precision": 0,
296
+ "scale": 0,
297
+ "code_page": 0,
298
+ "p8": null,
299
+ "p9": null
300
+ },
301
+ {
302
+ "name": "smallint",
303
+ "data_type": 2,
304
+ "max_length": 2,
305
+ "p2": 1096,
306
+ "p3": 104,
307
+ "p4": -1,
308
+ "precision": 0,
309
+ "scale": 0,
310
+ "code_page": 0,
311
+ "p8": null,
312
+ "p9": null
313
+ },
314
+ {
315
+ "name": "real",
316
+ "data_type": 4,
317
+ "max_length": 4,
318
+ "p2": 1100,
319
+ "p3": 108,
320
+ "p4": -1,
321
+ "precision": 0,
322
+ "scale": 0,
323
+ "code_page": 0,
324
+ "p8": null,
325
+ "p9": null
326
+ },
327
+ {
328
+ "name": "tinyint",
329
+ "data_type": 17,
330
+ "max_length": 1,
331
+ "p2": 1062,
332
+ "p3": 112,
164
333
  "p4": -1,
165
334
  "precision": 0,
166
335
  "scale": 0,
data/fixtures/sql10.raw CHANGED
Binary file
@@ -1,3 +1,3 @@
1
- int float bit bigint varchar char nvarchar nchar decimal numeric datetime datetime2 NULL
2
- 1 3.14159265 true 1073741824 This is a variable length char string This is a char string Это строка переменной длины в Юникоде Это строка в Юникоде 9.110000 7.620000 2016-01-12 08:20:06.823 2016-01-12 08:20:07.0000000
3
- 2 -12.333333 false 3132705829 This is another variable length char string This is another char string Это еще одна строка переменной длины в Юникоде Это еще одна строка в Юникоде -99.999000 -5.560000 2016-01-12 08:20:06.823 2016-01-12 08:20:06.8230000
1
+ int float bit bigint varchar char nvarchar nchar decimal numeric datetime datetime2 NULL varbinary binary timestamp money smallmoney date time smalldatetime datetimeoffset uniqueidentifier smallint real tinyint
2
+ 1 3.14159265 true 1073741824 This is a variable length char string This is a char string Это строка переменной длины в Юникоде Это строка в Юникоде 9.110000 7.620000 2016-01-25 12:50:15.000 2016-01-25 12:50:16.0000000 30313233343536373839 40414243000000000000 0000000000000fa0 123.4500 2.2300 2016-01-25 12:50:16.0000000 2016-01-25 12:50:00.000 2016-01-25 12:50:16.0000000+03:00 6f9619ff-8b86-d011-b42d-00c04fc964ff 30000 1343542784.0 200
3
+ -2 -12.333333 false -1162261467 This is another variable length char string This is another char string Это еще одна строка переменной длины в Юникоде Это еще одна строка в Юникоде -99.999000 -5.560000 2016-01-25 12:50:15.000 2016-01-25 12:50:15.0000000 39383736353433323130 43424140000000000000 0000000000000fa0 -123.4500 -2.2300 2016-01-25 12:50:15.0000000 2016-01-25 12:50:00.000 2016-01-25 05:20:15.0000000-04:30 ffefaa09-8b86-d011-b42d-00c04fc964ff -30000 -434046272.0 10
@@ -3,8 +3,8 @@
3
3
  "name": "int",
4
4
  "data_type": 3,
5
5
  "max_length": 4,
6
- "p2": 52,
7
- "p3": 0,
6
+ "p2": 228,
7
+ "p3": 24,
8
8
  "p4": -1,
9
9
  "precision": 0,
10
10
  "scale": 0,
@@ -16,8 +16,8 @@
16
16
  "name": "float",
17
17
  "data_type": 5,
18
18
  "max_length": 8,
19
- "p2": 56,
20
- "p3": 4,
19
+ "p2": 192,
20
+ "p3": 28,
21
21
  "p4": -1,
22
22
  "precision": 0,
23
23
  "scale": 0,
@@ -29,8 +29,8 @@
29
29
  "name": "bit",
30
30
  "data_type": 11,
31
31
  "max_length": 2,
32
- "p2": 256,
33
- "p3": 8,
32
+ "p2": 226,
33
+ "p3": 32,
34
34
  "p4": -1,
35
35
  "precision": 0,
36
36
  "scale": 0,
@@ -42,8 +42,8 @@
42
42
  "name": "bigint",
43
43
  "data_type": 20,
44
44
  "max_length": 8,
45
- "p2": 96,
46
- "p3": 12,
45
+ "p2": 200,
46
+ "p3": 36,
47
47
  "p4": -1,
48
48
  "precision": 0,
49
49
  "scale": 0,
@@ -55,8 +55,8 @@
55
55
  "name": "varchar",
56
56
  "data_type": 129,
57
57
  "max_length": 128,
58
- "p2": 108,
59
- "p3": 16,
58
+ "p2": 268,
59
+ "p3": 40,
60
60
  "p4": -1,
61
61
  "precision": 0,
62
62
  "scale": 0,
@@ -68,8 +68,8 @@
68
68
  "name": "char",
69
69
  "data_type": 129,
70
70
  "max_length": 128,
71
- "p2": 280,
72
- "p3": 20,
71
+ "p2": 428,
72
+ "p3": 44,
73
73
  "p4": -1,
74
74
  "precision": 0,
75
75
  "scale": 0,
@@ -81,8 +81,8 @@
81
81
  "name": "nvarchar",
82
82
  "data_type": 130,
83
83
  "max_length": 128,
84
- "p2": 412,
85
- "p3": 24,
84
+ "p2": 596,
85
+ "p3": 48,
86
86
  "p4": -1,
87
87
  "precision": 0,
88
88
  "scale": 0,
@@ -94,8 +94,8 @@
94
94
  "name": "nchar",
95
95
  "data_type": 130,
96
96
  "max_length": 128,
97
- "p2": 672,
98
- "p3": 28,
97
+ "p2": 856,
98
+ "p3": 52,
99
99
  "p4": -1,
100
100
  "precision": 0,
101
101
  "scale": 0,
@@ -107,8 +107,8 @@
107
107
  "name": "decimal",
108
108
  "data_type": 131,
109
109
  "max_length": 19,
110
- "p2": 237,
111
- "p3": 32,
110
+ "p2": 397,
111
+ "p3": 56,
112
112
  "p4": -1,
113
113
  "precision": 18,
114
114
  "scale": 6,
@@ -120,8 +120,8 @@
120
120
  "name": "numeric",
121
121
  "data_type": 131,
122
122
  "max_length": 19,
123
- "p2": 258,
124
- "p3": 36,
123
+ "p2": 557,
124
+ "p3": 60,
125
125
  "p4": -1,
126
126
  "precision": 18,
127
127
  "scale": 6,
@@ -133,8 +133,8 @@
133
133
  "name": "datetime",
134
134
  "data_type": 135,
135
135
  "max_length": 16,
136
- "p2": 64,
137
- "p3": 40,
136
+ "p2": 128,
137
+ "p3": 64,
138
138
  "p4": -1,
139
139
  "precision": 0,
140
140
  "scale": 0,
@@ -146,8 +146,8 @@
146
146
  "name": "datetime2",
147
147
  "data_type": 304,
148
148
  "max_length": 16,
149
- "p2": 80,
150
- "p3": 44,
149
+ "p2": 144,
150
+ "p3": 68,
151
151
  "p4": -1,
152
152
  "precision": 0,
153
153
  "scale": 7,
@@ -159,8 +159,177 @@
159
159
  "name": "NULL",
160
160
  "data_type": 3,
161
161
  "max_length": 4,
162
- "p2": 104,
163
- "p3": 48,
162
+ "p2": 264,
163
+ "p3": 72,
164
+ "p4": -1,
165
+ "precision": 0,
166
+ "scale": 0,
167
+ "code_page": 0,
168
+ "p8": null,
169
+ "p9": null
170
+ },
171
+ {
172
+ "name": "varbinary",
173
+ "data_type": 128,
174
+ "max_length": 10,
175
+ "p2": 216,
176
+ "p3": 76,
177
+ "p4": 0,
178
+ "precision": 0,
179
+ "scale": 0,
180
+ "code_page": 0,
181
+ "p8": null,
182
+ "p9": null
183
+ },
184
+ {
185
+ "name": "binary",
186
+ "data_type": 128,
187
+ "max_length": 10,
188
+ "p2": 232,
189
+ "p3": 80,
190
+ "p4": 8,
191
+ "precision": 0,
192
+ "scale": 0,
193
+ "code_page": 0,
194
+ "p8": null,
195
+ "p9": null
196
+ },
197
+ {
198
+ "name": "timestamp",
199
+ "data_type": 128,
200
+ "max_length": 8,
201
+ "p2": 208,
202
+ "p3": 84,
203
+ "p4": 16,
204
+ "precision": 0,
205
+ "scale": 0,
206
+ "code_page": 0,
207
+ "p8": null,
208
+ "p9": null
209
+ },
210
+ {
211
+ "name": "money",
212
+ "data_type": 6,
213
+ "max_length": 8,
214
+ "p2": 248,
215
+ "p3": 88,
216
+ "p4": -1,
217
+ "precision": 0,
218
+ "scale": 0,
219
+ "code_page": 0,
220
+ "p8": null,
221
+ "p9": null
222
+ },
223
+ {
224
+ "name": "smallmoney",
225
+ "data_type": 6,
226
+ "max_length": 8,
227
+ "p2": 256,
228
+ "p3": 92,
229
+ "p4": -1,
230
+ "precision": 0,
231
+ "scale": 0,
232
+ "code_page": 0,
233
+ "p8": null,
234
+ "p9": null
235
+ },
236
+ {
237
+ "name": "date",
238
+ "data_type": 133,
239
+ "max_length": 6,
240
+ "p2": 242,
241
+ "p3": 96,
242
+ "p4": -1,
243
+ "precision": 0,
244
+ "scale": 0,
245
+ "code_page": 0,
246
+ "p8": null,
247
+ "p9": null
248
+ },
249
+ {
250
+ "name": "time",
251
+ "data_type": 145,
252
+ "max_length": 12,
253
+ "p2": 416,
254
+ "p3": 100,
255
+ "p4": -1,
256
+ "precision": 0,
257
+ "scale": 7,
258
+ "code_page": 0,
259
+ "p8": null,
260
+ "p9": null
261
+ },
262
+ {
263
+ "name": "smalldatetime",
264
+ "data_type": 135,
265
+ "max_length": 16,
266
+ "p2": 160,
267
+ "p3": 104,
268
+ "p4": -1,
269
+ "precision": 0,
270
+ "scale": 0,
271
+ "code_page": 0,
272
+ "p8": null,
273
+ "p9": null
274
+ },
275
+ {
276
+ "name": "datetimeoffset",
277
+ "data_type": 146,
278
+ "max_length": 20,
279
+ "p2": 576,
280
+ "p3": 108,
281
+ "p4": -1,
282
+ "precision": 0,
283
+ "scale": 7,
284
+ "code_page": 0,
285
+ "p8": null,
286
+ "p9": null
287
+ },
288
+ {
289
+ "name": "uniqueidentifier",
290
+ "data_type": 72,
291
+ "max_length": 16,
292
+ "p2": 176,
293
+ "p3": 112,
294
+ "p4": -1,
295
+ "precision": 0,
296
+ "scale": 0,
297
+ "code_page": 0,
298
+ "p8": null,
299
+ "p9": null
300
+ },
301
+ {
302
+ "name": "smallint",
303
+ "data_type": 2,
304
+ "max_length": 2,
305
+ "p2": 1116,
306
+ "p3": 116,
307
+ "p4": -1,
308
+ "precision": 0,
309
+ "scale": 0,
310
+ "code_page": 0,
311
+ "p8": null,
312
+ "p9": null
313
+ },
314
+ {
315
+ "name": "real",
316
+ "data_type": 4,
317
+ "max_length": 4,
318
+ "p2": 1120,
319
+ "p3": 120,
320
+ "p4": -1,
321
+ "precision": 0,
322
+ "scale": 0,
323
+ "code_page": 0,
324
+ "p8": null,
325
+ "p9": null
326
+ },
327
+ {
328
+ "name": "tinyint",
329
+ "data_type": 17,
330
+ "max_length": 1,
331
+ "p2": 854,
332
+ "p3": 124,
164
333
  "p4": -1,
165
334
  "precision": 0,
166
335
  "scale": 0,
data/fixtures/sql11.raw CHANGED
Binary file
@@ -1,3 +1,3 @@
1
- int float bit bigint varchar char nvarchar nchar decimal numeric datetime datetime2 NULL
2
- 1 3.14159265 true 1073741824 This is a variable length char string This is a char string Это строка переменной длины в Юникоде Это строка в Юникоде 9.110000 7.620000 2016-01-12 08:41:00.637 2016-01-12 08:41:01.0000000
3
- 2 -12.333333 false 3132705829 This is another variable length char string This is another char string Это еще одна строка переменной длины в Юникоде Это еще одна строка в Юникоде -99.999000 -5.560000 2016-01-12 08:41:00.637 2016-01-12 08:41:00.6370000
1
+ int float bit bigint varchar char nvarchar nchar decimal numeric datetime datetime2 NULL varbinary binary timestamp money smallmoney date time smalldatetime datetimeoffset uniqueidentifier smallint real tinyint
2
+ 1 3.14159265 true 1073741824 This is a variable length char string This is a char string Это строка переменной длины в Юникоде Это строка в Юникоде 9.110000 7.620000 2016-01-25 17:46:53.689 2016-01-25 17:46:54.0000000 30313233343536373839 40414243000000000000 0000000000000fa0 123.4500 2.2300 2016-01-25 17:46:54.0000000 2016-01-25 17:47:00.000 2016-01-25 17:46:54.0000000+03:00 6f9619ff-8b86-d011-b42d-00c04fc964ff 30000 1343542784.0 200
3
+ -2 -12.333333 false -1162261467 This is another variable length char string This is another char string Это еще одна строка переменной длины в Юникоде Это еще одна строка в Юникоде -99.999000 -5.560000 2016-01-25 17:46:53.689 2016-01-25 17:46:53.6927070 39383736353433323130 43424140000000000000 0000000000000fa0 -123.4500 -2.2300 2016-01-25 17:46:53.6899999 2016-01-25 17:47:00.000 2016-01-25 10:16:53.6927070-04:30 ffefaa09-8b86-d011-b42d-00c04fc964ff -30000 -434046272.0 10
@@ -3,8 +3,8 @@
3
3
  "name": "int",
4
4
  "data_type": 3,
5
5
  "max_length": 4,
6
- "p2": 52,
7
- "p3": 0,
6
+ "p2": 228,
7
+ "p3": 24,
8
8
  "p4": -1,
9
9
  "precision": 0,
10
10
  "scale": 0,
@@ -16,8 +16,8 @@
16
16
  "name": "float",
17
17
  "data_type": 5,
18
18
  "max_length": 8,
19
- "p2": 56,
20
- "p3": 4,
19
+ "p2": 192,
20
+ "p3": 28,
21
21
  "p4": -1,
22
22
  "precision": 0,
23
23
  "scale": 0,
@@ -29,8 +29,8 @@
29
29
  "name": "bit",
30
30
  "data_type": 11,
31
31
  "max_length": 2,
32
- "p2": 256,
33
- "p3": 8,
32
+ "p2": 226,
33
+ "p3": 32,
34
34
  "p4": -1,
35
35
  "precision": 0,
36
36
  "scale": 0,
@@ -42,8 +42,8 @@
42
42
  "name": "bigint",
43
43
  "data_type": 20,
44
44
  "max_length": 8,
45
- "p2": 96,
46
- "p3": 12,
45
+ "p2": 200,
46
+ "p3": 36,
47
47
  "p4": -1,
48
48
  "precision": 0,
49
49
  "scale": 0,
@@ -55,8 +55,8 @@
55
55
  "name": "varchar",
56
56
  "data_type": 129,
57
57
  "max_length": 128,
58
- "p2": 108,
59
- "p3": 16,
58
+ "p2": 268,
59
+ "p3": 40,
60
60
  "p4": -1,
61
61
  "precision": 0,
62
62
  "scale": 0,
@@ -68,8 +68,8 @@
68
68
  "name": "char",
69
69
  "data_type": 129,
70
70
  "max_length": 128,
71
- "p2": 280,
72
- "p3": 20,
71
+ "p2": 428,
72
+ "p3": 44,
73
73
  "p4": -1,
74
74
  "precision": 0,
75
75
  "scale": 0,
@@ -81,8 +81,8 @@
81
81
  "name": "nvarchar",
82
82
  "data_type": 130,
83
83
  "max_length": 128,
84
- "p2": 412,
85
- "p3": 24,
84
+ "p2": 596,
85
+ "p3": 48,
86
86
  "p4": -1,
87
87
  "precision": 0,
88
88
  "scale": 0,
@@ -94,8 +94,8 @@
94
94
  "name": "nchar",
95
95
  "data_type": 130,
96
96
  "max_length": 128,
97
- "p2": 672,
98
- "p3": 28,
97
+ "p2": 856,
98
+ "p3": 52,
99
99
  "p4": -1,
100
100
  "precision": 0,
101
101
  "scale": 0,
@@ -107,8 +107,8 @@
107
107
  "name": "decimal",
108
108
  "data_type": 131,
109
109
  "max_length": 19,
110
- "p2": 237,
111
- "p3": 32,
110
+ "p2": 397,
111
+ "p3": 56,
112
112
  "p4": -1,
113
113
  "precision": 18,
114
114
  "scale": 6,
@@ -120,8 +120,8 @@
120
120
  "name": "numeric",
121
121
  "data_type": 131,
122
122
  "max_length": 19,
123
- "p2": 258,
124
- "p3": 36,
123
+ "p2": 557,
124
+ "p3": 60,
125
125
  "p4": -1,
126
126
  "precision": 18,
127
127
  "scale": 6,
@@ -133,8 +133,8 @@
133
133
  "name": "datetime",
134
134
  "data_type": 135,
135
135
  "max_length": 16,
136
- "p2": 64,
137
- "p3": 40,
136
+ "p2": 128,
137
+ "p3": 64,
138
138
  "p4": -1,
139
139
  "precision": 0,
140
140
  "scale": 0,
@@ -146,8 +146,8 @@
146
146
  "name": "datetime2",
147
147
  "data_type": 304,
148
148
  "max_length": 16,
149
- "p2": 80,
150
- "p3": 44,
149
+ "p2": 144,
150
+ "p3": 68,
151
151
  "p4": -1,
152
152
  "precision": 0,
153
153
  "scale": 7,
@@ -159,8 +159,177 @@
159
159
  "name": "NULL",
160
160
  "data_type": 3,
161
161
  "max_length": 4,
162
- "p2": 104,
163
- "p3": 48,
162
+ "p2": 264,
163
+ "p3": 72,
164
+ "p4": -1,
165
+ "precision": 0,
166
+ "scale": 0,
167
+ "code_page": 0,
168
+ "p8": 0,
169
+ "p9": 0
170
+ },
171
+ {
172
+ "name": "varbinary",
173
+ "data_type": 128,
174
+ "max_length": 10,
175
+ "p2": 216,
176
+ "p3": 76,
177
+ "p4": 0,
178
+ "precision": 0,
179
+ "scale": 0,
180
+ "code_page": 0,
181
+ "p8": 0,
182
+ "p9": 0
183
+ },
184
+ {
185
+ "name": "binary",
186
+ "data_type": 128,
187
+ "max_length": 10,
188
+ "p2": 232,
189
+ "p3": 80,
190
+ "p4": 8,
191
+ "precision": 0,
192
+ "scale": 0,
193
+ "code_page": 0,
194
+ "p8": 0,
195
+ "p9": 0
196
+ },
197
+ {
198
+ "name": "timestamp",
199
+ "data_type": 128,
200
+ "max_length": 8,
201
+ "p2": 208,
202
+ "p3": 84,
203
+ "p4": 16,
204
+ "precision": 0,
205
+ "scale": 0,
206
+ "code_page": 0,
207
+ "p8": 0,
208
+ "p9": 0
209
+ },
210
+ {
211
+ "name": "money",
212
+ "data_type": 6,
213
+ "max_length": 8,
214
+ "p2": 248,
215
+ "p3": 88,
216
+ "p4": -1,
217
+ "precision": 0,
218
+ "scale": 0,
219
+ "code_page": 0,
220
+ "p8": 0,
221
+ "p9": 0
222
+ },
223
+ {
224
+ "name": "smallmoney",
225
+ "data_type": 6,
226
+ "max_length": 8,
227
+ "p2": 256,
228
+ "p3": 92,
229
+ "p4": -1,
230
+ "precision": 0,
231
+ "scale": 0,
232
+ "code_page": 0,
233
+ "p8": 0,
234
+ "p9": 0
235
+ },
236
+ {
237
+ "name": "date",
238
+ "data_type": 133,
239
+ "max_length": 6,
240
+ "p2": 242,
241
+ "p3": 96,
242
+ "p4": -1,
243
+ "precision": 0,
244
+ "scale": 0,
245
+ "code_page": 0,
246
+ "p8": 0,
247
+ "p9": 0
248
+ },
249
+ {
250
+ "name": "time",
251
+ "data_type": 145,
252
+ "max_length": 12,
253
+ "p2": 416,
254
+ "p3": 100,
255
+ "p4": -1,
256
+ "precision": 0,
257
+ "scale": 7,
258
+ "code_page": 0,
259
+ "p8": 0,
260
+ "p9": 0
261
+ },
262
+ {
263
+ "name": "smalldatetime",
264
+ "data_type": 135,
265
+ "max_length": 16,
266
+ "p2": 160,
267
+ "p3": 104,
268
+ "p4": -1,
269
+ "precision": 0,
270
+ "scale": 0,
271
+ "code_page": 0,
272
+ "p8": 0,
273
+ "p9": 0
274
+ },
275
+ {
276
+ "name": "datetimeoffset",
277
+ "data_type": 146,
278
+ "max_length": 20,
279
+ "p2": 576,
280
+ "p3": 108,
281
+ "p4": -1,
282
+ "precision": 0,
283
+ "scale": 7,
284
+ "code_page": 0,
285
+ "p8": 0,
286
+ "p9": 0
287
+ },
288
+ {
289
+ "name": "uniqueidentifier",
290
+ "data_type": 72,
291
+ "max_length": 16,
292
+ "p2": 176,
293
+ "p3": 112,
294
+ "p4": -1,
295
+ "precision": 0,
296
+ "scale": 0,
297
+ "code_page": 0,
298
+ "p8": 0,
299
+ "p9": 0
300
+ },
301
+ {
302
+ "name": "smallint",
303
+ "data_type": 2,
304
+ "max_length": 2,
305
+ "p2": 1116,
306
+ "p3": 116,
307
+ "p4": -1,
308
+ "precision": 0,
309
+ "scale": 0,
310
+ "code_page": 0,
311
+ "p8": 0,
312
+ "p9": 0
313
+ },
314
+ {
315
+ "name": "real",
316
+ "data_type": 4,
317
+ "max_length": 4,
318
+ "p2": 1120,
319
+ "p3": 120,
320
+ "p4": -1,
321
+ "precision": 0,
322
+ "scale": 0,
323
+ "code_page": 0,
324
+ "p8": 0,
325
+ "p9": 0
326
+ },
327
+ {
328
+ "name": "tinyint",
329
+ "data_type": 17,
330
+ "max_length": 1,
331
+ "p2": 854,
332
+ "p3": 124,
164
333
  "p4": -1,
165
334
  "precision": 0,
166
335
  "scale": 0,
@@ -3,5 +3,5 @@
3
3
  # SqlServerDts module
4
4
  module SqlServerDts
5
5
  # current version
6
- VERSION = '0.1.1'
6
+ VERSION = '0.1.2'
7
7
  end
@@ -112,30 +112,53 @@ class SqlServerDts::RawFile
112
112
  nil
113
113
  else
114
114
  case field_info[:data_type]
115
+ when 2 # smallint
116
+ @raw_io.read(get_len(field_info)).unpack('s')[0]
115
117
  when 3 # int, NULL w/o cast
116
- @raw_io.read(field_info[:max_length]).unpack('I')[0]
118
+ @raw_io.read(get_len(field_info)).unpack('i')[0]
119
+ when 4 # real (float(24))
120
+ @raw_io.read(get_len(field_info)).unpack('f')[0]
117
121
  when 5 # float
118
- @raw_io.read(field_info[:max_length]).unpack('D')[0]
122
+ @raw_io.read(get_len(field_info)).unpack('d')[0]
123
+ when 6 # money (decimal(19,4)), smallmoney ((decimal(10,4)))
124
+ values_arr = @raw_io.read(get_len(field_info)).unpack('q')
125
+ "#{values_arr[0].to_s.insert((values_arr[0].to_s.length-4), '.')}"
119
126
  when 11 # bit
120
- (@raw_io.read(field_info[:max_length]).unpack('B')[0] == '1') ? true : false
127
+ (@raw_io.read(get_len(field_info)).unpack('B')[0] == '1') ? true : false
128
+ when 17 # tinyint
129
+ @raw_io.read(get_len(field_info)).unpack('C')[0]
121
130
  when 20 # bigint
122
- @raw_io.read(field_info[:max_length]).unpack('L')[0]
131
+ @raw_io.read(get_len(field_info)).unpack('q')[0]
132
+ when 72 # uniqueidentifier
133
+ uid_arr = @raw_io.read(get_len(field_info)).unpack('H2'*get_len(field_info))
134
+ uid_arr[0..3].reverse.join+'-'+uid_arr[4..5].reverse.join+'-'+uid_arr[6..7].reverse.join+'-'+uid_arr[8..9].join+'-'+uid_arr[10..-1].join
135
+ when 128 # varbinary, binary, timestamp
136
+ data_len = get_len
137
+ @raw_io.read(data_len).unpack('H2'*data_len).join
123
138
  when 129 # varchar, char
124
- data_len = @raw_io.read(4).unpack('I')[0]
139
+ data_len = get_len
125
140
  @raw_io.read(data_len).encode({invalid: :replace, undef: :replace})
126
141
  when 130 # nvarchar, nchar
127
- data_len = @raw_io.read(4).unpack('I')[0]
128
- @raw_io.read(data_len*2).encode(DEFAULT_ENCODING, DEFAULT_RAW_FILE_ENCODING, {invalid: :replace, undef: :replace})
142
+ @raw_io.read(get_len*2).encode(DEFAULT_ENCODING, DEFAULT_RAW_FILE_ENCODING, {invalid: :replace, undef: :replace})
129
143
  when 131 # numeric, decimal
130
144
  # precision, scale, sign, value
131
- values_arr = @raw_io.read(field_info[:max_length]).unpack('C3Q')
145
+ values_arr = @raw_io.read(get_len(field_info)).unpack('C3Q')
132
146
  "#{('-' if values_arr[2] == 0)}#{values_arr[3].to_s.insert((values_arr[3].to_s.length-values_arr[1]), '.')}"
133
- when 135 # datetime
134
- values_arr = @raw_io.read(field_info[:max_length]).unpack('S6I')
135
- Time.local(values_arr[0], values_arr[1], values_arr[2], values_arr[3], values_arr[4], values_arr[5], (values_arr[6].to_f/1000.0)).strftime('%F %T.%L')
147
+ when 133 # date
148
+ values_arr = @raw_io.read(get_len(field_info)).unpack('S3')
149
+ Date.new(values_arr[0], values_arr[1], values_arr[2])
150
+ when 135 # datetime, smalldatetime
151
+ values_arr = @raw_io.read(get_len(field_info)).unpack('S6I')
152
+ Time.local(values_arr[0], values_arr[1], values_arr[2], values_arr[3], values_arr[4], "#{values_arr[5]}.#{values_arr[6]}".to_f).strftime('%F %T.%L')
153
+ when 145 # time
154
+ values_arr = @raw_io.read(10).unpack('S3I')
155
+ Time.local(Time.now.year, Time.now.month, Time.now.day, values_arr[0], values_arr[1], "#{values_arr[2]}.#{values_arr[3]}".to_f).strftime("%T.%#{field_info[:scale]}N")
156
+ when 146 # datetimeoffset
157
+ values_arr = @raw_io.read(get_len(field_info)).unpack('S6Is2')
158
+ Time.new(values_arr[0], values_arr[1], values_arr[2], values_arr[3], values_arr[4], "#{values_arr[5]}.#{values_arr[6]}".to_f,format('%+03d:%02d',values_arr[7],values_arr[8].abs)).strftime("%F %T.%#{field_info[:scale]}N%:z")
136
159
  when 304 # datetime2
137
- values_arr = @raw_io.read(field_info[:max_length]).unpack('S6I')
138
- Time.local(values_arr[0], values_arr[1], values_arr[2], values_arr[3], values_arr[4], values_arr[5], (values_arr[6].to_f/1000.0)).strftime("%F %T.%#{field_info[:scale]}N")
160
+ values_arr = @raw_io.read(get_len(field_info)).unpack('S6I')
161
+ Time.local(values_arr[0], values_arr[1], values_arr[2], values_arr[3], values_arr[4], "#{values_arr[5]}.#{values_arr[6]}".to_f).strftime("%F %T.%#{field_info[:scale]}N")
139
162
  else
140
163
  raise UnknownDataTypeError, "Unknown data type #{field_info[:data_type]}"
141
164
  end
@@ -149,6 +172,15 @@ class SqlServerDts::RawFile
149
172
  end
150
173
  end
151
174
 
175
+ # get field data len by metadata or from stream
176
+ def get_len(field_info=nil)
177
+ if field_info.nil?
178
+ @raw_io.read(4).unpack('I')[0]
179
+ else
180
+ field_info[:max_length]
181
+ end
182
+ end
183
+
152
184
  # get metadata (header) of raw file
153
185
  #
154
186
  # @return [Array] Array of hash of fields metadata
@@ -175,4 +207,6 @@ class SqlServerDts::RawFile
175
207
  def pos
176
208
  @raw_io.pos
177
209
  end
210
+
211
+ private :get_len
178
212
  end
@@ -37,7 +37,7 @@ puts '=== END HEADER ==='
37
37
  init_pos = raw_obj.pos
38
38
  # need to close inner IO-stream object
39
39
  raw_obj.close
40
-
40
+ #exit
41
41
  # show data of raw file in rows table and convert it into hash and save it as csv-file
42
42
  # signature: new(path,init_pos)
43
43
  # @param path [String] Path to raw file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sql-server-raw-file
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitriy Mullo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-20 00:00:00.000000000 Z
11
+ date: 2016-02-03 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Converts SQL Server Integration Services Raw File source to hash.
14
14
  email:
@@ -21,8 +21,8 @@ files:
21
21
  - LICENSE.md
22
22
  - README.md
23
23
  - fixtures/current_sql_index
24
- - fixtures/select-fixture-data-SQL_Server_90.sql
25
- - fixtures/select-fixture-data.sql
24
+ - fixtures/select-fixture-data-SQL_Server10_11.sql
25
+ - fixtures/select-fixture-data-SQL_Server_9.sql
26
26
  - fixtures/sql09.raw
27
27
  - fixtures/sql09_data.csv
28
28
  - fixtures/sql09_header.json
@@ -1,3 +0,0 @@
1
- select cast(1 as int) [int], cast(3.14159265 as float) [float], cast(1 as bit) [bit], cast(POWER(2,30) as bigint) [bigint], cast('This is a variable length char string' as varchar(128)) [varchar], cast('This is a char string' as char(128)) [char], cast('��� ������ ���������� ����� � �������' as nvarchar(128)) [nvarchar], cast('��� ������ � �������' as nchar(128)) [nchar], cast(9.11 as decimal(18,6)) [decimal], cast(7.62 as numeric(18,6)) [numeric], getdate() [datetime], NULL [datetime2], NULL AS [NULL]
2
- UNION ALL
3
- select cast(2 as int) [int], cast(-37.0/3.0 as float) [float], cast(0 as bit) [bit], cast(-POWER(3,19) as bigint) [bigint], cast('This is another variable length char string' as varchar(128)) [varchar], cast('This is another char string' as char(128)) [char], cast('��� ��� ���� ������ ���������� ����� � �������' as nvarchar(128)) [nvarchar], cast('��� ��� ���� ������ � �������' as nchar(128)) [nchar], cast(-99.999 as decimal(18,6)) [decimal], cast(-5.56 as numeric(18,6)) [numeric], getdate() [datetime], NULL [datetime2], NULL AS [NULL]
@@ -1,3 +0,0 @@
1
- select cast(1 as int) [int], cast(3.14159265 as float) [float], cast(1 as bit) [bit], cast(POWER(2,30) as bigint) [bigint], cast('This is a variable length char string' as varchar(128)) [varchar], cast('This is a char string' as char(128)) [char], cast('��� ������ ���������� ����� � �������' as nvarchar(128)) [nvarchar], cast('��� ������ � �������' as nchar(128)) [nchar], cast(9.11 as decimal(18,6)) [decimal], cast(7.62 as numeric(18,6)) [numeric], getdate() [datetime], CAST(GETDATE() AS DATETIME2(0)) [datetime2], NULL AS [NULL]
2
- UNION ALL
3
- select cast(2 as int) [int], cast(-37.0/3.0 as float) [float], cast(0 as bit) [bit], cast(-POWER(3,19) as bigint) [bigint], cast('This is another variable length char string' as varchar(128)) [varchar], cast('This is another char string' as char(128)) [char], cast('��� ��� ���� ������ ���������� ����� � �������' as nvarchar(128)) [nvarchar], cast('��� ��� ���� ������ � �������' as nchar(128)) [nchar], cast(-99.999 as decimal(18,6)) [decimal], cast(-5.56 as numeric(18,6)) [numeric], getdate() [datetime], CAST(GETDATE() AS DATETIME2(7)) [datetime2], NULL AS [NULL]