@@ -16,14 +16,15 @@ import (
16
16
func read (ctx context.Context , c query.Client , prefix string ) error {
17
17
return c .Do (ctx ,
18
18
func (ctx context.Context , s query.Session ) (err error ) {
19
- result , err := s .Query (ctx , `
19
+ result , err := s .Query (ctx , fmt . Sprintf ( `
20
20
SELECT
21
21
series_id,
22
22
title,
23
23
release_date
24
24
FROM
25
- series
26
- ` , query .WithTxControl (query .TxControl (query .BeginTx (query .WithSnapshotReadOnly ()))),
25
+ %s
26
+ ` , "`" + path .Join (prefix , "series" )+ "`" ),
27
+ query .WithTxControl (query .TxControl (query .BeginTx (query .WithSnapshotReadOnly ()))),
27
28
)
28
29
if err != nil {
29
30
return err
@@ -73,126 +74,138 @@ func read(ctx context.Context, c query.Client, prefix string) error {
73
74
func fillTablesWithData (ctx context.Context , c query.Client , prefix string ) error {
74
75
series , seasons , episodes := getData ()
75
76
76
- return c .Do (ctx ,
77
- func (ctx context.Context , s query.Session ) (err error ) {
78
- return s .Exec (ctx ,
79
- fmt .Sprintf (`
80
- PRAGMA TablePathPrefix("%s");
81
-
82
- DECLARE $seriesData AS List<Struct<
83
- series_id: Bytes,
84
- title: Text,
85
- series_info: Text,
86
- release_date: Date,
87
- comment: Optional<Text>>>;
88
-
89
- DECLARE $seasonsData AS List<Struct<
90
- series_id: Bytes,
91
- season_id: Bytes,
92
- title: Text,
93
- first_aired: Date,
94
- last_aired: Date>>;
95
-
96
- DECLARE $episodesData AS List<Struct<
97
- series_id: Bytes,
98
- season_id: Bytes,
99
- episode_id: Bytes,
100
- title: Text,
101
- air_date: Date>>;
102
-
103
- REPLACE INTO series
104
- SELECT
105
- series_id,
106
- title,
107
- series_info,
108
- release_date,
109
- comment
110
- FROM AS_TABLE($seriesData);
111
-
112
- REPLACE INTO seasons
113
- SELECT
114
- series_id,
115
- season_id,
116
- title,
117
- first_aired,
118
- last_aired
119
- FROM AS_TABLE($seasonsData);
120
-
121
- REPLACE INTO episodes
122
- SELECT
123
- series_id,
124
- season_id,
125
- episode_id,
126
- title,
127
- air_date
128
- FROM AS_TABLE($episodesData);
129
- ` , prefix ),
130
- query .WithParameters (ydb .ParamsBuilder ().
131
- Param ("$seriesData" ).BeginList ().AddItems (series ... ).EndList ().
132
- Param ("$seasonsData" ).BeginList ().AddItems (seasons ... ).EndList ().
133
- Param ("$episodesData" ).BeginList ().AddItems (episodes ... ).EndList ().
134
- Build (),
135
- ),
136
- )
137
- },
77
+ err := c .Exec (ctx , fmt .Sprintf (`
78
+ DECLARE $seriesData AS List<Struct<
79
+ series_id: Bytes,
80
+ title: Text,
81
+ series_info: Text,
82
+ release_date: Date,
83
+ comment: Optional<Text>>>;
84
+
85
+ REPLACE INTO %s
86
+ SELECT
87
+ series_id,
88
+ title,
89
+ series_info,
90
+ release_date,
91
+ comment
92
+ FROM AS_TABLE($seriesData);` ,
93
+ "`" + path .Join (prefix , "series" )+ "`" ),
94
+ query .WithParameters (ydb .ParamsBuilder ().
95
+ Param ("$seriesData" ).
96
+ BeginList ().AddItems (series ... ).EndList ().
97
+ Build (),
98
+ ),
99
+ )
100
+ if err != nil {
101
+ return err
102
+ }
103
+
104
+ err = c .Exec (ctx , fmt .Sprintf (`
105
+ DECLARE $seasonsData AS List<Struct<
106
+ series_id: Bytes,
107
+ season_id: Bytes,
108
+ title: Text,
109
+ first_aired: Date,
110
+ last_aired: Date>>;
111
+
112
+ REPLACE INTO %s
113
+ SELECT
114
+ series_id,
115
+ season_id,
116
+ title,
117
+ first_aired,
118
+ last_aired
119
+ FROM AS_TABLE($seasonsData);` ,
120
+ "`" + path .Join (prefix , "seasons" )+ "`" ),
121
+ query .WithParameters (ydb .ParamsBuilder ().
122
+ Param ("$seasonsData" ).
123
+ BeginList ().AddItems (seasons ... ).EndList ().
124
+ Build (),
125
+ ),
138
126
)
127
+ if err != nil {
128
+ return err
129
+ }
130
+
131
+ err = c .Exec (ctx , fmt .Sprintf (`
132
+ DECLARE $episodesData AS List<Struct<
133
+ series_id: Bytes,
134
+ season_id: Bytes,
135
+ episode_id: Bytes,
136
+ title: Text,
137
+ air_date: Date>>;
138
+
139
+ REPLACE INTO %s
140
+ SELECT
141
+ series_id,
142
+ season_id,
143
+ episode_id,
144
+ title,
145
+ air_date
146
+ FROM AS_TABLE($episodesData);` ,
147
+ "`" + path .Join (prefix , "episodes" )+ "`" ),
148
+ query .WithParameters (ydb .ParamsBuilder ().
149
+ Param ("$episodesData" ).
150
+ BeginList ().AddItems (episodes ... ).EndList ().
151
+ Build (),
152
+ ),
153
+ )
154
+ if err != nil {
155
+ return err
156
+ }
157
+
158
+ return nil
139
159
}
140
160
141
161
func createTables (ctx context.Context , c query.Client , prefix string ) error {
142
- return c .Do (ctx ,
143
- func (ctx context.Context , s query.Session ) error {
144
- err := s .Exec (ctx , fmt .Sprintf (`
145
- CREATE TABLE IF NOT EXISTS %s (
146
- series_id Bytes,
147
- title Text,
148
- series_info Text,
149
- release_date Date,
150
- comment Text,
151
-
152
- PRIMARY KEY(series_id)
153
- )
154
- ` , "`" + path .Join (prefix , "series" )+ "`" ),
155
- query .WithTxControl (query .NoTx ()),
156
- )
157
- if err != nil {
158
- return err
159
- }
160
-
161
- err = s .Exec (ctx , fmt .Sprintf (`
162
- CREATE TABLE IF NOT EXISTS %s (
163
- series_id Bytes,
164
- season_id Bytes,
165
- title Text,
166
- first_aired Date,
167
- last_aired Date,
168
-
169
- PRIMARY KEY(series_id,season_id)
170
- )
171
- ` , "`" + path .Join (prefix , "seasons" )+ "`" ),
172
- query .WithTxControl (query .NoTx ()),
173
- )
174
- if err != nil {
175
- return err
176
- }
162
+ err := c .Exec (ctx , fmt .Sprintf (`
163
+ CREATE TABLE IF NOT EXISTS %s (
164
+ series_id Bytes,
165
+ title Text,
166
+ series_info Text,
167
+ release_date Date,
168
+ comment Text,
169
+
170
+ PRIMARY KEY(series_id)
171
+ )` , "`" + path .Join (prefix , "series" )+ "`" ),
172
+ query .WithTxControl (query .NoTx ()),
173
+ )
174
+ if err != nil {
175
+ return err
176
+ }
177
177
178
- err = s .Exec (ctx , fmt .Sprintf (`
179
- CREATE TABLE IF NOT EXISTS %s (
180
- series_id Bytes,
181
- season_id Bytes,
182
- episode_id Bytes,
183
- title Text,
184
- air_date Date,
185
-
186
- PRIMARY KEY(series_id,season_id,episode_id)
187
- )
188
- ` , "`" + path .Join (prefix , "episodes" )+ "`" ),
189
- query .WithTxControl (query .NoTx ()),
190
- )
191
- if err != nil {
192
- return err
193
- }
178
+ err = c .Exec (ctx , fmt .Sprintf (`
179
+ CREATE TABLE IF NOT EXISTS %s (
180
+ series_id Bytes,
181
+ season_id Bytes,
182
+ title Text,
183
+ first_aired Date,
184
+ last_aired Date,
185
+
186
+ PRIMARY KEY(series_id,season_id)
187
+ )` , "`" + path .Join (prefix , "seasons" )+ "`" ),
188
+ query .WithTxControl (query .NoTx ()),
189
+ )
190
+ if err != nil {
191
+ return err
192
+ }
194
193
195
- return nil
196
- },
194
+ err = c .Exec (ctx , fmt .Sprintf (`
195
+ CREATE TABLE IF NOT EXISTS %s (
196
+ series_id Bytes,
197
+ season_id Bytes,
198
+ episode_id Bytes,
199
+ title Text,
200
+ air_date Date,
201
+
202
+ PRIMARY KEY(series_id,season_id,episode_id)
203
+ )` , "`" + path .Join (prefix , "episodes" )+ "`" ),
204
+ query .WithTxControl (query .NoTx ()),
197
205
)
206
+ if err != nil {
207
+ return err
208
+ }
209
+
210
+ return nil
198
211
}
0 commit comments