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

Function RunCreateTableTest

main_test.go:1147–1227  ·  view source on GitHub ↗

Adapted from enginetests to skip known issues and pending fixes

(t *testing.T, harness enginetest.Harness)

Source from the content-addressed store, hash-verified

1145 tx := ctx.GetTransaction()
1146 duckTx := sess.TryGetTxn()
1147 require.NotNil(t, tx)
1148 require.NotNil(t, duckTx)
1149 return tx, duckTx
1150 }
1151 rollback := func(tx sql.Transaction) {
1152 require.NoError(t, sess.Rollback(ctx, tx))
1153 ctx.SetIgnoreAutoCommit(false)
1154 ctx.SetTransaction(nil)
1155 require.Nil(t, ctx.GetTransaction())
1156 require.Nil(t, sess.TryGetTxn())
1157 }
1158
1159 tx, duckTx := begin()
1160 rows, err := run("INSERT INTO returning_tx VALUES (1, 'Cat') RETURNING id, name")
1161 require.NoError(t, err)
1162 require.Equal(t, []sql.Row{{int32(1), "Cat"}}, rows)
1163 require.Same(t, tx, ctx.GetTransaction())
1164 require.Same(t, duckTx, sess.TryGetTxn())
1165 rollback(tx)
1166
1167 tx, duckTx = begin()
1168 _, err = run("INSERT INTO returning_tx VALUES (2, NULL) RETURNING id, name")
1169 require.ErrorContains(t, err, "NOT NULL constraint failed")
1170 require.Same(t, tx, ctx.GetTransaction())
1171 require.Same(t, duckTx, sess.TryGetTxn())
1172 rollback(tx)
1173
1174 rows, err = run("SELECT count(*) FROM returning_tx")
1175 require.NoError(t, err)
1176 require.Equal(t, []sql.Row{{int64(0)}}, rows)
1177}
1178
1179func TestAlterTableCommentPreservesManagedMetadata(t *testing.T) {
1180 provider, err := catalog.NewDBProvider("", t.TempDir(), "myduck")
1181 require.NoError(t, err)
1182 t.Cleanup(func() {
1183 require.NoError(t, provider.Close())
1184 })
1185
1186 h := harness.NewDuckHarness("comment-reopen", 1, 1, true, nil).WithProvider(provider)
1187 setupData := []setup.SetupScript{{
1188 "CREATE DATABASE comment_reopen",
1189 "USE comment_reopen",
1190 `CREATE TABLE comment_meta (
1191 id INT AUTO_INCREMENT PRIMARY KEY,
1192 required INT NOT NULL,
1193 source JSON,
1194 generated_v VECTOR(2) NOT NULL GENERATED ALWAYS AS (STRING_TO_VECTOR(source)) STORED,
1195 CONSTRAINT required_positive CHECK (required > 0)
1196 ) COMMENT='before'`,
1197 }}
1198 e, err := harness.NewEngine(t, h, provider, setupData, memory.NewStatsProv(), false)
1199 require.NoError(t, err)
1200 t.Cleanup(func() {
1201 require.NoError(t, e.Close())
1202 })
1203
1204 ctx := enginetest.NewContext(h)

Callers 1

TestCreateTableFunction · 0.85

Calls 11

mustNewEngineFunction · 0.85
SetupMethod · 0.80
GetTableInsensitiveMethod · 0.80
GetIndexesMethod · 0.80
IsUniqueMethod · 0.80
IDMethod · 0.80
CloseMethod · 0.65
NewContextMethod · 0.65
RunMethod · 0.45
DatabaseMethod · 0.45
SchemaMethod · 0.45

Tested by

no test coverage detected