MCPcopy
hub / github.com/github/gh-ost / TestNewTwoColumnRangeMeta

Function TestNewTwoColumnRangeMeta

go/sql/builder_test.go:605–642  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

603}
604
605func TestNewTwoColumnRangeMeta(t *testing.T) {
606 {
607 // No enum columns → plain "col asc" / "col desc" ORDER BY clauses.
608 uniqueKeyColumns := NewColumnList([]string{"name", "position"})
609 m := newTwoColumnRangeMeta(uniqueKeyColumns)
610 require.Equal(t, "`name`", m.col1Name)
611 require.Equal(t, "`position`", m.col2Name)
612 require.Equal(t, "?", m.col1Val)
613 require.Equal(t, "?", m.col2Val)
614 require.Equal(t, "`name` asc, `position` asc", m.orderByAsc)
615 require.Equal(t, "`name` desc, `position` desc", m.orderByDesc)
616 }
617 {
618 // Enum on first column only.
619 uniqueKeyColumns := NewColumnList([]string{"name", "position"})
620 uniqueKeyColumns.SetColumnType("name", EnumColumnType)
621 m := newTwoColumnRangeMeta(uniqueKeyColumns)
622 require.Equal(t, "concat(`name`) asc, `position` asc", m.orderByAsc)
623 require.Equal(t, "concat(`name`) desc, `position` desc", m.orderByDesc)
624 }
625 {
626 // Enum on second column only.
627 uniqueKeyColumns := NewColumnList([]string{"name", "position"})
628 uniqueKeyColumns.SetColumnType("position", EnumColumnType)
629 m := newTwoColumnRangeMeta(uniqueKeyColumns)
630 require.Equal(t, "`name` asc, concat(`position`) asc", m.orderByAsc)
631 require.Equal(t, "`name` desc, concat(`position`) desc", m.orderByDesc)
632 }
633 {
634 // Enum on both columns.
635 uniqueKeyColumns := NewColumnList([]string{"name", "position"})
636 uniqueKeyColumns.SetColumnType("name", EnumColumnType)
637 uniqueKeyColumns.SetColumnType("position", EnumColumnType)
638 m := newTwoColumnRangeMeta(uniqueKeyColumns)
639 require.Equal(t, "concat(`name`) asc, concat(`position`) asc", m.orderByAsc)
640 require.Equal(t, "concat(`name`) desc, concat(`position`) desc", m.orderByDesc)
641 }
642}
643
644func TestBuildTwoColumnUnionParts(t *testing.T) {
645 rangeStartArgs := []interface{}{3, 17}

Callers

nothing calls this directly

Calls 3

SetColumnTypeMethod · 0.95
NewColumnListFunction · 0.85
newTwoColumnRangeMetaFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…