From 0cb8977aed868d5aff9bfc44d2f3e3eb4ce85b1e Mon Sep 17 00:00:00 2001 From: Victor Date: Mon, 19 Aug 2024 12:20:37 +0000 Subject: [PATCH 01/18] changes --- pkg/clientinteractor/interactor.go | 60 ++++++++++++++++++++++++------ pkg/meta/meta.go | 2 +- yacc/console/ast.go | 23 ++++++++++++ yacc/console/gram.y | 20 ++++++++-- 4 files changed, 89 insertions(+), 16 deletions(-) diff --git a/pkg/clientinteractor/interactor.go b/pkg/clientinteractor/interactor.go index 1bea9493c..39bbab9d8 100644 --- a/pkg/clientinteractor/interactor.go +++ b/pkg/clientinteractor/interactor.go @@ -720,16 +720,17 @@ func GetColumnsMap(desc TableDesc) map[string]int { // // Returns: // - error: An error if any occurred during the operation. -func (pi *PSQLInteractor) Clients(ctx context.Context, clients []client.ClientInfo, condition spqrparser.WhereClauseNode) error { +func (pi *PSQLInteractor) Clients(ctx context.Context, clients []client.ClientInfo, query *spqrparser.Show) error { desc := ClientDesc{} header := desc.GetHeader() rowDesc := GetColumnsMap(desc) - + condition := query.Where + order := query.Order if err := pi.WriteHeader(header...); err != nil { spqrlog.Zero.Error().Err(err).Msg("") return err } - + var data [][]string for _, cl := range clients { if len(cl.Shards()) > 0 { for _, sh := range cl.Shards() { @@ -745,11 +746,7 @@ func (pi *PSQLInteractor) Clients(ctx context.Context, clients []client.ClientIn if !match { continue } - - if err := pi.WriteDataRow(row...); err != nil { - spqrlog.Zero.Error().Err(err).Msg("") - return err - } + data = append(data, row) } } else { row := desc.GetRow(cl, "no backend connection", cl.RAddr()) @@ -762,17 +759,56 @@ func (pi *PSQLInteractor) Clients(ctx context.Context, clients []client.ClientIn continue } - if err := pi.WriteDataRow(row...); err != nil { - spqrlog.Zero.Error().Err(err).Msg("") - return err - } + data = append(data, row) } } + switch order.(type) { + case spqrparser.Order: + ord := order.(spqrparser.Order) + var asc_desc int + switch ord.Order.(type) { + case spqrparser.SortByAsc: + asc_desc = ASC + case spqrparser.SortByDesc: + asc_desc = DESC + default: + asc_desc = ASC + } + sortable := SortableWithContext{data, rowDesc[ord.Col.ColName], asc_desc} + sort.Sort(sortable) + } + for i := 0; i < len(data); i++ { + if err := pi.WriteDataRow(data[i]...); err != nil { + spqrlog.Zero.Error().Err(err).Msg("") + return err + } + } return pi.CompleteMsg(len(clients)) } +const ( + ASC = iota + DESC +) + +type SortableWithContext struct { + data [][]string + col_index int + order int +} + +func (a SortableWithContext) Len() int { return len(a.data) } +func (a SortableWithContext) Swap(i, j int) { a.data[i], a.data[j] = a.data[j], a.data[i] } +func (a SortableWithContext) Less(i, j int) bool { + if a.order == ASC { + return a.data[i][a.col_index] < a.data[j][a.col_index] + } else { + return a.data[i][a.col_index] > a.data[j][a.col_index] + } +} + // TODO : unit tests // Distributions sends distribution data to the PSQL client. diff --git a/pkg/meta/meta.go b/pkg/meta/meta.go index fc7b601c7..1e5996e6f 100644 --- a/pkg/meta/meta.go +++ b/pkg/meta/meta.go @@ -489,7 +489,7 @@ func ProcessShow(ctx context.Context, stmt *spqrparser.Show, mngr EntityMgr, ci return err } - return cli.Clients(ctx, resp, stmt.Where) + return cli.Clients(ctx, resp, stmt) case spqrparser.PoolsStr: var respPools []pool.Pool if err := ci.ForEachPool(func(p pool.Pool) error { diff --git a/yacc/console/ast.go b/yacc/console/ast.go index 61cb5ff3a..94cd0ccae 100644 --- a/yacc/console/ast.go +++ b/yacc/console/ast.go @@ -4,6 +4,28 @@ type ColumnRef struct { TableAlias string ColName string } +type OptAscDesc interface{} + +type SortByDefault struct { + OptAscDesc +} +type SortByAsc struct { + OptAscDesc +} +type SortByDesc struct { + OptAscDesc +} +type OrderClause interface{} + +type Order struct { + OrderClause + Order OptAscDesc + Col ColumnRef +} + +type OrderEmpty struct { + OrderClause +} type WhereClauseNode interface { } @@ -31,6 +53,7 @@ type WhereClauseOp struct { type Show struct { Cmd string Where WhereClauseNode + Order OrderClause } type Set struct { diff --git a/yacc/console/gram.y b/yacc/console/gram.y index 1533ea758..d2e14e312 100644 --- a/yacc/console/gram.y +++ b/yacc/console/gram.y @@ -85,6 +85,9 @@ func randomHex(n int) (string, error) { colref ColumnRef where WhereClauseNode + + order_clause OrderClause + opt_asc_desc OptAscDest } // any non-terminal which returns a value needs a type, which is @@ -201,6 +204,9 @@ func randomHex(n int) (string, error) { %type opt_cascade +%token ASC DESC ORDER +%type order_clause +%type opt_asc_desc %type unlock_stmt %type lock_stmt %type shutdown_stmt @@ -559,12 +565,20 @@ create_stmt: } +opt_asc_desc: ASC { $$ = &SortByAsc{} } + | DESC { $$ = &SortByDesc{} } + | /*EMPTY*/ { $$ = &SortByAsc{} } + +order_clause: + ORDER BY ColRef opt_asc_desc {$$ = &Order{Col:$2, Order:$3}} + | /* empty */ {$$ = &OrderEmpty{}} + + show_stmt: - SHOW show_statement_type where_clause + SHOW show_statement_type where_clause order_clause { - $$ = &Show{Cmd: $2, Where: $3} + $$ = &Show{Cmd: $2, Where: $3, Order: $4} } - lock_stmt: LOCK key_range_stmt { From 5c7c59eaa17c8db48c85bd7472a9a7b0608dd9f8 Mon Sep 17 00:00:00 2001 From: Victor Date: Mon, 19 Aug 2024 12:21:49 +0000 Subject: [PATCH 02/18] generated lex --- yacc/console/gram.go | 658 +++++++++++++++++++++++-------------------- yacc/console/lex.go | 18 +- 2 files changed, 358 insertions(+), 318 deletions(-) diff --git a/yacc/console/gram.go b/yacc/console/gram.go index 86a31ea69..952851270 100644 --- a/yacc/console/gram.go +++ b/yacc/console/gram.go @@ -86,6 +86,9 @@ type yySymType struct { colref ColumnRef where WhereClauseNode + + order_clause OrderClause + opt_asc_desc OptAscDest } const IDENT = 57346 @@ -163,6 +166,9 @@ const INTEGER = 57417 const INT = 57418 const TYPES = 57419 const OP = 57420 +const ASC = 57421 +const DESC = 57422 +const ORDER = 57423 var yyToknames = [...]string{ "$end", @@ -243,6 +249,9 @@ var yyToknames = [...]string{ "INT", "TYPES", "OP", + "ASC", + "DESC", + "ORDER", } var yyStatenames = [...]string{} @@ -251,10 +260,10 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line gram.y:847 +//line gram.y:861 //line yacctab:1 -var yyExca = [...]int8{ +var yyExca = [...]int{ -1, 1, 1, -1, -2, 0, @@ -262,88 +271,89 @@ var yyExca = [...]int8{ const yyPrivate = 57344 -const yyLast = 244 - -var yyAct = [...]uint8{ - 132, 177, 213, 152, 180, 172, 144, 151, 150, 156, - 143, 129, 139, 116, 92, 153, 141, 27, 28, 173, - 174, 175, 97, 122, 89, 52, 51, 146, 68, 30, - 29, 34, 35, 69, 179, 21, 20, 24, 25, 26, - 31, 32, 147, 136, 81, 82, 36, 85, 207, 208, - 209, 56, 179, 82, 87, 82, 54, 88, 58, 95, - 96, 82, 82, 59, 120, 106, 210, 201, 82, 166, - 105, 33, 149, 104, 155, 121, 140, 107, 108, 22, - 23, 95, 101, 103, 115, 118, 60, 91, 67, 83, - 137, 125, 127, 146, 197, 198, 193, 80, 203, 125, - 82, 62, 126, 98, 123, 133, 134, 135, 147, 128, - 124, 90, 109, 84, 181, 44, 86, 195, 148, 94, - 45, 119, 43, 117, 114, 157, 57, 46, 53, 142, - 77, 112, 93, 111, 185, 117, 76, 102, 168, 38, - 167, 170, 162, 217, 42, 199, 185, 182, 183, 41, - 178, 169, 40, 176, 61, 63, 82, 186, 184, 157, - 73, 74, 75, 79, 39, 187, 50, 191, 130, 185, - 189, 49, 188, 194, 48, 192, 159, 164, 196, 100, - 82, 161, 160, 178, 165, 71, 47, 71, 65, 190, - 37, 1, 202, 200, 70, 72, 70, 154, 205, 18, - 204, 159, 211, 17, 214, 16, 161, 160, 15, 14, - 12, 215, 13, 216, 8, 9, 113, 219, 214, 218, - 220, 171, 138, 110, 78, 19, 206, 145, 212, 6, - 5, 4, 3, 7, 11, 10, 66, 64, 55, 2, - 131, 163, 158, 99, +const yyLast = 251 + +var yyAct = [...]int{ + 134, 180, 220, 154, 183, 175, 146, 153, 152, 158, + 133, 131, 145, 141, 116, 92, 130, 27, 28, 155, + 208, 209, 176, 177, 178, 97, 143, 122, 89, 30, + 29, 34, 35, 69, 52, 21, 20, 24, 25, 26, + 31, 32, 51, 68, 81, 182, 36, 85, 214, 215, + 216, 148, 87, 120, 138, 88, 82, 82, 56, 95, + 96, 82, 82, 54, 82, 58, 149, 106, 217, 82, + 59, 33, 205, 105, 151, 104, 182, 107, 108, 22, + 23, 95, 169, 160, 115, 118, 101, 103, 157, 121, + 91, 125, 127, 60, 148, 83, 142, 82, 201, 125, + 139, 117, 98, 67, 90, 135, 136, 137, 123, 149, + 128, 197, 80, 126, 124, 84, 86, 210, 150, 109, + 62, 94, 119, 202, 44, 159, 184, 114, 199, 45, + 144, 43, 117, 112, 93, 111, 46, 57, 77, 76, + 171, 42, 170, 173, 165, 38, 41, 188, 188, 185, + 186, 102, 181, 40, 172, 39, 53, 179, 203, 189, + 187, 159, 224, 50, 82, 188, 191, 190, 49, 198, + 195, 192, 100, 193, 79, 48, 132, 47, 196, 162, + 167, 200, 61, 63, 164, 163, 181, 168, 73, 74, + 75, 71, 194, 82, 65, 206, 204, 37, 71, 1, + 70, 72, 212, 18, 211, 17, 218, 70, 156, 162, + 16, 221, 15, 14, 164, 163, 12, 13, 222, 8, + 223, 9, 207, 129, 226, 221, 225, 227, 113, 174, + 140, 110, 78, 19, 213, 147, 219, 6, 5, 4, + 3, 7, 11, 10, 66, 64, 55, 2, 166, 161, + 99, } -var yyPact = [...]int16{ - 11, -1000, 124, -1000, -1000, -1000, -1000, -1000, -1000, -1000, +var yyPact = [...]int{ + 11, -1000, 130, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 78, 78, -44, -45, 14, 59, 59, 184, 24, 181, - -1000, 59, 59, 59, 114, 108, 53, -1000, -1000, -1000, - -1000, -1000, -1000, 176, 37, 70, 57, -1000, -1000, -1000, - -1000, -7, -47, -1000, 68, -1000, 35, 99, 58, 176, - -51, -1000, 60, -1000, 171, -1000, 123, 123, -1000, -1000, - -1000, -1000, -1000, 16, 12, 6, 176, 51, -1000, 97, - 176, 86, -1000, 96, 64, 5, 20, -48, 123, -1000, - 49, 41, -1000, -1000, 99, -1000, -1000, -1000, 176, -1000, - 152, -1000, -1000, -1000, 176, 176, 176, -19, -1000, -1000, - -1000, 45, 31, -1000, -61, 84, 55, 176, 15, 183, - 19, 181, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 197, - 152, 173, -1000, 13, -1000, -1000, 181, 176, 31, -1000, - 176, -55, 55, -11, -1000, 74, 176, 176, -1000, 183, - 134, -1000, -1000, -1000, -1000, 181, 160, -1000, 152, -1000, - -1000, -1000, 172, 181, -1000, -1000, 183, -1000, -1000, -1000, - 52, 161, -1000, 77, -1000, -1000, -11, -1000, -1000, 50, - -1000, 54, -1000, -1000, 122, 183, 9, 160, 181, 197, - -1000, -1000, 157, 56, -55, -1000, -1000, 176, -17, 8, - -1000, 176, -1000, 176, -1000, -1000, -1000, -1000, -1000, -1000, - 176, -29, 131, -1000, 74, -29, -1000, 176, -1000, -1000, - -1000, + 87, 87, -28, -36, 21, 78, 78, 190, 39, 187, + -1000, 78, 78, 78, 117, 116, 68, -1000, -1000, -1000, + -1000, -1000, -1000, 189, 43, 72, 57, -1000, -1000, -1000, + -1000, -9, -43, -1000, 61, -1000, 38, 101, 60, 189, + -48, -1000, 59, -1000, 164, -1000, 137, 137, -1000, -1000, + -1000, -1000, -1000, 18, 15, 8, 189, 58, -1000, 99, + 189, 89, -1000, 93, 65, -6, 34, -44, 137, -1000, + 53, 52, -1000, -1000, 101, -1000, -1000, -1000, 189, -65, + 160, -1000, -1000, -1000, 189, 189, 189, -8, -1000, -1000, + -1000, 55, 51, -1000, -51, 62, 56, 189, 17, 194, + 33, 187, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 27, 205, 160, 176, -1000, 26, -1000, -1000, 187, 189, + 51, -1000, 189, -52, 56, 13, -1000, 86, 189, 189, + -1000, 194, 136, -1000, -1000, -1000, -1000, 187, 154, -1000, + 189, 160, -1000, -1000, -1000, 175, 187, -1000, -1000, 194, + -1000, -1000, -1000, 67, 157, -1000, 88, -1000, -1000, 13, + -1000, -1000, 54, -1000, 82, -1000, -1000, 135, 194, 14, + 154, 187, -59, 205, -1000, -1000, 153, 75, -52, -1000, + -1000, 189, -17, 10, -1000, 189, -1000, -1000, -1000, -1000, + 189, -1000, -1000, -1000, -1000, -1000, -1000, 189, -18, 150, + -1000, 86, -18, -1000, 189, -1000, -1000, -1000, } -var yyPgo = [...]uint8{ - 0, 243, 11, 7, 8, 242, 241, 240, 3, 0, - 15, 239, 238, 128, 126, 237, 236, 235, 234, 233, - 232, 231, 230, 229, 164, 152, 149, 144, 10, 228, - 6, 2, 13, 227, 4, 226, 1, 225, 224, 223, - 222, 12, 221, 216, 9, 5, 14, 215, 214, 212, - 210, 209, 208, 205, 203, 199, 191, 190, +var yyPgo = [...]int{ + 0, 250, 11, 7, 8, 249, 248, 10, 3, 0, + 19, 247, 246, 156, 137, 245, 244, 243, 242, 241, + 240, 239, 238, 237, 155, 153, 146, 141, 12, 236, + 6, 2, 14, 235, 4, 234, 1, 233, 232, 231, + 230, 13, 229, 228, 9, 5, 15, 223, 222, 221, + 219, 217, 216, 213, 212, 210, 205, 203, 199, 197, } -var yyR1 = [...]int8{ - 0, 56, 57, 57, 11, 11, 11, 11, 11, 11, +var yyR1 = [...]int{ + 0, 58, 59, 59, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 8, 8, 8, 9, 5, 5, 5, 6, 6, 7, 2, 2, 2, 1, 1, 15, 16, 46, 46, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 22, 22, 23, 37, 38, 38, 29, 29, 31, 41, 40, 40, 39, 21, 21, 21, 21, - 17, 48, 24, 43, 43, 42, 42, 45, 45, 45, - 45, 25, 25, 28, 28, 30, 32, 32, 33, 33, - 35, 35, 35, 34, 34, 36, 36, 3, 3, 4, - 4, 26, 26, 27, 27, 44, 44, 47, 12, 13, - 14, 51, 18, 18, 52, 53, 50, 49, 54, 55, - 55, + 48, 48, 48, 47, 47, 17, 50, 24, 43, 43, + 42, 42, 45, 45, 45, 45, 25, 25, 28, 28, + 30, 32, 32, 33, 33, 35, 35, 35, 34, 34, + 36, 36, 3, 3, 4, 4, 26, 26, 27, 27, + 44, 44, 49, 12, 13, 14, 53, 18, 18, 54, + 55, 52, 51, 56, 57, 57, } -var yyR2 = [...]int8{ +var yyR2 = [...]int{ 0, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -351,19 +361,19 @@ var yyR2 = [...]int8{ 0, 2, 4, 2, 4, 3, 4, 3, 3, 2, 2, 2, 2, 4, 4, 3, 2, 2, 4, 3, 1, 2, 5, 1, 2, 2, 2, 2, 2, 2, - 3, 2, 3, 3, 0, 3, 1, 1, 2, 1, - 1, 6, 5, 1, 2, 2, 2, 0, 2, 2, - 1, 1, 1, 3, 0, 3, 0, 1, 1, 1, - 3, 9, 8, 5, 4, 1, 3, 2, 3, 3, - 2, 6, 3, 3, 4, 4, 2, 1, 5, 3, - 3, + 1, 1, 0, 4, 0, 4, 2, 3, 3, 0, + 3, 1, 1, 2, 1, 1, 6, 5, 1, 2, + 2, 2, 0, 2, 2, 1, 1, 1, 3, 0, + 3, 0, 1, 1, 1, 3, 9, 8, 5, 4, + 1, 3, 2, 3, 3, 2, 6, 3, 3, 4, + 4, 2, 1, 5, 3, 3, } -var yyChk = [...]int16{ - -1000, -56, -11, -20, -21, -22, -23, -19, -48, -47, - -17, -18, -50, -49, -51, -52, -53, -54, -55, -37, +var yyChk = [...]int{ + -1000, -58, -11, -20, -21, -22, -23, -19, -50, -49, + -17, -18, -52, -51, -53, -54, -55, -56, -57, -37, 25, 24, 68, 69, 26, 27, 28, 6, 7, 19, - 18, 29, 30, 60, 20, 21, 35, -57, 15, -24, + 18, 29, 30, 60, 20, 21, 35, -59, 15, -24, -25, -26, -27, 44, 37, 42, 49, -24, -25, -26, -27, 70, 70, -13, 42, -12, 37, -14, 44, 49, 72, -13, 42, -13, -15, 4, -16, 64, 4, -8, @@ -372,50 +382,50 @@ var yyChk = [...]int16{ 43, 52, -46, 33, 61, -9, -9, 73, 43, -1, 8, -10, 14, -10, 57, 58, 59, -9, -9, 61, -39, 36, 34, -43, 38, -9, -32, 39, -9, 57, - 59, 55, 71, -10, 61, -9, 61, -9, -46, -2, - 16, -7, -9, -9, -9, -9, 62, 45, -40, -41, - 45, 77, -32, -28, -30, -33, 38, 53, -9, 57, - -4, -3, -8, -10, 14, 55, -44, -8, -5, 4, - 10, 9, -2, -6, 4, 11, 56, -8, -9, -41, - -9, -42, -45, 74, 75, 76, -28, -36, -30, 63, - -34, 40, -9, -9, -4, 12, 23, -44, 12, -2, - 17, -8, -4, 44, 12, 40, -36, 44, 41, 23, - -3, 58, -8, 42, -45, -9, -35, 65, 66, 67, - 58, -9, -29, -31, -9, -9, -36, 12, -34, -36, - -31, + 59, 55, 71, -10, 61, -9, 61, -9, -46, -47, + 81, -2, 16, -7, -9, -9, -9, -9, 62, 45, + -40, -41, 45, 77, -32, -28, -30, -33, 38, 53, + -9, 57, -4, -3, -8, -10, 14, 55, -44, -8, + 56, -5, 4, 10, 9, -2, -6, 4, 11, 56, + -8, -9, -41, -9, -42, -45, 74, 75, 76, -28, + -36, -30, 63, -34, 40, -9, -9, -4, 12, 23, + -44, 12, -7, -2, 17, -8, -4, 44, 12, 40, + -36, 44, 41, 23, -3, 58, -8, -48, 79, 80, + 42, -45, -9, -35, 65, 66, 67, 58, -9, -29, + -31, -9, -9, -36, 12, -34, -36, -31, } -var yyDef = [...]int8{ +var yyDef = [...]int{ 0, -2, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 117, 0, 0, 0, 0, 0, 0, 1, 3, 49, + 122, 0, 0, 0, 0, 0, 0, 1, 3, 49, 50, 51, 52, 0, 0, 0, 0, 66, 67, 68, 69, 0, 0, 41, 0, 43, 0, 40, 0, 0, - 0, 71, 0, 107, 35, 37, 0, 0, 38, 116, + 0, 76, 0, 112, 35, 37, 0, 0, 38, 121, 22, 23, 24, 0, 0, 0, 0, 0, 56, 0, - 0, 74, 25, 87, 0, 0, 0, 0, 0, 55, - 0, 0, 45, 39, 40, 110, 47, 48, 0, 70, - 0, 112, 21, 113, 0, 0, 0, 0, 119, 120, - 57, 0, 0, 72, 0, 87, 0, 0, 0, 0, - 0, 0, 53, 54, 42, 109, 44, 108, 46, 36, - 0, 0, 31, 0, 114, 115, 0, 0, 65, 63, - 0, 0, 0, 96, 83, 94, 0, 0, 86, 0, - 0, 99, 97, 98, 21, 0, 104, 105, 0, 26, - 27, 28, 0, 0, 29, 30, 0, 118, 58, 64, - 0, 73, 76, 77, 79, 80, 96, 82, 84, 0, - 85, 0, 88, 89, 0, 0, 0, 103, 0, 34, - 32, 33, 111, 0, 0, 78, 81, 0, 0, 0, - 100, 0, 106, 0, 75, 95, 93, 90, 91, 92, - 0, 96, 62, 60, 94, 96, 102, 0, 61, 101, - 59, + 0, 79, 25, 92, 0, 0, 0, 0, 0, 55, + 0, 0, 45, 39, 40, 115, 47, 48, 0, 74, + 0, 117, 21, 118, 0, 0, 0, 0, 124, 125, + 57, 0, 0, 77, 0, 92, 0, 0, 0, 0, + 0, 0, 53, 54, 42, 114, 44, 113, 46, 75, + 0, 36, 0, 0, 31, 0, 119, 120, 0, 0, + 65, 63, 0, 0, 0, 101, 88, 99, 0, 0, + 91, 0, 0, 104, 102, 103, 21, 0, 109, 110, + 0, 0, 26, 27, 28, 0, 0, 29, 30, 0, + 123, 58, 64, 0, 78, 81, 82, 84, 85, 101, + 87, 89, 0, 90, 0, 93, 94, 0, 0, 0, + 108, 0, 72, 34, 32, 33, 116, 0, 0, 83, + 86, 0, 0, 0, 105, 0, 111, 73, 70, 71, + 0, 80, 100, 98, 95, 96, 97, 0, 101, 62, + 60, 99, 101, 107, 0, 61, 106, 59, } -var yyTok1 = [...]int8{ +var yyTok1 = [...]int{ 1, } -var yyTok2 = [...]int8{ +var yyTok2 = [...]int{ 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, @@ -423,10 +433,10 @@ var yyTok2 = [...]int8{ 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, } -var yyTok3 = [...]int8{ +var yyTok3 = [...]int{ 0, } @@ -508,9 +518,9 @@ func yyErrorMessage(state, lookAhead int) string { expected := make([]int, 0, 4) // Look for shiftable tokens. - base := int(yyPact[state]) + base := yyPact[state] for tok := TOKSTART; tok-1 < len(yyToknames); tok++ { - if n := base + tok; n >= 0 && n < yyLast && int(yyChk[int(yyAct[n])]) == tok { + if n := base + tok; n >= 0 && n < yyLast && yyChk[yyAct[n]] == tok { if len(expected) == cap(expected) { return res } @@ -520,13 +530,13 @@ func yyErrorMessage(state, lookAhead int) string { if yyDef[state] == -2 { i := 0 - for yyExca[i] != -1 || int(yyExca[i+1]) != state { + for yyExca[i] != -1 || yyExca[i+1] != state { i += 2 } // Look for tokens that we accept or reduce. for i += 2; yyExca[i] >= 0; i += 2 { - tok := int(yyExca[i]) + tok := yyExca[i] if tok < TOKSTART || yyExca[i+1] == 0 { continue } @@ -557,30 +567,30 @@ func yylex1(lex yyLexer, lval *yySymType) (char, token int) { token = 0 char = lex.Lex(lval) if char <= 0 { - token = int(yyTok1[0]) + token = yyTok1[0] goto out } if char < len(yyTok1) { - token = int(yyTok1[char]) + token = yyTok1[char] goto out } if char >= yyPrivate { if char < yyPrivate+len(yyTok2) { - token = int(yyTok2[char-yyPrivate]) + token = yyTok2[char-yyPrivate] goto out } } for i := 0; i < len(yyTok3); i += 2 { - token = int(yyTok3[i+0]) + token = yyTok3[i+0] if token == char { - token = int(yyTok3[i+1]) + token = yyTok3[i+1] goto out } } out: if token == 0 { - token = int(yyTok2[1]) /* unknown char */ + token = yyTok2[1] /* unknown char */ } if yyDebug >= 3 { __yyfmt__.Printf("lex %s(%d)\n", yyTokname(token), uint(char)) @@ -635,7 +645,7 @@ yystack: yyS[yyp].yys = yystate yynewstate: - yyn = int(yyPact[yystate]) + yyn = yyPact[yystate] if yyn <= yyFlag { goto yydefault /* simple state */ } @@ -646,8 +656,8 @@ yynewstate: if yyn < 0 || yyn >= yyLast { goto yydefault } - yyn = int(yyAct[yyn]) - if int(yyChk[yyn]) == yytoken { /* valid shift */ + yyn = yyAct[yyn] + if yyChk[yyn] == yytoken { /* valid shift */ yyrcvr.char = -1 yytoken = -1 yyVAL = yyrcvr.lval @@ -660,7 +670,7 @@ yynewstate: yydefault: /* default state action */ - yyn = int(yyDef[yystate]) + yyn = yyDef[yystate] if yyn == -2 { if yyrcvr.char < 0 { yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval) @@ -669,18 +679,18 @@ yydefault: /* look through exception table */ xi := 0 for { - if yyExca[xi+0] == -1 && int(yyExca[xi+1]) == yystate { + if yyExca[xi+0] == -1 && yyExca[xi+1] == yystate { break } xi += 2 } for xi += 2; ; xi += 2 { - yyn = int(yyExca[xi+0]) + yyn = yyExca[xi+0] if yyn < 0 || yyn == yytoken { break } } - yyn = int(yyExca[xi+1]) + yyn = yyExca[xi+1] if yyn < 0 { goto ret0 } @@ -702,10 +712,10 @@ yydefault: /* find a state where "error" is a legal shift action */ for yyp >= 0 { - yyn = int(yyPact[yyS[yyp].yys]) + yyErrCode + yyn = yyPact[yyS[yyp].yys] + yyErrCode if yyn >= 0 && yyn < yyLast { - yystate = int(yyAct[yyn]) /* simulate a shift of "error" */ - if int(yyChk[yystate]) == yyErrCode { + yystate = yyAct[yyn] /* simulate a shift of "error" */ + if yyChk[yystate] == yyErrCode { goto yystack } } @@ -741,7 +751,7 @@ yydefault: yypt := yyp _ = yypt // guard against "declared and not used" - yyp -= int(yyR2[yyn]) + yyp -= yyR2[yyn] // yyp is now the index of $0. Perform the default action. Iff the // reduced production is ε, $1 is possibly out of range. if yyp+1 >= len(yyS) { @@ -752,16 +762,16 @@ yydefault: yyVAL = yyS[yyp+1] /* consult goto table to find next state */ - yyn = int(yyR1[yyn]) - yyg := int(yyPgo[yyn]) + yyn = yyR1[yyn] + yyg := yyPgo[yyn] yyj := yyg + yyS[yyp].yys + 1 if yyj >= yyLast { - yystate = int(yyAct[yyg]) + yystate = yyAct[yyg] } else { - yystate = int(yyAct[yyj]) - if int(yyChk[yystate]) != -yyn { - yystate = int(yyAct[yyg]) + yystate = yyAct[yyj] + if yyChk[yystate] != -yyn { + yystate = yyAct[yyg] } } // dummy call; replaced with literal code @@ -769,179 +779,179 @@ yydefault: case 2: yyDollar = yyS[yypt-0 : yypt+1] -//line gram.y:222 +//line gram.y:228 { } case 3: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:223 +//line gram.y:229 { } case 4: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:228 +//line gram.y:234 { setParseTree(yylex, yyDollar[1].create) } case 5: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:232 +//line gram.y:238 { setParseTree(yylex, yyDollar[1].create) } case 6: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:236 +//line gram.y:242 { setParseTree(yylex, yyDollar[1].trace) } case 7: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:240 +//line gram.y:246 { setParseTree(yylex, yyDollar[1].stoptrace) } case 8: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:244 +//line gram.y:250 { setParseTree(yylex, yyDollar[1].drop) } case 9: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:248 +//line gram.y:254 { setParseTree(yylex, yyDollar[1].lock) } case 10: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:252 +//line gram.y:258 { setParseTree(yylex, yyDollar[1].unlock) } case 11: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:256 +//line gram.y:262 { setParseTree(yylex, yyDollar[1].show) } case 12: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:260 +//line gram.y:266 { setParseTree(yylex, yyDollar[1].kill) } case 13: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:264 +//line gram.y:270 { setParseTree(yylex, yyDollar[1].listen) } case 14: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:268 +//line gram.y:274 { setParseTree(yylex, yyDollar[1].shutdown) } case 15: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:272 +//line gram.y:278 { setParseTree(yylex, yyDollar[1].split) } case 16: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:276 +//line gram.y:282 { setParseTree(yylex, yyDollar[1].move) } case 17: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:280 +//line gram.y:286 { setParseTree(yylex, yyDollar[1].unite) } case 18: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:284 +//line gram.y:290 { setParseTree(yylex, yyDollar[1].register_router) } case 19: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:288 +//line gram.y:294 { setParseTree(yylex, yyDollar[1].unregister_router) } case 20: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:292 +//line gram.y:298 { setParseTree(yylex, yyDollar[1].alter) } case 21: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:297 +//line gram.y:303 { yyVAL.uinteger = uint(yyDollar[1].uinteger) } case 22: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:302 +//line gram.y:308 { yyVAL.str = string(yyDollar[1].str) } case 23: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:306 +//line gram.y:312 { yyVAL.str = string(yyDollar[1].str) } case 24: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:308 +//line gram.y:314 { yyVAL.str = strconv.Itoa(int(yyDollar[1].uinteger)) } case 25: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:313 +//line gram.y:319 { yyVAL.str = string(yyDollar[1].str) } case 26: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:319 +//line gram.y:325 { yyVAL.str = yyDollar[1].str } case 27: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:321 +//line gram.y:327 { yyVAL.str = "AND" } case 28: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:323 +//line gram.y:329 { yyVAL.str = "OR" } case 29: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:328 +//line gram.y:334 { yyVAL.str = yyDollar[1].str } case 30: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:330 +//line gram.y:336 { yyVAL.str = "=" } case 31: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:336 +//line gram.y:342 { yyVAL.colref = ColumnRef{ ColName: yyDollar[1].str, @@ -949,13 +959,13 @@ yydefault: } case 32: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:344 +//line gram.y:350 { yyVAL.where = yyDollar[2].where } case 33: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:347 +//line gram.y:353 { yyVAL.where = WhereClauseLeaf{ ColRef: yyDollar[1].colref, @@ -965,7 +975,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:355 +//line gram.y:361 { yyVAL.where = WhereClauseOp{ Op: yyDollar[2].str, @@ -975,19 +985,19 @@ yydefault: } case 35: yyDollar = yyS[yypt-0 : yypt+1] -//line gram.y:365 +//line gram.y:371 { yyVAL.where = WhereClauseEmpty{} } case 36: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:369 +//line gram.y:375 { yyVAL.where = yyDollar[2].where } case 37: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:376 +//line gram.y:382 { switch v := strings.ToLower(string(yyDollar[1].str)); v { case DatabasesStr, RoutersStr, PoolsStr, ShardsStr, BackendConnectionsStr, KeyRangesStr, ShardingRules, ClientsStr, StatusStr, DistributionsStr, VersionStr, RelationsStr, TaskGroupStr, PreparedStatementsStr: @@ -998,7 +1008,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:387 +//line gram.y:393 { switch v := string(yyDollar[1].str); v { case ClientStr: @@ -1009,97 +1019,97 @@ yydefault: } case 39: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:397 +//line gram.y:403 { yyVAL.bool = true } case 40: yyDollar = yyS[yypt-0 : yypt+1] -//line gram.y:397 +//line gram.y:403 { yyVAL.bool = false } case 41: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:401 +//line gram.y:407 { yyVAL.drop = &Drop{Element: yyDollar[2].key_range_selector} } case 42: yyDollar = yyS[yypt-4 : yypt+1] -//line gram.y:405 +//line gram.y:411 { yyVAL.drop = &Drop{Element: &KeyRangeSelector{KeyRangeID: `*`}} } case 43: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:409 +//line gram.y:415 { yyVAL.drop = &Drop{Element: yyDollar[2].sharding_rule_selector} } case 44: yyDollar = yyS[yypt-4 : yypt+1] -//line gram.y:413 +//line gram.y:419 { yyVAL.drop = &Drop{Element: &ShardingRuleSelector{ID: `*`}} } case 45: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:417 +//line gram.y:423 { yyVAL.drop = &Drop{Element: yyDollar[2].distribution_selector, CascadeDelete: yyDollar[3].bool} } case 46: yyDollar = yyS[yypt-4 : yypt+1] -//line gram.y:421 +//line gram.y:427 { yyVAL.drop = &Drop{Element: &DistributionSelector{ID: `*`}, CascadeDelete: yyDollar[4].bool} } case 47: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:425 +//line gram.y:431 { yyVAL.drop = &Drop{Element: &ShardSelector{ID: yyDollar[3].str}} } case 48: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:429 +//line gram.y:435 { yyVAL.drop = &Drop{Element: &TaskGroupSelector{}} } case 49: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:436 +//line gram.y:442 { yyVAL.create = &Create{Element: yyDollar[2].ds} } case 50: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:441 +//line gram.y:447 { yyVAL.create = &Create{Element: yyDollar[2].sharding_rule} } case 51: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:446 +//line gram.y:452 { yyVAL.create = &Create{Element: yyDollar[2].kr} } case 52: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:450 +//line gram.y:456 { yyVAL.create = &Create{Element: yyDollar[2].shard} } case 53: yyDollar = yyS[yypt-4 : yypt+1] -//line gram.y:456 +//line gram.y:462 { yyVAL.trace = &TraceStmt{All: true} } case 54: yyDollar = yyS[yypt-4 : yypt+1] -//line gram.y:459 +//line gram.y:465 { yyVAL.trace = &TraceStmt{ Client: yyDollar[4].uinteger, @@ -1107,19 +1117,19 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:467 +//line gram.y:473 { yyVAL.stoptrace = &StopTraceStmt{} } case 56: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:473 +//line gram.y:479 { yyVAL.alter = &Alter{Element: yyDollar[2].alter_distribution} } case 57: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:479 +//line gram.y:485 { yyVAL.alter_distribution = &AlterDistribution{ Element: &AttachRelation{ @@ -1130,7 +1140,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-4 : yypt+1] -//line gram.y:488 +//line gram.y:494 { yyVAL.alter_distribution = &AlterDistribution{ Element: &DetachRelation{ @@ -1141,13 +1151,13 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:500 +//line gram.y:506 { yyVAL.dEntrieslist = append(yyDollar[1].dEntrieslist, yyDollar[3].distrKeyEntry) } case 60: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:502 +//line gram.y:508 { yyVAL.dEntrieslist = []DistributionKeyEntry{ yyDollar[1].distrKeyEntry, @@ -1155,7 +1165,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:512 +//line gram.y:518 { yyVAL.distrKeyEntry = DistributionKeyEntry{ Column: yyDollar[1].str, @@ -1164,7 +1174,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-5 : yypt+1] -//line gram.y:521 +//line gram.y:527 { yyVAL.distributed_relation = &DistributedRelation{ Name: yyDollar[2].str, @@ -1173,127 +1183,157 @@ yydefault: } case 63: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:530 +//line gram.y:536 { yyVAL.relations = []*DistributedRelation{yyDollar[1].distributed_relation} } case 64: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:532 +//line gram.y:538 { yyVAL.relations = append(yyDollar[1].relations, yyDollar[2].distributed_relation) } case 65: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:537 +//line gram.y:543 { yyVAL.relations = yyDollar[2].relations } case 66: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:543 +//line gram.y:549 { yyVAL.create = &Create{Element: yyDollar[2].ds} } case 67: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:548 +//line gram.y:554 { yyVAL.create = &Create{Element: yyDollar[2].sharding_rule} } case 68: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:553 +//line gram.y:559 { yyVAL.create = &Create{Element: yyDollar[2].kr} } case 69: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:557 +//line gram.y:563 { yyVAL.create = &Create{Element: yyDollar[2].shard} } case 70: - yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:564 + yyDollar = yyS[yypt-1 : yypt+1] +//line gram.y:568 { - yyVAL.show = &Show{Cmd: yyDollar[2].str, Where: yyDollar[3].where} + yyVAL.opt_asc_desc = &SortByAsc{} } case 71: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] +//line gram.y:569 + { + yyVAL.opt_asc_desc = &SortByDesc{} + } + case 72: + yyDollar = yyS[yypt-0 : yypt+1] //line gram.y:570 + { + yyVAL.opt_asc_desc = &SortByAsc{} + } + case 73: + yyDollar = yyS[yypt-4 : yypt+1] +//line gram.y:573 + { + yyVAL.order_clause = &Order{Col: yyDollar[2].str, Order: yyDollar[3].colref} + } + case 74: + yyDollar = yyS[yypt-0 : yypt+1] +//line gram.y:574 + { + yyVAL.order_clause = &OrderEmpty{} + } + case 75: + yyDollar = yyS[yypt-4 : yypt+1] +//line gram.y:579 + { + yyVAL.show = &Show{Cmd: yyDollar[2].str, Where: yyDollar[3].where, Order: yyDollar[4].order_clause} + } + case 76: + yyDollar = yyS[yypt-2 : yypt+1] +//line gram.y:584 { yyVAL.lock = &Lock{KeyRangeID: yyDollar[2].key_range_selector.KeyRangeID} } - case 72: + case 77: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:578 +//line gram.y:592 { yyVAL.ds = &DistributionDefinition{ ID: yyDollar[2].str, ColTypes: yyDollar[3].strlist, } } - case 73: + case 78: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:586 +//line gram.y:600 { yyVAL.strlist = yyDollar[3].strlist } - case 74: + case 79: yyDollar = yyS[yypt-0 : yypt+1] -//line gram.y:588 +//line gram.y:602 { /* empty column types should be prohibited */ yyVAL.strlist = nil } - case 75: + case 80: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:594 +//line gram.y:608 { yyVAL.strlist = append(yyDollar[1].strlist, yyDollar[3].str) } - case 76: + case 81: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:596 +//line gram.y:610 { yyVAL.strlist = []string{ yyDollar[1].str, } } - case 77: + case 82: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:603 +//line gram.y:617 { yyVAL.str = "varchar" } - case 78: + case 83: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:605 +//line gram.y:619 { yyVAL.str = "varchar hashed" } - case 79: + case 84: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:607 +//line gram.y:621 { yyVAL.str = "integer" } - case 80: + case 85: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:609 +//line gram.y:623 { yyVAL.str = "integer" } - case 81: + case 86: yyDollar = yyS[yypt-6 : yypt+1] -//line gram.y:615 +//line gram.y:629 { yyVAL.sharding_rule = &ShardingRuleDefinition{ID: yyDollar[3].str, TableName: yyDollar[4].str, Entries: yyDollar[5].entrieslist, Distribution: yyDollar[6].str} } - case 82: + case 87: yyDollar = yyS[yypt-5 : yypt+1] -//line gram.y:620 +//line gram.y:634 { str, err := randomHex(6) if err != nil { @@ -1301,111 +1341,111 @@ yydefault: } yyVAL.sharding_rule = &ShardingRuleDefinition{ID: "shrule" + str, TableName: yyDollar[3].str, Entries: yyDollar[4].entrieslist, Distribution: yyDollar[5].str} } - case 83: + case 88: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:629 +//line gram.y:643 { yyVAL.entrieslist = make([]ShardingRuleEntry, 0) yyVAL.entrieslist = append(yyVAL.entrieslist, yyDollar[1].shruleEntry) } - case 84: + case 89: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:635 +//line gram.y:649 { yyVAL.entrieslist = append(yyDollar[1].entrieslist, yyDollar[2].shruleEntry) } - case 85: + case 90: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:641 +//line gram.y:655 { yyVAL.shruleEntry = ShardingRuleEntry{ Column: yyDollar[1].str, HashFunction: yyDollar[2].str, } } - case 86: + case 91: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:650 +//line gram.y:664 { yyVAL.str = yyDollar[2].str } - case 87: + case 92: yyDollar = yyS[yypt-0 : yypt+1] -//line gram.y:653 +//line gram.y:667 { yyVAL.str = "" } - case 88: + case 93: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:657 +//line gram.y:671 { yyVAL.str = yyDollar[2].str } - case 89: + case 94: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:662 +//line gram.y:676 { yyVAL.str = yyDollar[2].str } - case 90: + case 95: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:668 +//line gram.y:682 { yyVAL.str = "identity" } - case 91: + case 96: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:670 +//line gram.y:684 { yyVAL.str = "murmur" } - case 92: + case 97: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:672 +//line gram.y:686 { yyVAL.str = "city" } - case 93: + case 98: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:678 +//line gram.y:692 { yyVAL.str = yyDollar[3].str } - case 94: + case 99: yyDollar = yyS[yypt-0 : yypt+1] -//line gram.y:680 +//line gram.y:694 { yyVAL.str = "" } - case 95: + case 100: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:685 +//line gram.y:699 { yyVAL.str = yyDollar[3].str } - case 96: + case 101: yyDollar = yyS[yypt-0 : yypt+1] -//line gram.y:687 +//line gram.y:701 { yyVAL.str = "default" } - case 97: + case 102: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:692 +//line gram.y:706 { yyVAL.bytes = []byte(yyDollar[1].str) } - case 98: + case 103: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:695 +//line gram.y:709 { buf := make([]byte, 8) binary.PutVarint(buf, int64(yyDollar[1].uinteger)) yyVAL.bytes = buf } - case 99: + case 104: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:702 +//line gram.y:716 { yyVAL.krbound = &KeyRangeBound{ Pivots: [][]byte{ @@ -1413,17 +1453,17 @@ yydefault: }, } } - case 100: + case 105: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:709 +//line gram.y:723 { yyVAL.krbound = &KeyRangeBound{ Pivots: append(yyDollar[1].krbound.Pivots, yyDollar[3].bytes), } } - case 101: + case 106: yyDollar = yyS[yypt-9 : yypt+1] -//line gram.y:718 +//line gram.y:732 { yyVAL.kr = &KeyRangeDefinition{ KeyRangeID: yyDollar[3].str, @@ -1432,9 +1472,9 @@ yydefault: Distribution: yyDollar[9].str, } } - case 102: + case 107: yyDollar = yyS[yypt-8 : yypt+1] -//line gram.y:727 +//line gram.y:741 { str, err := randomHex(6) if err != nil { @@ -1447,15 +1487,15 @@ yydefault: KeyRangeID: "kr" + str, } } - case 103: + case 108: yyDollar = yyS[yypt-5 : yypt+1] -//line gram.y:742 +//line gram.y:756 { yyVAL.shard = &ShardDefinition{Id: yyDollar[2].str, Hosts: yyDollar[5].strlist} } - case 104: + case 109: yyDollar = yyS[yypt-4 : yypt+1] -//line gram.y:747 +//line gram.y:761 { str, err := randomHex(6) if err != nil { @@ -1463,99 +1503,99 @@ yydefault: } yyVAL.shard = &ShardDefinition{Id: "shard" + str, Hosts: yyDollar[4].strlist} } - case 105: + case 110: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:757 +//line gram.y:771 { yyVAL.strlist = []string{yyDollar[1].str} } - case 106: + case 111: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:762 +//line gram.y:776 { yyVAL.strlist = append(yyDollar[1].strlist, yyDollar[3].str) } - case 107: + case 112: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:768 +//line gram.y:782 { yyVAL.unlock = &Unlock{KeyRangeID: yyDollar[2].key_range_selector.KeyRangeID} } - case 108: + case 113: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:774 +//line gram.y:788 { yyVAL.sharding_rule_selector = &ShardingRuleSelector{ID: yyDollar[3].str} } - case 109: + case 114: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:780 +//line gram.y:794 { yyVAL.key_range_selector = &KeyRangeSelector{KeyRangeID: yyDollar[3].str} } - case 110: + case 115: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:786 +//line gram.y:800 { yyVAL.distribution_selector = &DistributionSelector{ID: yyDollar[2].str} } - case 111: + case 116: yyDollar = yyS[yypt-6 : yypt+1] -//line gram.y:792 +//line gram.y:806 { yyVAL.split = &SplitKeyRange{KeyRangeID: yyDollar[2].key_range_selector.KeyRangeID, KeyRangeFromID: yyDollar[4].str, Border: yyDollar[6].krbound} } - case 112: + case 117: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:798 +//line gram.y:812 { yyVAL.kill = &Kill{Cmd: yyDollar[2].str, Target: yyDollar[3].uinteger} } - case 113: + case 118: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:801 +//line gram.y:815 { yyVAL.kill = &Kill{Cmd: "client", Target: yyDollar[3].uinteger} } - case 114: + case 119: yyDollar = yyS[yypt-4 : yypt+1] -//line gram.y:807 +//line gram.y:821 { yyVAL.move = &MoveKeyRange{KeyRangeID: yyDollar[2].key_range_selector.KeyRangeID, DestShardID: yyDollar[4].str} } - case 115: + case 120: yyDollar = yyS[yypt-4 : yypt+1] -//line gram.y:813 +//line gram.y:827 { yyVAL.unite = &UniteKeyRange{KeyRangeIDL: yyDollar[2].key_range_selector.KeyRangeID, KeyRangeIDR: yyDollar[4].str} } - case 116: + case 121: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:819 +//line gram.y:833 { yyVAL.listen = &Listen{addr: yyDollar[2].str} } - case 117: + case 122: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:825 +//line gram.y:839 { yyVAL.shutdown = &Shutdown{} } - case 118: + case 123: yyDollar = yyS[yypt-5 : yypt+1] -//line gram.y:833 +//line gram.y:847 { yyVAL.register_router = &RegisterRouter{ID: yyDollar[3].str, Addr: yyDollar[5].str} } - case 119: + case 124: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:839 +//line gram.y:853 { yyVAL.unregister_router = &UnregisterRouter{ID: yyDollar[3].str} } - case 120: + case 125: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:844 +//line gram.y:858 { yyVAL.unregister_router = &UnregisterRouter{ID: `*`} } diff --git a/yacc/console/lex.go b/yacc/console/lex.go index 778150994..d50f272af 100644 --- a/yacc/console/lex.go +++ b/yacc/console/lex.go @@ -10,7 +10,7 @@ import ( -//line lex.go:12 +//line lex.go:14 const lexer_start int = 4 const lexer_first_final int = 4 const lexer_error int = 0 @@ -36,7 +36,7 @@ func NewLexer(data []byte) *Lexer { pe: len(data), } -//line lex.go:36 +//line lex.go:40 { lex.cs = lexer_start lex.ts = 0 @@ -52,7 +52,7 @@ func ResetLexer(lex *Lexer, data []byte) { lex.pe = len(data) lex.data = data -//line lex.go:50 +//line lex.go:56 { lex.cs = lexer_start lex.ts = 0 @@ -73,7 +73,7 @@ func (lex *Lexer) Lex(lval *yySymType) int { var tok int -//line lex.go:69 +//line lex.go:77 { if ( lex.p) == ( lex.pe) { goto _test_eof @@ -212,7 +212,7 @@ tr24: //line NONE:1 lex.ts = ( lex.p) -//line lex.go:208 +//line lex.go:216 switch lex.data[( lex.p)] { case 32: goto st5 @@ -307,7 +307,7 @@ tr17: goto _test_eof6 } st_case_6: -//line lex.go:303 +//line lex.go:311 switch lex.data[( lex.p)] { case 33: goto tr8 @@ -356,7 +356,7 @@ tr19: goto _test_eof7 } st_case_7: -//line lex.go:352 +//line lex.go:360 switch lex.data[( lex.p)] { case 34: goto tr19 @@ -511,7 +511,7 @@ tr15: goto _test_eof12 } st_case_12: -//line lex.go:507 +//line lex.go:515 switch lex.data[( lex.p)] { case 34: goto st8 @@ -572,7 +572,7 @@ tr5: goto _test_eof13 } st_case_13: -//line lex.go:568 +//line lex.go:576 if lex.data[( lex.p)] == 42 { goto st3 } From 0ac5438dbaf4172f766fa570f12099c6271dc494 Mon Sep 17 00:00:00 2001 From: Victor Date: Tue, 20 Aug 2024 05:04:35 +0000 Subject: [PATCH 03/18] =?UTF-8?q?=D0=BE=D1=87=D0=B5=D0=BF=D1=8F=D1=82?= =?UTF-8?q?=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yacc/console/gram.go | 2 +- yacc/console/gram.y | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/yacc/console/gram.go b/yacc/console/gram.go index 952851270..201253228 100644 --- a/yacc/console/gram.go +++ b/yacc/console/gram.go @@ -88,7 +88,7 @@ type yySymType struct { where WhereClauseNode order_clause OrderClause - opt_asc_desc OptAscDest + opt_asc_desc OptAscDesc } const IDENT = 57346 diff --git a/yacc/console/gram.y b/yacc/console/gram.y index d2e14e312..cd9f525d1 100644 --- a/yacc/console/gram.y +++ b/yacc/console/gram.y @@ -87,7 +87,7 @@ func randomHex(n int) (string, error) { where WhereClauseNode order_clause OrderClause - opt_asc_desc OptAscDest + opt_asc_desc OptAscDesc } // any non-terminal which returns a value needs a type, which is From d3f3d3c2b357357b4878ad7209b5b3c11cebf15f Mon Sep 17 00:00:00 2001 From: Victor Date: Tue, 20 Aug 2024 05:25:35 +0000 Subject: [PATCH 04/18] fix all --- pkg/clientinteractor/interactor.go | 2 +- yacc/console/ast.go | 4 +- yacc/console/gram.go | 110 ++++++++++++++--------------- yacc/console/gram.y | 5 +- 4 files changed, 62 insertions(+), 59 deletions(-) diff --git a/pkg/clientinteractor/interactor.go b/pkg/clientinteractor/interactor.go index 39bbab9d8..7dc8a99a5 100644 --- a/pkg/clientinteractor/interactor.go +++ b/pkg/clientinteractor/interactor.go @@ -768,7 +768,7 @@ func (pi *PSQLInteractor) Clients(ctx context.Context, clients []client.ClientIn ord := order.(spqrparser.Order) var asc_desc int - switch ord.Order.(type) { + switch ord.OptAscDesc.(type) { case spqrparser.SortByAsc: asc_desc = ASC case spqrparser.SortByDesc: diff --git a/yacc/console/ast.go b/yacc/console/ast.go index 94cd0ccae..a7d80519d 100644 --- a/yacc/console/ast.go +++ b/yacc/console/ast.go @@ -19,8 +19,8 @@ type OrderClause interface{} type Order struct { OrderClause - Order OptAscDesc - Col ColumnRef + OptAscDesc OptAscDesc + Col ColumnRef } type OrderEmpty struct { diff --git a/yacc/console/gram.go b/yacc/console/gram.go index 201253228..f22416d47 100644 --- a/yacc/console/gram.go +++ b/yacc/console/gram.go @@ -260,7 +260,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line gram.y:861 +//line gram.y:864 //line yacctab:1 var yyExca = [...]int{ @@ -1243,31 +1243,31 @@ yydefault: } case 73: yyDollar = yyS[yypt-4 : yypt+1] -//line gram.y:573 +//line gram.y:574 { - yyVAL.order_clause = &Order{Col: yyDollar[2].str, Order: yyDollar[3].colref} + yyVAL.order_clause = &Order{Col: yyDollar[3].colref, OptAscDesc: yyDollar[4].opt_asc_desc} } case 74: yyDollar = yyS[yypt-0 : yypt+1] -//line gram.y:574 +//line gram.y:577 { yyVAL.order_clause = &OrderEmpty{} } case 75: yyDollar = yyS[yypt-4 : yypt+1] -//line gram.y:579 +//line gram.y:582 { yyVAL.show = &Show{Cmd: yyDollar[2].str, Where: yyDollar[3].where, Order: yyDollar[4].order_clause} } case 76: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:584 +//line gram.y:587 { yyVAL.lock = &Lock{KeyRangeID: yyDollar[2].key_range_selector.KeyRangeID} } case 77: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:592 +//line gram.y:595 { yyVAL.ds = &DistributionDefinition{ ID: yyDollar[2].str, @@ -1276,26 +1276,26 @@ yydefault: } case 78: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:600 +//line gram.y:603 { yyVAL.strlist = yyDollar[3].strlist } case 79: yyDollar = yyS[yypt-0 : yypt+1] -//line gram.y:602 +//line gram.y:605 { /* empty column types should be prohibited */ yyVAL.strlist = nil } case 80: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:608 +//line gram.y:611 { yyVAL.strlist = append(yyDollar[1].strlist, yyDollar[3].str) } case 81: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:610 +//line gram.y:613 { yyVAL.strlist = []string{ yyDollar[1].str, @@ -1303,37 +1303,37 @@ yydefault: } case 82: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:617 +//line gram.y:620 { yyVAL.str = "varchar" } case 83: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:619 +//line gram.y:622 { yyVAL.str = "varchar hashed" } case 84: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:621 +//line gram.y:624 { yyVAL.str = "integer" } case 85: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:623 +//line gram.y:626 { yyVAL.str = "integer" } case 86: yyDollar = yyS[yypt-6 : yypt+1] -//line gram.y:629 +//line gram.y:632 { yyVAL.sharding_rule = &ShardingRuleDefinition{ID: yyDollar[3].str, TableName: yyDollar[4].str, Entries: yyDollar[5].entrieslist, Distribution: yyDollar[6].str} } case 87: yyDollar = yyS[yypt-5 : yypt+1] -//line gram.y:634 +//line gram.y:637 { str, err := randomHex(6) if err != nil { @@ -1343,20 +1343,20 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:643 +//line gram.y:646 { yyVAL.entrieslist = make([]ShardingRuleEntry, 0) yyVAL.entrieslist = append(yyVAL.entrieslist, yyDollar[1].shruleEntry) } case 89: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:649 +//line gram.y:652 { yyVAL.entrieslist = append(yyDollar[1].entrieslist, yyDollar[2].shruleEntry) } case 90: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:655 +//line gram.y:658 { yyVAL.shruleEntry = ShardingRuleEntry{ Column: yyDollar[1].str, @@ -1365,79 +1365,79 @@ yydefault: } case 91: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:664 +//line gram.y:667 { yyVAL.str = yyDollar[2].str } case 92: yyDollar = yyS[yypt-0 : yypt+1] -//line gram.y:667 +//line gram.y:670 { yyVAL.str = "" } case 93: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:671 +//line gram.y:674 { yyVAL.str = yyDollar[2].str } case 94: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:676 +//line gram.y:679 { yyVAL.str = yyDollar[2].str } case 95: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:682 +//line gram.y:685 { yyVAL.str = "identity" } case 96: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:684 +//line gram.y:687 { yyVAL.str = "murmur" } case 97: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:686 +//line gram.y:689 { yyVAL.str = "city" } case 98: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:692 +//line gram.y:695 { yyVAL.str = yyDollar[3].str } case 99: yyDollar = yyS[yypt-0 : yypt+1] -//line gram.y:694 +//line gram.y:697 { yyVAL.str = "" } case 100: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:699 +//line gram.y:702 { yyVAL.str = yyDollar[3].str } case 101: yyDollar = yyS[yypt-0 : yypt+1] -//line gram.y:701 +//line gram.y:704 { yyVAL.str = "default" } case 102: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:706 +//line gram.y:709 { yyVAL.bytes = []byte(yyDollar[1].str) } case 103: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:709 +//line gram.y:712 { buf := make([]byte, 8) binary.PutVarint(buf, int64(yyDollar[1].uinteger)) @@ -1445,7 +1445,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:716 +//line gram.y:719 { yyVAL.krbound = &KeyRangeBound{ Pivots: [][]byte{ @@ -1455,7 +1455,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:723 +//line gram.y:726 { yyVAL.krbound = &KeyRangeBound{ Pivots: append(yyDollar[1].krbound.Pivots, yyDollar[3].bytes), @@ -1463,7 +1463,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-9 : yypt+1] -//line gram.y:732 +//line gram.y:735 { yyVAL.kr = &KeyRangeDefinition{ KeyRangeID: yyDollar[3].str, @@ -1474,7 +1474,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-8 : yypt+1] -//line gram.y:741 +//line gram.y:744 { str, err := randomHex(6) if err != nil { @@ -1489,13 +1489,13 @@ yydefault: } case 108: yyDollar = yyS[yypt-5 : yypt+1] -//line gram.y:756 +//line gram.y:759 { yyVAL.shard = &ShardDefinition{Id: yyDollar[2].str, Hosts: yyDollar[5].strlist} } case 109: yyDollar = yyS[yypt-4 : yypt+1] -//line gram.y:761 +//line gram.y:764 { str, err := randomHex(6) if err != nil { @@ -1505,97 +1505,97 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:771 +//line gram.y:774 { yyVAL.strlist = []string{yyDollar[1].str} } case 111: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:776 +//line gram.y:779 { yyVAL.strlist = append(yyDollar[1].strlist, yyDollar[3].str) } case 112: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:782 +//line gram.y:785 { yyVAL.unlock = &Unlock{KeyRangeID: yyDollar[2].key_range_selector.KeyRangeID} } case 113: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:788 +//line gram.y:791 { yyVAL.sharding_rule_selector = &ShardingRuleSelector{ID: yyDollar[3].str} } case 114: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:794 +//line gram.y:797 { yyVAL.key_range_selector = &KeyRangeSelector{KeyRangeID: yyDollar[3].str} } case 115: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:800 +//line gram.y:803 { yyVAL.distribution_selector = &DistributionSelector{ID: yyDollar[2].str} } case 116: yyDollar = yyS[yypt-6 : yypt+1] -//line gram.y:806 +//line gram.y:809 { yyVAL.split = &SplitKeyRange{KeyRangeID: yyDollar[2].key_range_selector.KeyRangeID, KeyRangeFromID: yyDollar[4].str, Border: yyDollar[6].krbound} } case 117: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:812 +//line gram.y:815 { yyVAL.kill = &Kill{Cmd: yyDollar[2].str, Target: yyDollar[3].uinteger} } case 118: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:815 +//line gram.y:818 { yyVAL.kill = &Kill{Cmd: "client", Target: yyDollar[3].uinteger} } case 119: yyDollar = yyS[yypt-4 : yypt+1] -//line gram.y:821 +//line gram.y:824 { yyVAL.move = &MoveKeyRange{KeyRangeID: yyDollar[2].key_range_selector.KeyRangeID, DestShardID: yyDollar[4].str} } case 120: yyDollar = yyS[yypt-4 : yypt+1] -//line gram.y:827 +//line gram.y:830 { yyVAL.unite = &UniteKeyRange{KeyRangeIDL: yyDollar[2].key_range_selector.KeyRangeID, KeyRangeIDR: yyDollar[4].str} } case 121: yyDollar = yyS[yypt-2 : yypt+1] -//line gram.y:833 +//line gram.y:836 { yyVAL.listen = &Listen{addr: yyDollar[2].str} } case 122: yyDollar = yyS[yypt-1 : yypt+1] -//line gram.y:839 +//line gram.y:842 { yyVAL.shutdown = &Shutdown{} } case 123: yyDollar = yyS[yypt-5 : yypt+1] -//line gram.y:847 +//line gram.y:850 { yyVAL.register_router = &RegisterRouter{ID: yyDollar[3].str, Addr: yyDollar[5].str} } case 124: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:853 +//line gram.y:856 { yyVAL.unregister_router = &UnregisterRouter{ID: yyDollar[3].str} } case 125: yyDollar = yyS[yypt-3 : yypt+1] -//line gram.y:858 +//line gram.y:861 { yyVAL.unregister_router = &UnregisterRouter{ID: `*`} } diff --git a/yacc/console/gram.y b/yacc/console/gram.y index cd9f525d1..d7a8b4f3b 100644 --- a/yacc/console/gram.y +++ b/yacc/console/gram.y @@ -570,7 +570,10 @@ opt_asc_desc: ASC { $$ = &SortByAsc{} } | /*EMPTY*/ { $$ = &SortByAsc{} } order_clause: - ORDER BY ColRef opt_asc_desc {$$ = &Order{Col:$2, Order:$3}} + ORDER BY ColRef opt_asc_desc + { + $$ = &Order{Col:$3, OptAscDesc:$4} + } | /* empty */ {$$ = &OrderEmpty{}} From 0c66a48612a7b3c62aab7db19f80413b424ab2ac Mon Sep 17 00:00:00 2001 From: Victor Date: Tue, 20 Aug 2024 09:37:39 +0000 Subject: [PATCH 05/18] for tests --- pkg/clientinteractor/interactor.go | 4 +++- yacc/console/ast.go | 4 ---- yacc/console/gram.go | 4 ++-- yacc/console/gram.y | 4 ++-- 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/pkg/clientinteractor/interactor.go b/pkg/clientinteractor/interactor.go index 7dc8a99a5..c3a672603 100644 --- a/pkg/clientinteractor/interactor.go +++ b/pkg/clientinteractor/interactor.go @@ -773,8 +773,10 @@ func (pi *PSQLInteractor) Clients(ctx context.Context, clients []client.ClientIn asc_desc = ASC case spqrparser.SortByDesc: asc_desc = DESC - default: + case spqrparser.SortByDefault: asc_desc = ASC + default: + return fmt.Errorf("wrong sorting option (asc/desc)") } sortable := SortableWithContext{data, rowDesc[ord.Col.ColName], asc_desc} sort.Sort(sortable) diff --git a/yacc/console/ast.go b/yacc/console/ast.go index a7d80519d..c84c20889 100644 --- a/yacc/console/ast.go +++ b/yacc/console/ast.go @@ -23,10 +23,6 @@ type Order struct { Col ColumnRef } -type OrderEmpty struct { - OrderClause -} - type WhereClauseNode interface { } diff --git a/yacc/console/gram.go b/yacc/console/gram.go index f22416d47..b1c6c76af 100644 --- a/yacc/console/gram.go +++ b/yacc/console/gram.go @@ -1239,7 +1239,7 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] //line gram.y:570 { - yyVAL.opt_asc_desc = &SortByAsc{} + yyVAL.opt_asc_desc = &SortByDefault{} } case 73: yyDollar = yyS[yypt-4 : yypt+1] @@ -1251,7 +1251,7 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] //line gram.y:577 { - yyVAL.order_clause = &OrderEmpty{} + yyVAL.order_clause = OrderClause(nil) } case 75: yyDollar = yyS[yypt-4 : yypt+1] diff --git a/yacc/console/gram.y b/yacc/console/gram.y index d7a8b4f3b..f6ed6e80a 100644 --- a/yacc/console/gram.y +++ b/yacc/console/gram.y @@ -567,14 +567,14 @@ create_stmt: opt_asc_desc: ASC { $$ = &SortByAsc{} } | DESC { $$ = &SortByDesc{} } - | /*EMPTY*/ { $$ = &SortByAsc{} } + | /*EMPTY*/ { $$ = &SortByDefault{} } order_clause: ORDER BY ColRef opt_asc_desc { $$ = &Order{Col:$3, OptAscDesc:$4} } - | /* empty */ {$$ = &OrderEmpty{}} + | /* empty */ {$$ = OrderClause(nil)} show_stmt: From 9f698dd08600d6cd375befa2d673c99795d4e89d Mon Sep 17 00:00:00 2001 From: Victor Date: Tue, 20 Aug 2024 12:37:55 +0000 Subject: [PATCH 06/18] Make private fields public --- pkg/clientinteractor/interactor.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pkg/clientinteractor/interactor.go b/pkg/clientinteractor/interactor.go index c3a672603..f735e5fc1 100644 --- a/pkg/clientinteractor/interactor.go +++ b/pkg/clientinteractor/interactor.go @@ -796,18 +796,18 @@ const ( ) type SortableWithContext struct { - data [][]string - col_index int - order int + Data [][]string + Col_index int + Order int } -func (a SortableWithContext) Len() int { return len(a.data) } -func (a SortableWithContext) Swap(i, j int) { a.data[i], a.data[j] = a.data[j], a.data[i] } +func (a SortableWithContext) Len() int { return len(a.Data) } +func (a SortableWithContext) Swap(i, j int) { a.Data[i], a.Data[j] = a.Data[j], a.Data[i] } func (a SortableWithContext) Less(i, j int) bool { - if a.order == ASC { - return a.data[i][a.col_index] < a.data[j][a.col_index] + if a.Order == ASC { + return a.Data[i][a.Col_index] < a.Data[j][a.Col_index] } else { - return a.data[i][a.col_index] > a.data[j][a.col_index] + return a.Data[i][a.Col_index] > a.Data[j][a.Col_index] } } From a4f0499c8a9f92be9ec122d16415fe51f26eca2d Mon Sep 17 00:00:00 2001 From: Victor Date: Tue, 20 Aug 2024 12:38:07 +0000 Subject: [PATCH 07/18] Add test --- pkg/clientinteractor/interactor_test.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/pkg/clientinteractor/interactor_test.go b/pkg/clientinteractor/interactor_test.go index bd61c5762..60d83553f 100644 --- a/pkg/clientinteractor/interactor_test.go +++ b/pkg/clientinteractor/interactor_test.go @@ -1,9 +1,11 @@ package clientinteractor_test import ( + "sort" + "testing" + "github.com/golang/mock/gomock" mock "github.com/pg-sharding/spqr/pkg/mock/clientinteractor" - "testing" "github.com/stretchr/testify/assert" @@ -175,3 +177,11 @@ func TestGetColumnsMap(t *testing.T) { } } + +func TestSortableWithContext(t *testing.T) { + data := [][]string{[]string{"a", "b"}, []string{"b", "a"}} + rev_data := [][]string{[]string{"b", "a"}, []string{"a", "b"}} + sortable := clientinteractor.SortableWithContext{data, 0, clientinteractor.DESC} + sort.Sort(sortable) + assert.Equal(t, data, rev_data) +} From 5c044fa07db7f0c9a4ec33ce29ccef79cbc1429f Mon Sep 17 00:00:00 2001 From: Victor Date: Tue, 20 Aug 2024 14:36:30 +0000 Subject: [PATCH 08/18] fix linter errors --- pkg/auth/krb5.go | 5 +++-- pkg/models/spqrerror/spqrerror.go | 4 ++-- router/statistics/query_time_statistics.go | 3 ++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/pkg/auth/krb5.go b/pkg/auth/krb5.go index 266d7d9dc..6aa961e6d 100644 --- a/pkg/auth/krb5.go +++ b/pkg/auth/krb5.go @@ -3,13 +3,14 @@ package auth import ( "encoding/hex" "fmt" + "log" + "github.com/jackc/pgx/v5/pgproto3" "github.com/jcmturner/gokrb5/v8/credentials" "github.com/jcmturner/gokrb5/v8/gssapi" "github.com/jcmturner/gokrb5/v8/keytab" "github.com/jcmturner/gokrb5/v8/service" "github.com/pg-sharding/spqr/pkg/client" - "log" ) type BaseAuthModule struct { @@ -96,7 +97,7 @@ func (k *Kerberos) Process(cl client.Client) (cred *credentials.Credentials, err if status.Code == gssapi.StatusContinueNeeded { errText := "Kerberos GSS-API continue needed" log.Print(errText) - return nil, fmt.Errorf(errText) + return nil, fmt.Errorf("%s", errText) } if authed { ctx := st.Context() diff --git a/pkg/models/spqrerror/spqrerror.go b/pkg/models/spqrerror/spqrerror.go index e73f2493f..bbaab6fce 100644 --- a/pkg/models/spqrerror/spqrerror.go +++ b/pkg/models/spqrerror/spqrerror.go @@ -79,7 +79,7 @@ type SpqrError struct { // - *SpqrError: The created SpqrError. func New(errorCode string, errorMsg string) *SpqrError { err := &SpqrError{ - Err: fmt.Errorf(errorMsg), + Err: fmt.Errorf("%s", errorMsg), ErrorCode: errorCode, } return err @@ -95,7 +95,7 @@ func New(errorCode string, errorMsg string) *SpqrError { // - *SpqrError: The created SpqrError. func NewByCode(errorCode string) *SpqrError { err := &SpqrError{ - Err: fmt.Errorf(GetMessageByCode(errorCode)), + Err: fmt.Errorf("%s", GetMessageByCode(errorCode)), ErrorCode: errorCode, } return err diff --git a/router/statistics/query_time_statistics.go b/router/statistics/query_time_statistics.go index fdd876b4f..6f306d123 100644 --- a/router/statistics/query_time_statistics.go +++ b/router/statistics/query_time_statistics.go @@ -38,7 +38,8 @@ var queryStatistics = statistics{ func InitStatistics(q []float64) { queryStatistics.Quantiles = q - if queryStatistics.Quantiles != nil && len(queryStatistics.Quantiles) > 0 { + + if len(queryStatistics.Quantiles) > 0 { // also not nil queryStatistics.NeedToCollectData = false } else { queryStatistics.NeedToCollectData = true From a0b9cd7761646646756dc4d5bb09175fcb10df03 Mon Sep 17 00:00:00 2001 From: Victor Date: Mon, 2 Sep 2024 12:12:19 +0000 Subject: [PATCH 09/18] non-working test --- pkg/clientinteractor/interactor_test.go | 56 ++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/pkg/clientinteractor/interactor_test.go b/pkg/clientinteractor/interactor_test.go index 60d83553f..936d46fbd 100644 --- a/pkg/clientinteractor/interactor_test.go +++ b/pkg/clientinteractor/interactor_test.go @@ -1,12 +1,15 @@ package clientinteractor_test import ( + "context" "sort" "testing" "github.com/golang/mock/gomock" + pkgclient "github.com/pg-sharding/spqr/pkg/client" mock "github.com/pg-sharding/spqr/pkg/mock/clientinteractor" - + proto "github.com/pg-sharding/spqr/pkg/protos" + "github.com/pg-sharding/spqr/router/client" "github.com/stretchr/testify/assert" "github.com/pg-sharding/spqr/pkg/clientinteractor" @@ -185,3 +188,54 @@ func TestSortableWithContext(t *testing.T) { sort.Sort(sortable) assert.Equal(t, data, rev_data) } + +func TestClientsOrderBy(t *testing.T) { + var v1, v2, v3, v4, v5, v6 proto.UsedShardInfo + v1.Instance.Hostname = "abracadabra1" + v2.Instance.Hostname = "abracadabra2" + v3.Instance.Hostname = "abracadabra14" + v4.Instance.Hostname = "abracadabra52" + v5.Instance.Hostname = "abracadabras" + v6.Instance.Hostname = "abracadabrav" + + var a, b, c proto.ClientInfo + + a.ClientId = 1 + a.Dbname = "Barnaul" + a.Dsname = "Rjaken" + a.Shards = []*proto.UsedShardInfo{ + &v1, &v2, + } + + b.ClientId = 2 + b.Dbname = "Moscow" + b.Dsname = "Space" + b.Shards = []*proto.UsedShardInfo{ + &v3, &v4, + } + + c.ClientId = 2 + c.Dbname = "Ekaterinburg" + c.Dsname = "Hill" + c.Shards = []*proto.UsedShardInfo{ + &v5, &v6, + } + + ca := client.NewNoopClient(&a, "addr") + cb := client.NewNoopClient(&b, "addr") + cc := client.NewNoopClient(&c, "addr") + interactor := clientinteractor.NewPSQLInteractor(ca) + + ci := []pkgclient.ClientInfo{ + pkgclient.ClientInfoImpl{Client: ca}, + pkgclient.ClientInfoImpl{Client: cb}, + pkgclient.ClientInfoImpl{Client: cc}, + } + err := interactor.Clients(context.TODO(), ci, &spqrparser.Show{ + Cmd: spqrparser.ClientsStr, + Where: spqrparser.WhereClauseEmpty{}, + Order: spqrparser.Order{OptAscDesc: spqrparser.ASC, + Col: spqrparser.ColumnRef{ColName: "user"}}, + }) + assert.Nil(t, err) +} From 15c67d465e51b8e8c7394a11fcc6694a597cdfc2 Mon Sep 17 00:00:00 2001 From: Victor Date: Tue, 10 Sep 2024 09:24:40 +0000 Subject: [PATCH 10/18] fix? --- pkg/clientinteractor/interactor_test.go | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/pkg/clientinteractor/interactor_test.go b/pkg/clientinteractor/interactor_test.go index 936d46fbd..1d7ddf666 100644 --- a/pkg/clientinteractor/interactor_test.go +++ b/pkg/clientinteractor/interactor_test.go @@ -2,6 +2,7 @@ package clientinteractor_test import ( "context" + "fmt" "sort" "testing" @@ -191,12 +192,21 @@ func TestSortableWithContext(t *testing.T) { func TestClientsOrderBy(t *testing.T) { var v1, v2, v3, v4, v5, v6 proto.UsedShardInfo - v1.Instance.Hostname = "abracadabra1" - v2.Instance.Hostname = "abracadabra2" - v3.Instance.Hostname = "abracadabra14" - v4.Instance.Hostname = "abracadabra52" - v5.Instance.Hostname = "abracadabras" - v6.Instance.Hostname = "abracadabrav" + var i1, i2, i3, i4, i5, i6 proto.DBInstaceInfo + + i1.Hostname = "abracadabra1" + i2.Hostname = "abracadabra2" + i3.Hostname = "abracadabra14" + i4.Hostname = "abracadabra52" + i5.Hostname = "abracadabras" + i6.Hostname = "abracadabrav" + + v1.Instance = &i1 + v2.Instance = &i2 + v3.Instance = &i3 + v4.Instance = &i4 + v5.Instance = &i5 + v6.Instance = &i6 var a, b, c proto.ClientInfo @@ -225,7 +235,7 @@ func TestClientsOrderBy(t *testing.T) { cb := client.NewNoopClient(&b, "addr") cc := client.NewNoopClient(&c, "addr") interactor := clientinteractor.NewPSQLInteractor(ca) - + fmt.Println("sadsad") ci := []pkgclient.ClientInfo{ pkgclient.ClientInfoImpl{Client: ca}, pkgclient.ClientInfoImpl{Client: cb}, From c4411c23e9ae5a64daa2852ebde4da6066eee969 Mon Sep 17 00:00:00 2001 From: Victor Date: Tue, 10 Sep 2024 09:32:30 +0000 Subject: [PATCH 11/18] mockcl --- pkg/clientinteractor/interactor_test.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pkg/clientinteractor/interactor_test.go b/pkg/clientinteractor/interactor_test.go index 1d7ddf666..0029f3928 100644 --- a/pkg/clientinteractor/interactor_test.go +++ b/pkg/clientinteractor/interactor_test.go @@ -9,8 +9,10 @@ import ( "github.com/golang/mock/gomock" pkgclient "github.com/pg-sharding/spqr/pkg/client" mock "github.com/pg-sharding/spqr/pkg/mock/clientinteractor" + proto "github.com/pg-sharding/spqr/pkg/protos" "github.com/pg-sharding/spqr/router/client" + mockcl "github.com/pg-sharding/spqr/router/mock/client" "github.com/stretchr/testify/assert" "github.com/pg-sharding/spqr/pkg/clientinteractor" @@ -191,6 +193,9 @@ func TestSortableWithContext(t *testing.T) { } func TestClientsOrderBy(t *testing.T) { + + ctrl := gomock.NewController(t) + var v1, v2, v3, v4, v5, v6 proto.UsedShardInfo var i1, i2, i3, i4, i5, i6 proto.DBInstaceInfo @@ -231,7 +236,7 @@ func TestClientsOrderBy(t *testing.T) { &v5, &v6, } - ca := client.NewNoopClient(&a, "addr") + ca := mockcl.NewMockRouterClient(ctrl) cb := client.NewNoopClient(&b, "addr") cc := client.NewNoopClient(&c, "addr") interactor := clientinteractor.NewPSQLInteractor(ca) @@ -241,6 +246,9 @@ func TestClientsOrderBy(t *testing.T) { pkgclient.ClientInfoImpl{Client: cb}, pkgclient.ClientInfoImpl{Client: cc}, } + + ca.EXPECT().Send(gomock.Any()).AnyTimes() + err := interactor.Clients(context.TODO(), ci, &spqrparser.Show{ Cmd: spqrparser.ClientsStr, Where: spqrparser.WhereClauseEmpty{}, From 381787fa584c7c3c4b47d48d1435eec5ab3f6d85 Mon Sep 17 00:00:00 2001 From: Victor Date: Tue, 10 Sep 2024 09:43:38 +0000 Subject: [PATCH 12/18] ftest --- pkg/clientinteractor/interactor_test.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pkg/clientinteractor/interactor_test.go b/pkg/clientinteractor/interactor_test.go index 0029f3928..b654ce37e 100644 --- a/pkg/clientinteractor/interactor_test.go +++ b/pkg/clientinteractor/interactor_test.go @@ -248,11 +248,14 @@ func TestClientsOrderBy(t *testing.T) { } ca.EXPECT().Send(gomock.Any()).AnyTimes() - + ca.EXPECT().Shards().AnyTimes() + ca.EXPECT().ID().AnyTimes() + ca.EXPECT().Usr().AnyTimes() + ca.EXPECT().DB().AnyTimes() err := interactor.Clients(context.TODO(), ci, &spqrparser.Show{ Cmd: spqrparser.ClientsStr, Where: spqrparser.WhereClauseEmpty{}, - Order: spqrparser.Order{OptAscDesc: spqrparser.ASC, + Order: spqrparser.Order{OptAscDesc: spqrparser.SortByAsc{}, Col: spqrparser.ColumnRef{ColName: "user"}}, }) assert.Nil(t, err) From 240398c13032240f8880eb782db39fb2c1be8a19 Mon Sep 17 00:00:00 2001 From: Victor Date: Tue, 10 Sep 2024 10:12:09 +0000 Subject: [PATCH 13/18] Doc --- docs/sharding/console/sql_commands.mdx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/sharding/console/sql_commands.mdx b/docs/sharding/console/sql_commands.mdx index 11dc690cf..501eb4c4f 100644 --- a/docs/sharding/console/sql_commands.mdx +++ b/docs/sharding/console/sql_commands.mdx @@ -105,7 +105,12 @@ spqr-console=> SHOW backend_connections WHERE hostname='hostname:6432' 824646300928 | no data | app-prod-spqr1 | hostname:6432 | test_app_app | testdb | 0 | 8003 | IDLE 824682937984 | no data | app-prod-spqr1 | hostname:6432 | test_app_app | testdb | 0 | 7622 | IDLE ``` +Exists feature - order by col asc/desc for clients. +```sql +SHOW clients ORDER BY (ASC/DESC) +The ORDER BY column feature works with clients, not works with other entities. +``` ### KILL CLIENT This command is used to terminate a specific client connection in a SPQR Router. From 4c718a13c5f9c2934cca0cf2a2a596ef3c2a90ae Mon Sep 17 00:00:00 2001 From: Victor Date: Tue, 10 Sep 2024 10:47:58 +0000 Subject: [PATCH 14/18] fix doc --- docs/sharding/console/sql_commands.mdx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/sharding/console/sql_commands.mdx b/docs/sharding/console/sql_commands.mdx index 501eb4c4f..d556c3a3b 100644 --- a/docs/sharding/console/sql_commands.mdx +++ b/docs/sharding/console/sql_commands.mdx @@ -105,12 +105,15 @@ spqr-console=> SHOW backend_connections WHERE hostname='hostname:6432' 824646300928 | no data | app-prod-spqr1 | hostname:6432 | test_app_app | testdb | 0 | 8003 | IDLE 824682937984 | no data | app-prod-spqr1 | hostname:6432 | test_app_app | testdb | 0 | 7622 | IDLE ``` + Exists feature - order by col asc/desc for clients. + ```sql SHOW clients ORDER BY (ASC/DESC) +``` The ORDER BY column feature works with clients, not works with other entities. -``` + ### KILL CLIENT This command is used to terminate a specific client connection in a SPQR Router. From 8a85c8deee1529de57b2ef72ad78d80eee75274d Mon Sep 17 00:00:00 2001 From: Victor Date: Tue, 10 Sep 2024 11:01:12 +0000 Subject: [PATCH 15/18] gosum? --- go.sum | 2 -- 1 file changed, 2 deletions(-) diff --git a/go.sum b/go.sum index 72580daa6..2c5f31322 100644 --- a/go.sum +++ b/go.sum @@ -164,8 +164,6 @@ github.com/opencontainers/image-spec v1.0.2 h1:9yCKha/T5XdGtO0q9Q9a6T5NUCsTn/DrB github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= -github.com/pg-sharding/lyx v0.0.0-20240813162238-718ac25dcade h1:BbQCEohK5H9j1Uv8+f7lQKmMWJJZTbXEF0zn0/xyD5c= -github.com/pg-sharding/lyx v0.0.0-20240813162238-718ac25dcade/go.mod h1:2dPBQAhqv/30mhzj2yBXQkXhsGJQ8GhM+oWOfbGua58= github.com/pg-sharding/lyx v0.0.0-20240819153240-bbdc782d01c1 h1:AwlQkwnrqRyL8lqZTTAzfQ09niEc+6oFiDvQkMImTPE= github.com/pg-sharding/lyx v0.0.0-20240819153240-bbdc782d01c1/go.mod h1:2dPBQAhqv/30mhzj2yBXQkXhsGJQ8GhM+oWOfbGua58= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= From aad675895e6bc99c9693f339e0f6d4923ba7615c Mon Sep 17 00:00:00 2001 From: Victor Date: Tue, 10 Sep 2024 11:06:28 +0000 Subject: [PATCH 16/18] a --- go.mod | 57 +++++++++++++------------- go.sum | 124 ++++++++++++++++++++++++++++----------------------------- 2 files changed, 89 insertions(+), 92 deletions(-) diff --git a/go.mod b/go.mod index 52fa314f4..83d23ff8f 100644 --- a/go.mod +++ b/go.mod @@ -1,18 +1,20 @@ module github.com/pg-sharding/spqr -go 1.21 +go 1.22.0 + +toolchain go1.23.0 require ( github.com/BurntSushi/toml v1.4.0 github.com/caio/go-tdigest v3.1.0+incompatible github.com/cucumber/godog v0.14.1 - github.com/docker/docker v26.1.5+incompatible + github.com/docker/docker v27.2.1+incompatible github.com/go-faster/city v1.0.1 github.com/go-ldap/ldap/v3 v3.4.8 github.com/gofrs/uuid v4.4.0+incompatible github.com/golang/mock v1.6.0 github.com/google/uuid v1.6.0 - github.com/jackc/pgx/v5 v5.6.0 + github.com/jackc/pgx/v5 v5.7.0 github.com/jcmturner/gofork v1.7.6 github.com/jcmturner/gokrb5/v8 v8.4.4 github.com/jmoiron/sqlx v1.4.0 @@ -20,7 +22,7 @@ require ( github.com/lib/pq v1.10.9 github.com/libp2p/go-reuseport v0.4.0 github.com/opentracing/opentracing-go v1.2.0 - github.com/pg-sharding/lyx v0.0.0-20240819153240-bbdc782d01c1 + github.com/pg-sharding/lyx v0.0.0-20240823123817-e655173c284c github.com/pkg/errors v0.9.1 github.com/rs/zerolog v1.33.0 github.com/sevlyar/go-daemon v0.1.6 @@ -32,11 +34,11 @@ require ( github.com/xdg-go/scram v1.1.2 go.etcd.io/etcd/client/v3 v3.5.15 go.uber.org/atomic v1.11.0 - golang.org/x/crypto v0.26.0 - golang.org/x/exp v0.0.0-20240119083558-1b970713d09a + golang.org/x/crypto v0.27.0 + golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 golang.org/x/sync v0.8.0 - golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 - google.golang.org/grpc v1.65.0 + golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da + google.golang.org/grpc v1.66.1 google.golang.org/protobuf v1.34.2 gopkg.in/yaml.v2 v2.4.0 ) @@ -51,37 +53,36 @@ require ( github.com/cucumber/gherkin/go/v26 v26.2.0 // indirect github.com/cucumber/messages/go/v21 v21.0.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/distribution/reference v0.5.0 // indirect + github.com/distribution/reference v0.6.0 // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/go-asn1-ber/asn1-ber v1.5.5 // indirect - github.com/go-logr/logr v1.4.1 // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect github.com/hashicorp/go-memdb v1.3.4 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect - github.com/hashicorp/golang-lru v1.0.2 // indirect + github.com/hashicorp/golang-lru v0.5.4 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect - github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect + github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect github.com/jackc/puddle/v2 v2.2.1 // indirect github.com/jcmturner/aescts/v2 v2.0.0 // indirect github.com/jcmturner/dnsutils/v2 v2.0.0 // indirect github.com/jcmturner/goidentity/v6 v6.0.1 // indirect github.com/jcmturner/rpc/v2 v2.0.3 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/kr/pretty v0.3.1 // indirect github.com/leesper/go_rng v0.0.0-20190531154944-a612b043e353 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-isatty v0.0.19 // indirect github.com/moby/docker-image-spec v1.3.1 // indirect github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.0.2 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/spf13/pflag v1.0.5 // indirect @@ -89,21 +90,21 @@ require ( github.com/xdg-go/stringprep v1.0.4 // indirect go.etcd.io/etcd/api/v3 v3.5.15 // indirect go.etcd.io/etcd/client/pkg/v3 v3.5.15 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 // indirect - go.opentelemetry.io/otel v1.22.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.22.0 // indirect - go.opentelemetry.io/otel/metric v1.22.0 // indirect - go.opentelemetry.io/otel/sdk v1.22.0 // indirect - go.opentelemetry.io/otel/trace v1.22.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 // indirect + go.opentelemetry.io/otel v1.29.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0 // indirect + go.opentelemetry.io/otel/metric v1.29.0 // indirect + go.opentelemetry.io/otel/sdk v1.29.0 // indirect + go.opentelemetry.io/otel/trace v1.29.0 // indirect go.uber.org/multierr v1.6.0 // indirect go.uber.org/zap v1.17.0 // indirect - golang.org/x/net v0.25.0 // indirect - golang.org/x/sys v0.23.0 // indirect - golang.org/x/text v0.17.0 // indirect - golang.org/x/time v0.5.0 // indirect - gonum.org/v1/gonum v0.14.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 // indirect + golang.org/x/net v0.28.0 // indirect + golang.org/x/sys v0.25.0 // indirect + golang.org/x/text v0.18.0 // indirect + golang.org/x/time v0.6.0 // indirect + gonum.org/v1/gonum v0.15.1 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240822170219-fc7c04adadcd // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240822170219-fc7c04adadcd // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gotest.tools/v3 v3.5.1 // indirect ) diff --git a/go.sum b/go.sum index 2c5f31322..d1319ea2b 100644 --- a/go.sum +++ b/go.sum @@ -17,8 +17,8 @@ github.com/alexbrainman/sspi v0.0.0-20231016080023-1a75b4708caa h1:LHTHcTQiSGT7V github.com/alexbrainman/sspi v0.0.0-20231016080023-1a75b4708caa/go.mod h1:cEWa1LVoE5KvSD9ONXsZrj0z6KqySlCCNKHlLzbqAt4= github.com/caio/go-tdigest v3.1.0+incompatible h1:uoVMJ3Q5lXmVLCCqaMGHLBWnbGoN6Lpu7OAUPR60cds= github.com/caio/go-tdigest v3.1.0+incompatible/go.mod h1:sHQM/ubZStBUmF1WbB8FAm8q9GjDajLC5T7ydxE3JHI= -github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= -github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= +github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= @@ -38,10 +38,10 @@ github.com/cucumber/messages/go/v22 v22.0.0/go.mod h1:aZipXTKc0JnjCsXrJnuZpWhtay github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= -github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v26.1.5+incompatible h1:NEAxTwEjxV6VbBMBoGG3zPqbiJosIApZjxlbrG9q3/g= -github.com/docker/docker v26.1.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= +github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +github.com/docker/docker v27.2.1+incompatible h1:fQdiLfW7VLscyoeYEBz7/J8soYFDZV1u6VW6gJEjNMI= +github.com/docker/docker v27.2.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= @@ -57,8 +57,8 @@ github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9 github.com/go-ldap/ldap/v3 v3.4.8 h1:loKJyspcRezt2Q3ZRMq2p/0v8iOurlmeXDPw6fikSvQ= github.com/go-ldap/ldap/v3 v3.4.8/go.mod h1:qS3Sjlu76eHfHGpUdWkAXQTw4beih+cHsco2jXlIXrk= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= @@ -83,8 +83,8 @@ github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I= github.com/hashicorp/go-immutable-radix v1.3.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= @@ -95,17 +95,16 @@ github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/b github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c= -github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= -github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= -github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= -github.com/jackc/pgx/v5 v5.6.0 h1:SWJzexBzPL5jb0GEsrPMLIsi/3jOo7RHlzTjcAeDrPY= -github.com/jackc/pgx/v5 v5.6.0/go.mod h1:DNZ/vlrUnhWCoFGxHAG8U2ljioxukquj7utPDgtQdTw= +github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo= +github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= +github.com/jackc/pgx/v5 v5.7.0 h1:FG6VLIdzvAPhnYqP14sQ2xhFLkiUQHCs6ySqO91kF4g= +github.com/jackc/pgx/v5 v5.7.0/go.mod h1:awP1KNnjylvpxHuHP63gzjhnGkI1iw+PMoIwvoleN/8= github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk= github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/jcmturner/aescts/v2 v2.0.0 h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8= @@ -131,8 +130,8 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= -github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -146,9 +145,8 @@ github.com/libp2p/go-reuseport v0.4.0/go.mod h1:ZtI03j/wO5hZVDFo2jKywN6bYKWLOy8S github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= -github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU= github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= @@ -160,19 +158,17 @@ github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7P github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.0.2 h1:9yCKha/T5XdGtO0q9Q9a6T5NUCsTn/DrBg0D7ufOcFM= -github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= -github.com/pg-sharding/lyx v0.0.0-20240819153240-bbdc782d01c1 h1:AwlQkwnrqRyL8lqZTTAzfQ09niEc+6oFiDvQkMImTPE= -github.com/pg-sharding/lyx v0.0.0-20240819153240-bbdc782d01c1/go.mod h1:2dPBQAhqv/30mhzj2yBXQkXhsGJQ8GhM+oWOfbGua58= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pg-sharding/lyx v0.0.0-20240823123817-e655173c284c h1:4sXBG7ZDtG/rN2jqgmzsMawfcTKQvTCTTo8iQ7eR6VU= +github.com/pg-sharding/lyx v0.0.0-20240823123817-e655173c284c/go.mod h1:2dPBQAhqv/30mhzj2yBXQkXhsGJQ8GhM+oWOfbGua58= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= @@ -227,22 +223,22 @@ go.etcd.io/etcd/client/pkg/v3 v3.5.15 h1:fo0HpWz/KlHGMCC+YejpiCmyWDEuIpnTDzpJLB5 go.etcd.io/etcd/client/pkg/v3 v3.5.15/go.mod h1:mXDI4NAOwEiszrHCb0aqfAYNCrZP4e9hRca3d1YK8EU= go.etcd.io/etcd/client/v3 v3.5.15 h1:23M0eY4Fd/inNv1ZfU3AxrbbOdW79r9V9Rl62Nm6ip4= go.etcd.io/etcd/client/v3 v3.5.15/go.mod h1:CLSJxrYjvLtHsrPKsy7LmZEE+DK2ktfd2bN4RhBMwlU= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 h1:sv9kVfal0MK0wBMCOGr+HeJm9v803BkJxGrk2au7j08= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0/go.mod h1:SK2UL73Zy1quvRPonmOmRDiWk1KBV3LyIeeIxcEApWw= -go.opentelemetry.io/otel v1.22.0 h1:xS7Ku+7yTFvDfDraDIJVpw7XPyuHlB9MCiqqX5mcJ6Y= -go.opentelemetry.io/otel v1.22.0/go.mod h1:eoV4iAi3Ea8LkAEI9+GFT44O6T/D0GWAVFyZVCC6pMI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.22.0 h1:9M3+rhx7kZCIQQhQRYaZCdNu1V73tm4TvXs2ntl98C4= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.22.0/go.mod h1:noq80iT8rrHP1SfybmPiRGc9dc5M8RPmGvtwo7Oo7tc= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.22.0 h1:FyjCyI9jVEfqhUh2MoSkmolPjfh5fp2hnV0b0irxH4Q= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.22.0/go.mod h1:hYwym2nDEeZfG/motx0p7L7J1N1vyzIThemQsb4g2qY= -go.opentelemetry.io/otel/metric v1.22.0 h1:lypMQnGyJYeuYPhOM/bgjbFM6WE44W1/T45er4d8Hhg= -go.opentelemetry.io/otel/metric v1.22.0/go.mod h1:evJGjVpZv0mQ5QBRJoBF64yMuOf4xCWdXjK8pzFvliY= -go.opentelemetry.io/otel/sdk v1.22.0 h1:6coWHw9xw7EfClIC/+O31R8IY3/+EiRFHevmHafB2Gw= -go.opentelemetry.io/otel/sdk v1.22.0/go.mod h1:iu7luyVGYovrRpe2fmj3CVKouQNdTOkxtLzPvPz1DOc= -go.opentelemetry.io/otel/trace v1.22.0 h1:Hg6pPujv0XG9QaVbGOBVHunyuLcCC3jN7WEhPx83XD0= -go.opentelemetry.io/otel/trace v1.22.0/go.mod h1:RbbHXVqKES9QhzZq/fE5UnOSILqRt40a21sPw2He1xo= -go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= -go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8= +go.opentelemetry.io/otel v1.29.0 h1:PdomN/Al4q/lN6iBJEN3AwPvUiHPMlt93c8bqTG5Llw= +go.opentelemetry.io/otel v1.29.0/go.mod h1:N/WtXPs1CNCUEx+Agz5uouwCba+i+bJGFicT8SR4NP8= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 h1:dIIDULZJpgdiHz5tXrTgKIMLkus6jEFa7x5SOKcyR7E= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0/go.mod h1:jlRVBe7+Z1wyxFSUs48L6OBQZ5JwH2Hg/Vbl+t9rAgI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0 h1:JAv0Jwtl01UFiyWZEMiJZBiTlv5A50zNs8lsthXqIio= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0/go.mod h1:QNKLmUEAq2QUbPQUfvw4fmv0bgbK7UlOSFCnXyfvSNc= +go.opentelemetry.io/otel/metric v1.29.0 h1:vPf/HFWTNkPu1aYeIsc98l4ktOQaL6LeSoeV2g+8YLc= +go.opentelemetry.io/otel/metric v1.29.0/go.mod h1:auu/QWieFVWx+DmQOUMgj0F8LHWdgalxXqvp7BII/W8= +go.opentelemetry.io/otel/sdk v1.29.0 h1:vkqKjk7gwhS8VaWb0POZKmIEDimRCMsopNYnriHyryo= +go.opentelemetry.io/otel/sdk v1.29.0/go.mod h1:pM8Dx5WKnvxLCb+8lG1PRNIDxu9g9b9g59Qr7hfAAok= +go.opentelemetry.io/otel/trace v1.29.0 h1:J/8ZNK4XgR7a21DZUAsbF8pZ5Jcw1VhACmnYt39JTi4= +go.opentelemetry.io/otel/trace v1.29.0/go.mod h1:eHl3w0sp3paPkYstJOmAimxhiFXPg+MMTlEh3nsQgWQ= +go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= +go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= @@ -258,15 +254,15 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= -golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= -golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= +golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= +golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20240119083558-1b970713d09a h1:Q8/wZp0KX97QFTc2ywcOE0YRjZPVIx+MXInMzdvQqcA= -golang.org/x/exp v0.0.0-20240119083558-1b970713d09a/go.mod h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08= +golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 h1:e66Fs6Z+fZTbFBAxKfP3PALWBtpfqks2bwGcexMxgtk= +golang.org/x/exp v0.0.0-20240909161429-701f63a606c0/go.mod h1:2TbTHSBQa924w8M6Xs1QcRcFwyucIwBGpK1p2f1YFFY= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -290,8 +286,8 @@ golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= -golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= -golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= +golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= +golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -319,8 +315,8 @@ golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= -golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= +golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= @@ -334,10 +330,10 @@ golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= -golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= -golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= -golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= +golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= +golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -352,20 +348,20 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU= -golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= +golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da h1:noIWHXmPHxILtqtCOPIhSt0ABwskkZKjD3bXGnZGpNY= +golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= -gonum.org/v1/gonum v0.14.0 h1:2NiG67LD1tEH0D7kM+ps2V+fXmsAnpUeec7n8tcr4S0= -gonum.org/v1/gonum v0.14.0/go.mod h1:AoWeoz0becf9QMWtE8iWXNXc27fK4fNeHNf/oMejGfU= +gonum.org/v1/gonum v0.15.1 h1:FNy7N6OUZVUaWG9pTiD+jlhdQ3lMP+/LcTpJ6+a8sQ0= +gonum.org/v1/gonum v0.15.1/go.mod h1:eZTZuRFrzu5pcyjN5wJhcIhnUdNijYxX1T2IcrOGY0o= gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= -google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw= -google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 h1:Zy9XzmMEflZ/MAaA7vNcoebnRAld7FsPW1EeBB7V0m8= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= -google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc= -google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ= +google.golang.org/genproto/googleapis/api v0.0.0-20240822170219-fc7c04adadcd h1:BBOTEWLuuEGQy9n1y9MhVJ9Qt0BDu21X8qZs71/uPZo= +google.golang.org/genproto/googleapis/api v0.0.0-20240822170219-fc7c04adadcd/go.mod h1:fO8wJzT2zbQbAjbIoos1285VfEIYKDDY+Dt+WpTkh6g= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240822170219-fc7c04adadcd h1:6TEm2ZxXoQmFWFlt1vNxvVOa1Q0dXFQD1m/rYjXmS0E= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240822170219-fc7c04adadcd/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= +google.golang.org/grpc v1.66.1 h1:hO5qAXR19+/Z44hmvIM4dQFMSYX9XcWsByfoxutBpAM= +google.golang.org/grpc v1.66.1/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y= google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From ab97759e09f208708755c1aa1b3f6b2961ab16f4 Mon Sep 17 00:00:00 2001 From: Victor Date: Tue, 10 Sep 2024 11:13:42 +0000 Subject: [PATCH 17/18] b --- go.mod | 59 +++++++++++++++++++++++++++++----------------------------- 1 file changed, 29 insertions(+), 30 deletions(-) diff --git a/go.mod b/go.mod index 83d23ff8f..bad332caa 100644 --- a/go.mod +++ b/go.mod @@ -1,20 +1,18 @@ module github.com/pg-sharding/spqr -go 1.22.0 - -toolchain go1.23.0 +go 1.23.0 require ( github.com/BurntSushi/toml v1.4.0 github.com/caio/go-tdigest v3.1.0+incompatible github.com/cucumber/godog v0.14.1 - github.com/docker/docker v27.2.1+incompatible + github.com/docker/docker v27.2.0+incompatible github.com/go-faster/city v1.0.1 github.com/go-ldap/ldap/v3 v3.4.8 github.com/gofrs/uuid v4.4.0+incompatible github.com/golang/mock v1.6.0 github.com/google/uuid v1.6.0 - github.com/jackc/pgx/v5 v5.7.0 + github.com/jackc/pgx/v5 v5.6.0 github.com/jcmturner/gofork v1.7.6 github.com/jcmturner/gokrb5/v8 v8.4.4 github.com/jmoiron/sqlx v1.4.0 @@ -22,7 +20,7 @@ require ( github.com/lib/pq v1.10.9 github.com/libp2p/go-reuseport v0.4.0 github.com/opentracing/opentracing-go v1.2.0 - github.com/pg-sharding/lyx v0.0.0-20240823123817-e655173c284c + github.com/pg-sharding/lyx v0.0.0-20240819153240-bbdc782d01c1 github.com/pkg/errors v0.9.1 github.com/rs/zerolog v1.33.0 github.com/sevlyar/go-daemon v0.1.6 @@ -34,11 +32,11 @@ require ( github.com/xdg-go/scram v1.1.2 go.etcd.io/etcd/client/v3 v3.5.15 go.uber.org/atomic v1.11.0 - golang.org/x/crypto v0.27.0 - golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 + golang.org/x/crypto v0.26.0 + golang.org/x/exp v0.0.0-20240119083558-1b970713d09a golang.org/x/sync v0.8.0 - golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da - google.golang.org/grpc v1.66.1 + golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 + google.golang.org/grpc v1.66.0 google.golang.org/protobuf v1.34.2 gopkg.in/yaml.v2 v2.4.0 ) @@ -53,36 +51,37 @@ require ( github.com/cucumber/gherkin/go/v26 v26.2.0 // indirect github.com/cucumber/messages/go/v21 v21.0.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/distribution/reference v0.6.0 // indirect + github.com/distribution/reference v0.5.0 // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/go-asn1-ber/asn1-ber v1.5.5 // indirect - github.com/go-logr/logr v1.4.2 // indirect + github.com/go-logr/logr v1.4.1 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect github.com/hashicorp/go-memdb v1.3.4 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect - github.com/hashicorp/golang-lru v0.5.4 // indirect + github.com/hashicorp/golang-lru v1.0.2 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect - github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect + github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect github.com/jackc/puddle/v2 v2.2.1 // indirect github.com/jcmturner/aescts/v2 v2.0.0 // indirect github.com/jcmturner/dnsutils/v2 v2.0.0 // indirect github.com/jcmturner/goidentity/v6 v6.0.1 // indirect github.com/jcmturner/rpc/v2 v2.0.3 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect + github.com/kr/pretty v0.3.1 // indirect github.com/leesper/go_rng v0.0.0-20190531154944-a612b043e353 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/moby/docker-image-spec v1.3.1 // indirect github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0 // indirect + github.com/opencontainers/image-spec v1.0.2 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/spf13/pflag v1.0.5 // indirect @@ -90,21 +89,21 @@ require ( github.com/xdg-go/stringprep v1.0.4 // indirect go.etcd.io/etcd/api/v3 v3.5.15 // indirect go.etcd.io/etcd/client/pkg/v3 v3.5.15 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 // indirect - go.opentelemetry.io/otel v1.29.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0 // indirect - go.opentelemetry.io/otel/metric v1.29.0 // indirect - go.opentelemetry.io/otel/sdk v1.29.0 // indirect - go.opentelemetry.io/otel/trace v1.29.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 // indirect + go.opentelemetry.io/otel v1.22.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.22.0 // indirect + go.opentelemetry.io/otel/metric v1.22.0 // indirect + go.opentelemetry.io/otel/sdk v1.22.0 // indirect + go.opentelemetry.io/otel/trace v1.22.0 // indirect go.uber.org/multierr v1.6.0 // indirect go.uber.org/zap v1.17.0 // indirect - golang.org/x/net v0.28.0 // indirect - golang.org/x/sys v0.25.0 // indirect - golang.org/x/text v0.18.0 // indirect - golang.org/x/time v0.6.0 // indirect - gonum.org/v1/gonum v0.15.1 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240822170219-fc7c04adadcd // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240822170219-fc7c04adadcd // indirect + golang.org/x/net v0.26.0 // indirect + golang.org/x/sys v0.23.0 // indirect + golang.org/x/text v0.17.0 // indirect + golang.org/x/time v0.5.0 // indirect + gonum.org/v1/gonum v0.14.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gotest.tools/v3 v3.5.1 // indirect -) +) \ No newline at end of file From 90a5fcc47e3d4553a48ed827f0f15c972e65f317 Mon Sep 17 00:00:00 2001 From: Victor Date: Tue, 10 Sep 2024 11:14:27 +0000 Subject: [PATCH 18/18] c --- go.mod | 2 +- go.sum | 124 +++++++++++++++++++++++++++++---------------------------- 2 files changed, 65 insertions(+), 61 deletions(-) diff --git a/go.mod b/go.mod index bad332caa..d8a35fcb2 100644 --- a/go.mod +++ b/go.mod @@ -106,4 +106,4 @@ require ( google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gotest.tools/v3 v3.5.1 // indirect -) \ No newline at end of file +) diff --git a/go.sum b/go.sum index d1319ea2b..baf420d5b 100644 --- a/go.sum +++ b/go.sum @@ -17,8 +17,8 @@ github.com/alexbrainman/sspi v0.0.0-20231016080023-1a75b4708caa h1:LHTHcTQiSGT7V github.com/alexbrainman/sspi v0.0.0-20231016080023-1a75b4708caa/go.mod h1:cEWa1LVoE5KvSD9ONXsZrj0z6KqySlCCNKHlLzbqAt4= github.com/caio/go-tdigest v3.1.0+incompatible h1:uoVMJ3Q5lXmVLCCqaMGHLBWnbGoN6Lpu7OAUPR60cds= github.com/caio/go-tdigest v3.1.0+incompatible/go.mod h1:sHQM/ubZStBUmF1WbB8FAm8q9GjDajLC5T7ydxE3JHI= -github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= -github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= +github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= @@ -38,10 +38,10 @@ github.com/cucumber/messages/go/v22 v22.0.0/go.mod h1:aZipXTKc0JnjCsXrJnuZpWhtay github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= -github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v27.2.1+incompatible h1:fQdiLfW7VLscyoeYEBz7/J8soYFDZV1u6VW6gJEjNMI= -github.com/docker/docker v27.2.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= +github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +github.com/docker/docker v27.2.0+incompatible h1:Rk9nIVdfH3+Vz4cyI/uhbINhEZ/oLmc+CBXmH6fbNk4= +github.com/docker/docker v27.2.0+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= @@ -57,8 +57,8 @@ github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9 github.com/go-ldap/ldap/v3 v3.4.8 h1:loKJyspcRezt2Q3ZRMq2p/0v8iOurlmeXDPw6fikSvQ= github.com/go-ldap/ldap/v3 v3.4.8/go.mod h1:qS3Sjlu76eHfHGpUdWkAXQTw4beih+cHsco2jXlIXrk= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= @@ -83,8 +83,8 @@ github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/hashicorp/go-immutable-radix v1.3.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= @@ -95,16 +95,17 @@ github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/b github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c= +github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= -github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo= -github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= -github.com/jackc/pgx/v5 v5.7.0 h1:FG6VLIdzvAPhnYqP14sQ2xhFLkiUQHCs6ySqO91kF4g= -github.com/jackc/pgx/v5 v5.7.0/go.mod h1:awP1KNnjylvpxHuHP63gzjhnGkI1iw+PMoIwvoleN/8= +github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= +github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= +github.com/jackc/pgx/v5 v5.6.0 h1:SWJzexBzPL5jb0GEsrPMLIsi/3jOo7RHlzTjcAeDrPY= +github.com/jackc/pgx/v5 v5.6.0/go.mod h1:DNZ/vlrUnhWCoFGxHAG8U2ljioxukquj7utPDgtQdTw= github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk= github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/jcmturner/aescts/v2 v2.0.0 h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8= @@ -130,8 +131,8 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -145,8 +146,9 @@ github.com/libp2p/go-reuseport v0.4.0/go.mod h1:ZtI03j/wO5hZVDFo2jKywN6bYKWLOy8S github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU= github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= @@ -158,17 +160,19 @@ github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7P github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= -github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= +github.com/opencontainers/image-spec v1.0.2 h1:9yCKha/T5XdGtO0q9Q9a6T5NUCsTn/DrBg0D7ufOcFM= +github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= -github.com/pg-sharding/lyx v0.0.0-20240823123817-e655173c284c h1:4sXBG7ZDtG/rN2jqgmzsMawfcTKQvTCTTo8iQ7eR6VU= -github.com/pg-sharding/lyx v0.0.0-20240823123817-e655173c284c/go.mod h1:2dPBQAhqv/30mhzj2yBXQkXhsGJQ8GhM+oWOfbGua58= +github.com/pg-sharding/lyx v0.0.0-20240819153240-bbdc782d01c1 h1:AwlQkwnrqRyL8lqZTTAzfQ09niEc+6oFiDvQkMImTPE= +github.com/pg-sharding/lyx v0.0.0-20240819153240-bbdc782d01c1/go.mod h1:2dPBQAhqv/30mhzj2yBXQkXhsGJQ8GhM+oWOfbGua58= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= @@ -223,22 +227,22 @@ go.etcd.io/etcd/client/pkg/v3 v3.5.15 h1:fo0HpWz/KlHGMCC+YejpiCmyWDEuIpnTDzpJLB5 go.etcd.io/etcd/client/pkg/v3 v3.5.15/go.mod h1:mXDI4NAOwEiszrHCb0aqfAYNCrZP4e9hRca3d1YK8EU= go.etcd.io/etcd/client/v3 v3.5.15 h1:23M0eY4Fd/inNv1ZfU3AxrbbOdW79r9V9Rl62Nm6ip4= go.etcd.io/etcd/client/v3 v3.5.15/go.mod h1:CLSJxrYjvLtHsrPKsy7LmZEE+DK2ktfd2bN4RhBMwlU= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8= -go.opentelemetry.io/otel v1.29.0 h1:PdomN/Al4q/lN6iBJEN3AwPvUiHPMlt93c8bqTG5Llw= -go.opentelemetry.io/otel v1.29.0/go.mod h1:N/WtXPs1CNCUEx+Agz5uouwCba+i+bJGFicT8SR4NP8= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 h1:dIIDULZJpgdiHz5tXrTgKIMLkus6jEFa7x5SOKcyR7E= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0/go.mod h1:jlRVBe7+Z1wyxFSUs48L6OBQZ5JwH2Hg/Vbl+t9rAgI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0 h1:JAv0Jwtl01UFiyWZEMiJZBiTlv5A50zNs8lsthXqIio= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0/go.mod h1:QNKLmUEAq2QUbPQUfvw4fmv0bgbK7UlOSFCnXyfvSNc= -go.opentelemetry.io/otel/metric v1.29.0 h1:vPf/HFWTNkPu1aYeIsc98l4ktOQaL6LeSoeV2g+8YLc= -go.opentelemetry.io/otel/metric v1.29.0/go.mod h1:auu/QWieFVWx+DmQOUMgj0F8LHWdgalxXqvp7BII/W8= -go.opentelemetry.io/otel/sdk v1.29.0 h1:vkqKjk7gwhS8VaWb0POZKmIEDimRCMsopNYnriHyryo= -go.opentelemetry.io/otel/sdk v1.29.0/go.mod h1:pM8Dx5WKnvxLCb+8lG1PRNIDxu9g9b9g59Qr7hfAAok= -go.opentelemetry.io/otel/trace v1.29.0 h1:J/8ZNK4XgR7a21DZUAsbF8pZ5Jcw1VhACmnYt39JTi4= -go.opentelemetry.io/otel/trace v1.29.0/go.mod h1:eHl3w0sp3paPkYstJOmAimxhiFXPg+MMTlEh3nsQgWQ= -go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= -go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 h1:sv9kVfal0MK0wBMCOGr+HeJm9v803BkJxGrk2au7j08= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0/go.mod h1:SK2UL73Zy1quvRPonmOmRDiWk1KBV3LyIeeIxcEApWw= +go.opentelemetry.io/otel v1.22.0 h1:xS7Ku+7yTFvDfDraDIJVpw7XPyuHlB9MCiqqX5mcJ6Y= +go.opentelemetry.io/otel v1.22.0/go.mod h1:eoV4iAi3Ea8LkAEI9+GFT44O6T/D0GWAVFyZVCC6pMI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.22.0 h1:9M3+rhx7kZCIQQhQRYaZCdNu1V73tm4TvXs2ntl98C4= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.22.0/go.mod h1:noq80iT8rrHP1SfybmPiRGc9dc5M8RPmGvtwo7Oo7tc= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.22.0 h1:FyjCyI9jVEfqhUh2MoSkmolPjfh5fp2hnV0b0irxH4Q= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.22.0/go.mod h1:hYwym2nDEeZfG/motx0p7L7J1N1vyzIThemQsb4g2qY= +go.opentelemetry.io/otel/metric v1.22.0 h1:lypMQnGyJYeuYPhOM/bgjbFM6WE44W1/T45er4d8Hhg= +go.opentelemetry.io/otel/metric v1.22.0/go.mod h1:evJGjVpZv0mQ5QBRJoBF64yMuOf4xCWdXjK8pzFvliY= +go.opentelemetry.io/otel/sdk v1.22.0 h1:6coWHw9xw7EfClIC/+O31R8IY3/+EiRFHevmHafB2Gw= +go.opentelemetry.io/otel/sdk v1.22.0/go.mod h1:iu7luyVGYovrRpe2fmj3CVKouQNdTOkxtLzPvPz1DOc= +go.opentelemetry.io/otel/trace v1.22.0 h1:Hg6pPujv0XG9QaVbGOBVHunyuLcCC3jN7WEhPx83XD0= +go.opentelemetry.io/otel/trace v1.22.0/go.mod h1:RbbHXVqKES9QhzZq/fE5UnOSILqRt40a21sPw2He1xo= +go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= @@ -254,15 +258,15 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= -golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= -golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= +golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= +golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 h1:e66Fs6Z+fZTbFBAxKfP3PALWBtpfqks2bwGcexMxgtk= -golang.org/x/exp v0.0.0-20240909161429-701f63a606c0/go.mod h1:2TbTHSBQa924w8M6Xs1QcRcFwyucIwBGpK1p2f1YFFY= +golang.org/x/exp v0.0.0-20240119083558-1b970713d09a h1:Q8/wZp0KX97QFTc2ywcOE0YRjZPVIx+MXInMzdvQqcA= +golang.org/x/exp v0.0.0-20240119083558-1b970713d09a/go.mod h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -286,8 +290,8 @@ golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= -golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= -golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= +golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= +golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -315,8 +319,8 @@ golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= -golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= +golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= @@ -330,10 +334,10 @@ golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= -golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= -golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= -golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= +golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -348,20 +352,20 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da h1:noIWHXmPHxILtqtCOPIhSt0ABwskkZKjD3bXGnZGpNY= -golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= +golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU= +golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= -gonum.org/v1/gonum v0.15.1 h1:FNy7N6OUZVUaWG9pTiD+jlhdQ3lMP+/LcTpJ6+a8sQ0= -gonum.org/v1/gonum v0.15.1/go.mod h1:eZTZuRFrzu5pcyjN5wJhcIhnUdNijYxX1T2IcrOGY0o= +gonum.org/v1/gonum v0.14.0 h1:2NiG67LD1tEH0D7kM+ps2V+fXmsAnpUeec7n8tcr4S0= +gonum.org/v1/gonum v0.14.0/go.mod h1:AoWeoz0becf9QMWtE8iWXNXc27fK4fNeHNf/oMejGfU= gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= -google.golang.org/genproto/googleapis/api v0.0.0-20240822170219-fc7c04adadcd h1:BBOTEWLuuEGQy9n1y9MhVJ9Qt0BDu21X8qZs71/uPZo= -google.golang.org/genproto/googleapis/api v0.0.0-20240822170219-fc7c04adadcd/go.mod h1:fO8wJzT2zbQbAjbIoos1285VfEIYKDDY+Dt+WpTkh6g= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240822170219-fc7c04adadcd h1:6TEm2ZxXoQmFWFlt1vNxvVOa1Q0dXFQD1m/rYjXmS0E= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240822170219-fc7c04adadcd/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= -google.golang.org/grpc v1.66.1 h1:hO5qAXR19+/Z44hmvIM4dQFMSYX9XcWsByfoxutBpAM= -google.golang.org/grpc v1.66.1/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y= +google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117 h1:+rdxYoE3E5htTEWIe15GlN6IfvbURM//Jt0mmkmm6ZU= +google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117/go.mod h1:OimBR/bc1wPO9iV4NC2bpyjy3VnAwZh5EBPQdtaE5oo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 h1:1GBuWVLM/KMVUv1t1En5Gs+gFZCNd360GGb4sSxtrhU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= +google.golang.org/grpc v1.66.0 h1:DibZuoBznOxbDQxRINckZcUvnCEvrW9pcWIE2yF9r1c= +google.golang.org/grpc v1.66.0/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y= google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=