what is Driver & what is Adapter ?

what is Driver & what is Adapter ?

what is Driver & what is Adapter ?

Assuming you are talking about database drivers and rails' connection
adapters:

A driver is something that allows you to talk to the database. Drivers
don't however all have the same semantics. Similar things may have
different names, the underlying database may be different in the way
certain tasks are accomplished or how certain SQL statements are
written. The connection adapters that are part of Rails smooth over
these differences.

Fred

I think that every adapter includes a driver. So a MySQL adapter for Rails includes driver information or utilizes a pre-existing driver for Ruby. The adapter then uses the raw data brought back from the database through an SQL statement that's been generated and makes an ActiveRecord object specific to the query and populates that object with the raw data.

Frederick, am I right in this?

I think that every adapter includes a driver. So a MySQL adapter for Rails includes driver information or utilizes a pre-existing driver for Ruby.

The Rails team do not develop any of the database drivers.

The adapter then uses the raw data brought back from the database through an SQL statement that's been generated and makes an ActiveRecord object specific to the query and populates that object with the raw data.

Frederick, am I right in this?

Not quite. The adapters happen at a lower level. For example, I have a
select query and I want to make it have this limit and that offset.
That's database dependant and is handled by the adapter. Quoting
rules, mapping of ruby types onto database column types are also
database dependant and are handled by the adaptor. The adapter also handles stuff like "given this select query, give me
an array of hashes representing the result set", or "do this insert
and tell me what was the primary key that was generated" and things
like that (building of the ActiveRecord objects in not part of the
adapter code). If you really want a detailed answer, just crack open something like
mysql_adapter.rb and see what's in there.

Fred