MCPcopy Create free account
hub / github.com/apecloud/myduckserver / TestCreateTable

Function TestCreateTable

main_test.go:1093–1144  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1091 duckTx := sess.TryGetTxn()
1092 require.True(t, ctx.GetIgnoreAutoCommit())
1093 require.NotNil(t, tx)
1094 require.NotNil(t, duckTx)
1095
1096 query := "SELECT UNHEX(s) FROM mytable ORDER BY i LIMIT 1"
1097 ctx = ctx.WithQuery(query)
1098 _, _, _, err = e.Query(ctx, query)
1099 require.ErrorContains(t, err, "Invalid input for hex digit")
1100 require.True(t, ctx.GetIgnoreAutoCommit())
1101 require.Same(t, tx, ctx.GetTransaction())
1102 require.Same(t, duckTx, sess.TryGetTxn())
1103
1104 var one int
1105 err = duckTx.QueryRowContext(ctx, "SELECT 1").Scan(&one)
1106 require.ErrorContains(t, err, "Current transaction is aborted")
1107 require.Same(t, tx, ctx.GetTransaction())
1108 require.Same(t, duckTx, sess.TryGetTxn())
1109
1110 err = sess.Rollback(ctx, tx)
1111 require.NoError(t, err)
1112 ctx.SetIgnoreAutoCommit(false)
1113 ctx.SetTransaction(nil)
1114 require.False(t, ctx.GetIgnoreAutoCommit())
1115 require.Nil(t, ctx.GetTransaction())
1116 require.Nil(t, sess.TryGetTxn())
1117}
1118
1119func TestInsertReturningTransactionLifecycle(t *testing.T) {
1120 h := NewDefaultDuckHarness()
1121 h.Setup([]setup.SetupScript{{
1122 "CREATE DATABASE mydb",
1123 "USE mydb",
1124 "CREATE TABLE returning_tx (id INT PRIMARY KEY, name VARCHAR(20) NOT NULL)",
1125 }})
1126 e, err := h.NewEngine(t)
1127 require.NoError(t, err)
1128 defer e.Close()
1129
1130 ctx := enginetest.NewContext(h)
1131 sess := ctx.Session.(*backend.Session)
1132 run := func(query string) ([]sql.Row, error) {
1133 ctx = ctx.WithQuery(query)
1134 _, iter, _, err := e.Query(ctx, query)
1135 if err != nil {
1136 return nil, err
1137 }
1138 return sql.RowIterToRows(ctx, iter)
1139 }
1140 begin := func() (sql.Transaction, *stdsql.Tx) {
1141 for _, query := range []string{"SET autocommit = 0", "START TRANSACTION"} {
1142 _, err := run(query)
1143 require.NoError(t, err)
1144 }
1145 tx := ctx.GetTransaction()
1146 duckTx := sess.TryGetTxn()
1147 require.NotNil(t, tx)

Callers

nothing calls this directly

Calls 3

NewDefaultDuckHarnessFunction · 0.85
RunCreateTableTestFunction · 0.85
QueriesToSkipMethod · 0.80

Tested by

no test coverage detected