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 +4 -4
- data/CHANGELOG.md +27 -0
- data/fixtures/current_sql_index +1 -1
- data/fixtures/select-fixture-data-SQL_Server10_11.sql +53 -0
- data/fixtures/select-fixture-data-SQL_Server_9.sql +53 -0
- data/fixtures/sql09.raw +0 -0
- data/fixtures/sql09_data.csv +3 -3
- data/fixtures/sql09_header.json +195 -26
- data/fixtures/sql10.raw +0 -0
- data/fixtures/sql10_data.csv +3 -3
- data/fixtures/sql10_header.json +195 -26
- data/fixtures/sql11.raw +0 -0
- data/fixtures/sql11_data.csv +3 -3
- data/fixtures/sql11_header.json +195 -26
- data/lib/sql_server_dts_ns.rb +1 -1
- data/lib/sql_server_raw_file.rb +47 -13
- data/test/test_sql_data_and_header.rb +1 -1
- metadata +4 -4
- data/fixtures/select-fixture-data-SQL_Server_90.sql +0 -3
- data/fixtures/select-fixture-data.sql +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 97dd8f35e8d1d64c91adf9164cc279a48963aeb2
|
4
|
+
data.tar.gz: 2652ef2a7206d844246345042df4b59e5ab29727
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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:
|
data/fixtures/current_sql_index
CHANGED
@@ -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
|
data/fixtures/sql09_data.csv
CHANGED
@@ -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-
|
3
|
-
2 -12.333333 false
|
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
|
data/fixtures/sql09_header.json
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
"name": "int",
|
4
4
|
"data_type": 3,
|
5
5
|
"max_length": 4,
|
6
|
-
"p2":
|
7
|
-
"p3":
|
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":
|
20
|
-
"p3":
|
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":
|
33
|
-
"p3":
|
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":
|
46
|
-
"p3":
|
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":
|
59
|
-
"p3":
|
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":
|
72
|
-
"p3":
|
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":
|
85
|
-
"p3":
|
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":
|
98
|
-
"p3":
|
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":
|
111
|
-
"p3":
|
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":
|
124
|
-
"p3":
|
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":
|
137
|
-
"p3":
|
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":
|
150
|
-
"p3":
|
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":
|
163
|
-
"p3":
|
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
|
data/fixtures/sql10_data.csv
CHANGED
@@ -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
|
3
|
-
2 -12.333333 false
|
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
|
data/fixtures/sql10_header.json
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
"name": "int",
|
4
4
|
"data_type": 3,
|
5
5
|
"max_length": 4,
|
6
|
-
"p2":
|
7
|
-
"p3":
|
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":
|
20
|
-
"p3":
|
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":
|
33
|
-
"p3":
|
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":
|
46
|
-
"p3":
|
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":
|
59
|
-
"p3":
|
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":
|
72
|
-
"p3":
|
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":
|
85
|
-
"p3":
|
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":
|
98
|
-
"p3":
|
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":
|
111
|
-
"p3":
|
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":
|
124
|
-
"p3":
|
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":
|
137
|
-
"p3":
|
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":
|
150
|
-
"p3":
|
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":
|
163
|
-
"p3":
|
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
|
data/fixtures/sql11_data.csv
CHANGED
@@ -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-
|
3
|
-
2 -12.333333 false
|
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
|
data/fixtures/sql11_header.json
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
"name": "int",
|
4
4
|
"data_type": 3,
|
5
5
|
"max_length": 4,
|
6
|
-
"p2":
|
7
|
-
"p3":
|
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":
|
20
|
-
"p3":
|
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":
|
33
|
-
"p3":
|
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":
|
46
|
-
"p3":
|
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":
|
59
|
-
"p3":
|
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":
|
72
|
-
"p3":
|
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":
|
85
|
-
"p3":
|
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":
|
98
|
-
"p3":
|
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":
|
111
|
-
"p3":
|
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":
|
124
|
-
"p3":
|
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":
|
137
|
-
"p3":
|
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":
|
150
|
-
"p3":
|
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":
|
163
|
-
"p3":
|
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,
|
data/lib/sql_server_dts_ns.rb
CHANGED
data/lib/sql_server_raw_file.rb
CHANGED
@@ -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
|
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
|
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
|
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
|
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 =
|
139
|
+
data_len = get_len
|
125
140
|
@raw_io.read(data_len).encode({invalid: :replace, undef: :replace})
|
126
141
|
when 130 # nvarchar, nchar
|
127
|
-
|
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
|
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
|
134
|
-
values_arr = @raw_io.read(field_info
|
135
|
-
|
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
|
138
|
-
Time.local(values_arr[0], values_arr[1], values_arr[2], values_arr[3], values_arr[4], values_arr[5]
|
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.
|
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-
|
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-
|
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]
|