Materialize the condensed delta view as a temporary table.
( ctx *sql.Context, conn *stdsql.Conn, tx *stdsql.Tx, table tableIdentifier, appender *DeltaAppender, stats *FlushStats, )
| 402 | |
| 403 | // Materialize the condensed delta view as a temporary table. |
| 404 | func (c *DeltaController) materializeCondensedDelta( |
| 405 | ctx *sql.Context, |
| 406 | conn *stdsql.Conn, |
| 407 | tx *stdsql.Tx, |
| 408 | table tableIdentifier, |
| 409 | appender *DeltaAppender, |
| 410 | stats *FlushStats, |
| 411 | ) error { |
| 412 | viewName, release, err := c.prepareArrowView(ctx, conn, table, appender, 0, nil) |
| 413 | if err != nil { |
| 414 | return err |
| 415 | } |
| 416 | defer release() |
| 417 | |
| 418 | condenseDeltaSQL := buildCondenseDeltaSQL(viewName, appender) |
| 419 | |
| 420 | // Create a temporary table to store the latest delta view |
| 421 | result, err := tx.ExecContext(ctx, "CREATE OR REPLACE TEMP TABLE delta AS "+condenseDeltaSQL) |
| 422 | if err != nil { |
| 423 | return err |
| 424 | } |
| 425 | affected, err := result.RowsAffected() |
| 426 | if err != nil { |
| 427 | return err |
| 428 | } |
| 429 | |
| 430 | if log := ctx.GetLogger(); log.Logger.IsLevelEnabled(logrus.DebugLevel) { |
| 431 | log.WithFields(logrus.Fields{ |
| 432 | "db": table.dbName, |
| 433 | "table": table.tableName, |
| 434 | "rows": affected, |
| 435 | }).Debug("Delta created") |
| 436 | } |
| 437 | |
| 438 | stats.DeltaSize += affected |
| 439 | return nil |
| 440 | } |
| 441 | |
| 442 | func (c *DeltaController) handleGeneralCase( |
| 443 | ctx *sql.Context, |
no test coverage detected