| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | 
							- var inherits   = require('util').inherits;
 
- var Connection = require('./Connection');
 
- var Events     = require('events');
 
- module.exports = PoolConnection;
 
- inherits(PoolConnection, Connection);
 
- function PoolConnection(pool, options) {
 
-   Connection.call(this, options);
 
-   this._pool  = pool;
 
-   // Bind connection to pool domain
 
-   if (Events.usingDomains) {
 
-     this.domain = pool.domain;
 
-   }
 
-   // When a fatal error occurs the connection's protocol ends, which will cause
 
-   // the connection to end as well, thus we only need to watch for the end event
 
-   // and we will be notified of disconnects.
 
-   this.on('end', this._removeFromPool);
 
-   this.on('error', function (err) {
 
-     if (err.fatal) {
 
-       this._removeFromPool();
 
-     }
 
-   });
 
- }
 
- PoolConnection.prototype.release = function release() {
 
-   var pool = this._pool;
 
-   if (!pool || pool._closed) {
 
-     return undefined;
 
-   }
 
-   return pool.releaseConnection(this);
 
- };
 
- // TODO: Remove this when we are removing PoolConnection#end
 
- PoolConnection.prototype._realEnd = Connection.prototype.end;
 
- PoolConnection.prototype.end = function () {
 
-   console.warn(
 
-     'Calling conn.end() to release a pooled connection is ' +
 
-     'deprecated. In next version calling conn.end() will be ' +
 
-     'restored to default conn.end() behavior. Use ' +
 
-     'conn.release() instead.'
 
-   );
 
-   this.release();
 
- };
 
- PoolConnection.prototype.destroy = function () {
 
-   Connection.prototype.destroy.apply(this, arguments);
 
-   this._removeFromPool(this);
 
- };
 
- PoolConnection.prototype._removeFromPool = function _removeFromPool() {
 
-   if (!this._pool || this._pool._closed) {
 
-     return;
 
-   }
 
-   var pool = this._pool;
 
-   this._pool = null;
 
-   pool._purgeConnection(this);
 
- };
 
 
  |