MCPcopy Index your code
hub / github.com/bytebase/bytebase / exportResultToZip

Function exportResultToZip

backend/api/v1/sql_service.go:1257–1283  ·  view source on GitHub ↗

exportResultToZip exports a single query result to the ZIP archive. It writes both the SQL statement and the formatted result data.

(
	ctx context.Context,
	zipw *zip.Writer,
	stores *store.Store,
	instance *store.InstanceMessage,
	database *store.DatabaseMessage,
	result *v1pb.QueryResult,
	request *v1pb.ExportRequest,
	statementNumber int,
)

Source from the content-addressed store, hash-verified

1255// exportResultToZip exports a single query result to the ZIP archive.
1256// It writes both the SQL statement and the formatted result data.
1257func exportResultToZip(
1258 ctx context.Context,
1259 zipw *zip.Writer,
1260 stores *store.Store,
1261 instance *store.InstanceMessage,
1262 database *store.DatabaseMessage,
1263 result *v1pb.QueryResult,
1264 request *v1pb.ExportRequest,
1265 statementNumber int,
1266) error {
1267 baseFilename := fmt.Sprintf("%s/%s/statement-%d", database.InstanceID, database.DatabaseName, statementNumber)
1268
1269 // Write statement file
1270 statementFilename := fmt.Sprintf("%s.sql", baseFilename)
1271 if err := export.WriteZipEntry(zipw, statementFilename, []byte(result.Statement), request.GetPassword()); err != nil {
1272 return errors.Wrap(err, "failed to write statement")
1273 }
1274
1275 // Write result file by streaming directly to ZIP
1276 resultExt := strings.ToLower(request.Format.String())
1277 resultFilename := fmt.Sprintf("%s.result.%s", baseFilename, resultExt)
1278 if err := formatExportToZip(ctx, zipw, resultFilename, stores, instance, database, result, request); err != nil {
1279 return errors.Wrap(err, "failed to write formatted result")
1280 }
1281
1282 return nil
1283}
1284
1285// formatExportToZip formats query results and writes them directly to a ZIP entry.
1286// This function streams the formatted data to minimize memory usage.

Callers 1

doExportFunction · 0.85

Calls 4

WriteZipEntryFunction · 0.92
formatExportToZipFunction · 0.85
StringMethod · 0.65
GetPasswordMethod · 0.45

Tested by

no test coverage detected