| 615 | } |
| 616 | |
| 617 | func TestString(t *testing.T) { |
| 618 | runTestsParallel(t, dsn, func(dbt *DBTest, tbl string) { |
| 619 | types := [6]string{"CHAR(255)", "VARCHAR(255)", "TINYTEXT", "TEXT", "MEDIUMTEXT", "LONGTEXT"} |
| 620 | in := "κόσμε üöäßñóùéàâÿœ'îë Árvíztűrő いろはにほへとちりぬるを イロハニホヘト דג סקרן чащах น่าฟังเอย" |
| 621 | var out string |
| 622 | var rows *sql.Rows |
| 623 | |
| 624 | for _, v := range types { |
| 625 | dbt.mustExec("CREATE TABLE " + tbl + " (value " + v + ") CHARACTER SET utf8") |
| 626 | |
| 627 | dbt.mustExec("INSERT INTO "+tbl+" VALUES (?)", in) |
| 628 | |
| 629 | rows = dbt.mustQuery("SELECT value FROM " + tbl) |
| 630 | if rows.Next() { |
| 631 | rows.Scan(&out) |
| 632 | if in != out { |
| 633 | dbt.Errorf("%s: %s != %s", v, in, out) |
| 634 | } |
| 635 | } else { |
| 636 | dbt.Errorf("%s: no data", v) |
| 637 | } |
| 638 | rows.Close() |
| 639 | |
| 640 | dbt.mustExec("DROP TABLE IF EXISTS " + tbl) |
| 641 | } |
| 642 | |
| 643 | // BLOB |
| 644 | dbt.mustExec("CREATE TABLE " + tbl + " (id int, value BLOB) CHARACTER SET utf8") |
| 645 | |
| 646 | id := 2 |
| 647 | in = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, " + |
| 648 | "sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, " + |
| 649 | "sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. " + |
| 650 | "Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. " + |
| 651 | "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, " + |
| 652 | "sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, " + |
| 653 | "sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. " + |
| 654 | "Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet." |
| 655 | dbt.mustExec("INSERT INTO "+tbl+" VALUES (?, ?)", id, in) |
| 656 | |
| 657 | err := dbt.db.QueryRow("SELECT value FROM "+tbl+" WHERE id = ?", id).Scan(&out) |
| 658 | if err != nil { |
| 659 | dbt.Fatalf("Error on BLOB-Query: %s", err.Error()) |
| 660 | } else if out != in { |
| 661 | dbt.Errorf("BLOB: %s != %s", in, out) |
| 662 | } |
| 663 | }) |
| 664 | } |
| 665 | |
| 666 | func TestRawBytes(t *testing.T) { |
| 667 | runTestsParallel(t, dsn, func(dbt *DBTest, _ string) { |