Rename PreparedStatementDescription to StatementDescription
PreparedStatementDescription was too long. It also no longer entirely represents its purpose now that it is also intended for use with described statements.
This commit is contained in:
@@ -517,15 +517,16 @@ func (ct CommandTag) String() string {
|
|||||||
return string(ct)
|
return string(ct)
|
||||||
}
|
}
|
||||||
|
|
||||||
type PreparedStatementDescription struct {
|
type StatementDescription struct {
|
||||||
Name string
|
Name string
|
||||||
SQL string
|
SQL string
|
||||||
ParamOIDs []uint32
|
ParamOIDs []uint32
|
||||||
Fields []pgproto3.FieldDescription
|
Fields []pgproto3.FieldDescription
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prepare creates a prepared statement.
|
// Prepare creates a prepared statement. If the name is empty, the anonymous prepared statement will be used. This
|
||||||
func (pgConn *PgConn) Prepare(ctx context.Context, name, sql string, paramOIDs []uint32) (*PreparedStatementDescription, error) {
|
// allows Prepare to also to describe statements without creating a server-side prepared statement.
|
||||||
|
func (pgConn *PgConn) Prepare(ctx context.Context, name, sql string, paramOIDs []uint32) (*StatementDescription, error) {
|
||||||
if err := pgConn.lock(); err != nil {
|
if err := pgConn.lock(); err != nil {
|
||||||
return nil, linkErrors(err, ErrNoBytesSent)
|
return nil, linkErrors(err, ErrNoBytesSent)
|
||||||
}
|
}
|
||||||
@@ -553,7 +554,7 @@ func (pgConn *PgConn) Prepare(ctx context.Context, name, sql string, paramOIDs [
|
|||||||
return nil, linkErrors(ctx.Err(), err)
|
return nil, linkErrors(ctx.Err(), err)
|
||||||
}
|
}
|
||||||
|
|
||||||
psd := &PreparedStatementDescription{Name: name, SQL: sql}
|
psd := &StatementDescription{Name: name, SQL: sql}
|
||||||
|
|
||||||
var parseErr error
|
var parseErr error
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -40,10 +40,10 @@ func NewLRU(conn *pgconn.PgConn, mode int, cap int) *LRU {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get returns the prepared statement description for sql preparing or describing the sql on the server as needed.
|
// Get returns the prepared statement description for sql preparing or describing the sql on the server as needed.
|
||||||
func (c *LRU) Get(ctx context.Context, sql string) (*pgconn.PreparedStatementDescription, error) {
|
func (c *LRU) Get(ctx context.Context, sql string) (*pgconn.StatementDescription, error) {
|
||||||
if el, ok := c.m[sql]; ok {
|
if el, ok := c.m[sql]; ok {
|
||||||
c.l.MoveToFront(el)
|
c.l.MoveToFront(el)
|
||||||
return el.Value.(*pgconn.PreparedStatementDescription), nil
|
return el.Value.(*pgconn.StatementDescription), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.l.Len() == c.cap {
|
if c.l.Len() == c.cap {
|
||||||
@@ -91,7 +91,7 @@ func (c *LRU) Mode() int {
|
|||||||
return c.mode
|
return c.mode
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *LRU) prepare(ctx context.Context, sql string) (*pgconn.PreparedStatementDescription, error) {
|
func (c *LRU) prepare(ctx context.Context, sql string) (*pgconn.StatementDescription, error) {
|
||||||
var name string
|
var name string
|
||||||
if c.mode == ModePrepare {
|
if c.mode == ModePrepare {
|
||||||
name = fmt.Sprintf("%s_%d", c.psNamePrefix, c.prepareCount)
|
name = fmt.Sprintf("%s_%d", c.psNamePrefix, c.prepareCount)
|
||||||
@@ -105,7 +105,7 @@ func (c *LRU) removeOldest(ctx context.Context) error {
|
|||||||
oldest := c.l.Back()
|
oldest := c.l.Back()
|
||||||
c.l.Remove(oldest)
|
c.l.Remove(oldest)
|
||||||
if c.mode == ModePrepare {
|
if c.mode == ModePrepare {
|
||||||
return c.conn.Exec(ctx, fmt.Sprintf("deallocate %s", oldest.Value.(*pgconn.PreparedStatementDescription).Name)).Close()
|
return c.conn.Exec(ctx, fmt.Sprintf("deallocate %s", oldest.Value.(*pgconn.StatementDescription).Name)).Close()
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ const (
|
|||||||
// Cache prepares and caches prepared statement descriptions.
|
// Cache prepares and caches prepared statement descriptions.
|
||||||
type Cache interface {
|
type Cache interface {
|
||||||
// Get returns the prepared statement description for sql preparing or describing the sql on the server as needed.
|
// Get returns the prepared statement description for sql preparing or describing the sql on the server as needed.
|
||||||
Get(ctx context.Context, sql string) (*pgconn.PreparedStatementDescription, error)
|
Get(ctx context.Context, sql string) (*pgconn.StatementDescription, error)
|
||||||
|
|
||||||
// Clear removes all entries in the cache. Any prepared statements will be deallocated from the PostgreSQL session.
|
// Clear removes all entries in the cache. Any prepared statements will be deallocated from the PostgreSQL session.
|
||||||
Clear(ctx context.Context) error
|
Clear(ctx context.Context) error
|
||||||
|
|||||||
Reference in New Issue
Block a user