SQLTableToDoltTable takes a sql.Table and returns a *sqle.DoltTable if either the table is a Dolt table, or it is a wrapper or container that holds a Dolt table. Returns nil if a Dolt table could not be found.
(tbl sql.Table)
| 34 | // SQLTableToDoltTable takes a sql.Table and returns a *sqle.DoltTable if either the table is a Dolt table, or it is a |
| 35 | // wrapper or container that holds a Dolt table. Returns nil if a Dolt table could not be found. |
| 36 | func SQLTableToDoltTable(tbl sql.Table) *sqle.DoltTable { |
| 37 | switch t := tbl.(type) { |
| 38 | case *plan.ResolvedTable: |
| 39 | return SQLTableToDoltTable(t.Table) |
| 40 | case *plan.ProcessTable: |
| 41 | return SQLTableToDoltTable(t.Table) |
| 42 | case *plan.IndexedTableAccess: |
| 43 | return SQLTableToDoltTable(t.Table) |
| 44 | case *plan.ProcedureResolvedTable: |
| 45 | return SQLTableToDoltTable(t.ResolvedTable.Table) |
| 46 | case *sqle.WritableIndexedDoltTable: |
| 47 | return t.WritableDoltTable.DoltTable |
| 48 | case *sqle.IndexedDoltTable: |
| 49 | return t.DoltTable |
| 50 | case *sqle.AlterableDoltTable: |
| 51 | return t.WritableDoltTable.DoltTable |
| 52 | case *sqle.WritableDoltTable: |
| 53 | return t.DoltTable |
| 54 | case *sqle.DoltTable: |
| 55 | return t |
| 56 | default: |
| 57 | if wrapper, ok := tbl.(sql.TableWrapper); ok { |
| 58 | return SQLTableToDoltTable(wrapper.Underlying()) |
| 59 | } |
| 60 | return nil |
| 61 | } |
| 62 | } |
no outgoing calls
no test coverage detected