1: <?php
2:
3: /**
4: * This file is part of the Nette Framework (http://nette.org)
5: *
6: * Copyright (c) 2004 David Grudl (http://davidgrudl.com)
7: *
8: * For the full copyright and license information, please view
9: * the file license.txt that was distributed with this source code.
10: */
11:
12: namespace Nette\Database;
13:
14: use Nette;
15:
16:
17:
18: /**
19: * Supplemental PDO database driver.
20: *
21: * @author David Grudl
22: */
23: interface ISupplementalDriver
24: {
25: const META = 'meta';
26:
27: /**
28: * Delimites identifier for use in a SQL statement.
29: * @param string
30: * @return string
31: */
32: function delimite($name);
33:
34: /**
35: * Formats date-time for use in a SQL statement.
36: * @param \DateTime
37: * @return string
38: */
39: function formatDateTime(\DateTime $value);
40:
41: /**
42: * Encodes string for use in a LIKE statement.
43: * @param string
44: * @param int
45: * @return string
46: */
47: function formatLike($value, $pos);
48:
49: /**
50: * Injects LIMIT/OFFSET to the SQL query.
51: * @param string SQL query that will be modified.
52: * @param int
53: * @param int
54: * @return void
55: */
56: function applyLimit(&$sql, $limit, $offset);
57:
58: /**
59: * Normalizes result row.
60: * @param array
61: * @param Statement
62: * @return array
63: */
64: function normalizeRow($row, $statement);
65:
66:
67: /********************* reflection ****************d*g**/
68:
69:
70: /**
71: * Returns list of tables.
72: * @return array of [name [, (bool) view]]
73: */
74: function getTables();
75:
76: /**
77: * Returns metadata for all columns in a table.
78: * @param string
79: * @return array of [name, nativetype [, table, fullname, (int) size, (bool) nullable, (mixed) default, (bool) autoincrement, (array) vendor]]
80: */
81: function getColumns($table);
82:
83: /**
84: * Returns metadata for all indexes in a table.
85: * @param string
86: * @return array of [name, (array of names) columns [, (bool) unique, (bool) primary]]
87: */
88: function getIndexes($table);
89:
90: /**
91: * Returns metadata for all foreign keys in a table.
92: * @param string
93: * @return array
94: */
95: function getForeignKeys($table);
96:
97: }
98: