summaryrefslogtreecommitdiffstats
path: root/dependencies/pkg/mod/github.com/mattn/go-sqlite3@v1.14.16/sqlite3_opt_column_metadata_test.go
blob: 28767f1eccbb65c93191a9d9bd1c5cbb66af3627 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// +build sqlite_column_metadata

package sqlite3

import "testing"

func TestColumnTableName(t *testing.T) {
	d := SQLiteDriver{}
	conn, err := d.Open(":memory:")
	if err != nil {
		t.Fatal("failed to get database connection:", err)
	}
	defer conn.Close()
	sqlite3conn := conn.(*SQLiteConn)

	_, err = sqlite3conn.Exec(`CREATE TABLE foo (name string)`, nil)
	if err != nil {
		t.Fatal("Failed to create table:", err)
	}
	_, err = sqlite3conn.Exec(`CREATE TABLE bar (name string)`, nil)
	if err != nil {
		t.Fatal("Failed to create table:", err)
	}

	stmt, err := sqlite3conn.Prepare(`SELECT * FROM foo JOIN bar ON foo.name = bar.name`)
	if err != nil {
		t.Fatal(err)
	}

	if exp, got := "foo", stmt.(*SQLiteStmt).ColumnTableName(0); exp != got {
		t.Fatalf("Incorrect table name returned expected: %s, got: %s", exp, got)
	}
	if exp, got := "bar", stmt.(*SQLiteStmt).ColumnTableName(1); exp != got {
		t.Fatalf("Incorrect table name returned expected: %s, got: %s", exp, got)
	}
	if exp, got := "", stmt.(*SQLiteStmt).ColumnTableName(2); exp != got {
		t.Fatalf("Incorrect table name returned expected: %s, got: %s", exp, got)
	}
}