@@ -61,7 +61,7 @@ func (r *ListTablesRawResponse) ListTables() ([]Table, error) {
6161
6262const tableListCursorSep = "\x00 "
6363
64- func (c * Client ) ListTablesInAccount (ctx context.Context , cursor string , limit int ) ([]Table , string , * http. Response , error ) {
64+ func (c * Client ) ListTablesInAccount (ctx context.Context , cursor string , limit int ) ([]Table , string , error ) {
6565 l := ctxzap .Extract (ctx )
6666
6767 var q string
@@ -81,51 +81,47 @@ func (c *Client) ListTablesInAccount(ctx context.Context, cursor string, limit i
8181
8282 req , err := c .PostStatementRequest (ctx , queries )
8383 if err != nil {
84- return nil , "" , nil , err
84+ return nil , "" , err
8585 }
8686
8787 var response ListTablesRawResponse
88- resp , err := c .Do (req , uhttp .WithJSONResponse (& response ))
88+ resp1 , err := c .Do (req , uhttp .WithJSONResponse (& response ))
89+ defer closeResponseBody (resp1 )
8990 if err != nil {
90- if resp != nil && resp .StatusCode == http .StatusUnprocessableEntity {
91+ if resp1 != nil && resp1 .StatusCode == http .StatusUnprocessableEntity {
9192 l .Debug ("Insufficient privileges for SHOW TABLES IN ACCOUNT" )
9293 wrappedErr := fmt .Errorf ("baton-snowflake: insufficient privileges for SHOW TABLES IN ACCOUNT: %w" , err )
93- return nil , "" , nil , status .Error (codes .PermissionDenied , wrappedErr .Error ())
94+ return nil , "" , status .Error (codes .PermissionDenied , wrappedErr .Error ())
9495 }
95- return nil , "" , nil , err
96- }
97- if resp != nil {
98- defer resp .Body .Close ()
96+ return nil , "" , err
9997 }
10098
10199 req , err = c .GetStatementResponse (ctx , response .StatementHandle )
102100 if err != nil {
103- return nil , "" , resp , err
101+ return nil , "" , err
104102 }
105- resp , err = c .Do (req , uhttp .WithJSONResponse (& response ))
103+ resp2 , err := c .Do (req , uhttp .WithJSONResponse (& response ))
104+ defer closeResponseBody (resp2 )
106105 if err != nil {
107- if resp != nil && resp .StatusCode == http .StatusUnprocessableEntity {
106+ if resp2 != nil && resp2 .StatusCode == http .StatusUnprocessableEntity {
108107 l .Debug ("Insufficient privileges for SHOW TABLES IN ACCOUNT (statement result)" )
109108 wrappedErr := fmt .Errorf ("baton-snowflake: insufficient privileges for SHOW TABLES IN ACCOUNT (statement result): %w" , err )
110- return nil , "" , nil , status .Error (codes .PermissionDenied , wrappedErr .Error ())
109+ return nil , "" , status .Error (codes .PermissionDenied , wrappedErr .Error ())
111110 }
112- return nil , "" , resp , err
113- }
114- if resp != nil {
115- defer resp .Body .Close ()
111+ return nil , "" , err
116112 }
117113
118114 tables , err := response .ListTables ()
119115 if err != nil {
120- return nil , "" , resp , err
116+ return nil , "" , err
121117 }
122118
123119 var nextCursor string
124120 if len (tables ) >= limit {
125121 last := tables [len (tables )- 1 ]
126122 nextCursor = last .DatabaseName + tableListCursorSep + last .SchemaName + tableListCursorSep + last .Name
127123 }
128- return tables , nextCursor , resp , nil
124+ return tables , nextCursor , nil
129125}
130126
131127// escapeSingleQuote doubles single quotes for use inside SQL string literals.
@@ -149,54 +145,50 @@ func escapeDoubleQuotedIdentifier(s string) string {
149145 return strings .ReplaceAll (s , `"` , `""` )
150146}
151147
152- func (c * Client ) GetTable (ctx context.Context , database , schema , tableName string ) (* Table , * http. Response , error ) {
148+ func (c * Client ) GetTable (ctx context.Context , database , schema , tableName string ) (* Table , error ) {
153149 likePattern := escapeLikePattern (tableName )
154150 queries := []string {
155151 fmt .Sprintf ("SHOW TABLES LIKE '%s' ESCAPE '\\ ' IN SCHEMA \" %s\" .\" %s\" LIMIT 1;" , likePattern , escapeDoubleQuotedIdentifier (database ), escapeDoubleQuotedIdentifier (schema )),
156152 }
157153
158154 req , err := c .PostStatementRequest (ctx , queries )
159155 if err != nil {
160- return nil , nil , err
156+ return nil , err
161157 }
162158
163159 var response ListTablesRawResponse
164- resp , err := c .Do (req , uhttp .WithJSONResponse (& response ))
160+ resp1 , err := c .Do (req , uhttp .WithJSONResponse (& response ))
161+ defer closeResponseBody (resp1 )
165162 if err != nil {
166- if resp != nil && resp .StatusCode == http .StatusUnprocessableEntity {
167- return nil , resp , nil
163+ if resp1 != nil && resp1 .StatusCode == http .StatusUnprocessableEntity {
164+ return nil , nil
168165 }
169- return nil , nil , err
170- }
171- if resp != nil {
172- defer resp .Body .Close ()
166+ return nil , err
173167 }
174168
175169 req , err = c .GetStatementResponse (ctx , response .StatementHandle )
176170 if err != nil {
177- return nil , resp , err
171+ return nil , err
178172 }
179- resp , err = c .Do (req , uhttp .WithJSONResponse (& response ))
173+ resp2 , err := c .Do (req , uhttp .WithJSONResponse (& response ))
174+ defer closeResponseBody (resp2 )
180175 if err != nil {
181- return nil , resp , err
182- }
183- if resp != nil {
184- defer resp .Body .Close ()
176+ return nil , err
185177 }
186178
187179 tables , err := response .ListTables ()
188180 if err != nil {
189- return nil , resp , err
181+ return nil , err
190182 }
191183
192184 // Filter by exact match (database, schema, and name)
193185 for _ , table := range tables {
194186 if table .DatabaseName == database && table .SchemaName == schema && table .Name == tableName {
195- return & table , resp , nil
187+ return & table , nil
196188 }
197189 }
198190
199- return nil , resp , fmt .Errorf ("table %s.%s.%s not found" , database , schema , tableName )
191+ return nil , fmt .Errorf ("table %s.%s.%s not found" , database , schema , tableName )
200192}
201193
202194var tableGrantStructFieldToColumnMap = map [string ]string {
0 commit comments