github.com/ydb-platform/ydb-go-sdk/v3@v3.57.0/trace/table_gtrace.go (about)

     1  // Code generated by gtrace. DO NOT EDIT.
     2  
     3  package trace
     4  
     5  import (
     6  	"context"
     7  )
     8  
     9  // tableComposeOptions is a holder of options
    10  type tableComposeOptions struct {
    11  	panicCallback func(e interface{})
    12  }
    13  
    14  // TableOption specified Table compose option
    15  type TableComposeOption func(o *tableComposeOptions)
    16  
    17  // WithTablePanicCallback specified behavior on panic
    18  func WithTablePanicCallback(cb func(e interface{})) TableComposeOption {
    19  	return func(o *tableComposeOptions) {
    20  		o.panicCallback = cb
    21  	}
    22  }
    23  
    24  // Compose returns a new Table which has functional fields composed both from t and x.
    25  func (t *Table) Compose(x *Table, opts ...TableComposeOption) *Table {
    26  	var ret Table
    27  	options := tableComposeOptions{}
    28  	for _, opt := range opts {
    29  		if opt != nil {
    30  			opt(&options)
    31  		}
    32  	}
    33  	{
    34  		h1 := t.OnInit
    35  		h2 := x.OnInit
    36  		ret.OnInit = func(t TableInitStartInfo) func(TableInitDoneInfo) {
    37  			if options.panicCallback != nil {
    38  				defer func() {
    39  					if e := recover(); e != nil {
    40  						options.panicCallback(e)
    41  					}
    42  				}()
    43  			}
    44  			var r, r1 func(TableInitDoneInfo)
    45  			if h1 != nil {
    46  				r = h1(t)
    47  			}
    48  			if h2 != nil {
    49  				r1 = h2(t)
    50  			}
    51  			return func(t TableInitDoneInfo) {
    52  				if options.panicCallback != nil {
    53  					defer func() {
    54  						if e := recover(); e != nil {
    55  							options.panicCallback(e)
    56  						}
    57  					}()
    58  				}
    59  				if r != nil {
    60  					r(t)
    61  				}
    62  				if r1 != nil {
    63  					r1(t)
    64  				}
    65  			}
    66  		}
    67  	}
    68  	{
    69  		h1 := t.OnClose
    70  		h2 := x.OnClose
    71  		ret.OnClose = func(t TableCloseStartInfo) func(TableCloseDoneInfo) {
    72  			if options.panicCallback != nil {
    73  				defer func() {
    74  					if e := recover(); e != nil {
    75  						options.panicCallback(e)
    76  					}
    77  				}()
    78  			}
    79  			var r, r1 func(TableCloseDoneInfo)
    80  			if h1 != nil {
    81  				r = h1(t)
    82  			}
    83  			if h2 != nil {
    84  				r1 = h2(t)
    85  			}
    86  			return func(t TableCloseDoneInfo) {
    87  				if options.panicCallback != nil {
    88  					defer func() {
    89  						if e := recover(); e != nil {
    90  							options.panicCallback(e)
    91  						}
    92  					}()
    93  				}
    94  				if r != nil {
    95  					r(t)
    96  				}
    97  				if r1 != nil {
    98  					r1(t)
    99  				}
   100  			}
   101  		}
   102  	}
   103  	{
   104  		h1 := t.OnDo
   105  		h2 := x.OnDo
   106  		ret.OnDo = func(t TableDoStartInfo) func(TableDoIntermediateInfo) func(TableDoDoneInfo) {
   107  			if options.panicCallback != nil {
   108  				defer func() {
   109  					if e := recover(); e != nil {
   110  						options.panicCallback(e)
   111  					}
   112  				}()
   113  			}
   114  			var r, r1 func(TableDoIntermediateInfo) func(TableDoDoneInfo)
   115  			if h1 != nil {
   116  				r = h1(t)
   117  			}
   118  			if h2 != nil {
   119  				r1 = h2(t)
   120  			}
   121  			return func(info TableDoIntermediateInfo) func(TableDoDoneInfo) {
   122  				if options.panicCallback != nil {
   123  					defer func() {
   124  						if e := recover(); e != nil {
   125  							options.panicCallback(e)
   126  						}
   127  					}()
   128  				}
   129  				var r2, r3 func(TableDoDoneInfo)
   130  				if r != nil {
   131  					r2 = r(info)
   132  				}
   133  				if r1 != nil {
   134  					r3 = r1(info)
   135  				}
   136  				return func(t TableDoDoneInfo) {
   137  					if options.panicCallback != nil {
   138  						defer func() {
   139  							if e := recover(); e != nil {
   140  								options.panicCallback(e)
   141  							}
   142  						}()
   143  					}
   144  					if r2 != nil {
   145  						r2(t)
   146  					}
   147  					if r3 != nil {
   148  						r3(t)
   149  					}
   150  				}
   151  			}
   152  		}
   153  	}
   154  	{
   155  		h1 := t.OnDoTx
   156  		h2 := x.OnDoTx
   157  		ret.OnDoTx = func(t TableDoTxStartInfo) func(TableDoTxIntermediateInfo) func(TableDoTxDoneInfo) {
   158  			if options.panicCallback != nil {
   159  				defer func() {
   160  					if e := recover(); e != nil {
   161  						options.panicCallback(e)
   162  					}
   163  				}()
   164  			}
   165  			var r, r1 func(TableDoTxIntermediateInfo) func(TableDoTxDoneInfo)
   166  			if h1 != nil {
   167  				r = h1(t)
   168  			}
   169  			if h2 != nil {
   170  				r1 = h2(t)
   171  			}
   172  			return func(info TableDoTxIntermediateInfo) func(TableDoTxDoneInfo) {
   173  				if options.panicCallback != nil {
   174  					defer func() {
   175  						if e := recover(); e != nil {
   176  							options.panicCallback(e)
   177  						}
   178  					}()
   179  				}
   180  				var r2, r3 func(TableDoTxDoneInfo)
   181  				if r != nil {
   182  					r2 = r(info)
   183  				}
   184  				if r1 != nil {
   185  					r3 = r1(info)
   186  				}
   187  				return func(t TableDoTxDoneInfo) {
   188  					if options.panicCallback != nil {
   189  						defer func() {
   190  							if e := recover(); e != nil {
   191  								options.panicCallback(e)
   192  							}
   193  						}()
   194  					}
   195  					if r2 != nil {
   196  						r2(t)
   197  					}
   198  					if r3 != nil {
   199  						r3(t)
   200  					}
   201  				}
   202  			}
   203  		}
   204  	}
   205  	{
   206  		h1 := t.OnCreateSession
   207  		h2 := x.OnCreateSession
   208  		ret.OnCreateSession = func(t TableCreateSessionStartInfo) func(TableCreateSessionIntermediateInfo) func(TableCreateSessionDoneInfo) {
   209  			if options.panicCallback != nil {
   210  				defer func() {
   211  					if e := recover(); e != nil {
   212  						options.panicCallback(e)
   213  					}
   214  				}()
   215  			}
   216  			var r, r1 func(TableCreateSessionIntermediateInfo) func(TableCreateSessionDoneInfo)
   217  			if h1 != nil {
   218  				r = h1(t)
   219  			}
   220  			if h2 != nil {
   221  				r1 = h2(t)
   222  			}
   223  			return func(info TableCreateSessionIntermediateInfo) func(TableCreateSessionDoneInfo) {
   224  				if options.panicCallback != nil {
   225  					defer func() {
   226  						if e := recover(); e != nil {
   227  							options.panicCallback(e)
   228  						}
   229  					}()
   230  				}
   231  				var r2, r3 func(TableCreateSessionDoneInfo)
   232  				if r != nil {
   233  					r2 = r(info)
   234  				}
   235  				if r1 != nil {
   236  					r3 = r1(info)
   237  				}
   238  				return func(t TableCreateSessionDoneInfo) {
   239  					if options.panicCallback != nil {
   240  						defer func() {
   241  							if e := recover(); e != nil {
   242  								options.panicCallback(e)
   243  							}
   244  						}()
   245  					}
   246  					if r2 != nil {
   247  						r2(t)
   248  					}
   249  					if r3 != nil {
   250  						r3(t)
   251  					}
   252  				}
   253  			}
   254  		}
   255  	}
   256  	{
   257  		h1 := t.OnSessionNew
   258  		h2 := x.OnSessionNew
   259  		ret.OnSessionNew = func(t TableSessionNewStartInfo) func(TableSessionNewDoneInfo) {
   260  			if options.panicCallback != nil {
   261  				defer func() {
   262  					if e := recover(); e != nil {
   263  						options.panicCallback(e)
   264  					}
   265  				}()
   266  			}
   267  			var r, r1 func(TableSessionNewDoneInfo)
   268  			if h1 != nil {
   269  				r = h1(t)
   270  			}
   271  			if h2 != nil {
   272  				r1 = h2(t)
   273  			}
   274  			return func(t TableSessionNewDoneInfo) {
   275  				if options.panicCallback != nil {
   276  					defer func() {
   277  						if e := recover(); e != nil {
   278  							options.panicCallback(e)
   279  						}
   280  					}()
   281  				}
   282  				if r != nil {
   283  					r(t)
   284  				}
   285  				if r1 != nil {
   286  					r1(t)
   287  				}
   288  			}
   289  		}
   290  	}
   291  	{
   292  		h1 := t.OnSessionDelete
   293  		h2 := x.OnSessionDelete
   294  		ret.OnSessionDelete = func(t TableSessionDeleteStartInfo) func(TableSessionDeleteDoneInfo) {
   295  			if options.panicCallback != nil {
   296  				defer func() {
   297  					if e := recover(); e != nil {
   298  						options.panicCallback(e)
   299  					}
   300  				}()
   301  			}
   302  			var r, r1 func(TableSessionDeleteDoneInfo)
   303  			if h1 != nil {
   304  				r = h1(t)
   305  			}
   306  			if h2 != nil {
   307  				r1 = h2(t)
   308  			}
   309  			return func(t TableSessionDeleteDoneInfo) {
   310  				if options.panicCallback != nil {
   311  					defer func() {
   312  						if e := recover(); e != nil {
   313  							options.panicCallback(e)
   314  						}
   315  					}()
   316  				}
   317  				if r != nil {
   318  					r(t)
   319  				}
   320  				if r1 != nil {
   321  					r1(t)
   322  				}
   323  			}
   324  		}
   325  	}
   326  	{
   327  		h1 := t.OnSessionKeepAlive
   328  		h2 := x.OnSessionKeepAlive
   329  		ret.OnSessionKeepAlive = func(t TableKeepAliveStartInfo) func(TableKeepAliveDoneInfo) {
   330  			if options.panicCallback != nil {
   331  				defer func() {
   332  					if e := recover(); e != nil {
   333  						options.panicCallback(e)
   334  					}
   335  				}()
   336  			}
   337  			var r, r1 func(TableKeepAliveDoneInfo)
   338  			if h1 != nil {
   339  				r = h1(t)
   340  			}
   341  			if h2 != nil {
   342  				r1 = h2(t)
   343  			}
   344  			return func(t TableKeepAliveDoneInfo) {
   345  				if options.panicCallback != nil {
   346  					defer func() {
   347  						if e := recover(); e != nil {
   348  							options.panicCallback(e)
   349  						}
   350  					}()
   351  				}
   352  				if r != nil {
   353  					r(t)
   354  				}
   355  				if r1 != nil {
   356  					r1(t)
   357  				}
   358  			}
   359  		}
   360  	}
   361  	{
   362  		h1 := t.OnSessionBulkUpsert
   363  		h2 := x.OnSessionBulkUpsert
   364  		ret.OnSessionBulkUpsert = func(t TableBulkUpsertStartInfo) func(TableBulkUpsertDoneInfo) {
   365  			if options.panicCallback != nil {
   366  				defer func() {
   367  					if e := recover(); e != nil {
   368  						options.panicCallback(e)
   369  					}
   370  				}()
   371  			}
   372  			var r, r1 func(TableBulkUpsertDoneInfo)
   373  			if h1 != nil {
   374  				r = h1(t)
   375  			}
   376  			if h2 != nil {
   377  				r1 = h2(t)
   378  			}
   379  			return func(t TableBulkUpsertDoneInfo) {
   380  				if options.panicCallback != nil {
   381  					defer func() {
   382  						if e := recover(); e != nil {
   383  							options.panicCallback(e)
   384  						}
   385  					}()
   386  				}
   387  				if r != nil {
   388  					r(t)
   389  				}
   390  				if r1 != nil {
   391  					r1(t)
   392  				}
   393  			}
   394  		}
   395  	}
   396  	{
   397  		h1 := t.OnSessionQueryPrepare
   398  		h2 := x.OnSessionQueryPrepare
   399  		ret.OnSessionQueryPrepare = func(t TablePrepareDataQueryStartInfo) func(TablePrepareDataQueryDoneInfo) {
   400  			if options.panicCallback != nil {
   401  				defer func() {
   402  					if e := recover(); e != nil {
   403  						options.panicCallback(e)
   404  					}
   405  				}()
   406  			}
   407  			var r, r1 func(TablePrepareDataQueryDoneInfo)
   408  			if h1 != nil {
   409  				r = h1(t)
   410  			}
   411  			if h2 != nil {
   412  				r1 = h2(t)
   413  			}
   414  			return func(t TablePrepareDataQueryDoneInfo) {
   415  				if options.panicCallback != nil {
   416  					defer func() {
   417  						if e := recover(); e != nil {
   418  							options.panicCallback(e)
   419  						}
   420  					}()
   421  				}
   422  				if r != nil {
   423  					r(t)
   424  				}
   425  				if r1 != nil {
   426  					r1(t)
   427  				}
   428  			}
   429  		}
   430  	}
   431  	{
   432  		h1 := t.OnSessionQueryExecute
   433  		h2 := x.OnSessionQueryExecute
   434  		ret.OnSessionQueryExecute = func(t TableExecuteDataQueryStartInfo) func(TableExecuteDataQueryDoneInfo) {
   435  			if options.panicCallback != nil {
   436  				defer func() {
   437  					if e := recover(); e != nil {
   438  						options.panicCallback(e)
   439  					}
   440  				}()
   441  			}
   442  			var r, r1 func(TableExecuteDataQueryDoneInfo)
   443  			if h1 != nil {
   444  				r = h1(t)
   445  			}
   446  			if h2 != nil {
   447  				r1 = h2(t)
   448  			}
   449  			return func(t TableExecuteDataQueryDoneInfo) {
   450  				if options.panicCallback != nil {
   451  					defer func() {
   452  						if e := recover(); e != nil {
   453  							options.panicCallback(e)
   454  						}
   455  					}()
   456  				}
   457  				if r != nil {
   458  					r(t)
   459  				}
   460  				if r1 != nil {
   461  					r1(t)
   462  				}
   463  			}
   464  		}
   465  	}
   466  	{
   467  		h1 := t.OnSessionQueryExplain
   468  		h2 := x.OnSessionQueryExplain
   469  		ret.OnSessionQueryExplain = func(t TableExplainQueryStartInfo) func(TableExplainQueryDoneInfo) {
   470  			if options.panicCallback != nil {
   471  				defer func() {
   472  					if e := recover(); e != nil {
   473  						options.panicCallback(e)
   474  					}
   475  				}()
   476  			}
   477  			var r, r1 func(TableExplainQueryDoneInfo)
   478  			if h1 != nil {
   479  				r = h1(t)
   480  			}
   481  			if h2 != nil {
   482  				r1 = h2(t)
   483  			}
   484  			return func(t TableExplainQueryDoneInfo) {
   485  				if options.panicCallback != nil {
   486  					defer func() {
   487  						if e := recover(); e != nil {
   488  							options.panicCallback(e)
   489  						}
   490  					}()
   491  				}
   492  				if r != nil {
   493  					r(t)
   494  				}
   495  				if r1 != nil {
   496  					r1(t)
   497  				}
   498  			}
   499  		}
   500  	}
   501  	{
   502  		h1 := t.OnSessionQueryStreamExecute
   503  		h2 := x.OnSessionQueryStreamExecute
   504  		ret.OnSessionQueryStreamExecute = func(t TableSessionQueryStreamExecuteStartInfo) func(TableSessionQueryStreamExecuteIntermediateInfo) func(TableSessionQueryStreamExecuteDoneInfo) {
   505  			if options.panicCallback != nil {
   506  				defer func() {
   507  					if e := recover(); e != nil {
   508  						options.panicCallback(e)
   509  					}
   510  				}()
   511  			}
   512  			var r, r1 func(TableSessionQueryStreamExecuteIntermediateInfo) func(TableSessionQueryStreamExecuteDoneInfo)
   513  			if h1 != nil {
   514  				r = h1(t)
   515  			}
   516  			if h2 != nil {
   517  				r1 = h2(t)
   518  			}
   519  			return func(t TableSessionQueryStreamExecuteIntermediateInfo) func(TableSessionQueryStreamExecuteDoneInfo) {
   520  				if options.panicCallback != nil {
   521  					defer func() {
   522  						if e := recover(); e != nil {
   523  							options.panicCallback(e)
   524  						}
   525  					}()
   526  				}
   527  				var r2, r3 func(TableSessionQueryStreamExecuteDoneInfo)
   528  				if r != nil {
   529  					r2 = r(t)
   530  				}
   531  				if r1 != nil {
   532  					r3 = r1(t)
   533  				}
   534  				return func(t TableSessionQueryStreamExecuteDoneInfo) {
   535  					if options.panicCallback != nil {
   536  						defer func() {
   537  							if e := recover(); e != nil {
   538  								options.panicCallback(e)
   539  							}
   540  						}()
   541  					}
   542  					if r2 != nil {
   543  						r2(t)
   544  					}
   545  					if r3 != nil {
   546  						r3(t)
   547  					}
   548  				}
   549  			}
   550  		}
   551  	}
   552  	{
   553  		h1 := t.OnSessionQueryStreamRead
   554  		h2 := x.OnSessionQueryStreamRead
   555  		ret.OnSessionQueryStreamRead = func(t TableSessionQueryStreamReadStartInfo) func(TableSessionQueryStreamReadIntermediateInfo) func(TableSessionQueryStreamReadDoneInfo) {
   556  			if options.panicCallback != nil {
   557  				defer func() {
   558  					if e := recover(); e != nil {
   559  						options.panicCallback(e)
   560  					}
   561  				}()
   562  			}
   563  			var r, r1 func(TableSessionQueryStreamReadIntermediateInfo) func(TableSessionQueryStreamReadDoneInfo)
   564  			if h1 != nil {
   565  				r = h1(t)
   566  			}
   567  			if h2 != nil {
   568  				r1 = h2(t)
   569  			}
   570  			return func(t TableSessionQueryStreamReadIntermediateInfo) func(TableSessionQueryStreamReadDoneInfo) {
   571  				if options.panicCallback != nil {
   572  					defer func() {
   573  						if e := recover(); e != nil {
   574  							options.panicCallback(e)
   575  						}
   576  					}()
   577  				}
   578  				var r2, r3 func(TableSessionQueryStreamReadDoneInfo)
   579  				if r != nil {
   580  					r2 = r(t)
   581  				}
   582  				if r1 != nil {
   583  					r3 = r1(t)
   584  				}
   585  				return func(t TableSessionQueryStreamReadDoneInfo) {
   586  					if options.panicCallback != nil {
   587  						defer func() {
   588  							if e := recover(); e != nil {
   589  								options.panicCallback(e)
   590  							}
   591  						}()
   592  					}
   593  					if r2 != nil {
   594  						r2(t)
   595  					}
   596  					if r3 != nil {
   597  						r3(t)
   598  					}
   599  				}
   600  			}
   601  		}
   602  	}
   603  	{
   604  		h1 := t.OnSessionTransactionBegin
   605  		h2 := x.OnSessionTransactionBegin
   606  		ret.OnSessionTransactionBegin = func(t TableSessionTransactionBeginStartInfo) func(TableSessionTransactionBeginDoneInfo) {
   607  			if options.panicCallback != nil {
   608  				defer func() {
   609  					if e := recover(); e != nil {
   610  						options.panicCallback(e)
   611  					}
   612  				}()
   613  			}
   614  			var r, r1 func(TableSessionTransactionBeginDoneInfo)
   615  			if h1 != nil {
   616  				r = h1(t)
   617  			}
   618  			if h2 != nil {
   619  				r1 = h2(t)
   620  			}
   621  			return func(t TableSessionTransactionBeginDoneInfo) {
   622  				if options.panicCallback != nil {
   623  					defer func() {
   624  						if e := recover(); e != nil {
   625  							options.panicCallback(e)
   626  						}
   627  					}()
   628  				}
   629  				if r != nil {
   630  					r(t)
   631  				}
   632  				if r1 != nil {
   633  					r1(t)
   634  				}
   635  			}
   636  		}
   637  	}
   638  	{
   639  		h1 := t.OnSessionTransactionExecute
   640  		h2 := x.OnSessionTransactionExecute
   641  		ret.OnSessionTransactionExecute = func(t TableTransactionExecuteStartInfo) func(TableTransactionExecuteDoneInfo) {
   642  			if options.panicCallback != nil {
   643  				defer func() {
   644  					if e := recover(); e != nil {
   645  						options.panicCallback(e)
   646  					}
   647  				}()
   648  			}
   649  			var r, r1 func(TableTransactionExecuteDoneInfo)
   650  			if h1 != nil {
   651  				r = h1(t)
   652  			}
   653  			if h2 != nil {
   654  				r1 = h2(t)
   655  			}
   656  			return func(t TableTransactionExecuteDoneInfo) {
   657  				if options.panicCallback != nil {
   658  					defer func() {
   659  						if e := recover(); e != nil {
   660  							options.panicCallback(e)
   661  						}
   662  					}()
   663  				}
   664  				if r != nil {
   665  					r(t)
   666  				}
   667  				if r1 != nil {
   668  					r1(t)
   669  				}
   670  			}
   671  		}
   672  	}
   673  	{
   674  		h1 := t.OnSessionTransactionExecuteStatement
   675  		h2 := x.OnSessionTransactionExecuteStatement
   676  		ret.OnSessionTransactionExecuteStatement = func(t TableTransactionExecuteStatementStartInfo) func(TableTransactionExecuteStatementDoneInfo) {
   677  			if options.panicCallback != nil {
   678  				defer func() {
   679  					if e := recover(); e != nil {
   680  						options.panicCallback(e)
   681  					}
   682  				}()
   683  			}
   684  			var r, r1 func(TableTransactionExecuteStatementDoneInfo)
   685  			if h1 != nil {
   686  				r = h1(t)
   687  			}
   688  			if h2 != nil {
   689  				r1 = h2(t)
   690  			}
   691  			return func(t TableTransactionExecuteStatementDoneInfo) {
   692  				if options.panicCallback != nil {
   693  					defer func() {
   694  						if e := recover(); e != nil {
   695  							options.panicCallback(e)
   696  						}
   697  					}()
   698  				}
   699  				if r != nil {
   700  					r(t)
   701  				}
   702  				if r1 != nil {
   703  					r1(t)
   704  				}
   705  			}
   706  		}
   707  	}
   708  	{
   709  		h1 := t.OnSessionTransactionCommit
   710  		h2 := x.OnSessionTransactionCommit
   711  		ret.OnSessionTransactionCommit = func(t TableSessionTransactionCommitStartInfo) func(TableSessionTransactionCommitDoneInfo) {
   712  			if options.panicCallback != nil {
   713  				defer func() {
   714  					if e := recover(); e != nil {
   715  						options.panicCallback(e)
   716  					}
   717  				}()
   718  			}
   719  			var r, r1 func(TableSessionTransactionCommitDoneInfo)
   720  			if h1 != nil {
   721  				r = h1(t)
   722  			}
   723  			if h2 != nil {
   724  				r1 = h2(t)
   725  			}
   726  			return func(t TableSessionTransactionCommitDoneInfo) {
   727  				if options.panicCallback != nil {
   728  					defer func() {
   729  						if e := recover(); e != nil {
   730  							options.panicCallback(e)
   731  						}
   732  					}()
   733  				}
   734  				if r != nil {
   735  					r(t)
   736  				}
   737  				if r1 != nil {
   738  					r1(t)
   739  				}
   740  			}
   741  		}
   742  	}
   743  	{
   744  		h1 := t.OnSessionTransactionRollback
   745  		h2 := x.OnSessionTransactionRollback
   746  		ret.OnSessionTransactionRollback = func(t TableSessionTransactionRollbackStartInfo) func(TableSessionTransactionRollbackDoneInfo) {
   747  			if options.panicCallback != nil {
   748  				defer func() {
   749  					if e := recover(); e != nil {
   750  						options.panicCallback(e)
   751  					}
   752  				}()
   753  			}
   754  			var r, r1 func(TableSessionTransactionRollbackDoneInfo)
   755  			if h1 != nil {
   756  				r = h1(t)
   757  			}
   758  			if h2 != nil {
   759  				r1 = h2(t)
   760  			}
   761  			return func(t TableSessionTransactionRollbackDoneInfo) {
   762  				if options.panicCallback != nil {
   763  					defer func() {
   764  						if e := recover(); e != nil {
   765  							options.panicCallback(e)
   766  						}
   767  					}()
   768  				}
   769  				if r != nil {
   770  					r(t)
   771  				}
   772  				if r1 != nil {
   773  					r1(t)
   774  				}
   775  			}
   776  		}
   777  	}
   778  	{
   779  		h1 := t.OnPoolStateChange
   780  		h2 := x.OnPoolStateChange
   781  		ret.OnPoolStateChange = func(t TablePoolStateChangeInfo) {
   782  			if options.panicCallback != nil {
   783  				defer func() {
   784  					if e := recover(); e != nil {
   785  						options.panicCallback(e)
   786  					}
   787  				}()
   788  			}
   789  			if h1 != nil {
   790  				h1(t)
   791  			}
   792  			if h2 != nil {
   793  				h2(t)
   794  			}
   795  		}
   796  	}
   797  	{
   798  		h1 := t.OnPoolSessionAdd
   799  		h2 := x.OnPoolSessionAdd
   800  		ret.OnPoolSessionAdd = func(info TablePoolSessionAddInfo) {
   801  			if options.panicCallback != nil {
   802  				defer func() {
   803  					if e := recover(); e != nil {
   804  						options.panicCallback(e)
   805  					}
   806  				}()
   807  			}
   808  			if h1 != nil {
   809  				h1(info)
   810  			}
   811  			if h2 != nil {
   812  				h2(info)
   813  			}
   814  		}
   815  	}
   816  	{
   817  		h1 := t.OnPoolSessionRemove
   818  		h2 := x.OnPoolSessionRemove
   819  		ret.OnPoolSessionRemove = func(info TablePoolSessionRemoveInfo) {
   820  			if options.panicCallback != nil {
   821  				defer func() {
   822  					if e := recover(); e != nil {
   823  						options.panicCallback(e)
   824  					}
   825  				}()
   826  			}
   827  			if h1 != nil {
   828  				h1(info)
   829  			}
   830  			if h2 != nil {
   831  				h2(info)
   832  			}
   833  		}
   834  	}
   835  	{
   836  		h1 := t.OnPoolSessionNew
   837  		h2 := x.OnPoolSessionNew
   838  		ret.OnPoolSessionNew = func(t TablePoolSessionNewStartInfo) func(TablePoolSessionNewDoneInfo) {
   839  			if options.panicCallback != nil {
   840  				defer func() {
   841  					if e := recover(); e != nil {
   842  						options.panicCallback(e)
   843  					}
   844  				}()
   845  			}
   846  			var r, r1 func(TablePoolSessionNewDoneInfo)
   847  			if h1 != nil {
   848  				r = h1(t)
   849  			}
   850  			if h2 != nil {
   851  				r1 = h2(t)
   852  			}
   853  			return func(t TablePoolSessionNewDoneInfo) {
   854  				if options.panicCallback != nil {
   855  					defer func() {
   856  						if e := recover(); e != nil {
   857  							options.panicCallback(e)
   858  						}
   859  					}()
   860  				}
   861  				if r != nil {
   862  					r(t)
   863  				}
   864  				if r1 != nil {
   865  					r1(t)
   866  				}
   867  			}
   868  		}
   869  	}
   870  	{
   871  		h1 := t.OnPoolSessionClose
   872  		h2 := x.OnPoolSessionClose
   873  		ret.OnPoolSessionClose = func(t TablePoolSessionCloseStartInfo) func(TablePoolSessionCloseDoneInfo) {
   874  			if options.panicCallback != nil {
   875  				defer func() {
   876  					if e := recover(); e != nil {
   877  						options.panicCallback(e)
   878  					}
   879  				}()
   880  			}
   881  			var r, r1 func(TablePoolSessionCloseDoneInfo)
   882  			if h1 != nil {
   883  				r = h1(t)
   884  			}
   885  			if h2 != nil {
   886  				r1 = h2(t)
   887  			}
   888  			return func(t TablePoolSessionCloseDoneInfo) {
   889  				if options.panicCallback != nil {
   890  					defer func() {
   891  						if e := recover(); e != nil {
   892  							options.panicCallback(e)
   893  						}
   894  					}()
   895  				}
   896  				if r != nil {
   897  					r(t)
   898  				}
   899  				if r1 != nil {
   900  					r1(t)
   901  				}
   902  			}
   903  		}
   904  	}
   905  	{
   906  		h1 := t.OnPoolPut
   907  		h2 := x.OnPoolPut
   908  		ret.OnPoolPut = func(t TablePoolPutStartInfo) func(TablePoolPutDoneInfo) {
   909  			if options.panicCallback != nil {
   910  				defer func() {
   911  					if e := recover(); e != nil {
   912  						options.panicCallback(e)
   913  					}
   914  				}()
   915  			}
   916  			var r, r1 func(TablePoolPutDoneInfo)
   917  			if h1 != nil {
   918  				r = h1(t)
   919  			}
   920  			if h2 != nil {
   921  				r1 = h2(t)
   922  			}
   923  			return func(t TablePoolPutDoneInfo) {
   924  				if options.panicCallback != nil {
   925  					defer func() {
   926  						if e := recover(); e != nil {
   927  							options.panicCallback(e)
   928  						}
   929  					}()
   930  				}
   931  				if r != nil {
   932  					r(t)
   933  				}
   934  				if r1 != nil {
   935  					r1(t)
   936  				}
   937  			}
   938  		}
   939  	}
   940  	{
   941  		h1 := t.OnPoolGet
   942  		h2 := x.OnPoolGet
   943  		ret.OnPoolGet = func(t TablePoolGetStartInfo) func(TablePoolGetDoneInfo) {
   944  			if options.panicCallback != nil {
   945  				defer func() {
   946  					if e := recover(); e != nil {
   947  						options.panicCallback(e)
   948  					}
   949  				}()
   950  			}
   951  			var r, r1 func(TablePoolGetDoneInfo)
   952  			if h1 != nil {
   953  				r = h1(t)
   954  			}
   955  			if h2 != nil {
   956  				r1 = h2(t)
   957  			}
   958  			return func(t TablePoolGetDoneInfo) {
   959  				if options.panicCallback != nil {
   960  					defer func() {
   961  						if e := recover(); e != nil {
   962  							options.panicCallback(e)
   963  						}
   964  					}()
   965  				}
   966  				if r != nil {
   967  					r(t)
   968  				}
   969  				if r1 != nil {
   970  					r1(t)
   971  				}
   972  			}
   973  		}
   974  	}
   975  	{
   976  		h1 := t.OnPoolWait
   977  		h2 := x.OnPoolWait
   978  		ret.OnPoolWait = func(t TablePoolWaitStartInfo) func(TablePoolWaitDoneInfo) {
   979  			if options.panicCallback != nil {
   980  				defer func() {
   981  					if e := recover(); e != nil {
   982  						options.panicCallback(e)
   983  					}
   984  				}()
   985  			}
   986  			var r, r1 func(TablePoolWaitDoneInfo)
   987  			if h1 != nil {
   988  				r = h1(t)
   989  			}
   990  			if h2 != nil {
   991  				r1 = h2(t)
   992  			}
   993  			return func(t TablePoolWaitDoneInfo) {
   994  				if options.panicCallback != nil {
   995  					defer func() {
   996  						if e := recover(); e != nil {
   997  							options.panicCallback(e)
   998  						}
   999  					}()
  1000  				}
  1001  				if r != nil {
  1002  					r(t)
  1003  				}
  1004  				if r1 != nil {
  1005  					r1(t)
  1006  				}
  1007  			}
  1008  		}
  1009  	}
  1010  	return &ret
  1011  }
  1012  func (t *Table) onInit(t1 TableInitStartInfo) func(TableInitDoneInfo) {
  1013  	fn := t.OnInit
  1014  	if fn == nil {
  1015  		return func(TableInitDoneInfo) {
  1016  			return
  1017  		}
  1018  	}
  1019  	res := fn(t1)
  1020  	if res == nil {
  1021  		return func(TableInitDoneInfo) {
  1022  			return
  1023  		}
  1024  	}
  1025  	return res
  1026  }
  1027  func (t *Table) onClose(t1 TableCloseStartInfo) func(TableCloseDoneInfo) {
  1028  	fn := t.OnClose
  1029  	if fn == nil {
  1030  		return func(TableCloseDoneInfo) {
  1031  			return
  1032  		}
  1033  	}
  1034  	res := fn(t1)
  1035  	if res == nil {
  1036  		return func(TableCloseDoneInfo) {
  1037  			return
  1038  		}
  1039  	}
  1040  	return res
  1041  }
  1042  func (t *Table) onDo(t1 TableDoStartInfo) func(info TableDoIntermediateInfo) func(TableDoDoneInfo) {
  1043  	fn := t.OnDo
  1044  	if fn == nil {
  1045  		return func(TableDoIntermediateInfo) func(TableDoDoneInfo) {
  1046  			return func(TableDoDoneInfo) {
  1047  				return
  1048  			}
  1049  		}
  1050  	}
  1051  	res := fn(t1)
  1052  	if res == nil {
  1053  		return func(TableDoIntermediateInfo) func(TableDoDoneInfo) {
  1054  			return func(TableDoDoneInfo) {
  1055  				return
  1056  			}
  1057  		}
  1058  	}
  1059  	return func(info TableDoIntermediateInfo) func(TableDoDoneInfo) {
  1060  		res := res(info)
  1061  		if res == nil {
  1062  			return func(TableDoDoneInfo) {
  1063  				return
  1064  			}
  1065  		}
  1066  		return res
  1067  	}
  1068  }
  1069  func (t *Table) onDoTx(t1 TableDoTxStartInfo) func(info TableDoTxIntermediateInfo) func(TableDoTxDoneInfo) {
  1070  	fn := t.OnDoTx
  1071  	if fn == nil {
  1072  		return func(TableDoTxIntermediateInfo) func(TableDoTxDoneInfo) {
  1073  			return func(TableDoTxDoneInfo) {
  1074  				return
  1075  			}
  1076  		}
  1077  	}
  1078  	res := fn(t1)
  1079  	if res == nil {
  1080  		return func(TableDoTxIntermediateInfo) func(TableDoTxDoneInfo) {
  1081  			return func(TableDoTxDoneInfo) {
  1082  				return
  1083  			}
  1084  		}
  1085  	}
  1086  	return func(info TableDoTxIntermediateInfo) func(TableDoTxDoneInfo) {
  1087  		res := res(info)
  1088  		if res == nil {
  1089  			return func(TableDoTxDoneInfo) {
  1090  				return
  1091  			}
  1092  		}
  1093  		return res
  1094  	}
  1095  }
  1096  func (t *Table) onCreateSession(t1 TableCreateSessionStartInfo) func(info TableCreateSessionIntermediateInfo) func(TableCreateSessionDoneInfo) {
  1097  	fn := t.OnCreateSession
  1098  	if fn == nil {
  1099  		return func(TableCreateSessionIntermediateInfo) func(TableCreateSessionDoneInfo) {
  1100  			return func(TableCreateSessionDoneInfo) {
  1101  				return
  1102  			}
  1103  		}
  1104  	}
  1105  	res := fn(t1)
  1106  	if res == nil {
  1107  		return func(TableCreateSessionIntermediateInfo) func(TableCreateSessionDoneInfo) {
  1108  			return func(TableCreateSessionDoneInfo) {
  1109  				return
  1110  			}
  1111  		}
  1112  	}
  1113  	return func(info TableCreateSessionIntermediateInfo) func(TableCreateSessionDoneInfo) {
  1114  		res := res(info)
  1115  		if res == nil {
  1116  			return func(TableCreateSessionDoneInfo) {
  1117  				return
  1118  			}
  1119  		}
  1120  		return res
  1121  	}
  1122  }
  1123  func (t *Table) onSessionNew(t1 TableSessionNewStartInfo) func(TableSessionNewDoneInfo) {
  1124  	fn := t.OnSessionNew
  1125  	if fn == nil {
  1126  		return func(TableSessionNewDoneInfo) {
  1127  			return
  1128  		}
  1129  	}
  1130  	res := fn(t1)
  1131  	if res == nil {
  1132  		return func(TableSessionNewDoneInfo) {
  1133  			return
  1134  		}
  1135  	}
  1136  	return res
  1137  }
  1138  func (t *Table) onSessionDelete(t1 TableSessionDeleteStartInfo) func(TableSessionDeleteDoneInfo) {
  1139  	fn := t.OnSessionDelete
  1140  	if fn == nil {
  1141  		return func(TableSessionDeleteDoneInfo) {
  1142  			return
  1143  		}
  1144  	}
  1145  	res := fn(t1)
  1146  	if res == nil {
  1147  		return func(TableSessionDeleteDoneInfo) {
  1148  			return
  1149  		}
  1150  	}
  1151  	return res
  1152  }
  1153  func (t *Table) onSessionKeepAlive(t1 TableKeepAliveStartInfo) func(TableKeepAliveDoneInfo) {
  1154  	fn := t.OnSessionKeepAlive
  1155  	if fn == nil {
  1156  		return func(TableKeepAliveDoneInfo) {
  1157  			return
  1158  		}
  1159  	}
  1160  	res := fn(t1)
  1161  	if res == nil {
  1162  		return func(TableKeepAliveDoneInfo) {
  1163  			return
  1164  		}
  1165  	}
  1166  	return res
  1167  }
  1168  func (t *Table) onSessionBulkUpsert(t1 TableBulkUpsertStartInfo) func(TableBulkUpsertDoneInfo) {
  1169  	fn := t.OnSessionBulkUpsert
  1170  	if fn == nil {
  1171  		return func(TableBulkUpsertDoneInfo) {
  1172  			return
  1173  		}
  1174  	}
  1175  	res := fn(t1)
  1176  	if res == nil {
  1177  		return func(TableBulkUpsertDoneInfo) {
  1178  			return
  1179  		}
  1180  	}
  1181  	return res
  1182  }
  1183  func (t *Table) onSessionQueryPrepare(t1 TablePrepareDataQueryStartInfo) func(TablePrepareDataQueryDoneInfo) {
  1184  	fn := t.OnSessionQueryPrepare
  1185  	if fn == nil {
  1186  		return func(TablePrepareDataQueryDoneInfo) {
  1187  			return
  1188  		}
  1189  	}
  1190  	res := fn(t1)
  1191  	if res == nil {
  1192  		return func(TablePrepareDataQueryDoneInfo) {
  1193  			return
  1194  		}
  1195  	}
  1196  	return res
  1197  }
  1198  func (t *Table) onSessionQueryExecute(t1 TableExecuteDataQueryStartInfo) func(TableExecuteDataQueryDoneInfo) {
  1199  	fn := t.OnSessionQueryExecute
  1200  	if fn == nil {
  1201  		return func(TableExecuteDataQueryDoneInfo) {
  1202  			return
  1203  		}
  1204  	}
  1205  	res := fn(t1)
  1206  	if res == nil {
  1207  		return func(TableExecuteDataQueryDoneInfo) {
  1208  			return
  1209  		}
  1210  	}
  1211  	return res
  1212  }
  1213  func (t *Table) onSessionQueryExplain(t1 TableExplainQueryStartInfo) func(TableExplainQueryDoneInfo) {
  1214  	fn := t.OnSessionQueryExplain
  1215  	if fn == nil {
  1216  		return func(TableExplainQueryDoneInfo) {
  1217  			return
  1218  		}
  1219  	}
  1220  	res := fn(t1)
  1221  	if res == nil {
  1222  		return func(TableExplainQueryDoneInfo) {
  1223  			return
  1224  		}
  1225  	}
  1226  	return res
  1227  }
  1228  func (t *Table) onSessionQueryStreamExecute(t1 TableSessionQueryStreamExecuteStartInfo) func(TableSessionQueryStreamExecuteIntermediateInfo) func(TableSessionQueryStreamExecuteDoneInfo) {
  1229  	fn := t.OnSessionQueryStreamExecute
  1230  	if fn == nil {
  1231  		return func(TableSessionQueryStreamExecuteIntermediateInfo) func(TableSessionQueryStreamExecuteDoneInfo) {
  1232  			return func(TableSessionQueryStreamExecuteDoneInfo) {
  1233  				return
  1234  			}
  1235  		}
  1236  	}
  1237  	res := fn(t1)
  1238  	if res == nil {
  1239  		return func(TableSessionQueryStreamExecuteIntermediateInfo) func(TableSessionQueryStreamExecuteDoneInfo) {
  1240  			return func(TableSessionQueryStreamExecuteDoneInfo) {
  1241  				return
  1242  			}
  1243  		}
  1244  	}
  1245  	return func(t TableSessionQueryStreamExecuteIntermediateInfo) func(TableSessionQueryStreamExecuteDoneInfo) {
  1246  		res := res(t)
  1247  		if res == nil {
  1248  			return func(TableSessionQueryStreamExecuteDoneInfo) {
  1249  				return
  1250  			}
  1251  		}
  1252  		return res
  1253  	}
  1254  }
  1255  func (t *Table) onSessionQueryStreamRead(t1 TableSessionQueryStreamReadStartInfo) func(TableSessionQueryStreamReadIntermediateInfo) func(TableSessionQueryStreamReadDoneInfo) {
  1256  	fn := t.OnSessionQueryStreamRead
  1257  	if fn == nil {
  1258  		return func(TableSessionQueryStreamReadIntermediateInfo) func(TableSessionQueryStreamReadDoneInfo) {
  1259  			return func(TableSessionQueryStreamReadDoneInfo) {
  1260  				return
  1261  			}
  1262  		}
  1263  	}
  1264  	res := fn(t1)
  1265  	if res == nil {
  1266  		return func(TableSessionQueryStreamReadIntermediateInfo) func(TableSessionQueryStreamReadDoneInfo) {
  1267  			return func(TableSessionQueryStreamReadDoneInfo) {
  1268  				return
  1269  			}
  1270  		}
  1271  	}
  1272  	return func(t TableSessionQueryStreamReadIntermediateInfo) func(TableSessionQueryStreamReadDoneInfo) {
  1273  		res := res(t)
  1274  		if res == nil {
  1275  			return func(TableSessionQueryStreamReadDoneInfo) {
  1276  				return
  1277  			}
  1278  		}
  1279  		return res
  1280  	}
  1281  }
  1282  func (t *Table) onSessionTransactionBegin(t1 TableSessionTransactionBeginStartInfo) func(TableSessionTransactionBeginDoneInfo) {
  1283  	fn := t.OnSessionTransactionBegin
  1284  	if fn == nil {
  1285  		return func(TableSessionTransactionBeginDoneInfo) {
  1286  			return
  1287  		}
  1288  	}
  1289  	res := fn(t1)
  1290  	if res == nil {
  1291  		return func(TableSessionTransactionBeginDoneInfo) {
  1292  			return
  1293  		}
  1294  	}
  1295  	return res
  1296  }
  1297  func (t *Table) onSessionTransactionExecute(t1 TableTransactionExecuteStartInfo) func(TableTransactionExecuteDoneInfo) {
  1298  	fn := t.OnSessionTransactionExecute
  1299  	if fn == nil {
  1300  		return func(TableTransactionExecuteDoneInfo) {
  1301  			return
  1302  		}
  1303  	}
  1304  	res := fn(t1)
  1305  	if res == nil {
  1306  		return func(TableTransactionExecuteDoneInfo) {
  1307  			return
  1308  		}
  1309  	}
  1310  	return res
  1311  }
  1312  func (t *Table) onSessionTransactionExecuteStatement(t1 TableTransactionExecuteStatementStartInfo) func(TableTransactionExecuteStatementDoneInfo) {
  1313  	fn := t.OnSessionTransactionExecuteStatement
  1314  	if fn == nil {
  1315  		return func(TableTransactionExecuteStatementDoneInfo) {
  1316  			return
  1317  		}
  1318  	}
  1319  	res := fn(t1)
  1320  	if res == nil {
  1321  		return func(TableTransactionExecuteStatementDoneInfo) {
  1322  			return
  1323  		}
  1324  	}
  1325  	return res
  1326  }
  1327  func (t *Table) onSessionTransactionCommit(t1 TableSessionTransactionCommitStartInfo) func(TableSessionTransactionCommitDoneInfo) {
  1328  	fn := t.OnSessionTransactionCommit
  1329  	if fn == nil {
  1330  		return func(TableSessionTransactionCommitDoneInfo) {
  1331  			return
  1332  		}
  1333  	}
  1334  	res := fn(t1)
  1335  	if res == nil {
  1336  		return func(TableSessionTransactionCommitDoneInfo) {
  1337  			return
  1338  		}
  1339  	}
  1340  	return res
  1341  }
  1342  func (t *Table) onSessionTransactionRollback(t1 TableSessionTransactionRollbackStartInfo) func(TableSessionTransactionRollbackDoneInfo) {
  1343  	fn := t.OnSessionTransactionRollback
  1344  	if fn == nil {
  1345  		return func(TableSessionTransactionRollbackDoneInfo) {
  1346  			return
  1347  		}
  1348  	}
  1349  	res := fn(t1)
  1350  	if res == nil {
  1351  		return func(TableSessionTransactionRollbackDoneInfo) {
  1352  			return
  1353  		}
  1354  	}
  1355  	return res
  1356  }
  1357  func (t *Table) onPoolStateChange(t1 TablePoolStateChangeInfo) {
  1358  	fn := t.OnPoolStateChange
  1359  	if fn == nil {
  1360  		return
  1361  	}
  1362  	fn(t1)
  1363  }
  1364  func (t *Table) onPoolSessionAdd(info TablePoolSessionAddInfo) {
  1365  	fn := t.OnPoolSessionAdd
  1366  	if fn == nil {
  1367  		return
  1368  	}
  1369  	fn(info)
  1370  }
  1371  func (t *Table) onPoolSessionRemove(info TablePoolSessionRemoveInfo) {
  1372  	fn := t.OnPoolSessionRemove
  1373  	if fn == nil {
  1374  		return
  1375  	}
  1376  	fn(info)
  1377  }
  1378  func (t *Table) onPoolSessionNew(t1 TablePoolSessionNewStartInfo) func(TablePoolSessionNewDoneInfo) {
  1379  	fn := t.OnPoolSessionNew
  1380  	if fn == nil {
  1381  		return func(TablePoolSessionNewDoneInfo) {
  1382  			return
  1383  		}
  1384  	}
  1385  	res := fn(t1)
  1386  	if res == nil {
  1387  		return func(TablePoolSessionNewDoneInfo) {
  1388  			return
  1389  		}
  1390  	}
  1391  	return res
  1392  }
  1393  func (t *Table) onPoolSessionClose(t1 TablePoolSessionCloseStartInfo) func(TablePoolSessionCloseDoneInfo) {
  1394  	fn := t.OnPoolSessionClose
  1395  	if fn == nil {
  1396  		return func(TablePoolSessionCloseDoneInfo) {
  1397  			return
  1398  		}
  1399  	}
  1400  	res := fn(t1)
  1401  	if res == nil {
  1402  		return func(TablePoolSessionCloseDoneInfo) {
  1403  			return
  1404  		}
  1405  	}
  1406  	return res
  1407  }
  1408  func (t *Table) onPoolPut(t1 TablePoolPutStartInfo) func(TablePoolPutDoneInfo) {
  1409  	fn := t.OnPoolPut
  1410  	if fn == nil {
  1411  		return func(TablePoolPutDoneInfo) {
  1412  			return
  1413  		}
  1414  	}
  1415  	res := fn(t1)
  1416  	if res == nil {
  1417  		return func(TablePoolPutDoneInfo) {
  1418  			return
  1419  		}
  1420  	}
  1421  	return res
  1422  }
  1423  func (t *Table) onPoolGet(t1 TablePoolGetStartInfo) func(TablePoolGetDoneInfo) {
  1424  	fn := t.OnPoolGet
  1425  	if fn == nil {
  1426  		return func(TablePoolGetDoneInfo) {
  1427  			return
  1428  		}
  1429  	}
  1430  	res := fn(t1)
  1431  	if res == nil {
  1432  		return func(TablePoolGetDoneInfo) {
  1433  			return
  1434  		}
  1435  	}
  1436  	return res
  1437  }
  1438  func (t *Table) onPoolWait(t1 TablePoolWaitStartInfo) func(TablePoolWaitDoneInfo) {
  1439  	fn := t.OnPoolWait
  1440  	if fn == nil {
  1441  		return func(TablePoolWaitDoneInfo) {
  1442  			return
  1443  		}
  1444  	}
  1445  	res := fn(t1)
  1446  	if res == nil {
  1447  		return func(TablePoolWaitDoneInfo) {
  1448  			return
  1449  		}
  1450  	}
  1451  	return res
  1452  }
  1453  func TableOnInit(t *Table, c *context.Context, call call) func(limit int, _ error) {
  1454  	var p TableInitStartInfo
  1455  	p.Context = c
  1456  	p.Call = call
  1457  	res := t.onInit(p)
  1458  	return func(limit int, e error) {
  1459  		var p TableInitDoneInfo
  1460  		p.Limit = limit
  1461  		p.Error = e
  1462  		res(p)
  1463  	}
  1464  }
  1465  func TableOnClose(t *Table, c *context.Context, call call) func(error) {
  1466  	var p TableCloseStartInfo
  1467  	p.Context = c
  1468  	p.Call = call
  1469  	res := t.onClose(p)
  1470  	return func(e error) {
  1471  		var p TableCloseDoneInfo
  1472  		p.Error = e
  1473  		res(p)
  1474  	}
  1475  }
  1476  func TableOnDo(t *Table, c *context.Context, call call, iD string, label string, idempotent bool, nestedCall bool) func(error) func(attempts int, _ error) {
  1477  	var p TableDoStartInfo
  1478  	p.Context = c
  1479  	p.Call = call
  1480  	p.ID = iD
  1481  	p.Label = label
  1482  	p.Idempotent = idempotent
  1483  	p.NestedCall = nestedCall
  1484  	res := t.onDo(p)
  1485  	return func(e error) func(int, error) {
  1486  		var p TableDoIntermediateInfo
  1487  		p.Error = e
  1488  		res := res(p)
  1489  		return func(attempts int, e error) {
  1490  			var p TableDoDoneInfo
  1491  			p.Attempts = attempts
  1492  			p.Error = e
  1493  			res(p)
  1494  		}
  1495  	}
  1496  }
  1497  func TableOnDoTx(t *Table, c *context.Context, call call, iD string, label string, idempotent bool, nestedCall bool) func(error) func(attempts int, _ error) {
  1498  	var p TableDoTxStartInfo
  1499  	p.Context = c
  1500  	p.Call = call
  1501  	p.ID = iD
  1502  	p.Label = label
  1503  	p.Idempotent = idempotent
  1504  	p.NestedCall = nestedCall
  1505  	res := t.onDoTx(p)
  1506  	return func(e error) func(int, error) {
  1507  		var p TableDoTxIntermediateInfo
  1508  		p.Error = e
  1509  		res := res(p)
  1510  		return func(attempts int, e error) {
  1511  			var p TableDoTxDoneInfo
  1512  			p.Attempts = attempts
  1513  			p.Error = e
  1514  			res(p)
  1515  		}
  1516  	}
  1517  }
  1518  func TableOnCreateSession(t *Table, c *context.Context, call call) func(error) func(session tableSessionInfo, attempts int, _ error) {
  1519  	var p TableCreateSessionStartInfo
  1520  	p.Context = c
  1521  	p.Call = call
  1522  	res := t.onCreateSession(p)
  1523  	return func(e error) func(tableSessionInfo, int, error) {
  1524  		var p TableCreateSessionIntermediateInfo
  1525  		p.Error = e
  1526  		res := res(p)
  1527  		return func(session tableSessionInfo, attempts int, e error) {
  1528  			var p TableCreateSessionDoneInfo
  1529  			p.Session = session
  1530  			p.Attempts = attempts
  1531  			p.Error = e
  1532  			res(p)
  1533  		}
  1534  	}
  1535  }
  1536  func TableOnSessionNew(t *Table, c *context.Context, call call) func(session tableSessionInfo, _ error) {
  1537  	var p TableSessionNewStartInfo
  1538  	p.Context = c
  1539  	p.Call = call
  1540  	res := t.onSessionNew(p)
  1541  	return func(session tableSessionInfo, e error) {
  1542  		var p TableSessionNewDoneInfo
  1543  		p.Session = session
  1544  		p.Error = e
  1545  		res(p)
  1546  	}
  1547  }
  1548  func TableOnSessionDelete(t *Table, c *context.Context, call call, session tableSessionInfo) func(error) {
  1549  	var p TableSessionDeleteStartInfo
  1550  	p.Context = c
  1551  	p.Call = call
  1552  	p.Session = session
  1553  	res := t.onSessionDelete(p)
  1554  	return func(e error) {
  1555  		var p TableSessionDeleteDoneInfo
  1556  		p.Error = e
  1557  		res(p)
  1558  	}
  1559  }
  1560  func TableOnSessionKeepAlive(t *Table, c *context.Context, call call, session tableSessionInfo) func(error) {
  1561  	var p TableKeepAliveStartInfo
  1562  	p.Context = c
  1563  	p.Call = call
  1564  	p.Session = session
  1565  	res := t.onSessionKeepAlive(p)
  1566  	return func(e error) {
  1567  		var p TableKeepAliveDoneInfo
  1568  		p.Error = e
  1569  		res(p)
  1570  	}
  1571  }
  1572  func TableOnSessionBulkUpsert(t *Table, c *context.Context, call call, session tableSessionInfo) func(error) {
  1573  	var p TableBulkUpsertStartInfo
  1574  	p.Context = c
  1575  	p.Call = call
  1576  	p.Session = session
  1577  	res := t.onSessionBulkUpsert(p)
  1578  	return func(e error) {
  1579  		var p TableBulkUpsertDoneInfo
  1580  		p.Error = e
  1581  		res(p)
  1582  	}
  1583  }
  1584  func TableOnSessionQueryPrepare(t *Table, c *context.Context, call call, session tableSessionInfo, query string) func(result tableDataQuery, _ error) {
  1585  	var p TablePrepareDataQueryStartInfo
  1586  	p.Context = c
  1587  	p.Call = call
  1588  	p.Session = session
  1589  	p.Query = query
  1590  	res := t.onSessionQueryPrepare(p)
  1591  	return func(result tableDataQuery, e error) {
  1592  		var p TablePrepareDataQueryDoneInfo
  1593  		p.Result = result
  1594  		p.Error = e
  1595  		res(p)
  1596  	}
  1597  }
  1598  func TableOnSessionQueryExecute(t *Table, c *context.Context, call call, session tableSessionInfo, query tableDataQuery, parameters tableQueryParameters, keepInCache bool) func(tx tableTransactionInfo, prepared bool, result tableResult, _ error) {
  1599  	var p TableExecuteDataQueryStartInfo
  1600  	p.Context = c
  1601  	p.Call = call
  1602  	p.Session = session
  1603  	p.Query = query
  1604  	p.Parameters = parameters
  1605  	p.KeepInCache = keepInCache
  1606  	res := t.onSessionQueryExecute(p)
  1607  	return func(tx tableTransactionInfo, prepared bool, result tableResult, e error) {
  1608  		var p TableExecuteDataQueryDoneInfo
  1609  		p.Tx = tx
  1610  		p.Prepared = prepared
  1611  		p.Result = result
  1612  		p.Error = e
  1613  		res(p)
  1614  	}
  1615  }
  1616  func TableOnSessionQueryExplain(t *Table, c *context.Context, call call, session tableSessionInfo, query string) func(aST string, plan string, _ error) {
  1617  	var p TableExplainQueryStartInfo
  1618  	p.Context = c
  1619  	p.Call = call
  1620  	p.Session = session
  1621  	p.Query = query
  1622  	res := t.onSessionQueryExplain(p)
  1623  	return func(aST string, plan string, e error) {
  1624  		var p TableExplainQueryDoneInfo
  1625  		p.AST = aST
  1626  		p.Plan = plan
  1627  		p.Error = e
  1628  		res(p)
  1629  	}
  1630  }
  1631  func TableOnSessionQueryStreamExecute(t *Table, c *context.Context, call call, session tableSessionInfo, query tableDataQuery, parameters tableQueryParameters) func(error) func(error) {
  1632  	var p TableSessionQueryStreamExecuteStartInfo
  1633  	p.Context = c
  1634  	p.Call = call
  1635  	p.Session = session
  1636  	p.Query = query
  1637  	p.Parameters = parameters
  1638  	res := t.onSessionQueryStreamExecute(p)
  1639  	return func(e error) func(error) {
  1640  		var p TableSessionQueryStreamExecuteIntermediateInfo
  1641  		p.Error = e
  1642  		res := res(p)
  1643  		return func(e error) {
  1644  			var p TableSessionQueryStreamExecuteDoneInfo
  1645  			p.Error = e
  1646  			res(p)
  1647  		}
  1648  	}
  1649  }
  1650  func TableOnSessionQueryStreamRead(t *Table, c *context.Context, call call, session tableSessionInfo) func(error) func(error) {
  1651  	var p TableSessionQueryStreamReadStartInfo
  1652  	p.Context = c
  1653  	p.Call = call
  1654  	p.Session = session
  1655  	res := t.onSessionQueryStreamRead(p)
  1656  	return func(e error) func(error) {
  1657  		var p TableSessionQueryStreamReadIntermediateInfo
  1658  		p.Error = e
  1659  		res := res(p)
  1660  		return func(e error) {
  1661  			var p TableSessionQueryStreamReadDoneInfo
  1662  			p.Error = e
  1663  			res(p)
  1664  		}
  1665  	}
  1666  }
  1667  func TableOnSessionTransactionBegin(t *Table, c *context.Context, call call, session tableSessionInfo) func(tx tableTransactionInfo, _ error) {
  1668  	var p TableSessionTransactionBeginStartInfo
  1669  	p.Context = c
  1670  	p.Call = call
  1671  	p.Session = session
  1672  	res := t.onSessionTransactionBegin(p)
  1673  	return func(tx tableTransactionInfo, e error) {
  1674  		var p TableSessionTransactionBeginDoneInfo
  1675  		p.Tx = tx
  1676  		p.Error = e
  1677  		res(p)
  1678  	}
  1679  }
  1680  func TableOnSessionTransactionExecute(t *Table, c *context.Context, call call, session tableSessionInfo, tx tableTransactionInfo, query tableDataQuery, parameters tableQueryParameters) func(result tableResult, _ error) {
  1681  	var p TableTransactionExecuteStartInfo
  1682  	p.Context = c
  1683  	p.Call = call
  1684  	p.Session = session
  1685  	p.Tx = tx
  1686  	p.Query = query
  1687  	p.Parameters = parameters
  1688  	res := t.onSessionTransactionExecute(p)
  1689  	return func(result tableResult, e error) {
  1690  		var p TableTransactionExecuteDoneInfo
  1691  		p.Result = result
  1692  		p.Error = e
  1693  		res(p)
  1694  	}
  1695  }
  1696  func TableOnSessionTransactionExecuteStatement(t *Table, c *context.Context, call call, session tableSessionInfo, tx tableTransactionInfo, statementQuery tableDataQuery, parameters tableQueryParameters) func(result tableResult, _ error) {
  1697  	var p TableTransactionExecuteStatementStartInfo
  1698  	p.Context = c
  1699  	p.Call = call
  1700  	p.Session = session
  1701  	p.Tx = tx
  1702  	p.StatementQuery = statementQuery
  1703  	p.Parameters = parameters
  1704  	res := t.onSessionTransactionExecuteStatement(p)
  1705  	return func(result tableResult, e error) {
  1706  		var p TableTransactionExecuteStatementDoneInfo
  1707  		p.Result = result
  1708  		p.Error = e
  1709  		res(p)
  1710  	}
  1711  }
  1712  func TableOnSessionTransactionCommit(t *Table, c *context.Context, call call, session tableSessionInfo, tx tableTransactionInfo) func(error) {
  1713  	var p TableSessionTransactionCommitStartInfo
  1714  	p.Context = c
  1715  	p.Call = call
  1716  	p.Session = session
  1717  	p.Tx = tx
  1718  	res := t.onSessionTransactionCommit(p)
  1719  	return func(e error) {
  1720  		var p TableSessionTransactionCommitDoneInfo
  1721  		p.Error = e
  1722  		res(p)
  1723  	}
  1724  }
  1725  func TableOnSessionTransactionRollback(t *Table, c *context.Context, call call, session tableSessionInfo, tx tableTransactionInfo) func(error) {
  1726  	var p TableSessionTransactionRollbackStartInfo
  1727  	p.Context = c
  1728  	p.Call = call
  1729  	p.Session = session
  1730  	p.Tx = tx
  1731  	res := t.onSessionTransactionRollback(p)
  1732  	return func(e error) {
  1733  		var p TableSessionTransactionRollbackDoneInfo
  1734  		p.Error = e
  1735  		res(p)
  1736  	}
  1737  }
  1738  func TableOnPoolStateChange(t *Table, size int, event string) {
  1739  	var p TablePoolStateChangeInfo
  1740  	p.Size = size
  1741  	p.Event = event
  1742  	t.onPoolStateChange(p)
  1743  }
  1744  func TableOnPoolSessionAdd(t *Table, session tableSessionInfo) {
  1745  	var p TablePoolSessionAddInfo
  1746  	p.Session = session
  1747  	t.onPoolSessionAdd(p)
  1748  }
  1749  func TableOnPoolSessionRemove(t *Table, session tableSessionInfo) {
  1750  	var p TablePoolSessionRemoveInfo
  1751  	p.Session = session
  1752  	t.onPoolSessionRemove(p)
  1753  }
  1754  func TableOnPoolSessionNew(t *Table, c *context.Context, call call) func(session tableSessionInfo, _ error) {
  1755  	var p TablePoolSessionNewStartInfo
  1756  	p.Context = c
  1757  	p.Call = call
  1758  	res := t.onPoolSessionNew(p)
  1759  	return func(session tableSessionInfo, e error) {
  1760  		var p TablePoolSessionNewDoneInfo
  1761  		p.Session = session
  1762  		p.Error = e
  1763  		res(p)
  1764  	}
  1765  }
  1766  func TableOnPoolSessionClose(t *Table, c *context.Context, call call, session tableSessionInfo) func() {
  1767  	var p TablePoolSessionCloseStartInfo
  1768  	p.Context = c
  1769  	p.Call = call
  1770  	p.Session = session
  1771  	res := t.onPoolSessionClose(p)
  1772  	return func() {
  1773  		var p TablePoolSessionCloseDoneInfo
  1774  		res(p)
  1775  	}
  1776  }
  1777  func TableOnPoolPut(t *Table, c *context.Context, call call, session tableSessionInfo) func(error) {
  1778  	var p TablePoolPutStartInfo
  1779  	p.Context = c
  1780  	p.Call = call
  1781  	p.Session = session
  1782  	res := t.onPoolPut(p)
  1783  	return func(e error) {
  1784  		var p TablePoolPutDoneInfo
  1785  		p.Error = e
  1786  		res(p)
  1787  	}
  1788  }
  1789  func TableOnPoolGet(t *Table, c *context.Context, call call) func(session tableSessionInfo, attempts int, _ error) {
  1790  	var p TablePoolGetStartInfo
  1791  	p.Context = c
  1792  	p.Call = call
  1793  	res := t.onPoolGet(p)
  1794  	return func(session tableSessionInfo, attempts int, e error) {
  1795  		var p TablePoolGetDoneInfo
  1796  		p.Session = session
  1797  		p.Attempts = attempts
  1798  		p.Error = e
  1799  		res(p)
  1800  	}
  1801  }
  1802  func TableOnPoolWait(t *Table, c *context.Context, call call) func(session tableSessionInfo, _ error) {
  1803  	var p TablePoolWaitStartInfo
  1804  	p.Context = c
  1805  	p.Call = call
  1806  	res := t.onPoolWait(p)
  1807  	return func(session tableSessionInfo, e error) {
  1808  		var p TablePoolWaitDoneInfo
  1809  		p.Session = session
  1810  		p.Error = e
  1811  		res(p)
  1812  	}
  1813  }